Repository navigation
Expand file tree
/
Copy pathpubspec.yaml
More file actions
269 lines (253 loc) · 11.9 KB
/
Copy pathpubspec.yaml
File metadata and controls
269 lines (253 loc) · 11.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
name: chuk_chat
description: "Chuk Chat — AI chat client for all platforms."
publish_to: 'none'
version: 1.0.113
environment:
sdk: ^3.13.0 # tray_manager 0.7 / nativeapi 0.3 need Dart 3.13 (Flutter 3.47)
# Dependency ceilings — what is held back and why
# ------------------------------------------------
# CI pins Flutter 3.47.0 (Dart 3.13) on every platform (subosito/flutter-action,
# plus two git-clone jobs at tag 3.47.0). The old re_editor 0.8.0 ceiling that
# forced Flutter 3.41.4 is GONE: vendor/markdraw was moved to re_editor ^0.10.0
# (one removed `sperator` param, now `leadingDivider`), so the whole Dart-3.12
# batch — pdf, printing, sqflite, sqflite_common_ffi, pdfrx, record 7,
# flutter_foreground_task 11 — now updates. Do not float CI on `stable`.
#
# The four Android-toolchain caps (dynamic_color, flutter_secure_storage,
# permission_handler, app_links) are LIFTED. android/app/build.gradle.kts now
# sets compileSdk = 37 (was flutter's default 36), which satisfies
# flutter_secure_storage 11 and permission_handler_android 14. AGP 8.13.2 /
# Gradle 8.14 build against 37 fine — no AGP 9 migration was needed. dynamic_color
# 2.x still hands its palette back as a `material_ui` ColorScheme; main.dart
# imports material_ui directly and converts it to a Flutter ColorScheme.
#
# Merge note: the Agents tree capped dynamic_color <2.0.0, permission_handler
# <13.0.0 and flutter_secure_storage at ^10.0.0. All three caps are dropped here
# in favour of upstream's higher versions — compileSdk 37 above is exactly the
# reason those caps existed, and the app ships on upstream's versions.
# file_picker 13 (`PlatformFile.length()` is now `Future<int?>`) needed the
# vendored markdraw's `file_picker <13` cap widened to `<14`; markdraw calls no
# file_picker API (see vendor/markdraw/lib/src/ui/markdraw_file_handler.dart).
# tray_manager 0.7 is built on nativeapi: SystemTrayService uses the native
# TrayIcon/Menu API, not the deprecated `legacy.dart` bridge.
#
# Deep transitive deps left at older versions are capped by their parents, not by
# us: material_color_utilities and test_api (pinned by the Flutter SDK),
# qr ^3 (pretty_qr_code), isolate_manager 4.x (re_editor), equatable ^2
# (fl_chart), dbus 0.7 (file_picker_linux, geolocator_linux), gsettings
# (geolocator_linux). Forcing these via dependency_overrides breaks the parent, so they
# stay until the parent widens. Verified with a release APK build (BUILD SUCCESSFUL).
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
# Pinned by flutter_localizations; `any` lets pub pick the matching build.
intl: any
cupertino_icons: ^2.0.0
flutter_riverpod: ^3.4.2 # State management for chat runtime / streaming (perf re-architecture)
# Material You / system accent colour (Android 12+, some desktops).
dynamic_color: ^2.1.0
# dynamic_color 2.x surfaces its palette as a material_ui ColorScheme; we
# import it directly in main.dart to convert to a Flutter ColorScheme.
material_ui: ^1.1.1
web: ^1.1.1
shared_preferences: ^2.5.3
http: ^1.5.0
dio: ^5.4.0
flutter_svg: ^2.2.2
file_picker: ^13.1.0 # federated rewrite; drops the win32 ^5 pin that blocked share_plus/package_info_plus/geolocator
image_picker: ^1.1.2
uuid: ^4.5.2
permission_handler: ^13.0.1
supabase_flutter: ^2.10.3
app_links: ^7.2.1
crypto: ^3.0.6
cryptography: ^2.7.0
flutter_secure_storage: ^11.0.0
share_plus: ^13.3.0
package_info_plus: ^10.2.1
record: ^7.1.1 # audio recording (voice input)
# The Android assistant surface reuses `record` for its microphone.
# Endpointing is energy-based on that PCM stream — the `vad` package
# (Silero ONNX) caps `record` at ^6.1.2 and would force this app back a
# major version on its whole voice-input path. The surface answers in
# writing, so no speech-synthesis package is pulled in.
url_launcher: ^6.3.0
path_provider: ^2.1.6 # Agents needs >=2.1.6; upstream asked for ^2.1.4
markdown_widget: ^2.3.2+8
markdown: ^7.3.0
flutter_math_fork: ^0.7.2
highlight: ^0.7.0
web_socket_channel: ^3.0.1
archive: ^4.0.7
yaml: ^3.1.3 # SKILL.md frontmatter — already in the tree via pdfrx
desktop_drop: ^0.8.0
tray_manager: ^0.8.0
window_manager: ^0.5.1
image: ^4.8.0 # 4.9.x needs xml ^7 — worth a try now that enough_mail is gone
pdfx: ^2.8.0 # PDF viewing (mobile/macOS — used by workspace viewer)
pdfrx: ^2.2.24 # Cross-platform PDF viewing incl. Linux/Windows (PDFium)
flutter_foreground_task: ^11.0.1 # Keep streaming alive when app backgrounded
flutter_local_notifications: ^22.0.0 # Completion notifications with deep linking
pasteboard: ^0.5.0
flutter_map: ^8.3.0 # Map widget for displaying locations/routes
latlong2: ^0.10.1 # Coordinate math (LatLng type) — flutter_map 8.3.1 widened to >=0.9.1 <0.11.0
fl_chart: ^1.1.1 # Chart rendering (bar, line, pie, scatter, radar)
geolocator: ^14.0.3
add_2_calendar: ^3.1.1 # Native calendar event creation
timezone: ^0.11.0 # Timezone data for notifications
pretty_qr_code: ^3.6.0
sqflite: ^2.4.3 # local chat cache (native platforms)
sqflite_common_ffi: ^2.4.2 # SQLite on desktop (Linux/Windows/macOS)
path: ^1.9.1
sqlite3_flutter_libs: ^0.6.0+eol
# System-WebView renderer for HTML artifacts on
# Android/iOS/macOS/Windows/Web. Linux has no stable federation for
# this plugin, so the desktop Linux build falls back to a source view.
# A separate "-full" Linux artifact built via CI injects `webview_cef`
# (CEF/Chromium) for real HTML rendering. See .github/workflows and
# ci/linux_full/ for the swap-in files.
flutter_inappwebview: ^6.1.5
# Native cross-platform Excalidraw-compatible drawing widget. Replaces
# the old WebView-based renderer — works on every Flutter platform
# without bundling Chromium or shipping the official Excalidraw bundle.
#
# Vendored from pub.dev markdraw 0.2.0 (see vendor/markdraw/). Patched
# to relax file_picker / google_fonts constraints and to no-op
# MarkdrawFileHandler (incompatible with file_picker ^11 API). Upgrading
# markdraw requires re-vendoring + re-applying these patches.
markdraw:
path: vendor/markdraw
# OpenUI Lang (thesysdev/openui spec v0.5) parser and renderer, vendored
# from mtwichel/openui_flutter at e1525eed (MIT, Very Good Ventures).
# Patched for the canonical v0.5 language; see vendor/openui*/NOTICE.md
# and docs/OPENUI.md. The chuk_chat components live in lib/openui/.
openui_core:
path: vendor/openui_core
openui:
path: vendor/openui
# --- Agents platform -------------------------------------------------------
# Everything below came in with the Agents tree. Nothing above depends on it;
# the app builds without the Agents feature, but these are what it needs when
# FEATURE_AGENTS is on.
# Material motion: the container transform that grows a chat out of its
# inbox row, and the shared-axis transition between filters. Used by the
# expressive UI layer (lib/ui/expressive/**).
animations: ^3.0.0
# The agent's screen on phones and tablets: noVNC runs inside this WebView
# and decodes Tight/ZRLE, which the pure-Dart client cannot (bead
# cowork-dvsw). The official plugin, not an alternative: it needs nothing
# more than a page load, a JavaScript channel and a navigation guard, and it
# uses the system WebView, so it adds no engine to the APK. Desktop keeps
# the Dart client below — this plugin has no Linux implementation.
webview_flutter: ^4.14.1
# Vendored fork of flutter_rfb 0.6.2 (third_party/flutter_rfb): the clipboard
# sync is stripped out so the VNC tunnel carries strictly RFB derived from
# user input + the render loop — no local-clipboard exfil into the sandbox and
# no writing the sandbox clipboard back onto the host. dart_rfb stays from pub.
flutter_rfb:
path: third_party/flutter_rfb
# Direct dependency so app tests can exercise the Tight decoder
# (third_party/dart_rfb) against real x11vnc vectors.
dart_rfb:
path: third_party/dart_rfb
# The QR scanner the mobile pairing screen opens with. Android/iOS/macOS/web
# only — there is no Linux or Windows implementation, so every use is gated
# on the platform and the code field is what desktop gets.
mobile_scanner: ^7.4.0
# Push wake-up for the agent host.
firebase_core: ^5.0.0
firebase_messaging: ^17.0.0
# Voice call (FEATURE_VOICE_CALL, owner-only test, off by default): the
# LiveKit room the voice worker joins. lib/voice/ is the only user. Pulls in
# flutter_webrtc; builds on Linux and Android.
livekit_client: ^2.13.0
flutter_webrtc: ^1.6.2+hotfix.4 # Per-track playback volume on desktop/iOS.
# The agent calls the user (FEATURE_VOICE_CALL, spec §6.3): the incoming-call
# screen over the lock screen, and the self-managed ConnectionService whose
# phoneCall + microphone foreground service keeps a call's microphone alive
# in the background. lib/voice/incoming/ is the only user.
flutter_callkit_incoming: ^3.1.6
audioplayers: ^6.8.1
# super_native_extensions (via markdraw -> super_clipboard) caps device_info_plus
# at <12.0.0, which pins win32 to 5.x and blocks file_picker 12, share_plus 13,
# package_info_plus 10 and geolocator 14.0.3. It only reads
# `AndroidDeviceInfo.version.sdkInt`, an API unchanged in 12 and 13, so the cap is
# stale rather than real. Drop this override once super_clipboard widens its range.
dependency_overrides:
device_info_plus: ^13.2.0
dev_dependencies:
flutter_test:
sdk: flutter
integration_test:
sdk: flutter
flutter_driver:
sdk: flutter
flutter_lints: ^6.0.0
shelf: ^1.4.2
shelf_web_socket: ^3.0.0
# Agent driver (tool/agent_driver): talks to the app's VM service.
vm_service: ^15.0.0
flutter:
uses-material-design: true
assets:
- assets/logo.svg
- assets/wordmark.svg
- assets/icons/
- assets/icons/hugeicons/
# The agent's-screen viewer page and the noVNC client it drives. Served to
# the WebView by the loopback server in lib/widgets/vnc_local_server.dart,
# never fetched from the network. Asset folders are not recursive, so
# every subfolder of the vendored library is listed by hand.
- assets/vnc/
- assets/novnc/
- assets/novnc/core/
- assets/novnc/core/crypto/
- assets/novnc/core/decoders/
- assets/novnc/core/input/
- assets/novnc/core/util/
- assets/novnc/vendor/pako/
- assets/novnc/vendor/pako/lib/utils/
- assets/novnc/vendor/pako/lib/zlib/
- assets/icons/chuk_chat_tray_brand.png
- assets/mcp_icons/
# Lab logos in front of each model in the model menu. The same SVGs as the
# website (chuk.chat static/logos/models/), drawn as one-colour silhouettes.
- assets/model_logos/
- web/icons/Icon-512.png
- windows/runner/resources/app_icon.ico
# The three selectable chat fonts, bundled locally (previously fetched at
# runtime by google_fonts, which baked a ~7.8 MB font metadata table into the
# release snapshot). Arimo and JetBrains Mono are variable fonts (the wght
# axis covers every weight); Merriweather ships as static regular/bold weights.
fonts:
- family: Arimo
fonts:
- asset: assets/fonts/Arimo-wght.ttf
- asset: assets/fonts/Arimo-Italic-wght.ttf
style: italic
- family: Merriweather
fonts:
- asset: assets/fonts/Merriweather-Regular.ttf
- asset: assets/fonts/Merriweather-Bold.ttf
weight: 700
- asset: assets/fonts/Merriweather-Italic.ttf
style: italic
- asset: assets/fonts/Merriweather-BoldItalic.ttf
weight: 700
style: italic
- family: JetBrains Mono
fonts:
- asset: assets/fonts/JetBrainsMono-wght.ttf
- asset: assets/fonts/JetBrainsMono-Italic-wght.ttf
style: italic
msix_config:
display_name: chuk_chat
publisher_display_name: chuk Development
identity_name: chuk.chat
publisher: CN=chuk Development
msix_version: 1.0.0.0
logo_path: web/icons/Icon-512.png
capabilities: internetClient
store: false