neoagent 2.3.1-beta.2 → 2.3.1-beta.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (264) hide show
  1. package/.env.example +39 -0
  2. package/README.md +2 -0
  3. package/docs/capabilities.md +2 -2
  4. package/docs/configuration.md +13 -5
  5. package/docs/integrations.md +4 -1
  6. package/flutter_app/.metadata +42 -0
  7. package/flutter_app/README.md +21 -0
  8. package/flutter_app/analysis_options.yaml +32 -0
  9. package/flutter_app/android/app/build.gradle.kts +109 -0
  10. package/flutter_app/android/app/src/debug/AndroidManifest.xml +7 -0
  11. package/flutter_app/android/app/src/main/AndroidManifest.xml +147 -0
  12. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/MainActivity.kt +747 -0
  13. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/health/HealthConnectGateway.kt +280 -0
  14. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/health/HealthSyncNotifications.kt +113 -0
  15. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/health/HealthSyncPayload.kt +57 -0
  16. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/health/HealthSyncScheduler.kt +78 -0
  17. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/health/HealthSyncWorker.kt +253 -0
  18. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/health/PermissionsRationaleActivity.kt +46 -0
  19. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/recording/RecordingBootReceiver.kt +21 -0
  20. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/recording/RecordingForegroundService.kt +586 -0
  21. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/recording/RecordingStateStore.kt +78 -0
  22. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/recording/RecordingUploadClient.kt +104 -0
  23. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/widgets/AiHomeWidgetProvider.kt +457 -0
  24. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/widgets/AiWidgetStore.kt +194 -0
  25. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/widgets/VoiceLaunchWidgetProvider.kt +67 -0
  26. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/widgets/WidgetConfigActivity.kt +228 -0
  27. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/widgets/WidgetSyncScheduler.kt +72 -0
  28. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/widgets/WidgetSyncWorker.kt +186 -0
  29. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/widgets/WidgetTaskRunWorker.kt +210 -0
  30. package/flutter_app/android/app/src/main/res/drawable/launch_background.xml +12 -0
  31. package/flutter_app/android/app/src/main/res/drawable/neoagent_ai_widget_bg.xml +11 -0
  32. package/flutter_app/android/app/src/main/res/drawable/neoagent_ai_widget_task_bg.xml +8 -0
  33. package/flutter_app/android/app/src/main/res/drawable-v21/launch_background.xml +12 -0
  34. package/flutter_app/android/app/src/main/res/layout/neoagent_ai_widget.xml +138 -0
  35. package/flutter_app/android/app/src/main/res/layout/neoagent_ai_widget_task_row.xml +52 -0
  36. package/flutter_app/android/app/src/main/res/layout/neoagent_voice_widget.xml +49 -0
  37. package/flutter_app/android/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  38. package/flutter_app/android/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  39. package/flutter_app/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  40. package/flutter_app/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  41. package/flutter_app/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  42. package/flutter_app/android/app/src/main/res/values/strings.xml +12 -0
  43. package/flutter_app/android/app/src/main/res/values/styles.xml +18 -0
  44. package/flutter_app/android/app/src/main/res/values-night/styles.xml +18 -0
  45. package/flutter_app/android/app/src/main/res/xml/file_paths.xml +6 -0
  46. package/flutter_app/android/app/src/main/res/xml/neoagent_ai_widget_info.xml +12 -0
  47. package/flutter_app/android/app/src/main/res/xml/neoagent_voice_widget_info.xml +12 -0
  48. package/flutter_app/android/app/src/profile/AndroidManifest.xml +7 -0
  49. package/flutter_app/android/build.gradle.kts +24 -0
  50. package/flutter_app/android/ci-release.keystore +0 -0
  51. package/flutter_app/android/gradle/wrapper/gradle-wrapper.properties +5 -0
  52. package/flutter_app/android/gradle.properties +3 -0
  53. package/flutter_app/android/key.properties +4 -0
  54. package/flutter_app/android/settings.gradle.kts +26 -0
  55. package/flutter_app/assets/branding/app_icon_1024.png +0 -0
  56. package/flutter_app/assets/branding/app_icon_128.png +0 -0
  57. package/flutter_app/assets/branding/app_icon_192.png +0 -0
  58. package/flutter_app/assets/branding/app_icon_256.png +0 -0
  59. package/flutter_app/assets/branding/app_icon_32.png +0 -0
  60. package/flutter_app/assets/branding/app_icon_512.png +0 -0
  61. package/flutter_app/assets/branding/app_icon_64.png +0 -0
  62. package/flutter_app/assets/branding/tray_icon_template.png +0 -0
  63. package/flutter_app/lib/features/location/location_service.dart +119 -0
  64. package/flutter_app/lib/features/notifications/notification_interceptor.dart +97 -0
  65. package/flutter_app/lib/main.dart +23057 -0
  66. package/flutter_app/lib/main_app_shell.dart +1682 -0
  67. package/flutter_app/lib/main_integrations.dart +931 -0
  68. package/flutter_app/lib/main_launcher.dart +959 -0
  69. package/flutter_app/lib/main_launcher_entry.dart +5 -0
  70. package/flutter_app/lib/main_models.dart +3473 -0
  71. package/flutter_app/lib/main_shared.dart +2861 -0
  72. package/flutter_app/lib/main_theme.dart +204 -0
  73. package/flutter_app/lib/main_voice_assistant.dart +831 -0
  74. package/flutter_app/lib/src/android_apk_drop_zone.dart +32 -0
  75. package/flutter_app/lib/src/android_apk_drop_zone_stub.dart +16 -0
  76. package/flutter_app/lib/src/android_apk_drop_zone_web.dart +348 -0
  77. package/flutter_app/lib/src/android_app_installer.dart +22 -0
  78. package/flutter_app/lib/src/android_app_installer_io.dart +122 -0
  79. package/flutter_app/lib/src/android_app_installer_stub.dart +21 -0
  80. package/flutter_app/lib/src/android_launcher_bridge.dart +239 -0
  81. package/flutter_app/lib/src/app_launch_bridge.dart +29 -0
  82. package/flutter_app/lib/src/app_release_updater.dart +511 -0
  83. package/flutter_app/lib/src/backend_client.dart +1833 -0
  84. package/flutter_app/lib/src/desktop_companion.dart +2 -0
  85. package/flutter_app/lib/src/desktop_companion_actions.dart +586 -0
  86. package/flutter_app/lib/src/desktop_companion_io.dart +538 -0
  87. package/flutter_app/lib/src/desktop_companion_stub.dart +59 -0
  88. package/flutter_app/lib/src/desktop_native_bridge.dart +91 -0
  89. package/flutter_app/lib/src/desktop_screen_capture.dart +21 -0
  90. package/flutter_app/lib/src/desktop_screen_capture_io.dart +142 -0
  91. package/flutter_app/lib/src/desktop_screen_capture_stub.dart +12 -0
  92. package/flutter_app/lib/src/diagnostics_logger.dart +119 -0
  93. package/flutter_app/lib/src/health_bridge.dart +136 -0
  94. package/flutter_app/lib/src/live_voice_capture.dart +85 -0
  95. package/flutter_app/lib/src/messaging_access_summary.dart +46 -0
  96. package/flutter_app/lib/src/network/app_http_client.dart +53 -0
  97. package/flutter_app/lib/src/network/app_http_client_factory.dart +6 -0
  98. package/flutter_app/lib/src/network/app_http_client_io.dart +138 -0
  99. package/flutter_app/lib/src/network/app_http_client_stub.dart +3 -0
  100. package/flutter_app/lib/src/network/app_http_client_web.dart +94 -0
  101. package/flutter_app/lib/src/oauth_launcher.dart +33 -0
  102. package/flutter_app/lib/src/oauth_launcher_io.dart +77 -0
  103. package/flutter_app/lib/src/oauth_launcher_stub.dart +33 -0
  104. package/flutter_app/lib/src/oauth_launcher_web.dart +107 -0
  105. package/flutter_app/lib/src/recording_bridge.dart +232 -0
  106. package/flutter_app/lib/src/recording_bridge_io.dart +1019 -0
  107. package/flutter_app/lib/src/recording_bridge_stub.dart +120 -0
  108. package/flutter_app/lib/src/recording_bridge_web.dart +689 -0
  109. package/flutter_app/lib/src/recording_payloads.dart +86 -0
  110. package/flutter_app/lib/src/theme/palette.dart +81 -0
  111. package/flutter_app/lib/src/widget_bridge.dart +49 -0
  112. package/flutter_app/linux/CMakeLists.txt +128 -0
  113. package/flutter_app/linux/flutter/CMakeLists.txt +88 -0
  114. package/flutter_app/linux/flutter/generated_plugin_registrant.cc +43 -0
  115. package/flutter_app/linux/flutter/generated_plugin_registrant.h +15 -0
  116. package/flutter_app/linux/flutter/generated_plugins.cmake +31 -0
  117. package/flutter_app/linux/runner/CMakeLists.txt +26 -0
  118. package/flutter_app/linux/runner/main.cc +6 -0
  119. package/flutter_app/linux/runner/my_application.cc +144 -0
  120. package/flutter_app/linux/runner/my_application.h +18 -0
  121. package/flutter_app/linux/runner/resources/app_icon.png +0 -0
  122. package/flutter_app/macos/Flutter/Flutter-Debug.xcconfig +2 -0
  123. package/flutter_app/macos/Flutter/Flutter-Release.xcconfig +2 -0
  124. package/flutter_app/macos/Flutter/GeneratedPluginRegistrant.swift +40 -0
  125. package/flutter_app/macos/Podfile +42 -0
  126. package/flutter_app/macos/Podfile.lock +87 -0
  127. package/flutter_app/macos/Runner/AppDelegate.swift +576 -0
  128. package/flutter_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +68 -0
  129. package/flutter_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png +0 -0
  130. package/flutter_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png +0 -0
  131. package/flutter_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png +0 -0
  132. package/flutter_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png +0 -0
  133. package/flutter_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png +0 -0
  134. package/flutter_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png +0 -0
  135. package/flutter_app/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png +0 -0
  136. package/flutter_app/macos/Runner/Base.lproj/MainMenu.xib +342 -0
  137. package/flutter_app/macos/Runner/Configs/AppInfo.xcconfig +14 -0
  138. package/flutter_app/macos/Runner/Configs/Debug.xcconfig +2 -0
  139. package/flutter_app/macos/Runner/Configs/Release.xcconfig +2 -0
  140. package/flutter_app/macos/Runner/Configs/Warnings.xcconfig +13 -0
  141. package/flutter_app/macos/Runner/DebugProfile.entitlements +16 -0
  142. package/flutter_app/macos/Runner/Info.plist +36 -0
  143. package/flutter_app/macos/Runner/MainFlutterWindow.swift +19 -0
  144. package/flutter_app/macos/Runner/Release.entitlements +12 -0
  145. package/flutter_app/macos/Runner.xcodeproj/project.pbxproj +801 -0
  146. package/flutter_app/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  147. package/flutter_app/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +99 -0
  148. package/flutter_app/macos/Runner.xcworkspace/contents.xcworkspacedata +10 -0
  149. package/flutter_app/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  150. package/flutter_app/macos/RunnerTests/RunnerTests.swift +12 -0
  151. package/flutter_app/patch_strings.py +12 -0
  152. package/flutter_app/pubspec.lock +1088 -0
  153. package/flutter_app/pubspec.yaml +53 -0
  154. package/flutter_app/test/messaging_access_summary_test.dart +22 -0
  155. package/flutter_app/test/recording_payloads_test.dart +53 -0
  156. package/flutter_app/third_party/desktop_audio_capture/LICENSE +21 -0
  157. package/flutter_app/third_party/desktop_audio_capture/README.md +262 -0
  158. package/flutter_app/third_party/desktop_audio_capture/lib/audio_capture.dart +65 -0
  159. package/flutter_app/third_party/desktop_audio_capture/lib/config/mic_audio_config.dart +153 -0
  160. package/flutter_app/third_party/desktop_audio_capture/lib/config/system_adudio_config.dart +110 -0
  161. package/flutter_app/third_party/desktop_audio_capture/lib/mic/mic_audio_capture.dart +461 -0
  162. package/flutter_app/third_party/desktop_audio_capture/lib/model/audio_status.dart +91 -0
  163. package/flutter_app/third_party/desktop_audio_capture/lib/model/decibel_data.dart +106 -0
  164. package/flutter_app/third_party/desktop_audio_capture/lib/model/input_device_type.dart +219 -0
  165. package/flutter_app/third_party/desktop_audio_capture/lib/system/system_audio_capture.dart +336 -0
  166. package/flutter_app/third_party/desktop_audio_capture/linux/CMakeLists.txt +101 -0
  167. package/flutter_app/third_party/desktop_audio_capture/linux/audio_capture_plugin.cc +692 -0
  168. package/flutter_app/third_party/desktop_audio_capture/linux/include/audio_capture/audio_capture_plugin.h +35 -0
  169. package/flutter_app/third_party/desktop_audio_capture/linux/include/audio_capture/mic_capture_plugin.h +36 -0
  170. package/flutter_app/third_party/desktop_audio_capture/linux/include/desktop_audio_capture/audio_capture_plugin.h +32 -0
  171. package/flutter_app/third_party/desktop_audio_capture/linux/include/desktop_audio_capture/mic_capture_plugin.h +32 -0
  172. package/flutter_app/third_party/desktop_audio_capture/linux/mic_capture_plugin.cc +878 -0
  173. package/flutter_app/third_party/desktop_audio_capture/macos/Classes/AudioCapturePlugin.swift +27 -0
  174. package/flutter_app/third_party/desktop_audio_capture/macos/Classes/MicCapturePlugin.swift +1172 -0
  175. package/flutter_app/third_party/desktop_audio_capture/macos/Classes/SystemCapturePlugin.swift +655 -0
  176. package/flutter_app/third_party/desktop_audio_capture/macos/Resources/PrivacyInfo.xcprivacy +12 -0
  177. package/flutter_app/third_party/desktop_audio_capture/macos/desktop_audio_capture.podspec +30 -0
  178. package/flutter_app/third_party/desktop_audio_capture/pubspec.yaml +87 -0
  179. package/flutter_app/third_party/desktop_audio_capture/windows/CMakeLists.txt +105 -0
  180. package/flutter_app/third_party/desktop_audio_capture/windows/audio_capture_plugin.cpp +80 -0
  181. package/flutter_app/third_party/desktop_audio_capture/windows/audio_capture_plugin.h +31 -0
  182. package/flutter_app/third_party/desktop_audio_capture/windows/audio_capture_plugin_c_api.cpp +12 -0
  183. package/flutter_app/third_party/desktop_audio_capture/windows/include/audio_capture/audio_capture_plugin_c_api.h +23 -0
  184. package/flutter_app/third_party/desktop_audio_capture/windows/include/desktop_audio_capture/audio_capture_plugin.h +25 -0
  185. package/flutter_app/third_party/desktop_audio_capture/windows/mic_capture_plugin.cpp +1117 -0
  186. package/flutter_app/third_party/desktop_audio_capture/windows/mic_capture_plugin.h +115 -0
  187. package/flutter_app/third_party/desktop_audio_capture/windows/system_audio_capture_plugin.cpp +777 -0
  188. package/flutter_app/third_party/desktop_audio_capture/windows/system_audio_capture_plugin.h +87 -0
  189. package/flutter_app/third_party/flutter_secure_storage_linux/linux/CMakeLists.txt +30 -0
  190. package/flutter_app/third_party/flutter_secure_storage_linux/linux/flutter_secure_storage_linux_plugin.cc +215 -0
  191. package/flutter_app/third_party/flutter_secure_storage_linux/linux/include/flutter_secure_storage_linux/flutter_secure_storage_linux_plugin.h +27 -0
  192. package/flutter_app/third_party/flutter_secure_storage_linux/pubspec.yaml +20 -0
  193. package/flutter_app/tool/generate_desktop_branding.py +219 -0
  194. package/flutter_app/web/favicon.png +0 -0
  195. package/flutter_app/web/favicon.svg +12 -0
  196. package/flutter_app/web/icons/Icon-192.png +0 -0
  197. package/flutter_app/web/icons/Icon-512.png +0 -0
  198. package/flutter_app/web/icons/Icon-maskable-192.png +0 -0
  199. package/flutter_app/web/icons/Icon-maskable-512.png +0 -0
  200. package/flutter_app/web/index.html +39 -0
  201. package/flutter_app/web/manifest.json +35 -0
  202. package/flutter_app/windows/CMakeLists.txt +108 -0
  203. package/flutter_app/windows/flutter/CMakeLists.txt +109 -0
  204. package/flutter_app/windows/flutter/generated_plugin_registrant.cc +47 -0
  205. package/flutter_app/windows/flutter/generated_plugin_registrant.h +15 -0
  206. package/flutter_app/windows/flutter/generated_plugins.cmake +35 -0
  207. package/flutter_app/windows/runner/CMakeLists.txt +41 -0
  208. package/flutter_app/windows/runner/Runner.rc +121 -0
  209. package/flutter_app/windows/runner/flutter_window.cpp +533 -0
  210. package/flutter_app/windows/runner/flutter_window.h +37 -0
  211. package/flutter_app/windows/runner/main.cpp +53 -0
  212. package/flutter_app/windows/runner/resource.h +16 -0
  213. package/flutter_app/windows/runner/resources/app_icon.ico +0 -0
  214. package/flutter_app/windows/runner/runner.exe.manifest +14 -0
  215. package/flutter_app/windows/runner/utils.cpp +65 -0
  216. package/flutter_app/windows/runner/utils.h +19 -0
  217. package/flutter_app/windows/runner/win32_window.cpp +299 -0
  218. package/flutter_app/windows/runner/win32_window.h +102 -0
  219. package/lib/manager.js +231 -7
  220. package/package.json +3 -1
  221. package/server/db/database.js +68 -0
  222. package/server/http/middleware.js +50 -0
  223. package/server/http/routes.js +3 -1
  224. package/server/index.js +1 -0
  225. package/server/public/.last_build_id +1 -1
  226. package/server/public/assets/NOTICES +61 -0
  227. package/server/public/assets/fonts/MaterialIcons-Regular.otf +0 -0
  228. package/server/public/flutter_bootstrap.js +1 -1
  229. package/server/public/main.dart.js +65262 -64422
  230. package/server/routes/integrations.js +86 -0
  231. package/server/routes/memory.js +11 -2
  232. package/server/routes/screenHistory.js +46 -0
  233. package/server/routes/triggers.js +81 -0
  234. package/server/services/ai/models.js +30 -0
  235. package/server/services/ai/providers/githubCopilot.js +97 -0
  236. package/server/services/ai/providers/openai.js +2 -1
  237. package/server/services/ai/providers/openaiCodex.js +31 -0
  238. package/server/services/ai/settings.js +20 -0
  239. package/server/services/ai/systemPrompt.js +1 -1
  240. package/server/services/ai/tools.js +35 -6
  241. package/server/services/browser/controller.js +47 -3
  242. package/server/services/desktop/screenRecorder.js +172 -0
  243. package/server/services/integrations/env.js +5 -0
  244. package/server/services/integrations/github/common.js +106 -0
  245. package/server/services/integrations/github/provider.js +499 -0
  246. package/server/services/integrations/github/repos.js +1124 -0
  247. package/server/services/integrations/home_assistant/provider.js +306 -26
  248. package/server/services/integrations/manager.js +63 -7
  249. package/server/services/integrations/oauth_provider.js +13 -6
  250. package/server/services/integrations/provider_config_store.js +76 -0
  251. package/server/services/integrations/registry.js +4 -0
  252. package/server/services/integrations/trello/provider.js +744 -0
  253. package/server/services/integrations/whatsapp/provider.js +6 -2
  254. package/server/services/manager.js +22 -0
  255. package/server/services/memory/manager.js +39 -2
  256. package/server/services/skills/base_catalog.js +33 -0
  257. package/server/services/tasks/adapters/index.js +1 -0
  258. package/server/services/tasks/adapters/manual.js +12 -0
  259. package/server/services/tasks/runtime.js +1 -1
  260. package/server/services/voice/openaiClient.js +4 -1
  261. package/server/services/voice/providers.js +2 -1
  262. package/server/services/widgets/service.js +49 -4
  263. package/server/utils/local_secrets.js +56 -0
  264. package/server/utils/logger.js +37 -9
