@openclaw/google-meet 2026.8.2 → 2026.9.1

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.
@@ -1,7 +1,7 @@
1
- import { a as resolveGoogleMeetTokenFromParams, c as buildGoogleMeetPreflightReport, d as fetchGoogleMeetSpace, f as fetchLatestGoogleMeetConferenceRecord, i as resolveArtifactQueryFromParams, l as createGoogleMeetSpace, m as listGoogleMeetCalendarEvents, n as fetchResolvedGoogleMeetAttendance, o as resolveMeetingFromParams, p as buildGoogleMeetCalendarDayWindow, s as resolveSpaceFromParams, t as fetchResolvedGoogleMeetArtifacts, u as endGoogleMeetActiveConference } from "./plugin-helpers-CiAxinMY.js";
1
+ import { a as resolveGoogleMeetTokenFromParams, c as buildGoogleMeetPreflightReport, d as fetchGoogleMeetSpace, f as fetchLatestGoogleMeetConferenceRecord, i as resolveArtifactQueryFromParams, l as createGoogleMeetSpace, m as listGoogleMeetCalendarEvents, n as fetchResolvedGoogleMeetAttendance, o as resolveMeetingFromParams, p as buildGoogleMeetCalendarDayWindow, s as resolveSpaceFromParams, t as fetchResolvedGoogleMeetArtifacts, u as endGoogleMeetActiveConference } from "./plugin-helpers-WF-JVJhh.js";
2
2
  import { i as resolveGoogleMeetGatewayOperationTimeoutMs } from "./config-wBK8loBb.js";
3
3
  import { buildGoogleMeetAuthUrl, exchangeGoogleMeetAuthCode, resolveGoogleMeetAccessToken, waitForGoogleMeetAuthCode } from "./oauth-DgBscjXK.js";
4
- import { n as hasCreateSpaceConfigInput, r as resolveCreateSpaceConfig } from "./create-Da-nAEHY.js";
4
+ import { n as hasCreateSpaceConfigInput, r as resolveCreateSpaceConfig } from "./create-Djmk2CQz.js";
5
5
  import { clampTimerTimeoutMs, parseStrictNonNegativeInteger, parseStrictPositiveInteger } from "openclaw/plugin-sdk/number-runtime";
6
6
  import { callGatewayFromCli, isGatewayClientRequestError, isGatewayTransportError } from "openclaw/plugin-sdk/gateway-runtime";
7
7
  import { generateHexPkceVerifierChallenge } from "openclaw/plugin-sdk/provider-auth";
@@ -1,4 +1,4 @@
1
- import { h as __exportAll, l as createGoogleMeetSpace } from "./plugin-helpers-CiAxinMY.js";
1
+ import { h as __exportAll, l as createGoogleMeetSpace } from "./plugin-helpers-WF-JVJhh.js";
2
2
  import { resolveGoogleMeetAccessToken } from "./oauth-DgBscjXK.js";
3
3
  import { t as createMeetWithBrowserProxyOnNode } from "./chrome-create-PKAyxCiL.js";
4
4
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { t as GOOGLE_MEET_CLI_DESCRIPTOR } from "./cli-output-mode-BwH_6tH8.js";
2
2
  import { n as GOOGLE_MEET_NODE_COMMAND } from "./google-meet-platform-constants-Bs5iAg3E.js";
3
3
  import { r as resolveGoogleMeetConfig } from "./config-wBK8loBb.js";
4
- import { a as createLazyGoogleMeetNodeInvokePolicy, c as loadGoogleMeetCliModule, d as normalizeMode, f as normalizeTransport, h as shouldJoinCreatedMeet, i as createGoogleMeetRuntimeAccessor, l as loadGoogleMeetNodeHostModule, m as sendGoogleMeetGatewayError, n as assertGoogleMeetAgentToolActionSupported, o as formatGoogleMeetGatewayError, p as resolveMeetingInput, r as callGoogleMeetGatewayFromTool, s as keepTrustedToolAgentId, t as asParamRecord, u as loadGoogleMeetPluginHelpers } from "./plugin-registration-CeQ3RzYT.js";
4
+ import { a as createLazyGoogleMeetNodeInvokePolicy, c as loadGoogleMeetCliModule, d as normalizeMode, f as normalizeTransport, h as shouldJoinCreatedMeet, i as createGoogleMeetRuntimeAccessor, l as loadGoogleMeetNodeHostModule, m as sendGoogleMeetGatewayError, n as assertGoogleMeetAgentToolActionSupported, o as formatGoogleMeetGatewayError, p as resolveMeetingInput, r as callGoogleMeetGatewayFromTool, s as keepTrustedToolAgentId, t as asParamRecord, u as loadGoogleMeetPluginHelpers } from "./plugin-registration-NIwMvP6X.js";
5
5
  import { definePluginEntry } from "openclaw/plugin-sdk/plugin-entry";
