hermes-atm installation
hermes-atm is the package-owned Hermes gateway hook for ATM graft nudges.
It installs one receiver for one Hermes profile and injects delivered nudges
through the public GatewayRunner.inject_internal_message(...,
mode="queue"|"steer") API according to the additive ATM nudge kind. It does
not open an ATM database, select a Hermes adapter, or require any
post-install source edits.
Required settings
Collect these values before installation. Keep the chat identifier in local profile configuration or the launch agent; do not put it in source, commits, or shared install notes.
| Setting | Purpose | Must match |
|---|---|---|
profile |
Hermes profile to receive nudges | Gateway launch profile |
profile_home |
Directory containing that profile's hooks/ directory |
ATM roster home_dir |
identity |
ATM agent/member name | ATM roster member name |
team |
ATM team containing the member | ATM roster team |
chat_id |
Hermes session chat binding | Gateway's configured session |
atm_home |
ATM durable home | ATM_HOME for the profile |
workspace_root |
Canonical graft endpoint root | ATM roster workspace_root exactly |
launch_agent_plist |
Gateway LaunchAgent plist | Its first ProgramArguments entry must be the Python running this installer |
The workspace_root equality is mandatory. ATM post-send delivery resolves a
recipient endpoint from roster metadata. If the receiver is installed beneath
one root while the roster names another, atm send can persist a message but
the nudge will fail closed because it cannot find or contact the receiver.
Clean installation sequence
-
Install a Hermes Agent version that exposes the public
GatewayRunner.inject_internal_messageandgateway.config.Platform.TELEGRAMhost seams. -
Configure the profile's launch agent with
ATM_HOME,ATM_IDENTITY,ATM_TEAM,ATM_CHAT_ID, andATM_WORKSPACE_ROOT. -
Install the immutable wheels into that launch agent's Python environment:
python -m pip install --upgrade atm-graft hermes-atm
-
Publish the same profile and graft root to ATM's roster. Run this using the profile's ATM identity and team:
atm teams update-member <team> <identity> \ --home-dir <profile-home> \ --workspace-root <workspace-root> \ --harness hermes
-
Run the package installer with the launch agent's Python. The command validates the public Hermes capability and interpreter match before it writes the standard generated hook and the package-owned native-tools plugin. It also declaratively enables
hermes-atm-native-toolsand itsatmtoolset for every configured Hermes platform inconfig.yaml; do not make those configuration edits by hand:python -m hermes_atm install \ --profile <profile> \ --profile-home <profile-home> \ --identity <identity> \ --team <team> \ --chat-id "$ATM_CHAT_ID" \ --atm-home "$ATM_HOME" \ --workspace-root "$ATM_WORKSPACE_ROOT" \ --launch-agent-plist <gateway-launch-agent.plist>
-
Reset the profile gateway. The restart loads the generated hook and publishes the receiver record under
<workspace-root>/.atm/graft/<team>/<identity>.json. -
From the same profile identity, send a localhost message to the profile and require an autonomous reply. Only that reply proves the full path: ATM send, receiver, Hermes queue injection, and agent context processing.
Native ATM tools
The same installer registers exactly three native Hermes tools through the
public plugin API: atm_send, atm_read, and atm_list. They use the typed
atm-graft client and the installed profile's identity, team, and workspace;
tool arguments cannot override those profile settings. atm_read is read-only
and atm_list returns bounded metadata. Administrative and advanced CLI
operations remain atm CLI operations.
For the reproducible native-tool proof, see NATIVE_TOOLS_PROOF.md. The implementation checklist and validation record are in TASKLIST.md.
Do not edit hooks/hermes-atm/handler.py, HOOK.yaml, or config.json after
installation. To change package behavior, publish a new wheel, reinstall it,
rerun python -m hermes_atm install, reset the gateway, and repeat the proof.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hermes_atm-1.5.0.tar.gz.
File metadata
- Download URL: hermes_atm-1.5.0.tar.gz
- Upload date:
- Size: 19.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
82b48677fd439b8e5131ed05549c64f080a8640f674c39f185354ab7b7ed8bc4
|
|
| MD5 |
3ba4f91358bf8087f539cc0f47c17dd3
|
|
| BLAKE2b-256 |
e0c880872dfdfd1e14d9a568a95d51b444eacfdb5e5a523c76fa8b5db7fa6cf8
|
File details
Details for the file hermes_atm-1.5.0-py3-none-any.whl.
File metadata
- Download URL: hermes_atm-1.5.0-py3-none-any.whl
- Upload date:
- Size: 14.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e15f40d7d4848470d89dfc8549163ab11c9fdc7564107d47d676635831f738bb
|
|
| MD5 |
3044939f118608ccf5fb8b644eeed5a1
|
|
| BLAKE2b-256 |
ce4fc473e503421166fb30140d5f49d4327e7c73c8543b13c7e11ae404a0fe8d
|