neoagent 2.1.18-beta.13 → 2.1.18-beta.15

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 CHANGED
@@ -35,7 +35,7 @@ neoagent logs
35
35
 
36
36
  ## Links
37
37
 
38
- [Docs site](https://neolabs-systems.github.io/NeoAgent/) | [Getting started](docs/getting-started.md) | [Capabilities](docs/capabilities.md) | [Configuration](docs/configuration.md) | [Why NeoAgent](docs/why-neoagent.md) | [Issues](https://github.com/NeoLabs-Systems/NeoAgent/issues)
38
+ [Docs](https://neolabs-systems.github.io/NeoAgent/) | [Issues](https://github.com/NeoLabs-Systems/NeoAgent/issues)
39
39
 
40
40
  ---
41
41
 
@@ -5,11 +5,38 @@ export default defineConfig({
5
5
  description: 'Self-hosted proactive AI agent docs',
6
6
  base: '/NeoAgent/',
7
7
  cleanUrls: true,
8
+ lastUpdated: true,
8
9
  themeConfig: {
9
10
  nav: [
10
- { text: 'Guide', link: '/getting-started' },
11
- { text: 'Capabilities', link: '/capabilities' },
12
- { text: 'Configuration', link: '/configuration' },
11
+ {
12
+ text: 'Start',
13
+ activeMatch: '^/(getting-started|why-neoagent)?$',
14
+ items: [
15
+ { text: 'Overview', link: '/' },
16
+ { text: 'Getting Started', link: '/getting-started' },
17
+ { text: 'Why NeoAgent', link: '/why-neoagent' },
18
+ ],
19
+ },
20
+ {
21
+ text: 'Product',
22
+ activeMatch: '^/(capabilities|automation|integrations|skills)',
23
+ items: [
24
+ { text: 'Capabilities', link: '/capabilities' },
25
+ { text: 'Android Control', link: '/capabilities#android-control' },
26
+ { text: 'Recordings', link: '/capabilities#recordings' },
27
+ { text: 'Integrations', link: '/integrations' },
28
+ { text: 'Automation', link: '/automation' },
29
+ ],
30
+ },
31
+ {
32
+ text: 'Operate',
33
+ activeMatch: '^/(configuration|operations)',
34
+ items: [
35
+ { text: 'Configuration', link: '/configuration' },
36
+ { text: 'Skills', link: '/skills' },
37
+ { text: 'Operations', link: '/operations' },
38
+ ],
39
+ },
13
40
  { text: 'Why NeoAgent', link: '/why-neoagent' },
14
41
  { text: 'GitHub', link: 'https://github.com/NeoLabs-Systems/NeoAgent' },
15
42
  ],
@@ -19,17 +46,32 @@ export default defineConfig({
19
46
  items: [
20
47
  { text: 'Overview', link: '/' },
21
48
  { text: 'Getting Started', link: '/getting-started' },
22
- { text: 'Capabilities', link: '/capabilities' },
23
49
  { text: 'Why NeoAgent', link: '/why-neoagent' },
24
50
  ],
25
51
  },
26
52
  {
27
- text: 'Operate',
53
+ text: 'Product Surface',
28
54
  items: [
29
- { text: 'Configuration', link: '/configuration' },
55
+ {
56
+ text: 'Capabilities',
57
+ link: '/capabilities',
58
+ items: [
59
+ { text: 'Android Control', link: '/capabilities#android-control' },
60
+ { text: 'Recordings', link: '/capabilities#recordings' },
61
+ { text: 'Health Data', link: '/capabilities#health-data' },
62
+ { text: 'Agent Tools', link: '/capabilities#agent-tools' },
63
+ { text: 'Runtime Modes', link: '/capabilities#runtime-modes' },
64
+ ],
65
+ },
30
66
  { text: 'Automation', link: '/automation' },
31
67
  { text: 'Integrations', link: '/integrations' },
32
68
  { text: 'Skills', link: '/skills' },
69
+ ],
70
+ },
71
+ {
72
+ text: 'Operate',
73
+ items: [
74
+ { text: 'Configuration', link: '/configuration' },
33
75
  { text: 'Operations', link: '/operations' },
34
76
  ],
35
77
  },
@@ -40,10 +82,18 @@ export default defineConfig({
40
82
  search: {
41
83
  provider: 'local',
42
84
  },
85
+ outline: {
86
+ level: [2, 3],
87
+ label: 'On This Page',
88
+ },
43
89
  editLink: {
44
90
  pattern: 'https://github.com/NeoLabs-Systems/NeoAgent/edit/main/docs/:path',
45
91
  text: 'Edit this page on GitHub',
46
92
  },
93
+ docFooter: {
94
+ prev: 'Previous',
95
+ next: 'Next',
96
+ },
47
97
  footer: {
48
98
  message: 'Released under the MIT License.',
49
99
  copyright: 'Copyright NeoLabs Systems',
@@ -79,11 +79,11 @@ The agent tool `read_health_data` returns summaries and recent samples. It is de
79
79
  NeoAgent has two separate integration layers:
80
80
 
81
81
  - Official OAuth integrations expose structured tools for Google Workspace, Microsoft 365, Notion, Slack, and Figma.
82
- - Messaging platforms let the agent talk through Telegram, Discord, WhatsApp, and Telnyx Voice.
82
+ - Messaging platforms let the agent talk through WhatsApp, Telegram, Discord, Slack, Google Chat, Teams, Matrix, Signal, iMessage/BlueBubbles, IRC, Twitch, LINE, Mattermost, configurable webhook bridges, and Telnyx Voice.
83
83
 
84
84
  Official integration examples include Gmail thread search and send mail, Google Calendar events, Drive upload/download/export/share links, Docs create/append/replace, Sheets read/update/append/create, Microsoft Outlook/Calendar/OneDrive/Teams tools, Notion search/page/block/database tools, Slack conversation/message tools, and Figma file/node/comment/image tools.
85
85
 
86
- Messaging examples include Telegram and Discord messages, WhatsApp text and media sends, Telnyx inbound voice, Telnyx outbound calls, and scheduled-task call delivery.
86
+ Messaging examples include Telegram and Discord messages, Slack channel replies, Matrix room messages, Google Chat and Teams webhook delivery, Signal bridge delivery, iMessage/BlueBubbles sends, WhatsApp text and media sends, Telnyx inbound voice, Telnyx outbound calls, and scheduled-task call delivery.
87
87
 
88
88
  ## Agent Tools
89
89
 
@@ -67,7 +67,15 @@ All OAuth callbacks default to `PUBLIC_URL + /api/integrations/oauth/callback` u
67
67
 
68
68
  ## Messaging
69
69
 
70
- Telegram, Discord, and WhatsApp tokens are stored through the Flutter app settings page, not in `.env`. Telnyx webhook verification is configured through the environment.
70
+ Messaging platform credentials are stored through the Flutter app messaging tab, not in `.env`. This includes Telegram, Discord, Slack, Google Chat, Microsoft Teams, Matrix, Signal, iMessage/BlueBubbles, IRC, Twitch, LINE, Mattermost, and the configurable webhook bridges. Use the app to set platform tokens, webhook URLs, inbound secrets, polling options, and access lists.
71
+
72
+ Generic inbound messaging callbacks use:
73
+
74
+ ```text
75
+ PUBLIC_URL + /api/messaging/webhook/:platform
76
+ ```
77
+
78
+ Telnyx webhook verification is configured through the environment.
71
79
 
72
80
  | Variable | Description |
73
81
  |---|---|
package/docs/index.md CHANGED
@@ -1,8 +1,47 @@
1
- # NeoAgent
1
+ ---
2
+ layout: home
2
3
 
3
- NeoAgent is a self-hosted proactive AI agent with a bundled Flutter client for web and Android. It runs on your server, keeps credentials server-side, and gives you an operator UI for chat, runs, logs, scheduler tasks, skills, integrations, MCP, memory, Android devices, recordings, Health Connect data, wearables, and settings.
4
+ hero:
5
+ name: NeoAgent
6
+ text: Self-hosted proactive AI agent
7
+ tagline: Run your own server, keep credentials server-side, and operate browser, Android, recordings, schedules, integrations, memory, MCP, and messaging from one Flutter UI.
8
+ actions:
9
+ - theme: brand
10
+ text: Get Started
11
+ link: /getting-started
12
+ - theme: alt
13
+ text: Capabilities
14
+ link: /capabilities
15
+ - theme: alt
16
+ text: Why NeoAgent
17
+ link: /why-neoagent
4
18
 
5
- It is designed for people who want a focused personal automation server rather than a broad gateway platform. NeoAgent can run scheduled tasks, use browser and file tools, remember long-term context, connect to hosted AI providers or local Ollama, sync Android Health Connect data, record audio on Android, bridge supported wearables, and send results through Telegram, Discord, WhatsApp, or Telnyx Voice.
19
+ features:
20
+ - title: Android Control
21
+ details: Let the AI operate a server-attached Android emulator or device with screenshots, UI dumps, app launch, intents, taps, typing, swipes, APK installs, and ADB shell.
22
+ link: /capabilities#android-control
23
+ linkText: Android Control
24
+ - title: Recordings
25
+ details: Capture web, Android, and wearable audio as sessions with transcripts, searchable segments, playback, retry, cleanup, and AI-generated insights.
26
+ link: /capabilities#recordings
27
+ linkText: Recordings
28
+ - title: Proactive Automation
29
+ details: Create recurring tasks and one-time runs that can use browser, files, CLI, memory, MCP, integrations, subagents, health summaries, and messaging delivery.
30
+ link: /automation
31
+ linkText: Automation
32
+ - title: Official Integrations
33
+ details: Use OAuth-backed Google Workspace, Microsoft 365, Notion, Slack, and Figma tools instead of brittle browser automation where possible.
34
+ link: /integrations
35
+ linkText: Integrations
36
+ - title: Server-Side Secrets
37
+ details: Keep AI provider keys, OAuth client secrets, Telnyx tokens, runtime settings, and deployment controls on the NeoAgent server.
38
+ link: /configuration
39
+ linkText: Configuration
40
+ - title: Recovery Path
41
+ details: Operate self-hosted installs with status, logs, release channels, update, fix, runtime paths, and the remote-server log caveat.
42
+ link: /operations
43
+ linkText: Operations
44
+ ---
6
45
 
7
46
  ## Quick Start
8
47
 
@@ -11,29 +50,19 @@ npm install -g neoagent
11
50
  neoagent install
12
51
  ```
13
52
 
14
- Then open the server URL, sign in, configure providers and messaging, and create your first scheduled task or chat run.
53
+ Open the server URL, sign in, configure providers and messaging, then create a scheduled task or chat run.
15
54
 
16
- ## What NeoAgent Does
55
+ ## Navigation
17
56
 
18
- | Area | Capability |
57
+ | Need | Start here |
19
58
  |---|---|
20
- | AI providers | OpenAI, Anthropic, xAI, Google, MiniMax Code, and local Ollama |
21
- | Operator UI | Chat, live runs, logs, scheduler, skills, integrations, MCP, memory, devices, recordings, health, wearables, settings |
22
- | Automation | Recurring scheduled tasks, one-time runs, browser control, file access, CLI skills, subagents, and messaging delivery |
23
- | Android control | AI control of a server-attached Android emulator or device: screenshots, UI dumps, taps, typing, intents, APK installs, and ADB shell |
24
- | Recordings | Web, Android, and wearable audio sessions with transcript search and AI insights |
25
- | Integrations | Google Workspace, Notion, Microsoft 365, Slack, Figma, and remote MCP servers |
26
- | Messaging | Telegram, Discord, WhatsApp text/media, and Telnyx Voice calls |
27
- | Outputs | Artifacts, Grok image generation, vision analysis, markdown tables, and Mermaid graphs |
28
- | Recovery | `neoagent status`, `neoagent logs`, `neoagent update`, release channels, and `neoagent fix` |
29
-
30
- ## Where To Go Next
31
-
32
- - [Getting started](getting-started.md) covers installation, setup, and service commands.
33
- - [Capabilities](capabilities.md) lists the broader tool, Android control, recording, health, runtime, and integration surface.
34
- - [Configuration](configuration.md) explains server-side environment variables and secrets.
35
- - [Automation](automation.md) explains scheduled tasks and tool safety.
36
- - [Integrations](integrations.md) explains OAuth integrations and messaging.
37
- - [Skills](skills.md) explains built-in and custom skills.
38
- - [Operations](operations.md) explains logs, updates, release channels, and recovery.
39
- - [Why NeoAgent](why-neoagent.md) compares NeoAgent with OpenClaw.
59
+ | Install and first run | [Getting Started](getting-started.md) |
60
+ | Full product surface | [Capabilities](capabilities.md) |
61
+ | Android device control | [Capabilities: Android Control](capabilities.md#android-control) |
62
+ | Recordings and transcripts | [Capabilities: Recordings](capabilities.md#recordings) |
63
+ | Scheduled tasks | [Automation](automation.md) |
64
+ | OAuth apps and messaging | [Integrations](integrations.md) |
65
+ | Skills and MCP | [Skills](skills.md) |
66
+ | Secrets and runtime settings | [Configuration](configuration.md) |
67
+ | Logs, updates, and repair | [Operations](operations.md) |
68
+ | OpenClaw comparison | [Why NeoAgent](why-neoagent.md) |
@@ -33,9 +33,24 @@ NeoAgent can talk through:
33
33
  | WhatsApp | QR-based linking through the app settings; text and media sends |
34
34
  | Telegram | Bot token plus approved chats |
35
35
  | Discord | Bot token plus server or channel access |
36
+ | Slack | Bot token sends plus Events API callbacks |
37
+ | Google Chat | Space webhook sends plus app callback ingestion |
38
+ | Microsoft Teams | Incoming webhook sends plus outgoing webhook ingestion |
39
+ | Matrix | Homeserver access token with room send and polling |
40
+ | Signal | signal-cli REST API bridge |
41
+ | iMessage / BlueBubbles | BlueBubbles-compatible bridge for macOS-hosted iMessage |
42
+ | IRC and Twitch | IRC-style channel connections |
43
+ | LINE and Mattermost | Native send paths with webhook ingestion |
44
+ | Feishu, Nextcloud Talk, Nostr, Synology Chat, Tlon, Zalo, Zalo Personal, WeChat, and WebChat | Configurable webhook bridges |
36
45
  | Telnyx Voice | Inbound and outbound calling with text-to-speech; scheduled tasks can call a number |
37
46
 
38
- Telegram, Discord, and WhatsApp tokens are stored through the Flutter app settings page rather than `.env`. Telnyx webhook verification uses `TELNYX_WEBHOOK_TOKEN`.
47
+ Messaging channel credentials are stored through the Flutter app messaging tab rather than `.env`. The generic inbound callback path is:
48
+
49
+ ```text
50
+ PUBLIC_URL + /api/messaging/webhook/:platform
51
+ ```
52
+
53
+ Use the per-platform inbound secret or native signature fields in the messaging tab for webhook callbacks. Telnyx voice webhooks continue to use `TELNYX_WEBHOOK_TOKEN`.
39
54
 
40
55
  ## Credentials
41
56
 
package/docs/skills.md CHANGED
@@ -10,7 +10,7 @@ Skills are Markdown files that teach the agent how to use local capabilities or
10
10
  | `cli.md` | Execute shell commands in a persistent terminal |
11
11
  | `files.md` | Read, write, and search files on the host |
12
12
  | `memory.md` | Store and recall long-term memories |
13
- | `messaging.md` | Send messages via Telegram, Discord, or WhatsApp |
13
+ | `messaging.md` | Send messages via connected messaging platforms such as WhatsApp, Telegram, Discord, Slack, Matrix, Teams, Google Chat, or webhook bridges |
14
14
  | `system-stats.md` | CPU, memory, and disk usage |
15
15
  | `weather.md` | Current weather via wttr.in |
16
16
  | `ip-info.md` | Public IP and geolocation |
@@ -10,7 +10,7 @@ This comparison is based on the public [OpenClaw README](https://raw.githubuserc
10
10
  | Setup shape | `npm install -g neoagent` followed by `neoagent install`. | `openclaw onboard` is the preferred guided setup path. |
11
11
  | Architecture | Self-hosted Node server, SQLite runtime data, built-in web UI, Android client, server-side credentials. | Gateway control plane with channel connections, optional apps/nodes, and a much wider platform surface. |
12
12
  | Android control | AI control of a server-attached Android emulator or device: screenshots, UI dumps, visible node inspection, app launch, intent launch, taps, long press, typing, swipes, key presses, wait-for-element, APK installs, and `adb shell`. | Broader node/app ecosystem with Android node capabilities documented publicly. |
13
- | Messaging breadth | Focused on Telegram, Discord, WhatsApp, and Telnyx Voice. Better if you want fewer moving parts around common channels. | Wins on breadth: the public README lists many channels including WhatsApp, Telegram, Slack, Discord, Google Chat, Signal, iMessage/BlueBubbles, IRC, Teams, Matrix, and more. |
13
+ | Messaging breadth | Broad built-in messaging tab coverage: WhatsApp, Telegram, Discord, Slack, Google Chat, Signal, iMessage/BlueBubbles, IRC, Teams, Matrix, LINE, Mattermost, Twitch, and configurable webhook bridges for Feishu, Nextcloud Talk, Nostr, Synology Chat, Tlon, Zalo, WeChat, and WebChat, plus Telnyx Voice. | Still broader as a gateway ecosystem: the public README lists the same major channels plus a larger channel/node/app surface around them. |
14
14
  | Operator UX | Built-in UI sections for chat, runs, logs, scheduler, skills, integrations, MCP, memory, devices, recordings, health, and settings. | Broader gateway, web, canvas, platform, node, and channel surfaces. |
15
15
  | Credentials | AI provider keys and OAuth client secrets are server-side; channel settings are stored through the app where supported. | Public docs describe a broader config and auth surface across gateway, channels, nodes, and apps. |
16
16
  | Automation | Cron-style scheduled tasks, one-time runs, browser/file/CLI skills, MCP tools, official integrations, subagents, recording search, health summaries, and messaging delivery. | Broader automation platform including cron, webhooks, nodes, and channel-specific actions. |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neoagent",
3
- "version": "2.1.18-beta.13",
3
+ "version": "2.1.18-beta.15",
4
4
  "description": "Proactive personal AI agent with no limits",
5
5
  "license": "MIT",
6
6
  "main": "server/index.js",
@@ -120,7 +120,12 @@ function createSessionMiddleware({ secureCookies }) {
120
120
 
121
121
  function applyHttpMiddleware(app, { secureCookies, sessionMiddleware, validateOrigin }) {
122
122
  const rawRecordingChunkBody = require('express').raw({ limit: '50mb', type: '*/*' });
123
- const jsonBody = require('express').json({ limit: '10mb' });
123
+ const jsonBody = require('express').json({
124
+ limit: '10mb',
125
+ verify: (req, _res, buf) => {
126
+ if (buf && buf.length) req.rawBody = buf.toString('utf8');
127
+ },
128
+ });
124
129
  const urlencodedBody = require('express').urlencoded({ extended: true });
125
130
  const isRecordingChunkPath = (value = '') => {
126
131
  const path = `${value}`.split('?')[0];
@@ -37,6 +37,6 @@ _flutter.buildConfig = {"engineRevision":"425cfb54d01a9472b3e81d9e76fd63a4a44cfb
37
37
 
38
38
  _flutter.loader.load({
39
39
  serviceWorkerSettings: {
40
- serviceWorkerVersion: "1958395944" /* Flutter's service worker is deprecated and will be removed in a future Flutter release. */
40
+ serviceWorkerVersion: "951763898" /* Flutter's service worker is deprecated and will be removed in a future Flutter release. */
41
41
  }
42
42
  });