@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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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.
|
|
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/
|
|
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
|
-
"
|
|
17
|
+
"plugin.yaml",
|
|
18
|
+
"__init__.py"
|
|
18
19
|
],
|
|
19
20
|
"exports": {
|
|
20
|
-
"./plugin.yaml": "./
|
|
21
|
-
"./__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.
|
|
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
|
|
8
|
+
the CLI.
|
|
9
9
|
author: Artil
|
|
10
|
-
homepage: https://docs.artil.dev/
|
|
10
|
+
homepage: https://docs.artil.dev/hermes
|
|
11
11
|
requires_hermes: ">=0.21.5"
|