Plugin scripts — agent-manager (issue #75)
Les plugins sont des points d'extension par script, exécutés sur les
événements du cycle de vie des agents (complément des hooks de l'axe 6) :
on_install · on_start · on_stop · on_update
Contrat :
- entrée : l'événement JSON sur stdin
{"event":"on_start","kind":"start","ts":"…","agent":"claude-code",
"pid":1234,"cwd":"…","project":"…","args":[…],"env_keys":[…],…}
- sortie : un objet JSON sur stdout
{"ok": true, "message": "…", "data": {…}}
ou {"ok": false, "error": "…"} — signalé en warning, jamais fatal
- une sortie invalide (pas de JSON) est signalée en warning sans casser am
- un plugin qui dépasse son timeout est tué (défaut 10 s)
- les plugins n'ont pas accès aux valeurs des secrets (env_keys seulement)
- AM_PLUGINS_RUNNING=1 est exporté pendant un plugin : un am imbriqué
saute les plugins (anti-récursion)
Installation :
cp notify.py notify.yaml ~/.local/state/agent-manager/plugins/ (Linux)
cp notify.py notify.yaml %LOCALAPPDATA%\agent-manager\plugins\ (Windows)
Vérification :
am plugins # liste les plugins découverts
am plugins --test notify # exécute le contrat sur un événement de test
Configuration (config.yaml) :
plugins:
timeout_secs: 10 # temps max d'un plugin (défaut 10 s)
enabled: [notify] # vide = tous les plugins du répertoire