palabre 0.6.3 → 0.6.4

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.
@@ -68,6 +68,11 @@ export class CliAdapter {
68
68
  }
69
69
  const content = cleanCliOutput(stdout);
70
70
  if (!content && !this.config.allowEmptyOutput) {
71
+ const knownError = createKnownCliError(this.name, undefined, stderr);
72
+ if (knownError) {
73
+ reject(knownError);
74
+ return;
75
+ }
71
76
  const detail = stderr.trim() ? ` Stderr: ${stderr.trim()}` : "";
72
77
  reject(new AdapterError("empty-output", this.name, `${this.name} produced empty output.${detail}`, {
73
78
  stderr: stderr.trim()
@@ -189,25 +194,29 @@ function normalizeForWindowsStatus(line) {
189
194
  * Élève en `usage-limit` si le stderr contient un signal de quota/rate-limit connu.
190
195
  */
191
196
  function createCliExitError(adapterName, exitCode, stderr) {
197
+ return createKnownCliError(adapterName, exitCode, stderr)
198
+ ?? new AdapterError("non-zero-exit", adapterName, `${adapterName} exited with code ${exitCode}: ${summarizeCliError(cleanCliOutput(stderr))}`, {
199
+ exitCode,
200
+ stderr: cleanCliOutput(stderr)
201
+ });
202
+ }
203
+ function createKnownCliError(adapterName, exitCode, stderr) {
192
204
  const cleanedStderr = cleanCliOutput(stderr);
193
205
  const usageLimitMessage = extractUsageLimitMessage(cleanedStderr);
194
206
  const unsupportedModelMessage = extractUnsupportedModelMessage(cleanedStderr);
195
207
  if (usageLimitMessage) {
196
208
  return new AdapterError("usage-limit", adapterName, `${adapterName} a atteint une limite d'utilisation: ${usageLimitMessage}`, {
197
- exitCode,
209
+ ...(exitCode === undefined ? {} : { exitCode }),
198
210
  stderr: cleanedStderr
199
211
  });
200
212
  }
201
213
  if (unsupportedModelMessage) {
202
214
  return new AdapterError("unsupported-model", adapterName, `${adapterName} ne peut pas utiliser ce modèle: ${unsupportedModelMessage}`, {
203
- exitCode,
215
+ ...(exitCode === undefined ? {} : { exitCode }),
204
216
  stderr: cleanedStderr
205
217
  });
206
218
  }
207
- return new AdapterError("non-zero-exit", adapterName, `${adapterName} exited with code ${exitCode}: ${summarizeCliError(cleanedStderr)}`, {
208
- exitCode,
209
- stderr: cleanedStderr
210
- });
219
+ return undefined;
211
220
  }
212
221
  function extractUnsupportedModelMessage(stderr) {
213
222
  const lines = uniqueNonEmptyLines(stderr);
package/dist/discovery.js CHANGED
@@ -4,13 +4,14 @@ import { executableExtensions } from "./exec.js";
4
4
  /**
5
5
  * Détecte en parallèle toutes les CLIs supportées et le serveur Ollama local.
6
6
  * Sur Windows, tente `claude.exe` avant `claude`.
7
+ * Antigravity est exposé selon les installations sous `agy` ou `antigravity`.
7
8
  */
8
9
  export async function discoverLocalTools() {
9
10
  const [codex, claude, gemini, antigravity, opencode, ollamaCommand] = await Promise.all([
10
11
  detectCommand("codex"),
11
12
  detectFirstCommand(process.platform === "win32" ? ["claude.exe", "claude"] : ["claude"]),
12
13
  detectCommand("gemini"),
13
- detectCommand("agy"),
14
+ detectFirstCommand(["agy", "antigravity"]),
14
15
  detectCommand("opencode"),
15
16
  detectCommand("ollama")
16
17
  ]);
@@ -8,7 +8,7 @@ const frHints = {
8
8
  "usage-limit": "Attends la fenetre indiquee par la CLI, change de modele ou relance avec un autre agent/preset disponible.",
9
9
  "non-zero-exit": "Teste la commande directement, puis ajuste args, permissions, modele ou authentification de la CLI.",
10
10
  "model-unavailable": "Installe le modele Ollama ou relance avec --pull-models pour autoriser le telechargement.",
11
- "unsupported-model": "Verifie le nom du modele, ton abonnement, ou retire --model-a/--model-b/--summary-model pour laisser la CLI utiliser son modele par defaut.",
11
+ "unsupported-model": "Mets a jour la CLI de l'agent, verifie le nom du modele et ton abonnement, ou retire --model-a/--model-b/--summary-model pour laisser la CLI utiliser son modele par defaut.",
12
12
  "model-pull-failed": "Verifie le nom du modele, ta connexion et l'espace disque disponible.",
13
13
  "http-error": "Verifie que le service local est lance et que baseUrl est correct."
14
14
  };
@@ -22,7 +22,7 @@ const enHints = {
22
22
  "usage-limit": "Wait for the window indicated by the CLI, change model, or run again with another available agent/preset.",
23
23
  "non-zero-exit": "Test the command directly, then adjust args, permissions, model, or CLI authentication.",
24
24
  "model-unavailable": "Install the Ollama model or run again with --pull-models to allow downloading.",
25
- "unsupported-model": "Check the model name, your subscription, or remove --model-a/--model-b/--summary-model so the CLI can use its default model.",
25
+ "unsupported-model": "Update the agent CLI, check the model name and your subscription, or remove --model-a/--model-b/--summary-model so the CLI can use its default model.",
26
26
  "model-pull-failed": "Check the model name, your connection, and available disk space.",
27
27
  "http-error": "Check that the local service is running and baseUrl is correct."
28
28
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "palabre",
3
- "version": "0.6.3",
3
+ "version": "0.6.4",
4
4
  "description": "Orchestrateur de debat entre agents IA locaux, CLIs et Ollama.",
5
5
  "license": "MIT",
6
6
  "type": "module",