0173e40a20
## Summary This PR enables serverless functions to be exposed as AI tools, allowing them to be used by AI agents. ### Changes - Added new `SERVERLESS_FUNCTION` tool category - Added `toolDescription`, `toolInputSchema`, and `toolOutputSchema` fields to serverless functions - Created database migration for the new schema columns - Added tool index query and resolver for fetching available tools - Added Settings AI page tabs (Skills, Tools, Settings) with new tools table - Added utility to convert tool schema to JSON schema format - Updated frontend to display tools in the settings page ### Implementation Details - Serverless functions can now define tool metadata (description, input/output schemas) - These functions are automatically registered in the tool registry - The tool index endpoint allows querying available tools with their schemas - Settings page now has a dedicated Tools tab showing all available tools
32 lines
1005 B
TypeScript
32 lines
1005 B
TypeScript
import { useApolloCoreClient } from '@/object-metadata/hooks/useApolloCoreClient';
|
|
import { FIND_ONE_SERVERLESS_FUNCTION } from '@/settings/serverless-functions/graphql/queries/findOneServerlessFunction';
|
|
import { useQuery } from '@apollo/client';
|
|
import {
|
|
type GetOneServerlessFunctionQuery,
|
|
type GetOneServerlessFunctionQueryVariables,
|
|
type ServerlessFunctionIdInput,
|
|
} from '~/generated-metadata/graphql';
|
|
|
|
export const useGetOneServerlessFunction = ({
|
|
id,
|
|
onCompleted,
|
|
}: ServerlessFunctionIdInput & {
|
|
onCompleted?: (data: GetOneServerlessFunctionQuery) => void;
|
|
}) => {
|
|
const apolloMetadataClient = useApolloCoreClient();
|
|
const { data, loading } = useQuery<
|
|
GetOneServerlessFunctionQuery,
|
|
GetOneServerlessFunctionQueryVariables
|
|
>(FIND_ONE_SERVERLESS_FUNCTION, {
|
|
client: apolloMetadataClient ?? undefined,
|
|
variables: {
|
|
input: { id },
|
|
},
|
|
onCompleted,
|
|
});
|
|
return {
|
|
serverlessFunction: data?.findOneServerlessFunction || null,
|
|
loading,
|
|
};
|
|
};
|