mirror of
https://github.com/rowboatlabs/rowboat.git
synced 2026-05-08 06:42:39 +02:00
move composio lib location
This commit is contained in:
parent
7458f5f58c
commit
5675cda52b
28 changed files with 303 additions and 271 deletions
|
|
@ -1,6 +1,12 @@
|
||||||
"use server";
|
"use server";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
import { ZToolkit, ZGetToolkitResponse, ZTool, ZListResponse, ZCreateConnectedAccountResponse, ZAuthScheme, ZCredentials } from "@/app/lib/composio/composio";
|
import { ZListResponse } from "@/src/application/lib/composio/types";
|
||||||
|
import { ZCreateConnectedAccountResponse } from "@/src/application/lib/composio/types";
|
||||||
|
import { ZCredentials } from "@/src/application/lib/composio/types";
|
||||||
|
import { ZTool } from "@/src/application/lib/composio/types";
|
||||||
|
import { ZGetToolkitResponse } from "@/src/application/lib/composio/types";
|
||||||
|
import { ZToolkit } from "@/src/application/lib/composio/types";
|
||||||
|
import { ZAuthScheme } from "@/src/application/lib/composio/types";
|
||||||
import { ComposioConnectedAccount } from "@/src/entities/models/project";
|
import { ComposioConnectedAccount } from "@/src/entities/models/project";
|
||||||
import { container } from "@/di/container";
|
import { container } from "@/di/container";
|
||||||
import { ICreateComposioTriggerDeploymentController } from "@/src/interface-adapters/controllers/composio-trigger-deployments/create-composio-trigger-deployment.controller";
|
import { ICreateComposioTriggerDeploymentController } from "@/src/interface-adapters/controllers/composio-trigger-deployments/create-composio-trigger-deployment.controller";
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import { tool, Tool } from "@openai/agents";
|
||||||
import { createOpenAI } from "@ai-sdk/openai";
|
import { createOpenAI } from "@ai-sdk/openai";
|
||||||
import { embed, generateText } from "ai";
|
import { embed, generateText } from "ai";
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
import { composio } from "./composio/composio";
|
import { composio } from "../../src/application/lib/composio/composio";
|
||||||
import { SignJWT } from "jose";
|
import { SignJWT } from "jose";
|
||||||
import crypto from "crypto";
|
import crypto from "crypto";
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ import { COPILOT_INSTRUCTIONS_MULTI_AGENT } from "./copilot_multi_agent";
|
||||||
import { COPILOT_MULTI_AGENT_EXAMPLE_1 } from "./example_multi_agent_1";
|
import { COPILOT_MULTI_AGENT_EXAMPLE_1 } from "./example_multi_agent_1";
|
||||||
import { CURRENT_WORKFLOW_PROMPT } from "./current_workflow";
|
import { CURRENT_WORKFLOW_PROMPT } from "./current_workflow";
|
||||||
import { USE_COMPOSIO_TOOLS } from "../feature_flags";
|
import { USE_COMPOSIO_TOOLS } from "../feature_flags";
|
||||||
import { composio, getTool } from "../composio/composio";
|
import { composio, getTool } from "../../../src/application/lib/composio/composio";
|
||||||
import { UsageTracker } from "../billing";
|
import { UsageTracker } from "../billing";
|
||||||
|
|
||||||
const PROVIDER_API_KEY = process.env.PROVIDER_API_KEY || process.env.OPENAI_API_KEY || '';
|
const PROVIDER_API_KEY = process.env.PROVIDER_API_KEY || process.env.OPENAI_API_KEY || '';
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,8 @@ import { ChevronLeft, ChevronRight, Search, X } from 'lucide-react';
|
||||||
import { Workflow, WorkflowTool } from '@/app/lib/types/workflow_types';
|
import { Workflow, WorkflowTool } from '@/app/lib/types/workflow_types';
|
||||||
import { listTools } from '@/app/actions/composio.actions';
|
import { listTools } from '@/app/actions/composio.actions';
|
||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
import { ZTool, ZListResponse } from '@/app/lib/composio/composio';
|
import { ZListResponse } from "@/src/application/lib/composio/types";
|
||||||
|
import { ZTool } from "@/src/application/lib/composio/types";
|
||||||
import { SlidePanel } from '@/components/ui/slide-panel';
|
import { SlidePanel } from '@/components/ui/slide-panel';
|
||||||
|
|
||||||
type ToolType = z.infer<typeof ZTool>;
|
type ToolType = z.infer<typeof ZTool>;
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,9 @@ import clsx from 'clsx';
|
||||||
import { listToolkits } from '@/app/actions/composio.actions';
|
import { listToolkits } from '@/app/actions/composio.actions';
|
||||||
import { fetchProject } from '@/app/actions/project.actions';
|
import { fetchProject } from '@/app/actions/project.actions';
|
||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
import { ZToolkit, ZListResponse, ZTool } from '@/app/lib/composio/composio';
|
import { ZListResponse } from "@/src/application/lib/composio/types";
|
||||||
|
import { ZTool } from "@/src/application/lib/composio/types";
|
||||||
|
import { ZToolkit } from "@/src/application/lib/composio/types";
|
||||||
import { Project } from "@/src/entities/models/project";
|
import { Project } from "@/src/entities/models/project";
|
||||||
import { ToolkitCard } from './ToolkitCard';
|
import { ToolkitCard } from './ToolkitCard';
|
||||||
import { Workflow } from '@/app/lib/types/workflow_types';
|
import { Workflow } from '@/app/lib/types/workflow_types';
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,10 @@ import { PictureImg } from '@/components/ui/picture-img';
|
||||||
import { Wrench, Shield, Key, Globe, ArrowLeft } from "lucide-react";
|
import { Wrench, Shield, Key, Globe, ArrowLeft } from "lucide-react";
|
||||||
import { getToolkit, createComposioManagedOauth2ConnectedAccount, syncConnectedAccount, listToolkits, createCustomConnectedAccount } from '@/app/actions/composio.actions';
|
import { getToolkit, createComposioManagedOauth2ConnectedAccount, syncConnectedAccount, listToolkits, createCustomConnectedAccount } from '@/app/actions/composio.actions';
|
||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
import { ZGetToolkitResponse, ZToolkit, ZComposioField, ZAuthScheme } from '@/app/lib/composio/composio';
|
import { ZGetToolkitResponse } from "@/src/application/lib/composio/types";
|
||||||
|
import { ZComposioField } from "@/src/application/lib/composio/types";
|
||||||
|
import { ZToolkit } from "@/src/application/lib/composio/types";
|
||||||
|
import { ZAuthScheme } from "@/src/application/lib/composio/types";
|
||||||
|
|
||||||
interface ToolkitAuthModalProps {
|
interface ToolkitAuthModalProps {
|
||||||
isOpen: boolean;
|
isOpen: boolean;
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import { useCallback } from 'react';
|
||||||
import { PictureImg } from '@/components/ui/picture-img';
|
import { PictureImg } from '@/components/ui/picture-img';
|
||||||
import clsx from 'clsx';
|
import clsx from 'clsx';
|
||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
import { ZToolkit } from '@/app/lib/composio/composio';
|
import { ZToolkit } from "@/src/application/lib/composio/types";
|
||||||
import { Chip } from '@heroui/react';
|
import { Chip } from '@heroui/react';
|
||||||
import { LinkIcon } from 'lucide-react';
|
import { LinkIcon } from 'lucide-react';
|
||||||
import { Workflow } from '@/app/lib/types/workflow_types';
|
import { Workflow } from '@/app/lib/types/workflow_types';
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import { ComposioToolsPanel } from './ComposioToolsPanel';
|
||||||
import { AddWebhookTool } from './AddWebhookTool';
|
import { AddWebhookTool } from './AddWebhookTool';
|
||||||
import type { Key } from 'react';
|
import type { Key } from 'react';
|
||||||
import { Workflow, WorkflowTool } from '@/app/lib/types/workflow_types';
|
import { Workflow, WorkflowTool } from '@/app/lib/types/workflow_types';
|
||||||
import { ZToolkit } from '@/app/lib/composio/composio';
|
import { ZToolkit } from "@/src/application/lib/composio/types";
|
||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
|
|
||||||
interface ToolsConfigProps {
|
interface ToolsConfigProps {
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import { ChevronLeft, ChevronRight, ZapIcon, ArrowLeft } from 'lucide-react';
|
||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
import { ComposioTriggerType } from '@/src/entities/models/composio-trigger-type';
|
import { ComposioTriggerType } from '@/src/entities/models/composio-trigger-type';
|
||||||
import { listComposioTriggerTypes } from '@/app/actions/composio.actions';
|
import { listComposioTriggerTypes } from '@/app/actions/composio.actions';
|
||||||
import { ZToolkit } from '@/app/lib/composio/composio';
|
import { ZToolkit } from "@/src/application/lib/composio/types";
|
||||||
|
|
||||||
interface ComposioTriggerTypesPanelProps {
|
interface ComposioTriggerTypesPanelProps {
|
||||||
toolkit: z.infer<typeof ZToolkit>;
|
toolkit: z.infer<typeof ZToolkit>;
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import React, { useState, useCallback } from 'react';
|
||||||
import { Button, Input, Card, CardBody, CardHeader } from '@heroui/react';
|
import { Button, Input, Card, CardBody, CardHeader } from '@heroui/react';
|
||||||
import { ArrowLeft, ZapIcon, CheckCircleIcon } from 'lucide-react';
|
import { ArrowLeft, ZapIcon, CheckCircleIcon } from 'lucide-react';
|
||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
import { ZToolkit } from '@/app/lib/composio/composio';
|
import { ZToolkit } from "@/src/application/lib/composio/types";
|
||||||
import { ComposioTriggerType } from '@/src/entities/models/composio-trigger-type';
|
import { ComposioTriggerType } from '@/src/entities/models/composio-trigger-type';
|
||||||
|
|
||||||
interface TriggerConfigFormProps {
|
interface TriggerConfigFormProps {
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ import { SelectComposioToolkit } from '../../tools/components/SelectComposioTool
|
||||||
import { ComposioTriggerTypesPanel } from './ComposioTriggerTypesPanel';
|
import { ComposioTriggerTypesPanel } from './ComposioTriggerTypesPanel';
|
||||||
import { TriggerConfigForm } from './TriggerConfigForm';
|
import { TriggerConfigForm } from './TriggerConfigForm';
|
||||||
import { ToolkitAuthModal } from '../../tools/components/ToolkitAuthModal';
|
import { ToolkitAuthModal } from '../../tools/components/ToolkitAuthModal';
|
||||||
import { ZToolkit } from '@/app/lib/composio/composio';
|
import { ZToolkit } from "@/src/application/lib/composio/types";
|
||||||
import { Project } from "@/src/entities/models/project";
|
import { Project } from "@/src/entities/models/project";
|
||||||
|
|
||||||
interface TriggersModalProps {
|
interface TriggersModalProps {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
import { PrefixLogger } from "../utils";
|
import { PrefixLogger } from "../../../../app/lib/utils";
|
||||||
import { Composio } from "@composio/core";
|
import { Composio } from "@composio/core";
|
||||||
|
import { ZAuthConfig, ZConnectedAccount, ZCreateAuthConfigRequest, ZCreateAuthConfigResponse, ZCreateConnectedAccountRequest, ZCreateConnectedAccountResponse, ZDeleteOperationResponse, ZErrorResponse, ZGetToolkitResponse, ZListResponse, ZTool, ZToolkit, ZTriggerType } from "./types";
|
||||||
|
|
||||||
const BASE_URL = 'https://backend.composio.dev/api/v3';
|
const BASE_URL = 'https://backend.composio.dev/api/v3';
|
||||||
const COMPOSIO_API_KEY = process.env.COMPOSIO_API_KEY || "test";
|
const COMPOSIO_API_KEY = process.env.COMPOSIO_API_KEY || "test";
|
||||||
|
|
@ -8,248 +9,6 @@ export const composio = new Composio({
|
||||||
apiKey: COMPOSIO_API_KEY,
|
apiKey: COMPOSIO_API_KEY,
|
||||||
});
|
});
|
||||||
|
|
||||||
export const ZAuthScheme = z.enum([
|
|
||||||
'API_KEY',
|
|
||||||
'BASIC',
|
|
||||||
'BASIC_WITH_JWT',
|
|
||||||
'BEARER_TOKEN',
|
|
||||||
'BILLCOM_AUTH',
|
|
||||||
'CALCOM_AUTH',
|
|
||||||
'COMPOSIO_LINK',
|
|
||||||
'GOOGLE_SERVICE_ACCOUNT',
|
|
||||||
'NO_AUTH',
|
|
||||||
'OAUTH1',
|
|
||||||
'OAUTH2',
|
|
||||||
]);
|
|
||||||
|
|
||||||
export const ZConnectedAccountStatus = z.enum([
|
|
||||||
'INITIALIZING',
|
|
||||||
'INITIATED',
|
|
||||||
'ACTIVE',
|
|
||||||
'FAILED',
|
|
||||||
'EXPIRED',
|
|
||||||
'INACTIVE',
|
|
||||||
]);
|
|
||||||
|
|
||||||
const ZToolkitMeta = z.object({
|
|
||||||
description: z.string(),
|
|
||||||
logo: z.string(),
|
|
||||||
tools_count: z.number(),
|
|
||||||
triggers_count: z.number(),
|
|
||||||
});
|
|
||||||
|
|
||||||
export const ZToolkit = z.object({
|
|
||||||
slug: z.string(),
|
|
||||||
name: z.string(),
|
|
||||||
meta: ZToolkitMeta,
|
|
||||||
no_auth: z.boolean(),
|
|
||||||
auth_schemes: z.array(ZAuthScheme),
|
|
||||||
composio_managed_auth_schemes: z.array(ZAuthScheme),
|
|
||||||
});
|
|
||||||
|
|
||||||
export const ZComposioField = z.object({
|
|
||||||
name: z.string(),
|
|
||||||
displayName: z.string(),
|
|
||||||
type: z.string(),
|
|
||||||
description: z.string(),
|
|
||||||
required: z.boolean(),
|
|
||||||
default: z.string().nullable().optional(),
|
|
||||||
});
|
|
||||||
|
|
||||||
export const ZGetToolkitResponse = z.object({
|
|
||||||
slug: z.string(),
|
|
||||||
name: z.string(),
|
|
||||||
composio_managed_auth_schemes: z.array(ZAuthScheme),
|
|
||||||
meta: ZToolkitMeta,
|
|
||||||
auth_config_details: z.array(z.object({
|
|
||||||
name: z.string(),
|
|
||||||
mode: ZAuthScheme,
|
|
||||||
fields: z.object({
|
|
||||||
auth_config_creation: z.object({
|
|
||||||
required: z.array(ZComposioField),
|
|
||||||
optional: z.array(ZComposioField),
|
|
||||||
}),
|
|
||||||
connected_account_initiation: z.object({
|
|
||||||
required: z.array(ZComposioField),
|
|
||||||
optional: z.array(ZComposioField),
|
|
||||||
}),
|
|
||||||
})
|
|
||||||
})).nullable(),
|
|
||||||
});
|
|
||||||
|
|
||||||
export const ZTool = z.object({
|
|
||||||
slug: z.string(),
|
|
||||||
name: z.string(),
|
|
||||||
description: z.string(),
|
|
||||||
toolkit: z.object({
|
|
||||||
slug: z.string(),
|
|
||||||
name: z.string(),
|
|
||||||
logo: z.string(),
|
|
||||||
}),
|
|
||||||
input_parameters: z.object({
|
|
||||||
type: z.literal('object'),
|
|
||||||
properties: z.record(z.string(), z.any()),
|
|
||||||
required: z.array(z.string()).optional(),
|
|
||||||
additionalProperties: z.boolean().optional(),
|
|
||||||
}),
|
|
||||||
no_auth: z.boolean(),
|
|
||||||
});
|
|
||||||
|
|
||||||
export const ZAuthConfig = z.object({
|
|
||||||
id: z.string(),
|
|
||||||
is_composio_managed: z.boolean(),
|
|
||||||
auth_scheme: ZAuthScheme,
|
|
||||||
});
|
|
||||||
|
|
||||||
export const ZCredentials = z.record(z.string(), z.union([z.string(), z.number(), z.boolean()]));
|
|
||||||
|
|
||||||
export const ZCreateAuthConfigRequest = z.object({
|
|
||||||
toolkit: z.object({
|
|
||||||
slug: z.string(),
|
|
||||||
}),
|
|
||||||
auth_config: z.discriminatedUnion('type', [
|
|
||||||
z.object({
|
|
||||||
type: z.literal('use_composio_managed_auth'),
|
|
||||||
name: z.string().optional(),
|
|
||||||
credentials: ZCredentials.optional(),
|
|
||||||
restrict_to_following_tools: z.array(z.string()).optional(),
|
|
||||||
}),
|
|
||||||
z.object({
|
|
||||||
type: z.literal('use_custom_auth'),
|
|
||||||
authScheme: ZAuthScheme,
|
|
||||||
credentials: ZCredentials,
|
|
||||||
name: z.string().optional(),
|
|
||||||
proxy_config: z.object({
|
|
||||||
proxy_url: z.string(),
|
|
||||||
proxy_auth_key: z.string().optional(),
|
|
||||||
}).optional(),
|
|
||||||
restrict_to_following_tools: z.array(z.string()).optional(),
|
|
||||||
}),
|
|
||||||
]).optional(),
|
|
||||||
});
|
|
||||||
|
|
||||||
/*
|
|
||||||
{
|
|
||||||
"toolkit": {
|
|
||||||
"slug": "github"
|
|
||||||
},
|
|
||||||
"auth_config": {
|
|
||||||
"id": "ac_ZiLwFAWuGA7G",
|
|
||||||
"auth_scheme": "OAUTH2",
|
|
||||||
"is_composio_managed": false,
|
|
||||||
"restrict_to_following_tools": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
export const ZCreateAuthConfigResponse = z.object({
|
|
||||||
toolkit: z.object({
|
|
||||||
slug: z.string(),
|
|
||||||
}),
|
|
||||||
auth_config: ZAuthConfig,
|
|
||||||
});
|
|
||||||
|
|
||||||
const ZConnectionData = z.object({
|
|
||||||
authScheme: ZAuthScheme,
|
|
||||||
val: z.record(z.string(), z.unknown())
|
|
||||||
.and(z.object({
|
|
||||||
status: ZConnectedAccountStatus,
|
|
||||||
})),
|
|
||||||
});
|
|
||||||
|
|
||||||
export const ZCreateConnectedAccountRequest = z.object({
|
|
||||||
auth_config: z.object({
|
|
||||||
id: z.string(),
|
|
||||||
}),
|
|
||||||
connection: z.object({
|
|
||||||
state: ZConnectionData.optional(),
|
|
||||||
user_id: z.string().optional(),
|
|
||||||
callback_url: z.string().optional(),
|
|
||||||
}),
|
|
||||||
});
|
|
||||||
|
|
||||||
/*
|
|
||||||
{
|
|
||||||
"id": "ca_vTkCeLZSGab-",
|
|
||||||
"connectionData": {
|
|
||||||
"authScheme": "OAUTH2",
|
|
||||||
"val": {
|
|
||||||
"status": "INITIATED",
|
|
||||||
"code_verifier": "cd0103c5d8836a387adab1635b65ff0d2f51f77a1a79b7ff",
|
|
||||||
"redirectUrl": "https://backend.composio.dev/api/v3/s/DbTOWAyR",
|
|
||||||
"callback_url": "https://backend.composio.dev/api/v1/auth-apps/add"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"status": "INITIATED",
|
|
||||||
"redirect_url": "https://backend.composio.dev/api/v3/s/DbTOWAyR",
|
|
||||||
"redirect_uri": "https://backend.composio.dev/api/v3/s/DbTOWAyR",
|
|
||||||
"deprecated": {
|
|
||||||
"uuid": "fe66d24b-59d8-4abf-adb2-d8f74353da9e",
|
|
||||||
"authConfigUuid": "8c4d4c84-56e2-4a80-aa59-9e84503381d8"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
export const ZCreateConnectedAccountResponse = z.object({
|
|
||||||
id: z.string(),
|
|
||||||
connectionData: ZConnectionData,
|
|
||||||
});
|
|
||||||
|
|
||||||
export const ZConnectedAccount = z.object({
|
|
||||||
id: z.string(),
|
|
||||||
toolkit: z.object({
|
|
||||||
slug: z.string(),
|
|
||||||
}),
|
|
||||||
auth_config: z.object({
|
|
||||||
id: z.string(),
|
|
||||||
is_composio_managed: z.boolean(),
|
|
||||||
is_disabled: z.boolean(),
|
|
||||||
}),
|
|
||||||
status: ZConnectedAccountStatus,
|
|
||||||
});
|
|
||||||
|
|
||||||
const ZErrorResponse = z.object({
|
|
||||||
error: z.object({
|
|
||||||
message: z.string(),
|
|
||||||
error_code: z.number(),
|
|
||||||
suggested_fix: z.string().nullable(),
|
|
||||||
errors: z.array(z.string()).nullable(),
|
|
||||||
}),
|
|
||||||
});
|
|
||||||
|
|
||||||
export const ZError = z.object({
|
|
||||||
error: z.enum([
|
|
||||||
'CUSTOM_OAUTH2_CONFIG_REQUIRED',
|
|
||||||
]),
|
|
||||||
});
|
|
||||||
|
|
||||||
export const ZDeleteOperationResponse = z.object({
|
|
||||||
success: z.boolean(),
|
|
||||||
});
|
|
||||||
|
|
||||||
export const ZTriggerType = z.object({
|
|
||||||
slug: z.string(),
|
|
||||||
name: z.string(),
|
|
||||||
description: z.string(),
|
|
||||||
toolkit: z.object({
|
|
||||||
slug: z.string(),
|
|
||||||
name: z.string(),
|
|
||||||
logo: z.string(),
|
|
||||||
}),
|
|
||||||
config: z.object({
|
|
||||||
type: z.literal('object'),
|
|
||||||
properties: z.record(z.string(), z.any()),
|
|
||||||
required: z.array(z.string()).optional(),
|
|
||||||
title: z.string().optional(),
|
|
||||||
}),
|
|
||||||
});
|
|
||||||
|
|
||||||
export const ZListResponse = <T extends z.ZodTypeAny>(schema: T) => z.object({
|
|
||||||
items: z.array(schema),
|
|
||||||
next_cursor: z.string().nullable(),
|
|
||||||
total_pages: z.number(),
|
|
||||||
current_page: z.number(),
|
|
||||||
total_items: z.number(),
|
|
||||||
});
|
|
||||||
|
|
||||||
export async function composioApiCall<T extends z.ZodTypeAny>(
|
export async function composioApiCall<T extends z.ZodTypeAny>(
|
||||||
schema: T,
|
schema: T,
|
||||||
url: string,
|
url: string,
|
||||||
243
apps/rowboat/src/application/lib/composio/types.ts
Normal file
243
apps/rowboat/src/application/lib/composio/types.ts
Normal file
|
|
@ -0,0 +1,243 @@
|
||||||
|
import { z } from "zod";
|
||||||
|
|
||||||
|
export const ZAuthScheme = z.enum([
|
||||||
|
'API_KEY',
|
||||||
|
'BASIC',
|
||||||
|
'BASIC_WITH_JWT',
|
||||||
|
'BEARER_TOKEN',
|
||||||
|
'BILLCOM_AUTH',
|
||||||
|
'CALCOM_AUTH',
|
||||||
|
'COMPOSIO_LINK',
|
||||||
|
'GOOGLE_SERVICE_ACCOUNT',
|
||||||
|
'NO_AUTH',
|
||||||
|
'OAUTH1',
|
||||||
|
'OAUTH2',
|
||||||
|
]);
|
||||||
|
|
||||||
|
export const ZConnectedAccountStatus = z.enum([
|
||||||
|
'INITIALIZING',
|
||||||
|
'INITIATED',
|
||||||
|
'ACTIVE',
|
||||||
|
'FAILED',
|
||||||
|
'EXPIRED',
|
||||||
|
'INACTIVE',
|
||||||
|
]);
|
||||||
|
|
||||||
|
export const ZToolkitMeta = z.object({
|
||||||
|
description: z.string(),
|
||||||
|
logo: z.string(),
|
||||||
|
tools_count: z.number(),
|
||||||
|
triggers_count: z.number(),
|
||||||
|
});
|
||||||
|
|
||||||
|
export const ZToolkit = z.object({
|
||||||
|
slug: z.string(),
|
||||||
|
name: z.string(),
|
||||||
|
meta: ZToolkitMeta,
|
||||||
|
no_auth: z.boolean(),
|
||||||
|
auth_schemes: z.array(ZAuthScheme),
|
||||||
|
composio_managed_auth_schemes: z.array(ZAuthScheme),
|
||||||
|
});
|
||||||
|
|
||||||
|
export const ZComposioField = z.object({
|
||||||
|
name: z.string(),
|
||||||
|
displayName: z.string(),
|
||||||
|
type: z.string(),
|
||||||
|
description: z.string(),
|
||||||
|
required: z.boolean(),
|
||||||
|
default: z.string().nullable().optional(),
|
||||||
|
});
|
||||||
|
|
||||||
|
export const ZGetToolkitResponse = z.object({
|
||||||
|
slug: z.string(),
|
||||||
|
name: z.string(),
|
||||||
|
composio_managed_auth_schemes: z.array(ZAuthScheme),
|
||||||
|
meta: ZToolkitMeta,
|
||||||
|
auth_config_details: z.array(z.object({
|
||||||
|
name: z.string(),
|
||||||
|
mode: ZAuthScheme,
|
||||||
|
fields: z.object({
|
||||||
|
auth_config_creation: z.object({
|
||||||
|
required: z.array(ZComposioField),
|
||||||
|
optional: z.array(ZComposioField),
|
||||||
|
}),
|
||||||
|
connected_account_initiation: z.object({
|
||||||
|
required: z.array(ZComposioField),
|
||||||
|
optional: z.array(ZComposioField),
|
||||||
|
}),
|
||||||
|
})
|
||||||
|
})).nullable(),
|
||||||
|
});
|
||||||
|
|
||||||
|
export const ZTool = z.object({
|
||||||
|
slug: z.string(),
|
||||||
|
name: z.string(),
|
||||||
|
description: z.string(),
|
||||||
|
toolkit: z.object({
|
||||||
|
slug: z.string(),
|
||||||
|
name: z.string(),
|
||||||
|
logo: z.string(),
|
||||||
|
}),
|
||||||
|
input_parameters: z.object({
|
||||||
|
type: z.literal('object'),
|
||||||
|
properties: z.record(z.string(), z.any()),
|
||||||
|
required: z.array(z.string()).optional(),
|
||||||
|
additionalProperties: z.boolean().optional(),
|
||||||
|
}),
|
||||||
|
no_auth: z.boolean(),
|
||||||
|
});
|
||||||
|
|
||||||
|
export const ZAuthConfig = z.object({
|
||||||
|
id: z.string(),
|
||||||
|
is_composio_managed: z.boolean(),
|
||||||
|
auth_scheme: ZAuthScheme,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const ZCredentials = z.record(z.string(), z.union([z.string(), z.number(), z.boolean()]));
|
||||||
|
|
||||||
|
export const ZCreateAuthConfigRequest = z.object({
|
||||||
|
toolkit: z.object({
|
||||||
|
slug: z.string(),
|
||||||
|
}),
|
||||||
|
auth_config: z.discriminatedUnion('type', [
|
||||||
|
z.object({
|
||||||
|
type: z.literal('use_composio_managed_auth'),
|
||||||
|
name: z.string().optional(),
|
||||||
|
credentials: ZCredentials.optional(),
|
||||||
|
restrict_to_following_tools: z.array(z.string()).optional(),
|
||||||
|
}),
|
||||||
|
z.object({
|
||||||
|
type: z.literal('use_custom_auth'),
|
||||||
|
authScheme: ZAuthScheme,
|
||||||
|
credentials: ZCredentials,
|
||||||
|
name: z.string().optional(),
|
||||||
|
proxy_config: z.object({
|
||||||
|
proxy_url: z.string(),
|
||||||
|
proxy_auth_key: z.string().optional(),
|
||||||
|
}).optional(),
|
||||||
|
restrict_to_following_tools: z.array(z.string()).optional(),
|
||||||
|
}),
|
||||||
|
]).optional(),
|
||||||
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
|
{
|
||||||
|
"toolkit": {
|
||||||
|
"slug": "github"
|
||||||
|
},
|
||||||
|
"auth_config": {
|
||||||
|
"id": "ac_ZiLwFAWuGA7G",
|
||||||
|
"auth_scheme": "OAUTH2",
|
||||||
|
"is_composio_managed": false,
|
||||||
|
"restrict_to_following_tools": []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
export const ZCreateAuthConfigResponse = z.object({
|
||||||
|
toolkit: z.object({
|
||||||
|
slug: z.string(),
|
||||||
|
}),
|
||||||
|
auth_config: ZAuthConfig,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const ZConnectionData = z.object({
|
||||||
|
authScheme: ZAuthScheme,
|
||||||
|
val: z.record(z.string(), z.unknown())
|
||||||
|
.and(z.object({
|
||||||
|
status: ZConnectedAccountStatus,
|
||||||
|
})),
|
||||||
|
});
|
||||||
|
|
||||||
|
export const ZCreateConnectedAccountRequest = z.object({
|
||||||
|
auth_config: z.object({
|
||||||
|
id: z.string(),
|
||||||
|
}),
|
||||||
|
connection: z.object({
|
||||||
|
state: ZConnectionData.optional(),
|
||||||
|
user_id: z.string().optional(),
|
||||||
|
callback_url: z.string().optional(),
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
|
||||||
|
/*
|
||||||
|
{
|
||||||
|
"id": "ca_vTkCeLZSGab-",
|
||||||
|
"connectionData": {
|
||||||
|
"authScheme": "OAUTH2",
|
||||||
|
"val": {
|
||||||
|
"status": "INITIATED",
|
||||||
|
"code_verifier": "cd0103c5d8836a387adab1635b65ff0d2f51f77a1a79b7ff",
|
||||||
|
"redirectUrl": "https://backend.composio.dev/api/v3/s/DbTOWAyR",
|
||||||
|
"callback_url": "https://backend.composio.dev/api/v1/auth-apps/add"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"status": "INITIATED",
|
||||||
|
"redirect_url": "https://backend.composio.dev/api/v3/s/DbTOWAyR",
|
||||||
|
"redirect_uri": "https://backend.composio.dev/api/v3/s/DbTOWAyR",
|
||||||
|
"deprecated": {
|
||||||
|
"uuid": "fe66d24b-59d8-4abf-adb2-d8f74353da9e",
|
||||||
|
"authConfigUuid": "8c4d4c84-56e2-4a80-aa59-9e84503381d8"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
export const ZCreateConnectedAccountResponse = z.object({
|
||||||
|
id: z.string(),
|
||||||
|
connectionData: ZConnectionData,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const ZConnectedAccount = z.object({
|
||||||
|
id: z.string(),
|
||||||
|
toolkit: z.object({
|
||||||
|
slug: z.string(),
|
||||||
|
}),
|
||||||
|
auth_config: z.object({
|
||||||
|
id: z.string(),
|
||||||
|
is_composio_managed: z.boolean(),
|
||||||
|
is_disabled: z.boolean(),
|
||||||
|
}),
|
||||||
|
status: ZConnectedAccountStatus,
|
||||||
|
});
|
||||||
|
|
||||||
|
export const ZErrorResponse = z.object({
|
||||||
|
error: z.object({
|
||||||
|
message: z.string(),
|
||||||
|
error_code: z.number(),
|
||||||
|
suggested_fix: z.string().nullable(),
|
||||||
|
errors: z.array(z.string()).nullable(),
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
|
||||||
|
export const ZError = z.object({
|
||||||
|
error: z.enum([
|
||||||
|
'CUSTOM_OAUTH2_CONFIG_REQUIRED',
|
||||||
|
]),
|
||||||
|
});
|
||||||
|
|
||||||
|
export const ZDeleteOperationResponse = z.object({
|
||||||
|
success: z.boolean(),
|
||||||
|
});
|
||||||
|
|
||||||
|
export const ZTriggerType = z.object({
|
||||||
|
slug: z.string(),
|
||||||
|
name: z.string(),
|
||||||
|
description: z.string(),
|
||||||
|
toolkit: z.object({
|
||||||
|
slug: z.string(),
|
||||||
|
name: z.string(),
|
||||||
|
logo: z.string(),
|
||||||
|
}),
|
||||||
|
config: z.object({
|
||||||
|
type: z.literal('object'),
|
||||||
|
properties: z.record(z.string(), z.any()),
|
||||||
|
required: z.array(z.string()).optional(),
|
||||||
|
title: z.string().optional(),
|
||||||
|
}),
|
||||||
|
});
|
||||||
|
|
||||||
|
export const ZListResponse = <T extends z.ZodTypeAny>(schema: T) => z.object({
|
||||||
|
items: z.array(schema),
|
||||||
|
next_cursor: z.string().nullable(),
|
||||||
|
total_pages: z.number(),
|
||||||
|
current_page: z.number(),
|
||||||
|
total_items: z.number(),
|
||||||
|
});
|
||||||
|
|
@ -4,7 +4,7 @@ import { IUsageQuotaPolicy } from '../../policies/usage-quota.policy.interface';
|
||||||
import { IProjectActionAuthorizationPolicy } from '../../policies/project-action-authorization.policy';
|
import { IProjectActionAuthorizationPolicy } from '../../policies/project-action-authorization.policy';
|
||||||
import { CreateDeploymentSchema, IComposioTriggerDeploymentsRepository } from '../../repositories/composio-trigger-deployments.repository.interface';
|
import { CreateDeploymentSchema, IComposioTriggerDeploymentsRepository } from '../../repositories/composio-trigger-deployments.repository.interface';
|
||||||
import { IProjectsRepository } from '../../repositories/projects.repository.interface';
|
import { IProjectsRepository } from '../../repositories/projects.repository.interface';
|
||||||
import { composio, getToolkit } from '../../../../app/lib/composio/composio';
|
import { composio, getToolkit } from '../../lib/composio/composio';
|
||||||
import { ComposioTriggerDeployment } from '@/src/entities/models/composio-trigger-deployment';
|
import { ComposioTriggerDeployment } from '@/src/entities/models/composio-trigger-deployment';
|
||||||
|
|
||||||
const inputSchema = z.object({
|
const inputSchema = z.object({
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import { IUsageQuotaPolicy } from '../../policies/usage-quota.policy.interface';
|
||||||
import { IProjectActionAuthorizationPolicy } from '../../policies/project-action-authorization.policy';
|
import { IProjectActionAuthorizationPolicy } from '../../policies/project-action-authorization.policy';
|
||||||
import { IComposioTriggerDeploymentsRepository } from '../../repositories/composio-trigger-deployments.repository.interface';
|
import { IComposioTriggerDeploymentsRepository } from '../../repositories/composio-trigger-deployments.repository.interface';
|
||||||
import { IProjectsRepository } from '../../repositories/projects.repository.interface';
|
import { IProjectsRepository } from '../../repositories/projects.repository.interface';
|
||||||
import { composio } from '../../../../app/lib/composio/composio';
|
import { composio } from '../../lib/composio/composio';
|
||||||
|
|
||||||
const inputSchema = z.object({
|
const inputSchema = z.object({
|
||||||
caller: z.enum(["user", "api"]),
|
caller: z.enum(["user", "api"]),
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
import { listTriggersTypes } from '../../../../app/lib/composio/composio';
|
import { listTriggersTypes } from '../../lib/composio/composio';
|
||||||
import { PaginatedList } from '@/src/entities/common/paginated-list';
|
import { PaginatedList } from '@/src/entities/common/paginated-list';
|
||||||
import { ComposioTriggerType } from '@/src/entities/models/composio-trigger-type';
|
import { ComposioTriggerType } from '@/src/entities/models/composio-trigger-type';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,10 @@ import { IProjectsRepository } from "../../repositories/projects.repository.inte
|
||||||
import { IProjectActionAuthorizationPolicy } from "../../policies/project-action-authorization.policy";
|
import { IProjectActionAuthorizationPolicy } from "../../policies/project-action-authorization.policy";
|
||||||
import { IUsageQuotaPolicy } from "../../policies/usage-quota.policy.interface";
|
import { IUsageQuotaPolicy } from "../../policies/usage-quota.policy.interface";
|
||||||
import { ComposioConnectedAccount } from "@/src/entities/models/project";
|
import { ComposioConnectedAccount } from "@/src/entities/models/project";
|
||||||
import { ZAuthScheme, ZCreateAuthConfigResponse, ZCreateConnectedAccountResponse, listAuthConfigs, createAuthConfig, createConnectedAccount } from "@/app/lib/composio/composio";
|
import { listAuthConfigs, createAuthConfig, createConnectedAccount } from "@/src/application/lib/composio/composio";
|
||||||
|
import { ZCreateConnectedAccountResponse } from "../../lib/composio/types";
|
||||||
|
import { ZCreateAuthConfigResponse } from "../../lib/composio/types";
|
||||||
|
import { ZAuthScheme } from "../../lib/composio/types";
|
||||||
|
|
||||||
export const InputSchema = z.object({
|
export const InputSchema = z.object({
|
||||||
caller: z.enum(["user", "api"]),
|
caller: z.enum(["user", "api"]),
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,12 @@ import { IProjectsRepository } from "../../repositories/projects.repository.inte
|
||||||
import { IProjectActionAuthorizationPolicy } from "../../policies/project-action-authorization.policy";
|
import { IProjectActionAuthorizationPolicy } from "../../policies/project-action-authorization.policy";
|
||||||
import { IUsageQuotaPolicy } from "../../policies/usage-quota.policy.interface";
|
import { IUsageQuotaPolicy } from "../../policies/usage-quota.policy.interface";
|
||||||
import { ComposioConnectedAccount } from "@/src/entities/models/project";
|
import { ComposioConnectedAccount } from "@/src/entities/models/project";
|
||||||
import { ZAuthScheme, ZCredentials, ZCreateAuthConfigResponse, ZCreateConnectedAccountResponse, ZCreateConnectedAccountRequest, createAuthConfig, createConnectedAccount } from "@/app/lib/composio/composio";
|
import { createAuthConfig, createConnectedAccount } from "@/src/application/lib/composio/composio";
|
||||||
|
import { ZCreateConnectedAccountResponse } from "../../lib/composio/types";
|
||||||
|
import { ZCreateConnectedAccountRequest } from "../../lib/composio/types";
|
||||||
|
import { ZCreateAuthConfigResponse } from "../../lib/composio/types";
|
||||||
|
import { ZCredentials } from "../../lib/composio/types";
|
||||||
|
import { ZAuthScheme } from "../../lib/composio/types";
|
||||||
|
|
||||||
export const InputSchema = z.object({
|
export const InputSchema = z.object({
|
||||||
caller: z.enum(["user", "api"]),
|
caller: z.enum(["user", "api"]),
|
||||||
|
|
|
||||||
|
|
@ -4,9 +4,9 @@ import { IProjectActionAuthorizationPolicy } from "../../policies/project-action
|
||||||
import { IUsageQuotaPolicy } from "../../policies/usage-quota.policy.interface";
|
import { IUsageQuotaPolicy } from "../../policies/usage-quota.policy.interface";
|
||||||
import { IComposioTriggerDeploymentsRepository } from "../../repositories/composio-trigger-deployments.repository.interface";
|
import { IComposioTriggerDeploymentsRepository } from "../../repositories/composio-trigger-deployments.repository.interface";
|
||||||
import { BadRequestError, NotFoundError } from "@/src/entities/errors/common";
|
import { BadRequestError, NotFoundError } from "@/src/entities/errors/common";
|
||||||
import { deleteConnectedAccount } from "../../../../app/lib/composio/composio";
|
import { deleteConnectedAccount } from "../../lib/composio/composio";
|
||||||
import { getAuthConfig } from "../../../../app/lib/composio/composio";
|
import { getAuthConfig } from "../../lib/composio/composio";
|
||||||
import { deleteAuthConfig } from "../../../../app/lib/composio/composio";
|
import { deleteAuthConfig } from "../../lib/composio/composio";
|
||||||
|
|
||||||
const inputSchema = z.object({
|
const inputSchema = z.object({
|
||||||
caller: z.enum(["user", "api"]),
|
caller: z.enum(["user", "api"]),
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
import { IProjectActionAuthorizationPolicy } from "../../policies/project-action-authorization.policy";
|
import { IProjectActionAuthorizationPolicy } from "../../policies/project-action-authorization.policy";
|
||||||
import { IUsageQuotaPolicy } from "../../policies/usage-quota.policy.interface";
|
import { IUsageQuotaPolicy } from "../../policies/usage-quota.policy.interface";
|
||||||
import { ZGetToolkitResponse, getToolkit } from "@/app/lib/composio/composio";
|
import { getToolkit } from "@/src/application/lib/composio/composio";
|
||||||
|
import { ZGetToolkitResponse } from "../../lib/composio/types";
|
||||||
|
|
||||||
export const InputSchema = z.object({
|
export const InputSchema = z.object({
|
||||||
caller: z.enum(["user", "api"]),
|
caller: z.enum(["user", "api"]),
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
import { IProjectActionAuthorizationPolicy } from "../../policies/project-action-authorization.policy";
|
import { IProjectActionAuthorizationPolicy } from "../../policies/project-action-authorization.policy";
|
||||||
import { IUsageQuotaPolicy } from "../../policies/usage-quota.policy.interface";
|
import { IUsageQuotaPolicy } from "../../policies/usage-quota.policy.interface";
|
||||||
import { ZToolkit, ZListResponse, listToolkits } from "@/app/lib/composio/composio";
|
import { listToolkits } from "@/src/application/lib/composio/composio";
|
||||||
|
import { ZListResponse } from "../../lib/composio/types";
|
||||||
|
import { ZToolkit } from "../../lib/composio/types";
|
||||||
|
|
||||||
export const InputSchema = z.object({
|
export const InputSchema = z.object({
|
||||||
caller: z.enum(["user", "api"]),
|
caller: z.enum(["user", "api"]),
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
import { z } from "zod";
|
import { z } from "zod";
|
||||||
import { IProjectActionAuthorizationPolicy } from "../../policies/project-action-authorization.policy";
|
import { IProjectActionAuthorizationPolicy } from "../../policies/project-action-authorization.policy";
|
||||||
import { IUsageQuotaPolicy } from "../../policies/usage-quota.policy.interface";
|
import { IUsageQuotaPolicy } from "../../policies/usage-quota.policy.interface";
|
||||||
import { ZTool, ZListResponse, listTools } from "@/app/lib/composio/composio";
|
import { listTools } from "@/src/application/lib/composio/composio";
|
||||||
|
import { ZListResponse } from "../../lib/composio/types";
|
||||||
|
import { ZTool } from "../../lib/composio/types";
|
||||||
|
|
||||||
export const InputSchema = z.object({
|
export const InputSchema = z.object({
|
||||||
caller: z.enum(["user", "api"]),
|
caller: z.enum(["user", "api"]),
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@ import { IProjectsRepository } from "../../repositories/projects.repository.inte
|
||||||
import { IProjectActionAuthorizationPolicy } from "../../policies/project-action-authorization.policy";
|
import { IProjectActionAuthorizationPolicy } from "../../policies/project-action-authorization.policy";
|
||||||
import { IUsageQuotaPolicy } from "../../policies/usage-quota.policy.interface";
|
import { IUsageQuotaPolicy } from "../../policies/usage-quota.policy.interface";
|
||||||
import { ComposioConnectedAccount } from "@/src/entities/models/project";
|
import { ComposioConnectedAccount } from "@/src/entities/models/project";
|
||||||
import { ZConnectedAccount, getConnectedAccount } from "@/app/lib/composio/composio";
|
import { getConnectedAccount } from "@/src/application/lib/composio/composio";
|
||||||
|
import { ZConnectedAccount } from "../../lib/composio/types";
|
||||||
|
|
||||||
export const InputSchema = z.object({
|
export const InputSchema = z.object({
|
||||||
caller: z.enum(["user", "api"]),
|
caller: z.enum(["user", "api"]),
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { BadRequestError } from "@/src/entities/errors/common";
|
import { BadRequestError } from "@/src/entities/errors/common";
|
||||||
import z from "zod";
|
import z from "zod";
|
||||||
import { ICreateComposioManagedConnectedAccountUseCase } from "@/src/application/use-cases/projects/create-composio-managed-connected-account.use-case";
|
import { ICreateComposioManagedConnectedAccountUseCase } from "@/src/application/use-cases/projects/create-composio-managed-connected-account.use-case";
|
||||||
import { ZCreateConnectedAccountResponse } from "@/app/lib/composio/composio";
|
import { ZCreateConnectedAccountResponse } from "@/src/application/lib/composio/types";
|
||||||
|
|
||||||
const inputSchema = z.object({
|
const inputSchema = z.object({
|
||||||
caller: z.enum(["user", "api"]),
|
caller: z.enum(["user", "api"]),
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
import { BadRequestError } from "@/src/entities/errors/common";
|
import { BadRequestError } from "@/src/entities/errors/common";
|
||||||
import z from "zod";
|
import z from "zod";
|
||||||
import { ICreateCustomConnectedAccountUseCase } from "@/src/application/use-cases/projects/create-custom-connected-account.use-case";
|
import { ICreateCustomConnectedAccountUseCase } from "@/src/application/use-cases/projects/create-custom-connected-account.use-case";
|
||||||
import { ZAuthScheme, ZCredentials, ZCreateConnectedAccountResponse } from "@/app/lib/composio/composio";
|
import { ZCreateConnectedAccountResponse } from "@/src/application/lib/composio/types";
|
||||||
|
import { ZCredentials } from "@/src/application/lib/composio/types";
|
||||||
|
import { ZAuthScheme } from "@/src/application/lib/composio/types";
|
||||||
|
|
||||||
const inputSchema = z.object({
|
const inputSchema = z.object({
|
||||||
caller: z.enum(["user", "api"]),
|
caller: z.enum(["user", "api"]),
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import { BadRequestError } from "@/src/entities/errors/common";
|
import { BadRequestError } from "@/src/entities/errors/common";
|
||||||
import z from "zod";
|
import z from "zod";
|
||||||
import { IGetComposioToolkitUseCase } from "@/src/application/use-cases/projects/get-composio-toolkit.use-case";
|
import { IGetComposioToolkitUseCase } from "@/src/application/use-cases/projects/get-composio-toolkit.use-case";
|
||||||
import { ZGetToolkitResponse } from "@/app/lib/composio/composio";
|
import { ZGetToolkitResponse } from "@/src/application/lib/composio/types";
|
||||||
|
|
||||||
const inputSchema = z.object({
|
const inputSchema = z.object({
|
||||||
caller: z.enum(["user", "api"]),
|
caller: z.enum(["user", "api"]),
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import { BadRequestError } from "@/src/entities/errors/common";
|
import { BadRequestError } from "@/src/entities/errors/common";
|
||||||
import z from "zod";
|
import z from "zod";
|
||||||
import { IListComposioToolkitsUseCase } from "@/src/application/use-cases/projects/list-composio-toolkits.use-case";
|
import { IListComposioToolkitsUseCase } from "@/src/application/use-cases/projects/list-composio-toolkits.use-case";
|
||||||
import { ZToolkit, ZListResponse } from "@/app/lib/composio/composio";
|
import { ZListResponse } from "@/src/application/lib/composio/types";
|
||||||
|
import { ZToolkit } from "@/src/application/lib/composio/types";
|
||||||
|
|
||||||
const inputSchema = z.object({
|
const inputSchema = z.object({
|
||||||
caller: z.enum(["user", "api"]),
|
caller: z.enum(["user", "api"]),
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,8 @@
|
||||||
import { BadRequestError } from "@/src/entities/errors/common";
|
import { BadRequestError } from "@/src/entities/errors/common";
|
||||||
import z from "zod";
|
import z from "zod";
|
||||||
import { IListComposioToolsUseCase } from "@/src/application/use-cases/projects/list-composio-tools.use-case";
|
import { IListComposioToolsUseCase } from "@/src/application/use-cases/projects/list-composio-tools.use-case";
|
||||||
import { ZTool, ZListResponse } from "@/app/lib/composio/composio";
|
import { ZListResponse } from "@/src/application/lib/composio/types";
|
||||||
|
import { ZTool } from "@/src/application/lib/composio/types";
|
||||||
|
|
||||||
const inputSchema = z.object({
|
const inputSchema = z.object({
|
||||||
caller: z.enum(["user", "api"]),
|
caller: z.enum(["user", "api"]),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue