dify/e2e/features/step-definitions/agent-v2/fixtures.steps.ts

118 lines
4.3 KiB
TypeScript

import type { DifyWorld } from '../../support/world'
import { Given } from '@cucumber/cucumber'
import { requirePreseededAgentWorkflowReference } from '../../agent-v2/support/fixtures/access'
import { requireAgentBackendRuntime } from '../../agent-v2/support/fixtures/agent-backend'
import {
requirePreseededAgent,
requirePreseededDualRetrievalAgentConfiguration,
requirePreseededFullConfigAgentCoreConfiguration,
requirePreseededToolStatesAgentConfiguration,
requirePreseededWorkflow,
} from '../../agent-v2/support/fixtures/agents'
import { requireReadyPreseededDataset } from '../../agent-v2/support/fixtures/datasets'
import {
requireAgentBuilderAgentDecisionChatModel,
requireAgentBuilderSpeechToTextModel,
requireAgentBuilderStableChatModel,
} from '../../agent-v2/support/fixtures/models'
import { requirePreseededTool } from '../../agent-v2/support/fixtures/tools'
Given('the Agent Builder stable chat model is available', async function (this: DifyWorld) {
const stableModel = await requireAgentBuilderStableChatModel(this)
this.agentBuilder.fixtures.stableModel = stableModel
})
Given('the workspace default speech-to-text model is active', async function (this: DifyWorld) {
const speechToTextModel = await requireAgentBuilderSpeechToTextModel(this)
this.agentBuilder.fixtures.speechToTextModel = speechToTextModel
})
Given('the Agent Builder agent-decision chat model is available', async function (this: DifyWorld) {
const agentDecisionModel = await requireAgentBuilderAgentDecisionChatModel(this)
this.agentBuilder.fixtures.agentDecisionModel = agentDecisionModel
})
Given('the Agent v2 runtime backend is available', async function (this: DifyWorld) {
await requireAgentBackendRuntime(this)
})
Given(
'the Agent Builder preseeded Agent {string} is available',
async function (this: DifyWorld, resourceName: string) {
const resource = await requirePreseededAgent(this, resourceName)
this.agentBuilder.fixtures.preseededResources[resourceName] = resource
},
)
Given(
'the Agent Builder preseeded workflow {string} is available',
async function (this: DifyWorld, resourceName: string) {
const resource = await requirePreseededWorkflow(this, resourceName)
this.agentBuilder.fixtures.preseededResources[resourceName] = resource
},
)
Given(
'the Agent Builder preseeded dataset {string} is indexed and ready',
async function (this: DifyWorld, resourceName: string) {
const resource = await requireReadyPreseededDataset(this, resourceName)
this.agentBuilder.fixtures.preseededResources[resourceName] = resource
},
)
Given(
'the Agent Builder preseeded tool {string} is available',
async function (this: DifyWorld, resourceName: string) {
const resource = await requirePreseededTool(this, resourceName)
this.agentBuilder.fixtures.preseededResources[resourceName] = resource
},
)
Given(
'the Agent Builder preseeded Agent {string} includes the core fixture configuration',
async function (this: DifyWorld, agentName: string) {
const resource = await requirePreseededFullConfigAgentCoreConfiguration(this, agentName)
this.agentBuilder.fixtures.preseededResources[`${agentName} / core fixture configuration`] =
resource
},
)
Given(
'the Agent Builder preseeded Agent {string} includes the tool state fixture configuration',
async function (this: DifyWorld, agentName: string) {
const resource = await requirePreseededToolStatesAgentConfiguration(this, agentName)
this.agentBuilder.fixtures.preseededResources[
`${agentName} / tool state fixture configuration`
] = resource
},
)
Given(
'the Agent Builder preseeded Agent {string} includes the dual retrieval fixture configuration',
async function (this: DifyWorld, agentName: string) {
const resource = await requirePreseededDualRetrievalAgentConfiguration(this, agentName)
this.agentBuilder.fixtures.preseededResources[
`${agentName} / dual retrieval fixture configuration`
] = resource
},
)
Given(
'the Agent Builder preseeded Agent {string} is referenced by workflow {string}',
async function (this: DifyWorld, agentName: string, workflowName: string) {
const resource = await requirePreseededAgentWorkflowReference(this, agentName, workflowName)
this.agentBuilder.fixtures.preseededResources[`${agentName} / ${workflowName}`] = resource
},
)