Modify tool behavior

Before Execution Modifiers

View as markdown

Before execution modifiers are part of Composio SDK's powerful middleware capabilities that allow you to customize and extend the behavior of tools.

These modifiers are called before the tool is executed by the LLM. This allows you to modify the arguments called by the LLM before they are executed by Composio.

Useful for:

  • Injecting an argument into the tool execution
  • Overriding the arguments emitted by the LLM
Before Execution Modifier

Below we use the beforeExecute modifier to modify the number of posts returned by HACKERNEWS_GET_LATEST_POSTS.

With Chat Completions

Since completion providers don't have a function execution step, Composio executes the tool call directly. The modifier is configured on the tools.execute method.

from openai import OpenAI
from composio import Composio, before_execute
from composio.types import ToolExecuteParams

composio = Composio()
openai_client = OpenAI()
user_id = "user@email.com"

@before_execute(tools=["HACKERNEWS_GET_LATEST_POSTS"])
def before_execute_modifier(
    tool: str,
    toolkit: str,
    params: ToolExecuteParams,
) -> ToolExecuteParams:
    params["arguments"]["size"] = 1
    return params

# Get tools
tools = composio.tools.get(user_id=user_id, slug="HACKERNEWS_GET_LATEST_POSTS")

# Get response from the LLM
response = openai_client.chat.completions.create(
    model="gpt-4o-mini",
    tools=tools,
    messages=[{"role": "user", "content": "Fetch latest posts from hackernews"}],
)
print(response)

# Execute the function calls
result = composio.provider.handle_tool_calls(
    response=response,
    user_id="default",
    modifiers=[
        before_execute_modifier,
    ],
)
print(result)
const const response: anyresponse = await openai.chat.completions.create({
  model: stringmodel: "gpt-4o-mini",
  messages: anymessages,
  tools: anytools,
  tool_choice: stringtool_choice: "auto",
});

