usepaxterapp 0.1.0__tar.gz
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.
- usepaxterapp-0.1.0/PKG-INFO +53 -0
- usepaxterapp-0.1.0/README.md +40 -0
- usepaxterapp-0.1.0/pyproject.toml +30 -0
- usepaxterapp-0.1.0/setup.cfg +4 -0
- usepaxterapp-0.1.0/usepaxterapp/__init__.py +3 -0
- usepaxterapp-0.1.0/usepaxterapp/adapter.py +3285 -0
- usepaxterapp-0.1.0/usepaxterapp.egg-info/PKG-INFO +53 -0
- usepaxterapp-0.1.0/usepaxterapp.egg-info/SOURCES.txt +10 -0
- usepaxterapp-0.1.0/usepaxterapp.egg-info/dependency_links.txt +1 -0
- usepaxterapp-0.1.0/usepaxterapp.egg-info/entry_points.txt +2 -0
- usepaxterapp-0.1.0/usepaxterapp.egg-info/requires.txt +2 -0
- usepaxterapp-0.1.0/usepaxterapp.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: usepaxterapp
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Paxter connector for Hermes — bridges your Hermes agent to the Paxter app over an end-to-end-encrypted relay. Outbound-only: nothing is exposed on your machine.
|
|
5
|
+
Author: Paxter
|
|
6
|
+
Keywords: hermes,hermes-agent,paxter,plugin,platform,agent
|
|
7
|
+
Classifier: Programming Language :: Python :: 3
|
|
8
|
+
Classifier: Operating System :: OS Independent
|
|
9
|
+
Requires-Python: >=3.9
|
|
10
|
+
Description-Content-Type: text/markdown
|
|
11
|
+
Requires-Dist: paho-mqtt>=1.6
|
|
12
|
+
Requires-Dist: pynacl>=1.5
|
|
13
|
+
|
|
14
|
+
# Paxter connector (Hermes plugin)
|
|
15
|
+
|
|
16
|
+
Connects your self-hosted [Hermes Agent](https://hermes-agent.nousresearch.com) to the **Paxter** mobile app — privately, with nothing exposed on your machine.
|
|
17
|
+
|
|
18
|
+
It runs as a Hermes **platform plugin** inside your `hermes gateway`: it dials *out* to the Paxter relay (MQTT over TLS), so there's no inbound port, no public URL, and no tunnel to set up. Works behind NAT, on a VPS, or over SSH/tmux.
|
|
19
|
+
|
|
20
|
+
## Install
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
pip install usepaxterapp
|
|
24
|
+
hermes plugins enable paxter
|
|
25
|
+
hermes config set platforms.paxter.extra.pairing_code <CODE> # from the Paxter app
|
|
26
|
+
hermes gateway restart
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
`pip install usepaxterapp` pulls the package from PyPI; Hermes auto-discovers it
|
|
30
|
+
via the `hermes_agent.plugins` entry point, and `hermes plugins enable paxter`
|
|
31
|
+
turns it on. In the Paxter app: **Connect → Hermes** to get your one-time pairing
|
|
32
|
+
code. Update later with `pip install --upgrade usepaxterapp`.
|
|
33
|
+
|
|
34
|
+
## How it works
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
Paxter app → paxter-gateway (backend) → MQTT broker → this plugin → your Hermes agent
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
- The plugin trades the one-time pairing code for a short-lived **JWT** (scoped by the broker to only your own topics) and a broker URL, cached in `~/.hermes/paxter/connection.json`.
|
|
41
|
+
- Incoming app messages arrive on `paxter/{userId}/{connectorId}/req`; the plugin dispatches them to your local agent and publishes replies on `.../res`.
|
|
42
|
+
- The agent runs on **your** machine and **your** model bill — Paxter never sees your agent's key.
|
|
43
|
+
|
|
44
|
+
## Security
|
|
45
|
+
|
|
46
|
+
- Outbound-only: no inbound port is opened.
|
|
47
|
+
- The JWT pins this connector to its own two topics — it can never read another user's traffic.
|
|
48
|
+
- Revocable from the Paxter app (the backend refuses to re-issue the JWT).
|
|
49
|
+
|
|
50
|
+
## Files
|
|
51
|
+
- `pyproject.toml` — PyPI packaging + the `hermes_agent.plugins` entry point.
|
|
52
|
+
- `usepaxterapp/__init__.py` — exposes `register(ctx)` (the plugin entry point).
|
|
53
|
+
- `usepaxterapp/adapter.py` — the `BasePlatformAdapter` implementation (MQTT bridge).
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Paxter connector (Hermes plugin)
|
|
2
|
+
|
|
3
|
+
Connects your self-hosted [Hermes Agent](https://hermes-agent.nousresearch.com) to the **Paxter** mobile app — privately, with nothing exposed on your machine.
|
|
4
|
+
|
|
5
|
+
It runs as a Hermes **platform plugin** inside your `hermes gateway`: it dials *out* to the Paxter relay (MQTT over TLS), so there's no inbound port, no public URL, and no tunnel to set up. Works behind NAT, on a VPS, or over SSH/tmux.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install usepaxterapp
|
|
11
|
+
hermes plugins enable paxter
|
|
12
|
+
hermes config set platforms.paxter.extra.pairing_code <CODE> # from the Paxter app
|
|
13
|
+
hermes gateway restart
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
`pip install usepaxterapp` pulls the package from PyPI; Hermes auto-discovers it
|
|
17
|
+
via the `hermes_agent.plugins` entry point, and `hermes plugins enable paxter`
|
|
18
|
+
turns it on. In the Paxter app: **Connect → Hermes** to get your one-time pairing
|
|
19
|
+
code. Update later with `pip install --upgrade usepaxterapp`.
|
|
20
|
+
|
|
21
|
+
## How it works
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
Paxter app → paxter-gateway (backend) → MQTT broker → this plugin → your Hermes agent
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
- The plugin trades the one-time pairing code for a short-lived **JWT** (scoped by the broker to only your own topics) and a broker URL, cached in `~/.hermes/paxter/connection.json`.
|
|
28
|
+
- Incoming app messages arrive on `paxter/{userId}/{connectorId}/req`; the plugin dispatches them to your local agent and publishes replies on `.../res`.
|
|
29
|
+
- The agent runs on **your** machine and **your** model bill — Paxter never sees your agent's key.
|
|
30
|
+
|
|
31
|
+
## Security
|
|
32
|
+
|
|
33
|
+
- Outbound-only: no inbound port is opened.
|
|
34
|
+
- The JWT pins this connector to its own two topics — it can never read another user's traffic.
|
|
35
|
+
- Revocable from the Paxter app (the backend refuses to re-issue the JWT).
|
|
36
|
+
|
|
37
|
+
## Files
|
|
38
|
+
- `pyproject.toml` — PyPI packaging + the `hermes_agent.plugins` entry point.
|
|
39
|
+
- `usepaxterapp/__init__.py` — exposes `register(ctx)` (the plugin entry point).
|
|
40
|
+
- `usepaxterapp/adapter.py` — the `BasePlatformAdapter` implementation (MQTT bridge).
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=61"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "usepaxterapp"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "Paxter connector for Hermes — bridges your Hermes agent to the Paxter app over an end-to-end-encrypted relay. Outbound-only: nothing is exposed on your machine."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.9"
|
|
11
|
+
authors = [{ name = "Paxter" }]
|
|
12
|
+
keywords = ["hermes", "hermes-agent", "paxter", "plugin", "platform", "agent"]
|
|
13
|
+
classifiers = [
|
|
14
|
+
"Programming Language :: Python :: 3",
|
|
15
|
+
"Operating System :: OS Independent",
|
|
16
|
+
]
|
|
17
|
+
dependencies = [
|
|
18
|
+
"paho-mqtt>=1.6",
|
|
19
|
+
"pynacl>=1.5",
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
# Hermes discovers pip-installed plugins via this entry-point group
|
|
23
|
+
# (hermes_cli/plugins.py: ENTRY_POINTS_GROUP). `paxter` is the plugin/platform
|
|
24
|
+
# name the user enables (`hermes plugins enable paxter`); the value resolves to
|
|
25
|
+
# the package, whose __init__ exposes register(ctx).
|
|
26
|
+
[project.entry-points."hermes_agent.plugins"]
|
|
27
|
+
paxter = "usepaxterapp"
|
|
28
|
+
|
|
29
|
+
[tool.setuptools]
|
|
30
|
+
packages = ["usepaxterapp"]
|