@mondaydotcomorg/atp-client
Version:
Client SDK for Agent Tool Protocol
49 lines (45 loc) • 1.26 kB
text/typescript
import { z } from 'zod';
import { zodToJsonSchema } from 'zod-to-json-schema';
import type { AgentToolProtocolClient } from '../client.js';
import { ToolNames, type Tool } from './types.js';
const searchApiInputSchema = z.object({
query: z.string().describe('Search query string'),
});
type SearchApiInput = z.infer<typeof searchApiInputSchema>;
export function createSearchApiTool(client: AgentToolProtocolClient): Tool<SearchApiInput> {
return {
name: ToolNames.SEARCH_API,
description:
'Search for APIs by keyword. Provide search term as string like "add", "math", "user", etc.',
inputSchema: zodToJsonSchema(searchApiInputSchema) as any,
zodSchema: searchApiInputSchema,
func: async (input: SearchApiInput) => {
try {
const results = await client.searchAPI(input.query);
return JSON.stringify(
{
success: true,
results: results.map((r) => ({
apiGroup: r.apiGroup,
functionName: r.functionName,
description: r.description,
signature: r.signature,
})),
count: results.length,
},
null,
2
);
} catch (error: any) {
return JSON.stringify(
{
success: false,
error: error.message,
},
null,
2
);
}
},
};
}