neoagent 3.2.1-beta.0 → 3.2.1-beta.10
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/docs/agent-run-lifecycle.md +10 -0
- package/extensions/chrome-browser/background.mjs +318 -88
- package/extensions/chrome-browser/http.mjs +136 -0
- package/extensions/chrome-browser/protocol.mjs +654 -90
- package/flutter_app/lib/main_chat.dart +118 -739
- package/flutter_app/lib/main_controller.dart +111 -20
- package/flutter_app/lib/main_integrations.dart +607 -8
- package/flutter_app/lib/main_models.dart +3 -0
- package/flutter_app/lib/main_operations.dart +334 -321
- package/flutter_app/lib/main_security.dart +266 -112
- package/flutter_app/lib/main_settings.dart +4 -3
- package/flutter_app/lib/main_shared.dart +14 -11
- package/flutter_app/lib/src/backend_client.dart +78 -0
- package/flutter_app/lib/src/desktop_companion_actions.dart +185 -31
- package/flutter_app/lib/src/desktop_companion_io.dart +319 -86
- package/flutter_app/windows/runner/flutter_window.cpp +143 -32
- package/landing/index.html +3 -1
- package/lib/manager.js +106 -89
- package/lib/schema_migrations.js +145 -13
- package/package.json +30 -15
- package/runtime/paths.js +49 -5
- package/server/db/database.js +4 -4
- package/server/guest-agent.cli.package.json +13 -0
- package/server/guest_agent.js +85 -40
- package/server/http/middleware.js +24 -0
- package/server/http/routes.js +11 -6
- package/server/public/.last_build_id +1 -1
- package/server/public/assets/fonts/MaterialIcons-Regular.otf +0 -0
- package/server/public/flutter_bootstrap.js +2 -2
- package/server/public/main.dart.js +73083 -72209
- package/server/routes/admin.js +1 -1
- package/server/routes/agents.js +35 -2
- package/server/routes/android.js +30 -34
- package/server/routes/browser.js +23 -15
- package/server/routes/desktop.js +18 -1
- package/server/routes/integrations.js +107 -1
- package/server/routes/memory.js +1 -0
- package/server/routes/settings.js +16 -5
- package/server/routes/social_reach.js +12 -3
- package/server/routes/social_video.js +4 -0
- package/server/services/agents/manager.js +1 -1
- package/server/services/ai/capabilityHealth.js +62 -96
- package/server/services/ai/compaction.js +7 -2
- package/server/services/ai/history.js +45 -6
- package/server/services/ai/integrated_tools/http_request.js +8 -0
- package/server/services/ai/loop/agent_engine_core.js +496 -166
- package/server/services/ai/loop/blank_recovery.js +5 -4
- package/server/services/ai/loop/callbacks.js +1 -0
- package/server/services/ai/loop/completion_judge.js +121 -5
- package/server/services/ai/loop/conversation_loop.js +620 -340
- package/server/services/ai/loop/lifecycle.js +108 -0
- package/server/services/ai/loop/messaging_delivery.js +129 -57
- package/server/services/ai/loop/model_call_guard.js +91 -0
- package/server/services/ai/loop/model_io.js +48 -56
- package/server/services/ai/loop/progress_classification.js +2 -0
- package/server/services/ai/loop/tool_dispatch.js +28 -8
- package/server/services/ai/loopPolicy.js +48 -21
- package/server/services/ai/messagingFallback.js +17 -17
- package/server/services/ai/model_discovery.js +227 -0
- package/server/services/ai/model_failure_cache.js +108 -0
- package/server/services/ai/model_identity.js +71 -0
- package/server/services/ai/models.js +68 -163
- package/server/services/ai/providerRetry.js +17 -59
- package/server/services/ai/provider_selector.js +166 -0
- package/server/services/ai/providers/anthropic.js +4 -4
- package/server/services/ai/providers/claudeCode.js +21 -33
- package/server/services/ai/providers/githubCopilot.js +41 -20
- package/server/services/ai/providers/google.js +135 -97
- package/server/services/ai/providers/grok.js +6 -5
- package/server/services/ai/providers/grokOauth.js +19 -27
- package/server/services/ai/providers/nvidia.js +12 -7
- package/server/services/ai/providers/ollama.js +114 -86
- package/server/services/ai/providers/ollama_stream.js +142 -0
- package/server/services/ai/providers/openai.js +41 -7
- package/server/services/ai/providers/openaiCodex.js +13 -4
- package/server/services/ai/providers/openrouter.js +31 -9
- package/server/services/ai/providers/provider_error.js +36 -0
- package/server/services/ai/settings.js +26 -2
- package/server/services/ai/systemPrompt.js +19 -12
- package/server/services/ai/taskAnalysis.js +58 -10
- package/server/services/ai/terminal_reply.js +18 -0
- package/server/services/ai/toolEvidence.js +350 -29
- package/server/services/ai/tools.js +190 -111
- package/server/services/android/controller.js +770 -237
- package/server/services/android/process.js +140 -0
- package/server/services/android/sdk_download.js +143 -0
- package/server/services/android/uia.js +6 -5
- package/server/services/artifacts/store.js +24 -0
- package/server/services/browser/controller.js +843 -385
- package/server/services/browser/extension/gateway.js +40 -16
- package/server/services/browser/extension/protocol.js +15 -1
- package/server/services/browser/extension/provider.js +71 -47
- package/server/services/browser/extension/registry.js +155 -34
- package/server/services/cli/executor.js +62 -9
- package/server/services/credentials/bitwarden_cli.js +322 -0
- package/server/services/credentials/broker.js +594 -0
- package/server/services/desktop/gateway.js +41 -4
- package/server/services/desktop/protocol.js +3 -0
- package/server/services/desktop/provider.js +39 -42
- package/server/services/desktop/registry.js +137 -52
- package/server/services/integrations/bitwarden/constants.js +14 -0
- package/server/services/integrations/bitwarden/provider.js +197 -0
- package/server/services/integrations/bitwarden/snapshot.js +65 -0
- package/server/services/integrations/figma/provider.js +78 -12
- package/server/services/integrations/github/common.js +11 -6
- package/server/services/integrations/github/provider.js +52 -53
- package/server/services/integrations/google/provider.js +55 -19
- package/server/services/integrations/home_assistant/network.js +17 -20
- package/server/services/integrations/home_assistant/provider.js +7 -5
- package/server/services/integrations/home_assistant/tools.js +17 -5
- package/server/services/integrations/http.js +51 -0
- package/server/services/integrations/manager.js +159 -53
- package/server/services/integrations/microsoft/provider.js +80 -13
- package/server/services/integrations/neoarchive/provider.js +55 -29
- package/server/services/integrations/neorecall/client.js +17 -10
- package/server/services/integrations/neorecall/provider.js +20 -11
- package/server/services/integrations/notion/provider.js +16 -13
- package/server/services/integrations/oauth_provider.js +115 -51
- package/server/services/integrations/registry.js +2 -0
- package/server/services/integrations/slack/provider.js +98 -9
- package/server/services/integrations/spotify/provider.js +67 -71
- package/server/services/integrations/trello/provider.js +21 -7
- package/server/services/integrations/weather/provider.js +18 -12
- package/server/services/integrations/whatsapp/provider.js +76 -16
- package/server/services/manager.js +110 -1
- package/server/services/memory/embedding_index.js +20 -8
- package/server/services/memory/embeddings.js +151 -90
- package/server/services/memory/ingestion.js +50 -9
- package/server/services/memory/ingestion_documents.js +13 -3
- package/server/services/memory/manager.js +52 -19
- package/server/services/messaging/automation.js +85 -10
- package/server/services/messaging/formatting_guides.js +7 -4
- package/server/services/messaging/http_platforms.js +33 -13
- package/server/services/messaging/inbound_queue.js +78 -24
- package/server/services/messaging/inbound_store.js +224 -0
- package/server/services/messaging/manager.js +326 -51
- package/server/services/messaging/typing_keepalive.js +5 -2
- package/server/services/messaging/whatsapp.js +22 -14
- package/server/services/network/http.js +210 -0
- package/server/services/network/safe_request.js +307 -0
- package/server/services/runtime/backends/local-vm.js +227 -67
- package/server/services/runtime/docker-vm-manager.js +9 -0
- package/server/services/runtime/guest_bootstrap.js +30 -4
- package/server/services/runtime/guest_image.js +43 -12
- package/server/services/runtime/manager.js +77 -23
- package/server/services/runtime/validation.js +7 -6
- package/server/services/security/tool_categories.js +6 -0
- package/server/services/social_reach/channels/github.js +10 -4
- package/server/services/social_reach/channels/reddit.js +4 -4
- package/server/services/social_reach/channels/rss.js +2 -2
- package/server/services/social_reach/channels/social_video.js +12 -7
- package/server/services/social_reach/channels/v2ex.js +21 -8
- package/server/services/social_reach/channels/x.js +2 -2
- package/server/services/social_reach/channels/xueqiu.js +5 -5
- package/server/services/social_reach/service.js +9 -6
- package/server/services/social_reach/utils.js +65 -14
- package/server/services/social_video/service.js +160 -50
- package/server/services/tasks/integration_runtime.js +18 -8
- package/server/services/tasks/runtime.js +39 -4
- package/server/services/voice/agentBridge.js +17 -4
- package/server/services/voice/bufferedLiveRelayAdapter.js +5 -0
- package/server/services/voice/liveSession.js +31 -0
- package/server/services/voice/message.js +1 -1
- package/server/services/voice/openaiSpeech.js +33 -8
- package/server/services/voice/providers.js +233 -151
- package/server/services/voice/runtime.js +2 -2
- package/server/services/voice/runtimeManager.js +118 -20
- package/server/services/voice/turnRunner.js +6 -0
- package/server/services/wearable/firmware_manifest.js +51 -13
- package/server/services/wearable/service.js +1 -0
- package/server/utils/abort.js +96 -0
- package/server/utils/cloud-security.js +110 -3
- package/server/utils/files.js +31 -0
- package/server/utils/image_payload.js +95 -0
- package/server/utils/retry.js +107 -0
|
@@ -4890,6 +4890,88 @@ class NeoAgentController extends ChangeNotifier {
|
|
|
4890
4890
|
}
|
|
4891
4891
|
}
|
|
4892
4892
|
|
|
4893
|
+
Future<Map<String, dynamic>> unlockBitwarden(
|
|
4894
|
+
String masterPassword, {
|
|
4895
|
+
required int idleTimeoutMinutes,
|
|
4896
|
+
}) async {
|
|
4897
|
+
try {
|
|
4898
|
+
errorMessage = null;
|
|
4899
|
+
return await _backendClient.unlockBitwarden(
|
|
4900
|
+
backendUrl,
|
|
4901
|
+
masterPassword: masterPassword,
|
|
4902
|
+
idleTimeoutMinutes: idleTimeoutMinutes,
|
|
4903
|
+
agentId: _scopedAgentId,
|
|
4904
|
+
);
|
|
4905
|
+
} catch (error) {
|
|
4906
|
+
errorMessage = _friendlyErrorMessage(error);
|
|
4907
|
+
rethrow;
|
|
4908
|
+
} finally {
|
|
4909
|
+
notifyListeners();
|
|
4910
|
+
}
|
|
4911
|
+
}
|
|
4912
|
+
|
|
4913
|
+
Future<void> lockBitwarden() async {
|
|
4914
|
+
try {
|
|
4915
|
+
errorMessage = null;
|
|
4916
|
+
await _backendClient.lockBitwarden(backendUrl, agentId: _scopedAgentId);
|
|
4917
|
+
} catch (error) {
|
|
4918
|
+
errorMessage = _friendlyErrorMessage(error);
|
|
4919
|
+
rethrow;
|
|
4920
|
+
} finally {
|
|
4921
|
+
notifyListeners();
|
|
4922
|
+
}
|
|
4923
|
+
}
|
|
4924
|
+
|
|
4925
|
+
Future<List<Map<String, dynamic>>> fetchBitwardenItems() async {
|
|
4926
|
+
final response = await _backendClient.fetchBitwardenItems(
|
|
4927
|
+
backendUrl,
|
|
4928
|
+
agentId: _scopedAgentId,
|
|
4929
|
+
);
|
|
4930
|
+
return _jsonMapList(
|
|
4931
|
+
response['items'],
|
|
4932
|
+
).map((row) => Map<String, dynamic>.from(row)).toList();
|
|
4933
|
+
}
|
|
4934
|
+
|
|
4935
|
+
Future<List<Map<String, dynamic>>> fetchCredentialBindings() async {
|
|
4936
|
+
final response = await _backendClient.fetchCredentialBindings(
|
|
4937
|
+
backendUrl,
|
|
4938
|
+
agentId: _scopedAgentId,
|
|
4939
|
+
);
|
|
4940
|
+
return _jsonMapList(
|
|
4941
|
+
response['bindings'],
|
|
4942
|
+
).map((row) => Map<String, dynamic>.from(row)).toList();
|
|
4943
|
+
}
|
|
4944
|
+
|
|
4945
|
+
Future<void> createCredentialBinding(Map<String, dynamic> binding) async {
|
|
4946
|
+
try {
|
|
4947
|
+
errorMessage = null;
|
|
4948
|
+
await _backendClient.createCredentialBinding(
|
|
4949
|
+
backendUrl,
|
|
4950
|
+
binding: binding,
|
|
4951
|
+
agentId: _scopedAgentId,
|
|
4952
|
+
);
|
|
4953
|
+
await refreshSkills();
|
|
4954
|
+
} catch (error) {
|
|
4955
|
+
errorMessage = _friendlyErrorMessage(error);
|
|
4956
|
+
rethrow;
|
|
4957
|
+
}
|
|
4958
|
+
}
|
|
4959
|
+
|
|
4960
|
+
Future<void> deleteCredentialBinding(String bindingId) async {
|
|
4961
|
+
try {
|
|
4962
|
+
errorMessage = null;
|
|
4963
|
+
await _backendClient.deleteCredentialBinding(
|
|
4964
|
+
backendUrl,
|
|
4965
|
+
bindingId,
|
|
4966
|
+
agentId: _scopedAgentId,
|
|
4967
|
+
);
|
|
4968
|
+
await refreshSkills();
|
|
4969
|
+
} catch (error) {
|
|
4970
|
+
errorMessage = _friendlyErrorMessage(error);
|
|
4971
|
+
rethrow;
|
|
4972
|
+
}
|
|
4973
|
+
}
|
|
4974
|
+
|
|
4893
4975
|
Future<void> disconnectOfficialIntegration(
|
|
4894
4976
|
String providerId, {
|
|
4895
4977
|
required int connectionId,
|
|
@@ -5950,11 +6032,13 @@ class NeoAgentController extends ChangeNotifier {
|
|
|
5950
6032
|
List<String> get enabledModelIds {
|
|
5951
6033
|
final raw = settings['enabled_models'];
|
|
5952
6034
|
if (raw is List) {
|
|
5953
|
-
final
|
|
5954
|
-
final
|
|
5955
|
-
|
|
5956
|
-
|
|
5957
|
-
.
|
|
6035
|
+
final filtered = <String>[];
|
|
6036
|
+
for (final item in raw) {
|
|
6037
|
+
final model = _modelForValue(item.toString(), supportedModels);
|
|
6038
|
+
if (model != null && !filtered.contains(model.id)) {
|
|
6039
|
+
filtered.add(model.id);
|
|
6040
|
+
}
|
|
6041
|
+
}
|
|
5958
6042
|
if (filtered.isNotEmpty) {
|
|
5959
6043
|
return filtered;
|
|
5960
6044
|
}
|
|
@@ -5965,18 +6049,30 @@ class NeoAgentController extends ChangeNotifier {
|
|
|
5965
6049
|
.toList();
|
|
5966
6050
|
}
|
|
5967
6051
|
|
|
5968
|
-
String get defaultChatModel =>
|
|
5969
|
-
|
|
6052
|
+
String get defaultChatModel => _ensureModelValue(
|
|
6053
|
+
settings['default_chat_model']?.toString() ?? 'auto',
|
|
6054
|
+
supportedModels,
|
|
6055
|
+
allowAuto: true,
|
|
6056
|
+
);
|
|
5970
6057
|
|
|
5971
|
-
String get defaultSubagentModel =>
|
|
5972
|
-
|
|
6058
|
+
String get defaultSubagentModel => _ensureModelValue(
|
|
6059
|
+
settings['default_subagent_model']?.toString() ?? 'auto',
|
|
6060
|
+
supportedModels,
|
|
6061
|
+
allowAuto: true,
|
|
6062
|
+
);
|
|
5973
6063
|
|
|
5974
|
-
String get defaultSpeechModel =>
|
|
5975
|
-
|
|
6064
|
+
String get defaultSpeechModel => _ensureModelValue(
|
|
6065
|
+
settings['default_speech_model']?.toString() ?? 'auto',
|
|
6066
|
+
supportedModels,
|
|
6067
|
+
allowAuto: true,
|
|
6068
|
+
);
|
|
5976
6069
|
|
|
5977
|
-
String get fallbackModel =>
|
|
5978
|
-
|
|
5979
|
-
|
|
6070
|
+
String get fallbackModel => _ensureModelValue(
|
|
6071
|
+
settings['fallback_model_id']?.toString() ??
|
|
6072
|
+
_firstAvailableModelId(supportedModels),
|
|
6073
|
+
supportedModels,
|
|
6074
|
+
allowAuto: false,
|
|
6075
|
+
);
|
|
5980
6076
|
|
|
5981
6077
|
String get voiceSttProvider =>
|
|
5982
6078
|
_settingString('voice_stt_provider', 'openai', lowercase: true);
|
|
@@ -6117,12 +6213,7 @@ class NeoAgentController extends ChangeNotifier {
|
|
|
6117
6213
|
}
|
|
6118
6214
|
|
|
6119
6215
|
ModelMeta? _modelById(String id) {
|
|
6120
|
-
|
|
6121
|
-
if (model.id == id) {
|
|
6122
|
-
return model;
|
|
6123
|
-
}
|
|
6124
|
-
}
|
|
6125
|
-
return null;
|
|
6216
|
+
return _modelForValue(id, supportedModels);
|
|
6126
6217
|
}
|
|
6127
6218
|
|
|
6128
6219
|
void _ensureUpdatePolling() {
|