@inline-chat/hermes-agent-adapter 0.0.22 → 1.0.0-alpha.2
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 +41 -29
- package/dist/install.js +18 -3
- package/package.json +10 -4
- package/plugin/inline/adapter.py +396 -242
- package/plugin/inline/cli.py +73 -7
- package/plugin/inline/plugin.yaml +6 -10
- package/plugin/inline/profile.py +86 -0
- package/plugin/inline/sidecar/index.mjs +2464 -160
- package/plugin/inline/tools.py +261 -32
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
|
- Inbound SDK receipts remain pending until Python handles the event. Temporary routing-metadata and authorization failures retry before deduplication or effects, preserving per-chat order while other chats can progress. Lost acknowledgement responses retry only the acknowledgement. Agent-button preflight retries are bounded, then show a retry prompt so an unavailable button cannot indefinitely block the shared action cursor. Shutdown leaves unresolved receipts available for catch-up; this is an at-least-once handoff, not a durable exactly-once guarantee for model turns or external effects.
|
|
29
29
|
- Outbound text, Markdown parsing, opt-in edit-message streaming, long-message splitting, edits, deletes, typing, and presence.
|
|
30
|
-
- Inline reply
|
|
30
|
+
- Inline reply threads per chat (Auto or On, in DMs and groups, set with `/threads`, the agent settings, or by asking the agent), one thread per conversation, explicit `/follow` and `/unfollow` dialog relevance controls, parent chat metadata, parent/thread prompt fallback, and thread-specific skill bindings.
|
|
31
31
|
- Native Hermes `inline` tool for current-chat/thread reads, bounded history and search, exact message lookup, button-message sends, 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.
|
|
32
32
|
- 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.
|
|
33
33
|
- 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.
|
|
@@ -51,17 +51,19 @@ Unsupported or intentionally limited:
|
|
|
51
51
|
- Live voice sessions or calls. Voice file messages are supported, but realtime audio is not.
|
|
52
52
|
- Media without a usable Inline CDN/local URL. Those messages still produce text summaries, but Hermes may not receive a local file path.
|
|
53
53
|
|
|
54
|
-
## Release 0.0
|
|
54
|
+
## Release 1.0.0
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
56
|
+
A major release with breaking changes. Bots join a thread through its first
|
|
57
|
+
message, and later mentions get one answer. Leading mentions and replies decide
|
|
58
|
+
who a message is for. Reply threads are Auto or On per chat, DMs included, with
|
|
59
|
+
one thread per conversation. Each Hermes 0.22 profile keeps its own bot, state
|
|
60
|
+
and sidecar. Agents can follow, unfollow and manage chats, and they show Working
|
|
61
|
+
while they work. Status and doctor report whether messages reach the agent. See
|
|
62
|
+
"Upgrading to 1.0" in the [Hermes docs](https://inline.chat/docs/hermes) for every
|
|
63
|
+
change. Pinned realtime SDK `0.0.20`.
|
|
62
64
|
|
|
63
65
|
```sh
|
|
64
|
-
npm install -g @inline-chat/hermes-agent-adapter@0.0
|
|
66
|
+
npm install -g @inline-chat/hermes-agent-adapter@1.0.0
|
|
65
67
|
inline-hermes install --force
|
|
66
68
|
```
|
|
67
69
|
|
|
@@ -170,7 +172,7 @@ uv run ./hermes plugins list --plain --no-bundled
|
|
|
170
172
|
Expected local output includes:
|
|
171
173
|
|
|
172
174
|
```text
|
|
173
|
-
enabled user 0.0
|
|
175
|
+
enabled user 1.0.0 inline-platform
|
|
174
176
|
```
|
|
175
177
|
|
|
176
178
|
## Update Or Reinstall
|
|
@@ -193,8 +195,8 @@ mismatch, rerun the same command after rebuilding or upgrading the package.
|
|
|
193
195
|
|
|
194
196
|
- Hermes Agent: requires the external user plugin registry and native platform
|
|
195
197
|
plugin loader available in Hermes Agent `>=0.21.3`. This package was validated
|
|
196
|
-
against Hermes Agent `0.
|
|
197
|
-
`
|
|
198
|
+
against Hermes Agent `0.22.5` from source commit `bf0203a794a07aac3ff764972ab9087baa4e4f4e` (tag
|
|
199
|
+
`v0.22.5`), and installs on the minimum `0.21.3`.
|
|
198
200
|
- CI checks the minimum supported Hermes release, newest stable source, and upstream
|
|
199
201
|
`main`. A six-hour scheduled check also tests the published npm `latest` adapter.
|
|
200
202
|
`inline-hermes doctor` requires successful host loading and compatibility validation;
|
|
@@ -303,39 +305,38 @@ Access control follows Hermes' native platform model:
|
|
|
303
305
|
| `INLINE_DM_POLICY=open|allowlist|disabled` | Controls direct-message intake. `allowlist` requires `INLINE_ALLOWED_USERS` or config `allow_from`. |
|
|
304
306
|
| `INLINE_GROUP_POLICY=open|allowlist|disabled` | Controls group intake. `allowlist` requires `INLINE_GROUP_ALLOW_FROM`. |
|
|
305
307
|
| `INLINE_GROUP_ALLOW_FROM` | Comma-separated Inline user ids allowed to invoke the bot from group chats. |
|
|
306
|
-
| `INLINE_REQUIRE_MENTION` | Requires
|
|
307
|
-
| `INLINE_STRICT_MENTION` | Requires
|
|
308
|
+
| `INLINE_REQUIRE_MENTION` | Requires an @mention in groups by default. Replies to the bot and dialogs already marked `FOLLOWING` are accepted without one. Hermes never wakes on words such as its name; only structured Inline mentions, replies, followed dialogs and commands count. |
|
|
309
|
+
| `INLINE_STRICT_MENTION` | Requires an @mention on every group turn, including replies to the bot and followed threads. Defaults to `false`. |
|
|
308
310
|
| `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. |
|
|
309
311
|
| `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. |
|
|
310
|
-
| `INLINE_REPLY_THREADS` |
|
|
312
|
+
| `INLINE_REPLY_THREADS` | Retired in 1.0; the default is always Auto: answers stay in the chat, and a thread starts only when someone asks for one. Turn On per chat (DM or group) with `/threads on`, the agent settings, or by asking the agent. `on` here is read as Auto with a warning, so a new tab's first message never gets a thread; `off` reads as Auto. Existing threads always keep their conversation. |
|
|
311
313
|
| `INLINE_CONTEXT_BACKFILL` | Automatic context mode. `selective` is the default, `off` disables automatic history windows, and `always` restores recent-history backfill on every turn. |
|
|
312
314
|
| `INLINE_THREAD_CONTEXT_LIMIT` | Max current chat/thread messages for selective thread or mention-gap context. Must be `0` through `100`; defaults to `30`. |
|
|
313
315
|
| `INLINE_REPLY_CONTEXT_LIMIT` | Max messages in the anchored window around a replied-to Inline message. Must be `0` through `50`; defaults to `10`. |
|
|
314
316
|
| `INLINE_OBSERVED_CONTEXT_LIMIT` | Max unmentioned group messages kept in the observed-context buffer. Must be `0` through `100`; defaults to `20`. |
|
|
315
317
|
| `INLINE_OBSERVE_UNMENTIONED_MESSAGES` | Buffers unmentioned group messages that pass chat/user policy but do not wake the bot. Defaults to `true`; set to `false` to disable. |
|
|
316
318
|
| `INLINE_CONTEXT_HISTORY_LIMIT` | Legacy compatibility shortcut. `0` maps to `INLINE_CONTEXT_BACKFILL=off`; `1` through `20` maps to `always` with that thread-context limit. Prefer the explicit settings above. |
|
|
317
|
-
| `INLINE_SETTINGS_PATH` | JSON settings file for per-chat `/threads` overrides. `/threads` shows native Auto/On
|
|
319
|
+
| `INLINE_SETTINGS_PATH` | JSON settings file for per-chat `/threads` overrides. `/threads` shows native Auto/On buttons; `reset` clears the chat override back to the global default. Defaults next to `INLINE_STATE_PATH`; `.env`-like paths are refused. |
|
|
318
320
|
| `INLINE_SYSTEM_EVENTS` | Delivers Inline lifecycle events such as edits, deletes, and participant changes as synthetic messages. Defaults to `false`. Reactions on bot messages are always delivered. |
|
|
319
321
|
| `INLINE_REACTIONS` | Shows 👀 while Hermes handles an inbound message, then ✅ on success or ❌ on failure. Cancellation clears the working marker. Defaults to `false`. |
|
|
320
|
-
| `INLINE_MENTION_PATTERNS` | JSON list, comma-separated, or newline-separated regex patterns for group wake words. |
|
|
321
322
|
| `INLINE_PARSE_MARKDOWN` | Controls whether supported outbound Inline Markdown is parsed. Defaults to `true`; `false` preserves the supplied syntax literally. |
|
|
322
323
|
| `INLINE_SYNC_COMMANDS` | Syncs Hermes slash commands into Inline's native `/` bot command menu on gateway connect. Defaults to `true`. |
|
|
323
324
|
| `INLINE_COMMAND_LIMIT` | Caps native Inline bot command sync. Must be `1` through `100`; defaults to `100`. |
|
|
324
325
|
| `INLINE_MEDIA_MAX_MB` | Maximum inbound media download size for URL-backed Inline attachments. Defaults to `25`. |
|
|
325
326
|
| `INLINE_UPLOAD_MAX_MB` | Maximum outbound local file upload size. The Python adapter and Node sidecar both enforce it before upload bytes are read. Defaults to `300`. |
|
|
326
|
-
| `INLINE_STATE_PATH` | Persistent Inline SDK state file. Defaults to `~/.hermes/inline/sdk-state.json
|
|
327
|
+
| `INLINE_STATE_PATH` | Persistent Inline SDK state file. Defaults to one file per profile and bot under the profile's `inline/` folder. The default profile reuses the older shared `~/.hermes/inline/sdk-state.json` once; other profiles catch up from now. |
|
|
327
328
|
| `INLINE_RPC_TIMEOUT_MS` | Realtime RPC timeout for the Node sidecar. |
|
|
328
329
|
| `INLINE_CONNECT_TIMEOUT_MS` | Adapter startup timeout while waiting for the sidecar to become realtime-ready. Defaults to `20000`. |
|
|
329
330
|
| `INLINE_CONNECT_RETRY_INITIAL_MS` | Initial sidecar retry delay after realtime startup failure. Defaults to `1000`. |
|
|
330
331
|
| `INLINE_CONNECT_RETRY_MAX_MS` | Maximum sidecar retry delay after repeated realtime startup failures. Defaults to `15000`. |
|
|
331
|
-
| `INLINE_SIDECAR_PORT` | Fixed loopback port for the sidecar. Must be `1` through `65535`. Defaults to
|
|
332
|
+
| `INLINE_SIDECAR_PORT` | Fixed loopback port for the sidecar. Must be `1` through `65535`. Defaults to a free port per adapter, so several profiles can share one gateway; `8794` when `INLINE_SIDECAR_AUTOSTART=false`. |
|
|
332
333
|
| `INLINE_SIDECAR_BIND` | Sidecar bind host. Must be loopback: `127.0.0.1`, `localhost`, or `::1`. Defaults to `127.0.0.1`. |
|
|
333
334
|
| `INLINE_HERMES_SENTRY_DSN` | Explicitly enables adapter and sidecar error reporting to the configured collector. Reporting is disabled when unset. |
|
|
334
335
|
| `INLINE_PLUGIN_TELEMETRY` | Set to `off`, `0`, or `false` to disable explicitly configured plugin error reporting. `DO_NOT_TRACK=1` is also honored. |
|
|
335
336
|
| `platforms.inline.typing_indicator` | Hermes-native toggle for Inline typing/presence while a turn is running. Defaults to `true`; set to `false` to keep busy threads visually quiet. |
|
|
336
337
|
| `platforms.inline.gateway_restart_notification` | Hermes-native toggle for gateway online/restarted notices. Defaults to `true`. |
|
|
337
338
|
|
|
338
|
-
Policy is evaluated in three ordered stages: **access**, then **wake**, then **delivery**. Access checks the chat and sender policy and is a hard gate; a mention, reply, callback, or command never grants access to a blocked chat or actor. Wake decides whether an allowed group turn invokes Hermes: free-response chats wake normally, while mention-gated chats require an explicit mention unless a configured reply-to-bot or followed-thread exception applies. Delivery keeps existing child-thread conversations in place; top-level
|
|
339
|
+
Policy is evaluated in three ordered stages: **access**, then **wake**, then **delivery**. Access checks the chat and sender policy and is a hard gate; a mention, reply, callback, or command never grants access to a blocked chat or actor. Wake decides whether an allowed group turn invokes Hermes: free-response chats wake normally, while mention-gated chats require an explicit mention unless a configured reply-to-bot or followed-thread exception applies. Delivery keeps existing child-thread conversations in place; in a chat set to On a top-level message gets its answer in a reply thread, and in Auto it stays in the chat unless someone asks for a thread. A thread under the bot's DM stays that DM for its person: DM access, no mention needed, and one session (`dm:<dm>:<thread>`, like a Slack DM thread). Anyone else in that thread keeps group rules.
|
|
339
340
|
|
|
340
341
|
`open` controls intake; it does not grant permission to use the bot. After
|
|
341
342
|
Inline's sender and group/thread restrictions pass, the adapter asks Hermes'
|
|
@@ -349,7 +350,11 @@ policy, or excluded group. DMs remain exempt from `allowed_chats`.
|
|
|
349
350
|
Child-thread authorization preserves both the child and parent chat IDs so
|
|
350
351
|
Hermes can select the correct profile. If required group metadata is unavailable,
|
|
351
352
|
the adapter denies the operation instead of guessing a profile. Controls that
|
|
352
|
-
change the parent's reply-thread mode also require access to that parent
|
|
353
|
+
change the parent's reply-thread mode also require access to that parent, and
|
|
354
|
+
follow Hermes' own slash-command access: when `allow_admin_from` or
|
|
355
|
+
`group_allow_admin_from` is set, only admins and people allowed to run
|
|
356
|
+
`threads` (`user_allowed_commands`) can change it, from `/threads`, the settings
|
|
357
|
+
card, or by asking the agent;
|
|
353
358
|
thread-local model and following settings remain available to an authorized
|
|
354
359
|
child-thread user.
|
|
355
360
|
|
|
@@ -358,7 +363,7 @@ Equivalent Hermes YAML can use `allow_from`, `allowed_users`,
|
|
|
358
363
|
`strict_mention`, `allowed_chats`, `free_response_chats`, `reply_threads`,
|
|
359
364
|
`context_backfill`, `thread_context_limit`, `reply_context_limit`,
|
|
360
365
|
`observed_context_limit`, `observe_unmentioned_messages`, `settings_path`, and
|
|
361
|
-
`
|
|
366
|
+
`reactions` under the Inline platform config. Operational settings such
|
|
362
367
|
as `base_url`, `parse_markdown`, `media_max_mb`, `upload_max_mb`,
|
|
363
368
|
`state_path`, `sidecar_port`, `connect_timeout_ms`, `sync_commands`, and
|
|
364
369
|
`command_limit` can also be set there.
|
|
@@ -419,13 +424,12 @@ Restart the gateway after refreshing the plugin. Version 0.0.19 removes the
|
|
|
419
424
|
in-chat updater so the same plugin can comply with the catalog's exact-commit
|
|
420
425
|
trust policy. Hermes's own `/update` command is unchanged.
|
|
421
426
|
|
|
422
|
-
Run `/follow` in an Inline
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
unless the bot is also explicitly mentioned.
|
|
427
|
+
Run `/follow` in an Inline group or reply thread to opt into eligible
|
|
428
|
+
unmentioned activity waking Hermes, and `/unfollow` to opt out; mentions and
|
|
429
|
+
replies still reach it. The agent can do the same itself with the `inline`
|
|
430
|
+
tool's `set_follow_mode` action. A message that starts by mentioning someone
|
|
431
|
+
else isn't for Hermes, even if it mentions Hermes later, and a reply to another
|
|
432
|
+
person or bot doesn't wake it unless it mentions Hermes.
|
|
429
433
|
|
|
430
434
|
The model-callable `inline` tool keeps reply and top-level creation separate:
|
|
431
435
|
`create_thread` creates a reply subthread under the current or explicit parent
|
|
@@ -436,6 +440,14 @@ for space-wide visibility. It returns the new chat ID so Hermes can link it in
|
|
|
436
440
|
the normal reply. Omitted or empty private participants create a conversation
|
|
437
441
|
accessible only to the connected account. Include intended human participants
|
|
438
442
|
explicitly; owning the bot does not grant membership in its private conversations.
|
|
443
|
+
When a person asks for a private chat, `create_chat` adds them automatically;
|
|
444
|
+
pass `include_requester: false` for a deliberately bot-only chat. A thread that
|
|
445
|
+
`create_thread` starts from the current message hangs off that message only in
|
|
446
|
+
its own chat; another parent needs an explicit `parent_message_id`.
|
|
447
|
+
|
|
448
|
+
`add_participants`, `update_chat` (title or emoji) and `delete_chat` manage
|
|
449
|
+
chats through the same server operations as the apps, so the server decides
|
|
450
|
+
what the bot may change. `delete_chat` always needs an explicit `chat_id`.
|
|
439
451
|
|
|
440
452
|
The plugin id is `inline`, which is intentionally the same id an eventual
|
|
441
453
|
bundled Hermes adapter should use.
|
package/dist/install.js
CHANGED
|
@@ -7211,6 +7211,9 @@ async function inspectInstall(params) {
|
|
|
7211
7211
|
else
|
|
7212
7212
|
warnings.push(message);
|
|
7213
7213
|
}
|
|
7214
|
+
if (params.opts.command === "doctor" && activation.receiving && !activation.receiving.ok && activation.credentialState !== "not_configured" && activation.credentialState !== "invalid") {
|
|
7215
|
+
issues.push(`Inline messages aren't reaching this agent (${activation.receiving.reason}). ${activation.receiving.next ?? ""}`.trim());
|
|
7216
|
+
}
|
|
7214
7217
|
if (targetExists && !activation.installOwnershipAligned) {
|
|
7215
7218
|
warnings.push("Installed plugin ownership differs from the Hermes home owner; manual updates may fail until inline-hermes install --force repairs it");
|
|
7216
7219
|
}
|
|
@@ -7509,6 +7512,7 @@ async function hasPluginFiles(dir) {
|
|
|
7509
7512
|
"__init__.py",
|
|
7510
7513
|
"adapter.py",
|
|
7511
7514
|
"message_actions.py",
|
|
7515
|
+
"profile.py",
|
|
7512
7516
|
path.join("sidecar", "index.mjs")
|
|
7513
7517
|
];
|
|
7514
7518
|
const checks = files.map((file) => exists(path.join(dir, file)));
|
|
@@ -7601,6 +7605,7 @@ async function inspectActivation(hermesHome, target, probeCredential) {
|
|
|
7601
7605
|
credentialState,
|
|
7602
7606
|
...machineCredential.botUserId ? { credentialBotUserId: machineCredential.botUserId } : {},
|
|
7603
7607
|
...machineCredential.botUsername ? { credentialBotUsername: machineCredential.botUsername } : {},
|
|
7608
|
+
...machineCredential.receiving ? { receiving: machineCredential.receiving } : {},
|
|
7604
7609
|
tokenPresent,
|
|
7605
7610
|
tokenConfigured: machineCredential.configured === false ? fallbackConfigured : machineCredential.configured ?? fallbackConfigured,
|
|
7606
7611
|
installOwnershipAligned
|
|
@@ -7656,6 +7661,14 @@ async function chownTree(target, uid, gid) {
|
|
|
7656
7661
|
}
|
|
7657
7662
|
await chown(target, uid, gid);
|
|
7658
7663
|
}
|
|
7664
|
+
function parseReceiving(value) {
|
|
7665
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
7666
|
+
return;
|
|
7667
|
+
const record = value;
|
|
7668
|
+
if (typeof record.ok !== "boolean" || typeof record.reason !== "string")
|
|
7669
|
+
return;
|
|
7670
|
+
return { ok: record.ok, reason: record.reason, next: typeof record.next === "string" ? record.next : null };
|
|
7671
|
+
}
|
|
7659
7672
|
function inspectHermesCredential(hermesHome, probe, target) {
|
|
7660
7673
|
const executable = normalizeToken(process.env.INLINE_HERMES_BIN) || "hermes";
|
|
7661
7674
|
const args = ["inline", "status", "--json", ...probe ? ["--probe", "--check-compatibility"] : []];
|
|
@@ -7684,11 +7697,12 @@ function inspectHermesCredential(hermesHome, probe, target) {
|
|
|
7684
7697
|
}
|
|
7685
7698
|
const compatibility = record.compatibility;
|
|
7686
7699
|
const compatible = result.status === 0 && compatibility?.ok === true && compatibility.pluginPath === safeRealpathSync(target);
|
|
7700
|
+
const receiving = parseReceiving(record.receiving);
|
|
7687
7701
|
if (!record.configured) {
|
|
7688
|
-
return { compatible, checked: true, configured: false, state: "not_configured" };
|
|
7702
|
+
return { compatible, ...receiving ? { receiving } : {}, checked: true, configured: false, state: "not_configured" };
|
|
7689
7703
|
}
|
|
7690
7704
|
if (!probe) {
|
|
7691
|
-
return { compatible, checked: true, configured: true, state: "configured_unverified" };
|
|
7705
|
+
return { compatible, ...receiving ? { receiving } : {}, checked: true, configured: true, state: "configured_unverified" };
|
|
7692
7706
|
}
|
|
7693
7707
|
const probeResult = record.probe && typeof record.probe === "object" && !Array.isArray(record.probe) ? record.probe : null;
|
|
7694
7708
|
if (probeResult?.ok === true) {
|
|
@@ -7698,6 +7712,7 @@ function inspectHermesCredential(hermesHome, probe, target) {
|
|
|
7698
7712
|
const botUsername = typeof probeResult.botUsername === "string" && probeResult.botUsername.trim() ? probeResult.botUsername.trim() : undefined;
|
|
7699
7713
|
return {
|
|
7700
7714
|
compatible,
|
|
7715
|
+
...receiving ? { receiving } : {},
|
|
7701
7716
|
checked: true,
|
|
7702
7717
|
configured: true,
|
|
7703
7718
|
state: "verified",
|
|
@@ -7708,7 +7723,7 @@ function inspectHermesCredential(hermesHome, probe, target) {
|
|
|
7708
7723
|
if (probeResult?.errorKind === "invalid_credential") {
|
|
7709
7724
|
return { compatible, checked: true, configured: true, state: "invalid" };
|
|
7710
7725
|
}
|
|
7711
|
-
return { compatible, checked: true, configured: true, state: "unknown" };
|
|
7726
|
+
return { compatible, ...receiving ? { receiving } : {}, checked: true, configured: true, state: "unknown" };
|
|
7712
7727
|
}
|
|
7713
7728
|
function safeRealpathSync(target) {
|
|
7714
7729
|
try {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inline-chat/hermes-agent-adapter",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "1.0.0-alpha.2",
|
|
4
4
|
"description": "Hermes Agent platform adapter for Inline, with a native Python plugin and bundled Inline realtime sidecar.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
"plugin/inline/cli.py",
|
|
36
36
|
"plugin/inline/message_actions.py",
|
|
37
37
|
"plugin/inline/plugin.yaml",
|
|
38
|
+
"plugin/inline/profile.py",
|
|
38
39
|
"plugin/inline/telemetry.py",
|
|
39
40
|
"plugin/inline/tools.py",
|
|
40
41
|
"plugin/inline/sidecar/index.mjs"
|
|
@@ -64,7 +65,7 @@
|
|
|
64
65
|
"check": "bun run typecheck && bun run lint && bun run test"
|
|
65
66
|
},
|
|
66
67
|
"dependencies": {
|
|
67
|
-
"@inline-chat/realtime-sdk": "0.0.
|
|
68
|
+
"@inline-chat/realtime-sdk": "0.0.20",
|
|
68
69
|
"yaml": "2.9.0"
|
|
69
70
|
},
|
|
70
71
|
"devDependencies": {
|
|
@@ -84,7 +85,12 @@
|
|
|
84
85
|
},
|
|
85
86
|
"machineSetupProtocol": 1,
|
|
86
87
|
"minHermesVersion": "0.21.3",
|
|
87
|
-
"testedHermesVersion": "0.
|
|
88
|
-
"testedHermesCommit": "
|
|
88
|
+
"testedHermesVersion": "0.22.5",
|
|
89
|
+
"testedHermesCommit": "bf0203a794a07aac3ff764972ab9087baa4e4f4e"
|
|
90
|
+
},
|
|
91
|
+
"gitHead": "a0f510c81c7c1c5d20a80738ad4a2e8052187767",
|
|
92
|
+
"inlineRelease": {
|
|
93
|
+
"tag": "hermes-agent-v1.0.0-alpha.2",
|
|
94
|
+
"sha": "a0f510c81c7c1c5d20a80738ad4a2e8052187767"
|
|
89
95
|
}
|
|
90
96
|
}
|