palabre 0.1.5 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +145 -363
- package/dist/index.js +83 -83
- package/package.json +50 -49
- package/palabre.config.example.json +2 -2
package/README.md
CHANGED
|
@@ -1,48 +1,30 @@
|
|
|
1
|
-
# PALABRE
|
|
2
|
-
|
|
3
|
-
<p>
|
|
4
|
-
<a href="https://www.npmjs.com/package/palabre"><img src="https://img.shields.io/npm/v/palabre.svg?style=flat&colorA=18181B&colorB=7C3AED" alt="Version"></a>
|
|
5
|
-
<a href="https://www.npmjs.com/package/palabre"><img src="https://img.shields.io/npm/dm/palabre.svg?style=flat&colorA=18181B&colorB=7C3AED" alt="Downloads"></a>
|
|
6
|
-
<a href="https://github.com/JuReyms/Palabre/blob/main/LICENSE"><img src="https://img.shields.io/github/license/JuReyms/Palabre.svg?style=flat&colorA=18181B&colorB=7C3AED" alt="License"></a>
|
|
7
|
-
<a href="https://palab.re"><img src="https://img.shields.io/badge/palab.re-18181B?logo=netlify&logoColor=7C3AED" alt="
|
|
8
|
-
</p>
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
- Etat vivant pendant qu'un agent genere sa reponse.
|
|
29
|
-
- Assistant interactif `palabre new` pour composer un debat pas a pas.
|
|
30
|
-
- Export `.debate.md`.
|
|
31
|
-
|
|
32
|
-
Le preset CLI actuel vise les modes non interactifs : `codex exec` et `claude --print`. Le prochain gros chantier reste l'adapter PTY robuste pour les vraies sessions interactives.
|
|
33
|
-
|
|
34
|
-
## Prerequis
|
|
35
|
-
|
|
36
|
-
- Node.js 20 ou plus.
|
|
37
|
-
- pnpm 10.
|
|
38
|
-
- Pour les agents CLI : les commandes visees doivent deja etre installees et authentifiees, par exemple `codex` ou `claude`.
|
|
39
|
-
- Gemini CLI est aussi supporte en mode batch si `gemini` est installe et authentifie.
|
|
40
|
-
- OpenCode est supporte en mode batch si `opencode` est installe et authentifie.
|
|
41
|
-
- Pour Ollama : Ollama doit tourner localement, par defaut sur `http://localhost:11434`, avec le modele configure deja disponible.
|
|
42
|
-
|
|
43
|
-
## Installation
|
|
44
|
-
|
|
45
|
-
Quand le package npm est publie :
|
|
1
|
+
# PALABRE
|
|
2
|
+
|
|
3
|
+
<p>
|
|
4
|
+
<a href="https://www.npmjs.com/package/palabre"><img src="https://img.shields.io/npm/v/palabre.svg?style=flat&colorA=18181B&colorB=7C3AED" alt="Version"></a>
|
|
5
|
+
<a href="https://www.npmjs.com/package/palabre"><img src="https://img.shields.io/npm/dm/palabre.svg?style=flat&colorA=18181B&colorB=7C3AED" alt="Downloads"></a>
|
|
6
|
+
<a href="https://github.com/JuReyms/Palabre/blob/main/LICENSE"><img src="https://img.shields.io/github/license/JuReyms/Palabre.svg?style=flat&colorA=18181B&colorB=7C3AED" alt="License"></a>
|
|
7
|
+
<a href="https://palab.re"><img src="https://img.shields.io/badge/docs-palab.re-18181B?logo=netlify&logoColor=7C3AED" alt="Documentation"></a>
|
|
8
|
+
</p>
|
|
9
|
+
|
|
10
|
+
[Français](#français) | [English](#english)
|
|
11
|
+
|
|
12
|
+
## Français
|
|
13
|
+
|
|
14
|
+
PALABRE est un orchestrateur CLI qui fait dialoguer plusieurs agents IA installés sur votre machine : Claude Code, Codex CLI, Gemini CLI, OpenCode et Ollama.
|
|
15
|
+
|
|
16
|
+
Il ne remplace pas vos outils : il les pilote. Vous gardez vos abonnements, vos modèles par défaut, vos habitudes de terminal et vos fichiers en local. PALABRE exporte ensuite le débat en Markdown.
|
|
17
|
+
|
|
18
|
+
### Documentation
|
|
19
|
+
|
|
20
|
+
- https://palab.re
|
|
21
|
+
- https://palabre.netlify.app
|
|
22
|
+
|
|
23
|
+
Pages utiles : [Installation](https://palab.re/get-started/installation), [Configuration](https://palab.re/get-started/configuration), [Premier débat](https://palab.re/get-started/first-debate), [Référence CLI](https://palab.re/reference/cli), [Dépannage](https://palab.re/troubleshooting), [Roadmap](https://palab.re/roadmap).
|
|
24
|
+
|
|
25
|
+
### Installation
|
|
26
|
+
|
|
27
|
+
Prérequis : Node.js 20 ou plus, et au moins deux agents déjà installés/authentifiés si vous voulez les faire débattre.
|
|
46
28
|
|
|
47
29
|
```bash
|
|
48
30
|
npm install -g palabre
|
|
@@ -50,327 +32,127 @@ palabre --version
|
|
|
50
32
|
palabre --help
|
|
51
33
|
```
|
|
52
34
|
|
|
53
|
-
|
|
35
|
+
### Démarrage rapide
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
palabre init
|
|
39
|
+
palabre doctor
|
|
40
|
+
palabre new
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Exemples directs :
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
palabre codex-claude "Critique ce plan" -t 4
|
|
47
|
+
palabre -s "Compare ces deux approches" -t 2
|
|
48
|
+
palabre codex-claude "Relis cette architecture" --context src docs
|
|
49
|
+
palabre claude-ollama "Critique ce fichier" --files README.md
|
|
50
|
+
palabre codex-claude "Preview" --context src --show-prompt
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### Agents supportés
|
|
54
|
+
|
|
55
|
+
- Claude Code via `claude --print`
|
|
56
|
+
- Codex CLI via `codex exec`
|
|
57
|
+
- Gemini CLI via `gemini --prompt -`
|
|
58
|
+
- OpenCode via `opencode run`
|
|
59
|
+
- Ollama via l'API locale HTTP
|
|
60
|
+
|
|
61
|
+
PALABRE ne liste pas les modèles : ils changent souvent et dépendent de chaque CLI ou compte utilisateur. `--model-a`, `--model-b` et `--summary-model` transmettent simplement la valeur brute à l'agent concerné.
|
|
62
|
+
|
|
63
|
+
### Confidentialité
|
|
64
|
+
|
|
65
|
+
PALABRE tourne localement et n'envoie aucune donnée à un serveur appartenant à PALABRE. Les données envoyées aux agents dépendent des outils que vous utilisez : vérifiez les politiques de confidentialité de Claude Code, Codex CLI, Gemini CLI, OpenCode, Ollama ou de tout autre agent configuré.
|
|
66
|
+
|
|
67
|
+
### Développement local
|
|
54
68
|
|
|
55
69
|
```bash
|
|
70
|
+
git clone https://github.com/JuReyms/Palabre.git
|
|
71
|
+
cd Palabre
|
|
56
72
|
pnpm install
|
|
57
73
|
pnpm build
|
|
58
74
|
pnpm link --global
|
|
59
75
|
palabre --version
|
|
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
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
```bash
|
|
144
|
-
palabre new
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
Mode direct :
|
|
148
|
-
|
|
149
|
-
```bash
|
|
150
|
-
palabre run --subject "Refacto de l'auth Nuxt" --agent-a codex --agent-b claude --turns 4
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
Autres exemples :
|
|
154
|
-
|
|
155
|
-
```bash
|
|
156
|
-
palabre run --subject "Comparer deux strategies de cache" --agent-a claude --agent-b codex
|
|
157
|
-
palabre run --subject "Critique rapide du plan de migration" --agent-a codex --agent-b ollama-local --turns 2
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
Presets disponibles :
|
|
161
|
-
|
|
162
|
-
```bash
|
|
163
|
-
palabre run --preset codex-claude --subject "Debattez du prochain jalon"
|
|
164
|
-
palabre run --preset claude-ollama --subject "Critique le MVP batch"
|
|
165
|
-
palabre run --preset gemini-ollama --subject "Gemini est-il un bon reviewer ?"
|
|
166
|
-
palabre run --preset claude-opencode --subject "OpenCode comme reviewer ?"
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
Syntaxe courte equivalente :
|
|
170
|
-
|
|
171
|
-
```bash
|
|
172
|
-
palabre claude-gemini "quel jour sommes nous ?" -t 4
|
|
173
|
-
palabre -s "Critique rapide du MVP" -t 2
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
`--subject` est le nom long recommande pour le sujet. `-s` est son alias court, et `--topic` reste accepte pour compatibilite.
|
|
177
|
-
|
|
178
|
-
Un preset choisit seulement les deux agents. Il ne change pas les modeles par defaut configures dans les CLIs. Pour demander un modele explicitement, Palabre transmet la string brute sans valider ni lister les modeles :
|
|
179
|
-
|
|
180
|
-
```bash
|
|
181
|
-
palabre run --preset codex-claude --model-a 5.5 --model-b opus --subject "Compare les approches"
|
|
182
|
-
palabre run --preset codex-ollama --model-b gemma4:e4b --subject "Critique locale plus profonde"
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
Pour Ollama, Palabre valide par defaut que le modele est installe localement. Il ne telecharge rien sans accord explicite. Pour autoriser un telechargement Ollama si le modele manque :
|
|
186
|
-
|
|
187
|
-
```bash
|
|
188
|
-
palabre run --preset codex-ollama --model-b nemotron-3-nano:4b --pull-models --subject "Critique locale"
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
Equivalent dans la config agent :
|
|
192
|
-
|
|
193
|
-
```json
|
|
194
|
-
{
|
|
195
|
-
"type": "ollama",
|
|
196
|
-
"model": "nemotron-3-nano:4b",
|
|
197
|
-
"autoPullModel": true
|
|
198
|
-
}
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
Pour inspecter le prompt du premier tour sans appeler d'agent :
|
|
202
|
-
|
|
203
|
-
```bash
|
|
204
|
-
palabre run --preset codex-claude --subject "Preview" --context src docs --show-prompt
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
Pour mettre a jour une installation locale :
|
|
208
|
-
|
|
209
|
-
```bash
|
|
210
|
-
palabre update
|
|
211
|
-
palabre update --apply
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
`palabre update` affiche les etapes adaptees. `--apply` les execute seulement si Palabre est installe depuis un checkout git.
|
|
215
|
-
|
|
216
|
-
Par defaut, Palabre produit une synthese finale avec `defaults.summaryAgent` si ce champ est configure, sinon avec l'agent B. Tu peux choisir un autre agent, un modele specifique, ou desactiver la synthese :
|
|
217
|
-
|
|
218
|
-
```bash
|
|
219
|
-
palabre run --preset codex-claude --subject "Critique le MVP" --summary-agent claude
|
|
220
|
-
palabre run --preset codex-claude --subject "Critique le MVP" --summary-agent ollama-local --summary-model nemotron-3-nano:4b
|
|
221
|
-
palabre run --preset codex-claude --subject "Critique le MVP" --no-summary
|
|
222
|
-
```
|
|
223
|
-
|
|
224
|
-
Le rendu console est un premier TUI leger : en-tete, separateurs, tours, synthese lisible et etat "agent en cours" pendant les generations longues. Pour revenir au rendu brut :
|
|
225
|
-
|
|
226
|
-
```bash
|
|
227
|
-
palabre run --preset codex-claude --subject "Critique le MVP" --plain
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
Les couleurs sont automatiquement desactivees si `NO_COLOR` est defini.
|
|
231
|
-
|
|
232
|
-
La session genere un fichier `.debate.md` dans le dossier configure par `outputDir`. L'en-tete de l'export est rendu en table Markdown pour rester lisible dans les renderers courants.
|
|
233
|
-
|
|
234
|
-
`--turns` est une limite haute entre 1 et 20 réponses. Par defaut, Palabre peut s'arreter avant la limite apres un tour complet si le dernier agent exprime clairement un accord complet (`rien a trancher`, `accord complet`, `aucun desaccord`, etc.). Pour forcer tous les tours :
|
|
235
|
-
|
|
236
|
-
```bash
|
|
237
|
-
palabre run --subject "Sujet" --turns 4 --no-early-stop
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
## Contexte projet
|
|
241
|
-
|
|
242
|
-
Palabre distingue deux modes de contexte :
|
|
243
|
-
|
|
244
|
-
- `--files` : selection explicite et stricte de fichiers texte.
|
|
245
|
-
- `--context` : scan tolerant de fichiers ou dossiers texte avec exclusions et warnings.
|
|
246
|
-
|
|
247
|
-
`--files` est utile quand tu sais exactement quels fichiers doivent etre envoyes :
|
|
248
|
-
|
|
249
|
-
```bash
|
|
250
|
-
palabre run --subject "Critique le MVP batch" --files README.md src/adapters/cli.ts --agent-a claude --agent-b ollama-local --turns 2
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
Si un chemin `--files` pointe vers un dossier, un fichier binaire ou un fichier trop gros, Palabre arrete la commande avec une erreur claire.
|
|
254
|
-
|
|
255
|
-
`--context` est utile pour donner une vue projet plus large sans tout envoyer aveuglement :
|
|
256
|
-
|
|
257
|
-
```bash
|
|
258
|
-
palabre run --preset codex-ollama --subject "Critique l'architecture" --context src docs --turns 2
|
|
259
|
-
palabre run --preset codex-claude --subject "Preview contexte" --context . --show-prompt
|
|
260
|
-
```
|
|
261
|
-
|
|
262
|
-
Le scan `--context` :
|
|
263
|
-
|
|
264
|
-
- parcourt recursivement les dossiers passes ;
|
|
265
|
-
- ignore par defaut `.git`, `.gitignore`, `.tmp`, `.pnpm-store`,
|
|
266
|
-
ode_modules` et `dist` ;
|
|
267
|
-
- applique les regles simples de `.gitignore` du projet ;
|
|
268
|
-
- garde seulement les extensions texte connues (`.ts`, `.md`, `.json`, `.yaml`, etc.) ;
|
|
269
|
-
- ignore les fichiers binaires, trop gros ou au-dela de la limite totale avec un warning.
|
|
270
|
-
|
|
271
|
-
Les fichiers retenus, qu'ils viennent de `--files` ou de `--context`, sont envoyes a tous les agents, y compris Ollama. Ils sont aussi listes dans l'export `.debate.md`.
|
|
272
|
-
|
|
273
|
-
Palabre injecte aussi un contexte de session minimal dans tous les prompts :
|
|
274
|
-
|
|
275
|
-
- date locale ;
|
|
276
|
-
- fuseau horaire ;
|
|
277
|
-
- dossier courant ;
|
|
278
|
-
- horodatage de debut de session.
|
|
279
|
-
|
|
280
|
-
Ce contexte est fourni par Palabre et visible par tous les agents du debat. Il evite que Codex, Claude, Gemini, OpenCode ou Ollama se contredisent sur des informations implicites comme la date ou le fuseau horaire.
|
|
281
|
-
|
|
282
|
-
Les agents CLI sont lances depuis le dossier courant. Selon leur propre fonctionnement et leurs permissions, Codex, Claude, Gemini ou OpenCode peuvent donc inspecter le workspace par leurs outils internes. Ce comportement depend de chaque CLI et ne doit pas etre considere comme un contrat garanti par Palabre.
|
|
283
|
-
|
|
284
|
-
Ollama ne lit pas le filesystem par lui-meme. L'adapter Ollama recoit uniquement le prompt construit par Palabre : sujet, role, instructions, fichiers retenus par `--files` ou `--context`, et historique du debat. Si aucun contexte n'est passe, Ollama ne voit pas le contenu du projet.
|
|
285
|
-
|
|
286
|
-
Limites actuelles :
|
|
287
|
-
|
|
288
|
-
- chaque fichier est limite a 64 KiB ;
|
|
289
|
-
- le contexte total est limite a 192 KiB ;
|
|
290
|
-
- les fichiers binaires sont refuses avec `--files` et ignores avec warning via `--context` ;
|
|
291
|
-
- le support `.gitignore` reste volontairement simple pour le MVP.
|
|
292
|
-
|
|
293
|
-
## Scripts
|
|
294
|
-
|
|
295
|
-
```bash
|
|
296
|
-
pnpm check
|
|
297
|
-
pnpm test
|
|
298
|
-
pnpm build
|
|
299
|
-
palabre help
|
|
300
|
-
palabre -h
|
|
301
|
-
palabre -v
|
|
302
|
-
```
|
|
303
|
-
|
|
304
|
-
## Validation locale actuelle
|
|
305
|
-
|
|
306
|
-
Tests effectues sur Windows :
|
|
307
|
-
|
|
308
|
-
- `ollama ↔ ollama` avec `gemma4:e4b` : OK.
|
|
309
|
-
- `codex exec ↔ ollama` : OK.
|
|
310
|
-
- `claude --print ↔ ollama` : OK avec `claude.exe` et `"shell": false`.
|
|
311
|
-
- `gemini --prompt - ↔ ollama` : OK.
|
|
312
|
-
- `opencode run` via Palabre : OK en debat reel 1 tour avec export.
|
|
313
|
-
- `codex exec ↔ claude --print` : OK.
|
|
314
|
-
- `--show-prompt` avec `--files` : OK.
|
|
315
|
-
- `--show-prompt` avec `--context docs` : OK.
|
|
316
|
-
- contexte de session visible dans `--show-prompt` : OK.
|
|
317
|
-
- arret anticipe sur accord clair : OK.
|
|
318
|
-
- syntaxe courte `palabre preset "sujet" -t 4` et `palabre -s "sujet" -t 2` : OK.
|
|
319
|
-
- smoke tests automatises de l'adapter CLI avec agents mockes : OK.
|
|
320
|
-
- detection des limites d'usage CLI type Codex/Claude/Gemini/OpenCode : OK par simulation stderr.
|
|
321
|
-
- `init` avec detection locale des agents : OK.
|
|
322
|
-
- config globale `~/.palabre/palabre.config.json` avec fallback local/legacy : OK.
|
|
323
|
-
- en-tete des exports `.debate.md` en table Markdown : OK.
|
|
324
|
-
- `update` en mode instructions : OK.
|
|
325
|
-
- etat "agent en cours" pendant les generations : OK.
|
|
326
|
-
- synthese finale avec `defaults.summaryAgent`, fallback agent B : OK.
|
|
327
|
-
- `--no-summary` : OK.
|
|
328
|
-
- rendu console pretty et `--plain` : OK.
|
|
329
|
-
|
|
330
|
-
Reglages importants observes :
|
|
331
|
-
|
|
332
|
-
- Codex via le wrapper npm Windows necessite `"shell": true`.
|
|
333
|
-
- Gemini via le wrapper npm Windows fonctionne avec `"shell": true` et `--prompt -`.
|
|
334
|
-
- OpenCode via le wrapper PowerShell/npm Windows fonctionne avec `"shell": true` et `opencode run`.
|
|
335
|
-
- Claude capture correctement `stdin` avec `command: "claude.exe"` et `"shell": false`.
|
|
336
|
-
- `idleTimeoutMs` ne doit pas etre active par defaut pour les CLIs IA en batch, car elles peuvent rester silencieuses pendant la generation.
|
|
337
|
-
|
|
338
|
-
## Limites connues
|
|
339
|
-
|
|
340
|
-
- L'adapter CLI actuel est volontairement minimal. Il marche mieux avec des commandes non interactives ou des CLIs qui acceptent un prompt via `stdin`.
|
|
341
|
-
- `palabre init` detecte les outils locaux et ajuste seulement les defaults ; les blocs agents exemples restent dans la config pour faciliter l'edition.
|
|
342
|
-
- La resolution de config cherche `./palabre.config.json`, `./chicane.config.json`, `~/.palabre/palabre.config.json`, puis `~/.palabre/chicane.config.json` dans cet ordre.
|
|
343
|
-
- Sans config existante, Palabre cree la config globale et quitte ; il n'ecrit plus automatiquement dans le dossier courant. `palabre init --local` force une config locale.
|
|
344
|
-
- Les adapters exposent un contrat (`capabilities` et `guarantees`) pour documenter timeout, sortie vide, stderr, exit code, model override, filesystem et streaming.
|
|
345
|
-
- Les erreurs CLI de limite d'usage ou de quota sont detectees dans stderr et reformatees sans recopier tout le prompt.
|
|
346
|
-
- `--files` est explicite et strict ; `--context` scanne des dossiers texte de facon bornee et best-effort.
|
|
347
|
-
- `--show-prompt` affiche le prompt exact du premier tour seulement. Les tours suivants dependent du transcript reel.
|
|
348
|
-
- `--turns` est une limite haute quand l'arret anticipe est actif ; `--no-early-stop` force tous les tours demandes.
|
|
349
|
-
- `--model-a` et `--model-b` transmettent une string brute aux adapters ; Palabre ne maintient pas de catalogue de modeles.
|
|
350
|
-
- L'adapter Ollama detecte les modeles installes via `/api/tags` quand `validateModel` est actif.
|
|
351
|
-
- L'adapter Ollama peut telecharger un modele manquant via `/api/pull` seulement si `--pull-models` ou `autoPullModel` est actif.
|
|
352
|
-
- L'adapter Ollama decharge les autres modeles charges via `/api/ps` puis `keep_alive: 0` quand `unloadOtherModels` est actif.
|
|
353
|
-
- Palabre affiche un warning si Ollama participe sans contexte fourni, car Ollama ne lit pas le filesystem.
|
|
354
|
-
- La synthese finale est activee par defaut et utilise `defaults.summaryAgent` quand il existe, sinon l'agent B. `--summary-agent` garde la priorite, et `--no-summary` la desactive.
|
|
355
|
-
- Le rendu console pretty est volontairement leger. Il affiche deja l'agent en cours, mais le split-view, le scrolling interactif et l'input humain arriveront avec le vrai TUI.
|
|
356
|
-
- Une sortie CLI vide est consideree comme une erreur, sauf si `allowEmptyOutput` est active explicitement.
|
|
357
|
-
- `idleTimeoutMs` doit etre utilise avec prudence : les CLIs IA peuvent rester silencieuses pendant la generation.
|
|
358
|
-
- Les CLIs interactives auront besoin d'un vrai PTY, probablement via
|
|
359
|
-
ode-pty`.
|
|
360
|
-
- La detection de fin de reponse est encore heuristique avec `idleTimeoutMs`.
|
|
361
|
-
- La TUI et l'extension VS Code sont prevues apres stabilisation du coeur CLI.
|
|
362
|
-
|
|
363
|
-
## Documentation projet
|
|
364
|
-
|
|
365
|
-
Site de documentation : **https://palab.re** (aussi accessible sur https://palabre.netlify.app)
|
|
366
|
-
|
|
367
|
-
- Roadmap : [docs/roadmap.md](./docs/roadmap.md)
|
|
368
|
-
- Introduction : [docs/guide/get-started/introduction.md](./docs/guide/get-started/introduction.md)
|
|
369
|
-
- Installation : [docs/guide/get-started/installation.md](./docs/guide/get-started/installation.md)
|
|
370
|
-
- Premiere configuration : [docs/guide/get-started/configuration.md](./docs/guide/get-started/configuration.md)
|
|
371
|
-
- Premier debat : [docs/guide/get-started/first-debate.md](./docs/guide/get-started/first-debate.md)
|
|
372
|
-
- Reference CLI : [docs/guide/reference/cli.md](./docs/guide/reference/cli.md)
|
|
373
|
-
- Depannage : [docs/guide/troubleshooting.md](./docs/guide/troubleshooting.md)
|
|
374
|
-
- Roadmap utilisateur : [docs/guide/roadmap.md](./docs/guide/roadmap.md)
|
|
375
|
-
- Guide agents/contributeurs : [AGENTS.md](./AGENTS.md)
|
|
376
|
-
- Archive de specification initiale : [docs/archive/Palabre-Specification.md](./docs/archive/Palabre-Specification.md)
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Commandes utiles : `pnpm check`, `pnpm test`, `pnpm build`.
|
|
79
|
+
|
|
80
|
+
Roadmap projet : [docs/roadmap.md](./docs/roadmap.md). Guide agents/contributeurs : [AGENTS.md](./AGENTS.md).
|
|
81
|
+
|
|
82
|
+
### Licence
|
|
83
|
+
|
|
84
|
+
MIT. Voir [LICENSE](./LICENSE).
|
|
85
|
+
|
|
86
|
+
## English
|
|
87
|
+
|
|
88
|
+
PALABRE is a CLI orchestrator that lets multiple AI agents installed on your machine talk to each other: Claude Code, Codex CLI, Gemini CLI, OpenCode, and Ollama.
|
|
89
|
+
|
|
90
|
+
It does not replace your tools: it drives them. You keep your subscriptions, default models, terminal habits, and local files. PALABRE then exports the debate as Markdown.
|
|
91
|
+
|
|
92
|
+
### Documentation
|
|
93
|
+
|
|
94
|
+
- https://palab.re
|
|
95
|
+
- https://palabre.netlify.app
|
|
96
|
+
|
|
97
|
+
Useful pages: [Installation](https://palab.re/get-started/installation), [Configuration](https://palab.re/get-started/configuration), [First debate](https://palab.re/get-started/first-debate), [CLI reference](https://palab.re/reference/cli), [Troubleshooting](https://palab.re/troubleshooting), [Roadmap](https://palab.re/roadmap).
|
|
98
|
+
|
|
99
|
+
### Installation
|
|
100
|
+
|
|
101
|
+
Requirements: Node.js 20 or newer, and at least two already installed/authenticated agents if you want them to debate.
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
npm install -g palabre
|
|
105
|
+
palabre --version
|
|
106
|
+
palabre --help
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Quick Start
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
palabre init
|
|
113
|
+
palabre doctor
|
|
114
|
+
palabre new
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Direct examples:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
palabre codex-claude "Review this plan" -t 4
|
|
121
|
+
palabre -s "Compare these two approaches" -t 2
|
|
122
|
+
palabre codex-claude "Review this architecture" --context src docs
|
|
123
|
+
palabre claude-ollama "Review this file" --files README.md
|
|
124
|
+
palabre codex-claude "Preview" --context src --show-prompt
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Supported Agents
|
|
128
|
+
|
|
129
|
+
- Claude Code via `claude --print`
|
|
130
|
+
- Codex CLI via `codex exec`
|
|
131
|
+
- Gemini CLI via `gemini --prompt -`
|
|
132
|
+
- OpenCode via `opencode run`
|
|
133
|
+
- Ollama via the local HTTP API
|
|
134
|
+
|
|
135
|
+
PALABRE does not list models: they change often and depend on each CLI or user account. `--model-a`, `--model-b`, and `--summary-model` simply pass the raw value to the selected agent.
|
|
136
|
+
|
|
137
|
+
### Privacy
|
|
138
|
+
|
|
139
|
+
PALABRE runs locally and does not send data to a PALABRE-owned server. Data sent to agents depends on the tools you use: check the privacy policies of Claude Code, Codex CLI, Gemini CLI, OpenCode, Ollama, or any custom agent you configure.
|
|
140
|
+
|
|
141
|
+
### Local Development
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
git clone https://github.com/JuReyms/Palabre.git
|
|
145
|
+
cd Palabre
|
|
146
|
+
pnpm install
|
|
147
|
+
pnpm build
|
|
148
|
+
pnpm link --global
|
|
149
|
+
palabre --version
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Useful commands: `pnpm check`, `pnpm test`, `pnpm build`.
|
|
153
|
+
|
|
154
|
+
Project roadmap: [docs/roadmap.md](./docs/roadmap.md). Agent/contributor guide: [AGENTS.md](./AGENTS.md).
|
|
155
|
+
|
|
156
|
+
### License
|
|
157
|
+
|
|
158
|
+
MIT. See [LICENSE](./LICENSE).
|
package/dist/index.js
CHANGED
|
@@ -541,89 +541,89 @@ function formatOllamaDetection(detection) {
|
|
|
541
541
|
return `détectée (${modelCount} modèle${modelCount > 1 ? "s" : ""})`;
|
|
542
542
|
}
|
|
543
543
|
function printHelp() {
|
|
544
|
-
console.log(`
|
|
545
|
-
PALABRE
|
|
546
|
-
|
|
547
|
-
Usage rapide:
|
|
548
|
-
palabre new
|
|
549
|
-
Assistant interactif pour choisir les agents, le sujet et les options.
|
|
550
|
-
palabre run -s "Sujet"
|
|
551
|
-
Lance avec les agents par défaut de la config.
|
|
552
|
-
palabre claude-gemini "Sujet" -t 4
|
|
553
|
-
Lance avec un preset et un sujet positionnel.
|
|
554
|
-
|
|
555
|
-
Commandes:
|
|
556
|
-
palabre init [--local]
|
|
557
|
-
Crée une config et détecte Codex, Claude, Gemini, OpenCode et Ollama.
|
|
558
|
-
palabre agents [--config <path>]
|
|
559
|
-
Liste les agents déclarés dans la config et leur détection locale.
|
|
560
|
-
palabre config
|
|
561
|
-
Assistant pour définir ou supprimer les paramètres par défaut.
|
|
562
|
-
palabre config --set-defaults <agentA> <agentB> [-t <n>] [--summary-agent <name>]
|
|
563
|
-
Définit les agents par défaut, et optionnellement les réponses et la synthèse.
|
|
564
|
-
palabre config -t <n>
|
|
565
|
-
Définit seulement le nombre de réponses par défaut.
|
|
566
|
-
palabre config --summary-agent <name|none>
|
|
567
|
-
Définit ou retire seulement l'agent de synthèse par défaut.
|
|
568
|
-
palabre config --clear-defaults
|
|
569
|
-
Supprime les paramètres par défaut.
|
|
570
|
-
palabre doctor [--config <path>]
|
|
571
|
-
Vérifie la config et les outils locaux.
|
|
572
|
-
palabre update [--apply]
|
|
573
|
-
Affiche ou exécute les étapes de mise à jour d'un checkout git.
|
|
574
|
-
palabre help
|
|
575
|
-
Affiche cette aide. Identique à -h ou --help.
|
|
576
|
-
palabre version
|
|
577
|
-
Affiche la version. Identique à -v ou --version.
|
|
578
|
-
|
|
579
|
-
Notation:
|
|
580
|
-
[option] signifie facultatif. Ne tape pas les crochets.
|
|
581
|
-
<valeur> signifie qu'il faut remplacer ce texte par ta valeur.
|
|
582
|
-
|
|
583
|
-
Options générales:
|
|
584
|
-
-h, --help Affiche cette aide
|
|
585
|
-
-v, --version Affiche la version
|
|
586
|
-
-a Liste les agents. Identique à palabre agents
|
|
587
|
-
--config <path> Chemin vers un fichier de config explicite
|
|
588
|
-
--plain Utilise le rendu console simple sans habillage TUI
|
|
589
|
-
|
|
590
|
-
Sujet et lancement:
|
|
591
|
-
-s, --subject <text> Sujet du débat, option recommandée
|
|
592
|
-
--topic <text> Alias compatible de --subject
|
|
593
|
-
--agent-a <name> Premier agent
|
|
594
|
-
--agent-b <name> Second agent
|
|
595
|
-
--preset <name> Preset de paire d'agents. Exemples: codex-claude, claude-gemini
|
|
596
|
-
-t, --turns <number> Nombre total de réponses (1 à 20)
|
|
597
|
-
--no-early-stop Désactive l'arrêt anticipé si les agents sont clairement d'accord
|
|
598
|
-
|
|
599
|
-
Modèles:
|
|
600
|
-
--model-a <model> Modèle brut transmis à l'agent A
|
|
601
|
-
--model-b <model> Modèle brut transmis à l'agent B
|
|
602
|
-
--pull-models Autorise Ollama à télécharger un modèle manquant
|
|
603
|
-
|
|
604
|
-
Synthèse:
|
|
605
|
-
--summary-agent <name> Agent utilisé pour produire la synthèse finale
|
|
606
|
-
--summary-model <model> Modèle brut transmis à l'agent de synthèse
|
|
607
|
-
--no-summary Désactive la synthèse finale
|
|
608
|
-
|
|
609
|
-
Contexte:
|
|
610
|
-
--files <paths...> Fichiers texte à injecter explicitement dans le contexte
|
|
611
|
-
--context <paths...> Scanne fichiers/dossiers texte en respectant les limites de contexte
|
|
612
|
-
--show-prompt Affiche le prompt du premier tour sans appeler d'agent
|
|
613
|
-
|
|
614
|
-
Configuration:
|
|
615
|
-
--local Avec init/setup, crée ./palabre.config.json
|
|
616
|
-
--set-defaults <a b> Avec config, définit les agents par défaut
|
|
617
|
-
--summary-agent <name> Avec config, définit l'agent de synthèse par défaut
|
|
618
|
-
--summary-agent none Avec config, retire l'agent de synthèse par défaut
|
|
619
|
-
--clear-defaults Avec config, supprime les paramètres par défaut
|
|
620
|
-
--sync-agents Avec config, ajoute les agents détectés manquants
|
|
621
|
-
|
|
622
|
-
Mise à jour:
|
|
623
|
-
--apply Avec update, exécute les étapes de mise à jour
|
|
624
|
-
|
|
625
|
-
Presets disponibles:
|
|
626
|
-
${listPresetNames().join(", ")}
|
|
544
|
+
console.log(`
|
|
545
|
+
PALABRE
|
|
546
|
+
|
|
547
|
+
Usage rapide:
|
|
548
|
+
palabre new
|
|
549
|
+
Assistant interactif pour choisir les agents, le sujet et les options.
|
|
550
|
+
palabre run -s "Sujet"
|
|
551
|
+
Lance avec les agents par défaut de la config.
|
|
552
|
+
palabre claude-gemini "Sujet" -t 4
|
|
553
|
+
Lance avec un preset et un sujet positionnel.
|
|
554
|
+
|
|
555
|
+
Commandes:
|
|
556
|
+
palabre init [--local]
|
|
557
|
+
Crée une config et détecte Codex, Claude, Gemini, OpenCode et Ollama.
|
|
558
|
+
palabre agents [--config <path>]
|
|
559
|
+
Liste les agents déclarés dans la config et leur détection locale.
|
|
560
|
+
palabre config
|
|
561
|
+
Assistant pour définir ou supprimer les paramètres par défaut.
|
|
562
|
+
palabre config --set-defaults <agentA> <agentB> [-t <n>] [--summary-agent <name>]
|
|
563
|
+
Définit les agents par défaut, et optionnellement les réponses et la synthèse.
|
|
564
|
+
palabre config -t <n>
|
|
565
|
+
Définit seulement le nombre de réponses par défaut.
|
|
566
|
+
palabre config --summary-agent <name|none>
|
|
567
|
+
Définit ou retire seulement l'agent de synthèse par défaut.
|
|
568
|
+
palabre config --clear-defaults
|
|
569
|
+
Supprime les paramètres par défaut.
|
|
570
|
+
palabre doctor [--config <path>]
|
|
571
|
+
Vérifie la config et les outils locaux.
|
|
572
|
+
palabre update [--apply]
|
|
573
|
+
Affiche ou exécute les étapes de mise à jour d'un checkout git.
|
|
574
|
+
palabre help
|
|
575
|
+
Affiche cette aide. Identique à -h ou --help.
|
|
576
|
+
palabre version
|
|
577
|
+
Affiche la version. Identique à -v ou --version.
|
|
578
|
+
|
|
579
|
+
Notation:
|
|
580
|
+
[option] signifie facultatif. Ne tape pas les crochets.
|
|
581
|
+
<valeur> signifie qu'il faut remplacer ce texte par ta valeur.
|
|
582
|
+
|
|
583
|
+
Options générales:
|
|
584
|
+
-h, --help Affiche cette aide
|
|
585
|
+
-v, --version Affiche la version
|
|
586
|
+
-a Liste les agents. Identique à palabre agents
|
|
587
|
+
--config <path> Chemin vers un fichier de config explicite
|
|
588
|
+
--plain Utilise le rendu console simple sans habillage TUI
|
|
589
|
+
|
|
590
|
+
Sujet et lancement:
|
|
591
|
+
-s, --subject <text> Sujet du débat, option recommandée
|
|
592
|
+
--topic <text> Alias compatible de --subject
|
|
593
|
+
--agent-a <name> Premier agent
|
|
594
|
+
--agent-b <name> Second agent
|
|
595
|
+
--preset <name> Preset de paire d'agents. Exemples: codex-claude, claude-gemini
|
|
596
|
+
-t, --turns <number> Nombre total de réponses (1 à 20)
|
|
597
|
+
--no-early-stop Désactive l'arrêt anticipé si les agents sont clairement d'accord
|
|
598
|
+
|
|
599
|
+
Modèles:
|
|
600
|
+
--model-a <model> Modèle brut transmis à l'agent A
|
|
601
|
+
--model-b <model> Modèle brut transmis à l'agent B
|
|
602
|
+
--pull-models Autorise Ollama à télécharger un modèle manquant
|
|
603
|
+
|
|
604
|
+
Synthèse:
|
|
605
|
+
--summary-agent <name> Agent utilisé pour produire la synthèse finale
|
|
606
|
+
--summary-model <model> Modèle brut transmis à l'agent de synthèse
|
|
607
|
+
--no-summary Désactive la synthèse finale
|
|
608
|
+
|
|
609
|
+
Contexte:
|
|
610
|
+
--files <paths...> Fichiers texte à injecter explicitement dans le contexte
|
|
611
|
+
--context <paths...> Scanne fichiers/dossiers texte en respectant les limites de contexte
|
|
612
|
+
--show-prompt Affiche le prompt du premier tour sans appeler d'agent
|
|
613
|
+
|
|
614
|
+
Configuration:
|
|
615
|
+
--local Avec init/setup, crée ./palabre.config.json
|
|
616
|
+
--set-defaults <a b> Avec config, définit les agents par défaut
|
|
617
|
+
--summary-agent <name> Avec config, définit l'agent de synthèse par défaut
|
|
618
|
+
--summary-agent none Avec config, retire l'agent de synthèse par défaut
|
|
619
|
+
--clear-defaults Avec config, supprime les paramètres par défaut
|
|
620
|
+
--sync-agents Avec config, ajoute les agents détectés manquants
|
|
621
|
+
|
|
622
|
+
Mise à jour:
|
|
623
|
+
--apply Avec update, exécute les étapes de mise à jour
|
|
624
|
+
|
|
625
|
+
Presets disponibles:
|
|
626
|
+
${listPresetNames().join(", ")}
|
|
627
627
|
`);
|
|
628
628
|
}
|
|
629
629
|
main().catch((error) => {
|
package/package.json
CHANGED
|
@@ -1,49 +1,50 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "palabre",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Orchestrateur de debat entre agents IA locaux, CLIs et Ollama.",
|
|
5
|
-
"license": "MIT",
|
|
6
|
-
"type": "module",
|
|
7
|
-
"packageManager": "pnpm@10.18.3",
|
|
8
|
-
"homepage": "https://github.com/JuReyms/Palabre#readme",
|
|
9
|
-
"repository": {
|
|
10
|
-
"type": "git",
|
|
11
|
-
"url": "git+https://github.com/JuReyms/Palabre.git"
|
|
12
|
-
},
|
|
13
|
-
"bugs": {
|
|
14
|
-
"url": "https://github.com/JuReyms/Palabre/issues"
|
|
15
|
-
},
|
|
16
|
-
"keywords": [
|
|
17
|
-
"ai",
|
|
18
|
-
"cli",
|
|
19
|
-
"agents",
|
|
20
|
-
"ollama",
|
|
21
|
-
"codex",
|
|
22
|
-
"claude",
|
|
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
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "palabre",
|
|
3
|
+
"version": "0.1.7",
|
|
4
|
+
"description": "Orchestrateur de debat entre agents IA locaux, CLIs et Ollama.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"packageManager": "pnpm@10.18.3",
|
|
8
|
+
"homepage": "https://github.com/JuReyms/Palabre#readme",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/JuReyms/Palabre.git"
|
|
12
|
+
},
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/JuReyms/Palabre/issues"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"ai",
|
|
18
|
+
"cli",
|
|
19
|
+
"agents",
|
|
20
|
+
"ollama",
|
|
21
|
+
"codex",
|
|
22
|
+
"claude",
|
|
23
|
+
"opencode",
|
|
24
|
+
"debate",
|
|
25
|
+
"orchestrator"
|
|
26
|
+
],
|
|
27
|
+
"bin": {
|
|
28
|
+
"palabre": "dist/index.js"
|
|
29
|
+
},
|
|
30
|
+
"files": [
|
|
31
|
+
"dist/",
|
|
32
|
+
"README.md",
|
|
33
|
+
"palabre.config.example.json"
|
|
34
|
+
],
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build": "node -e \"fs.rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.json",
|
|
37
|
+
"check": "tsc -p tsconfig.json --noEmit",
|
|
38
|
+
"prepack": "pnpm build",
|
|
39
|
+
"start": "node ./dist/index.js",
|
|
40
|
+
"test": "pnpm build:test && node --test .tmp/test-dist/tests/*.test.js",
|
|
41
|
+
"build:test": "node -e \"fs.rmSync('.tmp/test-dist',{recursive:true,force:true})\" && tsc -p tsconfig.test.json"
|
|
42
|
+
},
|
|
43
|
+
"engines": {
|
|
44
|
+
"node": ">=20"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@types/node": "^20.12.0",
|
|
48
|
+
"typescript": "^5.4.0"
|
|
49
|
+
}
|
|
50
|
+
}
|