neoagent 3.1.1-beta.9 → 3.2.1-beta.0

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 (151) hide show
  1. package/.env.example +2 -2
  2. package/README.md +5 -1
  3. package/docs/architecture.md +1 -1
  4. package/docs/benchmarking.md +68 -87
  5. package/docs/capabilities.md +1 -1
  6. package/docs/clients-and-devices.md +3 -4
  7. package/docs/configuration.md +1 -1
  8. package/docs/devices.md +1 -2
  9. package/docs/health.md +24 -0
  10. package/docs/index.md +2 -2
  11. package/docs/integrations-architecture.md +6 -0
  12. package/docs/integrations.md +15 -1
  13. package/docs/models.md +1 -1
  14. package/docs/persistence.md +1 -1
  15. package/docs/why-neoagent.md +1 -1
  16. package/flutter_app/README.md +0 -5
  17. package/flutter_app/android/app/src/main/AndroidManifest.xml +0 -14
  18. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/MainActivity.kt +0 -98
  19. package/flutter_app/lib/main.dart +0 -6
  20. package/flutter_app/lib/main_app_shell.dart +0 -2
  21. package/flutter_app/lib/main_controller.dart +2 -867
  22. package/flutter_app/lib/main_devices.dart +0 -73
  23. package/flutter_app/lib/main_integrations.dart +339 -187
  24. package/flutter_app/lib/main_launcher.dart +2 -212
  25. package/flutter_app/lib/main_models.dart +0 -259
  26. package/flutter_app/lib/main_navigation.dart +2 -14
  27. package/flutter_app/lib/main_operations.dart +875 -383
  28. package/flutter_app/lib/main_runtime.dart +9 -208
  29. package/flutter_app/lib/main_settings.dart +17 -199
  30. package/flutter_app/lib/main_shared.dart +20 -591
  31. package/flutter_app/lib/main_timeline.dart +26 -122
  32. package/flutter_app/lib/main_voice_assistant.dart +0 -5
  33. package/flutter_app/lib/src/backend_client.dart +0 -102
  34. package/flutter_app/lib/src/desktop_companion_io.dart +1 -65
  35. package/flutter_app/lib/src/desktop_companion_stub.dart +0 -12
  36. package/flutter_app/linux/flutter/generated_plugin_registrant.cc +0 -4
  37. package/flutter_app/linux/flutter/generated_plugins.cmake +0 -1
  38. package/flutter_app/macos/Flutter/GeneratedPluginRegistrant.swift +0 -2
  39. package/flutter_app/macos/Podfile.lock +56 -5
  40. package/flutter_app/pubspec.lock +0 -7
  41. package/flutter_app/pubspec.yaml +0 -2
  42. package/flutter_app/web/index.html +174 -0
  43. package/flutter_app/windows/flutter/generated_plugin_registrant.cc +0 -3
  44. package/flutter_app/windows/flutter/generated_plugins.cmake +0 -1
  45. package/landing/index.html +0 -2
  46. package/lib/manager.js +1 -1
  47. package/lib/schema_migrations.js +75 -0
  48. package/package.json +1 -4
  49. package/server/db/database.js +1 -133
  50. package/server/http/middleware.js +2 -16
  51. package/server/http/routes.js +0 -2
  52. package/server/public/.last_build_id +1 -1
  53. package/server/public/assets/NOTICES +0 -25
  54. package/server/public/assets/fonts/MaterialIcons-Regular.otf +0 -0
  55. package/server/public/flutter_bootstrap.js +2 -2
  56. package/server/public/index.html +174 -0
  57. package/server/public/main.dart.js +92036 -91145
  58. package/server/routes/auth.js +11 -2
  59. package/server/routes/settings.js +0 -5
  60. package/server/routes/voice_assistant.js +1 -128
  61. package/server/services/account/erasure.js +0 -3
  62. package/server/services/ai/deliverables/artifact_helpers.js +1 -1
  63. package/server/services/ai/loop/conversation_loop.js +6 -2
  64. package/server/services/ai/loop/tool_dispatch.js +0 -3
  65. package/server/services/ai/messagingFallback.js +1 -1
  66. package/server/services/ai/settings.js +0 -6
  67. package/server/services/ai/toolEvidence.js +1 -4
  68. package/server/services/ai/tools.js +0 -234
  69. package/server/services/desktop/auth.js +0 -3
  70. package/server/services/desktop/registry.js +2 -50
  71. package/server/services/integrations/neoarchive/provider.js +616 -0
  72. package/server/services/integrations/neorecall/client.js +140 -0
  73. package/server/services/integrations/neorecall/constants.js +87 -0
  74. package/server/services/integrations/neorecall/provider.js +163 -0
  75. package/server/services/integrations/registry.js +4 -2
  76. package/server/services/manager.js +0 -22
  77. package/server/services/memory/manager.js +44 -19
  78. package/server/services/memory/retrieval_reasoning.js +36 -14
  79. package/server/services/messaging/formatting_guides.js +1 -0
  80. package/server/services/messaging/whatsapp.js +18 -0
  81. package/server/services/security/tool_categories.js +0 -5
  82. package/server/services/social_video/service.js +2 -20
  83. package/server/services/tasks/adapters/index.js +1 -1
  84. package/server/services/tasks/integration_runtime.js +3 -67
  85. package/server/services/tasks/runtime.js +1 -6
  86. package/server/services/tasks/task_repository.js +6 -13
  87. package/server/services/timeline/service.js +0 -224
  88. package/server/services/voice/message.js +0 -24
  89. package/server/services/voice/providers.js +42 -1
  90. package/server/services/voice/runtimeManager.js +9 -5
  91. package/server/services/voice/turnRunner.js +0 -22
  92. package/server/services/wearable/service.js +0 -5
  93. package/docs/recordings-and-health.md +0 -41
  94. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/recording/RecordingBootReceiver.kt +0 -21
  95. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/recording/RecordingForegroundService.kt +0 -586
  96. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/recording/RecordingStateStore.kt +0 -78
  97. package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/recording/RecordingUploadClient.kt +0 -104
  98. package/flutter_app/lib/main_recordings.dart +0 -920
  99. package/flutter_app/lib/src/desktop_ocr_bridge.dart +0 -2
  100. package/flutter_app/lib/src/desktop_ocr_bridge_io.dart +0 -125
  101. package/flutter_app/lib/src/desktop_ocr_bridge_stub.dart +0 -30
  102. package/flutter_app/lib/src/desktop_passive_history.dart +0 -332
  103. package/flutter_app/lib/src/recording_bridge.dart +0 -232
  104. package/flutter_app/lib/src/recording_bridge_io.dart +0 -1027
  105. package/flutter_app/lib/src/recording_bridge_stub.dart +0 -120
  106. package/flutter_app/lib/src/recording_bridge_web.dart +0 -702
  107. package/flutter_app/lib/src/recording_chunk_queue.dart +0 -149
  108. package/flutter_app/lib/src/recording_chunk_queue_io.dart +0 -182
  109. package/flutter_app/lib/src/recording_payloads.dart +0 -95
  110. package/flutter_app/third_party/desktop_audio_capture/LICENSE +0 -21
  111. package/flutter_app/third_party/desktop_audio_capture/README.md +0 -262
  112. package/flutter_app/third_party/desktop_audio_capture/lib/audio_capture.dart +0 -65
  113. package/flutter_app/third_party/desktop_audio_capture/lib/config/mic_audio_config.dart +0 -153
  114. package/flutter_app/third_party/desktop_audio_capture/lib/config/system_adudio_config.dart +0 -110
  115. package/flutter_app/third_party/desktop_audio_capture/lib/mic/mic_audio_capture.dart +0 -461
  116. package/flutter_app/third_party/desktop_audio_capture/lib/model/audio_status.dart +0 -91
  117. package/flutter_app/third_party/desktop_audio_capture/lib/model/decibel_data.dart +0 -106
  118. package/flutter_app/third_party/desktop_audio_capture/lib/model/input_device_type.dart +0 -219
  119. package/flutter_app/third_party/desktop_audio_capture/lib/system/system_audio_capture.dart +0 -336
  120. package/flutter_app/third_party/desktop_audio_capture/linux/CMakeLists.txt +0 -101
  121. package/flutter_app/third_party/desktop_audio_capture/linux/audio_capture_plugin.cc +0 -692
  122. package/flutter_app/third_party/desktop_audio_capture/linux/include/audio_capture/audio_capture_plugin.h +0 -35
  123. package/flutter_app/third_party/desktop_audio_capture/linux/include/audio_capture/mic_capture_plugin.h +0 -36
  124. package/flutter_app/third_party/desktop_audio_capture/linux/include/desktop_audio_capture/audio_capture_plugin.h +0 -32
  125. package/flutter_app/third_party/desktop_audio_capture/linux/include/desktop_audio_capture/mic_capture_plugin.h +0 -32
  126. package/flutter_app/third_party/desktop_audio_capture/linux/mic_capture_plugin.cc +0 -878
  127. package/flutter_app/third_party/desktop_audio_capture/macos/Classes/AudioCapturePlugin.swift +0 -27
  128. package/flutter_app/third_party/desktop_audio_capture/macos/Classes/MicCapturePlugin.swift +0 -1172
  129. package/flutter_app/third_party/desktop_audio_capture/macos/Classes/SystemCapturePlugin.swift +0 -655
  130. package/flutter_app/third_party/desktop_audio_capture/macos/Resources/PrivacyInfo.xcprivacy +0 -12
  131. package/flutter_app/third_party/desktop_audio_capture/macos/desktop_audio_capture.podspec +0 -30
  132. package/flutter_app/third_party/desktop_audio_capture/pubspec.yaml +0 -87
  133. package/flutter_app/third_party/desktop_audio_capture/windows/CMakeLists.txt +0 -105
  134. package/flutter_app/third_party/desktop_audio_capture/windows/audio_capture_plugin.cpp +0 -80
  135. package/flutter_app/third_party/desktop_audio_capture/windows/audio_capture_plugin.h +0 -31
  136. package/flutter_app/third_party/desktop_audio_capture/windows/audio_capture_plugin_c_api.cpp +0 -12
  137. package/flutter_app/third_party/desktop_audio_capture/windows/include/audio_capture/audio_capture_plugin_c_api.h +0 -23
  138. package/flutter_app/third_party/desktop_audio_capture/windows/include/desktop_audio_capture/audio_capture_plugin.h +0 -25
  139. package/flutter_app/third_party/desktop_audio_capture/windows/mic_capture_plugin.cpp +0 -1117
  140. package/flutter_app/third_party/desktop_audio_capture/windows/mic_capture_plugin.h +0 -115
  141. package/flutter_app/third_party/desktop_audio_capture/windows/system_audio_capture_plugin.cpp +0 -777
  142. package/flutter_app/third_party/desktop_audio_capture/windows/system_audio_capture_plugin.h +0 -87
  143. package/server/routes/recordings.js +0 -335
  144. package/server/routes/screenHistory.js +0 -190
  145. package/server/services/ai/recordingInsights.js +0 -105
  146. package/server/services/integrations/neomail/provider.js +0 -993
  147. package/server/services/recordings/deepgram.js +0 -58
  148. package/server/services/recordings/manager.js +0 -1273
  149. package/server/services/tasks/adapters/neomail_email_received.js +0 -46
  150. package/server/services/voice/screenshotContext.js +0 -73
  151. package/server/services/voice/turnCoordinator.js +0 -51
