Task/Issue URL:
https://app.asana.com/1/137249556945/project/414730916066338/task/1215746473639356
Tech Design URL (if applicable):
### Description
Two unified-input Maestro flows started failing because duck.ai
copy/config changed:
- The duck.ai agreement prompt now shows a **Continue** CTA instead of
**Agree**.
- The Duck.ai model picker now offers **Claude Haiku 2.5** where it used
to list **GPT-4o mini**.
Changes:
- `accept_duckai_agreement.yaml` — match either label via a regex
alternation (`.*(Agree|Continue).*`) on both the wait and the tap, so
the shared agreement step stays green whichever CTA the WebView renders.
Both steps remain `optional`.
- `flow_duckai_model_reasoning.yaml` — assert/select **Claude Haiku
2.5** instead of **GPT-4o mini**. The model chip's short name is
backend/remote-config driven (it isn't in the repo and isn't a simple
truncation), so rather than hardcoding Haiku's chip label we now assert
the chip moved off the default **GPT-5** after selecting the new model.
The rest of the flow (switching back to GPT-5 mini, exercising the
reasoning picker) is unchanged.
### Steps to test this PR
_UnifiedInput: change duck.ai model and reasoning effort × omnibar
positions_
- [ ] Run `flow_duckai_model_reasoning.yaml` across the omnibar
positions and confirm it passes against a build serving the current
model catalog (picker lists "Claude Haiku 2.5"; chip leaves "GPT-5"
after selection).
_duck.ai agreement_
- [ ] Run a unified-input flow that hits `accept_duckai_agreement.yaml`
on a fresh profile and confirm the agreement is accepted whether the CTA
reads "Agree" or "Continue".
### UI changes
| Before | After |
| ------ | ----- |
| No UI changes | No UI changes |