@openclaw/google-meet 2026.11.1 → 2026.11.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.
Files changed (21) hide show
  1. package/dist/.setup/{chrome-create-DIcW4QCh.mjs → chrome-create-CW_QQzuj.mjs} +7 -4
  2. package/dist/.setup/{cli-9linTFHb.mjs → cli-CBLj67Qo.mjs} +17 -11
  3. package/dist/.setup/{cli-export-CaDYoSP8.mjs → cli-export-3ijBYTqg.mjs} +5 -3
  4. package/dist/.setup/{cli-output-mode-BJSm88N9.mjs → cli-output-mode-BwH_6tH8.mjs} +2 -1
  5. package/dist/.setup/{config-Cu3zsl_3.mjs → config-BXGAMntj.mjs} +2 -1
  6. package/dist/.setup/{create-D3fHR8uX.mjs → create-DMUmVyQg.mjs} +5 -4
  7. package/dist/.setup/{google-api-B5FR9zy2.mjs → google-api-KAOF1Wn5.mjs} +2 -1
  8. package/dist/.setup/{google-meet-platform-adapter-D7poqL1J.mjs → google-meet-platform-adapter-Bz77Bdt-.mjs} +15 -9
  9. package/dist/.setup/{google-meet-platform-constants-C83Cdmpd.mjs → google-meet-platform-constants-CnRfrYX7.mjs} +4 -2
  10. package/dist/.setup/{meet-url-DzLdrq0Z.mjs → meet-url-i_QvIxnP.mjs} +2 -1
  11. package/dist/.setup/{node-host-B196lvNZ.mjs → node-host-BP4g4zw3.mjs} +5 -4
  12. package/dist/.setup/{node-invoke-policy-BzRAe25r.mjs → node-invoke-policy-67WaZNPN.mjs} +4 -3
  13. package/dist/.setup/{oauth-DGv28ZgA.mjs → oauth-pXa-YQ9H.mjs} +3 -2
  14. package/dist/.setup/{plugin-helpers-Buhixxsx.mjs → plugin-helpers-D3VKNUTD.mjs} +17 -11
  15. package/dist/.setup/{plugin-registration-B_nOxAym.mjs → plugin-registration-1Oc4T1Bj.mjs} +10 -9
  16. package/dist/.setup/{runtime-D-dwEsSW.mjs → runtime-2_R9PsRx.mjs} +16 -10
  17. package/dist/cli-metadata.js +3 -2
  18. package/dist/doctor-contract-api.js +2 -1
  19. package/dist/index.js +8 -6
  20. package/package.json +4 -4
  21. 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-C83Cdmpd.mjs";
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
- // extensions/google-meet/src/transports/chrome-browser-proxy.ts
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
- // extensions/google-meet/src/transports/google-meet-urls.ts
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
- // extensions/google-meet/src/transports/chrome-create.ts
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-Buhixxsx.mjs";
2
- import { i as resolveGoogleMeetGatewayOperationTimeoutMs } from "./config-Cu3zsl_3.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-CaDYoSP8.mjs";
4
- import { buildGoogleMeetAuthUrl, exchangeGoogleMeetAuthCode, resolveGoogleMeetAccessToken, waitForGoogleMeetAuthCode } from "./oauth-DGv28ZgA.mjs";
5
- import { i as hasGoogleMeetOAuth, r as hasCreateSpaceConfigInput, t as createSpaceFromParams } from "./create-D3fHR8uX.mjs";
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
- // extensions/google-meet/src/cli-command-context.ts
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
- // extensions/google-meet/src/cli-artifact-commands.ts
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
- // extensions/google-meet/src/cli-doctor.ts
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
- // extensions/google-meet/src/cli-runtime-commands.ts
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
- // extensions/google-meet/src/cli-space-commands.ts
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
- // extensions/google-meet/src/cli.ts
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-Buhixxsx.mjs";
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
- // extensions/google-meet/src/cli-shared.ts
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
- // extensions/google-meet/src/cli-export.ts
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
- // extensions/google-meet/src/cli-output-mode.ts
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
- // extensions/google-meet/src/config.ts
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-Buhixxsx.mjs";
2
- import { d as normalizeMode, f as normalizeTransport } from "./plugin-registration-B_nOxAym.mjs";
3
- import { t as createMeetWithBrowserProxyOnNode } from "./chrome-create-DIcW4QCh.mjs";
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
- // extensions/google-meet/src/create.ts
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
- // extensions/google-meet/src/google-api.ts
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-C83Cdmpd.mjs";
2
- import { t as normalizeMeetUrl } from "./meet-url-DzLdrq0Z.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-DIcW4QCh.mjs";
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
- // extensions/google-meet/src/transports/types.ts
8
+ //#region extensions/google-meet/src/transports/types.ts
9
9
  const GOOGLE_MEET_TRANSCRIPT_MAX_LINES = 2e3;
