> Pour un agent : la carte du site est sur https://subagent.fr/llms.txt ; chaque page existe en Markdown, à la même adresse suffixée `.md`.

# La main courante

> La main courante dit qui a fait quoi, et quand, dans votre espace : votre agent, vous depuis votre assistant, ou le service lui-même. Dans l'application, chaque objet porte la sienne, et l'on demande à l'agent au pied de ce journal.

## Qui a fait quoi

Chaque ligne a un auteur, l'`actor` :

| `kind` | Qui | Ce que montre l'application |
|---|---|---|
| `agent` | Une clé d'API : un agent qui travaille avec sa propre clé. | Le nom de la clé. |
| `human` | La connexion d'un assistant (Claude, ChatGPT…) : un humain et son assistant. | « Vous » quand c'est la connexion qui lit (`you` = `true`), sinon son nom. |
| `service` | Subagent lui-même : réception, envoi, coupe-circuit, administration. | « Subagent ». |

Une connexion d'assistant agit au nom de son humain : ce que l'assistant fait par elle, et ce que l'humain fait dans la vue, portent le même auteur.

Chaque ligne a aussi une phrase en français (« Brouillon validé », « Réponse reçue de … », « Campagne mise en pause »). Elle ne reprend jamais ce qu'un tiers a écrit : ni l'objet ni le corps d'un e-mail reçu, seulement une adresse.

## Par jour, ou par objet

`list_events` sans objet rend la journée demandée (aujourd'hui par défaut, heure de Paris). Avec un objet (une boîte, un fil, un message, une campagne, une audience, un contact ou un domaine), il rend tout ce qui le touche, du plus récent au plus ancien. Une clé limitée à certaines boîtes n'en voit que les lignes de ses boîtes.

## L'auteur d'un message, et la version d'avant

Tout message sortant porte `created_by` : l'auteur qui l'a écrit, au même format. Un brouillon que quelqu'un corrige garde la version qu'il remplace, dans `previous` : son objet, son texte, son HTML, l'heure et l'auteur de la correction. Corriger le brouillon avec ces valeurs, c'est revenir en arrière, et l'on peut revenir du retour. Une campagne et un modèle gardent de même leur version d'avant (voir [Campagnes](https://subagent.fr/docs/campagnes.md#revenir)). Un message validé ou annulé n'a plus de version d'avant.

## Les outils

`workspace_snapshot` sert l'application elle-même : il prépare d'un coup les premières pages des rubriques qu'une connexion peut lire, pour que la navigation dans la vue ne relise pas tout. Un agent n'a pas à l'appeler.

### `list_events`

Lit la main courante de l’espace : qui a fait quoi, et quand (votre agent, vous depuis votre assistant, ou le service). Accès : `read`.

| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| `day` | texte | non | Un jour de Paris, AAAA-MM-JJ. Absent : aujourd’hui, sauf si un objet est donné (alors tout son historique). |
| `inbox_id` | identifiant `inb_…` | non | Une boîte (inb_…). |
| `thread_id` | identifiant `thr_…` | non | Un fil (thr_…). |
| `message_id` | identifiant `msg_…` | non | Un message (msg_…). |
| `campaign_id` | identifiant `cmp_…` | non | Une campagne (cmp_…). |
| `audience_id` | identifiant `aud_…` | non | Une audience (aud_…). |
| `contact` | texte | non | Une adresse : ses fils, sa fiche, ses blocages. |
| `domain` | texte | non | Un domaine : ses vérifications et ses boîtes. |
| `cursor` | texte | non | Curseur de la page suivante : la valeur next_cursor de l’appel précédent. |
| `limit` | entier | non | Le nombre de lignes rendues, de 1 à 200. 50 par défaut. |

[Référence complète](https://subagent.fr/docs/reference/list_events.md)

### `workspace_snapshot`

Précharge les premières pages des rubriques autorisées pour cette connexion. Accès : toute clé.

| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
| `known_revision` | texte | non | Révision opaque précédemment reçue, facultative. |

[Référence complète](https://subagent.fr/docs/reference/workspace_snapshot.md)