6
6
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
7
7
  import { jsonResult } from "openclaw/plugin-sdk/tool-results";
@@ -1,4 +1,4 @@
1
- import { c as loadGoogleMeetCliModule, p as resolveMeetingInput } from "./plugin-registration-CeQ3RzYT.js";
1
+ import { c as loadGoogleMeetCliModule, p as resolveMeetingInput } from "./plugin-registration-NIwMvP6X.js";
2
2
  import { t as googleApiError } from "./google-api-errors-BDYXfKRa.js";
3
3
  import { t as normalizeMeetUrl } from "./meet-url-BP2Jlvjs.js";
4
4
  import { normalizeOptionalString, uniqueStrings } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -773,7 +773,7 @@ var plugin_helpers_exports = /* @__PURE__ */ __exportAll({
773
773
  resolveMeetingFromParams: () => resolveMeetingFromParams,
774
774
  resolveSpaceFromParams: () => resolveSpaceFromParams
775
775
  });
776
- const loadGoogleMeetCreateModule = createLazyRuntimeModule(() => import("./create-Da-nAEHY.js").then((n) => n.t));
776
+ const loadGoogleMeetCreateModule = createLazyRuntimeModule(() => import("./create-Djmk2CQz.js").then((n) => n.t));
777
777
  async function createMeetFromParams(params) {
778
778
  return (await loadGoogleMeetCreateModule()).createMeetFromParams(params);
779
779
  }
@@ -4,10 +4,10 @@ import { asNonArrayRecord as asParamRecord, normalizeOptionalString } from "open
4
4
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
5
5
  import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
6
6
  //#region extensions/google-meet/src/plugin-registration.ts
7
- const loadGoogleMeetPluginHelpers = createLazyRuntimeModule(() => import("./plugin-helpers-CiAxinMY.js").then((n) => n.r));
8
- const loadGoogleMeetCliModule = createLazyRuntimeModule(() => import("./cli-D8EyxtkZ.js"));
7
+ const loadGoogleMeetPluginHelpers = createLazyRuntimeModule(() => import("./plugin-helpers-WF-JVJhh.js").then((n) => n.r));
8
+ const loadGoogleMeetCliModule = createLazyRuntimeModule(() => import("./cli-Cwc266K3.js"));
9
9
  const loadGoogleMeetNodeHostModule = createLazyRuntimeModule(() => import("./node-host-BXtXbsMa.js"));
10
- const loadGoogleMeetRuntimeModule = createLazyRuntimeModule(() => import("./runtime-BP1uG83z.js"));
10
+ const loadGoogleMeetRuntimeModule = createLazyRuntimeModule(() => import("./runtime-0IuZTlpN.js"));
11
11
  const loadGoogleMeetNodeInvokePolicyModule = createLazyRuntimeModule(() => import("./node-invoke-policy-B0gOlLJR.js"));
12
12
  const loadGoogleMeetGatewayRuntimeModule = createLazyRuntimeModule(() => import("openclaw/plugin-sdk/gateway-runtime"));
13
13
  const loadGoogleMeetNodeInvokePolicy = async (config) => (await loadGoogleMeetNodeInvokePolicyModule()).createGoogleMeetChromeNodeInvokePolicy(config);
@@ -356,10 +356,24 @@ function parseNodeStartResult(raw) {
356
356
  if (!value || typeof value !== "object") throw new Error("Google Meet node returned an invalid start result.");
357
357
  return value;
358
358
  }
