Skip to content

Commit

Permalink
fix: limitedActions in getTools (ComposioHQ#1341)
Browse files Browse the repository at this point in the history
  • Loading branch information
utkarsh-dixit authored Feb 17, 2025
1 parent aa94622 commit c4d962f
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 19 deletions.
6 changes: 5 additions & 1 deletion js/src/frameworks/langchain.ts
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,11 @@ export class LangchainToolSet extends BaseComposioToolSet {
params: { filters, entityId },
});

const tools = await this.getToolsSchema(filters, entityId);
const tools = await this.getToolsSchema(
filters,
entityId,
filters.integrationId
);
return tools.map((tool) =>
this._wrapTool(tool as RawActionData, entityId || this.entityId)
);
Expand Down
6 changes: 5 additions & 1 deletion js/src/frameworks/openai.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,11 @@ export class OpenAIToolSet extends BaseComposioToolSet {
params: filters,
});

const mainActions = await this.getToolsSchema(filters, entityId);
const mainActions = await this.getToolsSchema(
filters,
entityId,
filters.integrationId
);
return (
mainActions.map((action) => {
const formattedSchema: OpenAI.FunctionDefinition = {
Expand Down
40 changes: 24 additions & 16 deletions js/src/frameworks/vercel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,14 +57,18 @@ export class VercelAIToolSet extends BaseComposioToolSet {
}

// change this implementation
async getTools(filters: {
actions?: Array<string>;
apps?: Array<string>;
tags?: Optional<Array<string>>;
useCase?: Optional<string>;
usecaseLimit?: Optional<number>;
filterByAvailableApps?: Optional<boolean>;
}): Promise<{ [key: string]: CoreTool }> {
async getTools(
filters: {
actions?: Array<string>;
apps?: Array<string>;
tags?: Optional<Array<string>>;
useCase?: Optional<string>;
usecaseLimit?: Optional<number>;
filterByAvailableApps?: Optional<boolean>;
integrationId?: Optional<string>;
},
entityId: Optional<string> = null
): Promise<{ [key: string]: CoreTool }> {
TELEMETRY_LOGGER.manualTelemetry(TELEMETRY_EVENTS.SDK_METHOD_INVOKED, {
method: "getTools",
file: this.fileName,
Expand All @@ -80,14 +84,18 @@ export class VercelAIToolSet extends BaseComposioToolSet {
actions,
} = ZExecuteToolCallParams.parse(filters);

const actionsList = await this.getToolsSchema({
apps,
actions,
tags,
useCase,
useCaseLimit: usecaseLimit,
filterByAvailableApps,
});
const actionsList = await this.getToolsSchema(
{
apps,
actions,
tags,
useCase,
useCaseLimit: usecaseLimit,
filterByAvailableApps,
},
entityId,
filters.integrationId
);

const tools: { [key: string]: CoreTool } = {};
actionsList.forEach((actionSchema) => {
Expand Down
2 changes: 1 addition & 1 deletion js/src/sdk/base.toolset.ts
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ export class ComposioToolSet {
apps: parsedFilters.apps?.join(","),
tags: parsedFilters.tags?.join(","),
useCase: parsedFilters.useCase,
actions: parsedFilters.actions?.join(","),
actions: actions?.join(","),
usecaseLimit: parsedFilters.useCaseLimit,
filterByAvailableApps: parsedFilters.filterByAvailableApps,
});
Expand Down
1 change: 1 addition & 0 deletions js/src/types/base_toolset.ts
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ export const ZToolSchemaFilter = z.object({
useCase: z.string().optional(),
useCaseLimit: z.number().optional(),
filterByAvailableApps: z.boolean().optional(),
integrationId: z.string().optional(),
});

export type TToolSchemaFilter = z.infer<typeof ZToolSchemaFilter>;

0 comments on commit c4d962f

Please sign in to comment.