10
- // extensions/google-meet/src/transports/google-meet-caption-scripts.ts
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
- // extensions/google-meet/src/transports/google-meet-caption-observer-source.ts
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
- // extensions/google-meet/src/transports/google-meet-page-scripts.ts
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
- // extensions/google-meet/src/transports/twilio.ts
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
- // extensions/google-meet/src/transports/google-meet-platform-adapter.ts
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
- // extensions/google-meet/src/browser-manual-action-error.ts
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
- // extensions/google-meet/src/transports/google-meet-platform-constants.ts
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
- // extensions/google-meet/src/meet-url.ts
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-C83Cdmpd.mjs";
2
- import { n as DEFAULT_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND, t as DEFAULT_GOOGLE_MEET_AUDIO_INPUT_COMMAND } from "./config-Cu3zsl_3.mjs";
3
- import { t as GOOGLE_MEET_PLATFORM_ADAPTER } from "./google-meet-platform-adapter-D7poqL1J.mjs";
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
- // extensions/google-meet/src/node-host.ts
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-C83Cdmpd.mjs";
2
- import { t as GOOGLE_MEET_PLATFORM_ADAPTER } from "./google-meet-platform-adapter-D7poqL1J.mjs";
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
- // extensions/google-meet/src/node-invoke-policy.ts
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-B5FR9zy2.mjs";
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
- // extensions/google-meet/src/oauth.ts
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-B_nOxAym.mjs";
2
- import { n as requestGoogleApi } from "./google-api-B5FR9zy2.mjs";
3
- import { t as normalizeMeetUrl } from "./meet-url-DzLdrq0Z.mjs";
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
- // \0rolldown/runtime.js
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
- // extensions/google-meet/src/calendar.ts
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
- // extensions/google-meet/src/meet-api.ts
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
- // extensions/google-meet/src/drive.ts
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
- // extensions/google-meet/src/meet.ts
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
- // extensions/google-meet/src/plugin-helpers.ts
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-CaDYoSP8.mjs").then((n) => n.t));
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-DGv28ZgA.mjs");
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-C83Cdmpd.mjs";
2
- import { i as resolveGoogleMeetGatewayOperationTimeoutMs } from "./config-Cu3zsl_3.mjs";
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
- // extensions/google-meet/src/plugin-registration.ts
7
- const loadGoogleMeetPluginHelpers = createLazyRuntimeModule(() => import("./plugin-helpers-Buhixxsx.mjs").then((n) => n.i));
8
- const loadGoogleMeetCliModule = createLazyRuntimeModule(() => import("./cli-9linTFHb.mjs"));
9
- const loadGoogleMeetCreateModule = createLazyRuntimeModule(() => import("./create-D3fHR8uX.mjs").then((n) => n.n));
10
- const loadGoogleMeetNodeHostModule = createLazyRuntimeModule(() => import("./node-host-B196lvNZ.mjs"));
11
- const loadGoogleMeetRuntimeModule = createLazyRuntimeModule(() => import("./runtime-D-dwEsSW.mjs"));
12
- const loadGoogleMeetNodeInvokePolicyModule = createLazyRuntimeModule(() => import("./node-invoke-policy-BzRAe25r.mjs"));
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-C83Cdmpd.mjs";
2
- import { t as normalizeMeetUrl } from "./meet-url-DzLdrq0Z.mjs";
3
- import { c as callBrowserProxyOnNode, l as resolveChromeNode, u as resolveChromeNodeInfo } from "./chrome-create-DIcW4QCh.mjs";
4
- import { n as normalizeDialInNumber, t as GOOGLE_MEET_PLATFORM_ADAPTER } from "./google-meet-platform-adapter-D7poqL1J.mjs";
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
- // extensions/google-meet/src/runtime-probes.ts
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
- // extensions/google-meet/src/setup.ts
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
- // extensions/google-meet/src/transports/chrome.ts
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
- // extensions/google-meet/src/runtime-setup.ts
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
- // extensions/google-meet/src/voice-call-gateway.ts
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
- // extensions/google-meet/src/runtime.ts
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 };
@@ -1,6 +1,6 @@
1
- import { t as GOOGLE_MEET_CLI_DESCRIPTOR } from "./.setup/cli-output-mode-BJSm88N9.mjs";
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
- // extensions/google-meet/cli-metadata.ts
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
- // extensions/google-meet/src/config-compat.ts
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-BJSm88N9.mjs";
2
- import { n as GOOGLE_MEET_NODE_COMMAND } from "./.setup/google-meet-platform-constants-C83Cdmpd.mjs";
3
- import { r as resolveGoogleMeetConfig } from "./.setup/config-Cu3zsl_3.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-B_nOxAym.mjs";
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
- // extensions/google-meet/src/plugin-schema.ts
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
- // extensions/google-meet/index.ts
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.11.1",
3
+ "version": "2026.11.3",
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.11.1"
15
+ "openclaw": ">=2026.11.3"
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.11.1"
33
+ "pluginApi": ">=2026.11.3"
34
34
  },
35
35
  "build": {
36
- "openclawVersion": "2026.11.1"
36
+ "openclawVersion": "2026.11.3"
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"]}