neoagent 2.1.18-beta.4 → 2.1.18-beta.5
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 +59 -18
- package/package.json +1 -1
- package/server/index.js +10 -1
- package/server/public/flutter_bootstrap.js +1 -1
- package/server/public/main.dart.js +16731 -16696
- package/server/services/ai/engine.js +9 -32
package/.env.example
CHANGED
|
@@ -1,22 +1,31 @@
|
|
|
1
|
+
########################################
|
|
2
|
+
# Core runtime
|
|
3
|
+
########################################
|
|
4
|
+
|
|
1
5
|
PORT=3333
|
|
2
|
-
NODE_ENV=
|
|
6
|
+
NODE_ENV=production
|
|
3
7
|
SESSION_SECRET=change-this-to-a-random-secret-in-production
|
|
8
|
+
|
|
9
|
+
# Public base URL used for OAuth callbacks and external links.
|
|
10
|
+
# Example: https://agent.example.com
|
|
4
11
|
PUBLIC_URL=
|
|
12
|
+
|
|
13
|
+
# Set true when running behind HTTPS or a TLS-terminating proxy.
|
|
5
14
|
SECURE_COOKIES=false
|
|
15
|
+
|
|
16
|
+
# Use `managed` for SaaS-style deployments to hide self-update controls in the UI.
|
|
6
17
|
NEOAGENT_DEPLOYMENT_MODE=self_hosted
|
|
18
|
+
|
|
19
|
+
# Self-hosted release track used by `neoagent update`.
|
|
7
20
|
NEOAGENT_RELEASE_CHANNEL=stable
|
|
8
21
|
|
|
9
|
-
# Comma-separated list of allowed CORS origins
|
|
10
|
-
# Example:
|
|
22
|
+
# Comma-separated list of allowed CORS origins.
|
|
23
|
+
# Example: http://localhost:3333,https://yourdomain.com
|
|
11
24
|
ALLOWED_ORIGINS=
|
|
12
25
|
|
|
13
|
-
|
|
14
|
-
#
|
|
15
|
-
|
|
16
|
-
# • Image vision / analysis (grok-4-1-fast-reasoning has native image input — analyze_image tool, incoming WhatsApp photos)
|
|
17
|
-
# Get your key at: https://console.x.ai
|
|
18
|
-
XAI_API_KEY=your-xai-api-key-here
|
|
19
|
-
# XAI_BASE_URL=https://api.x.ai/v1
|
|
26
|
+
########################################
|
|
27
|
+
# Hosted AI providers
|
|
28
|
+
########################################
|
|
20
29
|
|
|
21
30
|
# OpenAI API key — used for:
|
|
22
31
|
# • Semantic memory embeddings (text-embedding-3-small, 1536 dims)
|
|
@@ -26,23 +35,48 @@ XAI_API_KEY=your-xai-api-key-here
|
|
|
26
35
|
# Without this key: memory falls back to keyword search, voice calls and WhatsApp audio transcription are unavailable.
|
|
27
36
|
# Get your key at: https://platform.openai.com/api-keys
|
|
28
37
|
OPENAI_API_KEY=your-openai-api-key-here
|
|
29
|
-
# OPENAI_BASE_URL=https://your-openai-compatible-endpoint/v1
|
|
30
38
|
|
|
31
39
|
# Anthropic API key — used for:
|
|
32
40
|
# • Claude models for long-context drafting and analysis
|
|
33
41
|
ANTHROPIC_API_KEY=your-anthropic-api-key-here
|
|
34
|
-
|
|
42
|
+
|
|
43
|
+
# xAI API key — used for:
|
|
44
|
+
# • Main AI reasoning (grok-4-1-fast-reasoning — all agent tasks and conversations)
|
|
45
|
+
# • Image generation (grok-imagine-image — generate_image tool)
|
|
46
|
+
# • Image vision / analysis (grok-4-1-fast-reasoning has native image input — analyze_image tool, incoming WhatsApp photos)
|
|
47
|
+
# Get your key at: https://console.x.ai
|
|
48
|
+
XAI_API_KEY=your-xai-api-key-here
|
|
35
49
|
|
|
36
50
|
# Google AI Studio API key — used for:
|
|
37
51
|
# • Gemini models (e.g. gemini-3.1-flash-lite-preview)
|
|
38
52
|
# Get your key at: https://aistudio.google.com/app/apikey
|
|
39
53
|
GOOGLE_AI_KEY=your-google-ai-key-here
|
|
40
54
|
|
|
41
|
-
#
|
|
55
|
+
# MiniMax Coding Plan API key — used for:
|
|
56
|
+
# • MiniMax-M2.7 via the Anthropic-compatible MiniMax endpoint
|
|
57
|
+
MINIMAX_API_KEY=your-minimax-api-key-here
|
|
58
|
+
|
|
59
|
+
########################################
|
|
60
|
+
# Provider endpoint overrides
|
|
61
|
+
########################################
|
|
62
|
+
|
|
63
|
+
# OPENAI_BASE_URL=https://your-openai-compatible-endpoint/v1
|
|
64
|
+
# ANTHROPIC_BASE_URL=https://your-anthropic-compatible-endpoint
|
|
65
|
+
# XAI_BASE_URL=https://api.x.ai/v1
|
|
66
|
+
|
|
67
|
+
########################################
|
|
68
|
+
# Official integrations
|
|
69
|
+
########################################
|
|
70
|
+
|
|
71
|
+
# Google Workspace official integration OAuth client.
|
|
42
72
|
# Redirect URI should match ${PUBLIC_URL:-http://localhost:3333}/api/integrations/oauth/callback
|
|
43
73
|
GOOGLE_OAUTH_CLIENT_ID=your-google-oauth-client-id
|
|
44
74
|
GOOGLE_OAUTH_CLIENT_SECRET=your-google-oauth-client-secret
|
|
45
|
-
|
|
75
|
+
GOOGLE_OAUTH_REDIRECT_URI=
|
|
76
|
+
|
|
77
|
+
########################################
|
|
78
|
+
# Tools and media services
|
|
79
|
+
########################################
|
|
46
80
|
|
|
47
81
|
# Brave Search API key — used for:
|
|
48
82
|
# • Native web_search tool (search the web without driving the browser)
|
|
@@ -58,7 +92,14 @@ DEEPGRAM_BASE_URL=https://api.deepgram.com
|
|
|
58
92
|
DEEPGRAM_MODEL=nova-3
|
|
59
93
|
DEEPGRAM_LANGUAGE=multi
|
|
60
94
|
|
|
61
|
-
|
|
62
|
-
#
|
|
63
|
-
|
|
64
|
-
|
|
95
|
+
########################################
|
|
96
|
+
# Local model runtime
|
|
97
|
+
########################################
|
|
98
|
+
|
|
99
|
+
OLLAMA_URL=http://localhost:11434
|
|
100
|
+
|
|
101
|
+
########################################
|
|
102
|
+
# Messaging and voice integrations
|
|
103
|
+
########################################
|
|
104
|
+
|
|
105
|
+
TELNYX_WEBHOOK_TOKEN=
|
package/package.json
CHANGED
package/server/index.js
CHANGED
|
@@ -2,13 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
const {
|
|
4
4
|
ENV_FILE,
|
|
5
|
+
LEGACY_ENV_FILE,
|
|
5
6
|
migrateLegacyRuntime,
|
|
6
7
|
ensureRuntimeDirs
|
|
7
8
|
} = require('../runtime/paths');
|
|
8
9
|
|
|
9
|
-
require('dotenv')
|
|
10
|
+
const dotenv = require('dotenv');
|
|
11
|
+
|
|
10
12
|
migrateLegacyRuntime();
|
|
11
13
|
ensureRuntimeDirs();
|
|
14
|
+
dotenv.config({ path: LEGACY_ENV_FILE });
|
|
15
|
+
dotenv.config({ path: ENV_FILE, override: true });
|
|
12
16
|
|
|
13
17
|
const express = require('express');
|
|
14
18
|
const { createServer } = require('http');
|
|
@@ -34,9 +38,14 @@ function logStartupConfig() {
|
|
|
34
38
|
SESSION_SECRET: Boolean(process.env.SESSION_SECRET),
|
|
35
39
|
OPENAI_API_KEY: Boolean(process.env.OPENAI_API_KEY),
|
|
36
40
|
DEEPGRAM_API_KEY: Boolean(process.env.DEEPGRAM_API_KEY),
|
|
41
|
+
GOOGLE_OAUTH_CLIENT_ID: Boolean(process.env.GOOGLE_OAUTH_CLIENT_ID),
|
|
42
|
+
GOOGLE_OAUTH_CLIENT_SECRET: Boolean(process.env.GOOGLE_OAUTH_CLIENT_SECRET),
|
|
37
43
|
};
|
|
38
44
|
|
|
39
45
|
console.log(`[Startup] Using env file: ${ENV_FILE}`);
|
|
46
|
+
if (LEGACY_ENV_FILE !== ENV_FILE) {
|
|
47
|
+
console.log(`[Startup] Legacy env fallback: ${LEGACY_ENV_FILE}`);
|
|
48
|
+
}
|
|
40
49
|
console.log('[Startup] Key availability:', flags);
|
|
41
50
|
}
|
|
42
51
|
|
|
@@ -37,6 +37,6 @@ _flutter.buildConfig = {"engineRevision":"425cfb54d01a9472b3e81d9e76fd63a4a44cfb
|
|
|
37
37
|
|
|
38
38
|
_flutter.loader.load({
|
|
39
39
|
serviceWorkerSettings: {
|
|
40
|
-
serviceWorkerVersion: "
|
|
40
|
+
serviceWorkerVersion: "2183808041" /* Flutter's service worker is deprecated and will be removed in a future Flutter release. */
|
|
41
41
|
}
|
|
42
42
|
});
|