Switch AI notification parsing from OpenRouter to DeepSeek API

Replace the OpenRouter HTTP client with a DeepSeek client:
- data/openrouter/ -> data/deepseek/; OpenRouterClient -> DeepSeekClient
  (+ DeepSeekCompletion / DeepSeek*Exception)
- base URL api.deepseek.com, drop OpenRouter-only headers
- DeepSeek has no strict json_schema: use response_format json_object
  and rely on the prompt for shape (ai_schema.dart removed)
- secure-storage key openrouter_api_key -> deepseek_api_key
- default model deepseek/deepseek-v4-flash -> deepseek-chat
- l10n strings, test dart-defines (DEEPSEEK_API_KEY/_TEST_MODEL), docs

Also bundles in-progress findBodyIgnoreRule (body-level ignore rules
applied before the AI call) already present in the working tree.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-28 00:23:38 +03:00
co-authored by Claude Opus 4.8
parent 76f301b758
commit ab66aebc5e
21 changed files with 230 additions and 147 deletions
+1 -1
View File
@@ -42,7 +42,7 @@ dependencies:
# Charts
fl_chart: ^1.2.0
# AI fallback (OpenRouter)
# AI fallback (DeepSeek)
http: ^1.2.2
flutter_secure_storage: ^9.2.2
connectivity_plus: ^6.1.0