- Add Activepieces fork with SmoothSchedule custom piece - Create integrations app with Activepieces service layer - Add embed token endpoint for iframe integration - Create Automations page with embedded workflow builder - Add sidebar visibility fix for embed mode - Add list inactive customers endpoint to Public API - Include SmoothSchedule triggers: event created/updated/cancelled - Include SmoothSchedule actions: create/update/cancel events, list resources/services/customers 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
46 lines
1.3 KiB
TypeScript
46 lines
1.3 KiB
TypeScript
import { useQuery } from '@tanstack/react-query';
|
|
|
|
import { ToolCallType, type ToolCallContentBlock } from '@activepieces/shared';
|
|
|
|
import { piecesApi } from '../pieces/lib/pieces-api';
|
|
|
|
type ToolMetadata = {
|
|
displayName?: string | null;
|
|
logoUrl?: string | null;
|
|
};
|
|
|
|
export const agentToolHooks = {
|
|
useToolMetadata(contentBlock: ToolCallContentBlock) {
|
|
return useQuery<ToolMetadata, Error>({
|
|
queryKey: [
|
|
'mcp-tool-metadata',
|
|
contentBlock.toolName,
|
|
contentBlock.toolCallType,
|
|
],
|
|
queryFn: async () => {
|
|
switch (contentBlock.toolCallType) {
|
|
case ToolCallType.PIECE: {
|
|
const piece = await piecesApi.get({
|
|
name: contentBlock.pieceName,
|
|
version: contentBlock.pieceVersion,
|
|
});
|
|
const actionMetadata = piece.actions[contentBlock.actionName];
|
|
return {
|
|
displayName:
|
|
actionMetadata?.displayName ?? contentBlock.actionName,
|
|
logoUrl: piece.logoUrl,
|
|
};
|
|
}
|
|
case ToolCallType.FLOW:
|
|
return {
|
|
displayName: contentBlock.displayName,
|
|
logoUrl: null,
|
|
};
|
|
default:
|
|
return { displayName: null, logoUrl: null };
|
|
}
|
|
},
|
|
});
|
|
},
|
|
};
|