The question's text stands above its buttons: + attaching files, who answers as a chip (Effort now a submenu of it), the conversations kept, and the microphone while nothing is written, which gives way to the button sending. What goes along is one row above the text, opening a sheet with how far the assistant looks and the parts to send. A conversation's follow-up has the same + and microphone. Files are read on the device: an image goes as itself to an assistant that reads images, a PDF as its pages' text, a text file as its text, each cut at 20,000 characters and labelled by its name after the question. Voice is the device's own speech recognition (speech_to_text: Android, Apple, Windows; none on Linux), in the app's language, the microphone asked for once tapped. The privacy page says that Android's recogniser may send the sound to Google or the phone's maker. The field's Check goes, with its LanguageTool sheet (amending ADR 0024); the editors' underlining and Why? stay. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
257 lines
11 KiB
YAML
257 lines
11 KiB
YAML
name: halkyon_learn_flutter
|
|
description: A new Flutter project with Serverpod.
|
|
|
|
# The following line prevents the package from being accidentally published to
|
|
# pub.dev using `pub publish`. This is preferred for private packages.
|
|
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
|
|
|
# The following defines the version and build number for your application.
|
|
# A version number is three numbers separated by dots, like 1.2.43
|
|
# followed by an optional build number separated by a +.
|
|
# Both the version and the builder number may be overridden in flutter
|
|
# build by specifying --build-name and --build-number, respectively.
|
|
# In Android, build-name is used as versionName while build-number used as versionCode.
|
|
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
|
|
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
|
|
# Read more about iOS versioning at
|
|
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
|
version: 0.22.0+25
|
|
|
|
environment:
|
|
sdk: '^3.13.0'
|
|
flutter: '^3.44.4'
|
|
|
|
resolution: workspace
|
|
|
|
dependencies:
|
|
# Our fork of the editor's main branch, moved to win32 v6 so the app can stay in the pub
|
|
# workspace, pinned to a signed commit of its branch halkyon/win32-v6.
|
|
appflowy_editor:
|
|
git:
|
|
url: https://code.halkyon.app/project-halkyon/appflowy-editor.git
|
|
ref: 81c3006c74e789ed2e470b8612529541b358fd26
|
|
# Anki packages are zip files.
|
|
archive: ^4.0.7
|
|
# Sounds in content (pronunciations): one package for all five platforms; on
|
|
# Linux it plays through GStreamer, whose development files a Linux build needs.
|
|
audioplayers: ^6.8.1
|
|
clock: ^1.1.3
|
|
crypto: ^3.0.7
|
|
# The following adds the Cupertino Icons font to your application.
|
|
# Use with the CupertinoIcons class for iOS style icons.
|
|
cupertino_icons: ^1.0.5
|
|
# The Pomodoro timer on Linux talks to the desktop's notification server over
|
|
# the session bus; the version the network packages bring along already.
|
|
dbus: ^0.7.15
|
|
equatable: ^3.0.0
|
|
expressive_loading_indicator: ^0.0.1
|
|
# Saves exports on Android and iOS, where file_selector has no save dialog
|
|
# (the system's through it: Android's Storage Access Framework); the editor
|
|
# brings this version along already.
|
|
file_picker: ^13.1.0
|
|
# Picks the files to import (and later the images to add), and saves exports
|
|
# on the desktop: flutter.dev's own.
|
|
file_selector: ^1.1.0
|
|
flutter:
|
|
sdk: flutter
|
|
flutter_bloc: ^9.1.1
|
|
flutter_localizations:
|
|
sdk: flutter
|
|
flutter_math_fork: ^0.7.4
|
|
# Keeps the token of a Jellyfin server in the system's keyring; Serverpod's
|
|
# sign-in keeps its session there with it already.
|
|
flutter_secure_storage: ^10.0.0
|
|
fractional_indexing_dart: ^1.0.7
|
|
# Pinned exactly: every device on one app version must compute the same
|
|
# schedules.
|
|
fsrs: 2.0.1
|
|
go_router: ^18.0.2
|
|
# What every Halkyon app is built around (a shared package): the instances a
|
|
# device keeps accounts on, signing in through halkyon_base, each person's
|
|
# data opened and closed, and syncing it, with texts of its own.
|
|
halkyon_app:
|
|
path: ../../../packages/halkyon_app
|
|
# The client side of halkyon_base: people's public profiles, which the
|
|
# instance's register keeps (ADR 0016).
|
|
halkyon_base_client:
|
|
path: ../../../packages/halkyon_base_client
|
|
# Halkyon's low-level parts (a shared package): the queues the repositories
|
|
# run their work in (SerialQueue, CoalescingRunner).
|
|
halkyon_core:
|
|
path: ../../../packages/halkyon_core
|
|
halkyon_learn_client:
|
|
path: ../halkyon_learn_client
|
|
# Language models' APIs (a shared package, ADR 0021, D15): the protocols a
|
|
# person's own assistant is asked in, which their settings keep.
|
|
halkyon_llm:
|
|
path: ../../../packages/halkyon_llm
|
|
# The device's half of signing in with OpenID Connect (ADR 0023): the
|
|
# browser that SimpleLogin's sign-in opens, and on Linux and Windows the
|
|
# loopback it comes back to, which the app builds with its name.
|
|
halkyon_oidc_flutter:
|
|
path: ../../../packages/halkyon_oidc_flutter
|
|
# Halkyon's look, shared by its apps (a shared package): the theme, the bundled
|
|
# Noto Sans, window sizes and the widgets every screen is built of.
|
|
halkyon_ui:
|
|
path: ../../../packages/halkyon_ui
|
|
# Anki's fields are HTML; the editor brings this parser along already.
|
|
html: ^0.15.6
|
|
# Talks to Jellyfin servers; Serverpod's client brings it along already.
|
|
http: ^1.6.0
|
|
intl: ^0.20.3
|
|
lucide_icons_flutter: ^3.1.20
|
|
material_ui: ^1.5.0
|
|
# Cuts Japanese into words on the device (ADR 0012): MeCab 0.996 (BSD), which
|
|
# the package's build hook compiles from its C++, so every build, `flutter
|
|
# test` too, needs a C++ compiler; its dictionary, IPADIC, comes from the
|
|
# instance once the person asks for it.
|
|
mecab_for_dart: ^2.0.5
|
|
# Videos from a Jellyfin server on Linux and Windows, where video_player has
|
|
# no player: libmpv (MIT; libmpv LGPL), the system's on Linux (a Linux build
|
|
# needs libmpv-dev), bundled on Windows. Used directly rather than behind
|
|
# video_player, which can't keep libmpv from drawing the video's own
|
|
# subtitles. Not fvp, whose libmdk is closed.
|
|
media_kit: ^1.2.6
|
|
media_kit_libs_linux: ^1.2.1
|
|
media_kit_libs_windows_video: ^1.0.11
|
|
media_kit_video: ^2.0.1
|
|
package_info_plus: ^10.2.2
|
|
path: ^1.9.1
|
|
# SVG path data, for the strokes KanjiVG draws characters with.
|
|
path_parsing: ^1.1.0
|
|
path_provider: ^2.1.6
|
|
# Modern Anki packages are zstd-compressed, every frame without its content
|
|
# size, which upstream's v1.0.0 refuses. Our fork decodes them, pinned to a
|
|
# signed commit of its branch halkyon/unknown-content-size; back to upstream
|
|
# once it decodes them too.
|
|
pdfrx: ^2.6.5
|
|
pure_zstd:
|
|
git:
|
|
url: https://code.halkyon.app/project-halkyon/pure-zstd.git
|
|
ref: 596b63d5741d479073fbfc78377cc7dbdd342da3
|
|
serverpod_auth_idp_flutter: 4.0.4
|
|
serverpod_flutter: 4.0.4
|
|
serverpod_offline_sync_client: 0.0.10
|
|
# A question spoken to the assistant (ADR 0021, D67): the device's own speech
|
|
# recognition (Android's, Apple's, Windows'); none on Linux.
|
|
speech_to_text: ^7.5.0
|
|
# Anki collections are SQLite databases (the sync engine already bundles it).
|
|
sqlite3: ^3.6.0
|
|
url_launcher: ^6.3.2
|
|
# Videos from a Jellyfin server elsewhere: flutter.dev's player (ExoPlayer on
|
|
# Android, AVPlayer on iOS and macOS).
|
|
video_player: ^2.14.1
|
|
youtube_player_iframe: ^6.0.2
|
|
|
|
dev_dependencies:
|
|
fake_async: ^1.3.3
|
|
# The flags halkyon_app draws where an instance keeps its data, which the
|
|
# whole-app tests look for.
|
|
flag: ^7.1.0
|
|
# Used for agents to drive the app through the Dart MCP
|
|
flutter_driver:
|
|
sdk: flutter
|
|
# Writes the app's icons for every platform from assets/icon/halkyon_learn_icon.png,
|
|
# run through the repository's tool/app_icons.py (see the flutter_launcher_icons
|
|
# section below).
|
|
flutter_launcher_icons: ^0.14.4
|
|
flutter_test:
|
|
sdk: flutter
|
|
# Checks on a device what no widget test can see (integration_test/).
|
|
integration_test:
|
|
sdk: flutter
|
|
# The sync tests (test/sync/) sign in like the app and read the server's database.
|
|
postgres: ^3.5.16
|
|
serverpod_auth_core_client: 4.0.4
|
|
yaml: ^3.1.4
|
|
|
|
# For information on the generic Dart part of this file, see the
|
|
# following page: https://dart.dev/tools/pub/pubspec
|
|
|
|
# The following section is specific to Flutter.
|
|
flutter:
|
|
# Generates AppLocalizations from lib/l10n (see l10n.yaml).
|
|
generate: true
|
|
|
|
# The following line ensures that the Material Icons font is
|
|
# included with your application, so that you can use the icons in
|
|
# the material Icons class.
|
|
uses-material-design: true
|
|
|
|
# To add assets to your application, add an assets section, like this:
|
|
# assets:
|
|
# - images/a_dot_burr.jpeg
|
|
# - images/a_dot_ham.jpeg
|
|
|
|
# An image asset can refer to one or more resolution-specific "variants", see
|
|
# https://flutter.dev/assets-and-images/#resolution-aware.
|
|
|
|
# For details regarding adding assets from package dependencies, see
|
|
# https://flutter.dev/assets-and-images/#from-packages
|
|
assets:
|
|
- assets/config.json
|
|
# What each release changed, one file a release and language
|
|
# (<version>.<language>.txt), drafted by tool/release.dart and edited
|
|
# (Halkyon Train's ADR 0030, D61): halkyon_app's What's new shows them.
|
|
- assets/whats_new/
|
|
# The kingfisher, Halkyon's emblem: atop the navigation rail and on the launch
|
|
# screen.
|
|
- assets/icon/halkyon_icon.png
|
|
# The app's icon (ADR 0031), the window's on Linux, and Lucide's notice for it.
|
|
- assets/icon/halkyon_learn_icon.png
|
|
- assets/icon/LICENSE-lucide.txt
|
|
# Region maps for map questions (see assets/maps/ATTRIBUTION.md).
|
|
- assets/maps/japan_prefectures.geojson
|
|
- assets/maps/world_countries.geojson
|
|
- assets/maps/LICENSE-CLDR.txt
|
|
# The CJK fonts' licence, for the licence list (see assets/fonts/ATTRIBUTION.md).
|
|
- assets/fonts/OFL-NotoSansCJK.txt
|
|
# The licences of MeCab, its dictionary IPADIC and Ve's rules, which cut Japanese
|
|
# into words on the device (ADR 0012).
|
|
- assets/mecab/
|
|
# How kanji and kana are written, from KanjiVG (see assets/kanjivg/ATTRIBUTION.md).
|
|
- assets/kanjivg/
|
|
# How Chinese characters are written, from Make Me a Hanzi (see
|
|
# assets/makemeahanzi/ATTRIBUTION.md), and the Hangul letters.
|
|
- assets/makemeahanzi/
|
|
- assets/hangul/
|
|
|
|
# The CJK fonts, the same on every device and never fetched: Noto Sans JP, SC, TC
|
|
# and KR for Japanese, Chinese and Korean, behind halkyon_ui's Noto Sans, in the
|
|
# order a studyset's language asks for (halkyon_ui's appFontFallbackFor, which
|
|
# names them by these families). Each file holds every weight (variable fonts).
|
|
fonts:
|
|
- family: Noto Sans JP
|
|
fonts:
|
|
- asset: assets/fonts/NotoSansJP-Variable.otf
|
|
- family: Noto Sans SC
|
|
fonts:
|
|
- asset: assets/fonts/NotoSansSC-Variable.otf
|
|
- family: Noto Sans TC
|
|
fonts:
|
|
- asset: assets/fonts/NotoSansTC-Variable.otf
|
|
- family: Noto Sans KR
|
|
fonts:
|
|
- asset: assets/fonts/NotoSansKR-Variable.otf
|
|
|
|
# The app's icons, written by the repository's tool/app_icons.py: it prepares the
|
|
# images derived from Lucide's graduation cap in build/icons/ first, then runs `dart
|
|
# run flutter_launcher_icons` with this. Android: an adaptive icon, the cap on white
|
|
# for each launcher to cut to its shape, and the square one older Androids show. iOS: without
|
|
# transparency, as Apple requires. macOS: the rounded tile on Apple's grid. Windows:
|
|
# the rounded tile (tool/app_icons.py then writes its .ico with every size).
|
|
flutter_launcher_icons:
|
|
image_path: "assets/icon/halkyon_learn_icon.png"
|
|
android: true
|
|
adaptive_icon_background: "#ffffff"
|
|
adaptive_icon_foreground: "assets/icon/halkyon_learn_icon.png"
|
|
ios: true
|
|
remove_alpha_ios: true
|
|
background_color_ios: "#ffffff"
|
|
macos:
|
|
generate: true
|
|
image_path: "build/icons/macos.png"
|
|
windows:
|
|
generate: true
|
|
image_path: "build/icons/rounded.png"
|
|
icon_size: 256
|