@elizaos/plugin-google-chat 2.0.0-alpha.5 → 2.0.0-beta.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.
Files changed (42) hide show
  1. package/README.md +160 -0
  2. package/auto-enable.ts +21 -0
  3. package/dist/src/accounts.d.ts +16 -0
  4. package/dist/src/accounts.d.ts.map +1 -0
  5. package/dist/src/accounts.js +163 -0
  6. package/dist/src/accounts.js.map +1 -0
  7. package/dist/src/actions/index.d.ts +1 -0
  8. package/dist/src/actions/index.d.ts.map +1 -0
  9. package/dist/src/actions/index.js +3 -0
  10. package/dist/src/actions/index.js.map +1 -0
  11. package/dist/src/config.d.ts +91 -0
  12. package/dist/src/config.d.ts.map +1 -0
  13. package/dist/src/config.js +8 -0
  14. package/dist/src/config.js.map +1 -0
  15. package/dist/src/connector-account-provider.d.ts +22 -0
  16. package/dist/src/connector-account-provider.d.ts.map +1 -0
  17. package/dist/src/connector-account-provider.js +89 -0
  18. package/dist/src/connector-account-provider.js.map +1 -0
  19. package/dist/src/index.d.ts +18 -0
  20. package/dist/src/index.d.ts.map +1 -0
  21. package/dist/src/index.js +66 -0
  22. package/dist/src/index.js.map +1 -0
  23. package/dist/src/providers/index.d.ts +1 -0
  24. package/dist/src/providers/index.d.ts.map +1 -0
  25. package/dist/src/providers/index.js +3 -0
  26. package/dist/src/providers/index.js.map +1 -0
  27. package/dist/src/service.d.ts +62 -0
  28. package/dist/src/service.d.ts.map +1 -0
  29. package/dist/src/service.js +724 -0
  30. package/dist/src/service.js.map +1 -0
  31. package/dist/src/types.d.ts +216 -0
  32. package/dist/src/types.d.ts.map +1 -0
  33. package/dist/src/types.js +144 -0
  34. package/dist/src/types.js.map +1 -0
  35. package/dist/src/workflow-credential-provider.d.ts +21 -0
  36. package/dist/src/workflow-credential-provider.d.ts.map +1 -0
  37. package/dist/src/workflow-credential-provider.js +57 -0
  38. package/dist/src/workflow-credential-provider.js.map +1 -0
  39. package/package.json +20 -11
  40. package/dist/index.d.ts +0 -1
  41. package/dist/index.js +0 -1115
  42. package/dist/index.js.map +0 -17
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Google Chat Plugin for ElizaOS
3
+ *
4
+ * Provides Google Chat messaging integration for ElizaOS agents,
5
+ * supporting spaces, direct messages, threads, and reactions.
6
+ */
7
+ import { getConnectorAccountManager, logger } from "@elizaos/core";
8
+ import { createGoogleChatConnectorAccountProvider } from "./connector-account-provider.js";
9
+ import { GoogleChatService } from "./service.js";
10
+ import { GoogleChatWorkflowCredentialProvider } from "./workflow-credential-provider.js";
11
+ export * from "./accounts.js";
12
+ // Message, space listing, and reaction operations route through MESSAGE via
13
+ // the MessageConnector registered by GoogleChatService.
14
+ // Export types
15
+ export * from "./types.js";
16
+ // Export service
17
+ export { GoogleChatService };
18
+ /**
19
+ * Google Chat plugin definition
20
+ */
21
+ const googleChatPlugin = {
22
+ name: "google-chat",
23
+ description: "Google Chat integration plugin for ElizaOS agents",
24
+ services: [GoogleChatService, GoogleChatWorkflowCredentialProvider],
25
+ actions: [],
26
+ providers: [],
27
+ tests: [],
28
+ // Self-declared auto-enable: activate when the "googlechat" connector is
29
+ // configured under config.connectors. The hardcoded CONNECTOR_PLUGINS map
30
+ // in plugin-auto-enable-engine.ts still serves as a fallback.
31
+ autoEnable: {
32
+ connectorKeys: ["googlechat"],
33
+ },
34
+ /**
35
+ * Plugin initialization hook
36
+ */
37
+ init: async (config, runtime) => {
38
+ logger.info("Initializing Google Chat plugin...");
39
+ try {
40
+ const manager = getConnectorAccountManager(runtime);
41
+ manager.registerProvider(createGoogleChatConnectorAccountProvider(runtime));
42
+ }
43
+ catch (err) {
44
+ logger.warn({
45
+ src: "plugin:google-chat",
46
+ err: err instanceof Error ? err.message : String(err),
47
+ }, "Failed to register Google Chat provider with ConnectorAccountManager");
48
+ }
49
+ // Log configuration status
50
+ const serviceAccount = config.GOOGLE_CHAT_SERVICE_ACCOUNT || process.env.GOOGLE_CHAT_SERVICE_ACCOUNT;
51
+ const serviceAccountFile = config.GOOGLE_CHAT_SERVICE_ACCOUNT_FILE || process.env.GOOGLE_CHAT_SERVICE_ACCOUNT_FILE;
52
+ const hasCredentials = Boolean(serviceAccount || serviceAccountFile || process.env.GOOGLE_APPLICATION_CREDENTIALS);
53
+ logger.info(`Google Chat plugin configuration:`);
54
+ logger.info(` - Credentials configured: ${hasCredentials ? "Yes" : "No"}`);
55
+ logger.info(` - Audience type: ${config.GOOGLE_CHAT_AUDIENCE_TYPE || process.env.GOOGLE_CHAT_AUDIENCE_TYPE || "(not set)"}`);
56
+ logger.info(` - Audience: ${config.GOOGLE_CHAT_AUDIENCE || process.env.GOOGLE_CHAT_AUDIENCE ? "(set)" : "(not set)"}`);
57
+ logger.info(` - Webhook path: ${config.GOOGLE_CHAT_WEBHOOK_PATH || process.env.GOOGLE_CHAT_WEBHOOK_PATH || "/googlechat"}`);
58
+ if (!hasCredentials) {
59
+ logger.warn("Google Chat service account credentials not configured. " +
60
+ "Set GOOGLE_CHAT_SERVICE_ACCOUNT, GOOGLE_CHAT_SERVICE_ACCOUNT_FILE, or GOOGLE_APPLICATION_CREDENTIALS.");
61
+ }
62
+ logger.info("Google Chat plugin initialized");
63
+ },
64
+ };
65
+ export default googleChatPlugin;
66
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,0BAA0B,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,wCAAwC,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,oCAAoC,EAAE,MAAM,mCAAmC,CAAC;AAEzF,cAAc,eAAe,CAAC;AAC9B,4EAA4E;AAC5E,wDAAwD;AACxD,eAAe;AACf,cAAc,YAAY,CAAC;AAC3B,iBAAiB;AACjB,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAE7B;;GAEG;AACH,MAAM,gBAAgB,GAAW;IAC/B,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,mDAAmD;IAEhE,QAAQ,EAAE,CAAC,iBAAiB,EAAE,oCAAoC,CAAC;IAEnE,OAAO,EAAE,EAAE;IAEX,SAAS,EAAE,EAAE;IAEb,KAAK,EAAE,EAAE;IAET,yEAAyE;IACzE,0EAA0E;IAC1E,8DAA8D;IAC9D,UAAU,EAAE;QACV,aAAa,EAAE,CAAC,YAAY,CAAC;KAC9B;IAED;;OAEG;IACH,IAAI,EAAE,KAAK,EAAE,MAA8B,EAAE,OAAsB,EAAiB,EAAE;QACpF,MAAM,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAElD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;YACpD,OAAO,CAAC,gBAAgB,CAAC,wCAAwC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CACT;gBACE,GAAG,EAAE,oBAAoB;gBACzB,GAAG,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aACtD,EACD,sEAAsE,CACvE,CAAC;QACJ,CAAC;QAED,2BAA2B;QAC3B,MAAM,cAAc,GAClB,MAAM,CAAC,2BAA2B,IAAI,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC;QAChF,MAAM,kBAAkB,GACtB,MAAM,CAAC,gCAAgC,IAAI,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC;QAC1F,MAAM,cAAc,GAAG,OAAO,CAC5B,cAAc,IAAI,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,8BAA8B,CACnF,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,+BAA+B,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5E,MAAM,CAAC,IAAI,CACT,sBAAsB,MAAM,CAAC,yBAAyB,IAAI,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,WAAW,EAAE,CACjH,CAAC;QACF,MAAM,CAAC,IAAI,CACT,iBAAiB,MAAM,CAAC,oBAAoB,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,CAC3G,CAAC;QACF,MAAM,CAAC,IAAI,CACT,qBAAqB,MAAM,CAAC,wBAAwB,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,aAAa,EAAE,CAChH,CAAC;QAEF,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CACT,0DAA0D;gBACxD,uGAAuG,CAC1G,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;IAChD,CAAC;CACF,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // Google Chat spaces are exposed through MESSAGE list_channels.
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":";AAAA,gEAAgE"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Google Chat service implementation for ElizaOS.
3
+ */
4
+ import { type Content, type IAgentRuntime, Service } from "@elizaos/core";
5
+ import { type GoogleChatEvent, type GoogleChatMessageSendOptions, type GoogleChatReaction, type GoogleChatSendResult, type GoogleChatSettings, type GoogleChatSpace, type IGoogleChatService } from "./types.js";
6
+ export declare class GoogleChatService extends Service implements IGoogleChatService {
7
+ static serviceType: string;
8
+ capabilityDescription: string;
9
+ private states;
10
+ private defaultAccountId;
11
+ static start(runtime: IAgentRuntime): Promise<GoogleChatService>;
12
+ static registerSendHandlers(runtime: IAgentRuntime, service: GoogleChatService, accountId?: string): void;
13
+ stop(): Promise<void>;
14
+ private loadSettings;
15
+ private validateSettings;
16
+ private createAuth;
17
+ private testConnection;
18
+ isConnected(): boolean;
19
+ getAccountId(runtime?: IAgentRuntime): string;
20
+ getBotUser(): string | undefined;
21
+ getAccessToken(accountId?: string): Promise<string>;
22
+ private fetchApi;
23
+ getSpaces(accountId?: string): Promise<GoogleChatSpace[]>;
24
+ sendMessage(options: GoogleChatMessageSendOptions): Promise<GoogleChatSendResult>;
25
+ updateMessage(messageName: string, text: string, accountId?: string): Promise<{
26
+ success: boolean;
27
+ messageName?: string;
28
+ error?: string;
29
+ }>;
30
+ deleteMessage(messageName: string, accountId?: string): Promise<{
31
+ success: boolean;
32
+ error?: string;
33
+ }>;
34
+ sendReaction(messageName: string, emoji: string, accountId?: string): Promise<{
35
+ success: boolean;
36
+ name?: string;
37
+ error?: string;
38
+ }>;
39
+ deleteReaction(reactionName: string, accountId?: string): Promise<{
40
+ success: boolean;
41
+ error?: string;
42
+ }>;
43
+ listReactions(messageName: string, limit?: number, accountId?: string): Promise<GoogleChatReaction[]>;
44
+ findDirectMessage(userName: string, accountId?: string): Promise<GoogleChatSpace | null>;
45
+ uploadAttachment(space: string, filename: string, buffer: Buffer, contentType?: string, accountId?: string): Promise<{
46
+ attachmentUploadToken?: string;
47
+ }>;
48
+ downloadMedia(resourceName: string, maxBytes?: number, accountId?: string): Promise<{
49
+ buffer: Buffer;
50
+ contentType?: string;
51
+ }>;
52
+ getSettings(): GoogleChatSettings | null;
53
+ sendDirectMessage(target: string, content: Content): Promise<void>;
54
+ sendRoomMessage(target: string, content: Content): Promise<void>;
55
+ private handleSendMessage;
56
+ private sendConnectorDirectMessage;
57
+ private sendConnectorContent;
58
+ private listConnectorSpaces;
59
+ processWebhookEvent(event: GoogleChatEvent, accountId?: string): Promise<void>;
60
+ private getState;
61
+ }
62
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,KAAK,OAAO,EAEZ,KAAK,aAAa,EAMlB,OAAO,EAGR,MAAM,eAAe,CAAC;AAUvB,OAAO,EAKL,KAAK,eAAe,EAEpB,KAAK,4BAA4B,EACjC,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EAEpB,KAAK,kBAAkB,EAIxB,MAAM,YAAY,CAAC;AAkLpB,qBAAa,iBAAkB,SAAQ,OAAQ,YAAW,kBAAkB;IAC1E,MAAM,CAAC,WAAW,SAA4B;IAE9C,qBAAqB,SAC0D;IAE/E,OAAO,CAAC,MAAM,CAA6C;IAC3D,OAAO,CAAC,gBAAgB,CAAkC;WAE7C,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA4CtE,MAAM,CAAC,oBAAoB,CACzB,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,iBAAiB,EAC1B,SAAS,SAAgC,GACxC,IAAI;IAoLD,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,gBAAgB;IAyBxB,OAAO,CAAC,UAAU;YAoBJ,cAAc;IAyB5B,WAAW,IAAI,OAAO;IAStB,YAAY,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM;IAe7C,UAAU,IAAI,MAAM,GAAG,SAAS;IAI1B,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAa3C,QAAQ;IAuBhB,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAQzD,WAAW,CAAC,OAAO,EAAE,4BAA4B,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAuDjF,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAkBhE,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAsB1C,YAAY,CAChB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA6BzD,cAAc,CAClB,YAAY,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAsB1C,aAAa,CACjB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAe1B,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAQxF,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,EACpB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;QAAE,qBAAqB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA2CxC,aAAa,CACjB,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,EACjB,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAiCpD,WAAW,IAAI,kBAAkB,GAAG,IAAI;IAQlC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAalE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;YASxD,iBAAiB;YA6BjB,0BAA0B;YAY1B,oBAAoB;YAiBpB,mBAAmB;IAS3B,mBAAmB,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCpF,OAAO,CAAC,QAAQ;CA4BjB"}