crosscheck-mcp 0.2.25 → 0.2.26

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.
@@ -1062,7 +1062,12 @@ function loadPricing(path16) {
1062
1062
  function modelPricing(pricing, provider, model) {
1063
1063
  const block = pricing[provider];
1064
1064
  if (!block || typeof block !== "object" || Array.isArray(block)) return null;
1065
- const entry = block[model];
1065
+ const table = block;
1066
+ let entry = table[model];
1067
+ if (!entry || typeof entry !== "object" || Array.isArray(entry)) {
1068
+ const best = Object.keys(table).filter((k) => model.startsWith(k)).sort((a, b) => b.length - a.length)[0];
1069
+ entry = best !== void 0 ? table[best] : void 0;
1070
+ }
1066
1071
  if (!entry || typeof entry !== "object" || Array.isArray(entry)) return null;
1067
1072
  const e = entry;
1068
1073
  return {
@@ -1490,6 +1495,14 @@ async function acquireRateLimit(provider, deps) {
1490
1495
  // src/providers/anthropic.ts
1491
1496
  var ANTHROPIC_API_URL = "https://api.anthropic.com/v1/messages";
1492
1497
  var ANTHROPIC_VERSION_HEADER = "2023-06-01";
1498
+ var ADAPTIVE_THINKING_PREFIXES = [
1499
+ "claude-fable-5",
1500
+ "claude-opus-5-5"
1501
+ ];
1502
+ function rejectsDisabledThinking(model) {
1503
+ const m = model.toLowerCase();
1504
+ return ADAPTIVE_THINKING_PREFIXES.some((p) => m.startsWith(p));
1505
+ }
1493
1506
  var ANTHROPIC_STRUCTURED_TOOL_NAME = "structured_output";
1494
1507
  function applyPromptCaching(body, env = process.env) {
1495
1508
  const flag = (env["CROSSCHECK_ANTHROPIC_PROMPT_CACHE"] ?? "").trim();
@@ -1534,7 +1547,7 @@ function buildAnthropicRequest(opts) {
1534
1547
  }
1535
1548
  applyPromptCaching(body);
1536
1549
  if (isReasoningModel("anthropic", opts.model)) {
1537
- if (opts.model.toLowerCase().startsWith("claude-fable-5")) {
1550
+ if (rejectsDisabledThinking(opts.model)) {
1538
1551
  body.thinking = { type: "adaptive" };
1539
1552
  body.output_config = { effort: "low" };
1540
1553
  } else {
@@ -2056,7 +2069,7 @@ async function sendOpenAICompatible(args) {
2056
2069
 
2057
2070
  // src/providers/registry.ts
2058
2071
  var DEFAULT_MODELS = {
2059
- anthropic: "claude-opus-5",
2072
+ anthropic: "claude-opus-5-5",
2060
2073
  openai: "gpt-5.6-sol",
2061
2074
  xai: "grok-4-latest",
2062
2075
  mistral: "mistral-large-latest",
@@ -2073,7 +2086,12 @@ var DEFAULT_FALLBACKS = {
2073
2086
  // about.
2074
2087
  openai: ["gpt-5"],
2075
2088
  // 3.8 Flash is recent enough that some projects won't have it yet.
2076
- gemini: ["gemini-3.1-pro-preview"]
2089
+ gemini: ["gemini-3.1-pro-preview"],
2090
+ // Opus 5.5 is new enough that an account could still be waiting on it.
2091
+ // Opus 5 is the same family one step back — and this chain is consulted
2092
+ // ONLY for a model-access failure, never for a bad key or a rate limit,
2093
+ // so it can't quietly downgrade anyone who simply hit a 429.
2094
+ anthropic: ["claude-opus-5"]
2077
2095
  };
2078
2096
  var MODEL_ENV_VARS = {
2079
2097
  anthropic: "ANTHROPIC_MODEL",
@@ -2342,7 +2360,7 @@ import { z } from "zod";
2342
2360
  // src/server-meta.ts
2343
2361
  init_esm_shims();
2344
2362
  var SERVER_NAME = "crosscheck-agent";
2345
- var SERVER_VERSION = true ? "0.2.25" : "0.0.0-dev";
2363
+ var SERVER_VERSION = true ? "0.2.26" : "0.0.0-dev";
2346
2364
 
2347
2365
  // src/tools/audit.ts
2348
2366
  init_esm_shims();
@@ -12936,7 +12954,7 @@ var CHECK_INTERVAL_SECONDS = 3 * 24 * 60 * 60;
12936
12954
  var DEFAULT_PACKAGE = "crosscheck-cli";
12937
12955
  var FETCH_TIMEOUT_MS = 3e3;
12938
12956
  function engineVersion() {
12939
- return true ? "0.2.25" : "0.0.0-dev";
12957
+ return true ? "0.2.26" : "0.0.0-dev";
12940
12958
  }
12941
12959
  function defaultUpdateCachePath() {
12942
12960
  const base = process.env["CROSSCHECK_DATA_DIR"] || path10.join(os.homedir() || os.tmpdir(), ".crosscheck");