@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 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 honors
110
- `INLINE_NODE_BIN` and fails if that explicit path is missing, not executable,
111
- older than Node 20, or cannot report a Node version. It also fails if a copied
112
- plugin has drifted from the package bundle.
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.5 inline-platform
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.18.2` from source commit `9de9c25`.
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.13` and is
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 followed eligible reply/fresh threads are accepted without the wake word. |
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, and source/installed sidecar bundle hashes.
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