feat(ai): use Claude Haiku 5.5 (free) and Sonnet 5.5 (paid) (#2869) master
* feat(ai): use Claude Haiku 5.5 for free-tier workspaces Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PrErTUMXrWWrwj9e8adRzY * feat(ai): use Claude Sonnet 5.5 for paid workspaces Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PrErTUMXrWWrwj9e8adRzY * fix(dashboard): force native structured output for AI filters Newer Claude models reject the forced tool_choice the AI SDK's JSON-tool fallback relies on; the upstream 400 surfaced client-side as an empty stream ("Type validation failed: Value: undefined"). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PrErTUMXrWWrwj9e8adRzY * fix(dashboard): pass AI filter system prompt via instructions AI SDK v7 rejects system messages inside `messages` (AI_InvalidPromptError), which surfaced client-side as an empty stream. Also reverts the speculative structuredOutputMode override from 6c32f6a, which wasn't the cause. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PrErTUMXrWWrwj9e8adRzY --------- Co-authored-by: Claude <noreply@anthropic.com>