@openclaw/google-meet 2026.9.8 → 2026.10.1-beta.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.
@@ -1,13 +1,14 @@
1
1
  import { n as GOOGLE_MEET_NODE_COMMAND, t as GOOGLE_MEET_BROWSER_NODE_ADAPTER } from "./google-meet-platform-constants-CnRfrYX7.mjs";
2
2
  import { t as normalizeMeetUrl } from "./meet-url-BP2Jlvjs.mjs";
3
- import { c as callBrowserProxyOnNode, l as resolveChromeNode, u as resolveChromeNodeInfo } from "./chrome-create-wuAK5Pnq.mjs";
4
- import { n as normalizeDialInNumber, t as GOOGLE_MEET_PLATFORM_ADAPTER } from "./google-meet-platform-adapter-gosgbMIM.mjs";
3
+ import { c as callBrowserProxyOnNode, l as resolveChromeNode, u as resolveChromeNodeInfo } from "./chrome-create-Bh1L33pr.mjs";
4
+ import { n as normalizeDialInNumber, t as GOOGLE_MEET_PLATFORM_ADAPTER } from "./google-meet-platform-adapter-CKXMbP3X.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";
8
8
  import { isBlockedHostnameOrIp } from "openclaw/plugin-sdk/ssrf-runtime";
9
9
  import { GatewayClient, startGatewayClientWhenEventLoopReady } from "openclaw/plugin-sdk/gateway-runtime";
10
- import { MeetingPlatformAdapter, MeetingSessionRuntime, addMeetingSetupCheck, createMeetingSession, createMeetingSetupStatus, createMeetingVoiceCallGateway, endMeetingVoiceCallGatewayCall, getMeetingVoiceCallGatewayCall, isMeetingVoiceCallMissingError, joinMeetingViaVoiceCallGateway, leaveMeetingWithBrowser, readMeetingTranscriptWithBrowser, recoverMeetingBrowserTab, resolveLocalMeetingBrowserRequest, runMeetingParticipationWithBrowser, speakMeetingViaVoiceCallGateway } from "openclaw/plugin-sdk/meeting-runtime";
10
+ import { raceWithTimeout } from "openclaw/plugin-sdk/time-runtime";
11
+ import { MeetingPlatformAdapter, MeetingSessionRuntime, addMeetingSetupCheck, createMeetingSession, createMeetingSetupStatus, createMeetingVoiceCallGateway, endMeetingVoiceCallGatewayCall, getMeetingVoiceCallGatewayCall, isMeetingVoiceCallMissingError, joinMeetingViaVoiceCallGateway, leaveMeetingWithBrowser, readMeetingTranscriptWithBrowser, recoverMeetingBrowserTab, resolveLocalMeetingBrowserRequest, speakMeetingViaVoiceCallGateway } from "openclaw/plugin-sdk/meeting-runtime";
11
12
  import { resolveDefaultAgentId } from "openclaw/plugin-sdk/agent-runtime";
12
13
  import { normalizeAgentId } from "openclaw/plugin-sdk/routing";
13
14
  import fs from "node:fs";
@@ -380,44 +381,6 @@ async function getGoogleMeetRuntimeSetupStatus(params) {
380
381
  });
381
382
  }
382
383
  //#endregion
383
- //#region extensions/google-meet/src/transports/chrome-participation.ts
384
- async function participateInChromeMeet(params) {
385
- const adapter = GOOGLE_MEET_PLATFORM_ADAPTER.browser.participation;
386
- const { session } = params;
387
- const tab = session.chrome?.browserTab;
388
- if (!adapter || !tab || session.transport !== "chrome" && session.transport !== "chrome-node") return {
389
- status: "unsupported",
390
- message: "Participation requires a supported tracked browser meeting."
391
- };
392
- const { nodeId } = session.chrome ?? {};
393
- const meetingSessionId = session.id;
394
- const meetingUrl = session.url;
395
- const targetId = tab.targetId;
396
- if (session.transport === "chrome-node" && nodeId === void 0) return {
397
- status: "rejected",
398
- message: "The meeting has no pinned browser node."
399
- };
400
- params.assertCurrent();
401
- const callBrowser = session.transport === "chrome-node" ? (request) => callBrowserProxyOnNode({
402
- ...request,
403
- runtime: params.runtime,
404
- nodeId
405
- }) : await resolveLocalMeetingBrowserRequest(params.runtime);
406
- params.assertCurrent();
407
- return await runMeetingParticipationWithBrowser({
408
- adapter,
409
- callBrowser,
410
- meetingSessionId,
411
- meetingUrl,
412
- targetId,
413
- requestId: params.request.requestId,
414
- action: params.request.action,
415
- assertCurrent: () => params.assertCurrent(),
416
- isSameMeetingUrl: (left, right) => GOOGLE_MEET_PLATFORM_ADAPTER.urls.isSameMeeting(left, right),
417
- timeoutMs: Math.min(1e4, params.config.chrome.joinTimeoutMs)
418
- });
419
- }
420
- //#endregion
421
384
  //#region extensions/google-meet/src/voice-call-gateway.ts
