Add dap_tool_image_input feature flag for DAP tool-read images
What does this MR do and why?
Adds the dap_tool_image_input feature flag (beta, default off, instance-scoped for the gateway) and pushes it to the Duo Workflow Service with the other Duo Workflow flags.
The flag gates tool-read image support in Duo Agent Platform flows: when on, the gateway converts read_file image envelopes into model-visible image blocks (local files and issue/MR uploads) and advertises the capability in the tool descriptions. When off, image reads keep today's refusal behavior. The gateway only sees flags this helper explicitly forwards, so the push line is as load-bearing as the definition.
Gateway-side gating (already implemented, merges independently since the flag fails closed there):
- gitlab-org/modelops/applied-ml/code-suggestions/ai-assist!6792 (flag gate)
- gitlab-org/modelops/applied-ml/code-suggestions/ai-assist!6791 (core conversion)
- gitlab-org/modelops/applied-ml/code-suggestions/ai-assist!6815 (upload reading)
Rollout is tracked in ai-assist#2806; the feature is ai-assist#2819 under epic &58 (closed).
MR acceptance checklist
Evaluated against the MR acceptance checklist.
Live verification (local GDK, 2026-09-08)
I cherry-picked this commit onto a local GDK, restarted Rails, and probed the header arriving at the Duo Workflow Service across sessions: with the flag disabled, x-gitlab-enabled-feature-flags carries the usual pushed set without dap_tool_image_input; after Feature.enable(:dap_tool_image_input), the flag arrives and the gateway's per-request context picks it up. The gateway-side gating (ai-assist!6792) responded correctly on both sides of the flip, with no service restart needed.