MCPcopy Create free account
hub / github.com/Noumena-Network/code / runWorkflowAgentTask

Function runWorkflowAgentTask

src/tools/WorkflowTool/WorkflowTool.ts:215–372  ·  view source on GitHub ↗
({
  taskId,
  executionMode,
  agent,
  workflowAbortController,
  toolUseContext,
  canUseTool,
  parentMessage,
  rootSetAppState,
}: {
  taskId: string
  executionMode: WorkflowExecutionMode
  agent: ResolvedWorkflowAgent
  workflowAbortController: AbortController
  toolUseContext: ToolUseContext
  canUseTool: Parameters<ToolDef<InputSchema, Output>['call']>[2]
  parentMessage: Parameters<ToolDef<InputSchema, Output>['call']>[3]
  rootSetAppState: (f: (prev: AppState) => AppState) => void
})

Source from the content-addressed store, hash-verified

213}
214
215async function runWorkflowAgentTask({
216 taskId,
217 executionMode,
218 agent,
219 workflowAbortController,
220 toolUseContext,
221 canUseTool,
222 parentMessage,
223 rootSetAppState,
224}: {
225 taskId: string
226 executionMode: WorkflowExecutionMode
227 agent: ResolvedWorkflowAgent
228 workflowAbortController: AbortController
229 toolUseContext: ToolUseContext
230 canUseTool: Parameters<ToolDef<InputSchema, Output>['call']>[2]
231 parentMessage: Parameters<ToolDef<InputSchema, Output>['call']>[3]
232 rootSetAppState: (f: (prev: AppState) => AppState) => void
233}): Promise<'completed' | 'failed' | 'killed'> {
234 if (workflowAbortController.signal.aborted) {
235 stopWorkflowAgent(taskId, agent.id, rootSetAppState, 'Workflow stopped')
236 return 'killed'
237 }
238
239 const agentAbortController = createChildAbortController(
240 workflowAbortController,
241 )
242 setWorkflowAgentController(taskId, agent.id, agentAbortController, rootSetAppState)
243 startWorkflowAgent(taskId, agent.id, rootSetAppState)
244 appendWorkflowLog(
245 taskId,
246 `Started ${agent.name} (${agent.agentType}) in ${executionMode} mode.`,
247 )
248
249 const workflowGetAppState = () =>
250 getWorkflowAppState(toolUseContext.getAppState())
251 const workflowToolUseContext = {
252 ...toolUseContext,
253 getAppState: workflowGetAppState,
254 }
255 const workflowAppState = workflowGetAppState()
256 const workerPermissionContext = {
257 ...workflowAppState.toolPermissionContext,
258 mode:
259 agent.selectedAgent.permissionMode ??
260 workflowAppState.toolPermissionContext.mode,
261 }
262 const workerTools = assembleToolPool(
263 workerPermissionContext,
264 workflowAppState.mcp.tools,
265 )
266 const tracker = createProgressTracker()
267 const resolveActivity = createActivityDescriptionResolver(workerTools)
268 const agentMessages: Parameters<typeof finalizeAgentTool>[0] = []
269 const resolvedModel = getAgentModel(
270 agent.selectedAgent.model,
271 toolUseContext.options.mainLoopModel,
272 agent.model,

Callers 1

runWorkflowLifecycleFunction · 0.85

Calls 15

stopWorkflowAgentFunction · 0.85
startWorkflowAgentFunction · 0.85
appendWorkflowLogFunction · 0.85
workflowGetAppStateFunction · 0.85
assembleToolPoolFunction · 0.85
createProgressTrackerFunction · 0.85
isBuiltInAgentFunction · 0.85
runWithAgentContextFunction · 0.85
runAgentFunction · 0.85

Tested by

no test coverage detected