UNPKG

@botonic/plugin-flow-builder

Version:

Use Flow Builder to show your contents

48 lines (38 loc) 1.16 kB
import { FlowContent } from '../content-fields' import { FlowAiAgent } from '../content-fields/flow-ai-agent' import { FlowBuilderContext } from './index' export async function getContentsByAiAgent({ cmsApi, flowBuilderPlugin, request, }: FlowBuilderContext): Promise<FlowContent[]> { const startNodeAiAgentFlow = cmsApi.getStartNodeAiAgentFlow() const isAiAgentEnabled = cmsApi.isAiAgentEnabled() if (!startNodeAiAgentFlow || !isAiAgentEnabled) { return [] } const contents = await flowBuilderPlugin.getContentsByNode(startNodeAiAgentFlow) const aiAgentContent = contents.find( content => content instanceof FlowAiAgent ) as FlowAiAgent if (!aiAgentContent) { return [] } const aiAgentResponse = await flowBuilderPlugin.getAiAgentResponse?.( request, { name: aiAgentContent.name, instructions: aiAgentContent.instructions, activeTools: aiAgentContent.activeTools, } ) if (!aiAgentResponse) { return [] } if (aiAgentResponse.length === 1 && aiAgentResponse[0].type === 'exit') { return [] } aiAgentContent.responses = aiAgentResponse return contents }