neoagent 2.0.6 → 2.0.7
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/README.md +1 -21
- package/package.json +1 -1
- package/server/public/flutter_bootstrap.js +1 -1
- package/server/routes/settings.js +32 -0
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
[](LICENSE)
|
|
11
11
|
|
|
12
12
|
A self-hosted, proactive AI agent with a Flutter client for web and Android.
|
|
13
|
-
Connects to OpenAI, xAI, Google, and local Ollama
|
|
13
|
+
Connects to OpenAI, xAI, Google, and local Ollama.
|
|
14
14
|
Runs tasks on a schedule, controls a browser, manages files, and talks to you over Telegram, Discord, or WhatsApp.
|
|
15
15
|
|
|
16
16
|
```bash
|
|
@@ -18,11 +18,6 @@ npm install -g neoagent
|
|
|
18
18
|
neoagent install
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
From source:
|
|
22
|
-
```bash
|
|
23
|
-
bash <(curl -fsSL https://raw.githubusercontent.com/NeoLabs-Systems/NeoAgent/main/install.sh)
|
|
24
|
-
```
|
|
25
|
-
|
|
26
21
|
Manage the service:
|
|
27
22
|
```bash
|
|
28
23
|
neoagent status
|
|
@@ -30,21 +25,6 @@ neoagent update
|
|
|
30
25
|
neoagent logs
|
|
31
26
|
```
|
|
32
27
|
|
|
33
|
-
Build the Flutter web client:
|
|
34
|
-
```bash
|
|
35
|
-
npm run flutter:build:web
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
The installer and npm package ship the bundled web client from `server/public`, so Flutter is only needed when you want to rebuild the frontend locally.
|
|
39
|
-
|
|
40
|
-
Local development helpers live in `dev/`:
|
|
41
|
-
```bash
|
|
42
|
-
./dev/backend.sh
|
|
43
|
-
./dev/web.sh
|
|
44
|
-
./dev/stack.sh
|
|
45
|
-
./dev/test.sh
|
|
46
|
-
```
|
|
47
|
-
|
|
48
28
|
---
|
|
49
29
|
|
|
50
30
|
[⚙️ Configuration](docs/configuration.md) · [🧰 Skills](docs/skills.md) · [🐛 Issues](https://github.com/NeoLabs-Systems/NeoAgent/issues)
|
package/package.json
CHANGED
|
@@ -37,6 +37,6 @@ _flutter.buildConfig = {"engineRevision":"052f31d115eceda8cbff1b3481fcde4330c4ae
|
|
|
37
37
|
|
|
38
38
|
_flutter.loader.load({
|
|
39
39
|
serviceWorkerSettings: {
|
|
40
|
-
serviceWorkerVersion: "
|
|
40
|
+
serviceWorkerVersion: "1494853266" /* Flutter's service worker is deprecated and will be removed in a future Flutter release. */
|
|
41
41
|
}
|
|
42
42
|
});
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
const express = require('express');
|
|
2
2
|
const fs = require('fs');
|
|
3
|
+
const path = require('path');
|
|
3
4
|
const router = express.Router();
|
|
4
5
|
const db = require('../db/database');
|
|
5
6
|
const { requireAuth } = require('../middleware/auth');
|
|
@@ -28,6 +29,17 @@ function readUpdateStatus() {
|
|
|
28
29
|
}
|
|
29
30
|
}
|
|
30
31
|
|
|
32
|
+
function writeUpdateStatus(patch) {
|
|
33
|
+
const next = {
|
|
34
|
+
...readUpdateStatus(),
|
|
35
|
+
...patch,
|
|
36
|
+
updatedAt: new Date().toISOString()
|
|
37
|
+
};
|
|
38
|
+
fs.mkdirSync(path.dirname(UPDATE_STATUS_FILE), { recursive: true });
|
|
39
|
+
fs.writeFileSync(UPDATE_STATUS_FILE, JSON.stringify(next, null, 2));
|
|
40
|
+
return next;
|
|
41
|
+
}
|
|
42
|
+
|
|
31
43
|
// Get supported models metadata
|
|
32
44
|
router.get('/meta/models', async (req, res) => {
|
|
33
45
|
const { getSupportedModels } = require('../services/ai/models');
|
|
@@ -221,6 +233,16 @@ router.post('/update', (req, res) => {
|
|
|
221
233
|
return res.status(409).json({ success: false, error: 'An update is already running' });
|
|
222
234
|
}
|
|
223
235
|
console.log('[Settings] Triggering update-runner...');
|
|
236
|
+
writeUpdateStatus({
|
|
237
|
+
state: 'running',
|
|
238
|
+
progress: 1,
|
|
239
|
+
phase: 'starting',
|
|
240
|
+
message: 'Launching update job',
|
|
241
|
+
startedAt: new Date().toISOString(),
|
|
242
|
+
completedAt: null,
|
|
243
|
+
changelog: [],
|
|
244
|
+
logs: []
|
|
245
|
+
});
|
|
224
246
|
|
|
225
247
|
// Spawn detached runner so status survives server restarts.
|
|
226
248
|
const child = spawn(process.execPath, ['scripts/update-runner.js'], {
|
|
@@ -229,6 +251,16 @@ router.post('/update', (req, res) => {
|
|
|
229
251
|
cwd: APP_DIR
|
|
230
252
|
});
|
|
231
253
|
|
|
254
|
+
child.once('error', (error) => {
|
|
255
|
+
writeUpdateStatus({
|
|
256
|
+
state: 'failed',
|
|
257
|
+
progress: 100,
|
|
258
|
+
phase: 'failed',
|
|
259
|
+
message: `Failed to launch update job: ${error.message}`,
|
|
260
|
+
completedAt: new Date().toISOString()
|
|
261
|
+
});
|
|
262
|
+
});
|
|
263
|
+
|
|
232
264
|
child.unref();
|
|
233
265
|
res.json({ success: true, message: 'Update triggered', pid: child.pid });
|
|
234
266
|
});
|