@@ -0,0 +1,144 @@
1
+ #include "my_application.h"
2
+
3
+ #include <flutter_linux/flutter_linux.h>
4
+ #ifdef GDK_WINDOWING_X11
5
+ #include <gdk/gdkx.h>
6
+ #endif
7
+
8
+ #include "flutter/generated_plugin_registrant.h"
9
+
10
+ struct _MyApplication {
11
+ GtkApplication parent_instance;
12
+ char** dart_entrypoint_arguments;
13
+ };
14
+
15
+ G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION)
16
+
17
+ // Called when first Flutter frame received.
18
+ static void first_frame_cb(MyApplication* self, FlView *view)
19
+ {
20
+ gtk_widget_show(gtk_widget_get_toplevel(GTK_WIDGET(view)));
21
+ }
22
+
23
+ // Implements GApplication::activate.
24
+ static void my_application_activate(GApplication* application) {
25
+ MyApplication* self = MY_APPLICATION(application);
26
+ GtkWindow* window =
27
+ GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application)));
28
+
29
+ // Use a header bar when running in GNOME as this is the common style used
30
+ // by applications and is the setup most users will be using (e.g. Ubuntu
31
+ // desktop).
32
+ // If running on X and not using GNOME then just use a traditional title bar
33
+ // in case the window manager does more exotic layout, e.g. tiling.
34
+ // If running on Wayland assume the header bar will work (may need changing
35
+ // if future cases occur).
36
+ gboolean use_header_bar = TRUE;
37
+ #ifdef GDK_WINDOWING_X11
38
+ GdkScreen* screen = gtk_window_get_screen(window);
39
+ if (GDK_IS_X11_SCREEN(screen)) {
40
+ const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen);
41
+ if (g_strcmp0(wm_name, "GNOME Shell") != 0) {
42
+ use_header_bar = FALSE;
43
+ }
44
+ }
45
+ #endif
46
+ if (use_header_bar) {
47
+ GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new());
48
+ gtk_widget_show(GTK_WIDGET(header_bar));
49
+ gtk_header_bar_set_title(header_bar, "NeoAgent");
50
+ gtk_header_bar_set_show_close_button(header_bar, TRUE);
51
+ gtk_window_set_titlebar(window, GTK_WIDGET(header_bar));
52
+ } else {
53
+ gtk_window_set_title(window, "NeoAgent");
54
+ }
55
+
56
+ gtk_window_set_default_size(window, 1280, 720);
57
+
58
+ g_autoptr(FlDartProject) project = fl_dart_project_new();
59
+ fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments);
60
+
61
+ FlView* view = fl_view_new(project);
62
+ GdkRGBA background_color;
63
+ // Background defaults to black, override it here if necessary, e.g. #00000000 for transparent.
64
+ gdk_rgba_parse(&background_color, "#000000");
65
+ fl_view_set_background_color(view, &background_color);
66
+ gtk_widget_show(GTK_WIDGET(view));
67
+ gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view));
68
+
69
+ // Show the window when Flutter renders.
70
+ // Requires the view to be realized so we can start rendering.
71
+ g_signal_connect_swapped(view, "first-frame", G_CALLBACK(first_frame_cb), self);
72
+ gtk_widget_realize(GTK_WIDGET(view));
73
+
74
+ fl_register_plugins(FL_PLUGIN_REGISTRY(view));
75
+
76
+ gtk_widget_grab_focus(GTK_WIDGET(view));
77
+ }
78
+
79
+ // Implements GApplication::local_command_line.
80
+ static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) {
81
+ MyApplication* self = MY_APPLICATION(application);
82
+ // Strip out the first argument as it is the binary name.
83
+ self->dart_entrypoint_arguments = g_strdupv(*arguments + 1);
84
+
85
+ g_autoptr(GError) error = nullptr;
86
+ if (!g_application_register(application, nullptr, &error)) {
87
+ g_warning("Failed to register: %s", error->message);
88
+ *exit_status = 1;
89
+ return TRUE;
90
+ }
91
+
92
+ g_application_activate(application);
93
+ *exit_status = 0;
94
+
95
+ return TRUE;
96
+ }
97
+
98
+ // Implements GApplication::startup.
99
+ static void my_application_startup(GApplication* application) {
100
+ // MyApplication* self = MY_APPLICATION(application);
101
+
102
+ // Perform any actions required at application startup.
103
+
104
+ G_APPLICATION_CLASS(my_application_parent_class)->startup(application);
105
+ }
106
+
107
+ // Implements GApplication::shutdown.
108
+ static void my_application_shutdown(GApplication* application) {
109
+ // MyApplication* self = MY_APPLICATION(application);
110
+
111
+ // Perform any actions required at application shutdown.
112
+
113
+ G_APPLICATION_CLASS(my_application_parent_class)->shutdown(application);
114
+ }
115
+
116
+ // Implements GObject::dispose.
117
+ static void my_application_dispose(GObject* object) {
118
+ MyApplication* self = MY_APPLICATION(object);
119
+ g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev);
120
+ G_OBJECT_CLASS(my_application_parent_class)->dispose(object);
121
+ }
122
+
123
+ static void my_application_class_init(MyApplicationClass* klass) {
124
+ G_APPLICATION_CLASS(klass)->activate = my_application_activate;
125
+ G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line;
126
+ G_APPLICATION_CLASS(klass)->startup = my_application_startup;
127
+ G_APPLICATION_CLASS(klass)->shutdown = my_application_shutdown;
128
+ G_OBJECT_CLASS(klass)->dispose = my_application_dispose;
129
+ }
130
+
131
+ static void my_application_init(MyApplication* self) {}
132
+
133
+ MyApplication* my_application_new() {
134
+ // Set the program name to the application ID, which helps various systems
135
+ // like GTK and desktop environments map this running application to its
136
+ // corresponding .desktop file. This ensures better integration by allowing
137
+ // the application to be recognized beyond its binary name.
138
+ g_set_prgname(APPLICATION_ID);
139
+
140
+ return MY_APPLICATION(g_object_new(my_application_get_type(),
141
+ "application-id", APPLICATION_ID,
142
+ "flags", G_APPLICATION_NON_UNIQUE,
143
+ nullptr));
144
+ }
@@ -0,0 +1,18 @@
1
+ #ifndef FLUTTER_MY_APPLICATION_H_
2
+ #define FLUTTER_MY_APPLICATION_H_
3
+
4
+ #include <gtk/gtk.h>
5
+
6
+ G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION,
7
+ GtkApplication)
8
+
9
+ /**
10
+ * my_application_new:
11
+ *
12
+ * Creates a new Flutter-based application.
13
+ *
14
+ * Returns: a new #MyApplication.
15
+ */
16
+ MyApplication* my_application_new();
17
+
18
+ #endif // FLUTTER_MY_APPLICATION_H_
@@ -0,0 +1,2 @@
1
+ #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2
+ #include "ephemeral/Flutter-Generated.xcconfig"
@@ -0,0 +1,2 @@
1
+ #include? "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2
+ #include "ephemeral/Flutter-Generated.xcconfig"
@@ -0,0 +1,40 @@
1
+ //
2
+ // Generated file. Do not edit.
3
+ //
4
+
5
+ import FlutterMacOS
6
+ import Foundation
7
+
8
+ import audioplayers_darwin
9
+ import connectivity_plus
10
+ import desktop_audio_capture
11
+ import flutter_secure_storage_macos
12
+ import geolocator_apple
13
+ import hotkey_manager_macos
14
+ import mobile_scanner
15
+ import package_info_plus
16
+ import path_provider_foundation
17
+ import record_macos
18
+ import screen_retriever_macos
19
+ import shared_preferences_foundation
20
+ import tray_manager
21
+ import universal_ble
22
+ import window_manager
23
+
24
+ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
25
+ AudioplayersDarwinPlugin.register(with: registry.registrar(forPlugin: "AudioplayersDarwinPlugin"))
26
+ ConnectivityPlusPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlusPlugin"))
27
+ AudioCapturePlugin.register(with: registry.registrar(forPlugin: "AudioCapturePlugin"))
28
+ FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin"))
29
+ GeolocatorPlugin.register(with: registry.registrar(forPlugin: "GeolocatorPlugin"))
30
+ HotkeyManagerMacosPlugin.register(with: registry.registrar(forPlugin: "HotkeyManagerMacosPlugin"))
31
+ MobileScannerPlugin.register(with: registry.registrar(forPlugin: "MobileScannerPlugin"))
32
+ FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin"))
33
+ PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
34
+ RecordMacOsPlugin.register(with: registry.registrar(forPlugin: "RecordMacOsPlugin"))
35
+ ScreenRetrieverMacosPlugin.register(with: registry.registrar(forPlugin: "ScreenRetrieverMacosPlugin"))
36
+ SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
37
+ TrayManagerPlugin.register(with: registry.registrar(forPlugin: "TrayManagerPlugin"))
38
+ UniversalBlePlugin.register(with: registry.registrar(forPlugin: "UniversalBlePlugin"))
39
+ WindowManagerPlugin.register(with: registry.registrar(forPlugin: "WindowManagerPlugin"))
40
+ }
@@ -0,0 +1,42 @@
1
+ platform :osx, '13.0'
2
+
3
+ # CocoaPods analytics sends network stats synchronously affecting flutter build latency.
4
+ ENV['COCOAPODS_DISABLE_STATS'] = 'true'
5
+
6
+ project 'Runner', {
7
+ 'Debug' => :debug,
8
+ 'Profile' => :release,
9
+ 'Release' => :release,
10
+ }
11
+
12
+ def flutter_root
13
+ generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'ephemeral', 'Flutter-Generated.xcconfig'), __FILE__)
14
+ unless File.exist?(generated_xcode_build_settings_path)
15
+ raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure \"flutter pub get\" is executed first"
16
+ end
17
+
18
+ File.foreach(generated_xcode_build_settings_path) do |line|
19
+ matches = line.match(/FLUTTER_ROOT\=(.*)/)
20
+ return matches[1].strip if matches
21
+ end
22
+ raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Flutter-Generated.xcconfig, then run \"flutter pub get\""
23
+ end
24
+
25
+ require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
26
+
27
+ flutter_macos_podfile_setup
28
+
29
+ target 'Runner' do
30
+ use_frameworks!
31
+
32
+ flutter_install_all_macos_pods File.dirname(File.realpath(__FILE__))
33
+ target 'RunnerTests' do
34
+ inherit! :search_paths
35
+ end
36
+ end
37
+
38
+ post_install do |installer|
39
+ installer.pods_project.targets.each do |target|
40
+ flutter_additional_macos_build_settings(target)
41
+ end
42
+ end
@@ -0,0 +1,87 @@
1
+ PODS:
2
+ - audioplayers_darwin (0.0.1):
3
+ - Flutter
4
+ - FlutterMacOS
5
+ - desktop_audio_capture (0.0.1):
6
+ - FlutterMacOS
7
+ - FlutterMacOS (1.0.0)
8
+ - HotKey (0.2.1)
9
+ - hotkey_manager_macos (0.0.1):
10
+ - FlutterMacOS
11
+ - HotKey
12
+ - path_provider_foundation (0.0.1):
13
+ - Flutter
14
+ - FlutterMacOS
15
+ - record_macos (1.2.0):
16
+ - FlutterMacOS
17
+ - screen_retriever_macos (0.0.1):
18
+ - FlutterMacOS
19
+ - shared_preferences_foundation (0.0.1):
20
+ - Flutter
21
+ - FlutterMacOS
22
+ - tray_manager (0.0.1):
23
+ - FlutterMacOS
24
+ - universal_ble (0.0.1):
25
+ - Flutter
26
+ - FlutterMacOS
27
+ - window_manager (0.5.0):
28
+ - FlutterMacOS
29
+
30
+ DEPENDENCIES:
31
+ - audioplayers_darwin (from `Flutter/ephemeral/.symlinks/plugins/audioplayers_darwin/darwin`)
32
+ - desktop_audio_capture (from `Flutter/ephemeral/.symlinks/plugins/desktop_audio_capture/macos`)
33
+ - FlutterMacOS (from `Flutter/ephemeral`)
34
+ - hotkey_manager_macos (from `Flutter/ephemeral/.symlinks/plugins/hotkey_manager_macos/macos`)
35
+ - path_provider_foundation (from `Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin`)
36
+ - record_macos (from `Flutter/ephemeral/.symlinks/plugins/record_macos/macos`)
37
+ - screen_retriever_macos (from `Flutter/ephemeral/.symlinks/plugins/screen_retriever_macos/macos`)
38
+ - shared_preferences_foundation (from `Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin`)
39
+ - tray_manager (from `Flutter/ephemeral/.symlinks/plugins/tray_manager/macos`)
40
+ - universal_ble (from `Flutter/ephemeral/.symlinks/plugins/universal_ble/darwin`)
41
+ - window_manager (from `Flutter/ephemeral/.symlinks/plugins/window_manager/macos`)
42
+
43
+ SPEC REPOS:
44
+ trunk:
45
+ - HotKey
46
+
47
+ EXTERNAL SOURCES:
48
+ audioplayers_darwin:
49
+ :path: Flutter/ephemeral/.symlinks/plugins/audioplayers_darwin/darwin
50
+ desktop_audio_capture:
51
+ :path: Flutter/ephemeral/.symlinks/plugins/desktop_audio_capture/macos
52
+ FlutterMacOS:
53
+ :path: Flutter/ephemeral
54
+ hotkey_manager_macos:
55
+ :path: Flutter/ephemeral/.symlinks/plugins/hotkey_manager_macos/macos
56
+ path_provider_foundation:
57
+ :path: Flutter/ephemeral/.symlinks/plugins/path_provider_foundation/darwin
58
+ record_macos:
59
+ :path: Flutter/ephemeral/.symlinks/plugins/record_macos/macos
60
+ screen_retriever_macos:
61
+ :path: Flutter/ephemeral/.symlinks/plugins/screen_retriever_macos/macos
62
+ shared_preferences_foundation:
63
+ :path: Flutter/ephemeral/.symlinks/plugins/shared_preferences_foundation/darwin
64
+ tray_manager:
65
+ :path: Flutter/ephemeral/.symlinks/plugins/tray_manager/macos
66
+ universal_ble:
67
+ :path: Flutter/ephemeral/.symlinks/plugins/universal_ble/darwin
68
+ window_manager:
69
+ :path: Flutter/ephemeral/.symlinks/plugins/window_manager/macos
70
+
71
+ SPEC CHECKSUMS:
72
+ audioplayers_darwin: 835ced6edd4c9fc8ebb0a7cc9e294a91d99917d5
73
+ desktop_audio_capture: b3f657c2048bf41a309e31f1e1b656c5cdee1bd1
74
+ FlutterMacOS: d0db08ddef1a9af05a5ec4b724367152bb0500b1
75
+ HotKey: 400beb7caa29054ea8d864c96f5ba7e5b4852277
76
+ hotkey_manager_macos: a4317849af96d2430fa89944d3c58977ca089fbe
77
+ path_provider_foundation: bb55f6dbba17d0dccd6737fe6f7f34fbd0376880
78
+ record_macos: 7f227161b93c49e7e34fe681c5891c8622c8cc8b
79
+ screen_retriever_macos: 452e51764a9e1cdb74b3c541238795849f21557f
80
+ shared_preferences_foundation: 7036424c3d8ec98dfe75ff1667cb0cd531ec82bb
81
+ tray_manager: a104b5c81b578d83f3c3d0f40a997c8b10810166
82
+ universal_ble: 45519b2aeafe62761e2c6309f8927edb5288b914
83
+ window_manager: b729e31d38fb04905235df9ea896128991cad99e
84
+
85
+ PODFILE CHECKSUM: 89c84cf5c2351c1e554c6dea18d31a879fc3a19e
86
+
87
+ COCOAPODS: 1.16.2