@inline-chat/hermes-agent-adapter 0.0.5 → 0.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 +53 -12
- package/dist/install.js +180 -79
- package/package.json +5 -4
- package/plugin/inline/adapter.py +657 -41
- package/plugin/inline/cli.py +189 -14
- package/plugin/inline/plugin.yaml +2 -2
- package/plugin/inline/sidecar/index.mjs +9523 -3342
- package/plugin/inline/tools.py +58 -5
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ Supported:
|
|
|
27
27
|
- Realtime inbound messages, catch-up, replies to bot messages, and action callbacks.
|
|
28
28
|
- Outbound text, Markdown parsing, opt-in edit-message streaming, long-message splitting, edits, deletes, typing, and presence.
|
|
29
29
|
- Inline reply-thread routing, explicit-request auto mode, `/threads` controls, explicit `/follow` and `/unfollow` dialog relevance controls, parent chat metadata, parent/thread prompt fallback, and thread-specific skill bindings.
|
|
30
|
-
- Native Hermes `inline` tool for current-chat/thread reads, bounded history and search, exact message lookup, editing/deleting bot-owned messages, reactions, pin/unpin/list pins, reply-thread creation, and avatar presence/status.
|
|
30
|
+
- Native Hermes `inline` tool for current-chat/thread reads, bounded history and search, exact message lookup, editing/deleting bot-owned messages, reactions, pin/unpin/list pins, reply-thread creation, top-level thread/chat creation outside the current conversation, and avatar presence/status.
|
|
31
31
|
- Cached, privacy-safe sender names/usernames plus chat/thread IDs, selective reply/thread/observed context, and parent-thread context, with first-name/username Markdown mention guidance and current chat/thread links.
|
|
32
32
|
- OpenClaw-style entity summaries for live turns and tool-fetched history, including mentions, text links, thread links, thread-title links, code/pre blocks, bot commands, and group mentions as untrusted Hermes context.
|
|
33
33
|
- DM and group policies, user allowlists, group sender allowlists, mention requirements, strict mention mode, allowed chats, and free-response chats.
|
|
@@ -58,6 +58,12 @@ hermes plugins enable inline-platform
|
|
|
58
58
|
hermes gateway setup
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
+
When installation runs as root but the Hermes home belongs to its service user,
|
|
62
|
+
the installer automatically aligns the plugin directory ownership with that
|
|
63
|
+
service user. Subsequent `/inline_update` commands replace the durable plugin
|
|
64
|
+
directly; users do not need to maintain a second npm prefix or repeat the
|
|
65
|
+
host-side install commands for routine updates.
|
|
66
|
+
|
|
61
67
|
Select Inline in the messaging-platform picker. The default path is: go to
|
|
62
68
|
**Inline → Settings → Bots → Create a new bot**, then paste its token. See the
|
|
63
69
|
[Inline bot creation guide](https://inline.chat/docs/creating-a-bot). The
|
|
@@ -104,12 +110,31 @@ hermes inline status
|
|
|
104
110
|
inline-hermes --version
|
|
105
111
|
```
|
|
106
112
|
|
|
113
|
+
The Inline CLI can drive Hermes setup without putting the bot token in argv:
|
|
114
|
+
|
|
115
|
+
```sh
|
|
116
|
+
inline agents setup --target hermes --non-interactive --json
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
For other orchestrators, the plugin also exposes a token-free machine contract.
|
|
120
|
+
The token is accepted only on stdin and is saved through Hermes's credential
|
|
121
|
+
helper:
|
|
122
|
+
|
|
123
|
+
```sh
|
|
124
|
+
printf '%s\n' "$INLINE_BOT_TOKEN" | hermes inline setup \
|
|
125
|
+
--non-interactive --token-stdin --owner-user-id 123 \
|
|
126
|
+
--access owner --json
|
|
127
|
+
hermes inline status --json --probe
|
|
128
|
+
```
|
|
129
|
+
|
|
107
130
|
`doctor` verifies required plugin files, the Node executable used for the
|
|
108
131
|
sidecar, the installed sidecar bundle hash, and whether Hermes config enables
|
|
109
|
-
the external plugin with `plugins.enabled: [inline-platform]`. It
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
132
|
+
the external plugin with `plugins.enabled: [inline-platform]`. It detects
|
|
133
|
+
Inline credentials from the current environment, Hermes config, or the managed
|
|
134
|
+
credential store used by `hermes gateway setup`, without printing token values.
|
|
135
|
+
It honors `INLINE_NODE_BIN` and fails if that explicit path is missing, not
|
|
136
|
+
executable, older than Node 20, or cannot report a Node version. It also fails
|
|
137
|
+
if a copied plugin has drifted from the package bundle.
|
|
113
138
|
|
|
114
139
|
Confirm Hermes sees the plugin:
|
|
115
140
|
|
|
@@ -121,7 +146,7 @@ uv run ./hermes plugins list --plain --no-bundled
|
|
|
121
146
|
Expected local output includes:
|
|
122
147
|
|
|
123
148
|
```text
|
|
124
|
-
enabled user 0.0.
|
|
149
|
+
enabled user 0.0.7 inline-platform
|
|
125
150
|
```
|
|
126
151
|
|
|
127
152
|
## Update Or Reinstall
|
|
@@ -144,10 +169,10 @@ mismatch, rerun the same command after rebuilding or upgrading the package.
|
|
|
144
169
|
|
|
145
170
|
- Hermes Agent: requires the external user plugin registry and native platform
|
|
146
171
|
plugin loader available in Hermes Agent `0.17.x`. This package was validated
|
|
147
|
-
against Hermes Agent `0.
|
|
172
|
+
against Hermes Agent `0.19.1` from source commit `cc4cab2`.
|
|
148
173
|
- Node.js: `>=20` is required for the bundled sidecar. Hermes-managed Node 22,
|
|
149
174
|
system Node, or an explicit `INLINE_NODE_BIN` path all work.
|
|
150
|
-
- Inline transport: the sidecar uses `@inline-chat/realtime-sdk@0.0.
|
|
175
|
+
- Inline transport: the sidecar uses `@inline-chat/realtime-sdk@0.0.14` and is
|
|
151
176
|
bundled into the npm package, so Hermes startup does not run `npm install`.
|
|
152
177
|
- Live sends require a valid Inline user or bot token in `INLINE_TOKEN`,
|
|
153
178
|
`INLINE_BOT_TOKEN`, `platforms.inline.token`, or `inline.token`.
|
|
@@ -254,7 +279,7 @@ Access control follows Hermes' native platform model:
|
|
|
254
279
|
| `INLINE_DM_POLICY=open|allowlist|disabled` | Controls direct-message intake. `allowlist` requires `INLINE_ALLOWED_USERS` or config `allow_from`. |
|
|
255
280
|
| `INLINE_GROUP_POLICY=open|allowlist|disabled` | Controls group intake. `allowlist` requires `INLINE_GROUP_ALLOW_FROM`. |
|
|
256
281
|
| `INLINE_GROUP_ALLOW_FROM` | Comma-separated Inline user ids allowed to invoke the bot from group chats. |
|
|
257
|
-
| `INLINE_REQUIRE_MENTION` | Requires a mention or wake word in groups by default. Replies to the bot and
|
|
282
|
+
| `INLINE_REQUIRE_MENTION` | Requires a mention or wake word in groups by default. Replies to the bot and dialogs already marked `FOLLOWING` are accepted without the wake word. |
|
|
258
283
|
| `INLINE_STRICT_MENTION` | Requires a mention or wake word on every group turn, including replies to the bot and followed threads. Defaults to `false`. |
|
|
259
284
|
| `INLINE_ALLOWED_CHATS` | Comma-separated group/thread chat ids where the bot may respond. Parent chat ids also match their Inline reply threads. DMs are not filtered. Empty means no chat restriction. |
|
|
260
285
|
| `INLINE_FREE_RESPONSE_CHATS` | Comma-separated group/thread chat ids where no mention is required. Parent chat ids also match their Inline reply threads. Useful for dedicated agent rooms. |
|
|
@@ -324,7 +349,11 @@ normalizes names to Inline Bot API constraints
|
|
|
324
349
|
(`^[a-z0-9_]+$`, max 32 characters), and calls `setMyCommands`. If Inline
|
|
325
350
|
rejects the full list with `BOT_COMMANDS_TOO_MUCH`, the adapter retries with a
|
|
326
351
|
smaller prefix. Menu sync failures are logged as warnings and do not prevent
|
|
327
|
-
message transport; `/commands` remains the full fallback list.
|
|
352
|
+
message transport; `/commands` remains the full fallback list. In chats with
|
|
353
|
+
multiple bots, Inline may insert `/command@botusername` to disambiguate a menu
|
|
354
|
+
choice. Hermes accepts that form only when the suffix matches its own username,
|
|
355
|
+
then removes the suffix before command dispatch; commands addressed to another
|
|
356
|
+
bot are ignored.
|
|
328
357
|
|
|
329
358
|
Run `/inline_update` to install the newest adapter from the plugin's current
|
|
330
359
|
npm release channel. Stable installs continue following `latest`, while
|
|
@@ -341,7 +370,18 @@ marker, so `hermes logs` and Hermes debug reports can surface the root cause.
|
|
|
341
370
|
Run `/follow` in an Inline DM, group, or reply thread to explicitly opt into
|
|
342
371
|
eligible unmentioned activity waking Hermes. Run `/unfollow` to explicitly opt
|
|
343
372
|
out; server auto-follow heuristics will not turn following back on, while
|
|
344
|
-
mentions and replies retain their normal relevance behavior.
|
|
373
|
+
mentions and replies retain their normal relevance behavior. If an otherwise
|
|
374
|
+
implicit follow/reply wake begins with a concrete mention of another person,
|
|
375
|
+
Hermes treats that explicit address as higher priority and does not respond
|
|
376
|
+
unless the bot is also explicitly mentioned.
|
|
377
|
+
|
|
378
|
+
The model-callable `inline` tool keeps reply and top-level creation separate:
|
|
379
|
+
`create_thread` creates a reply subthread under the current or explicit parent
|
|
380
|
+
chat, while `create_chat` creates a new top-level destination. `create_chat`
|
|
381
|
+
requires a title, defaults to private, accepts optional participant user IDs or
|
|
382
|
+
a parent space ID, and requires both `space_id` and explicit `is_public: true`
|
|
383
|
+
for space-wide visibility. It returns the new chat ID so Hermes can link it in
|
|
384
|
+
the normal reply.
|
|
345
385
|
|
|
346
386
|
The plugin id is `inline`, which is intentionally the same id an eventual
|
|
347
387
|
bundled Hermes adapter should use.
|
|
@@ -349,7 +389,8 @@ bundled Hermes adapter should use.
|
|
|
349
389
|
## Troubleshooting
|
|
350
390
|
|
|
351
391
|
Run `inline-hermes doctor --json` first. It checks the installed plugin path,
|
|
352
|
-
required files, Node executable,
|
|
392
|
+
required files, Node executable, source/installed sidecar bundle hashes, and
|
|
393
|
+
whether an Inline token is available to Hermes.
|
|
353
394
|
|
|
354
395
|
- `plugin is not installed`: run `inline-hermes install`.
|
|
355
396
|
- `Hermes plugin 'inline-platform' is not enabled`: run
|