@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.
- package/dist/.setup/{chrome-create-wuAK5Pnq.mjs → chrome-create-Bh1L33pr.mjs} +20 -57
- package/dist/.setup/{cli-DVDq0TFu.mjs → cli-Bfm5LpNM.mjs} +63 -143
- package/dist/.setup/{cli-export-D4IM6KLJ.mjs → cli-export-BOebaVFW.mjs} +52 -57
- package/dist/.setup/{create-UrHOmnWb.mjs → create-DyYbmN11.mjs} +3 -3
- package/dist/.setup/google-api-DEZ9mWx7.mjs +50 -0
- package/dist/.setup/{google-meet-platform-adapter-gosgbMIM.mjs → google-meet-platform-adapter-CKXMbP3X.mjs} +1 -1
- package/dist/.setup/{node-host-Tr7Mx3da.mjs → node-host-CyFclhO_.mjs} +1 -1
- package/dist/.setup/{node-invoke-policy-Dd3krTYV.mjs → node-invoke-policy-BnX3PaH7.mjs} +3 -4
- package/dist/.setup/{oauth-BoyruWcS.mjs → oauth-XgdPFWEJ.mjs} +1 -1
- package/dist/.setup/{plugin-helpers-CdQ_YNA7.mjs → plugin-helpers-D1OyyzEZ.mjs} +85 -201
- package/dist/.setup/{plugin-registration-aCEuCerg.mjs → plugin-registration-BP83dqMw.mjs} +23 -31
- package/dist/.setup/{runtime-BdiF53A2.mjs → runtime-DQgxZ2Na.mjs} +16 -67
- package/dist/index.js +4 -4
- package/package.json +4 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { g as __exportAll } from "./plugin-helpers-D1OyyzEZ.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";
|
|
@@ -19,6 +19,17 @@ function parseGoogleMeetTransport(value) {
|
|
|
19
19
|
if (value === void 0 || value === "chrome" || value === "chrome-node" || value === "twilio") return value;
|
|
20
20
|
throw new Error(`transport must be chrome, chrome-node, or twilio; received ${value}`);
|
|
21
21
|
}
|
|
22
|
+
function resolveCliJoinRequest(url, options) {
|
|
23
|
+
return {
|
|
24
|
+
url,
|
|
25
|
+
transport: parseGoogleMeetTransport(options.transport),
|
|
26
|
+
mode: parseGoogleMeetMode(options.mode),
|
|
27
|
+
message: options.message,
|
|
28
|
+
dialInNumber: options.dialInNumber,
|
|
29
|
+
pin: options.pin,
|
|
30
|
+
dtmfSequence: options.dtmfSequence
|
|
31
|
+
};
|
|
32
|
+
}
|
|
22
33
|
function parseGoogleMeetBrowserTransport(value) {
|
|
23
34
|
const transport = parseGoogleMeetTransport(value);
|
|
24
35
|
if (transport === "twilio") throw new Error(`transport must be chrome or chrome-node; received ${value}`);
|
|
@@ -239,45 +250,28 @@ var cli_export_exports = /* @__PURE__ */ __exportAll({
|
|
|
239
250
|
buildGoogleMeetExportManifest: () => buildGoogleMeetExportManifest,
|
|
240
251
|
exportGoogleMeetBundle: () => exportGoogleMeetBundle,
|
|
241
252
|
googleMeetExportFileNames: () => googleMeetExportFileNames,
|
|
242
|
-
|
|
243
|
-
|
|
253
|
+
renderArtifacts: () => renderArtifacts,
|
|
254
|
+
renderAttendance: () => renderAttendance,
|
|
244
255
|
renderAttendanceCsv: () => renderAttendanceCsv,
|
|
245
|
-
renderAttendanceMarkdown: () => renderAttendanceMarkdown,
|
|
246
|
-
renderAttendanceSummary: () => renderAttendanceSummary,
|
|
247
256
|
writeCalendarEventsSummary: () => writeCalendarEventsSummary,
|
|
248
257
|
writeLatestConferenceRecordSummary: () => writeLatestConferenceRecordSummary,
|
|
249
258
|
writeMeetExportBundle: () => writeMeetExportBundle
|
|
250
259
|
});
|
|
251
|
-
function
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
lines.push(
|
|
261
|
-
lines.push(
|
|
262
|
-
lines.push(`recordings: ${entry.recordings.length}`);
|
|
263
|
-
lines.push(`transcripts: ${entry.transcripts.length}`);
|
|
264
|
-
lines.push(`transcript entries: ${entry.transcriptEntries.reduce((count, transcript) => count + transcript.entries.length, 0)}`);
|
|
265
|
-
lines.push(`smart notes: ${entry.smartNotes.length}`);
|
|
266
|
-
if (entry.smartNotesError) lines.push(`smart notes warning: ${entry.smartNotesError}`);
|
|
267
|
-
for (const recording of entry.recordings) lines.push(`- recording: ${recording.name}`);
|
|
268
|
-
for (const transcript of entry.transcripts) {
|
|
269
|
-
lines.push(`- transcript: ${transcript.name}`);
|
|
270
|
-
if (transcript.documentTextError) lines.push(`- transcript document body warning: ${transcript.documentTextError}`);
|
|
271
|
-
}
|
|
272
|
-
for (const transcriptEntries of entry.transcriptEntries) if (transcriptEntries.entriesError) lines.push(`- transcript entries warning: ${transcriptEntries.transcript}: ${transcriptEntries.entriesError}`);
|
|
273
|
-
for (const smartNote of entry.smartNotes) {
|
|
274
|
-
lines.push(`- smart note: ${smartNote.name}`);
|
|
275
|
-
if (smartNote.documentTextError) lines.push(`- smart note document body warning: ${smartNote.documentTextError}`);
|
|
276
|
-
}
|
|
260
|
+
function appendArtifactSummary(lines, entry) {
|
|
261
|
+
if (entry.smartNotesError) lines.push(`smart notes warning: ${entry.smartNotesError}`);
|
|
262
|
+
for (const recording of entry.recordings) lines.push(`- recording: ${recording.name}`);
|
|
263
|
+
for (const transcript of entry.transcripts) {
|
|
264
|
+
lines.push(`- transcript: ${transcript.name}`);
|
|
265
|
+
if (transcript.documentTextError) lines.push(`- transcript document body warning: ${transcript.documentTextError}`);
|
|
266
|
+
}
|
|
267
|
+
for (const transcriptEntries of entry.transcriptEntries) if (transcriptEntries.entriesError) lines.push(`- transcript entries warning: ${transcriptEntries.transcript}: ${transcriptEntries.entriesError}`);
|
|
268
|
+
for (const smartNote of entry.smartNotes) {
|
|
269
|
+
lines.push(`- smart note: ${smartNote.name}`);
|
|
270
|
+
if (smartNote.documentTextError) lines.push(`- smart note document body warning: ${smartNote.documentTextError}`);
|
|
277
271
|
}
|
|
278
|
-
return `${lines.join("\n")}\n`;
|
|
279
272
|
}
|
|
280
|
-
function renderAttendance(result,
|
|
273
|
+
function renderAttendance(result, format) {
|
|
274
|
+
const markdown = format === "markdown";
|
|
281
275
|
const lines = markdown ? ["# Google Meet Attendance"] : [];
|
|
282
276
|
const field = (label, value) => {
|
|
283
277
|
lines.push(`${markdown ? label : label.toLowerCase()}: ${value}`);
|
|
@@ -303,12 +297,6 @@ function renderAttendance(result, markdown) {
|
|
|
303
297
|
}
|
|
304
298
|
return `${lines.join("\n")}\n`;
|
|
305
299
|
}
|
|
306
|
-
function renderAttendanceSummary(result) {
|
|
307
|
-
return renderAttendance(result, false);
|
|
308
|
-
}
|
|
309
|
-
function renderAttendanceMarkdown(result) {
|
|
310
|
-
return renderAttendance(result, true);
|
|
311
|
-
}
|
|
312
300
|
function writeLatestConferenceRecordSummary(result) {
|
|
313
301
|
writeStdoutLine("input: %s", result.input);
|
|
314
302
|
writeStdoutLine("space: %s", result.space.name);
|
|
@@ -345,23 +333,30 @@ function appendArtifactDocuments(lines, title, documents) {
|
|
|
345
333
|
else if (document.documentText) lines.push(` - Document body: ${document.documentText.length} chars`);
|
|
346
334
|
}
|
|
347
335
|
}
|
|
348
|
-
function
|
|
349
|
-
const
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
336
|
+
function renderArtifacts(result, format) {
|
|
337
|
+
const markdown = format === "markdown";
|
|
338
|
+
const lines = markdown ? ["# Google Meet Artifacts"] : [];
|
|
339
|
+
const field = (label, value) => {
|
|
340
|
+
lines.push(`${markdown ? label : label.toLowerCase()}: ${value}`);
|
|
341
|
+
};
|
|
342
|
+
if (result.input) field("Input", result.input);
|
|
343
|
+
if (result.space) field("Space", result.space.name);
|
|
344
|
+
if (markdown) lines.push("");
|
|
345
|
+
field("Conference records", result.conferenceRecords.length);
|
|
354
346
|
for (const entry of result.artifacts) {
|
|
355
|
-
lines.push("");
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
lines.push(
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
347
|
+
lines.push("", `${markdown ? "##" : "record:"} ${entry.conferenceRecord.name}`);
|
|
348
|
+
field("Started", formatOptional(entry.conferenceRecord.startTime));
|
|
349
|
+
field("Ended", formatOptional(entry.conferenceRecord.endTime));
|
|
350
|
+
if (markdown) lines.push("");
|
|
351
|
+
field("Participants", entry.participants.length);
|
|
352
|
+
field("Recordings", entry.recordings.length);
|
|
353
|
+
field("Transcripts", entry.transcripts.length);
|
|
354
|
+
field("Transcript entries", entry.transcriptEntries.reduce((count, transcript) => count + transcript.entries.length, 0));
|
|
355
|
+
field("Smart notes", entry.smartNotes.length);
|
|
356
|
+
if (!markdown) {
|
|
357
|
+
appendArtifactSummary(lines, entry);
|
|
358
|
+
continue;
|
|
359
|
+
}
|
|
365
360
|
const warnings = collectGoogleMeetArtifactWarnings({
|
|
366
361
|
conferenceRecords: [entry.conferenceRecord],
|
|
367
362
|
artifacts: [entry]
|
|
@@ -563,7 +558,7 @@ async function writeMeetExportBundle(params) {
|
|
|
563
558
|
const files = [
|
|
564
559
|
{
|
|
565
560
|
name: "summary.md",
|
|
566
|
-
content: `${
|
|
561
|
+
content: `${renderArtifacts(params.artifacts, "markdown")}\n${renderAttendance(params.attendance, "markdown")}`
|
|
567
562
|
},
|
|
568
563
|
{
|
|
569
564
|
name: "attendance.csv",
|
|
@@ -629,4 +624,4 @@ async function exportGoogleMeetBundle(params) {
|
|
|
629
624
|
};
|
|
630
625
|
}
|
|
631
626
|
//#endregion
|
|
632
|
-
export {
|
|
627
|
+
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,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { d as
|
|
3
|
-
import { t as createMeetWithBrowserProxyOnNode } from "./chrome-create-
|
|
1
|
+
import { g as __exportAll, o as resolveGoogleMeetTokenFromParams, u as createGoogleMeetSpace } from "./plugin-helpers-D1OyyzEZ.mjs";
|
|
2
|
+
import { d as normalizeMode, f as normalizeTransport } from "./plugin-registration-BP83dqMw.mjs";
|
|
3
|
+
import { t as createMeetWithBrowserProxyOnNode } from "./chrome-create-Bh1L33pr.mjs";
|
|
4
4
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
5
5
|
//#region extensions/google-meet/src/create.ts
|
|
6
6
|
var create_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { readResponseTextLimited } from "openclaw/plugin-sdk/provider-http";
|
|
2
|
+
import { fetchWithSsrFGuard } from "openclaw/plugin-sdk/ssrf-runtime";
|
|
3
|
+
//#region extensions/google-meet/src/google-api.ts
|
|
4
|
+
const REAUTH_HINT = "Re-run `openclaw googlemeet auth login` and store the refreshed oauth block.";
|
|
5
|
+
const GOOGLE_API_ERROR_BODY_LIMIT_BYTES = 8192;
|
|
6
|
+
function scopeText(scopes) {
|
|
7
|
+
return scopes.map((scope) => `\`${scope}\``).join(", ");
|
|
8
|
+
}
|
|
9
|
+
async function readGoogleApiErrorDetail(response) {
|
|
10
|
+
return await readResponseTextLimited(response, GOOGLE_API_ERROR_BODY_LIMIT_BYTES);
|
|
11
|
+
}
|
|
12
|
+
async function googleApiError(params) {
|
|
13
|
+
const detail = await readGoogleApiErrorDetail(params.response);
|
|
14
|
+
const scopeHint = params.scopes && params.scopes.length > 0 ? ` Required OAuth scope: ${scopeText(params.scopes)}. ${REAUTH_HINT}` : "";
|
|
15
|
+
return /* @__PURE__ */ new Error(`${params.prefix} failed (${params.response.status}): ${detail}${scopeHint}`);
|
|
16
|
+
}
|
|
17
|
+
function appendQuery(url, query) {
|
|
18
|
+
if (!query) return url;
|
|
19
|
+
const parsed = new URL(url);
|
|
20
|
+
for (const [key, value] of Object.entries(query)) if (value !== void 0) parsed.searchParams.set(key, String(value));
|
|
21
|
+
return parsed.toString();
|
|
22
|
+
}
|
|
23
|
+
async function requestGoogleApi(params, read) {
|
|
24
|
+
const { response, release } = await fetchWithSsrFGuard({
|
|
25
|
+
url: appendQuery(params.url, params.query),
|
|
26
|
+
init: {
|
|
27
|
+
...params.init,
|
|
28
|
+
headers: {
|
|
29
|
+
Authorization: `Bearer ${params.accessToken}`,
|
|
30
|
+
Accept: params.accept ?? "application/json",
|
|
31
|
+
...params.init?.body === void 0 ? {} : { "Content-Type": "application/json" }
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
policy: { allowedHostnames: [params.allowedHostname] },
|
|
35
|
+
auditContext: params.auditContext,
|
|
36
|
+
timeoutMs: 3e4
|
|
37
|
+
});
|
|
38
|
+
try {
|
|
39
|
+
if (!response.ok) throw await googleApiError({
|
|
40
|
+
response,
|
|
41
|
+
prefix: params.prefix,
|
|
42
|
+
scopes: params.scopes
|
|
43
|
+
});
|
|
44
|
+
return await read(response);
|
|
45
|
+
} finally {
|
|
46
|
+
await release();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
//#endregion
|
|
50
|
+
export { requestGoogleApi as n, readGoogleApiErrorDetail as t };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as GOOGLE_MEET_NODE_COMMAND } from "./google-meet-platform-constants-CnRfrYX7.mjs";
|
|
2
2
|
import { t as normalizeMeetUrl } from "./meet-url-BP2Jlvjs.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-
|
|
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-Bh1L33pr.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";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as GOOGLE_MEET_NODE_COMMAND } from "./google-meet-platform-constants-CnRfrYX7.mjs";
|
|
2
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-
|
|
3
|
+
import { t as GOOGLE_MEET_PLATFORM_ADAPTER } from "./google-meet-platform-adapter-CKXMbP3X.mjs";
|
|
4
4
|
import { MeetingPlatformAdapter } from "openclaw/plugin-sdk/meeting-runtime";
|
|
5
5
|
//#region extensions/google-meet/src/node-host.ts
|
|
6
6
|
function normalizeMeetKey(value) {
|
|
@@ -1,8 +1,7 @@
|
|
|
1
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-
|
|
2
|
+
import { t as GOOGLE_MEET_PLATFORM_ADAPTER } from "./google-meet-platform-adapter-CKXMbP3X.mjs";
|
|
3
3
|
import { createMeetingBrowserNodeInvokePolicy } from "openclaw/plugin-sdk/meeting-runtime";
|
|
4
4
|
//#region extensions/google-meet/src/node-invoke-policy.ts
|
|
5
|
-
const GOOGLE_MEET_CHROME_NODE_COMMAND = GOOGLE_MEET_NODE_COMMAND;
|
|
6
5
|
const START_MODES = /* @__PURE__ */ new Set([
|
|
7
6
|
"agent",
|
|
8
7
|
"bidi",
|
|
@@ -11,7 +10,7 @@ const START_MODES = /* @__PURE__ */ new Set([
|
|
|
11
10
|
]);
|
|
12
11
|
function createGoogleMeetChromeNodeInvokePolicy(config) {
|
|
13
12
|
return createMeetingBrowserNodeInvokePolicy({
|
|
14
|
-
commandName:
|
|
13
|
+
commandName: GOOGLE_MEET_NODE_COMMAND,
|
|
15
14
|
displayName: "Google Meet",
|
|
16
15
|
deniedCode: "GOOGLE_MEET_NODE_POLICY_DENIED",
|
|
17
16
|
supportedModes: START_MODES,
|
|
@@ -21,4 +20,4 @@ function createGoogleMeetChromeNodeInvokePolicy(config) {
|
|
|
21
20
|
});
|
|
22
21
|
}
|
|
23
22
|
//#endregion
|
|
24
|
-
export {
|
|
23
|
+
export { createGoogleMeetChromeNodeInvokePolicy };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { t as readGoogleApiErrorDetail } from "./google-api-DEZ9mWx7.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";
|