crosscheck-mcp 0.2.11 → 0.2.13

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.
@@ -1952,6 +1952,28 @@ var DEFAULT_MODELS = {
1952
1952
  kimi: "kimi-k3",
1953
1953
  qwen: "qwen3.8-max"
1954
1954
  };
1955
+ var MODEL_ENV_VARS = {
1956
+ anthropic: "ANTHROPIC_MODEL",
1957
+ openai: "OPENAI_MODEL",
1958
+ xai: "XAI_MODEL",
1959
+ mistral: "MISTRAL_MODEL",
1960
+ groq: "GROQ_MODEL",
1961
+ deepseek: "DEEPSEEK_MODEL",
1962
+ gemini: "GEMINI_MODEL",
1963
+ kimi: "KIMI_MODEL",
1964
+ qwen: "QWEN_MODEL"
1965
+ };
1966
+ function detectStalePins(env) {
1967
+ const out = [];
1968
+ for (const [provider, envVar] of Object.entries(MODEL_ENV_VARS)) {
1969
+ const pinned = env[envVar];
1970
+ const current = DEFAULT_MODELS[provider];
1971
+ if (pinned && current && pinned !== current) {
1972
+ out.push({ provider, envVar, pinned, current });
1973
+ }
1974
+ }
1975
+ return out;
1976
+ }
1955
1977
  function buildProviders(opts) {
1956
1978
  const out = {};
1957
1979
  const anthropicKey = opts.env["ANTHROPIC_API_KEY"];
@@ -2170,7 +2192,7 @@ import { z } from "zod";
2170
2192
  // src/server-meta.ts
2171
2193
  init_esm_shims();
2172
2194
  var SERVER_NAME = "crosscheck-agent";
2173
- var SERVER_VERSION = true ? "0.2.11" : "0.0.0-dev";
2195
+ var SERVER_VERSION = true ? "0.2.13" : "0.0.0-dev";
2174
2196
 
2175
2197
  // src/tools/audit.ts
2176
2198
  init_esm_shims();
@@ -12481,7 +12503,7 @@ var CHECK_INTERVAL_SECONDS = 3 * 24 * 60 * 60;
12481
12503
  var DEFAULT_PACKAGE = "crosscheck-cli";
12482
12504
  var FETCH_TIMEOUT_MS = 3e3;
12483
12505
  function engineVersion() {
12484
- return true ? "0.2.11" : "0.0.0-dev";
12506
+ return true ? "0.2.13" : "0.0.0-dev";
12485
12507
  }
12486
12508
  function defaultUpdateCachePath() {
12487
12509
  const base = process.env["CROSSCHECK_DATA_DIR"] || path10.join(os.homedir() || os.tmpdir(), ".crosscheck");
@@ -13307,8 +13329,24 @@ function registerCoreTools(opts = {}) {
13307
13329
  o.repoRoot,
13308
13330
  o.workerToolsCfg
13309
13331
  ),
13310
- triangulateTool(o.providers ?? {}, o.providerAllowlist ?? null, o.bridge),
13311
- planTool(o.providers ?? {}, o.providerAllowlist ?? null, o.bridge),
13332
+ triangulateTool(
13333
+ o.providers ?? {},
13334
+ o.providerAllowlist ?? null,
13335
+ o.bridge,
13336
+ o.storage,
13337
+ o.circuitBreakers,
13338
+ o.transcriptsDir,
13339
+ o.repoRoot
13340
+ ),
13341
+ planTool(
13342
+ o.providers ?? {},
13343
+ o.providerAllowlist ?? null,
13344
+ o.bridge,
13345
+ o.storage,
13346
+ o.circuitBreakers,
13347
+ o.transcriptsDir,
13348
+ o.repoRoot
13349
+ ),
13312
13350
  critiqueTool(
13313
13351
  o.providers ?? {},
13314
13352
  o.providerAllowlist ?? null,
@@ -13318,7 +13356,15 @@ function registerCoreTools(opts = {}) {
13318
13356
  o.transcriptsDir,
13319
13357
  o.repoRoot
13320
13358
  ),
13321
- reviewTool(o.providers ?? {}, o.providerAllowlist ?? null, o.bridge),
13359
+ reviewTool(
13360
+ o.providers ?? {},
13361
+ o.providerAllowlist ?? null,
13362
+ o.bridge,
13363
+ o.storage,
13364
+ o.circuitBreakers,
13365
+ o.transcriptsDir,
13366
+ o.repoRoot
13367
+ ),
13322
13368
  listProvidersTool(o.providers ?? {}, o.activeProviders ?? null, o.moderatorDefault ?? "anthropic"),
13323
13369
  recallTool(o.storage, o.bridge),
13324
13370
  sessionMemoryTool(o.storage, o.bridge),
@@ -13735,7 +13781,7 @@ function listProvidersTool(providers, activeProviders, moderatorDefault) {
13735
13781
  })
13736
13782
  };
13737
13783
  }
