bots-garden/sidekickspublic Fork
⑂ feature/m1-foundations
Commits
⬇ Clone ▾
git clone https://git.rickub.com/bots-garden/sidekicks.git
git clone ssh://git@rickub.com/bots-garden/sidekicks.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP
🛟 Updated. b34befd · on feature/m1-foundations · k33g · 4d ago
agents-et-evenements.md · 51 lines · 3.2 KBmarkdown
Blame HistoryOpen raw

Référence : états des agents et événements

États d'un agent

État Affiché Signification
stopped arrêté Aucun processus. L'état initial de chaque agent.
starting démarre… Le processus est lancé et la poignée de main ACP (initialize) est en cours.
ready prêt En marche et inoccupé.
busy occupé En marche et utilisé par au moins une conversation.
error erreur Le démarrage a échoué, ou le processus s'est arrêté seul (crash). Le statut porte la raison, suivie des dernières lignes stderr de l'agent en cas d'échec au démarrage.

outdated (affiché « à redémarrer ») marque un agent en marche dont la définition a changé dans la configuration ; un redémarrage l'applique.

Transitions

Depuis Événement Vers
stopped, error démarrage demandé (▶ dans le panneau Agents, ou première utilisation) starting
starting la poignée de main réussit ready
starting la poignée de main échoue, protocole autre qu'ACP v1, délai dépassé (30 s) error
ready utilisé busy
busy le dernier utilisateur a fini ready
ready, busy arrêt demandé (■), fermeture de l'application, agent retiré de la configuration stopped
ready inutilisé depuis limits.stopIdleAgentsAfter (vérifié toutes les 30 s) stopped
ready un autre agent doit démarrer et celui-ci est l'agent inoccupé utilisé le moins récemment stopped
ready, busy le processus s'arrête seul error (jamais redémarré automatiquement)
starting arrêt demandé stopped dès la fin du démarrage

Quand limits.maxRunningAgents agents tournent et qu'ils sont tous busy, un démarrage est refusé avec le message too many agents running: N agent(s) busy (…), the limit is N.

Arrêter un agent ferme son entrée standard, attend 5 secondes, puis tue son groupe de processus (l'agent et ce qu'il a lancé, comme mm sous scripts/agents.sh).

Événements du Go vers l'interface

Événement Charge Envoyé quand
config:changed {path, valid, problems[]} Le fichier de configuration a été enregistré et rechargé (valide ou non).
agent:state {agent, state, error?} Un agent change d'état ou sa définition change.
agent:log {agent, line} Un agent écrit une ligne sur sa sortie d'erreur.

Les noms et types Go sont dans internal/events ; les constantes et types TypeScript sont générés dans frontend/bindings/events et frontend/bindings/…/internal/events.

Services appelés par l'interface

Service Méthode Effet
AgentService List() Tous les agents avec name, title, icon, description, state, error, outdated, dans l'ordre de la configuration.
Start(name), Stop(name), Restart(name) Comme dans les transitions ci-dessus ; une erreur est renvoyée à l'interface.
Logs(name) Les 200 dernières lignes stderr de l'agent.
ConfigService Current() path, source, created, valid, problems[], warnings[], theme, language, channels[].
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# Référence : états des agents et événements

## États d'un agent

| État | Affiché | Signification |
| --- | --- | --- |
| `stopped` | arrêté | Aucun processus. L'état initial de chaque agent. |
| `starting` | démarre… | Le processus est lancé et la poignée de main ACP (`initialize`) est en cours. |
| `ready` | prêt | En marche et inoccupé. |
| `busy` | occupé | En marche et utilisé par au moins une conversation. |
| `error` | erreur | Le démarrage a échoué, ou le processus s'est arrêté seul (crash). Le statut porte la raison, suivie des dernières lignes stderr de l'agent en cas d'échec au démarrage. |

`outdated` (affiché « à redémarrer ») marque un agent en marche dont la définition a changé dans la configuration ; un redémarrage l'applique.

## Transitions

| Depuis | Événement | Vers |
| --- | --- | --- |
| `stopped`, `error` | démarrage demandé (▶ dans le panneau Agents, ou première utilisation) | `starting` |
| `starting` | la poignée de main réussit | `ready` |
| `starting` | la poignée de main échoue, protocole autre qu'ACP v1, délai dépassé (30 s) | `error` |
| `ready` | utilisé | `busy` |
| `busy` | le dernier utilisateur a fini | `ready` |
| `ready`, `busy` | arrêt demandé (■), fermeture de l'application, agent retiré de la configuration | `stopped` |
| `ready` | inutilisé depuis `limits.stopIdleAgentsAfter` (vérifié toutes les 30 s) | `stopped` |
| `ready` | un autre agent doit démarrer et celui-ci est l'agent inoccupé utilisé le moins récemment | `stopped` |
| `ready`, `busy` | le processus s'arrête seul | `error` (jamais redémarré automatiquement) |
| `starting` | arrêt demandé | `stopped` dès la fin du démarrage |

Quand `limits.maxRunningAgents` agents tournent et qu'ils sont tous `busy`, un démarrage est refusé avec le message `too many agents running: N agent(s) busy (…), the limit is N`.

Arrêter un agent ferme son entrée standard, attend 5 secondes, puis tue son groupe de processus (l'agent et ce qu'il a lancé, comme `mm` sous `scripts/agents.sh`).

## Événements du Go vers l'interface

| Événement | Charge | Envoyé quand |
| --- | --- | --- |
| `config:changed` | `{path, valid, problems[]}` | Le fichier de configuration a été enregistré et rechargé (valide ou non). |
| `agent:state` | `{agent, state, error?}` | Un agent change d'état ou sa définition change. |
| `agent:log` | `{agent, line}` | Un agent écrit une ligne sur sa sortie d'erreur. |

Les noms et types Go sont dans `internal/events` ; les constantes et types TypeScript sont générés dans `frontend/bindings/events` et `frontend/bindings/…/internal/events`.

## Services appelés par l'interface

| Service | Méthode | Effet |
| --- | --- | --- |
| `AgentService` | `List()` | Tous les agents avec `name, title, icon, description, state, error, outdated`, dans l'ordre de la configuration. |
| | `Start(name)`, `Stop(name)`, `Restart(name)` | Comme dans les transitions ci-dessus ; une erreur est renvoyée à l'interface. |
| | `Logs(name)` | Les 200 dernières lignes stderr de l'agent. |
| `ConfigService` | `Current()` | `path, source, created, valid, problems[], warnings[], theme, language, channels[]`. |