neoagent 3.1.1-beta.8 → 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 +149 -438
- 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 +88124 -90164
- 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
package/server/public/index.html
CHANGED
|
@@ -32,8 +32,182 @@
|
|
|
32
32
|
|
|
33
33
|
<title>NeoAgent</title>
|
|
34
34
|
<link rel="manifest" href="manifest.json">
|
|
35
|
+
|
|
36
|
+
<style>
|
|
37
|
+
/* NeoAgent "Control Surface" splash — mirrors flutter_app/lib/src/theme/palette.dart
|
|
38
|
+
so the pre-Flutter paint matches the app instead of flashing white. */
|
|
39
|
+
html, body {
|
|
40
|
+
height: 100%;
|
|
41
|
+
margin: 0;
|
|
42
|
+
background: #0E1511;
|
|
43
|
+
}
|
|
44
|
+
@media (prefers-color-scheme: light) {
|
|
45
|
+
html, body { background: #F4F1E8; }
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
#splash {
|
|
49
|
+
position: fixed;
|
|
50
|
+
inset: 0;
|
|
51
|
+
z-index: 9999;
|
|
52
|
+
display: flex;
|
|
53
|
+
flex-direction: column;
|
|
54
|
+
align-items: center;
|
|
55
|
+
justify-content: center;
|
|
56
|
+
gap: 20px;
|
|
57
|
+
background: radial-gradient(120% 120% at 50% 38%, #131b16 0%, #0A0F0C 70%, #0E1511 100%);
|
|
58
|
+
transition: opacity 0.5s ease;
|
|
59
|
+
}
|
|
60
|
+
@media (prefers-color-scheme: light) {
|
|
61
|
+
#splash {
|
|
62
|
+
background: radial-gradient(120% 120% at 50% 38%, #FDFCF8 0%, #EDE9DC 70%, #F4F1E8 100%);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
#splash.splash-hidden {
|
|
66
|
+
opacity: 0;
|
|
67
|
+
pointer-events: none;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
#splash-mark {
|
|
71
|
+
width: 88px;
|
|
72
|
+
height: 88px;
|
|
73
|
+
filter: drop-shadow(0 6px 18px rgba(0, 0, 0, 0.35));
|
|
74
|
+
animation: splash-breathe 2.4s ease-in-out infinite;
|
|
75
|
+
}
|
|
76
|
+
@media (prefers-color-scheme: light) {
|
|
77
|
+
#splash-mark { filter: drop-shadow(0 6px 16px rgba(28, 33, 23, 0.18)); }
|
|
78
|
+
}
|
|
79
|
+
#splash-mark .orbit {
|
|
80
|
+
transform-origin: 50px 50px;
|
|
81
|
+
animation: splash-spin 5.5s linear infinite;
|
|
82
|
+
}
|
|
83
|
+
#splash-mark .orbit-2 {
|
|
84
|
+
animation-duration: 8.5s;
|
|
85
|
+
animation-direction: reverse;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
#splash-word {
|
|
89
|
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", ui-sans-serif, system-ui, sans-serif;
|
|
90
|
+
font-size: 15px;
|
|
91
|
+
font-weight: 600;
|
|
92
|
+
letter-spacing: 0.28em;
|
|
93
|
+
text-transform: uppercase;
|
|
94
|
+
color: #AEB7A6;
|
|
95
|
+
opacity: 0.92;
|
|
96
|
+
}
|
|
97
|
+
@media (prefers-color-scheme: light) {
|
|
98
|
+
#splash-word { color: #49503F; }
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
#splash-dots {
|
|
102
|
+
display: flex;
|
|
103
|
+
gap: 6px;
|
|
104
|
+
}
|
|
105
|
+
#splash-dots span {
|
|
106
|
+
width: 5px;
|
|
107
|
+
height: 5px;
|
|
108
|
+
border-radius: 50%;
|
|
109
|
+
background: #E1B052;
|
|
110
|
+
opacity: 0.35;
|
|
111
|
+
animation: splash-dot 1.2s ease-in-out infinite;
|
|
112
|
+
}
|
|
113
|
+
@media (prefers-color-scheme: light) {
|
|
114
|
+
#splash-dots span { background: #B07D2B; }
|
|
115
|
+
}
|
|
116
|
+
#splash-dots span:nth-child(2) { animation-delay: 0.15s; }
|
|
117
|
+
#splash-dots span:nth-child(3) { animation-delay: 0.3s; }
|
|
118
|
+
|
|
119
|
+
@keyframes splash-breathe {
|
|
120
|
+
0%, 100% { transform: scale(1); }
|
|
121
|
+
50% { transform: scale(1.045); }
|
|
122
|
+
}
|
|
123
|
+
@keyframes splash-spin {
|
|
124
|
+
from { transform: rotate(0deg); }
|
|
125
|
+
to { transform: rotate(360deg); }
|
|
126
|
+
}
|
|
127
|
+
@keyframes splash-dot {
|
|
128
|
+
0%, 80%, 100% { opacity: 0.35; transform: translateY(0); }
|
|
129
|
+
40% { opacity: 1; transform: translateY(-3px); }
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
@media (prefers-reduced-motion: reduce) {
|
|
133
|
+
#splash-mark, #splash-mark .orbit, #splash-dots span {
|
|
134
|
+
animation: none !important;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
</style>
|
|
35
138
|
</head>
|
|
36
139
|
<body>
|
|
140
|
+
<div id="splash" role="presentation" aria-hidden="true">
|
|
141
|
+
<svg id="splash-mark" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
|
|
142
|
+
<defs>
|
|
143
|
+
<linearGradient id="splash-tile" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
144
|
+
<stop offset="0%" stop-color="#705331"/>
|
|
145
|
+
<stop offset="100%" stop-color="#22564c"/>
|
|
146
|
+
</linearGradient>
|
|
147
|
+
<radialGradient id="splash-shine" cx="26%" cy="14%" r="72%">
|
|
148
|
+
<stop offset="0%" stop-color="#ffffff" stop-opacity="0.22"/>
|
|
149
|
+
<stop offset="100%" stop-color="#ffffff" stop-opacity="0"/>
|
|
150
|
+
</radialGradient>
|
|
151
|
+
<radialGradient id="splash-core" cx="38%" cy="32%" r="75%">
|
|
152
|
+
<stop offset="0%" stop-color="#fffdf6"/>
|
|
153
|
+
<stop offset="48%" stop-color="#eee3cc"/>
|
|
154
|
+
<stop offset="100%" stop-color="#b5a888"/>
|
|
155
|
+
</radialGradient>
|
|
156
|
+
<radialGradient id="splash-node" cx="36%" cy="30%" r="80%">
|
|
157
|
+
<stop offset="0%" stop-color="#f8dca8"/>
|
|
158
|
+
<stop offset="52%" stop-color="#d3a85f"/>
|
|
159
|
+
<stop offset="100%" stop-color="#9b6f2f"/>
|
|
160
|
+
</radialGradient>
|
|
161
|
+
<linearGradient id="splash-tube" x1="0%" y1="0%" x2="0%" y2="100%">
|
|
162
|
+
<stop offset="0%" stop-color="#fffaf0"/>
|
|
163
|
+
<stop offset="52%" stop-color="#efe7d6"/>
|
|
164
|
+
<stop offset="100%" stop-color="#cabf9f"/>
|
|
165
|
+
</linearGradient>
|
|
166
|
+
<clipPath id="splash-tc"><rect x="0" y="0" width="100" height="100" rx="22.5"/></clipPath>
|
|
167
|
+
</defs>
|
|
168
|
+
<g clip-path="url(#splash-tc)">
|
|
169
|
+
<rect x="0" y="0" width="100" height="100" fill="url(#splash-tile)"/>
|
|
170
|
+
<rect x="0" y="0" width="100" height="100" fill="url(#splash-shine)"/>
|
|
171
|
+
<g fill="none" stroke="url(#splash-tube)" stroke-linecap="round">
|
|
172
|
+
<circle class="orbit orbit-1" cx="50" cy="50" r="17" stroke-width="5" stroke-dasharray="78 29" transform="rotate(-35 50 50)" stroke-opacity="0.92"/>
|
|
173
|
+
<circle class="orbit orbit-2" cx="50" cy="50" r="30" stroke-width="5" stroke-dasharray="150 39" transform="rotate(70 50 50)" stroke-opacity="0.8"/>
|
|
174
|
+
</g>
|
|
175
|
+
<circle cx="50" cy="50" r="7" fill="url(#splash-core)"/>
|
|
176
|
+
<circle cx="50" cy="20" r="5.6" fill="url(#splash-node)"/>
|
|
177
|
+
<circle cx="48" cy="18.4" r="1.7" fill="#fff7e6" fill-opacity="0.8"/>
|
|
178
|
+
</g>
|
|
179
|
+
<rect x="0.6" y="0.6" width="98.8" height="98.8" rx="22" fill="none" stroke="#ffffff" stroke-opacity="0.16" stroke-width="1.2"/>
|
|
180
|
+
</svg>
|
|
181
|
+
<div id="splash-word">NeoAgent</div>
|
|
182
|
+
<div id="splash-dots"><span></span><span></span><span></span></div>
|
|
183
|
+
</div>
|
|
184
|
+
|
|
185
|
+
<script>
|
|
186
|
+
// Fade the splash once Flutter mounts its view (or after a safety timeout),
|
|
187
|
+
// so we never get stuck showing it if the mutation never fires.
|
|
188
|
+
(function () {
|
|
189
|
+
var splash = document.getElementById('splash');
|
|
190
|
+
var hidden = false;
|
|
191
|
+
|
|
192
|
+
function hideSplash() {
|
|
193
|
+
if (hidden) return;
|
|
194
|
+
hidden = true;
|
|
195
|
+
splash.classList.add('splash-hidden');
|
|
196
|
+
setTimeout(function () { splash.remove(); }, 550);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
var observer = new MutationObserver(function () {
|
|
200
|
+
if (document.querySelector('flt-glass-pane, flutter-view')) {
|
|
201
|
+
hideSplash();
|
|
202
|
+
observer.disconnect();
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
observer.observe(document.body, { childList: true, subtree: true });
|
|
206
|
+
|
|
207
|
+
setTimeout(hideSplash, 6000);
|
|
208
|
+
})();
|
|
209
|
+
</script>
|
|
210
|
+
|
|
37
211
|
<script src="flutter_bootstrap.js" async></script>
|
|
38
212
|
</body>
|
|
39
213
|
</html>
|