Skip to content

Overlay : montrer ce que fait l'IA ​

L'Overlay est la couche visuelle que Daimon dessine par-dessus l'écran pour que la personne devant la machine voie où l'IA regarde et agit : cadre, projecteur, curseur, bandeau. Il est purement présentationnel.

Les cinq outils ont les mêmes propriétés :

  • ils n'ont aucun niveau d'autorisation et ne sont pas soumis au plafond ;
  • ils ne bloquent jamais et n'échouent jamais ;
  • ils renvoient toujours {"ok": true}, même si aucune fenêtre d'overlay n'est en cours d'exécution : l'ordre est alors simplement abandonné. Un ok ne prouve donc pas que la marque est visible ;
  • le réglage « Présence à l'écran » du panneau active l'overlay.
  • par défaut (anti_feedback vaut true dans la configuration), les marques de l'Overlay sont invisibles de toute capture d'écran, y compris vue_snapshot : l'IA ne voit jamais ses propres marques. Vous les voyez à l'écran, mais elles n'apparaissent pas dans une capture ; c'est pourquoi cette documentation n'en montre aucune. Sous macOS, l'overlay est une fenêtre sans interaction qui couvre l'écran principal.

Unité des coordonnées

Ici, les coordonnées sont des pixels globaux bruts, déjà résolus par vous. Il n'y a ni space, ni display, ni region (contrairement aux Mains, qui parlent en points). Ne passez pas de pixels d'image : convertissez-les d'abord avec vue_resolve.

Le helper de l'Overlay ​

Les marques sont dessinées par un processus à part, le helper (Daimon overlay). Il se termine de lui-même : 60 secondes après son lancement s'il n'a eu aucun client, et 3 secondes après le départ de son dernier client.

Le client relance le helper quand un envoi échoue faute de helper, à condition que « Présence à l'écran » soit activé, et au plus une fois toutes les 5 secondes. Activer « Présence à l'écran » dans le panneau lance aussi le helper ; le désactiver ne l'arrête pas et ne le relance pas.

Pour savoir si le helper vit, appelez daimon_doctor et lisez la clé overlay. Le journal overlay.log, dans le dossier de données de Daimon, note overlay: bound, puis overlay: start enabled=<true|false> au démarrage, et overlay: exit reason=<idle|startup> à la sortie, chaque ligne précédée d'un horodatage UTC.

OutilRôleNiveau
overlay_highlightCadre arrondi autour d'une région, avec libelléaucun
overlay_spotlightAssombrit l'écran sauf une régionaucun
overlay_cursorHalo de curseur synthétiqueaucun
overlay_bannerBandeau coloré selon un niveauaucun
overlay_clearEfface toutes les marquesaucun

overlay_highlight ​

Dessine un rectangle arrondi stylé, avec un libellé facultatif, autour d'une région.

ParamètreTypeDéfautObligatoireRôle
xentieraucunouiBord gauche
yentieraucunouiBord haut
widthentieraucunouiLargeur
heightentieraucunouiHauteur
labelchaîne""nonLibellé affiché avec le cadre

Exemple d'appel

json
{ "x": 400, "y": 300, "width": 220, "height": 60, "label": "Bouton Envoyer" }

Retour : {"ok": true}.

overlay_spotlight ​

Assombrit l'écran sauf un trou dégagé sur la région.

ParamètreTypeDéfautObligatoireRôle
x, yentieraucunouiCoin haut-gauche de la région
width, heightentieraucunouiDimensions de la région

Exemple d'appel : { "x": 400, "y": 300, "width": 220, "height": 60 }

Retour : {"ok": true}.

overlay_cursor ​

Place le halo de curseur synthétique sur un point global.

ParamètreTypeDéfautObligatoireRôle
x, yentieraucunouiPoint

Exemple d'appel : { "x": 510, "y": 330 }

Retour : {"ok": true}.

overlay_banner ​

Affiche un bandeau coloré selon un niveau, avec un texte.

ParamètreTypeDéfautObligatoireRôle
textchaîneaucunouiTexte du bandeau
levelchaîne"L1"nonCouleur : default, L1, L2, L3, L4 ou gate

Exemple d'appel

json
{ "text": "Daimon remplit le formulaire", "level": "L2" }

Retour : {"ok": true}.

Pièges : un niveau inconnu retombe sur default, sans erreur.

overlay_clear ​

Efface toutes les marques d'overlay actuellement à l'écran.

Paramètres : aucun. Retour : {"ok": true}.