bots-garden/mini-mepublic Fork
⑂ v0.0.0
Commits
⬇ Clone ▾
git clone https://git.rickub.com/bots-garden/mini-me.git
git clone ssh://git@rickub.com/bots-garden/mini-me.git

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

Download ZIP
💾 Saved. 45c23b4 · on v0.0.0 · k33g · Sep 16, 2026
tools.md · 104 lines · 5.3 KBmarkdown
Blame HistoryOpen raw

Référence : outils intégrés

Description neutre des outils déclarés au modèle. Un outil ne renvoie jamais d'erreur Go pour un échec ordinaire : le texte de l'échec est renvoyé au modèle comme sortie de l'outil. Chaque outil enregistre son appel dans le détecteur de boucle ; le même outil, la même entrée et la même sortie trois fois de suite ajoutent [LOOP_DETECTED: …] à la sortie.

bash

Toujours déclaré.

Champ Type Description
command chaîne La commande shell à exécuter.
Aspect Comportement
Shell bash -c <command>, un nouveau shell par appel, pas de stdin.
Répertoire de travail Le répertoire du processus en mode terminal ; le cwd de la session en mode ACP.
Délai 30 s ; la sortie se termine alors par [error: 30s timeout exceeded].
Sortie stdout et stderr fusionnés, tronqués à maxOutput caractères.
Code de sortie non nul La sortie se termine par [exit code: exit status N].
Affichage terminal 🛠️ bash: <command> avant exécution, puis jusqu'à previewLines lignes grisées et indentées, ou (no output).
ACP Appel d'outil de genre execute ; permission demandée avant exécution ; un refus renvoie [command rejected by the user] avec le statut failed.
Mode fenêtre Une ligne ‣ bash <commande> avec statut, durée et sortie repliée. Avec permissions: ask, attend a/s/r ; un refus renvoie le même texte qu'en ACP.

read_skill

Déclaré seulement quand skillsDir contient au moins un skill (<nom>.md ou <nom>/SKILL.md).

Champ Type Description
name chaîne Nom du skill, exactement tel que listé dans la description de l'outil.
Aspect Comportement
Description Phrase fixe suivie du catalogue : une ligne <name> — <description> par skill, triées par nom.
Sortie Le markdown complet de <skillsDir>/<name>.md, ou de <skillsDir>/<name>/SKILL.md s'il n'y a pas de fichier à plat, tronqué à maxOutput.
Nom inconnu No skill named "x". Available skills: a, b, c
Sécurité des chemins Seul le nom de base de name est utilisé ; pas de traversée de répertoire.
Affichage terminal 📖 read_skill: <name> ; le contenu n'est pas affiché.
ACP Appel d'outil de genre read ; pas de dialogue de permission.

read_file

Déclaré quand editTools: true.

Champ Type Défaut Description
path chaîne — Chemin du fichier, relatif au répertoire de travail.
start entier 0 Première ligne (base 1) ; 0 = depuis le début.
end entier 0 Dernière ligne (base 1, incluse) ; 0 = jusqu'à la fin.
numbered booléen false Préfixe chaque ligne de son numéro.
Aspect Comportement
Fichier absent <path> does not exist. Create it with write_file
Sortie Les lignes, tronquées à maxOutput ; le saut de ligne final n'est conservé que si la fin du fichier est affichée.
ACP Genre read, avec le chemin absolu comme emplacement.

write_file

Déclaré quand editTools: true.

Champ Type Description
path chaîne Chemin du fichier, relatif au répertoire de travail ; les répertoires parents sont créés.
content chaîne Le contenu entier du fichier.
Aspect Comportement
Fichier existant Entièrement remplacé.
Contenu identique Rien n'est écrit ; le résultat le dit.
Sortie Un en-tête d'une ligne et le diff par rapport au contenu précédent.
ACP Genre edit ; permission demandée ; le changement voyage comme un diff (diff de nouveau fichier à la création).

edit_file

Déclaré quand editTools: true.

Champ Type Défaut Description
path chaîne — Chemin d'un fichier existant.
edits tableau de {old, new} — Remplacements, tous résolus par rapport au fichier original.
edits[].old chaîne — Texte exact à trouver, présent exactement une fois.
edits[].new chaîne — Remplacement ; vide supprime le texte trouvé.
dry_run booléen false Rapporte ce qui changerait, n'écrit rien.
Règle Conséquence si violée
old apparaît exactement une fois Refus : introuvable, ou ambigu.
Deux éditions ne doivent ni se chevaucher, ni s'imbriquer, ni se répéter Refus.
Les éditions sont résolues sur le texte original, jamais en cascade —
Toute édition refusée Rien n'est écrit.
Aspect Comportement
Sortie Un en-tête d'une ligne (éditions appliquées, lignes ajoutées et supprimées, première ligne modifiée) et le diff avec numéros de ligne.
ACP Genre edit ; permission demandée ; le changement voyage comme un diff avec ancien et nouveau texte.

Compteurs affichés après un tour

Compteur Compte
⚙ N command(s) Réponses de l'outil bash dans le tour.
📝 N file op(s) Réponses de read_file, write_file, edit_file.
📖 N skill(s) Réponses de read_skill.
  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
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
# Référence : outils intégrés

> Description neutre des outils déclarés au modèle. Un outil ne renvoie jamais d'erreur Go pour un échec ordinaire : le texte de l'échec est renvoyé au modèle comme sortie de l'outil. Chaque outil enregistre son appel dans le détecteur de boucle ; le même outil, la même entrée et la même sortie trois fois de suite ajoutent `[LOOP_DETECTED: …]` à la sortie.