13738
- function reviewTool(providers, allowlist, bridge) {
13784
+ function reviewTool(providers, allowlist, bridge, storage, breakers, transcriptsDir, repoRoot) {
13739
13785
  return {
13740
13786
  name: "review",
13741
13787
  description: "Have an LLM panel peer-review a code or proposal snippet. Returns the confer envelope (one answer per provider).",
@@ -13754,7 +13800,11 @@ function reviewTool(providers, allowlist, bridge) {
13754
13800
  handler: (args) => runReview(args, {
13755
13801
  providers,
13756
13802
  allowlist,
13757
- ...bridge ? { bridge } : {}
13803
+ ...bridge ? { bridge } : {},
13804
+ ...storage ? { storage } : {},
13805
+ ...breakers ? { breakers } : {},
13806
+ ...transcriptsDir ? { transcriptsDir } : {},
13807
+ ...repoRoot ? { repoRoot } : {}
13758
13808
  })
13759
13809
  };
13760
13810
  }
@@ -13786,7 +13836,7 @@ function critiqueTool(providers, allowlist, bridge, storage, breakers, transcrip
13786
13836
  })
13787
13837
  };
13788
13838
  }
13789
- function planTool(providers, allowlist, bridge) {
13839
+ function planTool(providers, allowlist, bridge, storage, breakers, transcriptsDir, repoRoot) {
13790
13840
  return {
13791
13841
  name: "plan",
13792
13842
  description: 'Have an LLM panel debate a step-by-step plan for the stated goal under the given constraints. Returns the debate envelope with a moderator-synthesised plan. Defaults to `mode: "fast"` (2 rounds + early_stop) \u2014 set `mode: "thorough"` for 5 rounds without early_stop. Explicit `max_rounds` / `early_stop` / `early_stop_threshold` always override the mode preset. Use `structured: true` for schema-validated synthesis.',
@@ -13813,11 +13863,15 @@ function planTool(providers, allowlist, bridge) {
13813
13863
  handler: (args) => runPlan(args, {
13814
13864
  providers,
13815
13865
  allowlist,
13816
- ...bridge ? { bridge } : {}
13866
+ ...bridge ? { bridge } : {},
13867
+ ...storage ? { storage } : {},
13868
+ ...breakers ? { breakers } : {},
13869
+ ...transcriptsDir ? { transcriptsDir } : {},
13870
+ ...repoRoot ? { repoRoot } : {}
13817
13871
  })
13818
13872
  };
13819
13873
  }
13820
- function triangulateTool(providers, allowlist, bridge) {
13874
+ function triangulateTool(providers, allowlist, bridge, storage, breakers, transcriptsDir, repoRoot) {
13821
13875
  return {
13822
13876
  name: "triangulate",
13823
13877
  description: "Run a coordinate flow and reshape the output as a consensus + minority report with per-provider weights. v1 uses 1.0 weights (matches a fresh provider_stats DB); future versions thread real win-rate weights when the DB layer ports.",
@@ -13838,7 +13892,11 @@ function triangulateTool(providers, allowlist, bridge) {
13838
13892
  handler: (args) => runTriangulate(args, {
13839
13893
  providers,
13840
13894
  allowlist,
13841
- ...bridge ? { bridge } : {}
13895
+ ...bridge ? { bridge } : {},
13896
+ ...storage ? { storage } : {},
13897
+ ...breakers ? { breakers } : {},
13898
+ ...transcriptsDir ? { transcriptsDir } : {},
13899
+ ...repoRoot ? { repoRoot } : {}
13842
13900
  })
13843
13901
  };
13844
13902
  }
@@ -14739,6 +14797,13 @@ async function main() {
14739
14797
  if (Object.keys(providers).length > 0) {
14740
14798
  process.stderr.write(
14741
14799
  `crosscheck-agent: native providers loaded: ${Object.keys(providers).sort().join(", ")}
14800
+ `
14801
+ );
14802
+ }
14803
+ for (const stale of detectStalePins(process.env)) {
14804
+ if (!(stale.provider in providers)) continue;
14805
+ process.stderr.write(
14806
+ `crosscheck-agent: ${stale.provider} is pinned to "${stale.pinned}" via ${stale.envVar}, but the current default is "${stale.current}". If that wasn't intentional, update or remove ${stale.envVar} in your .env.
14742
14807
  `
14743
14808
  );
14744
14809
  }