@openclaw/google-meet 2026.7.2-beta.5 → 2026.7.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/dist/{chrome-create-DMKruRFW.js → .setup/chrome-create-CFNlY-qH.mjs} +153 -132
  2. package/dist/{cli-GeuAaEIy.js → .setup/cli-DfOl5mwt.mjs} +716 -735
  3. package/dist/{config-BcaS1BDr.js → .setup/config-DeJhjNWQ.mjs} +95 -76
  4. package/dist/{create-af1MDlus.js → .setup/create-BVsTTJt1.mjs} +3 -21
  5. package/dist/{google-api-errors-CDUYkIcK.js → .setup/google-api-errors-BDYXfKRa.mjs} +1 -1
  6. package/dist/{oauth-DOfMKlGp.js → .setup/oauth-CtVbvmvR.mjs} +4 -3
  7. package/dist/doctor-contract-api.js +3 -1
  8. package/dist/index.js +3868 -1818
  9. package/node_modules/{setimmediate/LICENSE.txt → commander/LICENSE} +10 -8
  10. package/node_modules/commander/Readme.md +1172 -0
  11. package/node_modules/commander/index.js +21 -0
  12. package/node_modules/commander/lib/argument.js +147 -0
  13. package/node_modules/commander/lib/command.js +2790 -0
  14. package/node_modules/commander/lib/error.js +36 -0
  15. package/node_modules/commander/lib/help.js +731 -0
  16. package/node_modules/commander/lib/option.js +377 -0
  17. package/node_modules/commander/lib/suggestSimilar.js +99 -0
  18. package/node_modules/commander/package-support.json +19 -0
  19. package/node_modules/commander/package.json +64 -0
  20. package/node_modules/commander/typings/index.d.ts +1113 -0
  21. package/node_modules/typebox/build/compile/validator.d.mts +4 -1
  22. package/node_modules/typebox/build/guard/guard.d.mts +1 -1
  23. package/node_modules/typebox/build/guard/guard.mjs +2 -5
  24. package/node_modules/typebox/build/guard/string.mjs +4 -16
  25. package/node_modules/typebox/build/schema/engine/_functions.mjs +15 -34
  26. package/node_modules/typebox/build/type/action/readonly_object.d.mts +0 -5
  27. package/node_modules/typebox/build/type/action/readonly_object.mjs +0 -8
  28. package/node_modules/typebox/build/typebox.d.mts +1 -1
  29. package/node_modules/typebox/build/typebox.mjs +1 -1
  30. package/node_modules/typebox/package.json +1 -1
  31. package/node_modules/typebox/readme.md +32 -29
  32. package/openclaw.plugin.json +3 -4
  33. package/package.json +7 -9
  34. package/dist/cli-metadata.js +0 -13
  35. package/dist/cli-output-mode-BwH_6tH8.js +0 -28
  36. package/node_modules/core-util-is/LICENSE +0 -19
  37. package/node_modules/core-util-is/README.md +0 -3
  38. package/node_modules/core-util-is/lib/util.js +0 -107
  39. package/node_modules/core-util-is/package.json +0 -38
  40. package/node_modules/immediate/LICENSE.txt +0 -20
  41. package/node_modules/immediate/README.md +0 -93
  42. package/node_modules/immediate/dist/immediate.js +0 -75
  43. package/node_modules/immediate/dist/immediate.min.js +0 -1
  44. package/node_modules/immediate/lib/browser.js +0 -69
  45. package/node_modules/immediate/lib/index.js +0 -73
  46. package/node_modules/immediate/package.json +0 -42
  47. package/node_modules/inherits/LICENSE +0 -16
  48. package/node_modules/inherits/README.md +0 -42
  49. package/node_modules/inherits/inherits.js +0 -9
  50. package/node_modules/inherits/inherits_browser.js +0 -27
  51. package/node_modules/inherits/package.json +0 -29
  52. package/node_modules/isarray/.npmignore +0 -1
  53. package/node_modules/isarray/.travis.yml +0 -4
  54. package/node_modules/isarray/Makefile +0 -6
  55. package/node_modules/isarray/README.md +0 -60
  56. package/node_modules/isarray/component.json +0 -19
  57. package/node_modules/isarray/index.js +0 -5
  58. package/node_modules/isarray/package.json +0 -45
  59. package/node_modules/isarray/test.js +0 -20
  60. package/node_modules/jszip/.codeclimate.yml +0 -16
  61. package/node_modules/jszip/.editorconfig +0 -8
  62. package/node_modules/jszip/.eslintrc.js +0 -43
  63. package/node_modules/jszip/.github/workflows/pr.yaml +0 -58
  64. package/node_modules/jszip/.jekyll-metadata +0 -0
  65. package/node_modules/jszip/.travis.yml +0 -17
  66. package/node_modules/jszip/CHANGES.md +0 -204
  67. package/node_modules/jszip/LICENSE.markdown +0 -651
  68. package/node_modules/jszip/README.markdown +0 -33
  69. package/node_modules/jszip/deps.js +0 -37
  70. package/node_modules/jszip/dist/jszip.js +0 -11577
  71. package/node_modules/jszip/dist/jszip.min.js +0 -13
  72. package/node_modules/jszip/graph.svg +0 -601
  73. package/node_modules/jszip/index.d.ts +0 -330
  74. package/node_modules/jszip/lib/base64.js +0 -106
  75. package/node_modules/jszip/lib/compressedObject.js +0 -74
  76. package/node_modules/jszip/lib/compressions.js +0 -14
  77. package/node_modules/jszip/lib/crc32.js +0 -77
  78. package/node_modules/jszip/lib/defaults.js +0 -11
  79. package/node_modules/jszip/lib/external.js +0 -18
  80. package/node_modules/jszip/lib/flate.js +0 -85
  81. package/node_modules/jszip/lib/generate/ZipFileWorker.js +0 -539
  82. package/node_modules/jszip/lib/generate/index.js +0 -57
  83. package/node_modules/jszip/lib/index.js +0 -55
  84. package/node_modules/jszip/lib/license_header.js +0 -11
  85. package/node_modules/jszip/lib/load.js +0 -88
  86. package/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +0 -74
  87. package/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +0 -42
  88. package/node_modules/jszip/lib/nodejsUtils.js +0 -57
  89. package/node_modules/jszip/lib/object.js +0 -384
  90. package/node_modules/jszip/lib/readable-stream-browser.js +0 -10
  91. package/node_modules/jszip/lib/reader/ArrayReader.js +0 -57
  92. package/node_modules/jszip/lib/reader/DataReader.js +0 -116
  93. package/node_modules/jszip/lib/reader/NodeBufferReader.js +0 -19
  94. package/node_modules/jszip/lib/reader/StringReader.js +0 -38
  95. package/node_modules/jszip/lib/reader/Uint8ArrayReader.js +0 -22
  96. package/node_modules/jszip/lib/reader/readerFor.js +0 -28
  97. package/node_modules/jszip/lib/signature.js +0 -7
  98. package/node_modules/jszip/lib/stream/ConvertWorker.js +0 -26
  99. package/node_modules/jszip/lib/stream/Crc32Probe.js +0 -24
  100. package/node_modules/jszip/lib/stream/DataLengthProbe.js +0 -29
  101. package/node_modules/jszip/lib/stream/DataWorker.js +0 -116
  102. package/node_modules/jszip/lib/stream/GenericWorker.js +0 -263
  103. package/node_modules/jszip/lib/stream/StreamHelper.js +0 -214
  104. package/node_modules/jszip/lib/support.js +0 -38
  105. package/node_modules/jszip/lib/utf8.js +0 -275
  106. package/node_modules/jszip/lib/utils.js +0 -501
  107. package/node_modules/jszip/lib/zipEntries.js +0 -261
  108. package/node_modules/jszip/lib/zipEntry.js +0 -293
  109. package/node_modules/jszip/lib/zipObject.js +0 -133
  110. package/node_modules/jszip/package.json +0 -67
  111. package/node_modules/jszip/sponsors.md +0 -21
  112. package/node_modules/jszip/tsconfig.json +0 -101
  113. package/node_modules/jszip/vendor/FileSaver.js +0 -247
  114. package/node_modules/lie/README.md +0 -62
  115. package/node_modules/lie/dist/lie.js +0 -350
  116. package/node_modules/lie/dist/lie.min.js +0 -1
  117. package/node_modules/lie/dist/lie.polyfill.js +0 -358
  118. package/node_modules/lie/dist/lie.polyfill.min.js +0 -1
  119. package/node_modules/lie/lib/browser.js +0 -273
  120. package/node_modules/lie/lib/index.js +0 -298
  121. package/node_modules/lie/license.md +0 -7
  122. package/node_modules/lie/lie.d.ts +0 -244
  123. package/node_modules/lie/package.json +0 -69
  124. package/node_modules/lie/polyfill.js +0 -4
  125. package/node_modules/pako/CHANGELOG.md +0 -164
  126. package/node_modules/pako/LICENSE +0 -21
  127. package/node_modules/pako/README.md +0 -191
  128. package/node_modules/pako/dist/pako.js +0 -6818
  129. package/node_modules/pako/dist/pako.min.js +0 -1
  130. package/node_modules/pako/dist/pako_deflate.js +0 -3997
  131. package/node_modules/pako/dist/pako_deflate.min.js +0 -1
  132. package/node_modules/pako/dist/pako_inflate.js +0 -3300
  133. package/node_modules/pako/dist/pako_inflate.min.js +0 -1
  134. package/node_modules/pako/index.js +0 -14
  135. package/node_modules/pako/lib/deflate.js +0 -400
  136. package/node_modules/pako/lib/inflate.js +0 -423
  137. package/node_modules/pako/lib/utils/common.js +0 -105
  138. package/node_modules/pako/lib/utils/strings.js +0 -187
  139. package/node_modules/pako/lib/zlib/README +0 -59
  140. package/node_modules/pako/lib/zlib/adler32.js +0 -51
  141. package/node_modules/pako/lib/zlib/constants.js +0 -68
  142. package/node_modules/pako/lib/zlib/crc32.js +0 -59
  143. package/node_modules/pako/lib/zlib/deflate.js +0 -1874
  144. package/node_modules/pako/lib/zlib/gzheader.js +0 -58
  145. package/node_modules/pako/lib/zlib/inffast.js +0 -345
  146. package/node_modules/pako/lib/zlib/inflate.js +0 -1556
  147. package/node_modules/pako/lib/zlib/inftrees.js +0 -343
  148. package/node_modules/pako/lib/zlib/messages.js +0 -32
  149. package/node_modules/pako/lib/zlib/trees.js +0 -1222
  150. package/node_modules/pako/lib/zlib/zstream.js +0 -47
  151. package/node_modules/pako/package.json +0 -44
  152. package/node_modules/parse-ms/index.d.ts +0 -30
  153. package/node_modules/parse-ms/index.js +0 -45
  154. package/node_modules/parse-ms/license +0 -9
  155. package/node_modules/parse-ms/package.json +0 -47
  156. package/node_modules/parse-ms/readme.md +0 -46
  157. package/node_modules/pretty-ms/index.d.ts +0 -157
  158. package/node_modules/pretty-ms/index.js +0 -149
  159. package/node_modules/pretty-ms/license +0 -9
  160. package/node_modules/pretty-ms/package.json +0 -55
  161. package/node_modules/pretty-ms/readme.md +0 -179
  162. package/node_modules/process-nextick-args/index.js +0 -45
  163. package/node_modules/process-nextick-args/license.md +0 -19
  164. package/node_modules/process-nextick-args/package.json +0 -25
  165. package/node_modules/process-nextick-args/readme.md +0 -18
  166. package/node_modules/readable-stream/.travis.yml +0 -34
  167. package/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  168. package/node_modules/readable-stream/GOVERNANCE.md +0 -136
  169. package/node_modules/readable-stream/LICENSE +0 -47
  170. package/node_modules/readable-stream/README.md +0 -58
  171. package/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
  172. package/node_modules/readable-stream/duplex-browser.js +0 -1
  173. package/node_modules/readable-stream/duplex.js +0 -1
  174. package/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
  175. package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
  176. package/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
  177. package/node_modules/readable-stream/lib/_stream_transform.js +0 -214
  178. package/node_modules/readable-stream/lib/_stream_writable.js +0 -685
  179. package/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -78
  180. package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -84
  181. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  182. package/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  183. package/node_modules/readable-stream/package.json +0 -52
  184. package/node_modules/readable-stream/passthrough.js +0 -1
  185. package/node_modules/readable-stream/readable-browser.js +0 -7
  186. package/node_modules/readable-stream/readable.js +0 -19
  187. package/node_modules/readable-stream/transform.js +0 -1
  188. package/node_modules/readable-stream/writable-browser.js +0 -1
  189. package/node_modules/readable-stream/writable.js +0 -8
  190. package/node_modules/safe-buffer/LICENSE +0 -21
  191. package/node_modules/safe-buffer/README.md +0 -584
  192. package/node_modules/safe-buffer/index.d.ts +0 -187
  193. package/node_modules/safe-buffer/index.js +0 -62
  194. package/node_modules/safe-buffer/package.json +0 -37
  195. package/node_modules/setimmediate/package.json +0 -30
  196. package/node_modules/setimmediate/setImmediate.js +0 -186
  197. package/node_modules/string_decoder/.travis.yml +0 -50
  198. package/node_modules/string_decoder/LICENSE +0 -48
  199. package/node_modules/string_decoder/README.md +0 -47
  200. package/node_modules/string_decoder/lib/string_decoder.js +0 -296
  201. package/node_modules/string_decoder/package.json +0 -31
  202. package/node_modules/util-deprecate/History.md +0 -16
  203. package/node_modules/util-deprecate/LICENSE +0 -24
  204. package/node_modules/util-deprecate/README.md +0 -53
  205. package/node_modules/util-deprecate/browser.js +0 -67
  206. package/node_modules/util-deprecate/node.js +0 -6
  207. package/node_modules/util-deprecate/package.json +0 -27
