Draft: Resolve catalog_ref subagents and scope MCP tools in Flows

What does this MR do?

This branch covers two related areas of AI Catalog / Duo Workflow work:

AI Catalog catalog_ref subagents

  • Resolve catalog_ref subagents and scope their MCP tools in Flows
  • Add resolved_definition field to AI Catalog flow versions
  • Fix chat environment and MCP scoping for catalog_ref subagents
  • Normalize subsessionId to subsession_id in Duo workflow messages
  • Scope custom MCP servers on catalog_ref subagents
  • Add identifier slug field to AI Catalog agents

Fire-and-forget HTTP endpoint for Duo Workflow (POC)

  • Add a fire-and-forget HTTP endpoint in workhorse that starts a Duo Workflow over gRPC and streams every action DWS sends back as newline-delimited JSON over a single chunked HTTP response, without expecting the caller to talk back (unlike the existing WebSocket flow).
  • Add the corresponding Rails pre-authorization endpoint (ee/lib/api/ai/duo_workflows/workflows.rb, :direct action).

This also temporarily installs duo-cli from gitlab-lsp!3701 for testing purposes.

POC scope/limitations

The fire-and-forget HTTP endpoint is a proof of concept:

  • No distributed locking, reconnect/resume, or graceful shutdown tracking.
  • No request body size limit on the incoming start-workflow request.
  • No tests yet for the new Rails :direct action or the workhorse HTTP handler.

References

/assign me

/milestone %19.2

Merge request reports

Loading
Loading