crosscheck-mcp 0.2.10 → 0.2.12

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.
@@ -1211,7 +1211,11 @@ var PROVIDER_CAPS = {
1211
1211
  system_role: "separate",
1212
1212
  supports_temperature: true,
1213
1213
  reasoning_prefixes: ["gemini-3.1-pro", "gemini-3.5-flash", "gemini-2.5-pro"]
1214
- }
1214
+ },
1215
+ // Qwen's "Max" tier (qwen-v3.8, qwen-v3.7) is a standard instruct/chat
1216
+ // model, not a visible-reasoning model like QwQ — normal temperature and
1217
+ // max_tokens handling, same as xai/mistral/groq/deepseek.
1218
+ qwen: { family: "openai_chat", system_role: "inline", supports_temperature: true }
1215
1219
  };
1216
1220
  function isReasoningModel(provider, model) {
1217
1221
  const caps = PROVIDER_CAPS[provider];
@@ -1795,7 +1799,12 @@ var OPENAI_COMPAT_DEFAULT_URLS = {
1795
1799
  groq: "https://api.groq.com/openai/v1/chat/completions",
1796
1800
  deepseek: "https://api.deepseek.com/v1/chat/completions",
1797
1801
  // Moonshot AI (Kimi). OpenAI-compatible chat completions endpoint.
1798
- kimi: "https://api.moonshot.ai/v1/chat/completions"
1802
+ kimi: "https://api.moonshot.ai/v1/chat/completions",
1803
+ // Alibaba Cloud DashScope (Qwen). International endpoint — the mainland
1804
+ // China endpoint (dashscope.aliyuncs.com) 403s/404s from outside China in
1805
+ // a way that can look like a bad key; this is the deliberate default for
1806
+ // a US-based deployment.
1807
+ qwen: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions"
1799
1808
  };
1800
1809
  var OPENAI_COMPAT_NATIVE_STRUCTURED = /* @__PURE__ */ new Set([
1801
1810
  "openai"
@@ -1964,7 +1973,8 @@ var DEFAULT_MODELS = {
1964
1973
  groq: "llama-3.3-70b-versatile",
1965
1974
  deepseek: "deepseek-chat",
1966
1975
  gemini: "gemini-3.1-pro-preview",
1967
- kimi: "kimi-k3"
1976
+ kimi: "kimi-k3",
1977
+ qwen: "qwen3.8-max"
1968
1978
  };
1969
1979
  function buildProviders(opts) {
1970
1980
  const out = {};
@@ -1979,7 +1989,8 @@ function buildProviders(opts) {
1979
1989
  { name: "mistral", keyEnv: "MISTRAL_API_KEY", modelEnv: "MISTRAL_MODEL", defaultModel: DEFAULT_MODELS["mistral"] },
1980
1990
  { name: "groq", keyEnv: "GROQ_API_KEY", modelEnv: "GROQ_MODEL", defaultModel: DEFAULT_MODELS["groq"] },
1981
1991
  { name: "deepseek", keyEnv: "DEEPSEEK_API_KEY", modelEnv: "DEEPSEEK_MODEL", defaultModel: DEFAULT_MODELS["deepseek"] },
1982
- { name: "kimi", keyEnv: "KIMI_API_KEY", modelEnv: "KIMI_MODEL", defaultModel: DEFAULT_MODELS["kimi"] }
1992
+ { name: "kimi", keyEnv: "KIMI_API_KEY", modelEnv: "KIMI_MODEL", defaultModel: DEFAULT_MODELS["kimi"] },
1993
+ { name: "qwen", keyEnv: "QWEN_API_KEY", modelEnv: "QWEN_MODEL", defaultModel: DEFAULT_MODELS["qwen"] }
1983
1994
  ];
1984
1995
  for (const s of openAiCompatSpec) {
1985
1996
  const apiKey = opts.env[s.keyEnv];
@@ -2180,7 +2191,7 @@ var import_zod = require("zod");
2180
2191
  // src/server-meta.ts
2181
2192
  init_cjs_shims();
2182
2193
  var SERVER_NAME = "crosscheck-agent";
2183
- var SERVER_VERSION = true ? "0.2.10" : "0.0.0-dev";
2194
+ var SERVER_VERSION = true ? "0.2.12" : "0.0.0-dev";
2184
2195
 
2185
2196
  // src/tools/audit.ts
2186
2197
  init_cjs_shims();
@@ -5070,7 +5081,9 @@ var SUPER_MODELS = {
5070
5081
  // already the default — no-op retarget
5071
5082
  gemini: DEFAULT_MODELS["gemini"],
5072
5083
  // already the default — no-op retarget
5073
- kimi: DEFAULT_MODELS["kimi"]
5084
+ kimi: DEFAULT_MODELS["kimi"],
5085
+ // already the default — no-op retarget
5086
+ qwen: DEFAULT_MODELS["qwen"]
5074
5087
  // already the default — no-op retarget
5075
5088
  };
5076
5089
  var SUPER_PROVIDER_NAMES = Object.keys(SUPER_MODELS);
@@ -10889,7 +10902,8 @@ var KNOWN_PROVIDERS6 = [
10889
10902
  "mistral",
10890
10903
  "groq",
10891
10904
  "deepseek",
10892
- "kimi"
10905
+ "kimi",
10906
+ "qwen"
10893
10907
  ];
10894
10908
  var USAGE_HINT = "Pass a 'providers' array to confer/debate/plan/review to pick an ad-hoc subset, e.g. providers=['openai','gemini']. Omit the field to use the configured active set.";
10895
10909
  function runListProviders(args, opts) {
@@ -12471,7 +12485,7 @@ var CHECK_INTERVAL_SECONDS = 3 * 24 * 60 * 60;
12471
12485
  var DEFAULT_PACKAGE = "crosscheck-cli";
12472
12486
  var FETCH_TIMEOUT_MS = 3e3;
12473
12487
  function engineVersion() {
12474
- return true ? "0.2.10" : "0.0.0-dev";
12488
+ return true ? "0.2.12" : "0.0.0-dev";
12475
12489
  }
12476
12490
  function defaultUpdateCachePath() {
12477
12491
  const base = process.env["CROSSCHECK_DATA_DIR"] || import_node_path13.default.join(import_node_os2.default.homedir() || import_node_os2.default.tmpdir(), ".crosscheck");
@@ -13297,8 +13311,24 @@ function registerCoreTools(opts = {}) {
13297
13311
  o.repoRoot,
13298
13312
  o.workerToolsCfg
13299
13313
  ),
13300
- triangulateTool(o.providers ?? {}, o.providerAllowlist ?? null, o.bridge),
13301
- planTool(o.providers ?? {}, o.providerAllowlist ?? null, o.bridge),
13314
+ triangulateTool(
13315
+ o.providers ?? {},
13316
+ o.providerAllowlist ?? null,
13317
+ o.bridge,
13318
+ o.storage,
13319
+ o.circuitBreakers,
13320
+ o.transcriptsDir,
13321
+ o.repoRoot
13322
+ ),
13323
+ planTool(
13324
+ o.providers ?? {},
13325
+ o.providerAllowlist ?? null,
13326
+ o.bridge,
13327
+ o.storage,
13328
+ o.circuitBreakers,
13329
+ o.transcriptsDir,
13330
+ o.repoRoot
13331
+ ),
13302
13332
  critiqueTool(
13303
13333
  o.providers ?? {},
13304
13334
  o.providerAllowlist ?? null,
@@ -13308,7 +13338,15 @@ function registerCoreTools(opts = {}) {
13308
13338
  o.transcriptsDir,
13309
13339
  o.repoRoot
13310
13340
  ),
13311
- reviewTool(o.providers ?? {}, o.providerAllowlist ?? null, o.bridge),
13341
+ reviewTool(
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
  listProvidersTool(o.providers ?? {}, o.activeProviders ?? null, o.moderatorDefault ?? "anthropic"),
13313
13351
  recallTool(o.storage, o.bridge),
13314
13352
  sessionMemoryTool(o.storage, o.bridge),
@@ -13725,7 +13763,7 @@ function listProvidersTool(providers, activeProviders, moderatorDefault) {
13725
13763
  })
13726
13764
  };
13727
13765
  }
13728
- function reviewTool(providers, allowlist, bridge) {
13766
+ function reviewTool(providers, allowlist, bridge, storage, breakers, transcriptsDir, repoRoot) {
13729
13767
  return {
13730
13768
  name: "review",
13731
13769
  description: "Have an LLM panel peer-review a code or proposal snippet. Returns the confer envelope (one answer per provider).",
@@ -13744,7 +13782,11 @@ function reviewTool(providers, allowlist, bridge) {
13744
13782
  handler: (args) => runReview(args, {
13745
13783
  providers,
13746
13784
  allowlist,
13747
- ...bridge ? { bridge } : {}
13785
+ ...bridge ? { bridge } : {},
13786
+ ...storage ? { storage } : {},
13787
+ ...breakers ? { breakers } : {},
13788
+ ...transcriptsDir ? { transcriptsDir } : {},
13789
+ ...repoRoot ? { repoRoot } : {}
13748
13790
  })
13749
13791
  };
13750
13792
  }
@@ -13776,7 +13818,7 @@ function critiqueTool(providers, allowlist, bridge, storage, breakers, transcrip
13776
13818
  })
13777
13819
  };
13778
13820
  }
13779
- function planTool(providers, allowlist, bridge) {
13821
+ function planTool(providers, allowlist, bridge, storage, breakers, transcriptsDir, repoRoot) {
13780
13822
  return {
13781
13823
  name: "plan",
13782
13824
  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.',
@@ -13803,11 +13845,15 @@ function planTool(providers, allowlist, bridge) {
13803
13845
  handler: (args) => runPlan(args, {
13804
13846
  providers,
13805
13847
  allowlist,
13806
- ...bridge ? { bridge } : {}
13848
+ ...bridge ? { bridge } : {},
13849
+ ...storage ? { storage } : {},
13850
+ ...breakers ? { breakers } : {},
13851
+ ...transcriptsDir ? { transcriptsDir } : {},
13852
+ ...repoRoot ? { repoRoot } : {}
13807
13853
  })
13808
13854
  };
13809
13855
  }
13810
- function triangulateTool(providers, allowlist, bridge) {
13856
+ function triangulateTool(providers, allowlist, bridge, storage, breakers, transcriptsDir, repoRoot) {
13811
13857
  return {
13812
13858
  name: "triangulate",
13813
13859
  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.",
@@ -13828,7 +13874,11 @@ function triangulateTool(providers, allowlist, bridge) {
13828
13874
  handler: (args) => runTriangulate(args, {
13829
13875
  providers,
13830
13876
  allowlist,
13831
- ...bridge ? { bridge } : {}
13877
+ ...bridge ? { bridge } : {},
13878
+ ...storage ? { storage } : {},
13879
+ ...breakers ? { breakers } : {},
13880
+ ...transcriptsDir ? { transcriptsDir } : {},
13881
+ ...repoRoot ? { repoRoot } : {}
13832
13882
  })
13833
13883
  };
13834
13884
  }
@@ -14158,7 +14208,12 @@ var PROVIDER_TO_SCHEMA = {
14158
14208
  openai: "openai",
14159
14209
  gemini: "gemini",
14160
14210
  xai: "grok",
14161
- grok: "grok"
14211
+ grok: "grok",
14212
+ mistral: "mistral",
14213
+ groq: "groq",
14214
+ deepseek: "deepseek",
14215
+ kimi: "kimi",
14216
+ qwen: "qwen"
14162
14217
  };
14163
14218
  var TOOL_TO_PATTERN = {
14164
14219
  confer: "confer",