Adaptateur Hermes <> Glassbox — pre-flight bidirectionnel + timeline.
Project description
hermes-glassbox
Adaptateur Glassbox pour Hermes — pre-flight bidirectionnel + timeline temps réel.
TL;DR (Windows)
pip install hermes-glassbox
$env:GLASSBOX_API_URL = "https://glassbox.call-for-me.com"
$env:GLASSBOX_API_TOKEN = "gbx_<le_token_généré_dans_la_PWA>"
$env:GLASSBOX_AGENT_NAME = "Hermes-Terminal"
hermes-glassbox status # vérifie la connexion
hermes-glassbox test # pousse un event de test -> timeline Glassbox
hermes # Hermes auto-discover le plugin via entry_points
A partir de la chaque tool exécuté par Hermes est tracé dans Glassbox, et les actions critiques (bash, delete_file, send_telegram, etc.) déclenchent un pre-flight bloquant que tu peux approuver/rejeter depuis la PWA — y compris depuis ton mobile via push notif.
Comment générer un token
- Connecte-toi a https://glassbox.call-for-me.com
- Dashboard -> Tokens agents -> Nouveau token
- Nomme-le ("Hermes Windows JM"), copie-le immédiatement (affiché 1x seulement)
- Stocke-le dans une variable d'env
GLASSBOX_API_TOKEN— jamais en clair dans un fichier
Variables d'environnement
| Variable | Requis | Défaut | Description |
|---|---|---|---|
GLASSBOX_API_URL |
oui | --- | https://glassbox.call-for-me.com |
GLASSBOX_API_TOKEN |
oui | --- | Token généré côté PWA |
GLASSBOX_AGENT_NAME |
non | Unknown-Agent |
Affiché dans la timeline |
GLASSBOX_FAIL_MODE |
non | reject |
reject (sécurité) ou log_only (dev) |
Configuration TOML alternative
~/.glassbox/config.toml :
[glassbox]
api_url = "https://glassbox.call-for-me.com"
api_token = "${GLASSBOX_TOKEN}" # interpolation env, JAMAIS le token en clair
agent_name = "Hermes-Terminal"
fail_mode = "reject"
Mapping built-in tools Hermes
| Tool Hermes | action_type Glassbox |
|---|---|
write_file |
file_write |
edit_file |
file_write |
delete_file |
file_delete |
bash |
shell_command |
python |
code_execution |
web_fetch |
network_read |
http_request |
network_read ou network_write selon méthode |
send_telegram |
external_message |
| autres | tool_call_unknown (fallback safe) |
Pour tools custom (MCP, plugin maison) : fallback tool_call_unknown avec payload brut tronqué 500 chars. Tu peux pousser des metadata.* custom utilisables dans tes regles d'autonomie.
Commandes CLI
hermes-glassbox status # connectivité + agent + panic_mode + count regles
hermes-glassbox test # smoke test event bout en bout
hermes-glassbox panic on / off # affiche les instructions PWA pour toggle
Compatibilité Hermes
Ce plugin suppose que Hermes expose un système de hooks lifecycle via ctx.on(<event>).
Si l'API Hermes diffère (sous-classe AIAgent, registry, async middleware), le module
hooks.py documente un fallback monkey-patch. Vérifier la version Hermes installée
et consulter la doc officielle en cas de problème de discovery.
Le namespace entry_points utilisé est hermes.plugins. Si Hermes utilise un
namespace différent, modifier [project.entry-points] dans pyproject.toml.
Troubleshooting
| Symptome | Cause probable | Fix |
|---|---|---|
[KO] Config invalide |
env vars manquantes | echo $env:GLASSBOX_API_TOKEN (PowerShell) |
401 Unauthorized |
token révoqué ou faute de frappe | Régénérer token dans PWA |
Glassbox unreachable |
DNS, firewall, TLS | curl -I $env:GLASSBOX_API_URL coté machine Hermes |
| Hermes ignore le plugin (rien en log) | entry_points pas découverts |
pip show hermes-glassbox puis vérifier Entry-points |
| Action critique non bloquante | fail_mode=log_only |
Repasser sur reject (défaut) |
| Tous les preflights deviennent pending | mode panique activé coté PWA | Désactiver dans Dashboard ou via curl session-user |
Sécurité
- Token jamais loggé.
- HTTPS obligatoire (validation cert TLS stricte).
- Heuristique de redaction
password/token/secret/api_key/auth/authorizationAVANT envoi. - Logs : stderr uniquement, pas de fichier par défaut.
Licence
MIT.
Project details
Release history Release notifications | RSS feed
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_glassbox-0.1.0.tar.gz.
File metadata
- Download URL: hermes_glassbox-0.1.0.tar.gz
- Upload date:
- Size: 10.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c5aa8df30c53e0b6746d8fa5885aab3c281a431e4818c7b3fbbaed90fa82abbd
|
|
| MD5 |
64ca82b787d027381379ed85cc93a517
|
|
| BLAKE2b-256 |
95a4f56337e799c8429c5817699456ea13739aec6e8c0cc0fc2f4b33cf64ac67
|
File details
Details for the file hermes_glassbox-0.1.0-py3-none-any.whl.
File metadata
- Download URL: hermes_glassbox-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ea94d8fec0d6d05a2cd83d94f11e736c75474add49842f320d2a74254cf95cc1
|
|
| MD5 |
94a64cc061d74c485d5875b51cbd0e8e
|
|
| BLAKE2b-256 |
b624652e2fac1d5139cd7e7c1f3e7186c7ccc3fea7bbd58d5fd141e7c77c5db8
|