@@ -1,232 +0,0 @@
1
- import 'package:flutter/foundation.dart';
2
-
3
- import 'recording_bridge_stub.dart'
4
- if (dart.library.html) 'recording_bridge_web.dart'
5
- if (dart.library.io) 'recording_bridge_io.dart';
6
-
7
- RecordingBridge createRecordingBridge() => createPlatformRecordingBridge();
8
-
9
- abstract class RecordingBridge extends ChangeNotifier {
10
- RecordingRuntimeStatus get status;
11
-
12
- Future<void> refreshStatus();
13
-
14
- Future<void> startWebRecording({
15
- required String baseUrl,
16
- required String sessionId,
17
- });
18
-
19
- Future<void> startWebMicrophoneRecording({
20
- required String baseUrl,
21
- required String sessionId,
22
- });
23
-
24
- Future<void> startBackgroundRecording({
25
- required String baseUrl,
26
- required String sessionCookie,
27
- required String sessionId,
28
- });
29
-
30
- Future<void> startDesktopAudioRecording({
31
- required String baseUrl,
32
- required String sessionCookie,
33
- required String sessionId,
34
- bool autoShowToolbar = true,
35
- });
36
-
37
- Future<void> pauseBackgroundRecording();
38
-
39
- Future<void> resumeBackgroundRecording();
40
-
41
- Future<void> pauseDesktopRecording();
42
-
43
- Future<void> resumeDesktopRecording();
44
-
45
- Future<void> showFloatingToolbar();
46
-
47
- Future<void> hideFloatingToolbar();
48
-
49
- Future<void> openMicrophoneSettings();
50
-
51
- Future<void> openSystemAudioSettings();
52
-
53
- Future<void> stopActiveRecording({bool notifyEnded = false});
54
-
55
- Future<void> Function(String sessionId)? onRecordingStopped;
56
- }
57
-
58
- enum RecordingPermissionState {
59
- unsupported,
60
- unknown,
61
- granted,
62
- denied,
63
- needsRestart,
64
- }
65
-
66
- @immutable
67
- class RecordingRuntimeStatus {
68
- const RecordingRuntimeStatus({
69
- required this.supportsScreenAndMic,
70
- required this.supportsBackgroundMic,
71
- this.supportsSystemAudio = false,
72
- this.supportsDesktopBackgroundRuntime = false,
73
- this.supportsFloatingToolbar = false,
74
- this.supportsGlobalHotkeys = false,
75
- this.active = false,
76
- this.paused = false,
77
- this.sessionId,
78
- this.platformLabel,
79
- this.startedAt,
80
- this.errorMessage,
81
- this.microphonePermission = RecordingPermissionState.unknown,
82
- this.systemAudioPermission = RecordingPermissionState.unknown,
83
- this.backgroundRuntimeActive = false,
84
- this.floatingToolbarVisible = false,
85
- this.activeSources = const <String>[],
86
- this.microphoneLevelDb = -120,
87
- this.systemAudioLevelDb = -120,
88
- this.availableInputDevices = const <RecordingInputDevice>[],
89
- this.selectedInputDeviceId,
90
- this.selectedInputDeviceName,
91
- });
92
-
93
- final bool supportsScreenAndMic;
94
- final bool supportsBackgroundMic;
95
- final bool supportsSystemAudio;
96
- final bool supportsDesktopBackgroundRuntime;
97
- final bool supportsFloatingToolbar;
98
- final bool supportsGlobalHotkeys;
99
- final bool active;
100
- final bool paused;
101
- final String? sessionId;
102
- final String? platformLabel;
103
- final DateTime? startedAt;
104
- final String? errorMessage;
105
- final RecordingPermissionState microphonePermission;
106
- final RecordingPermissionState systemAudioPermission;
107
- final bool backgroundRuntimeActive;
108
- final bool floatingToolbarVisible;
109
- final List<String> activeSources;
110
- final double microphoneLevelDb;
111
- final double systemAudioLevelDb;
112
- final List<RecordingInputDevice> availableInputDevices;
113
- final String? selectedInputDeviceId;
114
- final String? selectedInputDeviceName;
115
-
116
- RecordingRuntimeStatus copyWith({
117
- bool? supportsScreenAndMic,
118
- bool? supportsBackgroundMic,
119
- bool? supportsSystemAudio,
120
- bool? supportsDesktopBackgroundRuntime,
121
- bool? supportsFloatingToolbar,
122
- bool? supportsGlobalHotkeys,
123
- bool? active,
124
- bool? paused,
125
- Object? sessionId = _unset,
126
- Object? platformLabel = _unset,
127
- Object? startedAt = _unset,
128
- Object? errorMessage = _unset,
129
- RecordingPermissionState? microphonePermission,
130
- RecordingPermissionState? systemAudioPermission,
131
- bool? backgroundRuntimeActive,
132
- bool? floatingToolbarVisible,
133
- List<String>? activeSources,
134
- double? microphoneLevelDb,
135
- double? systemAudioLevelDb,
136
- List<RecordingInputDevice>? availableInputDevices,
137
- Object? selectedInputDeviceId = _unset,
138
- Object? selectedInputDeviceName = _unset,
139
- }) {
140
- return RecordingRuntimeStatus(
141
- supportsScreenAndMic: supportsScreenAndMic ?? this.supportsScreenAndMic,
142
- supportsBackgroundMic:
143
- supportsBackgroundMic ?? this.supportsBackgroundMic,
144
- supportsSystemAudio: supportsSystemAudio ?? this.supportsSystemAudio,
145
- supportsDesktopBackgroundRuntime:
146
- supportsDesktopBackgroundRuntime ??
147
- this.supportsDesktopBackgroundRuntime,
148
- supportsFloatingToolbar:
149
- supportsFloatingToolbar ?? this.supportsFloatingToolbar,
150
- supportsGlobalHotkeys:
151
- supportsGlobalHotkeys ?? this.supportsGlobalHotkeys,
152
- active: active ?? this.active,
153
- paused: paused ?? this.paused,
154
- sessionId: sessionId == _unset ? this.sessionId : sessionId as String?,
155
- platformLabel: platformLabel == _unset
156
- ? this.platformLabel
157
- : platformLabel as String?,
158
- startedAt: startedAt == _unset ? this.startedAt : startedAt as DateTime?,
159
- errorMessage: errorMessage == _unset
160
- ? this.errorMessage
161
- : errorMessage as String?,
162
- microphonePermission:
163
- microphonePermission ?? this.microphonePermission,
164
- systemAudioPermission: systemAudioPermission ?? this.systemAudioPermission,
165
- backgroundRuntimeActive:
166
- backgroundRuntimeActive ?? this.backgroundRuntimeActive,
167
- floatingToolbarVisible:
168
- floatingToolbarVisible ?? this.floatingToolbarVisible,
169
- activeSources: activeSources ?? this.activeSources,
170
- microphoneLevelDb: microphoneLevelDb ?? this.microphoneLevelDb,
171
- systemAudioLevelDb: systemAudioLevelDb ?? this.systemAudioLevelDb,
172
- availableInputDevices:
173
- availableInputDevices ?? this.availableInputDevices,
174
- selectedInputDeviceId: selectedInputDeviceId == _unset
175
- ? this.selectedInputDeviceId
176
- : selectedInputDeviceId as String?,
177
- selectedInputDeviceName: selectedInputDeviceName == _unset
178
- ? this.selectedInputDeviceName
179
- : selectedInputDeviceName as String?,
180
- );
181
- }
182
-
183
- static const Object _unset = Object();
184
- }
185
-
186
- @immutable
187
- class RecordingInputDevice {
188
- const RecordingInputDevice({
189
- required this.id,
190
- required this.name,
191
- required this.kind,
192
- required this.channelCount,
193
- required this.isDefault,
194
- });
195
-
196
- final String id;
197
- final String name;
198
- final String kind;
199
- final int channelCount;
200
- final bool isDefault;
201
-
202
- @override
203
- bool operator ==(Object other) {
204
- if (identical(this, other)) {
205
- return true;
206
- }
207
- return other is RecordingInputDevice &&
208
- other.id == id &&
209
- other.name == name &&
210
- other.kind == kind &&
211
- other.channelCount == channelCount &&
212
- other.isDefault == isDefault;
213
- }
214
-
215
- @override
216
- int get hashCode => Object.hash(id, name, kind, channelCount, isDefault);
217
-
218
- @override
219
- String toString() {
220
- return 'RecordingInputDevice(id: $id, name: $name, kind: $kind, '
221
- 'channelCount: $channelCount, isDefault: $isDefault)';
222
- }
223
- }
224
-
225
- class RecordingBridgeException implements Exception {
226
- const RecordingBridgeException(this.message);
227
-
228
- final String message;
229
-
230
- @override
231
- String toString() => message;
232
- }