## `bash`

Toujours déclaré.

| Champ | Type | Description |
|-------|------|-------------|
| `command` | chaîne | La commande shell à exécuter. |

| Aspect | Comportement |
|--------|--------------|
| Shell | `bash -c <command>`, un nouveau shell par appel, pas de stdin. |
| Répertoire de travail | Le répertoire du processus en mode terminal ; le `cwd` de la session en mode ACP. |
| Délai | 30 s ; la sortie se termine alors par `[error: 30s timeout exceeded]`. |
| Sortie | stdout et stderr fusionnés, tronqués à `maxOutput` caractères. |
| Code de sortie non nul | La sortie se termine par `[exit code: exit status N]`. |
| Affichage terminal | `🛠️  bash: <command>` avant exécution, puis jusqu'à `previewLines` lignes grisées et indentées, ou `(no output)`. |
| ACP | Appel d'outil de genre `execute` ; permission demandée avant exécution ; un refus renvoie `[command rejected by the user]` avec le statut `failed`. |
| Mode fenêtre | Une ligne `‣ bash  <commande>` avec statut, durée et sortie repliée. Avec `permissions: ask`, attend `a`/`s`/`r` ; un refus renvoie le même texte qu'en ACP. |

## `read_skill`

Déclaré seulement quand `skillsDir` contient au moins un skill (`<nom>.md` ou `<nom>/SKILL.md`).

| Champ | Type | Description |
|-------|------|-------------|
| `name` | chaîne | Nom du skill, exactement tel que listé dans la description de l'outil. |

| Aspect | Comportement |
|--------|--------------|
| Description | Phrase fixe suivie du catalogue : une ligne `  <name> — <description>` par skill, triées par nom. |
| Sortie | Le markdown complet de `<skillsDir>/<name>.md`, ou de `<skillsDir>/<name>/SKILL.md` s'il n'y a pas de fichier à plat, tronqué à `maxOutput`. |
| Nom inconnu | `No skill named "x". Available skills: a, b, c` |
| Sécurité des chemins | Seul le nom de base de `name` est utilisé ; pas de traversée de répertoire. |
| Affichage terminal | `📖 read_skill: <name>` ; le contenu n'est pas affiché. |
| ACP | Appel d'outil de genre `read` ; pas de dialogue de permission. |

## `read_file`

Déclaré quand `editTools: true`.

| Champ | Type | Défaut | Description |
|-------|------|--------|-------------|
| `path` | chaîne | — | Chemin du fichier, relatif au répertoire de travail. |
| `start` | entier | `0` | Première ligne (base 1) ; `0` = depuis le début. |
| `end` | entier | `0` | Dernière ligne (base 1, incluse) ; `0` = jusqu'à la fin. |
| `numbered` | booléen | `false` | Préfixe chaque ligne de son numéro. |

| Aspect | Comportement |
|--------|--------------|
| Fichier absent | `<path> does not exist. Create it with write_file` |
| Sortie | Les lignes, tronquées à `maxOutput` ; le saut de ligne final n'est conservé que si la fin du fichier est affichée. |
| ACP | Genre `read`, avec le chemin absolu comme emplacement. |

## `write_file`

Déclaré quand `editTools: true`.

| Champ | Type | Description |
|-------|------|-------------|
| `path` | chaîne | Chemin du fichier, relatif au répertoire de travail ; les répertoires parents sont créés. |
| `content` | chaîne | Le contenu entier du fichier. |

| Aspect | Comportement |
|--------|--------------|
| Fichier existant | Entièrement remplacé. |
| Contenu identique | Rien n'est écrit ; le résultat le dit. |
| Sortie | Un en-tête d'une ligne et le diff par rapport au contenu précédent. |
| ACP | Genre `edit` ; permission demandée ; le changement voyage comme un diff (diff de nouveau fichier à la création). |

## `edit_file`

Déclaré quand `editTools: true`.

| Champ | Type | Défaut | Description |
|-------|------|--------|-------------|
| `path` | chaîne | — | Chemin d'un fichier existant. |
| `edits` | tableau de `{old, new}` | — | Remplacements, tous résolus par rapport au fichier original. |
| `edits[].old` | chaîne | — | Texte exact à trouver, présent exactement une fois. |
| `edits[].new` | chaîne | — | Remplacement ; vide supprime le texte trouvé. |
| `dry_run` | booléen | `false` | Rapporte ce qui changerait, n'écrit rien. |

| Règle | Conséquence si violée |
|-------|-----------------------|
| `old` apparaît exactement une fois | Refus : introuvable, ou ambigu. |
| Deux éditions ne doivent ni se chevaucher, ni s'imbriquer, ni se répéter | Refus. |
| Les éditions sont résolues sur le texte original, jamais en cascade | — |
| Toute édition refusée | Rien n'est écrit. |

| Aspect | Comportement |
|--------|--------------|
| Sortie | Un en-tête d'une ligne (éditions appliquées, lignes ajoutées et supprimées, première ligne modifiée) et le diff avec numéros de ligne. |
| ACP | Genre `edit` ; permission demandée ; le changement voyage comme un diff avec ancien et nouveau texte. |

## Compteurs affichés après un tour

| Compteur | Compte |
|----------|--------|
| `⚙ N command(s)` | Réponses de l'outil `bash` dans le tour. |
| `📝 N file op(s)` | Réponses de `read_file`, `write_file`, `edit_file`. |
| `📖 N skill(s)` | Réponses de `read_skill`. |