@@ -1,32 +1,13 @@
1
- import { t as googleApiError } from "./google-api-errors-CDUYkIcK.js";
1
+ import { t as googleApiError } from "./google-api-errors-BDYXfKRa.mjs";
2
2
  import { asRecord, normalizeOptionalLowercaseString, normalizeOptionalString, normalizeOptionalTrimmedStringList } from "openclaw/plugin-sdk/string-coerce-runtime";
3
3
  import { readProviderJsonResponse } from "openclaw/plugin-sdk/provider-http";
4
4
  import { fetchWithSsrFGuard } from "openclaw/plugin-sdk/ssrf-runtime";
5
- import { buildMeetingSoxAudioCommands } from "openclaw/plugin-sdk/meeting-runtime";
6
5
  import { addTimerTimeoutGraceMs, resolvePositiveTimerTimeoutMs } from "openclaw/plugin-sdk/number-runtime";
7
6
  import { REALTIME_VOICE_AGENT_CONSULT_TOOL_NAME, resolveRealtimeVoiceAgentConsultToolPolicy } from "openclaw/plugin-sdk/realtime-voice";
8
- //#region extensions/google-meet/src/meet-url.ts
9
- function normalizeOptionalString$1(value) {
10
- if (typeof value !== "string") return;
11
- return value.trim() || void 0;
12
- }
13
- function normalizeMeetUrl(input) {
14
- const raw = normalizeOptionalString$1(input);
15
- if (!raw) throw new Error("url required");
16
- let url;
17
- try {
18
- url = new URL(raw);
19
- } catch {
20
- throw new Error("url must be a valid Google Meet URL");
21
- }
22
- if (url.protocol !== "https:" || url.hostname.toLowerCase() !== "meet.google.com" || url.port || url.username || url.password) throw new Error("url must be an explicit https://meet.google.com/... URL");
23
- 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");
24
- return url.toString();
25
- }
26
- //#endregion
27
7
  //#region extensions/google-meet/src/calendar.ts