const { const tool_calls: anytool_calls } = const response: anyresponse.choices[0].message;
var console: Console
The `console` module provides a simple debugging console that is similar to the JavaScript console mechanism provided by web browsers. The module exports two specific components: * A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream. * A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v24.x/api/process.html#processstdout) and [`process.stderr`](https://nodejs.org/docs/latest-v24.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module. _**Warning**_: The global console object's methods are neither consistently synchronous like the browser APIs they resemble, nor are they consistently asynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v24.x/api/process.html#a-note-on-process-io) for more information. Example using the global `console`: ```js console.log('hello world'); // Prints: hello world, to stdout console.log('hello %s', 'world'); // Prints: hello world, to stdout console.error(new Error('Whoops, something bad happened')); // Prints error message and stack trace to stderr: // Error: Whoops, something bad happened // at [eval]:5:15 // at Script.runInThisContext (node:vm:132:18) // at Object.runInThisContext (node:vm:309:38) // at node:internal/process/execution:77:19 // at [eval]-wrapper:6:22 // at evalScript (node:internal/process/execution:76:60) // at node:internal/main/eval_string:23:3 const name = 'Will Robinson'; console.warn(`Danger ${name}! Danger!`); // Prints: Danger Will Robinson! Danger!, to stderr ``` Example using the `Console` class: ```js const out = getStreamSomehow(); const err = getStreamSomehow(); const myConsole = new console.Console(out, err); myConsole.log('hello world'); // Prints: hello world, to out myConsole.log('hello %s', 'world'); // Prints: hello world, to out myConsole.error(new Error('Whoops, something bad happened')); // Prints: [Error: Whoops, something bad happened], to err const name = 'Will Robinson'; myConsole.warn(`Danger ${name}! Danger!`); // Prints: Danger Will Robinson! Danger!, to err ```
@see[source](https://github.com/nodejs/node/blob/v24.x/lib/console.js)
console
.Console.log(message?: any, ...optionalParams: any[]): void (+1 overload)
Prints to `stdout` with newline. Multiple arguments can be passed, with the first used as the primary message and all additional used as substitution values similar to [`printf(3)`](http://man7.org/linux/man-pages/man3/printf.3.html) (the arguments are all passed to [`util.format()`](https://nodejs.org/docs/latest-v24.x/api/util.html#utilformatformat-args)). ```js const count = 5; console.log('count: %d', count); // Prints: count: 5, to stdout console.log('count:', count); // Prints: count: 5, to stdout ``` See [`util.format()`](https://nodejs.org/docs/latest-v24.x/api/util.html#utilformatformat-args) for more information.
@sincev0.1.100
log
(const tool_calls: anytool_calls);
if (const tool_calls: anytool_calls) { const { function: { arguments: const toolArgs: anytoolArgs }, } = const tool_calls: anytool_calls[0]; const const result: anyresult = await composio.tools.execute( "HACKERNEWS_GET_LATEST_POSTS", { userId: anyuserId, arguments: anyarguments: var JSON: JSON
An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.
JSON
.JSON.parse(text: string, reviver?: (this: any, key: string, value: any) => any): any
Converts a JavaScript Object Notation (JSON) string into an object.
@paramtext A valid JSON string.@paramreviver A function that transforms the results. This function is called for each member of the object. If a member contains nested objects, the nested objects are transformed before the parent object is.@throws{SyntaxError} If `text` is not valid JSON.
parse
(const toolArgs: anytoolArgs),
}, {
beforeExecute: ({ toolSlug, toolkitSlug, params }: {
    toolSlug: any;
    toolkitSlug: any;
    params: any;
}) => any
beforeExecute
: ({ toolSlug: anytoolSlug, toolkitSlug: anytoolkitSlug, params: anyparams }) => {
if (toolSlug: anytoolSlug === "HACKERNEWS_GET_LATEST_POSTS") { params: anyparams.arguments.size = 1; } var console: Console
The `console` module provides a simple debugging console that is similar to the JavaScript console mechanism provided by web browsers. The module exports two specific components: * A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream. * A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v24.x/api/process.html#processstdout) and [`process.stderr`](https://nodejs.org/docs/latest-v24.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module. _**Warning**_: The global console object's methods are neither consistently synchronous like the browser APIs they resemble, nor are they consistently asynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v24.x/api/process.html#a-note-on-process-io) for more information. Example using the global `console`: ```js console.log('hello world'); // Prints: hello world, to stdout console.log('hello %s', 'world'); // Prints: hello world, to stdout console.error(new Error('Whoops, something bad happened')); // Prints error message and stack trace to stderr: // Error: Whoops, something bad happened // at [eval]:5:15 // at Script.runInThisContext (node:vm:132:18) // at Object.runInThisContext (node:vm:309:38) // at node:internal/process/execution:77:19 // at [eval]-wrapper:6:22 // at evalScript (node:internal/process/execution:76:60) // at node:internal/main/eval_string:23:3 const name = 'Will Robinson'; console.warn(`Danger ${name}! Danger!`); // Prints: Danger Will Robinson! Danger!, to stderr ``` Example using the `Console` class: ```js const out = getStreamSomehow(); const err = getStreamSomehow(); const myConsole = new console.Console(out, err); myConsole.log('hello world'); // Prints: hello world, to out myConsole.log('hello %s', 'world'); // Prints: hello world, to out myConsole.error(new Error('Whoops, something bad happened')); // Prints: [Error: Whoops, something bad happened], to err const name = 'Will Robinson'; myConsole.warn(`Danger ${name}! Danger!`); // Prints: Danger Will Robinson! Danger!, to err ```
@see[source](https://github.com/nodejs/node/blob/v24.x/lib/console.js)
console
.Console.log(message?: any, ...optionalParams: any[]): void (+1 overload)
Prints to `stdout` with newline. Multiple arguments can be passed, with the first used as the primary message and all additional used as substitution values similar to [`printf(3)`](http://man7.org/linux/man-pages/man3/printf.3.html) (the arguments are all passed to [`util.format()`](https://nodejs.org/docs/latest-v24.x/api/util.html#utilformatformat-args)). ```js const count = 5; console.log('count: %d', count); // Prints: count: 5, to stdout console.log('count:', count); // Prints: count: 5, to stdout ``` See [`util.format()`](https://nodejs.org/docs/latest-v24.x/api/util.html#utilformatformat-args) for more information.
@sincev0.1.100
log
(params: anyparams);
return params: anyparams; }, } ); var console: Console
The `console` module provides a simple debugging console that is similar to the JavaScript console mechanism provided by web browsers. The module exports two specific components: * A `Console` class with methods such as `console.log()`, `console.error()` and `console.warn()` that can be used to write to any Node.js stream. * A global `console` instance configured to write to [`process.stdout`](https://nodejs.org/docs/latest-v24.x/api/process.html#processstdout) and [`process.stderr`](https://nodejs.org/docs/latest-v24.x/api/process.html#processstderr). The global `console` can be used without importing the `node:console` module. _**Warning**_: The global console object's methods are neither consistently synchronous like the browser APIs they resemble, nor are they consistently asynchronous like all other Node.js streams. See the [`note on process I/O`](https://nodejs.org/docs/latest-v24.x/api/process.html#a-note-on-process-io) for more information. Example using the global `console`: ```js console.log('hello world'); // Prints: hello world, to stdout console.log('hello %s', 'world'); // Prints: hello world, to stdout console.error(new Error('Whoops, something bad happened')); // Prints error message and stack trace to stderr: // Error: Whoops, something bad happened // at [eval]:5:15 // at Script.runInThisContext (node:vm:132:18) // at Object.runInThisContext (node:vm:309:38) // at node:internal/process/execution:77:19 // at [eval]-wrapper:6:22 // at evalScript (node:internal/process/execution:76:60) // at node:internal/main/eval_string:23:3 const name = 'Will Robinson'; console.warn(`Danger ${name}! Danger!`); // Prints: Danger Will Robinson! Danger!, to stderr ``` Example using the `Console` class: ```js const out = getStreamSomehow(); const err = getStreamSomehow(); const myConsole = new console.Console(out, err); myConsole.log('hello world'); // Prints: hello world, to out myConsole.log('hello %s', 'world'); // Prints: hello world, to out myConsole.error(new Error('Whoops, something bad happened')); // Prints: [Error: Whoops, something bad happened], to err const name = 'Will Robinson'; myConsole.warn(`Danger ${name}! Danger!`); // Prints: Danger Will Robinson! Danger!, to err ```
@see[source](https://github.com/nodejs/node/blob/v24.x/lib/console.js)
console
.Console.log(message?: any, ...optionalParams: any[]): void (+1 overload)
Prints to `stdout` with newline. Multiple arguments can be passed, with the first used as the primary message and all additional used as substitution values similar to [`printf(3)`](http://man7.org/linux/man-pages/man3/printf.3.html) (the arguments are all passed to [`util.format()`](https://nodejs.org/docs/latest-v24.x/api/util.html#utilformatformat-args)). ```js const count = 5; console.log('count: %d', count); // Prints: count: 5, to stdout console.log('count:', count); // Prints: count: 5, to stdout ``` See [`util.format()`](https://nodejs.org/docs/latest-v24.x/api/util.html#utilformatformat-args) for more information.
@sincev0.1.100
log
(var JSON: JSON
An intrinsic object that provides functions to convert JavaScript values to and from the JavaScript Object Notation (JSON) format.
JSON
.JSON.stringify(value: any, replacer?: (number | string)[] | null, space?: string | number): string (+1 overload)
Converts a JavaScript value to a JavaScript Object Notation (JSON) string.
@paramvalue A JavaScript value, usually an object or array, to be converted.@paramreplacer An array of strings and numbers that acts as an approved list for selecting the object properties that will be stringified.@paramspace Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.@throws{TypeError} If a circular reference or a BigInt value is found.
stringify
(const result: anyresult, null, 2));
}

With Agentic Frameworks

Agentic providers have a function execution step. The modifier is configured on the tools.get method which modifies the execution logic within the framework.

from composio import Composio, before_execute
from composio.types import ToolExecuteParams
from composio_crewai import CrewAIProvider

composio = Composio(provider=CrewAIProvider())

@before_execute(tools=["LINEAR_CREATE_LINEAR_ISSUE"])
def modify_linear_project_id(
    tool: str,
    toolkit: str,
    params: ToolExecuteParams,
) -> ToolExecuteParams:
    params["arguments"]["project_id"] = "1234567890"
    return params

tools = composio.tools.get(
    user_id="default",
    tools=[
        "HACKERNEWS_GET_LATEST_POSTS",
        "HACKERNEWS_GET_USER",
        "LINEAR_CREATE_LINEAR_ISSUE",
    ],
    modifiers=[
        modify_linear_project_id,
    ]
)
import { class Composio<TProvider extends BaseComposioProvider<unknown, unknown, unknown> = OpenAIProvider>
This is the core class for Composio. It is used to initialize the Composio SDK and provide a global configuration.
Composio
} from "@composio/core";
import { class MastraProviderMastraProvider } from "@composio/mastra"; const const composio: Composio<MastraProvider>composio = new new Composio<MastraProvider>(config?: ComposioConfig<MastraProvider> | undefined): Composio<MastraProvider>
Creates a new instance of the Composio SDK. The constructor initializes the SDK with the provided configuration options, sets up the API client, and initializes all core models (tools, toolkits, etc.).
@paramconfig - Configuration options for the Composio SDK@paramconfig.apiKey - The API key for authenticating with the Composio API@paramconfig.baseURL - The base URL for the Composio API (defaults to production URL)@paramconfig.allowTracking - Whether to allow anonymous usage analytics@paramconfig.provider - The provider to use for this Composio instance (defaults to OpenAIProvider)@example```typescript // Initialize with default configuration const composio = new Composio(); // Initialize with custom API key and base URL const composio = new Composio({ apiKey: 'your-api-key', baseURL: 'https://api.composio.dev' }); // Initialize with custom provider const composio = new Composio({ apiKey: 'your-api-key', provider: new CustomProvider() }); ```
Composio
({
apiKey?: string | null | undefined
The API key for the Composio API.
@example'sk-1234567890'
apiKey
: var process: NodeJS.Processprocess.NodeJS.Process.env: NodeJS.ProcessEnv
The `process.env` property returns an object containing the user environment. See [`environ(7)`](http://man7.org/linux/man-pages/man7/environ.7.html). An example of this object looks like: ```js { TERM: 'xterm-256color', SHELL: '/usr/local/bin/bash', USER: 'maciej', PATH: '~/.bin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin', PWD: '/Users/maciej', EDITOR: 'vim', SHLVL: '1', HOME: '/Users/maciej', LOGNAME: 'maciej', _: '/usr/local/bin/node' } ``` It is possible to modify this object, but such modifications will not be reflected outside the Node.js process, or (unless explicitly requested) to other `Worker` threads. In other words, the following example would not work: ```bash node -e 'process.env.foo = "bar"' &#x26;&#x26; echo $foo ``` While the following will: ```js import { env } from 'node:process'; env.foo = 'bar'; console.log(env.foo); ``` Assigning a property on `process.env` will implicitly convert the value to a string. **This behavior is deprecated.** Future versions of Node.js may throw an error when the value is not a string, number, or boolean. ```js import { env } from 'node:process'; env.test = null; console.log(env.test); // => 'null' env.test = undefined; console.log(env.test); // => 'undefined' ``` Use `delete` to delete a property from `process.env`. ```js import { env } from 'node:process'; env.TEST = 1; delete env.TEST; console.log(env.TEST); // => undefined ``` On Windows operating systems, environment variables are case-insensitive. ```js import { env } from 'node:process'; env.TEST = 1; console.log(env.test); // => 1 ``` Unless explicitly specified when creating a `Worker` instance, each `Worker` thread has its own copy of `process.env`, based on its parent thread's `process.env`, or whatever was specified as the `env` option to the `Worker` constructor. Changes to `process.env` will not be visible across `Worker` threads, and only the main thread can make changes that are visible to the operating system or to native add-ons. On Windows, a copy of `process.env` on a `Worker` instance operates in a case-sensitive manner unlike the main thread.
@sincev0.1.27
env
.string | undefinedCOMPOSIO_API_KEY,
provider?: MastraProvider | undefined
The tool provider to use for this Composio instance.
@examplenew OpenAIProvider()
provider
: new
new MastraProvider({ strict }?: {
    strict?: boolean;
}): MastraProvider
Creates a new instance of the MastraProvider. This provider enables integration with the Mastra AI SDK, allowing Composio tools to be used with Mastra AI applications.
@paramparam0@paramparam0.strict - Whether to use strict mode for tool execution@returnsA new instance of the MastraProvider@example```typescript import { Composio } from '@composio/core'; import { MastraProvider } from '@composio/mastra'; const composio = new Composio({ apiKey: 'your-composio-api-key', provider: new MastraProvider(), }); ```
MastraProvider
(),
}); const const userId: "user@acme.com"userId = "user@acme.com"; const const agenticTools: MastraToolCollectionagenticTools = await const composio: Composio<MastraProvider>composio.Composio<MastraProvider>.tools: Tools<unknown, unknown, MastraProvider>
List, retrieve, and execute tools
tools
.Tools<unknown, unknown, MastraProvider>.get<MastraProvider>(userId: string, filters: ToolListParams, options?: AgenticToolOptions | undefined): Promise<MastraToolCollection> (+1 overload)
Get a list of tools from Composio based on filters. This method fetches the tools from the Composio API and wraps them using the provider.
@paramuserId - The user id to get the tools for@paramfilters - The filters to apply when fetching tools@paramoptions - Optional provider options including modifiers@returnsThe wrapped tools collection@example```typescript // Get tools from the GitHub toolkit const tools = await composio.tools.get('default', { toolkits: ['github'], limit: 10 }); // Get tools with search const searchTools = await composio.tools.get('default', { search: 'user', limit: 10 }); // Get a specific tool by slug const hackerNewsUserTool = await composio.tools.get('default', 'HACKERNEWS_GET_USER'); // Get a tool with schema modifications const tool = await composio.tools.get('default', 'GITHUB_GET_REPOS', { modifySchema: (toolSlug, toolkitSlug, schema) => { // Customize the tool schema return {...schema, description: 'Custom description'}; } }); ```
get
(
const userId: "user@acme.com"userId, { tools: string[]tools: [ "HACKERNEWS_GET_LATEST_POSTS", "HACKERNEWS_GET_USER", "LINEAR_CREATE_LINEAR_ISSUE", ], }, { beforeExecute?: beforeExecuteModifier | undefined
Function to intercept and modify tool execution parameters before the tool is executed. This allows customizing the request based on tool-specific needs.
beforeExecute
: ({toolSlug: stringtoolSlug, toolkitSlug: stringtoolkitSlug,
params: {
    version?: string | undefined;
    allowTracing?: boolean | undefined;
    connectedAccountId?: string | undefined;
    customAuthParams?: {
        parameters: {
            name: string;
            value: string | number;
            in: "query" | "header";
        }[];
        baseURL?: string | undefined;
        body?: Record<string, unknown> | undefined;
    } | undefined;
    customConnectionData?: {
        authScheme: "OAUTH2";
        val: {
            access_token: string;
            version?: string | undefined;
            "your-domain"?: string | undefined;
            subdomain?: string | undefined;
            region?: string | undefined;
            shop?: string | undefined;
            account_url?: string | undefined;
            COMPANYDOMAIN?: string | undefined;
            extension?: string | undefined;
            form_api_base_url?: string | undefined;
            instanceEndpoint?: string | undefined;
            api_url?: string | undefined;
            borneo_dashboard_url?: string | undefined;
            proxy_username?: string | undefined;
            proxy_password?: string | undefined;
            domain?: string | undefined;
            dc?: string | undefined;
            site_name?: string | undefined;
            instanceName?: string | undefined;
            account_id?: string | undefined;
            your_server?: string | undefined;
            server_location?: string | undefined;
            base_url?: string | undefined;
            api_key?: string | undefined;
            generic_api_key?: string | undefined;
            bearer_token?: string | undefined;
            basic_encoded?: string | undefined;
            long_redirect_url?: boolean | undefined;
            state_prefix?: string | undefined;
            registration_access_token?: string | undefined;
            registration_client_uri?: string | undefined;
            composio_link_redirect_url?: string | undefined;
            webhook_signature?: string | undefined;
            id_token?: string | undefined;
            token_type?: string | undefined;
            refresh_token?: string | null | undefined;
            expires_in?: string | number | null | undefined;
            scope?: string | string[] | null | undefined;
            authed_user?: {
                access_token?: string | undefined;
                scope?: string | undefined;
            } | undefined;
        } & {
            [k: string]: unknown;
        };
        toolkitSlug: string;
    } | {
        authScheme: "DCR_OAUTH";
        val: {
            access_token: string;
            client_id: string;
            version?: string | undefined;
            "your-domain"?: string | undefined;
            subdomain?: string | undefined;
            region?: string | undefined;
            shop?: string | undefined;
            account_url?: string | undefined;
            COMPANYDOMAIN?: string | undefined;
            extension?: string | undefined;
            form_api_base_url?: string | undefined;
            instanceEndpoint?: string | undefined;
            api_url?: string | undefined;
            borneo_dashboard_url?: string | undefined;
            proxy_username?: string | undefined;
            proxy_password?: string | undefined;
            domain?: string | undefined;
            dc?: string | undefined;
            site_name?: string | undefined;
            instanceName?: string | undefined;
            account_id?: string | undefined;
            your_server?: string | undefined;
            server_location?: string | undefined;
            base_url?: string | undefined;
            api_key?: string | undefined;
            generic_api_key?: string | undefined;
            bearer_token?: string | undefined;
            basic_encoded?: string | undefined;
            long_redirect_url?: boolean | undefined;
            state_prefix?: string | undefined;
            registration_access_token?: string | undefined;
            registration_client_uri?: string | undefined;
            composio_link_redirect_url?: string | undefined;
        } & {
            [k: string]: unknown;
        };
        toolkitSlug: string;
    } | {
        authScheme: "API_KEY";
        val: {
            version?: string | undefined;
            "your-domain"?: string | undefined;
            subdomain?: string | undefined;
            region?: string | undefined;
            shop?: string | undefined;
            account_url?: string | undefined;
            COMPANYDOMAIN?: string | undefined;
            extension?: string | undefined;
            form_api_base_url?: string | undefined;
            instanceEndpoint?: string | undefined;
            api_url?: string | undefined;
            borneo_dashboard_url?: string | undefined;
            proxy_username?: string | undefined;
            proxy_password?: string | undefined;
            domain?: string | undefined;
            dc?: string | undefined;
            site_name ...
params
}) => {
if (toolSlug: stringtoolSlug === "LINEAR_CREATE_LINEAR_ISSUE") {
params: {
    version?: string | undefined;
    allowTracing?: boolean | undefined;
    connectedAccountId?: string | undefined;
    customAuthParams?: {
        parameters: {
            name: string;
            value: string | number;
            in: "query" | "header";
        }[];
        baseURL?: string | undefined;
        body?: Record<string, unknown> | undefined;
    } | undefined;
    customConnectionData?: {
        authScheme: "OAUTH2";
        val: {
            access_token: string;
            version?: string | undefined;
            "your-domain"?: string | undefined;
            subdomain?: string | undefined;
            region?: string | undefined;
            shop?: string | undefined;
            account_url?: string | undefined;
            COMPANYDOMAIN?: string | undefined;
            extension?: string | undefined;
            form_api_base_url?: string | undefined;
            instanceEndpoint?: string | undefined;
            api_url?: string | undefined;
            borneo_dashboard_url?: string | undefined;
            proxy_username?: string | undefined;
            proxy_password?: string | undefined;
            domain?: string | undefined;
            dc?: string | undefined;
            site_name?: string | undefined;
            instanceName?: string | undefined;
            account_id?: string | undefined;
            your_server?: string | undefined;
            server_location?: string | undefined;
            base_url?: string | undefined;
            api_key?: string | undefined;
            generic_api_key?: string | undefined;
            bearer_token?: string | undefined;
            basic_encoded?: string | undefined;
            long_redirect_url?: boolean | undefined;
            state_prefix?: string | undefined;
            registration_access_token?: string | undefined;
            registration_client_uri?: string | undefined;
            composio_link_redirect_url?: string | undefined;
            webhook_signature?: string | undefined;
            id_token?: string | undefined;
            token_type?: string | undefined;
            refresh_token?: string | null | undefined;
            expires_in?: string | number | null | undefined;
            scope?: string | string[] | null | undefined;
            authed_user?: {
                access_token?: string | undefined;
                scope?: string | undefined;
            } | undefined;
        } & {
            [k: string]: unknown;
        };
        toolkitSlug: string;
    } | {
        authScheme: "DCR_OAUTH";
        val: {
            access_token: string;
            client_id: string;
            version?: string | undefined;
            "your-domain"?: string | undefined;
            subdomain?: string | undefined;
            region?: string | undefined;
            shop?: string | undefined;
            account_url?: string | undefined;
            COMPANYDOMAIN?: string | undefined;
            extension?: string | undefined;
            form_api_base_url?: string | undefined;
            instanceEndpoint?: string | undefined;
            api_url?: string | undefined;
            borneo_dashboard_url?: string | undefined;
            proxy_username?: string | undefined;
            proxy_password?: string | undefined;
            domain?: string | undefined;
            dc?: string | undefined;
            site_name?: string | undefined;
            instanceName?: string | undefined;
            account_id?: string | undefined;
            your_server?: string | undefined;
            server_location?: string | undefined;
            base_url?: string | undefined;
            api_key?: string | undefined;
            generic_api_key?: string | undefined;
            bearer_token?: string | undefined;
            basic_encoded?: string | undefined;
            long_redirect_url?: boolean | undefined;
            state_prefix?: string | undefined;
            registration_access_token?: string | undefined;
            registration_client_uri?: string | undefined;
            composio_link_redirect_url?: string | undefined;
        } & {
            [k: string]: unknown;
        };
        toolkitSlug: string;
    } | {
        authScheme: "API_KEY";
        val: {
            version?: string | undefined;
            "your-domain"?: string | undefined;
            subdomain?: string | undefined;
            region?: string | undefined;
            shop?: string | undefined;
            account_url?: string | undefined;
            COMPANYDOMAIN?: string | undefined;
            extension?: string | undefined;
            form_api_base_url?: string | undefined;
            instanceEndpoint?: string | undefined;
            api_url?: string | undefined;
            borneo_dashboard_url?: string | undefined;
            proxy_username?: string | undefined;
            proxy_password?: string | undefined;
            domain?: string | undefined;
            dc?: string | undefined;
            site_name ...
params
.arguments?: Record<string, unknown> | undefinedarguments.unknownproject_id = "1234567890";
} return
params: {
    version?: string | undefined;
    allowTracing?: boolean | undefined;
    connectedAccountId?: string | undefined;
    customAuthParams?: {
        parameters: {
            name: string;
            value: string | number;
            in: "query" | "header";
        }[];
        baseURL?: string | undefined;
        body?: Record<string, unknown> | undefined;
    } | undefined;
    customConnectionData?: {
        authScheme: "OAUTH2";
        val: {
            access_token: string;
            version?: string | undefined;
            "your-domain"?: string | undefined;
            subdomain?: string | undefined;
            region?: string | undefined;
            shop?: string | undefined;
            account_url?: string | undefined;
            COMPANYDOMAIN?: string | undefined;
            extension?: string | undefined;
            form_api_base_url?: string | undefined;
            instanceEndpoint?: string | undefined;
            api_url?: string | undefined;
            borneo_dashboard_url?: string | undefined;
            proxy_username?: string | undefined;
            proxy_password?: string | undefined;
            domain?: string | undefined;
            dc?: string | undefined;
            site_name?: string | undefined;
            instanceName?: string | undefined;
            account_id?: string | undefined;
            your_server?: string | undefined;
            server_location?: string | undefined;
            base_url?: string | undefined;
            api_key?: string | undefined;
            generic_api_key?: string | undefined;
            bearer_token?: string | undefined;
            basic_encoded?: string | undefined;
            long_redirect_url?: boolean | undefined;
            state_prefix?: string | undefined;
            registration_access_token?: string | undefined;
            registration_client_uri?: string | undefined;
            composio_link_redirect_url?: string | undefined;
            webhook_signature?: string | undefined;
            id_token?: string | undefined;
            token_type?: string | undefined;
            refresh_token?: string | null | undefined;
            expires_in?: string | number | null | undefined;
            scope?: string | string[] | null | undefined;
            authed_user?: {
                access_token?: string | undefined;
                scope?: string | undefined;
            } | undefined;
        } & {
            [k: string]: unknown;
        };
        toolkitSlug: string;
    } | {
        authScheme: "DCR_OAUTH";
        val: {
            access_token: string;
            client_id: string;
            version?: string | undefined;
            "your-domain"?: string | undefined;
            subdomain?: string | undefined;
            region?: string | undefined;
            shop?: string | undefined;
            account_url?: string | undefined;
            COMPANYDOMAIN?: string | undefined;
            extension?: string | undefined;
            form_api_base_url?: string | undefined;
            instanceEndpoint?: string | undefined;
            api_url?: string | undefined;
            borneo_dashboard_url?: string | undefined;
            proxy_username?: string | undefined;
            proxy_password?: string | undefined;
            domain?: string | undefined;
            dc?: string | undefined;
            site_name?: string | undefined;
            instanceName?: string | undefined;
            account_id?: string | undefined;
            your_server?: string | undefined;
            server_location?: string | undefined;
            base_url?: string | undefined;
            api_key?: string | undefined;
            generic_api_key?: string | undefined;
            bearer_token?: string | undefined;
            basic_encoded?: string | undefined;
            long_redirect_url?: boolean | undefined;
            state_prefix?: string | undefined;
            registration_access_token?: string | undefined;
            registration_client_uri?: string | undefined;
            composio_link_redirect_url?: string | undefined;
        } & {
            [k: string]: unknown;
        };
        toolkitSlug: string;
    } | {
        authScheme: "API_KEY";
        val: {
            version?: string | undefined;
            "your-domain"?: string | undefined;
            subdomain?: string | undefined;
            region?: string | undefined;
            shop?: string | undefined;
            account_url?: string | undefined;
            COMPANYDOMAIN?: string | undefined;
            extension?: string | undefined;
            form_api_base_url?: string | undefined;
            instanceEndpoint?: string | undefined;
            api_url?: string | undefined;
            borneo_dashboard_url?: string | undefined;
            proxy_username?: string | undefined;
            proxy_password?: string | undefined;
            domain?: string | undefined;
            dc?: string | undefined;
            site_name ...
params
;
}, } );