@sagentlab/navarch-runtime 0.1.55 → 0.1.57

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 CHANGED
@@ -554,7 +554,7 @@ set the standard `reasoning_effort` configuration option when it is available.
554
554
  Machine-wide extra arguments still configure other CLI behavior; dispatched
555
555
  model policy wins.
556
556
 
557
- Codex defaults to `gpt-6-astra`; Claude Code defaults to `claude-opus-5`.
557
+ Codex defaults to `gpt-6-astra`; Claude Code defaults to `claude-opus-5-5`.
558
558
  Explicit project and `steering/navarch.yaml` model choices still win. A task's
559
559
  explicit execution profile wins over the repository's per-task-type profile.
560
560
  Otherwise, claim-time classification uses the task summary and metadata:
@@ -569,14 +569,14 @@ The classifier is deterministic and conservative; it never chooses `critical`
569
569
  or `deep` automatically. Set an explicit profile to override its assessment.
570
570
  Existing explicit task profiles remain explicit.
571
571
 
572
- Explicitly selected Fable sessions pass `--fallback-model claude-opus-5` for Claude Code's native
572
+ Explicitly selected Fable sessions pass `--fallback-model claude-opus-5-5` for Claude Code's native
573
573
  [availability fallback](https://code.claude.com/docs/en/model-config#fallback-model-chains).
574
574
  Because native fallback excludes usage limits, a structured 429 usage-limit
575
- rejection gets one additional Opus attempt within the original timeout. It
575
+ rejection gets one additional Opus 5.5 attempt within the original timeout. It
576
576
  resumes the saved conversation, or starts afresh only for a confirmed zero-turn
577
577
  rejection. Missing transcripts after possible work, authentication/policy
578
578
  errors, cancellation, and explicit fallback/session arguments do not trigger
579
- that retry. If Opus is also limited, the usual machine cooldown applies.
579
+ that retry. If Opus 5.5 is also limited, the usual machine cooldown applies.
580
580
  The runtime records the fallback in the transcript and reports Opus for the
581
581
  retry and subsequent turns. Native multi-model turns still report the requested
582
582
  primary model; their aggregate provider-reported usage includes both models.
@@ -6,8 +6,8 @@ const node_child_process_1 = require("node:child_process");
6
6
  const exit_conditions_cjs_1 = require("../exit-conditions.cjs");
7
7
  const kill_agent_cjs_1 = require("../kill-agent.cjs");
8
8
  const adapter_capacity_cjs_1 = require("../adapter-capacity.cjs");
9
- const DEFAULT_CLAUDE_MODEL = "claude-opus-5";
10
- const FALLBACK_CLAUDE_MODEL = "claude-opus-5";
9
+ const DEFAULT_CLAUDE_MODEL = "claude-opus-5-5";
10
+ const FALLBACK_CLAUDE_MODEL = "claude-opus-5-5";
11
11
  function hasFlag(args, flag) {
12
12
  return args.some((arg) => arg === flag || arg.startsWith(`${flag}=`));
13
13
  }
@@ -6,6 +6,7 @@ exports.parseCodexJsonEvents = parseCodexJsonEvents;
6
6
  exports.extractUsageFromCodexEvents = extractUsageFromCodexEvents;
7
7
  exports.extractFinalMessageFromCodexEvents = extractFinalMessageFromCodexEvents;
8
8
  exports.leadingVerificationVerdict = leadingVerificationVerdict;
9
+ exports.leadWithReviewFixMarker = leadWithReviewFixMarker;
9
10
  exports.mapExitCondition = mapExitCondition;
10
11
  /**
11
12
  * Best-effort parse of `claude -p --output-format json` stdout into the
@@ -201,6 +202,26 @@ function leadingVerificationVerdict(report) {
201
202
  const match = /^Verification verdict:\s*(PASS|FAIL|BLOCKED)\b/i.exec(firstLine ?? "");
202
203
  return match?.[1] ? match[1].toLowerCase() : null;
203
204
  }
205
+ const REVIEW_FIX_MARKER_LINE = /^[ \t]*Review fix delivered: [a-f0-9]{40}(?=\s|$)/im;
206
+ /**
207
+ * Moves a `Review fix delivered: <sha>` line to the top of the report. The
208
+ * control plane (lib/navarch/review-fix-marker.ts) accepts the marker at the
209
+ * start of any line, but summarize() collapses whitespace and truncates, so a
210
+ * marker below a sentence of preamble ends up mid-sentence or cut off and the
211
+ * review fix is rejected. Kept in step with leadWithReviewFixMarker there;
212
+ * this package cannot import it. A report without a marker is unchanged.
213
+ */
214
+ function leadWithReviewFixMarker(report) {
215
+ const marker = REVIEW_FIX_MARKER_LINE.exec(report);
216
+ if (!marker || !report.slice(0, marker.index).trim())
217
+ return report;
218
+ const lineEnd = report.indexOf("\n", marker.index);
219
+ const line = report.slice(marker.index, lineEnd === -1 ? undefined : lineEnd).trim();
220
+ const rest = (report.slice(0, marker.index) + (lineEnd === -1 ? "" : report.slice(lineEnd + 1)))
221
+ .replace(/\n{3,}/g, "\n\n")
222
+ .trim();
223
+ return rest ? `${line}\n\n${rest}` : line;
224
+ }
204
225
  function summarize(text, maxLen = 500) {
205
226
  const trimmed = text.trim();
206
227
  if (!trimmed)
@@ -292,7 +313,7 @@ function mapExitCondition(result) {
292
313
  // falls back to raw stdout when neither is available (see
293
314
  // parseClaudeJsonResult's doc comment).
294
315
  const reportText = result.reportText ?? parsedJson?.result ?? result.stdout;
295
- const reportSummary = summarize(reportText) || "Adapter completed with no report text.";
316
+ const reportSummary = summarize(leadWithReviewFixMarker(reportText)) || "Adapter completed with no report text.";
296
317
  // A verify agent's FAIL/BLOCKED verdict is a successful agent run whose
297
318
  // conclusion is that the delivery did not pass. The completion API only
298
319
  // accepts those verdicts with a failed outcome, so map them to a failed
package/dist/session.cjs CHANGED
@@ -45,7 +45,7 @@ function resolveSessionExecution(config, claimed) {
45
45
  model: runtime === "codex" ? "gpt-6-astra"
46
46
  : runtime === "gemini" ? "auto"
47
47
  : runtime === "opencode" || runtime === "acp" || runtime === "qoder" ? "default"
48
- : "claude-opus-5",
48
+ : "claude-opus-5-5",
49
49
  reasoning_effort: "medium",
50
50
  };
51
51
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sagentlab/navarch-runtime",
3
- "version": "0.1.55",
3
+ "version": "0.1.57",
4
4
  "description": "Navarch machine-side session manager: claims delivery tasks and runs them through local coding agents.",
5
5
  "type": "commonjs",
6
6
  "license": "MIT",