agent-rev 0.3.2 → 0.3.3

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.
@@ -258,8 +258,13 @@ INSTRUCCIONES:
258
258
  return await callQwenAPI(prompt, model);
259
259
  }
260
260
  catch (err) {
261
- console.log(chalk.red(`\n ✗ Error de autenticación Qwen: ${err.message}`));
262
- console.log(chalk.yellow(' Ejecutá /login para autenticarte.\n'));
261
+ if (err.message?.startsWith('QWEN_AUTH_EXPIRED')) {
262
+ console.log(chalk.red('\n Sesión Qwen expirada.'));
263
+ console.log(chalk.yellow(' Ejecutá: /login para re-autenticarte.\n'));
264
+ }
265
+ else {
266
+ console.log(chalk.red(`\n ✗ Error Qwen: ${err.message}`));
267
+ }
263
268
  return '';
264
269
  }
265
270
  }
@@ -452,6 +457,11 @@ INSTRUCCIONES:
452
457
  return await callQwenAPIFromCreds(rolePrompt, model, credsPath);
453
458
  }
454
459
  catch (err) {
460
+ if (err.message?.startsWith('QWEN_AUTH_EXPIRED')) {
461
+ console.log(chalk.red(`\n ✗ Sesión expirada para ${cliName}.`));
462
+ console.log(chalk.yellow(` Ejecutá: ${cliName} --login\n`));
463
+ return null;
464
+ }
455
465
  log.warn(`${cliName} direct API call failed: ${err.message}`);
456
466
  return null;
457
467
  }
@@ -843,7 +853,18 @@ INSTRUCCIONES:
843
853
  3. Identifica dependencias entre servicios.
844
854
  4. Crea/actualiza ${archPath} con tabla resumen y detalle por servicio.
845
855
  5. Crea/actualiza ${contextDir}/<servicio>/architecture.md para cada servicio.`);
846
- const result = await callQwenAPI(prompt, role.model);
856
+ let result;
857
+ try {
858
+ result = await callQwenAPI(prompt, role.model);
859
+ }
860
+ catch (err) {
861
+ if (err.message?.startsWith('QWEN_AUTH_EXPIRED')) {
862
+ console.log(chalk.red('\n ✗ Sesión Qwen expirada.'));
863
+ console.log(chalk.yellow(' Ejecutá: agent-mp --login (o agent-explorer --login)\n'));
864
+ return '';
865
+ }
866
+ throw err;
867
+ }
847
868
  try {
848
869
  const ts = new Date().toISOString().replace(/[:.]/g, '-').slice(0, 19);
849
870
  await writeFile(path.join(contextDir, `explorer-${ts}.md`), `# Explorer Report\n\nTask: ${effectiveTask}\n\n${result}\n`);
@@ -254,6 +254,9 @@ async function callQwenAPIWithToken(token, prompt, model) {
254
254
  });
255
255
  if (!response.ok) {
256
256
  const errorText = await response.text();
257
+ if (response.status === 401) {
258
+ throw new Error(`QWEN_AUTH_EXPIRED: ${errorText}`);
259
+ }
257
260
  throw new Error(`Qwen API error: ${response.status} - ${errorText}`);
258
261
  }
259
262
  const data = await response.json();
@@ -262,9 +265,17 @@ async function callQwenAPIWithToken(token, prompt, model) {
262
265
  export async function callQwenAPI(prompt, model = 'coder-model') {
263
266
  const token = await loadToken();
264
267
  if (!token) {
265
- throw new Error('No hay token de Qwen. Ejecutá /login primero.');
268
+ throw new Error('QWEN_AUTH_EXPIRED: No hay token de Qwen. Ejecutá --login primero.');
269
+ }
270
+ try {
271
+ return await callQwenAPIWithToken(token, prompt, model);
272
+ }
273
+ catch (err) {
274
+ if (err.message?.startsWith('QWEN_AUTH_EXPIRED')) {
275
+ throw new Error('QWEN_AUTH_EXPIRED: Sesión expirada. Ejecutá: agent-mp --login');
276
+ }
277
+ throw err;
266
278
  }
267
- return callQwenAPIWithToken(token, prompt, model);
268
279
  }
269
280
  /** Call Qwen API using credentials from a specific file path (for role binaries) */
270
281
  export async function callQwenAPIFromCreds(prompt, model, credsPath) {
@@ -293,5 +304,14 @@ export async function callQwenAPIFromCreds(prompt, model, credsPath) {
293
304
  await fs.writeFile(credsPath, JSON.stringify(token, null, 2), 'utf-8');
294
305
  }
295
306
  }
296
- return callQwenAPIWithToken(token, prompt, model);
307
+ try {
308
+ return await callQwenAPIWithToken(token, prompt, model);
309
+ }
310
+ catch (err) {
311
+ if (err.message?.startsWith('QWEN_AUTH_EXPIRED')) {
312
+ const cliName = path.basename(path.dirname(credsPath)).replace(/^\./, '');
313
+ throw new Error(`QWEN_AUTH_EXPIRED: Sesión expirada. Ejecutá: ${cliName} --login`);
314
+ }
315
+ throw err;
316
+ }
297
317
  }
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"agent-rev","version":"0.3.2","description":"agent-rev agent","type":"module","main":"./dist/index.js","files":["dist/"],"bin":{"agent-rev":"dist/index.js"},"scripts":{"build":"tsc"},"keywords":["ai","agent","cli"],"license":"MIT","dependencies":{"@anthropic-ai/sdk":"^0.39.0","@google/generative-ai":"^0.24.0","chalk":"^5.4.1","commander":"^13.1.0","open":"^11.0.0","openai":"^4.91.0"},"engines":{"node":">=18.0.0"}}
1
+ {"name":"agent-rev","version":"0.3.3","description":"agent-rev agent","type":"module","main":"./dist/index.js","files":["dist/"],"bin":{"agent-rev":"dist/index.js"},"scripts":{"build":"tsc"},"keywords":["ai","agent","cli"],"license":"MIT","dependencies":{"@anthropic-ai/sdk":"^0.39.0","@google/generative-ai":"^0.24.0","chalk":"^5.4.1","commander":"^13.1.0","open":"^11.0.0","openai":"^4.91.0"},"engines":{"node":">=18.0.0"}}