Diagnostic : l'état de la machine et le plafond
Deux outils en lecture seule, qui ne changent rien et n'ouvrent aucune session. Ils ne sont pas soumis au plafond.
| Outil | Rôle |
|---|---|
daimon_doctor | Diagnostic de toute la machine, organe par organe |
main_ceiling | Plafond d'autorisation actif des Mains |
ping | Contrôle de santé (annexe) |
daimon_doctor
Rend l'état de chaque organe en un seul appel. Appelez-le en premier quand quelque chose se comporte de façon étrange, et avant de conclure qu'un outil est cassé.
Paramètres : aucun. Niveau : lecture.
Exemple d'appel : daimon_doctor sans argument.
Retour : un objet structuré. Les clés de premier niveau :
| Clé | Contenu |
|---|---|
ok | Verdict global : sondes fiables, Enregistrement de l'écran et Accessibilité accordés, rien de cassé |
backend | Nature de la sonde de permissions (kind), sa fiabilité (trustworthy) et une note |
responsible_app | L'application responsable, celle à laquelle le système rattache les permissions |
permissions | Verdict réel de screen_recording et accessibility (granted, outils concernés) |
exclusions | État du fichier d'exclusions |
organs | État de chaque organe |
overlay | État du helper de l'Overlay (voir ci-dessous) |
consequences | Ce que chaque permission manquante fait concrètement à chaque outil |
ceiling | Plafond actif, au format de main_ceiling |
cannot_detect | Ce que le diagnostic ne peut pas détecter |
next | Prochaines étapes suggérées |
La clé overlay décrit le processus qui dessine l'Overlay, sans jamais s'y connecter :
| Sous-clé | Type | Sens |
|---|---|---|
enabled | booléen | Le réglage « Présence à l'écran » est activé |
socket_present | booléen | Le fichier de socket du helper existe (il peut être périmé) |
lock_held | booléen | Un helper tient le verrou : il est vivant |
listening | booléen | socket_present et lock_held ensemble : le helper vit et écoute |
last_log_line | chaîne ou null | Dernière ligne de overlay.log, tronquée à 200 caractères ; null si le journal est absent ou illisible |
Exemple d'un helper arrêté proprement :
{ "enabled": true, "socket_present": true, "listening": false, "lock_held": false,
"last_log_line": "2026-10-16T07:50:27Z overlay: exit reason=idle" }Cette clé n'influe ni sur ok, ni sur next, ni sur consequences.
Pièges
- Les verdicts sont sondés dans le processus courant, par des API qui ne demandent jamais d'autorisation : l'exécuter ne peut pas faire apparaître de boîte de dialogue.
- Lisez
consequences: sans Accessibilité,main_type,main_key,main_hoveretmain_navigaterenvoientstatus: "done"comme des non-opérations silencieuses, etmain_click,main_press,main_dragattendent 30 secondes une boîte de confirmation. - Lisez aussi
cannot_detect: une absence de problème rapportée n'est pas une preuve pour ce qui y est listé.
main_ceiling
Instantané en lecture seule du plafond d'autorisation actif des Mains : le niveau courant, l'activité du niveau L4, le niveau nominal de chaque outil d'action et ceux qui sont actuellement refusés parce qu'au-dessus du plafond. C'est l'outil à appeler avant de piloter, pour annoncer d'emblée ce que vous ne pourrez pas faire plutôt que d'être refusé en cours de route.
Paramètres : aucun. Niveau : lecture.
Exemple d'appel : main_ceiling sans argument.
Retour
| Clé | Type | Contenu |
|---|---|---|
ceiling | chaîne | Plafond actif : READ, NONDESTRUCTIVE, INPUT, VALIDATION ou AUTONOMOUS |
l4_active | booléen | Vrai quand le plafond est AUTONOMOUS (L4) |
levels | objet | Nom de chaque outil d'action vers son niveau nominal |
gated_above | liste de chaînes | Outils refusés au plafond actuel, triés par ordre alphabétique |
Correspondance avec la convention L0 à L4 : READ = L0, NONDESTRUCTIVE = L1, INPUT = L2, VALIDATION = L3, AUTONOMOUS = L4. Les niveaux des outils sont détaillés sur la page Mains.
Pièges
- Un plafond qui dépasse le niveau d'un outil l'autorise, mais la cible peut quand même relever le niveau effectif : l'absence de l'outil dans
gated_abovene garantit pas que chaque appel passera. - Une configuration malformée ou un journal absent se dégradent vers des valeurs de sécurité, sans erreur : le rapport est toujours rendu.
- Le plafond est un réglage humain : aucun outil ne permet à l'IA de le relever.
ping
Contrôle de santé : renvoie toujours la chaîne littérale pong. Aucun paramètre.