359
+ function chromeNodeBrowserRequest(runtime, nodeId) {
360
+ return async (request) => await callBrowserProxyOnNode({
361
+ runtime,
362
+ nodeId,
363
+ method: request.method,
364
+ path: request.path,
365
+ body: request.body,
366
+ timeoutMs: request.timeoutMs
367
+ });
368
+ }
359
369
  async function leaveChromeMeet(params) {
370
+ const node = params.transport === "chrome-node" ? { nodeId: params.nodeId ?? await resolveChromeNode({
371
+ runtime: params.runtime,
372
+ requestedNode: params.config.chromeNode.node
373
+ }) } : void 0;
360
374
  return await leaveMeetingWithBrowser({
361
375
  adapter: GOOGLE_MEET_PLATFORM_ADAPTER,
362
- callBrowser: await resolveLocalMeetingBrowserRequest(params.runtime),
376
+ callBrowser: node ? chromeNodeBrowserRequest(params.runtime, node.nodeId) : await resolveLocalMeetingBrowserRequest(params.runtime),
363
377
  launch: params.config.chrome.launch,
364
378
  meetingSessionId: params.meetingSessionId,
365
379
  meetingUrl: params.meetingUrl,
@@ -368,59 +382,18 @@ async function leaveChromeMeet(params) {
368
382
  });
369
383
  }
370
384
  async function readChromeMeetTranscript(params) {
371
- return await readMeetingTranscriptWithBrowser({
372
- adapter: GOOGLE_MEET_PLATFORM_ADAPTER,
373
- callBrowser: await resolveLocalMeetingBrowserRequest(params.runtime),
374
- finalize: params.finalize === true,
375
- meetingUrl: params.meetingUrl,
376
- meetingSessionId: params.meetingSessionId,
377
- tab: params.tab,
378
- timeoutMs: Math.min(Math.max(1e3, params.config.chrome.joinTimeoutMs), 1e4)
379
- });
380
- }
381
- async function readChromeMeetTranscriptOnNode(params) {
382
- const nodeId = params.nodeId ?? await resolveChromeNode({
385
+ const node = params.transport === "chrome-node" ? { nodeId: params.nodeId ?? await resolveChromeNode({
383
386
  runtime: params.runtime,
384
387
  requestedNode: params.config.chromeNode.node
385
- });
386
- const timeoutMs = Math.min(Math.max(1e3, params.config.chrome.joinTimeoutMs), 1e4);
388
+ }) } : void 0;
387
389
  return await readMeetingTranscriptWithBrowser({
388
390
  adapter: GOOGLE_MEET_PLATFORM_ADAPTER,
389
- callBrowser: async (request) => await callBrowserProxyOnNode({
390
- runtime: params.runtime,
391
- nodeId,
392
- method: request.method,
393
- path: request.path,
394
- body: request.body,
395
- timeoutMs: request.timeoutMs
396
- }),
391
+ callBrowser: node ? chromeNodeBrowserRequest(params.runtime, node.nodeId) : await resolveLocalMeetingBrowserRequest(params.runtime),
397
392
  finalize: params.finalize === true,
398
393
  meetingUrl: params.meetingUrl,
399
394
  meetingSessionId: params.meetingSessionId,
400
395
  tab: params.tab,
401
- timeoutMs
402
- });
403
- }
404
- async function leaveChromeMeetOnNode(params) {
405
- const nodeId = params.nodeId ?? await resolveChromeNode({
406
- runtime: params.runtime,
407
- requestedNode: params.config.chromeNode.node
408
- });
409
- return await leaveMeetingWithBrowser({
410
- adapter: GOOGLE_MEET_PLATFORM_ADAPTER,
411
- callBrowser: async (request) => await callBrowserProxyOnNode({
412
- runtime: params.runtime,
413
- nodeId,
414
- method: request.method,
415
- path: request.path,
416
- body: request.body,
417
- timeoutMs: request.timeoutMs
418
- }),
419
- launch: params.config.chrome.launch,
420
- meetingSessionId: params.meetingSessionId,
421
- meetingUrl: params.meetingUrl,
422
- tab: params.tab,
423
- timeoutMs: params.config.chrome.joinTimeoutMs
396
+ timeoutMs: Math.min(Math.max(1e3, params.config.chrome.joinTimeoutMs), 1e4)
424
397
  });
425
398
  }
426
399
  async function openMeetWithBrowserProxy(params) {
@@ -469,43 +442,21 @@ async function openMeetWithBrowserProxy(params) {
469
442
  });
470
443
  }
