neoagent 3.1.1-beta.9 → 3.2.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.
- package/.env.example +2 -2
- package/README.md +5 -1
- package/docs/architecture.md +1 -1
- package/docs/benchmarking.md +68 -87
- package/docs/capabilities.md +1 -1
- package/docs/clients-and-devices.md +3 -4
- package/docs/configuration.md +1 -1
- package/docs/devices.md +1 -2
- package/docs/health.md +24 -0
- package/docs/index.md +2 -2
- package/docs/integrations-architecture.md +6 -0
- package/docs/integrations.md +15 -1
- package/docs/models.md +1 -1
- package/docs/persistence.md +1 -1
- package/docs/why-neoagent.md +1 -1
- package/flutter_app/README.md +0 -5
- package/flutter_app/android/app/src/main/AndroidManifest.xml +0 -14
- package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/MainActivity.kt +0 -98
- package/flutter_app/lib/main.dart +0 -6
- package/flutter_app/lib/main_app_shell.dart +0 -2
- package/flutter_app/lib/main_controller.dart +2 -867
- package/flutter_app/lib/main_devices.dart +0 -73
- package/flutter_app/lib/main_integrations.dart +339 -187
- package/flutter_app/lib/main_launcher.dart +2 -212
- package/flutter_app/lib/main_models.dart +0 -259
- package/flutter_app/lib/main_navigation.dart +2 -14
- package/flutter_app/lib/main_operations.dart +322 -364
- package/flutter_app/lib/main_runtime.dart +9 -208
- package/flutter_app/lib/main_settings.dart +17 -199
- package/flutter_app/lib/main_shared.dart +20 -591
- package/flutter_app/lib/main_timeline.dart +26 -122
- package/flutter_app/lib/main_voice_assistant.dart +0 -5
- package/flutter_app/lib/src/backend_client.dart +0 -102
- package/flutter_app/lib/src/desktop_companion_io.dart +1 -65
- package/flutter_app/lib/src/desktop_companion_stub.dart +0 -12
- package/flutter_app/linux/flutter/generated_plugin_registrant.cc +0 -4
- package/flutter_app/linux/flutter/generated_plugins.cmake +0 -1
- package/flutter_app/macos/Flutter/GeneratedPluginRegistrant.swift +0 -2
- package/flutter_app/macos/Podfile.lock +56 -5
- package/flutter_app/pubspec.lock +0 -7
- package/flutter_app/pubspec.yaml +0 -2
- package/flutter_app/web/index.html +174 -0
- package/flutter_app/windows/flutter/generated_plugin_registrant.cc +0 -3
- package/flutter_app/windows/flutter/generated_plugins.cmake +0 -1
- package/landing/index.html +0 -2
- package/lib/manager.js +1 -1
- package/lib/schema_migrations.js +75 -0
- package/package.json +1 -4
- package/server/db/database.js +1 -133
- package/server/http/middleware.js +2 -16
- package/server/http/routes.js +0 -2
- package/server/public/.last_build_id +1 -1
- package/server/public/assets/NOTICES +0 -25
- package/server/public/assets/fonts/MaterialIcons-Regular.otf +0 -0
- package/server/public/flutter_bootstrap.js +1 -1
- package/server/public/index.html +174 -0
- package/server/public/main.dart.js +88081 -90036
- package/server/routes/auth.js +11 -2
- package/server/routes/settings.js +0 -5
- package/server/routes/voice_assistant.js +1 -128
- package/server/services/account/erasure.js +0 -3
- package/server/services/ai/deliverables/artifact_helpers.js +1 -1
- package/server/services/ai/loop/conversation_loop.js +6 -2
- package/server/services/ai/loop/tool_dispatch.js +0 -3
- package/server/services/ai/messagingFallback.js +1 -1
- package/server/services/ai/settings.js +0 -6
- package/server/services/ai/toolEvidence.js +1 -4
- package/server/services/ai/tools.js +0 -234
- package/server/services/desktop/auth.js +0 -3
- package/server/services/desktop/registry.js +2 -50
- package/server/services/integrations/neoarchive/provider.js +616 -0
- package/server/services/integrations/neorecall/client.js +140 -0
- package/server/services/integrations/neorecall/constants.js +87 -0
- package/server/services/integrations/neorecall/provider.js +163 -0
- package/server/services/integrations/registry.js +4 -2
- package/server/services/manager.js +0 -22
- package/server/services/memory/manager.js +44 -19
- package/server/services/memory/retrieval_reasoning.js +36 -14
- package/server/services/messaging/whatsapp.js +18 -0
- package/server/services/security/tool_categories.js +0 -5
- package/server/services/social_video/service.js +2 -20
- package/server/services/tasks/adapters/index.js +1 -1
- package/server/services/tasks/integration_runtime.js +3 -67
- package/server/services/tasks/runtime.js +1 -6
- package/server/services/tasks/task_repository.js +6 -13
- package/server/services/timeline/service.js +0 -224
- package/server/services/voice/message.js +0 -24
- package/server/services/voice/providers.js +42 -1
- package/server/services/voice/runtimeManager.js +9 -5
- package/server/services/voice/turnRunner.js +0 -22
- package/server/services/wearable/service.js +0 -5
- package/docs/recordings-and-health.md +0 -41
- package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/recording/RecordingBootReceiver.kt +0 -21
- package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/recording/RecordingForegroundService.kt +0 -586
- package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/recording/RecordingStateStore.kt +0 -78
- package/flutter_app/android/app/src/main/kotlin/com/neoagent/flutter_app/recording/RecordingUploadClient.kt +0 -104
- package/flutter_app/lib/main_recordings.dart +0 -920
- package/flutter_app/lib/src/desktop_ocr_bridge.dart +0 -2
- package/flutter_app/lib/src/desktop_ocr_bridge_io.dart +0 -125
- package/flutter_app/lib/src/desktop_ocr_bridge_stub.dart +0 -30
- package/flutter_app/lib/src/desktop_passive_history.dart +0 -332
- package/flutter_app/lib/src/recording_bridge.dart +0 -232
- package/flutter_app/lib/src/recording_bridge_io.dart +0 -1027
- package/flutter_app/lib/src/recording_bridge_stub.dart +0 -120
- package/flutter_app/lib/src/recording_bridge_web.dart +0 -702
- package/flutter_app/lib/src/recording_chunk_queue.dart +0 -149
- package/flutter_app/lib/src/recording_chunk_queue_io.dart +0 -182
- package/flutter_app/lib/src/recording_payloads.dart +0 -95
- package/flutter_app/third_party/desktop_audio_capture/LICENSE +0 -21
- package/flutter_app/third_party/desktop_audio_capture/README.md +0 -262
- package/flutter_app/third_party/desktop_audio_capture/lib/audio_capture.dart +0 -65
- package/flutter_app/third_party/desktop_audio_capture/lib/config/mic_audio_config.dart +0 -153
- package/flutter_app/third_party/desktop_audio_capture/lib/config/system_adudio_config.dart +0 -110
- package/flutter_app/third_party/desktop_audio_capture/lib/mic/mic_audio_capture.dart +0 -461
- package/flutter_app/third_party/desktop_audio_capture/lib/model/audio_status.dart +0 -91
- package/flutter_app/third_party/desktop_audio_capture/lib/model/decibel_data.dart +0 -106
- package/flutter_app/third_party/desktop_audio_capture/lib/model/input_device_type.dart +0 -219
- package/flutter_app/third_party/desktop_audio_capture/lib/system/system_audio_capture.dart +0 -336
- package/flutter_app/third_party/desktop_audio_capture/linux/CMakeLists.txt +0 -101
- package/flutter_app/third_party/desktop_audio_capture/linux/audio_capture_plugin.cc +0 -692
- package/flutter_app/third_party/desktop_audio_capture/linux/include/audio_capture/audio_capture_plugin.h +0 -35
- package/flutter_app/third_party/desktop_audio_capture/linux/include/audio_capture/mic_capture_plugin.h +0 -36
- package/flutter_app/third_party/desktop_audio_capture/linux/include/desktop_audio_capture/audio_capture_plugin.h +0 -32
- package/flutter_app/third_party/desktop_audio_capture/linux/include/desktop_audio_capture/mic_capture_plugin.h +0 -32
- package/flutter_app/third_party/desktop_audio_capture/linux/mic_capture_plugin.cc +0 -878
- package/flutter_app/third_party/desktop_audio_capture/macos/Classes/AudioCapturePlugin.swift +0 -27
- package/flutter_app/third_party/desktop_audio_capture/macos/Classes/MicCapturePlugin.swift +0 -1172
- package/flutter_app/third_party/desktop_audio_capture/macos/Classes/SystemCapturePlugin.swift +0 -655
- package/flutter_app/third_party/desktop_audio_capture/macos/Resources/PrivacyInfo.xcprivacy +0 -12
- package/flutter_app/third_party/desktop_audio_capture/macos/desktop_audio_capture.podspec +0 -30
- package/flutter_app/third_party/desktop_audio_capture/pubspec.yaml +0 -87
- package/flutter_app/third_party/desktop_audio_capture/windows/CMakeLists.txt +0 -105
- package/flutter_app/third_party/desktop_audio_capture/windows/audio_capture_plugin.cpp +0 -80
- package/flutter_app/third_party/desktop_audio_capture/windows/audio_capture_plugin.h +0 -31
- package/flutter_app/third_party/desktop_audio_capture/windows/audio_capture_plugin_c_api.cpp +0 -12
- package/flutter_app/third_party/desktop_audio_capture/windows/include/audio_capture/audio_capture_plugin_c_api.h +0 -23
- package/flutter_app/third_party/desktop_audio_capture/windows/include/desktop_audio_capture/audio_capture_plugin.h +0 -25
- package/flutter_app/third_party/desktop_audio_capture/windows/mic_capture_plugin.cpp +0 -1117
- package/flutter_app/third_party/desktop_audio_capture/windows/mic_capture_plugin.h +0 -115
- package/flutter_app/third_party/desktop_audio_capture/windows/system_audio_capture_plugin.cpp +0 -777
- package/flutter_app/third_party/desktop_audio_capture/windows/system_audio_capture_plugin.h +0 -87
- package/server/routes/recordings.js +0 -335
- package/server/routes/screenHistory.js +0 -190
- package/server/services/ai/recordingInsights.js +0 -105
- package/server/services/integrations/neomail/provider.js +0 -993
- package/server/services/recordings/deepgram.js +0 -58
- package/server/services/recordings/manager.js +0 -1273
- package/server/services/tasks/adapters/neomail_email_received.js +0 -46
- package/server/services/voice/screenshotContext.js +0 -73
- 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
|
-
}
|