@arjunkhera/atlas 0.3.33 → 0.3.34

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "atlas",
3
- "version": "0.3.33",
3
+ "version": "0.3.34",
4
4
  "description": "Atlas: the delivery lifecycle, its crews and the Atlas tools, for any repository.",
5
5
  "author": {
6
6
  "name": "Arjun Khera"
@@ -28,6 +28,10 @@
28
28
  {
29
29
  "kit_sha256": "08c868aa39e6c9f471da2571e9a1d5939932a59856cea9c4176e3173f93454db",
30
30
  "first_package": "0.3.30"
31
+ },
32
+ {
33
+ "kit_sha256": "c4a506ec261d2d2fd7884943c9d317fb7b522704f4f63669b5bd37d32326bde5",
34
+ "first_package": "0.3.32"
31
35
  }
32
36
  ]
33
37
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arjunkhera/atlas",
3
- "version": "0.3.33",
3
+ "version": "0.3.34",
4
4
  "description": "Atlas: the delivery lifecycle, its crews and the Atlas tools, as a Claude Code plugin for any repository.",
5
5
  "type": "module",
6
6
  "license": "UNLICENSED",
package/tests/model.mjs CHANGED
@@ -291,6 +291,9 @@ export async function runClaude({ prompt, args = [], key, cwd, meter, what, reda
291
291
  meter.add(Number.isFinite(cost) ? cost : left, what, id);
292
292
  if (!envelope) throw new Error(`${what}: the model command gave no answer (exit ${out.exit}): ${(redactor ? redactor.text(out.stderr || out.stdout) : out.stderr || out.stdout).slice(0, 400)}`);
293
293
  const clean = (t) => (redactor ? redactor.text(t) : t);
294
+ // An error answer with no cost never reached the model: a refused sign-in, no credit, a bad model
295
+ // name. The scenario cannot pass or fail on it, so it reads blocked, with the reason.
296
+ if (envelope.is_error && !Number.isFinite(cost)) throw new Blocked(`${what}: the model call failed before the model answered: ${clean(String(envelope.result ?? envelope.error ?? (out.stderr || out.stdout))).slice(0, 400)}`);
294
297
  if (out.signal === 'SIGKILL') throw new Error(`${what}: the model call ran past ${Math.round(timeoutMs / 1000)} seconds and was stopped`);
295
298
  return { exit: out.exit, stdout: clean(out.stdout), stderr: clean(out.stderr), envelope, events, cost: Number.isFinite(cost) ? cost : null };
296
299
  } finally {