422
385
  const GOOGLE_MEET_VOICE_CALL_SURFACE = {
423
386
  clientDisplayName: "Google Meet plugin",
@@ -429,13 +392,8 @@ const GOOGLE_MEET_VOICE_CALL_SURFACE = {
429
392
  async function createConnectedGatewayClient(params) {
430
393
  let client;
431
394
  const abortStart = new AbortController();
432
- let timer;
433
395
  try {
434
- await new Promise((resolve, reject) => {
435
- timer = setTimeout(() => {
436
- abortStart.abort();
437
- reject(/* @__PURE__ */ new Error("gateway connect timeout"));
438
- }, params.config.requestTimeoutMs);
396
+ await raceWithTimeout(() => new Promise((resolve, reject) => {
439
397
  client = new GatewayClient({
440
398
  url: params.config.gatewayUrl,
441
399
  token: params.config.token,
@@ -443,32 +401,26 @@ async function createConnectedGatewayClient(params) {
443
401
  clientName: "cli",
444
402
  clientDisplayName: params.surface.clientDisplayName,
445
403
  scopes: ["operator.write"],
446
- onHelloOk: () => {
447
- clearTimeout(timer);
448
- resolve();
449
- },
404
+ onHelloOk: () => resolve(),
450
405
  onConnectError: (error) => {
451
- clearTimeout(timer);
452
406
  abortStart.abort();
453
- reject(error);
407
+ reject(error instanceof Error ? error : new Error(String(error)));
454
408
  }
455
409
  });
456
410
  startGatewayClientWhenEventLoopReady(client, {
457
411
  timeoutMs: params.config.requestTimeoutMs,
458
412
  signal: abortStart.signal
459
413
  }).then((readiness) => {
460
- if (!readiness.ready && !readiness.aborted) {
461
- clearTimeout(timer);
462
- reject(/* @__PURE__ */ new Error("gateway event loop readiness timeout"));
463
- }
414
+ if (!readiness.ready && !readiness.aborted) reject(/* @__PURE__ */ new Error("gateway event loop readiness timeout"));
464
415
  }).catch((error) => {
465
- clearTimeout(timer);
466
416
  reject(error instanceof Error ? error : new Error(String(error)));
467
417
  });
418
+ }), params.config.requestTimeoutMs, () => {
419
+ abortStart.abort();
420
+ throw new Error("gateway connect timeout");
468
421
  });
469
422
  return client;
470
423
  } catch (error) {
471
- clearTimeout(timer);
472
424
  abortStart.abort();
473
425
  await client?.stopAndWait().catch(() => {});
474
426
  throw error;
@@ -520,14 +472,11 @@ var GoogleMeetRuntime = class {
520
472
  registerIfAbsent: async (key, attempt) => await getParticipationStore().registerIfAbsent(key, attempt),
521
473
  register: async (key, attempt) => await getParticipationStore().register(key, attempt)
522
474
  },
523
- capabilities: (session) => isBrowserTransport(session.transport) && session.chrome?.launched && session.chrome.browserTab && session.chrome.health?.inCall === true && !session.chrome.health.manualAction ? adapter.browser.participation?.capabilities ?? [] : [],
524
- validateAction: (action) => adapter.browser.participation?.validateAction(action),
525
- execute: async (session, request, assertCurrent) => await participateInChromeMeet({
526
- runtime: params.runtime,
527
- config: params.config,
528
- session,
529
- request,
530
- assertCurrent
475
+ capabilities: () => [],
476
+ validateAction: () => void 0,
477
+ execute: async () => ({
478
+ status: "unsupported",
479
+ message: "Participation requires a supported tracked browser meeting."
531
480
  })
532
481
  },
533
482
  logger: params.logger,
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { t as GOOGLE_MEET_CLI_DESCRIPTOR } from "./.setup/cli-output-mode-BwH_6tH8.mjs";
2
2
  import { n as GOOGLE_MEET_NODE_COMMAND } from "./.setup/google-meet-platform-constants-CnRfrYX7.mjs";
3
3
  import { r as resolveGoogleMeetConfig } from "./.setup/config-BXGAMntj.mjs";
4
- import { a as formatGoogleMeetGatewayError, c as loadGoogleMeetNodeHostModule, d as normalizeTransport, f as readGoogleMeetParticipationParams, h as shouldJoinCreatedMeet, i as createLazyGoogleMeetNodeInvokePolicy, l as loadGoogleMeetPluginHelpers, m as sendGoogleMeetGatewayError, n as callGoogleMeetGatewayFromTool, o as keepTrustedToolAgentId, p as resolveMeetingInput, r as createGoogleMeetRuntimeAccessor, s as loadGoogleMeetCliModule, t as assertGoogleMeetAgentToolActionSupported, u as normalizeMode } from "./.setup/plugin-registration-aCEuCerg.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-BP83dqMw.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";
@@ -194,13 +194,13 @@ var google_meet_default = definePluginEntry({
194
194
  });
195
195
  registerGatewayMethod("googlemeet.create", async ({ params, client, respond }) => {
196
196
  const raw = keepTrustedToolAgentId(asNonArrayRecord(params), client);
197
- const helpers = await loadGoogleMeetPluginHelpers();
198
- respond(true, shouldJoinCreatedMeet(raw) ? await helpers.createAndJoinMeetFromParams({
197
+ const create = await loadGoogleMeetCreateModule();
198
+ respond(true, shouldJoinCreatedMeet(raw) ? await create.createAndJoinMeetFromParams({
199
199
  config,
200
200
  runtime: api.runtime,
201
201
  raw,
202
202
  ensureRuntime
203
- }) : await helpers.createMeetFromParams({
203
+ }) : await create.createMeetFromParams({
204
204
  config,
205
205
  runtime: api.runtime,
206
206
  raw
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/google-meet",
3
- "version": "2026.9.8",
3
+ "version": "2026.10.1-beta.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.34"
13
13
  },
14
14
  "peerDependencies": {
15
- "openclaw": ">=2026.9.8"
15
+ "openclaw": ">=2026.10.1-beta.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.9.8"
33
+ "pluginApi": ">=2026.10.1-beta.2"
34
34
  },
35
35
  "build": {
36
- "openclawVersion": "2026.9.8"
36
+ "openclawVersion": "2026.10.1-beta.2"
37
37
  },
38
38
  "release": {
39
39
  "publishToClawHub": true,