neoagent 2.1.18-beta.14 → 2.1.18-beta.16

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.
@@ -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
  |---|---|
@@ -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.14",
3
+ "version": "2.1.18-beta.16",
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: "4210287293" /* Flutter's service worker is deprecated and will be removed in a future Flutter release. */
40
+ serviceWorkerVersion: "3745783330" /* Flutter's service worker is deprecated and will be removed in a future Flutter release. */
41
41
  }
42
42
  });