UNPKG

@elizaos/plugin-google-meet-cute

Version:

Google Meet integration plugin for ElizaOS - manage meetings, get participant info, and access meeting artifacts via Google Meet REST API

137 lines (131 loc) 4.5 kB
import { Service, IAgentRuntime, Plugin } from '@elizaos/core'; import { z } from 'zod'; import { OAuth2Client } from 'google-auth-library'; import { meet_v2 } from 'googleapis'; declare const googleMeetConfigSchema: z.ZodObject<{ GOOGLE_CLIENT_ID: z.ZodOptional<z.ZodString>; GOOGLE_CLIENT_SECRET: z.ZodOptional<z.ZodString>; GOOGLE_REDIRECT_URI: z.ZodDefault<z.ZodString>; GOOGLE_REFRESH_TOKEN: z.ZodOptional<z.ZodString>; GOOGLE_MEET_DEFAULT_DURATION_MINUTES: z.ZodDefault<z.ZodPipe<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>, z.ZodTransform<number, string | number>>>; GOOGLE_MEET_DEFAULT_ACCESS_TYPE: z.ZodDefault<z.ZodEnum<{ OPEN: "OPEN"; TRUSTED: "TRUSTED"; RESTRICTED: "RESTRICTED"; }>>; }, z.core.$strip>; type GoogleMeetConfig = z.infer<typeof googleMeetConfigSchema>; interface Meeting { id: string; meetingCode: string; meetingUri: string; title?: string; startTime: Date; endTime?: Date; participants: Participant[]; transcripts: Transcript[]; status: MeetingStatus; } interface Participant { id: string; name: string; joinTime: Date; leaveTime?: Date; isActive: boolean; } interface Transcript { id: string; speakerName: string; speakerId: string; text: string; timestamp: Date; confidence: number; startTime?: number; endTime?: number; } declare enum MeetingStatus { WAITING = "waiting", ACTIVE = "active", ENDED = "ended", ERROR = "error" } interface MeetingReport { meetingId: string; title: string; date: Date; duration: number; participants: string[]; summary: string; keyPoints: string[]; actionItems: ActionItem[]; fullTranscript: Transcript[]; } interface ActionItem { description: string; assignee?: string; dueDate?: Date; priority: "low" | "medium" | "high"; } interface GoogleMeetAPIServiceState { currentMeeting?: Meeting; isAuthenticated: boolean; hasRefreshToken: boolean; } interface CreateMeetingParams { accessType?: 'OPEN' | 'TRUSTED' | 'RESTRICTED'; title?: string; } interface GetMeetingInfoParams { meetingId?: string; } interface GenerateReportParams { meetingId: string; includeSummary?: boolean; includeActionItems?: boolean; includeTranscript?: boolean; includeRecordings?: boolean; } interface AuthenticateParams { interactive?: boolean; } declare class GoogleAuthService extends Service { static serviceType: "google-auth"; private oauth2Client; private authenticated; get capabilityDescription(): string; constructor(runtime: IAgentRuntime); static start(runtime: IAgentRuntime): Promise<Service>; initialize(): Promise<void>; getAuthUrl(): string; authenticateInteractive(): Promise<void>; getAccessToken(): Promise<string>; getOAuth2Client(): OAuth2Client; isAuthenticated(): boolean; stop(): Promise<void>; } declare class GoogleMeetAPIService extends Service { static serviceType: "google-meet-api"; private authService; private meetClient; private meetings; private currentMeetingSpace; get capabilityDescription(): string; constructor(runtime: IAgentRuntime); static start(runtime: IAgentRuntime): Promise<Service>; initialize(): Promise<void>; createMeeting(config?: { accessType?: 'OPEN' | 'TRUSTED' | 'RESTRICTED'; }): Promise<Meeting>; getMeetingSpace(spaceName: string): Promise<meet_v2.Schema$Space>; getConference(conferenceName: string): Promise<meet_v2.Schema$ConferenceRecord>; listParticipants(conferenceRecordName: string): Promise<Participant[]>; getTranscript(transcriptName: string): Promise<string>; listRecordings(conferenceRecordName: string): Promise<meet_v2.Schema$Recording[]>; getRecordingUrl(recordingName: string): Promise<string | null>; endMeeting(spaceName: string): Promise<void>; getCurrentMeeting(): Meeting | null; getMeeting(meetingId: string): Meeting | null; stop(): Promise<void>; } declare const googleMeetPlugin: Plugin; export { type ActionItem, type AuthenticateParams, type CreateMeetingParams, type GenerateReportParams, type GetMeetingInfoParams, GoogleAuthService, GoogleMeetAPIService, type GoogleMeetAPIServiceState, type GoogleMeetConfig, type Meeting, type MeetingReport, MeetingStatus, type Participant, type Transcript, googleMeetPlugin as default, googleMeetConfigSchema, googleMeetPlugin };