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>
67 lines
1.0 KiB
YAML
67 lines
1.0 KiB
YAML
name: new_budget
|
|
description: "Personal finance tracking app with multi-profile support."
|
|
publish_to: 'none'
|
|
version: 1.0.0+1
|
|
|
|
environment:
|
|
sdk: ^3.12.0
|
|
|
|
dependencies:
|
|
flutter:
|
|
sdk: flutter
|
|
flutter_localizations:
|
|
sdk: flutter
|
|
|
|
# State management
|
|
flutter_riverpod: ^3.1.0
|
|
riverpod_annotation: ^4.0.0
|
|
|
|
# Database
|
|
drift: ^2.26.1
|
|
drift_flutter: ^0.3.0
|
|
|
|
# Navigation
|
|
go_router: ^17.2.3
|
|
|
|
# Immutable entities
|
|
freezed_annotation: ^3.0.0
|
|
json_annotation: ^4.9.0
|
|
|
|
# Formatting
|
|
intl: ^0.20.2
|
|
|
|
# UUID generation
|
|
uuid: ^4.5.1
|
|
|
|
# Icons
|
|
cupertino_icons: ^1.0.8
|
|
|
|
# Fonts
|
|
google_fonts: ^8.1.0
|
|
|
|
# Charts
|
|
fl_chart: ^1.2.0
|
|
|
|
# AI fallback (DeepSeek)
|
|
http: ^1.2.2
|
|
flutter_secure_storage: ^9.2.2
|
|
connectivity_plus: ^6.1.0
|
|
|
|
dev_dependencies:
|
|
flutter_test:
|
|
sdk: flutter
|
|
|
|
# Lints
|
|
flutter_lints: ^6.0.0
|
|
|
|
# Code generation
|
|
build_runner: ^2.4.15
|
|
riverpod_generator: ^4.0.0+1
|
|
drift_dev: ^2.26.1
|
|
freezed: ^3.0.0
|
|
json_serializable: ^6.9.5
|
|
|
|
flutter:
|
|
uses-material-design: true
|
|
generate: true
|