use composio for google optionally

This commit is contained in:
Arjun 2026-03-02 17:52:23 +05:30
parent d2bb11f104
commit 17bb625ab9
7 changed files with 740 additions and 20 deletions

View file

@ -4,6 +4,7 @@ import * as composioClient from '@x/core/dist/composio/client.js';
import { composioAccountsRepo } from '@x/core/dist/composio/repo.js';
import type { LocalConnectedAccount, ZExecuteActionResponse } from '@x/core/dist/composio/types.js';
import { z } from 'zod';
import { triggerSync as triggerGmailSync } from '@x/core/dist/knowledge/sync_gmail.js';
const REDIRECT_URI = 'http://localhost:8081/oauth/callback';
@ -152,6 +153,9 @@ export async function initiateConnection(toolkitSlug: string): Promise<{
if (accountStatus.status === 'ACTIVE') {
emitComposioEvent({ toolkitSlug, success: true });
if (toolkitSlug === 'gmail') {
triggerGmailSync();
}
} else {
emitComposioEvent({
toolkitSlug,
@ -266,6 +270,13 @@ export function listConnected(): { toolkits: string[] } {
return { toolkits: composioAccountsRepo.getConnectedToolkits() };
}
/**
* Check if Composio should be used for Google services (Gmail, etc.)
*/
export function useComposioForGoogle(): { enabled: boolean } {
return { enabled: composioClient.useComposioForGoogle() };
}
/**
* Execute a Composio action
*/

View file

@ -543,6 +543,9 @@ export function setupIpcHandlers() {
'composio:execute-action': async (_event, args) => {
return composioHandler.executeAction(args.actionSlug, args.toolkitSlug, args.input);
},
'composio:use-composio-for-google': async () => {
return composioHandler.useComposioForGoogle();
},
// Agent schedule handlers
'agent-schedule:getConfig': async () => {
const repo = container.resolve<IAgentScheduleRepo>('agentScheduleRepo');