28
8
  const GOOGLE_CALENDAR_API_BASE_URL = "https://www.googleapis.com/calendar/v3";
29
9
  const GOOGLE_CALENDAR_API_HOST = "www.googleapis.com";
10
+ const GOOGLE_MEET_URL_HOST = "meet.google.com";
30
11
  const GOOGLE_CALENDAR_EVENTS_SCOPE = "https://www.googleapis.com/auth/calendar.events.readonly";
31
12
  const GOOGLE_CALENDAR_REQUEST_TIMEOUT_MS = 3e4;
32
13
  function appendQuery(url, query) {
@@ -34,40 +15,24 @@ function appendQuery(url, query) {
34
15
  for (const [key, value] of Object.entries(query)) if (value !== void 0) parsed.searchParams.set(key, String(value));
35
16
  return parsed.toString();
36
17
  }
37
- function normalizeGoogleMeetCalendarUri(value) {
38
- if (!value?.trim()) return;
18
+ function isGoogleMeetUri(value) {
19
+ if (!value?.trim()) return false;
39
20
  try {
40
- const url = new URL(value);
41
- if (url.protocol !== "http:" && url.protocol !== "https:") return;
42
- if (url.hostname.toLowerCase() !== "meet.google.com" || url.port || url.username || url.password) return;
43
- url.protocol = "https:";
44
- return normalizeMeetUrl(url.toString());
21
+ return new URL(value).hostname === GOOGLE_MEET_URL_HOST;
45
22
  } catch {
46
- return;
23
+ return false;
47
24
  }
48
25
  }
49
26
  function extractGoogleMeetUriFromText(value) {
50
- const matches = value?.matchAll(/https:\/\/meet\.google\.com\/[a-z0-9-]+/gi);
51
- for (const match of matches ?? []) {
52
- const uri = normalizeGoogleMeetCalendarUri(match[0]);
53
- if (uri) return uri;
54
- }
55
- }
56
- function findFirstGoogleMeetCalendarUri(entryPoints, predicate = () => true) {
57
- for (const entry of entryPoints) {
58
- if (!predicate(entry)) continue;
59
- const uri = normalizeGoogleMeetCalendarUri(entry.uri);
60
- if (uri) return uri;
61
- }
27
+ return (value?.match(/https:\/\/meet\.google\.com\/[a-z0-9-]+/i))?.[0];
62
28
  }
63
29
  function extractGoogleMeetUriFromCalendarEvent(event) {
64
- const hangoutLink = normalizeGoogleMeetCalendarUri(event.hangoutLink);
65
- if (hangoutLink) return hangoutLink;
30
+ if (isGoogleMeetUri(event.hangoutLink)) return event.hangoutLink;
66
31
  const entryPoints = event.conferenceData?.entryPoints ?? [];
67
- const videoEntryUri = findFirstGoogleMeetCalendarUri(entryPoints, (entry) => entry.entryPointType === "video");
68
- if (videoEntryUri) return videoEntryUri;
69
- const meetEntryUri = findFirstGoogleMeetCalendarUri(entryPoints);
70
- if (meetEntryUri) return meetEntryUri;
32
+ const videoEntry = entryPoints.find((entry) => entry.entryPointType === "video" && isGoogleMeetUri(entry.uri));
33
+ if (videoEntry?.uri) return videoEntry.uri;
34
+ const meetEntry = entryPoints.find((entry) => isGoogleMeetUri(entry.uri));
35
+ if (meetEntry?.uri) return meetEntry.uri;
71
36
  return extractGoogleMeetUriFromText(event.location) ?? extractGoogleMeetUriFromText(event.description);
72
37
  }
73
38
  function buildGoogleMeetCalendarDayWindow(now = /* @__PURE__ */ new Date()) {
@@ -91,7 +56,7 @@ function rankCalendarEvent(event, nowMs) {
91
56
  const endMs = parseCalendarEventTime(event.end) ?? startMs;
92
57
  if (startMs <= nowMs && endMs >= nowMs) return 0;
93
58
  if (startMs > nowMs) return startMs - nowMs;
94
- return nowMs - startMs + 720 * 60 * 60 * 1e3;
59
+ return nowMs - startMs + 2592e6;
95
60
  }
96
61
  function chooseBestMeetCalendarEvent(events, now) {
97
62
  const nowMs = now.getTime();
@@ -181,31 +146,85 @@ const SOX_DEFAULT_BUFFER_BYTES = 8192;
181
146
  const SOX_MIN_BUFFER_BYTES = 17;
182
147
  const DEFAULT_GOOGLE_MEET_AUDIO_BUFFER_BYTES = SOX_DEFAULT_BUFFER_BYTES / 2;
183
148
  const PLAIN_DECIMAL_NUMBER_RE = /^\d+(?:\.\d+)?$/;
184
- function buildGoogleMeetSoxAudioCommands(format, bufferBytes) {
185
- return format === "g711-ulaw-8khz" ? buildMeetingSoxAudioCommands({
186
- bufferBytes,
187
- format: {
188
- sampleRate: 8e3,
189
- channels: 1,
190
- encoding: "mu-law",
191
- bits: 8
192
- }
193
- }) : buildMeetingSoxAudioCommands({
194
- bufferBytes,
195
- device: "BlackHole 2ch",
196
- deviceType: "coreaudio",
197
- format: {
198
- sampleRate: 24e3,
199
- channels: 1,
200
- encoding: "signed-integer",
201
- bits: 16,
202
- endian: "little"
203
- }
204
- });
205
- }
206
- const DEFAULT_GOOGLE_MEET_SOX_COMMANDS = buildGoogleMeetSoxAudioCommands("pcm16-24khz", DEFAULT_GOOGLE_MEET_AUDIO_BUFFER_BYTES);
207
- const DEFAULT_GOOGLE_MEET_AUDIO_INPUT_COMMAND = DEFAULT_GOOGLE_MEET_SOX_COMMANDS.inputCommand;
208
- const DEFAULT_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND = DEFAULT_GOOGLE_MEET_SOX_COMMANDS.outputCommand;
149
+ function withSoxBuffer(command, bufferBytes) {
150
+ return [
151
+ command[0] ?? "sox",
152
+ "-q",
153
+ "--buffer",
154
+ String(bufferBytes),
155
+ ...command.slice(2)
156
+ ];
157
+ }
158
+ const DEFAULT_GOOGLE_MEET_AUDIO_INPUT_COMMAND_BASE = [
159
+ "sox",
160
+ "-q",
161
+ "-t",
162
+ "coreaudio",
163
+ "BlackHole 2ch",
164
+ "-t",
165
+ "raw",
166
+ "-r",
167
+ "24000",
168
+ "-c",
169
+ "1",
170
+ "-e",
171
+ "signed-integer",
172
+ "-b",
173
+ "16",
174
+ "-L",
175
+ "-"
176
+ ];
177
+ const DEFAULT_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND_BASE = [
178
+ "sox",
179
+ "-q",
180
+ "-t",
181
+ "raw",
182
+ "-r",
183
+ "24000",
184
+ "-c",
185
+ "1",
186
+ "-e",
187
+ "signed-integer",
188
+ "-b",
189
+ "16",
190
+ "-L",
191
+ "-",
192
+ "-t",
193
+ "coreaudio",
194
+ "BlackHole 2ch"
195
+ ];
196
+ const LEGACY_GOOGLE_MEET_AUDIO_INPUT_COMMAND_BASE = [
197
+ "rec",
198
+ "-q",
199
+ "-t",
200
+ "raw",
201
+ "-r",
202
+ "8000",
203
+ "-c",
204
+ "1",
205
+ "-e",
206
+ "mu-law",
207
+ "-b",
208
+ "8",
209
+ "-"
210
+ ];
211
+ const LEGACY_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND_BASE = [
212
+ "play",
213
+ "-q",
214
+ "-t",
215
+ "raw",
216
+ "-r",
217
+ "8000",
218
+ "-c",
219
+ "1",
220
+ "-e",
221
+ "mu-law",
222
+ "-b",
223
+ "8",
224
+ "-"
225
+ ];
226
+ const DEFAULT_GOOGLE_MEET_AUDIO_INPUT_COMMAND = withSoxBuffer(DEFAULT_GOOGLE_MEET_AUDIO_INPUT_COMMAND_BASE, DEFAULT_GOOGLE_MEET_AUDIO_BUFFER_BYTES);
227
+ const DEFAULT_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND = withSoxBuffer(DEFAULT_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND_BASE, DEFAULT_GOOGLE_MEET_AUDIO_BUFFER_BYTES);
209
228
  const DEFAULT_GOOGLE_MEET_CHROME_AUDIO_FORMAT = "pcm16-24khz";
210
229
  const DEFAULT_GOOGLE_MEET_BARGE_IN_RMS_THRESHOLD = 650;
211
230
  const DEFAULT_GOOGLE_MEET_BARGE_IN_PEAK_THRESHOLD = 2500;
@@ -352,10 +371,10 @@ function resolveAudioBufferBytes(value, fallback) {
352
371
  return Math.max(SOX_MIN_BUFFER_BYTES, Math.trunc(number));
353
372
  }
354
373
  function defaultAudioInputCommand(format, bufferBytes) {
355
- return buildGoogleMeetSoxAudioCommands(format, bufferBytes).inputCommand;
374
+ return withSoxBuffer(format === "g711-ulaw-8khz" ? LEGACY_GOOGLE_MEET_AUDIO_INPUT_COMMAND_BASE : DEFAULT_GOOGLE_MEET_AUDIO_INPUT_COMMAND_BASE, bufferBytes);
356
375
  }
357
376
  function defaultAudioOutputCommand(format, bufferBytes) {
358
- return buildGoogleMeetSoxAudioCommands(format, bufferBytes).outputCommand;
377
+ return withSoxBuffer(format === "g711-ulaw-8khz" ? LEGACY_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND_BASE : DEFAULT_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND_BASE, bufferBytes);
359
378
  }
360
379
  function resolveGoogleMeetConfig(input) {
361
380
  return resolveGoogleMeetConfigWithEnv(input);
@@ -447,4 +466,4 @@ function resolveGoogleMeetConfigWithEnv(input, env = process.env) {
447
466
  };
448
467
  }
449
468
  //#endregion
450
- export { buildGoogleMeetCalendarDayWindow as a, normalizeMeetUrl as c, resolveGoogleMeetGatewayOperationTimeoutMs as i, DEFAULT_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND as n, findGoogleMeetCalendarEvent as o, resolveGoogleMeetConfig as r, listGoogleMeetCalendarEvents as s, DEFAULT_GOOGLE_MEET_AUDIO_INPUT_COMMAND as t };
469
+ export { buildGoogleMeetCalendarDayWindow as a, resolveGoogleMeetGatewayOperationTimeoutMs as i, DEFAULT_GOOGLE_MEET_AUDIO_OUTPUT_COMMAND as n, findGoogleMeetCalendarEvent as o, resolveGoogleMeetConfig as r, listGoogleMeetCalendarEvents as s, DEFAULT_GOOGLE_MEET_AUDIO_INPUT_COMMAND as t };
@@ -1,25 +1,7 @@
1
- import { g as createGoogleMeetSpace, t as createMeetWithBrowserProxyOnNode } from "./chrome-create-DMKruRFW.js";
2
- import { resolveGoogleMeetAccessToken } from "./oauth-DOfMKlGp.js";
1
+ import { f as createGoogleMeetSpace, t as createMeetWithBrowserProxyOnNode } from "./chrome-create-CFNlY-qH.mjs";
2
+ import { resolveGoogleMeetAccessToken } from "./oauth-CtVbvmvR.mjs";
3
3
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
4
- //#region \0rolldown/runtime.js
5
- var __defProp = Object.defineProperty;
6
- var __exportAll = (all, no_symbols) => {
7
- let target = {};
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: true
11
- });
12
- if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
13
- return target;
14
- };
15
- //#endregion
16
4
  //#region extensions/google-meet/src/create.ts
17
- var create_exports = /* @__PURE__ */ __exportAll({
18
- createAndJoinMeetFromParams: () => createAndJoinMeetFromParams,
19
- createMeetFromParams: () => createMeetFromParams,
20
- hasCreateSpaceConfigInput: () => hasCreateSpaceConfigInput,
21
- resolveCreateSpaceConfig: () => resolveCreateSpaceConfig
22
- });
23
5
  function normalizeTransport(value) {
24
6
  return value === "chrome" || value === "chrome-node" || value === "twilio" ? value : void 0;
25
7
  }
@@ -124,4 +106,4 @@ async function createAndJoinMeetFromParams(params) {
124
106
  };
125
107
  }
126
108
  //#endregion
127
- export { hasCreateSpaceConfigInput as n, resolveCreateSpaceConfig as r, create_exports as t };
109
+ export { createAndJoinMeetFromParams, createMeetFromParams, hasCreateSpaceConfigInput, resolveCreateSpaceConfig };
@@ -1,7 +1,7 @@
1
1
  import { readResponseTextLimited } from "openclaw/plugin-sdk/provider-http";
2
2
  //#region extensions/google-meet/src/google-api-errors.ts
3
3
  const REAUTH_HINT = "Re-run `openclaw googlemeet auth login` and store the refreshed oauth block.";
4
- const GOOGLE_API_ERROR_BODY_LIMIT_BYTES = 8 * 1024;
4
+ const GOOGLE_API_ERROR_BODY_LIMIT_BYTES = 8192;
5
5
  function scopeText(scopes) {
6
6
  return scopes.map((scope) => `\`${scope}\``).join(", ");
7
7
  }
@@ -1,4 +1,4 @@
1
- import { n as readGoogleApiErrorDetail } from "./google-api-errors-CDUYkIcK.js";
1
+ import { n as readGoogleApiErrorDetail } from "./google-api-errors-BDYXfKRa.mjs";
2
2
  import { readProviderJsonResponse } from "openclaw/plugin-sdk/provider-http";
3
3
  import { fetchWithSsrFGuard } from "openclaw/plugin-sdk/ssrf-runtime";
4
4
  import { MAX_DATE_TIMESTAMP_MS, resolveDateTimestampMs, resolveExpiresAtMsFromDurationSeconds } from "openclaw/plugin-sdk/number-runtime";
@@ -10,7 +10,7 @@ const GOOGLE_MEET_AUTH_URL = "https://accounts.google.com/o/oauth2/v2/auth";
10
10
  const GOOGLE_MEET_TOKEN_URL = "https://oauth2.googleapis.com/token";
11
11
  const GOOGLE_MEET_TOKEN_HOST = "oauth2.googleapis.com";
12
12
  const GOOGLE_MEET_DEFAULT_TOKEN_LIFETIME_SECONDS = 3600;
13
- const GOOGLE_OAUTH_TOKEN_JSON_MAX_BYTES = 256 * 1024;
13
+ const GOOGLE_OAUTH_TOKEN_JSON_MAX_BYTES = 262144;
14
14
  const GOOGLE_OAUTH_REQUEST_TIMEOUT_MS = 3e4;
15
15
  const GOOGLE_MEET_SCOPES = [
16
16
  "https://www.googleapis.com/auth/meetings.space.created",
@@ -134,7 +134,8 @@ function isLocalCallbackListenerError(error) {
134
134
  return error.message.includes("EADDRINUSE") || error.message.includes("port") || error.message.includes("listen");
135
135
  }
136
136
  async function readManualGoogleMeetAuthCode(params) {
137
- const parsed = parseOAuthCallbackInput(await params.promptInput("Paste the full redirect URL here: "), {
137
+ const input = await params.promptInput("Paste the full redirect URL here: ");
138
+ const parsed = parseOAuthCallbackInput(input, {
138
139
  missingState: "Missing 'state' parameter. Paste the full redirect URL.",
139
140
  invalidInput: "Paste the full redirect URL, not just the code."
140
141
  });
@@ -20,7 +20,9 @@ const legacyConfigRules = [{
20
20
  match: hasLegacyGoogleRealtimeProvider
21
21
  }];
22
22
  function migrateGoogleMeetLegacyRealtimeProvider(config) {
23
- const rawRealtime = asNullableRecord(asNullableRecord(asNullableRecord(config.plugins?.entries?.["google-meet"])?.config)?.realtime);
23
+ const rawEntry = asNullableRecord(config.plugins?.entries?.["google-meet"]);
24
+ const rawPluginConfig = asNullableRecord(rawEntry?.config);
25
+ const rawRealtime = asNullableRecord(rawPluginConfig?.realtime);
24
26
  if (!rawRealtime || !hasLegacyGoogleRealtimeProvider(rawRealtime)) return null;
25
27
  const nextConfig = structuredClone(config);
26
28
  const nextPlugins = asNullableRecord(nextConfig.plugins) ?? {};