@openclaw/google-meet 2026.10.10 → 2026.11.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/.setup/{chrome-create-DIcW4QCh.mjs → chrome-create-CW_QQzuj.mjs} +7 -4
- package/dist/.setup/{cli-9linTFHb.mjs → cli-CBLj67Qo.mjs} +17 -11
- package/dist/.setup/{cli-export-CaDYoSP8.mjs → cli-export-3ijBYTqg.mjs} +5 -3
- package/dist/.setup/{cli-output-mode-BJSm88N9.mjs → cli-output-mode-BwH_6tH8.mjs} +2 -1
- package/dist/.setup/{config-Cu3zsl_3.mjs → config-BXGAMntj.mjs} +2 -1
- package/dist/.setup/{create-D3fHR8uX.mjs → create-DMUmVyQg.mjs} +5 -4
- package/dist/.setup/{google-api-B5FR9zy2.mjs → google-api-KAOF1Wn5.mjs} +2 -1
- package/dist/.setup/{google-meet-platform-adapter-D7poqL1J.mjs → google-meet-platform-adapter-Bz77Bdt-.mjs} +15 -9
- package/dist/.setup/{google-meet-platform-constants-C83Cdmpd.mjs → google-meet-platform-constants-CnRfrYX7.mjs} +4 -2
- package/dist/.setup/{meet-url-DzLdrq0Z.mjs → meet-url-i_QvIxnP.mjs} +2 -1
- package/dist/.setup/{node-host-B196lvNZ.mjs → node-host-BP4g4zw3.mjs} +5 -4
- package/dist/.setup/{node-invoke-policy-BzRAe25r.mjs → node-invoke-policy-67WaZNPN.mjs} +4 -3
- package/dist/.setup/{oauth-DGv28ZgA.mjs → oauth-pXa-YQ9H.mjs} +3 -2
- package/dist/.setup/{plugin-helpers-Buhixxsx.mjs → plugin-helpers-D3VKNUTD.mjs} +17 -11
- package/dist/.setup/{plugin-registration-B_nOxAym.mjs → plugin-registration-1Oc4T1Bj.mjs} +10 -9
- package/dist/.setup/{runtime-D-dwEsSW.mjs → runtime-2_R9PsRx.mjs} +16 -10
- package/dist/cli-metadata.js +3 -2
- package/dist/doctor-contract-api.js +2 -1
- package/dist/index.js +8 -6
- package/package.json +4 -4
- package/dist/.source-module-urls/c06239f68b6f4959b5d3db7e0cee004911d8eb43092f4135c729b507e37f6333.json +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { r as GoogleMeetBrowserManualActionError, t as GOOGLE_MEET_BROWSER_NODE_ADAPTER } from "./google-meet-platform-constants-
|
|
1
|
+
import { r as GoogleMeetBrowserManualActionError, t as GOOGLE_MEET_BROWSER_NODE_ADAPTER } from "./google-meet-platform-constants-CnRfrYX7.mjs";
|
|
2
2
|
import { asFiniteNumber, asOptionalObjectRecord, asRecord, filterStringEntries, readStringValue } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
3
|
import { asMeetingBrowserTabs, callMeetingBrowserProxyOnNode, readMeetingBrowserTab, resolveMeetingBrowserNode, resolveMeetingBrowserNodeInfo } from "openclaw/plugin-sdk/meeting-runtime";
|
|
4
4
|
import { sleep } from "openclaw/plugin-sdk/runtime-env";
|
|
5
|
-
|
|
5
|
+
//#region extensions/google-meet/src/transports/chrome-browser-proxy.ts
|
|
6
6
|
async function resolveChromeNodeInfo(params) {
|
|
7
7
|
return await resolveMeetingBrowserNodeInfo({
|
|
8
8
|
...params,
|
|
@@ -21,7 +21,8 @@ async function callBrowserProxyOnNode(params) {
|
|
|
21
21
|
adapter: GOOGLE_MEET_BROWSER_NODE_ADAPTER
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
|
-
|
|
24
|
+
//#endregion
|
|
25
|
+
//#region extensions/google-meet/src/transports/google-meet-urls.ts
|
|
25
26
|
function forceMeetEnglishUi(url) {
|
|
26
27
|
const parsed = URL.parse(url);
|
|
27
28
|
if (!parsed) return url;
|
|
@@ -52,7 +53,8 @@ function isRecoverableMeetTab(tab, url) {
|
|
|
52
53
|
if (normalizeMeetUrlForReuse(tab.url)) return true;
|
|
53
54
|
return (tab.url ?? "").startsWith("https://accounts.google.com/") && /sign in|google accounts|meet/i.test(tab.title ?? "");
|
|
54
55
|
}
|
|
55
|
-
|
|
56
|
+
//#endregion
|
|
57
|
+
//#region extensions/google-meet/src/transports/chrome-create.ts
|
|
56
58
|
const GOOGLE_MEET_NEW_URL = "https://meet.google.com/new";
|
|
57
59
|
const GOOGLE_MEET_BROWSER_CREATE_TIMEOUT_MS = 6e4;
|
|
58
60
|
const GOOGLE_MEET_BROWSER_STEP_TIMEOUT_MS = 1e4;
|
|
@@ -250,4 +252,5 @@ async function createMeetWithBrowserProxyOnNode(params) {
|
|
|
250
252
|
}
|
|
251
253
|
throw new Error(lastResult?.manualAction?.message ?? `Google Meet did not return a meeting URL from the browser create flow before timeout.${lastError ? ` Last browser automation error: ${formatBrowserAutomationError(lastError)}` : ""}`);
|
|
252
254
|
}
|
|
255
|
+
//#endregion
|
|
253
256
|
export { isSameMeetUrlForReuse as a, callBrowserProxyOnNode as c, isRecoverableMeetTab as i, resolveChromeNode as l, forceMeetEnglishUi as n, normalizeMeetUrlForReuse as o, isEnglishMeetTab as r, readMeetAuthUser as s, createMeetWithBrowserProxyOnNode as t, resolveChromeNodeInfo as u };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { a as resolveArtifactQueryFromParams, c as resolveSpaceFromParams, d as endGoogleMeetActiveConference, f as fetchGoogleMeetSpace, h as listGoogleMeetCalendarEvents, l as buildGoogleMeetPreflightReport, m as buildGoogleMeetCalendarDayWindow, n as fetchResolvedGoogleMeetArtifacts, o as resolveGoogleMeetTokenFromParams, p as fetchLatestGoogleMeetConferenceRecord, r as fetchResolvedGoogleMeetAttendance, s as resolveMeetingFromParams, t as buildGoogleMeetExportRequest, u as createGoogleMeetSpace } from "./plugin-helpers-
|
|
2
|
-
import { i as resolveGoogleMeetGatewayOperationTimeoutMs } from "./config-
|
|
3
|
-
import { C as writeStdoutJson, S as writeSetupStatus, _ as resolveGoogleMeetOAuthCallbackTimeoutMs, a as renderAttendanceCsv, b as writeLeaveResult, c as callGoogleMeetGateway, d as parseGoogleMeetTransport, f as parseOptionalNumber, g as resolveCliJoinRequest, h as promptInput, i as renderAttendance, l as parseGoogleMeetBrowserTransport, m as parsePositiveNumber, n as exportGoogleMeetBundle, o as writeCalendarEventsSummary, p as parsePositiveIntegerOption, r as renderArtifacts, s as writeLatestConferenceRecordSummary, u as parseGoogleMeetMode, v as writeCliOutput, w as writeStdoutLine, x as writeRecoverCurrentTabResult, y as writeDoctorStatus } from "./cli-export-
|
|
4
|
-
import { buildGoogleMeetAuthUrl, exchangeGoogleMeetAuthCode, resolveGoogleMeetAccessToken, waitForGoogleMeetAuthCode } from "./oauth-
|
|
5
|
-
import { i as hasGoogleMeetOAuth, r as hasCreateSpaceConfigInput, t as createSpaceFromParams } from "./create-
|
|
1
|
+
import { a as resolveArtifactQueryFromParams, c as resolveSpaceFromParams, d as endGoogleMeetActiveConference, f as fetchGoogleMeetSpace, h as listGoogleMeetCalendarEvents, l as buildGoogleMeetPreflightReport, m as buildGoogleMeetCalendarDayWindow, n as fetchResolvedGoogleMeetArtifacts, o as resolveGoogleMeetTokenFromParams, p as fetchLatestGoogleMeetConferenceRecord, r as fetchResolvedGoogleMeetAttendance, s as resolveMeetingFromParams, t as buildGoogleMeetExportRequest, u as createGoogleMeetSpace } from "./plugin-helpers-D3VKNUTD.mjs";
|
|
2
|
+
import { i as resolveGoogleMeetGatewayOperationTimeoutMs } from "./config-BXGAMntj.mjs";
|
|
3
|
+
import { C as writeStdoutJson, S as writeSetupStatus, _ as resolveGoogleMeetOAuthCallbackTimeoutMs, a as renderAttendanceCsv, b as writeLeaveResult, c as callGoogleMeetGateway, d as parseGoogleMeetTransport, f as parseOptionalNumber, g as resolveCliJoinRequest, h as promptInput, i as renderAttendance, l as parseGoogleMeetBrowserTransport, m as parsePositiveNumber, n as exportGoogleMeetBundle, o as writeCalendarEventsSummary, p as parsePositiveIntegerOption, r as renderArtifacts, s as writeLatestConferenceRecordSummary, u as parseGoogleMeetMode, v as writeCliOutput, w as writeStdoutLine, x as writeRecoverCurrentTabResult, y as writeDoctorStatus } from "./cli-export-3ijBYTqg.mjs";
|
|
4
|
+
import { buildGoogleMeetAuthUrl, exchangeGoogleMeetAuthCode, resolveGoogleMeetAccessToken, waitForGoogleMeetAuthCode } from "./oauth-pXa-YQ9H.mjs";
|
|
5
|
+
import { i as hasGoogleMeetOAuth, r as hasCreateSpaceConfigInput, t as createSpaceFromParams } from "./create-DMUmVyQg.mjs";
|
|
6
6
|
import { parseStrictNonNegativeInteger } from "openclaw/plugin-sdk/number-runtime";
|
|
7
7
|
import { generateHexPkceVerifierChallenge } from "openclaw/plugin-sdk/provider-auth";
|
|
8
8
|
import { generateOAuthState } from "openclaw/plugin-sdk/provider-auth-runtime";
|
|
9
|
-
|
|
9
|
+
//#region extensions/google-meet/src/cli-command-context.ts
|
|
10
10
|
function addGoogleMeetOAuthOptions(command) {
|
|
11
11
|
return command.option("--access-token <token>", "Access token override").option("--refresh-token <token>", "Refresh token override").option("--client-id <id>", "OAuth client id override").option("--client-secret <secret>", "OAuth client secret override").option("--expires-at <ms>", "Cached access token expiry as unix epoch milliseconds");
|
|
12
12
|
}
|
|
@@ -40,7 +40,8 @@ async function callGoogleMeetRuntime(context, method, payload, local, timeoutMs)
|
|
|
40
40
|
});
|
|
41
41
|
return delegated.ok ? delegated.payload : local(await context.ensureRuntime());
|
|
42
42
|
}
|
|
43
|
-
|
|
43
|
+
//#endregion
|
|
44
|
+
//#region extensions/google-meet/src/cli-artifact-commands.ts
|
|
44
45
|
async function resolveCliArtifactQuery(context, options) {
|
|
45
46
|
const meeting = options.meeting?.trim() || context.config.defaults.meeting;
|
|
46
47
|
const conferenceRecord = options.conferenceRecord?.trim();
|
|
@@ -113,7 +114,8 @@ function registerGoogleMeetArtifactCommands(context) {
|
|
|
113
114
|
if (payload.zipFile) writeStdoutLine("zip: %s", payload.zipFile);
|
|
114
115
|
});
|
|
115
116
|
}
|
|
116
|
-
|
|
117
|
+
//#endregion
|
|
118
|
+
//#region extensions/google-meet/src/cli-doctor.ts
|
|
117
119
|
function sanitizeOAuthErrorMessage(error) {
|
|
118
120
|
return (error instanceof Error ? error.message : String(error)).replace(/(access_token["'=:\s]+)[^"',\s&]+/gi, "$1[redacted]").replace(/(refresh_token["'=:\s]+)[^"',\s&]+/gi, "$1[redacted]").replace(/(client_secret["'=:\s]+)[^"',\s&]+/gi, "$1[redacted]");
|
|
119
121
|
}
|
|
@@ -240,7 +242,8 @@ function registerGoogleMeetDoctorCommand(context) {
|
|
|
240
242
|
writeDoctorStatus(status);
|
|
241
243
|
});
|
|
242
244
|
}
|
|
243
|
-
|
|
245
|
+
//#endregion
|
|
246
|
+
//#region extensions/google-meet/src/cli-runtime-commands.ts
|
|
244
247
|
function registerGoogleMeetProbeCommands(context) {
|
|
245
248
|
const { root, operationTimeoutMs } = context;
|
|
246
249
|
root.command("join").argument("[url]", "Explicit https://meet.google.com/... URL").option("--transport <transport>", "Transport: chrome, chrome-node, or twilio").option("--mode <mode>", "Mode: agent, bidi, or transcribe").option("--message <text>", "Realtime speech to trigger after join").option("--dial-in-number <phone>", "Meet dial-in number for Twilio transport").option("--pin <pin>", "Meet phone PIN; # is appended if omitted").option("--dtmf-sequence <sequence>", "Explicit Twilio DTMF sequence").action(async (url, options) => {
|
|
@@ -326,7 +329,8 @@ function registerGoogleMeetLifecycleCommands(context) {
|
|
|
326
329
|
writeStdoutLine("speaking on %s", sessionId);
|
|
327
330
|
});
|
|
328
331
|
}
|
|
329
|
-
|
|
332
|
+
//#endregion
|
|
333
|
+
//#region extensions/google-meet/src/cli-space-commands.ts
|
|
330
334
|
function writeGoogleMeetCreateOutput(payload, json) {
|
|
331
335
|
if (json) {
|
|
332
336
|
writeStdoutJson(payload);
|
|
@@ -508,7 +512,8 @@ function registerGoogleMeetApiCommands(context) {
|
|
|
508
512
|
writeStdoutLine("token source: %s", token.refreshed ? "refresh-token" : "cached-access-token");
|
|
509
513
|
});
|
|
510
514
|
}
|
|
511
|
-
|
|
515
|
+
//#endregion
|
|
516
|
+
//#region extensions/google-meet/src/cli.ts
|
|
512
517
|
function registerGoogleMeetCli(params) {
|
|
513
518
|
const operationTimeoutMs = resolveGoogleMeetGatewayOperationTimeoutMs(params.config);
|
|
514
519
|
const root = params.program.command("googlemeet").description("Google Meet participant utilities").addHelpText("after", () => `\nDocs: https://docs.openclaw.ai/plugins/google-meet\n`);
|
|
@@ -566,4 +571,5 @@ function registerGoogleMeetCli(params) {
|
|
|
566
571
|
registerGoogleMeetDoctorCommand(context);
|
|
567
572
|
registerGoogleMeetLifecycleCommands(context);
|
|
568
573
|
}
|
|
574
|
+
//#endregion
|
|
569
575
|
export { registerGoogleMeetCli };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { g as __exportAll } from "./plugin-helpers-
|
|
1
|
+
import { g as __exportAll } from "./plugin-helpers-D3VKNUTD.mjs";
|
|
2
2
|
import { clampTimerTimeoutMs, parseStrictPositiveInteger } from "openclaw/plugin-sdk/number-runtime";
|
|
3
3
|
import fsp, { stat } from "node:fs/promises";
|
|
4
4
|
import path from "node:path";
|
|
@@ -8,7 +8,7 @@ import { createInterface } from "node:readline/promises";
|
|
|
8
8
|
import { format } from "node:util";
|
|
9
9
|
import { callGatewayFromCli, isGatewayClientRequestError, isGatewayTransportError } from "openclaw/plugin-sdk/gateway-runtime";
|
|
10
10
|
import { formatDurationCompact } from "openclaw/plugin-sdk/time-runtime";
|
|
11
|
-
|
|
11
|
+
//#region extensions/google-meet/src/cli-shared.ts
|
|
12
12
|
const GOOGLE_MEET_GATEWAY_DEFAULT_TIMEOUT_MS = 5e3;
|
|
13
13
|
const PLAIN_DECIMAL_NUMBER_RE = /^\d+(?:\.\d+)?$/;
|
|
14
14
|
function parseGoogleMeetMode(value) {
|
|
@@ -244,7 +244,8 @@ function writeLeaveResult(sessionId, result) {
|
|
|
244
244
|
}
|
|
245
245
|
writeStdoutLine("left %s", sessionId);
|
|
246
246
|
}
|
|
247
|
-
|
|
247
|
+
//#endregion
|
|
248
|
+
//#region extensions/google-meet/src/cli-export.ts
|
|
248
249
|
var cli_export_exports = /* @__PURE__ */ __exportAll({
|
|
249
250
|
buildGoogleMeetExportManifest: () => buildGoogleMeetExportManifest,
|
|
250
251
|
exportGoogleMeetBundle: () => exportGoogleMeetBundle,
|
|
@@ -628,4 +629,5 @@ async function exportGoogleMeetBundle(params) {
|
|
|
628
629
|
...metadata
|
|
629
630
|
};
|
|
630
631
|
}
|
|
632
|
+
//#endregion
|
|
631
633
|
export { writeStdoutJson as C, writeSetupStatus as S, resolveGoogleMeetOAuthCallbackTimeoutMs as _, renderAttendanceCsv as a, writeLeaveResult as b, callGoogleMeetGateway as c, parseGoogleMeetTransport as d, parseOptionalNumber as f, resolveCliJoinRequest as g, promptInput as h, renderAttendance as i, parseGoogleMeetBrowserTransport as l, parsePositiveNumber as m, exportGoogleMeetBundle as n, writeCalendarEventsSummary as o, parsePositiveIntegerOption as p, renderArtifacts as r, writeLatestConferenceRecordSummary as s, cli_export_exports as t, parseGoogleMeetMode as u, writeCliOutput as v, writeStdoutLine as w, writeRecoverCurrentTabResult as x, writeDoctorStatus as y };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getRootOptionAwareCommandPath } from "openclaw/plugin-sdk/cli-argv";
|
|
2
|
-
|
|
2
|
+
//#region extensions/google-meet/src/cli-output-mode.ts
|
|
3
3
|
const DEFAULT_JSON_COMMANDS = /* @__PURE__ */ new Set([
|
|
4
4
|
"join",
|
|
5
5
|
"status",
|
|
@@ -24,4 +24,5 @@ const GOOGLE_MEET_CLI_DESCRIPTOR = {
|
|
|
24
24
|
hasSubcommands: true,
|
|
25
25
|
machineOutput: isGoogleMeetMachineOutput
|
|
26
26
|
};
|
|
27
|
+
//#endregion
|
|
27
28
|
export { GOOGLE_MEET_CLI_DESCRIPTOR as t };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { asBoolean, asRecord, normalizeOptionalLowercaseString, normalizeOptionalString, normalizeOptionalTrimmedStringList, parseBooleanValue, readStringValue } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
2
2
|
import { addTimerTimeoutGraceMs, asPositiveFiniteNumber, resolvePositiveTimerTimeoutMs } from "openclaw/plugin-sdk/number-runtime";
|
|
3
3
|
import { REALTIME_VOICE_AGENT_CONSULT_TOOL_NAME, resolveRealtimeVoiceAgentConsultToolPolicy } from "openclaw/plugin-sdk/realtime-voice";
|
|
4
|
-
|
|
4
|
+
//#region extensions/google-meet/src/config.ts
|
|
5
5
|
function resolveGoogleMeetGatewayOperationTimeoutMs(config) {
|
|
6
6
|
return Math.max(6e4, addTimerTimeoutGraceMs(config.chrome.joinTimeoutMs, 3e4) ?? 1, addTimerTimeoutGraceMs(config.voiceCall.requestTimeoutMs, 1e4) ?? 1);
|
|
7
7
|
}
|
|
@@ -236,4 +236,5 @@ function resolveGoogleMeetConfig(input) {
|
|
|
236
236
|
}
|
|
237
237
|
};
|
|
238
238
|
}
|
|
239
|
+
//#endregion
|
|
239
240
|
export { resolveGoogleMeetGatewayOperationTimeoutMs as i, DEFAULT_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND as n, resolveGoogleMeetConfig as r, DEFAULT_GOOGLE_MEET_AUDIO_INPUT_COMMAND as t };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { g as __exportAll, o as resolveGoogleMeetTokenFromParams, u as createGoogleMeetSpace } from "./plugin-helpers-
|
|
2
|
-
import { d as normalizeMode, f as normalizeTransport } from "./plugin-registration-
|
|
3
|
-
import { t as createMeetWithBrowserProxyOnNode } from "./chrome-create-
|
|
1
|
+
import { g as __exportAll, o as resolveGoogleMeetTokenFromParams, u as createGoogleMeetSpace } from "./plugin-helpers-D3VKNUTD.mjs";
|
|
2
|
+
import { d as normalizeMode, f as normalizeTransport } from "./plugin-registration-1Oc4T1Bj.mjs";
|
|
3
|
+
import { t as createMeetWithBrowserProxyOnNode } from "./chrome-create-CW_QQzuj.mjs";
|
|
4
4
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
5
|
-
|
|
5
|
+
//#region extensions/google-meet/src/create.ts
|
|
6
6
|
var create_exports = /* @__PURE__ */ __exportAll({
|
|
7
7
|
createAndJoinMeetFromParams: () => createAndJoinMeetFromParams,
|
|
8
8
|
createMeetFromParams: () => createMeetFromParams,
|
|
@@ -101,4 +101,5 @@ async function createAndJoinMeetFromParams(params) {
|
|
|
101
101
|
join
|
|
102
102
|
};
|
|
103
103
|
}
|
|
104
|
+
//#endregion
|
|
104
105
|
export { hasGoogleMeetOAuth as i, create_exports as n, hasCreateSpaceConfigInput as r, createSpaceFromParams as t };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { readResponseTextLimited } from "openclaw/plugin-sdk/provider-http";
|
|
2
2
|
import { fetchWithSsrFGuard } from "openclaw/plugin-sdk/ssrf-runtime";
|
|
3
|
-
|
|
3
|
+
//#region extensions/google-meet/src/google-api.ts
|
|
4
4
|
const REAUTH_HINT = "Re-run `openclaw googlemeet auth login` and store the refreshed oauth block.";
|
|
5
5
|
const GOOGLE_API_ERROR_BODY_LIMIT_BYTES = 8192;
|
|
6
6
|
async function readGoogleApiErrorDetail(response) {
|
|
@@ -38,4 +38,5 @@ async function requestGoogleApi(params, read) {
|
|
|
38
38
|
await release();
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
+
//#endregion
|
|
41
42
|
export { requestGoogleApi as n, readGoogleApiErrorDetail as t };
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { n as GOOGLE_MEET_NODE_COMMAND } from "./google-meet-platform-constants-
|
|
2
|
-
import { t as normalizeMeetUrl } from "./meet-url-
|
|
3
|
-
import { a as isSameMeetUrlForReuse, i as isRecoverableMeetTab, n as forceMeetEnglishUi, o as normalizeMeetUrlForReuse, r as isEnglishMeetTab, s as readMeetAuthUser, t as createMeetWithBrowserProxyOnNode } from "./chrome-create-
|
|
1
|
+
import { n as GOOGLE_MEET_NODE_COMMAND } from "./google-meet-platform-constants-CnRfrYX7.mjs";
|
|
2
|
+
import { t as normalizeMeetUrl } from "./meet-url-i_QvIxnP.mjs";
|
|
3
|
+
import { a as isSameMeetUrlForReuse, i as isRecoverableMeetTab, n as forceMeetEnglishUi, o as normalizeMeetUrlForReuse, r as isEnglishMeetTab, s as readMeetAuthUser, t as createMeetWithBrowserProxyOnNode } from "./chrome-create-CW_QQzuj.mjs";
|
|
4
4
|
import { asRecord, filterStringEntries, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
5
5
|
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
6
6
|
import { MeetingPlatformAdapter } from "openclaw/plugin-sdk/meeting-runtime";
|
|
7
7
|
import { createMeetingBrowserAudioCaptureSource } from "openclaw/plugin-sdk/meeting-page-script-runtime";
|
|
8
|
-
|
|
8
|
+
//#region extensions/google-meet/src/transports/types.ts
|
|
9
9
|
const GOOGLE_MEET_TRANSCRIPT_MAX_LINES = 2e3;
|
|
10
|
-
|
|
10
|
+
//#endregion
|
|
11
|
+
//#region extensions/google-meet/src/transports/google-meet-caption-scripts.ts
|
|
11
12
|
const CAPTION_LINE_COMMIT_SOURCE = `
|
|
12
13
|
const captionSelf = (value) => value === true ? "self" : value === false ? "other" : "unknown";
|
|
13
14
|
const captionHistoryKey = (text, ownEcho) => JSON.stringify([text, captionSelf(ownEcho)]);
|
|
@@ -112,7 +113,8 @@ function meetTranscriptScript(meetingUrl, meetingSessionId, finalize) {
|
|
|
112
113
|
});
|
|
113
114
|
}`;
|
|
114
115
|
}
|
|
115
|
-
|
|
116
|
+
//#endregion
|
|
117
|
+
//#region extensions/google-meet/src/transports/google-meet-caption-observer-source.ts
|
|
116
118
|
const GOOGLE_MEET_CAPTION_SETTLE_MS = 1e3;
|
|
117
119
|
const GOOGLE_MEET_CAPTION_OBSERVER_SOURCE = `
|
|
118
120
|
let captioning = false;
|
|
@@ -337,7 +339,8 @@ const GOOGLE_MEET_CAPTION_OBSERVER_SOURCE = `
|
|
|
337
339
|
recentTranscript = lines.slice(-5).map(captionLine);
|
|
338
340
|
}
|
|
339
341
|
`;
|
|
340
|
-
|
|
342
|
+
//#endregion
|
|
343
|
+
//#region extensions/google-meet/src/transports/google-meet-page-scripts.ts
|
|
341
344
|
function meetAudioCaptureScript(params) {
|
|
342
345
|
return createMeetingBrowserAudioCaptureSource({
|
|
343
346
|
...params,
|
|
@@ -772,7 +775,8 @@ function meetLeaveScript(meetingUrl) {
|
|
|
772
775
|
return JSON.stringify({ departed: false, urlMatched: true });
|
|
773
776
|
}`;
|
|
774
777
|
}
|
|
775
|
-
|
|
778
|
+
//#endregion
|
|
779
|
+
//#region extensions/google-meet/src/transports/twilio.ts
|
|
776
780
|
const DTMF_PATTERN = /^[0-9*#wWpP,]+$/;
|
|
777
781
|
function normalizeDialInNumber(value) {
|
|
778
782
|
const normalized = normalizeOptionalString(value);
|
|
@@ -802,7 +806,8 @@ function prefixDtmfWait(sequence, delayMs) {
|
|
|
802
806
|
const waitCount = Math.ceil(delayMs / 500);
|
|
803
807
|
return `${"w".repeat(waitCount)}${sequence}`;
|
|
804
808
|
}
|
|
805
|
-
|
|
809
|
+
//#endregion
|
|
810
|
+
//#region extensions/google-meet/src/transports/google-meet-platform-adapter.ts
|
|
806
811
|
function parsePermissionGrantNotes(result) {
|
|
807
812
|
const unsupportedPermissions = filterStringEntries(asRecord(result).unsupportedPermissions);
|
|
808
813
|
const notes = ["Granted Meet microphone/camera permissions through browser control."];
|
|
@@ -919,4 +924,5 @@ const GOOGLE_MEET_PLATFORM_ADAPTER = MeetingPlatformAdapter.create({
|
|
|
919
924
|
statusFields: (parsed) => ({ leaveReason: typeof parsed.leaveReason === "string" ? parsed.leaveReason : void 0 })
|
|
920
925
|
}
|
|
921
926
|
});
|
|
927
|
+
//#endregion
|
|
922
928
|
export { normalizeDialInNumber as n, GOOGLE_MEET_PLATFORM_ADAPTER as t };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
//#region extensions/google-meet/src/browser-manual-action-error.ts
|
|
2
2
|
var GoogleMeetBrowserManualActionError = class extends Error {
|
|
3
3
|
constructor(payload) {
|
|
4
4
|
super(`${payload.manualAction.reason}: ${payload.manualAction.message}`);
|
|
@@ -10,11 +10,13 @@ var GoogleMeetBrowserManualActionError = class extends Error {
|
|
|
10
10
|
};
|
|
11
11
|
}
|
|
12
12
|
};
|
|
13
|
-
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region extensions/google-meet/src/transports/google-meet-platform-constants.ts
|
|
14
15
|
const GOOGLE_MEET_NODE_COMMAND = "googlemeet.chrome";
|
|
15
16
|
const GOOGLE_MEET_BROWSER_NODE_ADAPTER = {
|
|
16
17
|
displayName: "Google Meet",
|
|
17
18
|
nodeCommandName: GOOGLE_MEET_NODE_COMMAND,
|
|
18
19
|
nodeConfigPath: "plugins.entries.google-meet.config.chromeNode.node"
|
|
19
20
|
};
|
|
21
|
+
//#endregion
|
|
20
22
|
export { GOOGLE_MEET_NODE_COMMAND as n, GoogleMeetBrowserManualActionError as r, GOOGLE_MEET_BROWSER_NODE_ADAPTER as t };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
2
|
-
|
|
2
|
+
//#region extensions/google-meet/src/meet-url.ts
|
|
3
3
|
function normalizeMeetUrl(input) {
|
|
4
4
|
const raw = normalizeOptionalString(input);
|
|
5
5
|
if (!raw) throw new Error("url required");
|
|
@@ -9,4 +9,5 @@ function normalizeMeetUrl(input) {
|
|
|
9
9
|
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");
|
|
10
10
|
return url.toString();
|
|
11
11
|
}
|
|
12
|
+
//#endregion
|
|
12
13
|
export { normalizeMeetUrl as t };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { n as GOOGLE_MEET_NODE_COMMAND } from "./google-meet-platform-constants-
|
|
2
|
-
import { n as DEFAULT_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND, t as DEFAULT_GOOGLE_MEET_AUDIO_INPUT_COMMAND } from "./config-
|
|
3
|
-
import { t as GOOGLE_MEET_PLATFORM_ADAPTER } from "./google-meet-platform-adapter-
|
|
1
|
+
import { n as GOOGLE_MEET_NODE_COMMAND } from "./google-meet-platform-constants-CnRfrYX7.mjs";
|
|
2
|
+
import { n as DEFAULT_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND, t as DEFAULT_GOOGLE_MEET_AUDIO_INPUT_COMMAND } from "./config-BXGAMntj.mjs";
|
|
3
|
+
import { t as GOOGLE_MEET_PLATFORM_ADAPTER } from "./google-meet-platform-adapter-Bz77Bdt-.mjs";
|
|
4
4
|
import { MeetingPlatformAdapter } from "openclaw/plugin-sdk/meeting-runtime";
|
|
5
|
-
|
|
5
|
+
//#region extensions/google-meet/src/node-host.ts
|
|
6
6
|
function normalizeMeetKey(value) {
|
|
7
7
|
if (!value) return;
|
|
8
8
|
const url = URL.parse(value);
|
|
@@ -38,4 +38,5 @@ const handleGoogleMeetNodeHostCommand = MeetingPlatformAdapter.createNodeHostHan
|
|
|
38
38
|
openedNotes: ["Browser page control is handled by OpenClaw browser automation when using chrome-node."]
|
|
39
39
|
}
|
|
40
40
|
});
|
|
41
|
+
//#endregion
|
|
41
42
|
export { handleGoogleMeetNodeHostCommand };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { n as GOOGLE_MEET_NODE_COMMAND } from "./google-meet-platform-constants-
|
|
2
|
-
import { t as GOOGLE_MEET_PLATFORM_ADAPTER } from "./google-meet-platform-adapter-
|
|
1
|
+
import { n as GOOGLE_MEET_NODE_COMMAND } from "./google-meet-platform-constants-CnRfrYX7.mjs";
|
|
2
|
+
import { t as GOOGLE_MEET_PLATFORM_ADAPTER } from "./google-meet-platform-adapter-Bz77Bdt-.mjs";
|
|
3
3
|
import { createMeetingBrowserNodeInvokePolicy } from "openclaw/plugin-sdk/meeting-runtime";
|
|
4
|
-
|
|
4
|
+
//#region extensions/google-meet/src/node-invoke-policy.ts
|
|
5
5
|
const START_MODES = /* @__PURE__ */ new Set([
|
|
6
6
|
"agent",
|
|
7
7
|
"bidi",
|
|
@@ -19,4 +19,5 @@ function createGoogleMeetChromeNodeInvokePolicy(config) {
|
|
|
19
19
|
start: config.chrome
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
|
+
//#endregion
|
|
22
23
|
export { createGoogleMeetChromeNodeInvokePolicy };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { t as readGoogleApiErrorDetail } from "./google-api-
|
|
1
|
+
import { t as readGoogleApiErrorDetail } from "./google-api-KAOF1Wn5.mjs";
|
|
2
2
|
import { MAX_DATE_TIMESTAMP_MS, resolveDateTimestampMs, resolveExpiresAtMsFromDurationSeconds } from "openclaw/plugin-sdk/number-runtime";
|
|
3
3
|
import { readProviderJsonResponse } from "openclaw/plugin-sdk/provider-http";
|
|
4
4
|
import { fetchWithSsrFGuard } from "openclaw/plugin-sdk/ssrf-runtime";
|
|
5
5
|
import { parseOAuthCallbackInput, waitForLocalOAuthCallback } from "openclaw/plugin-sdk/provider-auth-runtime";
|
|
6
|
-
|
|
6
|
+
//#region extensions/google-meet/src/oauth.ts
|
|
7
7
|
const GOOGLE_MEET_REDIRECT_URI = "http://localhost:8085/oauth2callback";
|
|
8
8
|
const GOOGLE_MEET_AUTH_URL = "https://accounts.google.com/o/oauth2/v2/auth";
|
|
9
9
|
const GOOGLE_MEET_TOKEN_URL = "https://oauth2.googleapis.com/token";
|
|
@@ -155,4 +155,5 @@ async function waitForGoogleMeetAuthCode(params) {
|
|
|
155
155
|
});
|
|
156
156
|
}
|
|
157
157
|
}
|
|
158
|
+
//#endregion
|
|
158
159
|
export { buildGoogleMeetAuthUrl, exchangeGoogleMeetAuthCode, resolveGoogleMeetAccessToken, waitForGoogleMeetAuthCode };
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { m as resolveMeetingInput } from "./plugin-registration-
|
|
2
|
-
import { n as requestGoogleApi } from "./google-api-
|
|
3
|
-
import { t as normalizeMeetUrl } from "./meet-url-
|
|
1
|
+
import { m as resolveMeetingInput } from "./plugin-registration-1Oc4T1Bj.mjs";
|
|
2
|
+
import { n as requestGoogleApi } from "./google-api-KAOF1Wn5.mjs";
|
|
3
|
+
import { t as normalizeMeetUrl } from "./meet-url-i_QvIxnP.mjs";
|
|
4
4
|
import { normalizeOptionalString, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
5
5
|
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
6
6
|
import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
|
|
7
7
|
import { parseDateStringTimestampMs, timestampMsToIsoString } from "openclaw/plugin-sdk/number-runtime";
|
|
8
8
|
import { readPositiveIntegerParam } from "openclaw/plugin-sdk/channel-actions";
|
|
9
9
|
import { readProviderJsonResponse, readProviderTextResponse } from "openclaw/plugin-sdk/provider-http";
|
|
10
|
-
|
|
10
|
+
//#region \0rolldown/runtime.js
|
|
11
11
|
var __defProp = Object.defineProperty;
|
|
12
12
|
var __exportAll = (all, no_symbols) => {
|
|
13
13
|
let target = {};
|
|
@@ -18,7 +18,8 @@ var __exportAll = (all, no_symbols) => {
|
|
|
18
18
|
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
19
19
|
return target;
|
|
20
20
|
};
|
|
21
|
-
|
|
21
|
+
//#endregion
|
|
22
|
+
//#region extensions/google-meet/src/calendar.ts
|
|
22
23
|
const GOOGLE_CALENDAR_API_BASE_URL = "https://www.googleapis.com/calendar/v3";
|
|
23
24
|
const GOOGLE_CALENDAR_API_HOST = "www.googleapis.com";
|
|
24
25
|
const GOOGLE_CALENDAR_EVENTS_SCOPE = "https://www.googleapis.com/auth/calendar.events.readonly";
|
|
@@ -139,7 +140,8 @@ async function findGoogleMeetCalendarEvent(params) {
|
|
|
139
140
|
meetingUri: selected.meetingUri
|
|
140
141
|
};
|
|
141
142
|
}
|
|
142
|
-
|
|
143
|
+
//#endregion
|
|
144
|
+
//#region extensions/google-meet/src/meet-api.ts
|
|
143
145
|
const GOOGLE_MEET_API_BASE_URL = `https://meet.googleapis.com/v2`;
|
|
144
146
|
const GOOGLE_MEET_URL_HOST = "meet.google.com";
|
|
145
147
|
const GOOGLE_MEET_API_HOST = "meet.googleapis.com";
|
|
@@ -359,7 +361,8 @@ async function resolveConferenceRecordQuery(params) {
|
|
|
359
361
|
conferenceRecords
|
|
360
362
|
};
|
|
361
363
|
}
|
|
362
|
-
|
|
364
|
+
//#endregion
|
|
365
|
+
//#region extensions/google-meet/src/drive.ts
|
|
363
366
|
const GOOGLE_DRIVE_API_BASE_URL = "https://www.googleapis.com/drive/v3";
|
|
364
367
|
const GOOGLE_DRIVE_API_HOST = "www.googleapis.com";
|
|
365
368
|
const GOOGLE_DRIVE_MEET_SCOPE = "https://www.googleapis.com/auth/drive.meet.readonly";
|
|
@@ -383,7 +386,8 @@ async function exportGoogleDriveDocumentText(params) {
|
|
|
383
386
|
accept: TEXT_PLAIN_MIME
|
|
384
387
|
}, (response) => readProviderTextResponse(response, "Google Drive files.export"));
|
|
385
388
|
}
|
|
386
|
-
|
|
389
|
+
//#endregion
|
|
390
|
+
//#region extensions/google-meet/src/meet.ts
|
|
387
391
|
function getParticipantDisplayName(participant) {
|
|
388
392
|
return participant.signedinUser?.displayName ?? participant.anonymousUser?.displayName ?? participant.phoneUser?.displayName;
|
|
389
393
|
}
|
|
@@ -577,7 +581,8 @@ function buildGoogleMeetPreflightReport(params) {
|
|
|
577
581
|
blockers
|
|
578
582
|
};
|
|
579
583
|
}
|
|
580
|
-
|
|
584
|
+
//#endregion
|
|
585
|
+
//#region extensions/google-meet/src/plugin-helpers.ts
|
|
581
586
|
var plugin_helpers_exports = /* @__PURE__ */ __exportAll({
|
|
582
587
|
buildGoogleMeetCalendarDayWindow: () => buildGoogleMeetCalendarDayWindow,
|
|
583
588
|
buildGoogleMeetExportRequest: () => buildGoogleMeetExportRequest,
|
|
@@ -593,9 +598,9 @@ var plugin_helpers_exports = /* @__PURE__ */ __exportAll({
|
|
|
593
598
|
resolveMeetingFromParams: () => resolveMeetingFromParams,
|
|
594
599
|
resolveSpaceFromParams: () => resolveSpaceFromParams
|
|
595
600
|
});
|
|
596
|
-
const loadGoogleMeetExportModule = createLazyRuntimeModule(() => import("./cli-export-
|
|
601
|
+
const loadGoogleMeetExportModule = createLazyRuntimeModule(() => import("./cli-export-3ijBYTqg.mjs").then((n) => n.t));
|
|
597
602
|
async function resolveGoogleMeetTokenFromParams(config, raw) {
|
|
598
|
-
const { resolveGoogleMeetAccessToken } = await import("./oauth-
|
|
603
|
+
const { resolveGoogleMeetAccessToken } = await import("./oauth-pXa-YQ9H.mjs");
|
|
599
604
|
return resolveGoogleMeetAccessToken({
|
|
600
605
|
clientId: normalizeOptionalString(raw.clientId) ?? config.oauth.clientId,
|
|
601
606
|
clientSecret: normalizeOptionalString(raw.clientSecret) ?? config.oauth.clientSecret,
|
|
@@ -707,4 +712,5 @@ async function exportGoogleMeetBundleFromParams(config, raw) {
|
|
|
707
712
|
dryRun: raw.dryRun === true
|
|
708
713
|
});
|
|
709
714
|
}
|
|
715
|
+
//#endregion
|
|
710
716
|
export { resolveArtifactQueryFromParams as a, resolveSpaceFromParams as c, endGoogleMeetActiveConference as d, fetchGoogleMeetSpace as f, __exportAll as g, listGoogleMeetCalendarEvents as h, plugin_helpers_exports as i, buildGoogleMeetPreflightReport as l, buildGoogleMeetCalendarDayWindow as m, fetchResolvedGoogleMeetArtifacts as n, resolveGoogleMeetTokenFromParams as o, fetchLatestGoogleMeetConferenceRecord as p, fetchResolvedGoogleMeetAttendance as r, resolveMeetingFromParams as s, buildGoogleMeetExportRequest as t, createGoogleMeetSpace as u };
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { n as GOOGLE_MEET_NODE_COMMAND, r as GoogleMeetBrowserManualActionError } from "./google-meet-platform-constants-
|
|
2
|
-
import { i as resolveGoogleMeetGatewayOperationTimeoutMs } from "./config-
|
|
1
|
+
import { n as GOOGLE_MEET_NODE_COMMAND, r as GoogleMeetBrowserManualActionError } from "./google-meet-platform-constants-CnRfrYX7.mjs";
|
|
2
|
+
import { i as resolveGoogleMeetGatewayOperationTimeoutMs } from "./config-BXGAMntj.mjs";
|
|
3
3
|
import { asNonArrayRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
4
4
|
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
5
5
|
import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
|
|
6
|
-
|
|
7
|
-
const loadGoogleMeetPluginHelpers = createLazyRuntimeModule(() => import("./plugin-helpers-
|
|
8
|
-
const loadGoogleMeetCliModule = createLazyRuntimeModule(() => import("./cli-
|
|
9
|
-
const loadGoogleMeetCreateModule = createLazyRuntimeModule(() => import("./create-
|
|
10
|
-
const loadGoogleMeetNodeHostModule = createLazyRuntimeModule(() => import("./node-host-
|
|
11
|
-
const loadGoogleMeetRuntimeModule = createLazyRuntimeModule(() => import("./runtime-
|
|
12
|
-
const loadGoogleMeetNodeInvokePolicyModule = createLazyRuntimeModule(() => import("./node-invoke-policy-
|
|
6
|
+
//#region extensions/google-meet/src/plugin-registration.ts
|
|
7
|
+
const loadGoogleMeetPluginHelpers = createLazyRuntimeModule(() => import("./plugin-helpers-D3VKNUTD.mjs").then((n) => n.i));
|
|
8
|
+
const loadGoogleMeetCliModule = createLazyRuntimeModule(() => import("./cli-CBLj67Qo.mjs"));
|
|
9
|
+
const loadGoogleMeetCreateModule = createLazyRuntimeModule(() => import("./create-DMUmVyQg.mjs").then((n) => n.n));
|
|
10
|
+
const loadGoogleMeetNodeHostModule = createLazyRuntimeModule(() => import("./node-host-BP4g4zw3.mjs"));
|
|
11
|
+
const loadGoogleMeetRuntimeModule = createLazyRuntimeModule(() => import("./runtime-2_R9PsRx.mjs"));
|
|
12
|
+
const loadGoogleMeetNodeInvokePolicyModule = createLazyRuntimeModule(() => import("./node-invoke-policy-67WaZNPN.mjs"));
|
|
13
13
|
const loadGoogleMeetGatewayRuntimeModule = createLazyRuntimeModule(() => import("openclaw/plugin-sdk/gateway-runtime"));
|
|
14
14
|
function normalizeTransport(value) {
|
|
15
15
|
return value === "chrome" || value === "chrome-node" || value === "twilio" ? value : void 0;
|
|
@@ -168,4 +168,5 @@ function sendGoogleMeetGatewayError(respond, err, code = "UNAVAILABLE") {
|
|
|
168
168
|
details: payload
|
|
169
169
|
});
|
|
170
170
|
}
|
|
171
|
+
//#endregion
|
|
171
172
|
export { formatGoogleMeetGatewayError as a, loadGoogleMeetCreateModule as c, normalizeMode as d, normalizeTransport as f, shouldJoinCreatedMeet as g, sendGoogleMeetGatewayError as h, createLazyGoogleMeetNodeInvokePolicy as i, loadGoogleMeetNodeHostModule as l, resolveMeetingInput as m, callGoogleMeetGatewayFromTool as n, keepTrustedToolAgentId as o, readGoogleMeetParticipationParams as p, createGoogleMeetRuntimeAccessor as r, loadGoogleMeetCliModule as s, assertGoogleMeetAgentToolActionSupported as t, loadGoogleMeetPluginHelpers as u };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { n as GOOGLE_MEET_NODE_COMMAND, t as GOOGLE_MEET_BROWSER_NODE_ADAPTER } from "./google-meet-platform-constants-
|
|
2
|
-
import { t as normalizeMeetUrl } from "./meet-url-
|
|
3
|
-
import { c as callBrowserProxyOnNode, l as resolveChromeNode, u as resolveChromeNodeInfo } from "./chrome-create-
|
|
4
|
-
import { n as normalizeDialInNumber, t as GOOGLE_MEET_PLATFORM_ADAPTER } from "./google-meet-platform-adapter-
|
|
1
|
+
import { n as GOOGLE_MEET_NODE_COMMAND, t as GOOGLE_MEET_BROWSER_NODE_ADAPTER } from "./google-meet-platform-constants-CnRfrYX7.mjs";
|
|
2
|
+
import { t as normalizeMeetUrl } from "./meet-url-i_QvIxnP.mjs";
|
|
3
|
+
import { c as callBrowserProxyOnNode, l as resolveChromeNode, u as resolveChromeNodeInfo } from "./chrome-create-CW_QQzuj.mjs";
|
|
4
|
+
import { n as normalizeDialInNumber, t as GOOGLE_MEET_PLATFORM_ADAPTER } from "./google-meet-platform-adapter-Bz77Bdt-.mjs";
|
|
5
5
|
import { asOptionalRecord, asRecord, normalizeOptionalString, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
6
6
|
import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
|
|
7
7
|
import path from "node:path";
|
|
@@ -14,7 +14,7 @@ import { normalizeAgentId } from "openclaw/plugin-sdk/routing";
|
|
|
14
14
|
import fs from "node:fs";
|
|
15
15
|
import os from "node:os";
|
|
16
16
|
import { resolveTranscriptsConfig } from "openclaw/plugin-sdk/transcripts";
|
|
17
|
-
|
|
17
|
+
//#region extensions/google-meet/src/runtime-probes.ts
|
|
18
18
|
const probes = MeetingPlatformAdapter.createRuntimeProbes({
|
|
19
19
|
defaultSpeechMessage: "Say exactly: Google Meet speech test complete.",
|
|
20
20
|
invalidRequest: (message) => new Error(message),
|
|
@@ -34,7 +34,8 @@ const probes = MeetingPlatformAdapter.createRuntimeProbes({
|
|
|
34
34
|
});
|
|
35
35
|
const testGoogleMeetListening = probes.testListening;
|
|
36
36
|
const testGoogleMeetSpeech = probes.testSpeech;
|
|
37
|
-
|
|
37
|
+
//#endregion
|
|
38
|
+
//#region extensions/google-meet/src/setup.ts
|
|
38
39
|
function resolveUserPath(input) {
|
|
39
40
|
if (input === "~") return os.homedir();
|
|
40
41
|
if (input.startsWith("~/")) return path.join(os.homedir(), input.slice(2));
|
|
@@ -168,7 +169,8 @@ function getGoogleMeetSetupStatus(config, options) {
|
|
|
168
169
|
}
|
|
169
170
|
return createMeetingSetupStatus(checks);
|
|
170
171
|
}
|
|
171
|
-
|
|
172
|
+
//#endregion
|
|
173
|
+
//#region extensions/google-meet/src/transports/chrome.ts
|
|
172
174
|
const chromeTransport = MeetingPlatformAdapter.createChromeTransportWithExternalAudio({
|
|
173
175
|
browserNodeAdapter: GOOGLE_MEET_BROWSER_NODE_ADAPTER,
|
|
174
176
|
isRealtimeRouteReady: (mode, health) => !MeetingPlatformAdapter.isTalkBackMode(mode) || MeetingPlatformAdapter.isRealtimeRouteReady(mode, health),
|
|
@@ -250,7 +252,8 @@ async function recoverCurrentMeetTab(params) {
|
|
|
250
252
|
})
|
|
251
253
|
};
|
|
252
254
|
}
|
|
253
|
-
|
|
255
|
+
//#endregion
|
|
256
|
+
//#region extensions/google-meet/src/runtime-setup.ts
|
|
254
257
|
function collectChromeAudioCommands(config) {
|
|
255
258
|
const commands = config.chrome.audioBridgeCommand ? [config.chrome.audioBridgeCommand[0]] : [
|
|
256
259
|
config.chrome.audioInputCommand?.[0],
|
|
@@ -350,7 +353,8 @@ async function getGoogleMeetRuntimeSetupStatus(params) {
|
|
|
350
353
|
message: commands.length === 0 ? "Chrome talk-back audio commands are not configured" : missingCommands.length === 0 ? `Chrome audio command${commands.length === 1 ? "" : "s"} available: ${commands.join(", ")}` : `Chrome audio command${missingCommands.length === 1 ? "" : "s"} missing: ${missingCommands.join(", ")}`
|
|
351
354
|
});
|
|
352
355
|
}
|
|
353
|
-
|
|
356
|
+
//#endregion
|
|
357
|
+
//#region extensions/google-meet/src/voice-call-gateway.ts
|
|
354
358
|
const GOOGLE_MEET_VOICE_CALL_SURFACE = {
|
|
355
359
|
clientDisplayName: "Google Meet plugin",
|
|
356
360
|
configPath: "google-meet voiceCall.gatewayUrl",
|
|
@@ -410,7 +414,8 @@ async function joinMeetViaVoiceCallGateway(params) {
|
|
|
410
414
|
surface: GOOGLE_MEET_VOICE_CALL_SURFACE
|
|
411
415
|
});
|
|
412
416
|
}
|
|
413
|
-
|
|
417
|
+
//#endregion
|
|
418
|
+
//#region extensions/google-meet/src/runtime.ts
|
|
414
419
|
const nowIso = () => (/* @__PURE__ */ new Date()).toISOString();
|
|
415
420
|
function isBrowserTransport(transport) {
|
|
416
421
|
return transport === "chrome" || transport === "chrome-node";
|
|
@@ -849,4 +854,5 @@ var GoogleMeetRuntime = class extends MeetingSessionRuntime {
|
|
|
849
854
|
return left;
|
|
850
855
|
}
|
|
851
856
|
};
|
|
857
|
+
//#endregion
|
|
852
858
|
export { GoogleMeetRuntime };
|
package/dist/cli-metadata.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { t as GOOGLE_MEET_CLI_DESCRIPTOR } from "./.setup/cli-output-mode-
|
|
1
|
+
import { t as GOOGLE_MEET_CLI_DESCRIPTOR } from "./.setup/cli-output-mode-BwH_6tH8.mjs";
|
|
2
2
|
import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
|
|
3
|
-
|
|
3
|
+
//#region extensions/google-meet/cli-metadata.ts
|
|
4
4
|
var cli_metadata_default = definePluginEntry({
|
|
5
5
|
id: "google-meet",
|
|
6
6
|
name: "Google Meet",
|
|
@@ -9,4 +9,5 @@ var cli_metadata_default = definePluginEntry({
|
|
|
9
9
|
api.registerCli(() => {}, { descriptors: [GOOGLE_MEET_CLI_DESCRIPTOR] });
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
+
//#endregion
|
|
12
13
|
export { cli_metadata_default as default };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { asNullableRecord, normalizeOptionalLowercaseString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
2
|
-
|
|
2
|
+
//#region extensions/google-meet/src/config-compat.ts
|
|
3
3
|
function hasLegacyGoogleRealtimeProvider(value) {
|
|
4
4
|
const realtime = asNullableRecord(value);
|
|
5
5
|
if (!realtime || normalizeOptionalLowercaseString(realtime.provider) !== "google") return false;
|
|
@@ -46,4 +46,5 @@ function normalizeCompatibilityConfig({ cfg }) {
|
|
|
46
46
|
changes: []
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
|
+
//#endregion
|
|
49
50
|
export { legacyConfigRules, normalizeCompatibilityConfig };
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { t as GOOGLE_MEET_CLI_DESCRIPTOR } from "./.setup/cli-output-mode-
|
|
2
|
-
import { n as GOOGLE_MEET_NODE_COMMAND } from "./.setup/google-meet-platform-constants-
|
|
3
|
-
import { r as resolveGoogleMeetConfig } from "./.setup/config-
|
|
4
|
-
import { a as formatGoogleMeetGatewayError, c as loadGoogleMeetCreateModule, d as normalizeMode, f as normalizeTransport, g as shouldJoinCreatedMeet, h as sendGoogleMeetGatewayError, i as createLazyGoogleMeetNodeInvokePolicy, l as loadGoogleMeetNodeHostModule, m as resolveMeetingInput, n as callGoogleMeetGatewayFromTool, o as keepTrustedToolAgentId, p as readGoogleMeetParticipationParams, r as createGoogleMeetRuntimeAccessor, s as loadGoogleMeetCliModule, t as assertGoogleMeetAgentToolActionSupported, u as loadGoogleMeetPluginHelpers } from "./.setup/plugin-registration-
|
|
1
|
+
import { t as GOOGLE_MEET_CLI_DESCRIPTOR } from "./.setup/cli-output-mode-BwH_6tH8.mjs";
|
|
2
|
+
import { n as GOOGLE_MEET_NODE_COMMAND } from "./.setup/google-meet-platform-constants-CnRfrYX7.mjs";
|
|
3
|
+
import { r as resolveGoogleMeetConfig } from "./.setup/config-BXGAMntj.mjs";
|
|
4
|
+
import { a as formatGoogleMeetGatewayError, c as loadGoogleMeetCreateModule, d as normalizeMode, f as normalizeTransport, g as shouldJoinCreatedMeet, h as sendGoogleMeetGatewayError, i as createLazyGoogleMeetNodeInvokePolicy, l as loadGoogleMeetNodeHostModule, m as resolveMeetingInput, n as callGoogleMeetGatewayFromTool, o as keepTrustedToolAgentId, p as readGoogleMeetParticipationParams, r as createGoogleMeetRuntimeAccessor, s as loadGoogleMeetCliModule, t as assertGoogleMeetAgentToolActionSupported, u as loadGoogleMeetPluginHelpers } from "./.setup/plugin-registration-1Oc4T1Bj.mjs";
|
|
5
5
|
import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
|
|
6
6
|
import { asNonArrayRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
7
7
|
import { jsonResult } from "openclaw/plugin-sdk/tool-results";
|
|
8
8
|
import { optionalPositiveIntegerSchema } from "openclaw/plugin-sdk/channel-actions";
|
|
9
9
|
import { Type } from "typebox";
|
|
10
|
-
|
|
10
|
+
//#region extensions/google-meet/src/plugin-schema.ts
|
|
11
11
|
const googleMeetConfigSchema = { parse(value) {
|
|
12
12
|
return resolveGoogleMeetConfig(value);
|
|
13
13
|
} };
|
|
@@ -106,7 +106,8 @@ const GoogleMeetToolSchema = Type.Object({
|
|
|
106
106
|
clientSecret: Type.Optional(Type.String({ description: "OAuth client secret override" })),
|
|
107
107
|
expiresAt: Type.Optional(Type.Number({ description: "Cached access token expiry ms" }))
|
|
108
108
|
});
|
|
109
|
-
|
|
109
|
+
//#endregion
|
|
110
|
+
//#region extensions/google-meet/index.ts
|
|
110
111
|
var InvalidGoogleMeetRequest = class extends Error {};
|
|
111
112
|
function requireSessionId(params) {
|
|
112
113
|
const sessionId = normalizeOptionalString(params?.sessionId);
|
|
@@ -390,4 +391,5 @@ var google_meet_default = definePluginEntry({
|
|
|
390
391
|
});
|
|
391
392
|
}
|
|
392
393
|
});
|
|
394
|
+
//#endregion
|
|
393
395
|
export { google_meet_default as default };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/google-meet",
|
|
3
|
-
"version": "2026.
|
|
3
|
+
"version": "2026.11.2",
|
|
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.3.35"
|
|
13
13
|
},
|
|
14
14
|
"peerDependencies": {
|
|
15
|
-
"openclaw": ">=2026.
|
|
15
|
+
"openclaw": ">=2026.11.2"
|
|
16
16
|
},
|
|
17
17
|
"peerDependenciesMeta": {
|
|
18
18
|
"openclaw": {
|
|
@@ -30,10 +30,10 @@
|
|
|
30
30
|
"minHostVersion": ">=2026.4.20"
|
|
31
31
|
},
|
|
32
32
|
"compat": {
|
|
33
|
-
"pluginApi": ">=2026.
|
|
33
|
+
"pluginApi": ">=2026.11.2"
|
|
34
34
|
},
|
|
35
35
|
"build": {
|
|
36
|
-
"openclawVersion": "2026.
|
|
36
|
+
"openclawVersion": "2026.11.2"
|
|
37
37
|
},
|
|
38
38
|
"release": {
|
|
39
39
|
"publishToClawHub": true,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"entries":[{"output":"cli-metadata.js","source":"extensions/google-meet/cli-metadata.ts"},{"output":"doctor-contract-api.js","source":"extensions/google-meet/doctor-contract-api.ts"},{"output":"index.js","source":"extensions/google-meet/index.ts"}],"chunks":[{"output":".setup/chrome-create-DIcW4QCh.mjs","sha256":"d72a0b5ac5ff91043086ac5ef7eee9f9fd8c0e8978f14a35a2e0d305c7cd9b8f","facadeSource":null,"sources":["extensions/google-meet/src/transports/chrome-browser-proxy.ts","extensions/google-meet/src/transports/chrome-create.ts","extensions/google-meet/src/transports/google-meet-urls.ts"]},{"output":".setup/cli-9linTFHb.mjs","sha256":"94c6b3f7db7ba3e4bc0dcce81c09fb973d04c3a35834eb0170301b295306a39a","facadeSource":"extensions/google-meet/src/cli.ts","sources":["extensions/google-meet/src/cli-artifact-commands.ts","extensions/google-meet/src/cli-command-context.ts","extensions/google-meet/src/cli-doctor.ts","extensions/google-meet/src/cli-runtime-commands.ts","extensions/google-meet/src/cli-space-commands.ts","extensions/google-meet/src/cli.ts"]},{"output":".setup/cli-export-CaDYoSP8.mjs","sha256":"8db6ab424dd88b4a859d357ac0e946615e0df2449ec39558942eb46f698c1f5b","facadeSource":null,"sources":["extensions/google-meet/src/cli-export.ts","extensions/google-meet/src/cli-shared.ts"]},{"output":".setup/cli-output-mode-BJSm88N9.mjs","sha256":"528e4293c672ae91d3bd6300933e6911779e14eabd8b01bcbbdabcfba40660bb","facadeSource":null,"sources":["extensions/google-meet/src/cli-output-mode.ts"]},{"output":".setup/config-Cu3zsl_3.mjs","sha256":"5e5d56ef00819423c20ed1614fd0c675ad0a81a6b2f14716601ea2041d8baf1f","facadeSource":null,"sources":["extensions/google-meet/src/config.ts"]},{"output":".setup/create-D3fHR8uX.mjs","sha256":"d1be2016ca626deeb61a5fa7bfc2058dbf5d32b677073cdf7651ab432289b277","facadeSource":null,"sources":["extensions/google-meet/src/create.ts"]},{"output":".setup/google-api-B5FR9zy2.mjs","sha256":"a86efec8f6f1fdb4ee4da31a51b90ccdeaa6bc1240e6c6713ba34867fbb4c7be","facadeSource":null,"sources":["extensions/google-meet/src/google-api.ts"]},{"output":".setup/google-meet-platform-adapter-D7poqL1J.mjs","sha256":"aa75343ebd36bfdd5200711c674ad03933952ed4aec41c87bb08366825895c5f","facadeSource":null,"sources":["extensions/google-meet/src/transports/google-meet-caption-observer-source.ts","extensions/google-meet/src/transports/google-meet-caption-scripts.ts","extensions/google-meet/src/transports/google-meet-page-scripts.ts","extensions/google-meet/src/transports/google-meet-platform-adapter.ts","extensions/google-meet/src/transports/twilio.ts","extensions/google-meet/src/transports/types.ts"]},{"output":".setup/google-meet-platform-constants-C83Cdmpd.mjs","sha256":"13b40b9ac51fefa397f235f02dcc00e803083090c5fccfd73dc2e87f919e0a62","facadeSource":null,"sources":["extensions/google-meet/src/browser-manual-action-error.ts","extensions/google-meet/src/transports/google-meet-platform-constants.ts"]},{"output":".setup/meet-url-DzLdrq0Z.mjs","sha256":"97b073e80c8e8f44de27642813aa477c186473870495d3ff4913a7b58209ce6e","facadeSource":null,"sources":["extensions/google-meet/src/meet-url.ts"]},{"output":".setup/node-host-B196lvNZ.mjs","sha256":"74d7703249788503974779804616034a5f0e689394f760a6f4781d3510795ffa","facadeSource":"extensions/google-meet/src/node-host.ts","sources":["extensions/google-meet/src/node-host.ts"]},{"output":".setup/node-invoke-policy-BzRAe25r.mjs","sha256":"b2bf8dadd013e4c46c16885e763c3c6452c70474b04f3181d6229c71705c0a39","facadeSource":"extensions/google-meet/src/node-invoke-policy.ts","sources":["extensions/google-meet/src/node-invoke-policy.ts"]},{"output":".setup/oauth-DGv28ZgA.mjs","sha256":"96d2cd4c05ef3a3518ad966ec88a6b2efaf564952fdb0cf36e6982ca6a414c7d","facadeSource":"extensions/google-meet/src/oauth.ts","sources":["extensions/google-meet/src/oauth.ts"]},{"output":".setup/plugin-helpers-Buhixxsx.mjs","sha256":"b61643fe2def96ef2017385ebe195e83d46041bed880c6a757fa4c699e664686","facadeSource":null,"sources":["extensions/google-meet/src/calendar.ts","extensions/google-meet/src/drive.ts","extensions/google-meet/src/meet-api.ts","extensions/google-meet/src/meet.ts","extensions/google-meet/src/plugin-helpers.ts"]},{"output":".setup/plugin-registration-B_nOxAym.mjs","sha256":"0a14e419df910eabd692de1f7e88797a5d702da972aeca6a59f598d83566bb14","facadeSource":null,"sources":["extensions/google-meet/src/plugin-registration.ts"]},{"output":".setup/runtime-D-dwEsSW.mjs","sha256":"ca497077d99b439536573ce969ee0a8c660db9ffdf2615e855cdb62875b570db","facadeSource":"extensions/google-meet/src/runtime.ts","sources":["extensions/google-meet/src/runtime-probes.ts","extensions/google-meet/src/runtime-setup.ts","extensions/google-meet/src/runtime.ts","extensions/google-meet/src/setup.ts","extensions/google-meet/src/transports/chrome.ts","extensions/google-meet/src/voice-call-gateway.ts"]},{"output":"cli-metadata.js","sha256":"8415f2c36062cc9e6617d8cbee1a519a876399b64f13a31a7f55831ae9611adf","facadeSource":"extensions/google-meet/cli-metadata.ts","sources":["extensions/google-meet/cli-metadata.ts"]},{"output":"doctor-contract-api.js","sha256":"7360f137b716ea3407d6efc6a4ed404dd0db377937b4efa24e88653f0e16345c","facadeSource":"extensions/google-meet/doctor-contract-api.ts","sources":["extensions/google-meet/src/config-compat.ts"]},{"output":"index.js","sha256":"1d3ff8dc19512027a90ec6c50eed4695643e90d661b914c836276549ed9be53a","facadeSource":"extensions/google-meet/index.ts","sources":["extensions/google-meet/index.ts","extensions/google-meet/src/plugin-schema.ts"]}],"unrenderedSources":["extensions/google-meet/doctor-contract-api.ts"]}
|