@artil-ai/hermes 0.1.0 → 0.1.1

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
@@ -7,25 +7,31 @@ where it left off; the agent answers them with the `artil` CLI.
7
7
 
8
8
  ## Usage
9
9
 
10
- The `artil` CLI carries the plugin from this package. `artil plugin install
11
- hermes` writes it to `$HERMES_HOME/plugins/artil` and turns it on in Hermes'
12
- `config.yaml`, with the absolute path of `artil`, since the gateway's service
13
- does not see your shell's PATH:
14
-
15
- ```yaml
16
- plugins:
17
- enabled: [artil]
18
- platforms:
19
- artil:
20
- enabled: true
21
- extra:
22
- command: /Users/you/.local/bin/artil
10
+ Install the [Artil CLI](https://artil.dev/INSTALL.md), sign in as the agent with
11
+ `artil auth login`, and let it set up the plugin and the `artil` skill:
12
+
13
+ ```sh
14
+ artil plugin install hermes
15
+ ```
16
+
17
+ Or install the plugin with Hermes:
18
+
19
+ ```sh
20
+ hermes plugins install artilai/plugins/plugins/hermes --enable
23
21
  ```
24
22
 
25
- | Entry point | What it is |
26
- | ------------------- | ------------------------------------------------------- |
27
- | `artil/plugin.yaml` | The plugin manifest; Hermes 0.21.5 or later loads it |
28
- | `artil/__init__.py` | The `artil` gateway platform and its system-prompt hint |
23
+ The gateway runs the `artil` that `platforms.artil.extra.command` names in
24
+ Hermes' `config.yaml`, else the one on its PATH, else `~/.local/bin/artil`. See
25
+ [Hermes](https://docs.artil.dev/hermes) in the docs.
26
+
27
+ While the gateway runs, the plugin keeps `artil internal hermes-channel`
28
+ running, which reaches Artil with the CLI's login. The plugin sends nothing
29
+ itself: the agent answers with `artil` commands.
30
+
31
+ | Entry point | What it is |
32
+ | ------------- | ------------------------------------------------------- |
33
+ | `plugin.yaml` | The plugin manifest; Hermes 0.21.5 or later loads it |
34
+ | `__init__.py` | The `artil` gateway platform and its system-prompt hint |
29
35
 
30
36
  ## Development
31
37
 
@@ -35,7 +41,7 @@ image:
35
41
 
36
42
  ```sh
37
43
  uvx ruff check && uvx ruff format --check
38
- docker run --rm -v "$PWD/hermes:/plugin" -w /plugin --entrypoint hermes nousresearch/hermes-agent:latest plugins validate artil
39
- docker run --rm -v "$PWD/hermes:/plugin" -w /plugin --entrypoint sh nousresearch/hermes-agent:latest -c \
44
+ docker run --rm -v "$PWD/plugins/hermes:/plugin" -w /plugin --entrypoint hermes nousresearch/hermes-agent:latest plugins validate .
45
+ docker run --rm -v "$PWD/plugins/hermes:/plugin" -w /plugin --entrypoint sh nousresearch/hermes-agent:latest -c \
40
46
  'uv pip install -q --python /opt/hermes/.venv/bin/python pytest && PYTHONPATH=/opt/hermes /opt/hermes/.venv/bin/python -m pytest -p no:cacheprovider tests'
41
47
  ```
@@ -5,6 +5,8 @@ from __future__ import annotations
5
5
  import asyncio
6
6
  import dataclasses
7
7
  import json
8
+ import shutil
9
+ from pathlib import Path
8
10
  from typing import Any
9
11
 
10
12
  from gateway.config import Platform, PlatformConfig
@@ -16,7 +18,7 @@ PLATFORM = "artil"
16
18
  HINT = (
17
19
  "Notices about new email and texts to this Artil agent account, and wake-ups from its team, "
18
20
  "arrive here. Read each message with the artil command its notice names, and answer it with "
19
- "`artil email send --reply-to` or `artil sms send --reply-to`, as the artil skill describes. "
21
+ "`artil email send --reply-to` or `artil sms send --reply-to`. "
20
22
  "Nobody outside reads what you write in this conversation."
21
23
  )
22
24
 
@@ -29,7 +31,10 @@ class ArtilAdapter(BasePlatformAdapter):
29
31
  def __init__(self, config: PlatformConfig) -> None:
30
32
  config.extra = {**(config.extra or {}), "allow_from": [PLATFORM]}
31
33
  super().__init__(config, Platform(PLATFORM))
32
- self._command = str(config.extra.get("command") or "artil")
34
+ # A gateway service may not have the PATH that finds artil where its installer put it.
35
+ self._command = str(
36
+ config.extra.get("command") or shutil.which("artil") or Path.home() / ".local/bin/artil"
37
+ )
33
38
  self._process: asyncio.subprocess.Process | None = None
34
39
  self._listening: asyncio.Task | None = None
35
40
 
package/package.json CHANGED
@@ -1,24 +1,25 @@
1
1
  {
2
2
  "name": "@artil-ai/hermes",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Hear about your Artil agent's new messages in the Hermes gateway, and answer them with the artil CLI.",
5
5
  "keywords": [
6
6
  "artil",
7
7
  "hermes-agent"
8
8
  ],
9
- "homepage": "https://docs.artil.dev/automatic-messages",
9
+ "homepage": "https://docs.artil.dev/hermes",
10
10
  "license": "MIT",
11
11
  "repository": {
12
12
  "type": "git",
13
13
  "url": "git+https://github.com/artilai/plugins.git",
14
- "directory": "hermes"
14
+ "directory": "plugins/hermes"
15
15
  },
16
16
  "files": [
17
- "artil"
17
+ "plugin.yaml",
18
+ "__init__.py"
18
19
  ],
19
20
  "exports": {
20
- "./plugin.yaml": "./artil/plugin.yaml",
21
- "./__init__.py": "./artil/__init__.py"
21
+ "./plugin.yaml": "./plugin.yaml",
22
+ "./__init__.py": "./__init__.py"
22
23
  },
23
24
  "publishConfig": {
24
25
  "access": "public"
@@ -1,11 +1,11 @@
1
1
  name: artil
2
2
  label: Artil
3
3
  kind: platform
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  description: >
6
6
  New email and texts to an Artil agent account, and wake-ups from its team,
7
7
  reach the Hermes gateway through the artil CLI. The agent answers them with
8
- the CLI, as the artil skill describes.
8
+ the CLI.
9
9
  author: Artil
10
- homepage: https://docs.artil.dev/automatic-messages
10
+ homepage: https://docs.artil.dev/hermes
11
11
  requires_hermes: ">=0.21.5"