471
444
  async function recoverCurrentMeetTab(params) {
472
- return {
473
- transport: "chrome",
474
- ...await recoverMeetingBrowserTab({
475
- adapter: GOOGLE_MEET_PLATFORM_ADAPTER,
476
- callBrowser: await resolveLocalMeetingBrowserRequest(params.runtime),
477
- captureCaptions: shouldCaptureCaptions(params.mode ?? "bidi", params.fullConfig),
478
- config: params.config.chrome,
479
- locationLabel: "in local Chrome",
480
- mode: params.mode ?? "bidi",
481
- readOnly: params.readOnly,
482
- requestedMeetingUrl: params.url,
483
- trackedMeetingUrl: params.trackedMeetingUrl,
484
- trackedTargetId: params.trackedTargetId
485
- })
486
- };
487
- }
488
- async function recoverCurrentMeetTabOnNode(params) {
489
- const nodeId = await resolveChromeNode({
445
+ const node = params.transport === "chrome-node" ? { nodeId: await resolveChromeNode({
490
446
  runtime: params.runtime,
491
447
  requestedNode: params.config.chromeNode.node
492
- });
448
+ }) } : void 0;
493
449
  return {
494
- transport: "chrome-node",
495
- nodeId,
450
+ ...node ? {
451
+ transport: "chrome-node",
452
+ nodeId: node.nodeId
453
+ } : { transport: "chrome" },
496
454
  ...await recoverMeetingBrowserTab({
497
455
  adapter: GOOGLE_MEET_PLATFORM_ADAPTER,
498
- callBrowser: async (request) => await callBrowserProxyOnNode({
499
- runtime: params.runtime,
500
- nodeId,
501
- method: request.method,
502
- path: request.path,
503
- body: request.body,
504
- timeoutMs: request.timeoutMs
505
- }),
456
+ callBrowser: node ? chromeNodeBrowserRequest(params.runtime, node.nodeId) : await resolveLocalMeetingBrowserRequest(params.runtime),
506
457
  captureCaptions: shouldCaptureCaptions(params.mode ?? "bidi", params.fullConfig),
507
458
  config: params.config.chrome,
508
- locationLabel: "on the selected Chrome node",
459
+ locationLabel: node ? "on the selected Chrome node" : "in local Chrome",
509
460
  mode: params.mode ?? "bidi",
510
461
  readOnly: params.readOnly,
511
462
  requestedMeetingUrl: params.url,
@@ -966,15 +917,11 @@ var GoogleMeetRuntime = class {
966
917
  const transport = resolveTransport(request.transport, this.params.config);
967
918
  if (transport === "twilio") throw new Error("recover_current_tab only supports chrome or chrome-node transports");
968
919
  const url = request.url ? GOOGLE_MEET_PLATFORM_ADAPTER.urls.validateAndNormalize(request.url) : void 0;
969
- return transport === "chrome-node" ? await recoverCurrentMeetTabOnNode({
970
- runtime: this.params.runtime,
971
- config: this.params.config,
972
- fullConfig: this.params.fullConfig,
973
- url
974
- }) : await recoverCurrentMeetTab({
920
+ return await recoverCurrentMeetTab({
975
921
  runtime: this.params.runtime,
976
922
  config: this.params.config,
977
923
  fullConfig: this.params.fullConfig,
924
+ transport,
978
925
  url
979
926
  });
980
927
  }
@@ -1011,16 +958,7 @@ var GoogleMeetRuntime = class {
1011
958
  async #joinTransport(request, session, context) {
1012
959
  if (isBrowserTransport(session.transport)) {
1013
960
  const chromeConfig = withSessionAgentConfig(this.params.config, session.agentId);
1014
- const result = session.transport === "chrome-node" ? await launchChromeMeetOnNode({
1015
- runtime: this.params.runtime,
1016
- config: chromeConfig,
1017
- fullConfig: this.params.fullConfig,
1018
- meetingSessionId: session.id,
1019
- requesterSessionKey: request.requesterSessionKey,
1020
- mode: session.mode,
1021
- url: session.url,
1022
- logger: this.params.logger
1023
- }) : await launchChromeMeet({
961
+ const result = await (session.transport === "chrome-node" ? launchChromeMeetOnNode : launchChromeMeet)({
1024
962
  runtime: this.params.runtime,
1025
963
  config: chromeConfig,
1026
964
  fullConfig: this.params.fullConfig,
@@ -1127,15 +1065,7 @@ var GoogleMeetRuntime = class {
1127
1065
  node: session.chrome.nodeId
1128
1066
  } } : {}
1129
1067
  };
1130
- const result = session.transport === "chrome-node" ? await launchChromeMeetOnNode({
1131
- runtime: this.params.runtime,
1132
- config: recoveryConfig,
1133
- fullConfig: this.params.fullConfig,
1134
- meetingSessionId: session.id,
1135
- mode: session.mode,
1136
- url: session.url,
1137
- logger: this.params.logger
1138
- }) : await launchChromeMeet({
1068
+ const result = await (session.transport === "chrome-node" ? launchChromeMeetOnNode : launchChromeMeet)({
1139
1069
  runtime: this.params.runtime,
1140
1070
  config: recoveryConfig,
1141
1071
  fullConfig: this.params.fullConfig,
@@ -1149,19 +1079,11 @@ var GoogleMeetRuntime = class {
1149
1079
  }
1150
1080
  async #refreshBrowserHealth(session, options = {}) {
1151
1081
  try {
1152
- const result = session.transport === "chrome-node" ? await recoverCurrentMeetTabOnNode({
1153
- runtime: this.params.runtime,
1154
- config: this.params.config,
1155
- fullConfig: this.params.fullConfig,
1156
- mode: session.mode,
1157
- readOnly: options.readOnly,
1158
- trackedMeetingUrl: session.url,
1159
- trackedTargetId: session.chrome?.browserTab?.targetId,
1160
- url: session.url
1161
- }) : await recoverCurrentMeetTab({
1082
+ const result = await recoverCurrentMeetTab({
1162
1083
  runtime: this.params.runtime,
1163
1084
  config: this.params.config,
1164
1085
  fullConfig: this.params.fullConfig,
1086
+ transport: session.transport === "chrome-node" ? "chrome-node" : "chrome",
1165
1087
  mode: session.mode,
1166
1088
  readOnly: options.readOnly,
1167
1089
  trackedMeetingUrl: session.url,
@@ -1238,16 +1160,12 @@ var GoogleMeetRuntime = class {
1238
1160
  async #captureTranscript(session, options = {}) {
1239
1161
  const tab = session.chrome?.browserTab;
1240
1162
  if (!tab) return;
1241
- return session.transport === "chrome-node" ? await readChromeMeetTranscriptOnNode({
1242
- runtime: this.params.runtime,
1243
- nodeId: session.chrome?.nodeId,
1244
- config: this.params.config,
1245
- ...options.finalize === void 0 ? {} : { finalize: options.finalize },
1246
- meetingUrl: session.url,
1247
- meetingSessionId: session.id,
1248
- tab
1249
- }) : await readChromeMeetTranscript({
1163
+ return await readChromeMeetTranscript({
1250
1164
  runtime: this.params.runtime,
1165
+ ...session.transport === "chrome-node" ? {
1166
+ transport: "chrome-node",
1167
+ nodeId: session.chrome?.nodeId
1168
+ } : {},
1251
1169
  config: this.params.config,
1252
1170
  ...options.finalize === void 0 ? {} : { finalize: options.finalize },
1253
1171
  meetingUrl: session.url,
@@ -1270,15 +1188,12 @@ var GoogleMeetRuntime = class {
1270
1188
  }
1271
1189
  let left;
1272
1190
  try {
1273
- const result = session.transport === "chrome-node" ? await leaveChromeMeetOnNode({
1274
- runtime: this.params.runtime,
1275
- nodeId: session.chrome?.nodeId,
1276
- config: this.params.config,
1277
- meetingSessionId: session.id,
1278
- meetingUrl: session.url,
1279
- tab
1280
- }) : await leaveChromeMeet({
1191
+ const result = await leaveChromeMeet({
1281
1192
  runtime: this.params.runtime,
1193
+ ...session.transport === "chrome-node" ? {
1194
+ transport: "chrome-node",
1195
+ nodeId: session.chrome?.nodeId
1196
+ } : {},
1282
1197
  config: this.params.config,
1283
1198
  meetingSessionId: session.id,
1284
1199
  meetingUrl: session.url,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/google-meet",
3
- "version": "2026.8.2",
3
+ "version": "2026.9.1",
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.17"
13
13
  },
14
14
  "peerDependencies": {
15
- "openclaw": ">=2026.8.2"
15
+ "openclaw": ">=2026.9.1"
16
16
  },
17
17
  "peerDependenciesMeta": {
18
18
  "openclaw": {
@@ -29,10 +29,10 @@
29
29
  "minHostVersion": ">=2026.4.20"
30
30
  },
31
31
  "compat": {
32
- "pluginApi": ">=2026.8.2"
32
+ "pluginApi": ">=2026.9.1"
33
33
  },
34
34
  "build": {
35
- "openclawVersion": "2026.8.2"
35
+ "openclawVersion": "2026.9.1"
36
36
  },
37
37
  "release": {
38
38
  "publishToClawHub": true,