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.
@@ -1086,7 +1086,12 @@ function loadPricing(path15) {
1086
1086
  function modelPricing(pricing, provider, model) {
1087
1087
  const block = pricing[provider];
1088
1088
  if (!block || typeof block !== "object" || Array.isArray(block)) return null;
1089
- const entry = block[model];
1089
+ const table = block;
1090
+ let entry = table[model];
1091
+ if (!entry || typeof entry !== "object" || Array.isArray(entry)) {
1092
+ const best = Object.keys(table).filter((k) => model.startsWith(k)).sort((a, b) => b.length - a.length)[0];
1093
+ entry = best !== void 0 ? table[best] : void 0;
1094
+ }
1090
1095
  if (!entry || typeof entry !== "object" || Array.isArray(entry)) return null;
1091
1096
  const e = entry;
1092
1097
  return {
@@ -1514,6 +1519,14 @@ async function acquireRateLimit(provider, deps) {
1514
1519
  // src/providers/anthropic.ts
1515
1520
  var ANTHROPIC_API_URL = "https://api.anthropic.com/v1/messages";
1516
1521
  var ANTHROPIC_VERSION_HEADER = "2023-06-01";
1522
+ var ADAPTIVE_THINKING_PREFIXES = [
1523
+ "claude-fable-5",
1524
+ "claude-opus-5-5"
1525
+ ];
1526
+ function rejectsDisabledThinking(model) {
1527
+ const m = model.toLowerCase();
1528
+ return ADAPTIVE_THINKING_PREFIXES.some((p) => m.startsWith(p));
1529
+ }
1517
1530
  var ANTHROPIC_STRUCTURED_TOOL_NAME = "structured_output";
1518
1531
  function applyPromptCaching(body, env = process.env) {
1519
1532
  const flag = (env["CROSSCHECK_ANTHROPIC_PROMPT_CACHE"] ?? "").trim();
@@ -1558,7 +1571,7 @@ function buildAnthropicRequest(opts) {
1558
1571
  }
1559
1572
  applyPromptCaching(body);
1560
1573
  if (isReasoningModel("anthropic", opts.model)) {
1561
- if (opts.model.toLowerCase().startsWith("claude-fable-5")) {
1574
+ if (rejectsDisabledThinking(opts.model)) {
1562
1575
  body.thinking = { type: "adaptive" };
1563
1576
  body.output_config = { effort: "low" };
1564
1577
  } else {
@@ -2080,7 +2093,7 @@ async function sendOpenAICompatible(args) {
2080
2093
 
2081
2094
  // src/providers/registry.ts
2082
2095
  var DEFAULT_MODELS = {
2083
- anthropic: "claude-opus-5",
2096
+ anthropic: "claude-opus-5-5",
2084
2097
  openai: "gpt-5.6-sol",
2085
2098
  xai: "grok-4-latest",
2086
2099
  mistral: "mistral-large-latest",
@@ -2097,7 +2110,12 @@ var DEFAULT_FALLBACKS = {
2097
2110
  // about.
2098
2111
  openai: ["gpt-5"],
2099
2112
  // 3.8 Flash is recent enough that some projects won't have it yet.
2100
- gemini: ["gemini-3.1-pro-preview"]
2113
+ gemini: ["gemini-3.1-pro-preview"],
2114
+ // Opus 5.5 is new enough that an account could still be waiting on it.
2115
+ // Opus 5 is the same family one step back — and this chain is consulted
2116
+ // ONLY for a model-access failure, never for a bad key or a rate limit,
2117
+ // so it can't quietly downgrade anyone who simply hit a 429.
2118
+ anthropic: ["claude-opus-5"]
2101
2119
  };
2102
2120
  var MODEL_ENV_VARS = {
2103
2121
  anthropic: "ANTHROPIC_MODEL",
@@ -2363,7 +2381,7 @@ var import_zod = require("zod");
2363
2381
  // src/server-meta.ts
2364
2382
  init_cjs_shims();
2365
2383
  var SERVER_NAME = "crosscheck-agent";
2366
- var SERVER_VERSION = true ? "0.2.25" : "0.0.0-dev";
2384
+ var SERVER_VERSION = true ? "0.2.26" : "0.0.0-dev";
2367
2385
 
2368
2386
  // src/tools/audit.ts
2369
2387
  init_cjs_shims();
@@ -12940,7 +12958,7 @@ var CHECK_INTERVAL_SECONDS = 3 * 24 * 60 * 60;
12940
12958
  var DEFAULT_PACKAGE = "crosscheck-cli";
12941
12959
  var FETCH_TIMEOUT_MS = 3e3;
12942
12960
  function engineVersion() {
12943
- return true ? "0.2.25" : "0.0.0-dev";
12961
+ return true ? "0.2.26" : "0.0.0-dev";
12944
12962
  }
12945
12963
  function defaultUpdateCachePath() {
12946
12964
  const base = process.env["CROSSCHECK_DATA_DIR"] || import_node_path13.default.join(import_node_os2.default.homedir() || import_node_os2.default.tmpdir(), ".crosscheck");