palabre 0.7.0 → 0.8.0
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 +99 -63
- package/dist/agentRegistry.js +3 -2
- package/dist/args.js +19 -1
- package/dist/config.js +37 -3
- package/dist/configWizard.js +12 -2
- package/dist/discovery.js +3 -1
- package/dist/doctor.js +4 -0
- package/dist/index.js +508 -27
- package/dist/messages/agents.js +4 -2
- package/dist/messages/common.js +4 -0
- package/dist/messages/config.js +16 -8
- package/dist/messages/help.js +58 -2
- package/dist/messages/index.js +2 -0
- package/dist/messages/init.js +2 -2
- package/dist/messages/new.js +14 -0
- package/dist/messages/output.js +10 -0
- package/dist/messages/preview.js +4 -2
- package/dist/messages/prompt.js +46 -2
- package/dist/messages/renderers.js +2 -2
- package/dist/messages/tui.js +192 -0
- package/dist/messages/update.js +16 -2
- package/dist/new.js +158 -4
- package/dist/orchestrator.js +156 -5
- package/dist/output.js +31 -8
- package/dist/presets.js +48 -0
- package/dist/prompt.js +61 -10
- package/dist/renderers/console.js +39 -3
- package/dist/renderers/ndjson.js +30 -1
- package/dist/renderers/tui.js +932 -0
- package/dist/update.js +2 -0
- package/package.json +2 -1
package/dist/messages/agents.js
CHANGED
|
@@ -6,7 +6,8 @@ export const agentsMessages = {
|
|
|
6
6
|
defaultAgentA: "agent A par défaut",
|
|
7
7
|
defaultAgentB: "agent B par défaut",
|
|
8
8
|
defaultSummary: "synthèse par défaut",
|
|
9
|
-
|
|
9
|
+
defaultAskSummary: "synthèse ask par défaut",
|
|
10
|
+
defaults: (agentA, agentB, turns, summaryAgent, askSummaryAgent) => `Défauts: ${agentA} <-> ${agentB}, réponses: ${turns}, synthèse débat: ${summaryAgent}${askSummaryAgent ? `, synthèse ask: ${askSummaryAgent}` : ""}`,
|
|
10
11
|
none: "aucun",
|
|
11
12
|
summaryAgentB: "agent B",
|
|
12
13
|
model: (model) => `modèle: ${model}`,
|
|
@@ -24,7 +25,8 @@ export const agentsMessages = {
|
|
|
24
25
|
defaultAgentA: "default agent A",
|
|
25
26
|
defaultAgentB: "default agent B",
|
|
26
27
|
defaultSummary: "default summary",
|
|
27
|
-
|
|
28
|
+
defaultAskSummary: "default ask summary",
|
|
29
|
+
defaults: (agentA, agentB, turns, summaryAgent, askSummaryAgent) => `Defaults: ${agentA} <-> ${agentB}, responses: ${turns}, debate summary: ${summaryAgent}${askSummaryAgent ? `, ask summary: ${askSummaryAgent}` : ""}`,
|
|
28
30
|
none: "none",
|
|
29
31
|
summaryAgentB: "agent B",
|
|
30
32
|
model: (model) => `model: ${model}`,
|
package/dist/messages/common.js
CHANGED
|
@@ -10,6 +10,8 @@ export const commonMessages = {
|
|
|
10
10
|
unknownAgentForField: (field, agent, available) => `Agent inconnu pour ${field}: ${agent}. Agents disponibles: ${available}.`,
|
|
11
11
|
unknownAgent: (agent) => `Agent inconnu: ${agent}`,
|
|
12
12
|
unknownRenderer: (value, supported) => `Renderer inconnu: ${value}. Valeurs supportées: ${supported}.`,
|
|
13
|
+
unknownMode: (value, supported) => `Mode inconnu: ${value}. Valeurs supportées: ${supported}.`,
|
|
14
|
+
tooManyAskAgents: (max) => `Le mode ask accepte au maximum ${max} agents.`,
|
|
13
15
|
configInvalidShape: (configPath) => `Config invalide: ${configPath} ne contient pas un objet JSON. Relance palabre init ou corrige le fichier.`,
|
|
14
16
|
configMissingAgents: (configPath) => `Config invalide: ${configPath} ne déclare pas de bloc "agents". Relance palabre init ou ajoute au moins un agent.`,
|
|
15
17
|
configEmptyAgents: (configPath) => `Config invalide: ${configPath} ne déclare aucun agent. Ajoute au moins un agent ou relance palabre init.`,
|
|
@@ -26,6 +28,8 @@ export const commonMessages = {
|
|
|
26
28
|
unknownAgentForField: (field, agent, available) => `Unknown agent for ${field}: ${agent}. Available agents: ${available}.`,
|
|
27
29
|
unknownAgent: (agent) => `Unknown agent: ${agent}`,
|
|
28
30
|
unknownRenderer: (value, supported) => `Unknown renderer: ${value}. Supported values: ${supported}.`,
|
|
31
|
+
unknownMode: (value, supported) => `Unknown mode: ${value}. Supported values: ${supported}.`,
|
|
32
|
+
tooManyAskAgents: (max) => `Ask mode supports at most ${max} agents.`,
|
|
29
33
|
configInvalidShape: (configPath) => `Invalid config: ${configPath} does not contain a JSON object. Run palabre init or fix the file.`,
|
|
30
34
|
configMissingAgents: (configPath) => `Invalid config: ${configPath} has no "agents" block. Run palabre init or add at least one agent.`,
|
|
31
35
|
configEmptyAgents: (configPath) => `Invalid config: ${configPath} declares no agent. Add at least one agent or run palabre init.`,
|
package/dist/messages/config.js
CHANGED
|
@@ -10,10 +10,14 @@ export const configMessages = {
|
|
|
10
10
|
ollamaModelNoInstalledModels: "Aucun modèle Ollama installé détecté. Action: lance `ollama pull <modèle>`.",
|
|
11
11
|
updated: (path, defaults, language) => `Configuration mise à jour dans ${path}: ${defaults}, langue: ${language}.`,
|
|
12
12
|
cleared: (path) => `Paramètres par défaut supprimés dans ${path}. Utilise maintenant un preset ou --agent-a/--agent-b pour lancer un débat.`,
|
|
13
|
-
defaultsSummary: (agentA, agentB, turns, summaryAgent) => {
|
|
13
|
+
defaultsSummary: (agentA, agentB, turns, summaryAgent, askSummaryAgent, mode, askAgents, interfaceName) => {
|
|
14
|
+
const modeLabel = `mode: ${mode ?? "debate"}`;
|
|
15
|
+
const interfaceLabel = `interface: ${interfaceName ?? "tui"}`;
|
|
14
16
|
const pair = agentA && agentB ? `agents: ${agentA} <-> ${agentB}` : "agents: non définis";
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
+
const askAgentsLabel = askAgents && askAgents.length > 0 ? `agents ask: ${askAgents.join(", ")}` : "agents ask: défaut";
|
|
18
|
+
const summary = summaryAgent ? `synthèse débat: ${summaryAgent}` : "synthèse débat: agent B";
|
|
19
|
+
const askSummary = askSummaryAgent ? `synthèse ask: ${askSummaryAgent}` : "synthèse ask: synthèse par défaut";
|
|
20
|
+
return `${modeLabel}, ${interfaceLabel}, ${pair}, réponses: ${turns}, ${askAgentsLabel}, ${summary}, ${askSummary}`;
|
|
17
21
|
},
|
|
18
22
|
wizardNeedsTwoAgents: "La config doit contenir au moins deux agents pour définir des paramètres par défaut.",
|
|
19
23
|
wizardTitle: "PALABRE - Configuration",
|
|
@@ -46,7 +50,7 @@ export const configMessages = {
|
|
|
46
50
|
wizardTurnsLabel: "Nombre de réponses par défaut",
|
|
47
51
|
wizardTurnsPrompt: (defaultValue) => `Tape le nombre total de réponses du débat (Entrée = ${defaultValue}) : `,
|
|
48
52
|
wizardTurnsInvalid: (maxTurns) => `Entre un nombre entier entre 1 et ${maxTurns}, Entrée ou q.`,
|
|
49
|
-
wizardDefaults: (defaults) =>
|
|
53
|
+
wizardDefaults: (defaults) => `mode: ${defaults.mode ?? "debate"}, interface: ${defaults.interfaceName ?? "tui"}, ${defaults.agentA ?? "?"} <-> ${defaults.agentB ?? "?"}, réponses: ${defaults.turns}, agents ask: ${defaults.askAgents && defaults.askAgents.length > 0 ? defaults.askAgents.join(", ") : "défaut"}${defaults.summaryAgent ? `, synthèse débat: ${defaults.summaryAgent}` : ""}${defaults.askSummaryAgent ? `, synthèse ask: ${defaults.askSummaryAgent}` : ""}`
|
|
50
54
|
},
|
|
51
55
|
en: {
|
|
52
56
|
createdForConfig: (path) => `${path} created. Edit the config, then run palabre config again.`,
|
|
@@ -59,10 +63,14 @@ export const configMessages = {
|
|
|
59
63
|
ollamaModelNoInstalledModels: "No installed Ollama model detected. Action: run `ollama pull <model>`.",
|
|
60
64
|
updated: (path, defaults, language) => `Configuration updated in ${path}: ${defaults}, language: ${language}.`,
|
|
61
65
|
cleared: (path) => `Default settings cleared in ${path}. Use a preset or --agent-a/--agent-b to start a debate now.`,
|
|
62
|
-
defaultsSummary: (agentA, agentB, turns, summaryAgent) => {
|
|
66
|
+
defaultsSummary: (agentA, agentB, turns, summaryAgent, askSummaryAgent, mode, askAgents, interfaceName) => {
|
|
67
|
+
const modeLabel = `mode: ${mode ?? "debate"}`;
|
|
68
|
+
const interfaceLabel = `interface: ${interfaceName ?? "tui"}`;
|
|
63
69
|
const pair = agentA && agentB ? `agents: ${agentA} <-> ${agentB}` : "agents: not set";
|
|
64
|
-
const
|
|
65
|
-
|
|
70
|
+
const askAgentsLabel = askAgents && askAgents.length > 0 ? `ask agents: ${askAgents.join(", ")}` : "ask agents: default";
|
|
71
|
+
const summary = summaryAgent ? `debate summary: ${summaryAgent}` : "debate summary: agent B";
|
|
72
|
+
const askSummary = askSummaryAgent ? `ask summary: ${askSummaryAgent}` : "ask summary: default summary";
|
|
73
|
+
return `${modeLabel}, ${interfaceLabel}, ${pair}, responses: ${turns}, ${askAgentsLabel}, ${summary}, ${askSummary}`;
|
|
66
74
|
},
|
|
67
75
|
wizardNeedsTwoAgents: "The config must contain at least two agents to set default settings.",
|
|
68
76
|
wizardTitle: "PALABRE - Configuration",
|
|
@@ -95,6 +103,6 @@ export const configMessages = {
|
|
|
95
103
|
wizardTurnsLabel: "Default number of responses",
|
|
96
104
|
wizardTurnsPrompt: (defaultValue) => `Type the total number of debate responses (Enter = ${defaultValue}): `,
|
|
97
105
|
wizardTurnsInvalid: (maxTurns) => `Enter an integer between 1 and ${maxTurns}, Enter, or q.`,
|
|
98
|
-
wizardDefaults: (defaults) =>
|
|
106
|
+
wizardDefaults: (defaults) => `mode: ${defaults.mode ?? "debate"}, interface: ${defaults.interfaceName ?? "tui"}, ${defaults.agentA ?? "?"} <-> ${defaults.agentB ?? "?"}, responses: ${defaults.turns}, ask agents: ${defaults.askAgents && defaults.askAgents.length > 0 ? defaults.askAgents.join(", ") : "default"}${defaults.summaryAgent ? `, debate summary: ${defaults.summaryAgent}` : ""}${defaults.askSummaryAgent ? `, ask summary: ${defaults.askSummaryAgent}` : ""}`
|
|
99
107
|
}
|
|
100
108
|
};
|
package/dist/messages/help.js
CHANGED
|
@@ -48,6 +48,10 @@ Usage:
|
|
|
48
48
|
palabre config --set-defaults <agentA> <agentB>
|
|
49
49
|
palabre config -t <number>
|
|
50
50
|
palabre config --summary-agent <name|none>
|
|
51
|
+
palabre config --ask-summary-agent <name|none>
|
|
52
|
+
palabre config --mode <debate|ask>
|
|
53
|
+
palabre config --ask-agents <names...>
|
|
54
|
+
palabre config --interface <tui|terminal>
|
|
51
55
|
palabre config --language <fr|en>
|
|
52
56
|
|
|
53
57
|
Flags:
|
|
@@ -72,7 +76,7 @@ Usage:
|
|
|
72
76
|
palabre doctor [flags]
|
|
73
77
|
|
|
74
78
|
Flags:
|
|
75
|
-
--
|
|
79
|
+
--terminal sortie simple pour logs
|
|
76
80
|
--config <path> chemin de config explicite
|
|
77
81
|
--language <fr|en> force la langue
|
|
78
82
|
`,
|
|
@@ -100,6 +104,24 @@ Flags:
|
|
|
100
104
|
--preset <name> preset d'agents
|
|
101
105
|
--agent-a <name> premier agent
|
|
102
106
|
--agent-b <name> second agent
|
|
107
|
+
--tui force l'interface TUI
|
|
108
|
+
--terminal force le rendu terminal brut
|
|
109
|
+
--renderer <kind> auto, pretty, plain, tui ou ndjson
|
|
110
|
+
--show-prompt affiche le prompt sans appeler d'agent
|
|
111
|
+
`,
|
|
112
|
+
ask: `
|
|
113
|
+
Lance une demande avec plusieurs reponses independantes.
|
|
114
|
+
|
|
115
|
+
Usage:
|
|
116
|
+
palabre ask "Sujet" --agents codex claude
|
|
117
|
+
palabre run --mode ask --agents codex claude -s "Sujet"
|
|
118
|
+
|
|
119
|
+
Flags:
|
|
120
|
+
--agents <names...> agents qui repondent, 4 maximum
|
|
121
|
+
--summary-agent <n> agent de synthese pour ce lancement
|
|
122
|
+
--tui force l'interface TUI
|
|
123
|
+
--terminal force le rendu terminal brut
|
|
124
|
+
--renderer <kind> auto, pretty, plain, tui ou ndjson
|
|
103
125
|
--show-prompt affiche le prompt sans appeler d'agent
|
|
104
126
|
`
|
|
105
127
|
};
|
|
@@ -153,6 +175,10 @@ Usage:
|
|
|
153
175
|
palabre config --set-defaults <agentA> <agentB>
|
|
154
176
|
palabre config -t <number>
|
|
155
177
|
palabre config --summary-agent <name|none>
|
|
178
|
+
palabre config --ask-summary-agent <name|none>
|
|
179
|
+
palabre config --mode <debate|ask>
|
|
180
|
+
palabre config --ask-agents <names...>
|
|
181
|
+
palabre config --interface <tui|terminal>
|
|
156
182
|
palabre config --language <fr|en>
|
|
157
183
|
|
|
158
184
|
Flags:
|
|
@@ -177,7 +203,7 @@ Usage:
|
|
|
177
203
|
palabre doctor [flags]
|
|
178
204
|
|
|
179
205
|
Flags:
|
|
180
|
-
--
|
|
206
|
+
--terminal simple output for logs
|
|
181
207
|
--config <path> explicit config path
|
|
182
208
|
--language <fr|en> forces the language
|
|
183
209
|
`,
|
|
@@ -205,6 +231,24 @@ Flags:
|
|
|
205
231
|
--preset <name> agent preset
|
|
206
232
|
--agent-a <name> first agent
|
|
207
233
|
--agent-b <name> second agent
|
|
234
|
+
--tui forces the TUI interface
|
|
235
|
+
--terminal forces raw terminal rendering
|
|
236
|
+
--renderer <kind> auto, pretty, plain, tui, or ndjson
|
|
237
|
+
--show-prompt shows the prompt without calling an agent
|
|
238
|
+
`,
|
|
239
|
+
ask: `
|
|
240
|
+
Runs a request with several independent responses.
|
|
241
|
+
|
|
242
|
+
Usage:
|
|
243
|
+
palabre ask "Subject" --agents codex claude
|
|
244
|
+
palabre run --mode ask --agents codex claude -s "Subject"
|
|
245
|
+
|
|
246
|
+
Flags:
|
|
247
|
+
--agents <names...> responding agents, 4 maximum
|
|
248
|
+
--summary-agent <n> summary agent for this run
|
|
249
|
+
--tui forces the TUI interface
|
|
250
|
+
--terminal forces raw terminal rendering
|
|
251
|
+
--renderer <kind> auto, pretty, plain, tui, or ndjson
|
|
208
252
|
--show-prompt shows the prompt without calling an agent
|
|
209
253
|
`
|
|
210
254
|
};
|
|
@@ -216,13 +260,16 @@ PALABRE
|
|
|
216
260
|
Debats entre agents IA dans votre terminal.
|
|
217
261
|
|
|
218
262
|
Usage:
|
|
263
|
+
palabre
|
|
219
264
|
palabre [flags]
|
|
220
265
|
palabre [command]
|
|
221
266
|
palabre "Sujet"
|
|
222
267
|
palabre <preset> "Sujet"
|
|
268
|
+
palabre ask "Sujet" --agents codex claude
|
|
223
269
|
|
|
224
270
|
Demarrage rapide:
|
|
225
271
|
palabre init
|
|
272
|
+
palabre
|
|
226
273
|
palabre new
|
|
227
274
|
palabre "Faut-il ajouter une TUI a Palabre ?"
|
|
228
275
|
palabre codex-claude "Comparer deux solutions" -t 4
|
|
@@ -230,6 +277,7 @@ Demarrage rapide:
|
|
|
230
277
|
Commandes:
|
|
231
278
|
init Creer une configuration
|
|
232
279
|
new Assistant interactif de debat
|
|
280
|
+
ask Demande multi-agents independante
|
|
233
281
|
agents Lister les agents configures
|
|
234
282
|
presets Lister les presets disponibles
|
|
235
283
|
context Scanner le contexte projet
|
|
@@ -244,6 +292,8 @@ Flags:
|
|
|
244
292
|
-v, --version affiche la version
|
|
245
293
|
-s, --subject <text> sujet du debat
|
|
246
294
|
-t, --turns <number> nombre total de reponses
|
|
295
|
+
--tui force l'interface TUI
|
|
296
|
+
--terminal force le rendu terminal brut
|
|
247
297
|
--language <fr|en> force la langue
|
|
248
298
|
--config <path> chemin de config explicite
|
|
249
299
|
|
|
@@ -261,13 +311,16 @@ PALABRE
|
|
|
261
311
|
Debates between AI agents in your terminal.
|
|
262
312
|
|
|
263
313
|
Usage:
|
|
314
|
+
palabre
|
|
264
315
|
palabre [flags]
|
|
265
316
|
palabre [command]
|
|
266
317
|
palabre "Subject"
|
|
267
318
|
palabre <preset> "Subject"
|
|
319
|
+
palabre ask "Subject" --agents codex claude
|
|
268
320
|
|
|
269
321
|
Quick start:
|
|
270
322
|
palabre init
|
|
323
|
+
palabre
|
|
271
324
|
palabre new
|
|
272
325
|
palabre "Should Palabre add a TUI?"
|
|
273
326
|
palabre codex-claude "Compare two solutions" -t 4
|
|
@@ -275,6 +328,7 @@ Quick start:
|
|
|
275
328
|
Commands:
|
|
276
329
|
init Create a configuration
|
|
277
330
|
new Interactive debate assistant
|
|
331
|
+
ask Independent multi-agent request
|
|
278
332
|
agents List configured agents
|
|
279
333
|
presets List available presets
|
|
280
334
|
context Scan project context
|
|
@@ -289,6 +343,8 @@ Flags:
|
|
|
289
343
|
-v, --version show version
|
|
290
344
|
-s, --subject <text> debate subject
|
|
291
345
|
-t, --turns <number> total number of responses
|
|
346
|
+
--tui forces the TUI interface
|
|
347
|
+
--terminal forces raw terminal rendering
|
|
292
348
|
--language <fr|en> force language
|
|
293
349
|
--config <path> explicit config path
|
|
294
350
|
|
package/dist/messages/index.js
CHANGED
|
@@ -14,6 +14,7 @@ import { promptMessages } from "./prompt.js";
|
|
|
14
14
|
import { presetsMessages } from "./presets.js";
|
|
15
15
|
import { previewMessages } from "./preview.js";
|
|
16
16
|
import { rendererMessages } from "./renderers.js";
|
|
17
|
+
import { tuiMessages } from "./tui.js";
|
|
17
18
|
import { updateMessages } from "./update.js";
|
|
18
19
|
export function createTranslator(language) {
|
|
19
20
|
return {
|
|
@@ -33,6 +34,7 @@ export function createTranslator(language) {
|
|
|
33
34
|
presets: presetsMessages[language],
|
|
34
35
|
preview: previewMessages[language],
|
|
35
36
|
renderers: rendererMessages[language],
|
|
37
|
+
tui: tuiMessages[language],
|
|
36
38
|
update: updateMessages[language]
|
|
37
39
|
};
|
|
38
40
|
}
|
package/dist/messages/init.js
CHANGED
|
@@ -10,7 +10,7 @@ export const initMessages = {
|
|
|
10
10
|
ollamaMissing: "non détecté",
|
|
11
11
|
ollamaDetected: (modelCount) => `détectée (${modelCount} modèle${modelCount > 1 ? "s" : ""})`,
|
|
12
12
|
defaults: (agentA, agentB) => `Défauts: ${agentA} <-> ${agentB}`,
|
|
13
|
-
noDefaultPair: (detectedAgents) => `Défauts: ${detectedAgents}. Palabre a besoin d'au moins deux agents.\nAgents compatibles: Codex CLI, Claude CLI, Gemini CLI, Antigravity CLI, OpenCode CLI, Ollama local.\nGuide: https://palab.re/fr/agents/overview`,
|
|
13
|
+
noDefaultPair: (detectedAgents) => `Défauts: ${detectedAgents}. Palabre a besoin d'au moins deux agents.\nAgents compatibles: Codex CLI, Claude CLI, Gemini CLI, Antigravity CLI, OpenCode CLI, Mistral Vibe CLI, Ollama local.\nGuide: https://palab.re/fr/agents/overview`,
|
|
14
14
|
languageHint: (language) => `Langue: ${language}\nEnglish > palabre config --language en`
|
|
15
15
|
},
|
|
16
16
|
en: {
|
|
@@ -24,7 +24,7 @@ export const initMessages = {
|
|
|
24
24
|
ollamaMissing: "not detected",
|
|
25
25
|
ollamaDetected: (modelCount) => `detected (${modelCount} model${modelCount > 1 ? "s" : ""})`,
|
|
26
26
|
defaults: (agentA, agentB) => `Defaults: ${agentA} <-> ${agentB}`,
|
|
27
|
-
noDefaultPair: (detectedAgents) => `Defaults: ${detectedAgents}. Palabre needs at least two agents.\nCompatible agents: Codex CLI, Claude CLI, Gemini CLI, Antigravity CLI, OpenCode CLI, local Ollama.\nGuide: https://palab.re/en/agents/overview`,
|
|
27
|
+
noDefaultPair: (detectedAgents) => `Defaults: ${detectedAgents}. Palabre needs at least two agents.\nCompatible agents: Codex CLI, Claude CLI, Gemini CLI, Antigravity CLI, OpenCode CLI, Mistral Vibe CLI, local Ollama.\nGuide: https://palab.re/en/agents/overview`,
|
|
28
28
|
languageHint: (language) => `Language: ${language}\nFrançais > palabre config --language fr`
|
|
29
29
|
}
|
|
30
30
|
};
|
package/dist/messages/new.js
CHANGED
|
@@ -5,8 +5,13 @@ export const newMessages = {
|
|
|
5
5
|
title: "PALABRE - ASSISTANT DE CONFIGURATION",
|
|
6
6
|
quitHint: "À tout moment: Ctrl+C pour interrompre, ou tape q, quit ou exit dans un prompt pour quitter.",
|
|
7
7
|
defaultHint: "Appuie sur Entrée pour accepter un choix par défaut (*).",
|
|
8
|
+
mode: "Mode",
|
|
9
|
+
modeDebate: "Débat entre deux agents",
|
|
10
|
+
modeAsk: "Demande avec réponses indépendantes",
|
|
8
11
|
agentA: "Agent A",
|
|
9
12
|
agentB: "Agent B",
|
|
13
|
+
askAgents: "Agents qui répondront indépendamment",
|
|
14
|
+
askAgentsPrompt: (defaultValue) => `Agents ask, noms ou numéros séparés par des espaces (Entrée = ${defaultValue})`,
|
|
10
15
|
topic: "Sujet",
|
|
11
16
|
advancedHint: "Réponds non pour choisir le nombre de réponses, les modèles, la synthèse et le contexte.",
|
|
12
17
|
launchMinimal: "Lancer maintenant avec les options par défaut ?",
|
|
@@ -23,7 +28,9 @@ export const newMessages = {
|
|
|
23
28
|
ollamaUnreachable: (role) => `ollama/${role} non joignable`,
|
|
24
29
|
detectedCli: (role) => `cli/${role} détecté`,
|
|
25
30
|
missingCli: (role) => `cli/${role} non détecté`,
|
|
31
|
+
invalidModeChoice: "Choix invalide. Tape 1, 2, débat, ask, Entrée ou q.",
|
|
26
32
|
invalidAgentChoice: "Choix invalide. Tape un numéro, un nom d'agent, Entrée ou q.",
|
|
33
|
+
invalidAskAgentsChoice: "Choix invalide. Tape un à quatre numéros ou noms d'agents, séparés par des espaces, Entrée ou q.",
|
|
27
34
|
requiredField: "Ce champ est requis pour lancer un débat.",
|
|
28
35
|
invalidTurns: (maxTurns) => `Entre un nombre entier entre 1 et ${maxTurns}, Entrée ou q.`,
|
|
29
36
|
invalidYesNo: "Réponds par oui, non, Entrée ou q.",
|
|
@@ -37,8 +44,13 @@ export const newMessages = {
|
|
|
37
44
|
title: "PALABRE - SETUP ASSISTANT",
|
|
38
45
|
quitHint: "At any time: Ctrl+C to interrupt, or type q, quit, or exit in a prompt to leave.",
|
|
39
46
|
defaultHint: "Press Enter to accept a default choice (*).",
|
|
47
|
+
mode: "Mode",
|
|
48
|
+
modeDebate: "Debate between two agents",
|
|
49
|
+
modeAsk: "Request with independent responses",
|
|
40
50
|
agentA: "Agent A",
|
|
41
51
|
agentB: "Agent B",
|
|
52
|
+
askAgents: "Agents that will answer independently",
|
|
53
|
+
askAgentsPrompt: (defaultValue) => `Ask agents, names or numbers separated by spaces (Enter = ${defaultValue})`,
|
|
42
54
|
topic: "Subject",
|
|
43
55
|
advancedHint: "Answer no to choose the number of responses, models, summary, and context.",
|
|
44
56
|
launchMinimal: "Launch now with default options?",
|
|
@@ -55,7 +67,9 @@ export const newMessages = {
|
|
|
55
67
|
ollamaUnreachable: (role) => `ollama/${role} unreachable`,
|
|
56
68
|
detectedCli: (role) => `cli/${role} detected`,
|
|
57
69
|
missingCli: (role) => `cli/${role} not detected`,
|
|
70
|
+
invalidModeChoice: "Invalid choice. Type 1, 2, debate, ask, Enter, or q.",
|
|
58
71
|
invalidAgentChoice: "Invalid choice. Type a number, an agent name, Enter, or q.",
|
|
72
|
+
invalidAskAgentsChoice: "Invalid choice. Type one to four agent numbers or names separated by spaces, Enter, or q.",
|
|
59
73
|
requiredField: "This field is required to start a debate.",
|
|
60
74
|
invalidTurns: (maxTurns) => `Enter an integer between 1 and ${maxTurns}, Enter, or q.`,
|
|
61
75
|
invalidYesNo: "Answer yes, no, Enter, or q.",
|
package/dist/messages/output.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export const outputMessages = {
|
|
2
2
|
fr: {
|
|
3
3
|
title: "# PALABRE Debate",
|
|
4
|
+
askTitle: "# PALABRE Ask",
|
|
4
5
|
contextTitle: "## Contexte",
|
|
5
6
|
exchangesTitle: "## Echanges",
|
|
7
|
+
askResponsesTitle: "## Reponses des agents",
|
|
6
8
|
failureTitle: "## Interruption",
|
|
7
9
|
finalSummaryTitle: "## Synthese finale",
|
|
8
10
|
tableField: "Champ",
|
|
@@ -16,11 +18,14 @@ export const outputMessages = {
|
|
|
16
18
|
disabled: "desactivee",
|
|
17
19
|
fields: {
|
|
18
20
|
subject: "Sujet",
|
|
21
|
+
mode: "Mode",
|
|
19
22
|
agents: "Agents",
|
|
20
23
|
autoPullOllama: "Auto-pull Ollama",
|
|
21
24
|
summary: "Synthese",
|
|
22
25
|
requestedTurns: "Tours demandes",
|
|
23
26
|
playedTurns: "Tours joues",
|
|
27
|
+
requestedResponses: "Reponses attendues",
|
|
28
|
+
receivedResponses: "Reponses recues",
|
|
24
29
|
earlyStop: "Arret anticipe",
|
|
25
30
|
localDate: "Date locale",
|
|
26
31
|
timeZone: "Fuseau horaire",
|
|
@@ -38,8 +43,10 @@ export const outputMessages = {
|
|
|
38
43
|
},
|
|
39
44
|
en: {
|
|
40
45
|
title: "# PALABRE Debate",
|
|
46
|
+
askTitle: "# PALABRE Ask",
|
|
41
47
|
contextTitle: "## Context",
|
|
42
48
|
exchangesTitle: "## Exchanges",
|
|
49
|
+
askResponsesTitle: "## Agent responses",
|
|
43
50
|
failureTitle: "## Interruption",
|
|
44
51
|
finalSummaryTitle: "## Final summary",
|
|
45
52
|
tableField: "Field",
|
|
@@ -53,11 +60,14 @@ export const outputMessages = {
|
|
|
53
60
|
disabled: "disabled",
|
|
54
61
|
fields: {
|
|
55
62
|
subject: "Subject",
|
|
63
|
+
mode: "Mode",
|
|
56
64
|
agents: "Agents",
|
|
57
65
|
autoPullOllama: "Ollama auto-pull",
|
|
58
66
|
summary: "Summary",
|
|
59
67
|
requestedTurns: "Requested turns",
|
|
60
68
|
playedTurns: "Played turns",
|
|
69
|
+
requestedResponses: "Expected responses",
|
|
70
|
+
receivedResponses: "Received responses",
|
|
61
71
|
earlyStop: "Early stop",
|
|
62
72
|
localDate: "Local date",
|
|
63
73
|
timeZone: "Time zone",
|
package/dist/messages/preview.js
CHANGED
|
@@ -7,7 +7,8 @@ export const previewMessages = {
|
|
|
7
7
|
summary: (value) => `Synthèse: ${value}`,
|
|
8
8
|
disabled: "désactivée",
|
|
9
9
|
interfaceLanguage: (language) => `Langue: ${language}`,
|
|
10
|
-
note: "Note: seuls les prompts du premier tour sont exacts sans exécuter les agents. Les tours suivants incluent le transcript réel."
|
|
10
|
+
note: "Note: seuls les prompts du premier tour sont exacts sans exécuter les agents. Les tours suivants incluent le transcript réel.",
|
|
11
|
+
askNote: "Note: en mode ask, chaque agent reçoit un prompt indépendant. La synthèse reçoit ensuite toutes les réponses réelles."
|
|
11
12
|
},
|
|
12
13
|
en: {
|
|
13
14
|
title: "# Prompt preview",
|
|
@@ -17,6 +18,7 @@ export const previewMessages = {
|
|
|
17
18
|
summary: (value) => `Summary: ${value}`,
|
|
18
19
|
disabled: "disabled",
|
|
19
20
|
interfaceLanguage: (language) => `Language: ${language}`,
|
|
20
|
-
note: "Note: only first-turn prompts are exact without running agents. Later turns include the real transcript."
|
|
21
|
+
note: "Note: only first-turn prompts are exact without running agents. Later turns include the real transcript.",
|
|
22
|
+
askNote: "Note: in ask mode, each agent receives an independent prompt. The summary later receives all real responses."
|
|
21
23
|
}
|
|
22
24
|
};
|
package/dist/messages/prompt.js
CHANGED
|
@@ -18,12 +18,14 @@ export const promptMessages = {
|
|
|
18
18
|
fr: {
|
|
19
19
|
subject: (topic) => `Sujet: ${topic}`,
|
|
20
20
|
debateIntro: (selfName, turn) => `Tu es ${selfName}. Tu reponds au tour ${turn}.`,
|
|
21
|
+
askIntro: (selfName) => `Tu es ${selfName}. Tu reponds independamment a cette demande.`,
|
|
21
22
|
summaryIntro: (selfName) => `Tu es ${selfName}. Tu produis la synthese finale du debat.`,
|
|
23
|
+
askSummaryIntro: (selfName) => `Tu es ${selfName}. Tu produis la fiche de synthese finale d'une demande multi-agents.`,
|
|
22
24
|
peer: (peerName) => `Ton interlocuteur est ${peerName}.`,
|
|
23
25
|
role: (selfName, role) => `Role de ${selfName}: ${role}.`,
|
|
24
26
|
roleInstruction: (role) => frRoleInstructions[role],
|
|
25
27
|
sessionTitle: "Contexte de session PALABRE:",
|
|
26
|
-
sessionSource: "- Source: fourni par PALABRE et visible par tous les agents de
|
|
28
|
+
sessionSource: "- Source: fourni par PALABRE et visible par tous les agents de cette session.",
|
|
27
29
|
localDate: (value) => `- Date locale: ${value}`,
|
|
28
30
|
timeZone: (value) => `- Fuseau horaire: ${value}`,
|
|
29
31
|
cwd: (value) => `- Dossier courant: ${value}`,
|
|
@@ -37,6 +39,14 @@ export const promptMessages = {
|
|
|
37
39
|
"- Signale les incertitudes ou les points a trancher.",
|
|
38
40
|
"- Respecte ton role sans ignorer les faits du transcript."
|
|
39
41
|
],
|
|
42
|
+
askObjectives: [
|
|
43
|
+
"- Reponds directement a la demande, sans t'appuyer sur les reponses des autres agents.",
|
|
44
|
+
"- Si la demande est factuelle ou simple, donne une reponse factuelle et simple.",
|
|
45
|
+
"- N'ajoute pas une revue de risques, des tests ou des actions techniques si la demande ne les appelle pas explicitement.",
|
|
46
|
+
"- Apporte une reponse utile, concrete et exploitable.",
|
|
47
|
+
"- Signale les incertitudes, hypotheses et points a verifier.",
|
|
48
|
+
"- Utilise ton role comme une perspective secondaire, sans transformer la nature de la demande."
|
|
49
|
+
],
|
|
40
50
|
summaryObjectives: [
|
|
41
51
|
"- Resume le consensus en points concrets.",
|
|
42
52
|
"- Liste les desaccords ou incertitudes qui restent.",
|
|
@@ -44,30 +54,44 @@ export const promptMessages = {
|
|
|
44
54
|
"- Termine par une conclusion courte en prose, bien ecrite, qui explique rapidement ce qu'il faut retenir.",
|
|
45
55
|
"- Reste concis et exploitable."
|
|
46
56
|
],
|
|
57
|
+
askSummaryObjectives: [
|
|
58
|
+
"- Resume fidelement ce que chaque agent a dit, agent par agent.",
|
|
59
|
+
"- Compare ensuite les convergences, divergences et angles morts.",
|
|
60
|
+
"- Signale les incertitudes ou points a verifier.",
|
|
61
|
+
"- Propose les prochaines actions techniques.",
|
|
62
|
+
"- Termine par une conclusion courte en prose qui explique ce qu'il faut retenir."
|
|
63
|
+
],
|
|
47
64
|
fileContextTitle: "Contexte fichiers:",
|
|
48
65
|
historyTitle: "Historique:",
|
|
49
66
|
emptyHistory: "Historique: aucun message pour le moment.",
|
|
50
67
|
answerTitle: "Ta reponse:",
|
|
51
68
|
transcriptTitle: "Transcript du debat:",
|
|
69
|
+
askResponsesTitle: "Reponses des agents:",
|
|
52
70
|
noMessage: "Aucun message.",
|
|
53
71
|
expectedFormatTitle: "Format attendu:",
|
|
54
72
|
consensusHeading: "### Consensus",
|
|
55
73
|
disagreementsHeading: "### Desaccords / incertitudes",
|
|
56
74
|
actionsHeading: "### Actions proposees",
|
|
57
75
|
conclusionHeading: "### Conclusion",
|
|
76
|
+
askAgentSummariesHeading: "### Resume fidele par agent",
|
|
77
|
+
askComparisonHeading: "### Comparaison",
|
|
78
|
+
askWatchpointsHeading: "### Points de vigilance / incertitudes",
|
|
58
79
|
finalProseInstruction: "Un court paragraphe de synthese en prose, sans liste, qui resume le sens general du debat et la decision ou direction la plus raisonnable.",
|
|
80
|
+
askFinalProseInstruction: "Un court paragraphe de synthese en prose, sans liste, qui explique ce qu'il faut retenir des reponses, sans transformer la demande en debat.",
|
|
59
81
|
summaryAnswerTitle: "Synthese:",
|
|
60
82
|
ollamaSystemPrompt: "Tu participes a un debat technique orchestre. Reste precis, utile et honnete sur tes limites."
|
|
61
83
|
},
|
|
62
84
|
en: {
|
|
63
85
|
subject: (topic) => `Subject: ${topic}`,
|
|
64
86
|
debateIntro: (selfName, turn) => `You are ${selfName}. You are answering turn ${turn}.`,
|
|
87
|
+
askIntro: (selfName) => `You are ${selfName}. You are answering this request independently.`,
|
|
65
88
|
summaryIntro: (selfName) => `You are ${selfName}. You are producing the final debate summary.`,
|
|
89
|
+
askSummaryIntro: (selfName) => `You are ${selfName}. You are producing the final synthesis sheet for a multi-agent request.`,
|
|
66
90
|
peer: (peerName) => `Your counterpart is ${peerName}.`,
|
|
67
91
|
role: (selfName, role) => `${selfName}'s role: ${role}.`,
|
|
68
92
|
roleInstruction: (role) => enRoleInstructions[role],
|
|
69
93
|
sessionTitle: "PALABRE session context:",
|
|
70
|
-
sessionSource: "- Source: provided by PALABRE and visible to all agents in this
|
|
94
|
+
sessionSource: "- Source: provided by PALABRE and visible to all agents in this session.",
|
|
71
95
|
localDate: (value) => `- Local date: ${value}`,
|
|
72
96
|
timeZone: (value) => `- Time zone: ${value}`,
|
|
73
97
|
cwd: (value) => `- Current directory: ${value}`,
|
|
@@ -81,6 +105,14 @@ export const promptMessages = {
|
|
|
81
105
|
"- Call out uncertainties or points that still need a decision.",
|
|
82
106
|
"- Respect your role without ignoring facts from the transcript."
|
|
83
107
|
],
|
|
108
|
+
askObjectives: [
|
|
109
|
+
"- Answer the request directly, without relying on other agents' answers.",
|
|
110
|
+
"- If the request is factual or simple, give a factual and simple answer.",
|
|
111
|
+
"- Do not add a risk review, tests, or technical actions unless the request explicitly calls for them.",
|
|
112
|
+
"- Provide a useful, concrete, and actionable response.",
|
|
113
|
+
"- Call out uncertainties, assumptions, and points to verify.",
|
|
114
|
+
"- Use your role as a secondary perspective without changing the nature of the request."
|
|
115
|
+
],
|
|
84
116
|
summaryObjectives: [
|
|
85
117
|
"- Summarize the consensus into concrete points.",
|
|
86
118
|
"- List remaining disagreements or uncertainties.",
|
|
@@ -88,18 +120,30 @@ export const promptMessages = {
|
|
|
88
120
|
"- End with a short, well-written prose conclusion that explains what to retain.",
|
|
89
121
|
"- Stay concise and actionable."
|
|
90
122
|
],
|
|
123
|
+
askSummaryObjectives: [
|
|
124
|
+
"- Faithfully summarize what each agent said, agent by agent.",
|
|
125
|
+
"- Then compare convergences, divergences, and blind spots.",
|
|
126
|
+
"- Call out uncertainties or points to verify.",
|
|
127
|
+
"- Propose the next technical actions.",
|
|
128
|
+
"- End with a short prose conclusion that explains what to retain."
|
|
129
|
+
],
|
|
91
130
|
fileContextTitle: "File context:",
|
|
92
131
|
historyTitle: "History:",
|
|
93
132
|
emptyHistory: "History: no message yet.",
|
|
94
133
|
answerTitle: "Your answer:",
|
|
95
134
|
transcriptTitle: "Debate transcript:",
|
|
135
|
+
askResponsesTitle: "Agent responses:",
|
|
96
136
|
noMessage: "No message.",
|
|
97
137
|
expectedFormatTitle: "Expected format:",
|
|
98
138
|
consensusHeading: "### Consensus",
|
|
99
139
|
disagreementsHeading: "### Disagreements / uncertainties",
|
|
100
140
|
actionsHeading: "### Proposed actions",
|
|
101
141
|
conclusionHeading: "### Conclusion",
|
|
142
|
+
askAgentSummariesHeading: "### Faithful summary by agent",
|
|
143
|
+
askComparisonHeading: "### Comparison",
|
|
144
|
+
askWatchpointsHeading: "### Watchpoints / uncertainties",
|
|
102
145
|
finalProseInstruction: "A short prose summary paragraph, without a list, that captures the general meaning of the debate and the most reasonable decision or direction.",
|
|
146
|
+
askFinalProseInstruction: "A short prose summary paragraph, without a list, that explains what to retain from the responses without turning the request into a debate.",
|
|
103
147
|
summaryAnswerTitle: "Summary:",
|
|
104
148
|
ollamaSystemPrompt: "You are taking part in an orchestrated technical debate. Stay precise, useful, and honest about your limits."
|
|
105
149
|
}
|
|
@@ -13,7 +13,7 @@ export const rendererMessages = {
|
|
|
13
13
|
turn: (turn, totalTurns) => `tour ${turn}/${totalTurns}`,
|
|
14
14
|
thinking: (agent, role) => `${agent} (${role}) reflechit`,
|
|
15
15
|
summaryTitle: "Synthese",
|
|
16
|
-
exported: (path) => `
|
|
16
|
+
exported: (path) => `Palabre exporte: ${path}`,
|
|
17
17
|
noInjectedFiles: "aucun fichier injecté",
|
|
18
18
|
injectedFiles: (count) => `${count} fichier${count > 1 ? "s" : ""} injecté${count > 1 ? "s" : ""}`
|
|
19
19
|
},
|
|
@@ -31,7 +31,7 @@ export const rendererMessages = {
|
|
|
31
31
|
turn: (turn, totalTurns) => `turn ${turn}/${totalTurns}`,
|
|
32
32
|
thinking: (agent, role) => `${agent} (${role}) is thinking`,
|
|
33
33
|
summaryTitle: "Summary",
|
|
34
|
-
exported: (path) => `
|
|
34
|
+
exported: (path) => `Palabre exported: ${path}`,
|
|
35
35
|
noInjectedFiles: "no injected files",
|
|
36
36
|
injectedFiles: (count) => `${count} injected file${count > 1 ? "s" : ""}`
|
|
37
37
|
}
|