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.
- package/dist/browser-ext.cjs +83 -20
- package/dist/browser-ext.cjs.map +1 -1
- package/dist/browser-ext.js +83 -20
- package/dist/browser-ext.js.map +1 -1
- package/dist/node-stdio.cjs +73 -18
- package/dist/node-stdio.cjs.map +1 -1
- package/dist/node-stdio.js +73 -18
- package/dist/node-stdio.js.map +1 -1
- package/dist/pricing.json +14 -2
- package/dist/self-check.cjs +1000 -0
- package/dist/self-check.cjs.map +1 -0
- package/dist/self-check.d.cts +30 -0
- package/dist/self-check.d.ts +30 -0
- package/dist/self-check.js +977 -0
- package/dist/self-check.js.map +1 -0
- package/package.json +7 -2
package/dist/node-stdio.js
CHANGED
|
@@ -1187,7 +1187,11 @@ var PROVIDER_CAPS = {
|
|
|
1187
1187
|
system_role: "separate",
|
|
1188
1188
|
supports_temperature: true,
|
|
1189
1189
|
reasoning_prefixes: ["gemini-3.1-pro", "gemini-3.5-flash", "gemini-2.5-pro"]
|
|
1190
|
-
}
|
|
1190
|
+
},
|
|
1191
|
+
// Qwen's "Max" tier (qwen-v3.8, qwen-v3.7) is a standard instruct/chat
|
|
1192
|
+
// model, not a visible-reasoning model like QwQ — normal temperature and
|
|
1193
|
+
// max_tokens handling, same as xai/mistral/groq/deepseek.
|
|
1194
|
+
qwen: { family: "openai_chat", system_role: "inline", supports_temperature: true }
|
|
1191
1195
|
};
|
|
1192
1196
|
function isReasoningModel(provider, model) {
|
|
1193
1197
|
const caps = PROVIDER_CAPS[provider];
|
|
@@ -1771,7 +1775,12 @@ var OPENAI_COMPAT_DEFAULT_URLS = {
|
|
|
1771
1775
|
groq: "https://api.groq.com/openai/v1/chat/completions",
|
|
1772
1776
|
deepseek: "https://api.deepseek.com/v1/chat/completions",
|
|
1773
1777
|
// Moonshot AI (Kimi). OpenAI-compatible chat completions endpoint.
|
|
1774
|
-
kimi: "https://api.moonshot.ai/v1/chat/completions"
|
|
1778
|
+
kimi: "https://api.moonshot.ai/v1/chat/completions",
|
|
1779
|
+
// Alibaba Cloud DashScope (Qwen). International endpoint — the mainland
|
|
1780
|
+
// China endpoint (dashscope.aliyuncs.com) 403s/404s from outside China in
|
|
1781
|
+
// a way that can look like a bad key; this is the deliberate default for
|
|
1782
|
+
// a US-based deployment.
|
|
1783
|
+
qwen: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1/chat/completions"
|
|
1775
1784
|
};
|
|
1776
1785
|
var OPENAI_COMPAT_NATIVE_STRUCTURED = /* @__PURE__ */ new Set([
|
|
1777
1786
|
"openai"
|
|
@@ -1940,7 +1949,8 @@ var DEFAULT_MODELS = {
|
|
|
1940
1949
|
groq: "llama-3.3-70b-versatile",
|
|
1941
1950
|
deepseek: "deepseek-chat",
|
|
1942
1951
|
gemini: "gemini-3.1-pro-preview",
|
|
1943
|
-
kimi: "kimi-k3"
|
|
1952
|
+
kimi: "kimi-k3",
|
|
1953
|
+
qwen: "qwen3.8-max"
|
|
1944
1954
|
};
|
|
1945
1955
|
function buildProviders(opts) {
|
|
1946
1956
|
const out = {};
|
|
@@ -1955,7 +1965,8 @@ function buildProviders(opts) {
|
|
|
1955
1965
|
{ name: "mistral", keyEnv: "MISTRAL_API_KEY", modelEnv: "MISTRAL_MODEL", defaultModel: DEFAULT_MODELS["mistral"] },
|
|
1956
1966
|
{ name: "groq", keyEnv: "GROQ_API_KEY", modelEnv: "GROQ_MODEL", defaultModel: DEFAULT_MODELS["groq"] },
|
|
1957
1967
|
{ name: "deepseek", keyEnv: "DEEPSEEK_API_KEY", modelEnv: "DEEPSEEK_MODEL", defaultModel: DEFAULT_MODELS["deepseek"] },
|
|
1958
|
-
{ name: "kimi", keyEnv: "KIMI_API_KEY", modelEnv: "KIMI_MODEL", defaultModel: DEFAULT_MODELS["kimi"] }
|
|
1968
|
+
{ name: "kimi", keyEnv: "KIMI_API_KEY", modelEnv: "KIMI_MODEL", defaultModel: DEFAULT_MODELS["kimi"] },
|
|
1969
|
+
{ name: "qwen", keyEnv: "QWEN_API_KEY", modelEnv: "QWEN_MODEL", defaultModel: DEFAULT_MODELS["qwen"] }
|
|
1959
1970
|
];
|
|
1960
1971
|
for (const s of openAiCompatSpec) {
|
|
1961
1972
|
const apiKey = opts.env[s.keyEnv];
|
|
@@ -2159,7 +2170,7 @@ import { z } from "zod";
|
|
|
2159
2170
|
// src/server-meta.ts
|
|
2160
2171
|
init_esm_shims();
|
|
2161
2172
|
var SERVER_NAME = "crosscheck-agent";
|
|
2162
|
-
var SERVER_VERSION = true ? "0.2.
|
|
2173
|
+
var SERVER_VERSION = true ? "0.2.12" : "0.0.0-dev";
|
|
2163
2174
|
|
|
2164
2175
|
// src/tools/audit.ts
|
|
2165
2176
|
init_esm_shims();
|
|
@@ -5049,7 +5060,9 @@ var SUPER_MODELS = {
|
|
|
5049
5060
|
// already the default — no-op retarget
|
|
5050
5061
|
gemini: DEFAULT_MODELS["gemini"],
|
|
5051
5062
|
// already the default — no-op retarget
|
|
5052
|
-
kimi: DEFAULT_MODELS["kimi"]
|
|
5063
|
+
kimi: DEFAULT_MODELS["kimi"],
|
|
5064
|
+
// already the default — no-op retarget
|
|
5065
|
+
qwen: DEFAULT_MODELS["qwen"]
|
|
5053
5066
|
// already the default — no-op retarget
|
|
5054
5067
|
};
|
|
5055
5068
|
var SUPER_PROVIDER_NAMES = Object.keys(SUPER_MODELS);
|
|
@@ -10885,7 +10898,8 @@ var KNOWN_PROVIDERS6 = [
|
|
|
10885
10898
|
"mistral",
|
|
10886
10899
|
"groq",
|
|
10887
10900
|
"deepseek",
|
|
10888
|
-
"kimi"
|
|
10901
|
+
"kimi",
|
|
10902
|
+
"qwen"
|
|
10889
10903
|
];
|
|
10890
10904
|
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.";
|
|
10891
10905
|
function runListProviders(args, opts) {
|
|
@@ -12467,7 +12481,7 @@ var CHECK_INTERVAL_SECONDS = 3 * 24 * 60 * 60;
|
|
|
12467
12481
|
var DEFAULT_PACKAGE = "crosscheck-cli";
|
|
12468
12482
|
var FETCH_TIMEOUT_MS = 3e3;
|
|
12469
12483
|
function engineVersion() {
|
|
12470
|
-
return true ? "0.2.
|
|
12484
|
+
return true ? "0.2.12" : "0.0.0-dev";
|
|
12471
12485
|
}
|
|
12472
12486
|
function defaultUpdateCachePath() {
|
|
12473
12487
|
const base = process.env["CROSSCHECK_DATA_DIR"] || path10.join(os.homedir() || os.tmpdir(), ".crosscheck");
|
|
@@ -13293,8 +13307,24 @@ function registerCoreTools(opts = {}) {
|
|
|
13293
13307
|
o.repoRoot,
|
|
13294
13308
|
o.workerToolsCfg
|
|
13295
13309
|
),
|
|
13296
|
-
triangulateTool(
|
|
13297
|
-
|
|
13310
|
+
triangulateTool(
|
|
13311
|
+
o.providers ?? {},
|
|
13312
|
+
o.providerAllowlist ?? null,
|
|
13313
|
+
o.bridge,
|
|
13314
|
+
o.storage,
|
|
13315
|
+
o.circuitBreakers,
|
|
13316
|
+
o.transcriptsDir,
|
|
13317
|
+
o.repoRoot
|
|
13318
|
+
),
|
|
13319
|
+
planTool(
|
|
13320
|
+
o.providers ?? {},
|
|
13321
|
+
o.providerAllowlist ?? null,
|
|
13322
|
+
o.bridge,
|
|
13323
|
+
o.storage,
|
|
13324
|
+
o.circuitBreakers,
|
|
13325
|
+
o.transcriptsDir,
|
|
13326
|
+
o.repoRoot
|
|
13327
|
+
),
|
|
13298
13328
|
critiqueTool(
|
|
13299
13329
|
o.providers ?? {},
|
|
13300
13330
|
o.providerAllowlist ?? null,
|
|
@@ -13304,7 +13334,15 @@ function registerCoreTools(opts = {}) {
|
|
|
13304
13334
|
o.transcriptsDir,
|
|
13305
13335
|
o.repoRoot
|
|
13306
13336
|
),
|
|
13307
|
-
reviewTool(
|
|
13337
|
+
reviewTool(
|
|
13338
|
+
o.providers ?? {},
|
|
13339
|
+
o.providerAllowlist ?? null,
|
|
13340
|
+
o.bridge,
|
|
13341
|
+
o.storage,
|
|
13342
|
+
o.circuitBreakers,
|
|
13343
|
+
o.transcriptsDir,
|
|
13344
|
+
o.repoRoot
|
|
13345
|
+
),
|
|
13308
13346
|
listProvidersTool(o.providers ?? {}, o.activeProviders ?? null, o.moderatorDefault ?? "anthropic"),
|
|
13309
13347
|
recallTool(o.storage, o.bridge),
|
|
13310
13348
|
sessionMemoryTool(o.storage, o.bridge),
|
|
@@ -13721,7 +13759,7 @@ function listProvidersTool(providers, activeProviders, moderatorDefault) {
|
|
|
13721
13759
|
})
|
|
13722
13760
|
};
|
|
13723
13761
|
}
|
|
13724
|
-
function reviewTool(providers, allowlist, bridge) {
|
|
13762
|
+
function reviewTool(providers, allowlist, bridge, storage, breakers, transcriptsDir, repoRoot) {
|
|
13725
13763
|
return {
|
|
13726
13764
|
name: "review",
|
|
13727
13765
|
description: "Have an LLM panel peer-review a code or proposal snippet. Returns the confer envelope (one answer per provider).",
|
|
@@ -13740,7 +13778,11 @@ function reviewTool(providers, allowlist, bridge) {
|
|
|
13740
13778
|
handler: (args) => runReview(args, {
|
|
13741
13779
|
providers,
|
|
13742
13780
|
allowlist,
|
|
13743
|
-
...bridge ? { bridge } : {}
|
|
13781
|
+
...bridge ? { bridge } : {},
|
|
13782
|
+
...storage ? { storage } : {},
|
|
13783
|
+
...breakers ? { breakers } : {},
|
|
13784
|
+
...transcriptsDir ? { transcriptsDir } : {},
|
|
13785
|
+
...repoRoot ? { repoRoot } : {}
|
|
13744
13786
|
})
|
|
13745
13787
|
};
|
|
13746
13788
|
}
|
|
@@ -13772,7 +13814,7 @@ function critiqueTool(providers, allowlist, bridge, storage, breakers, transcrip
|
|
|
13772
13814
|
})
|
|
13773
13815
|
};
|
|
13774
13816
|
}
|
|
13775
|
-
function planTool(providers, allowlist, bridge) {
|
|
13817
|
+
function planTool(providers, allowlist, bridge, storage, breakers, transcriptsDir, repoRoot) {
|
|
13776
13818
|
return {
|
|
13777
13819
|
name: "plan",
|
|
13778
13820
|
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.',
|
|
@@ -13799,11 +13841,15 @@ function planTool(providers, allowlist, bridge) {
|
|
|
13799
13841
|
handler: (args) => runPlan(args, {
|
|
13800
13842
|
providers,
|
|
13801
13843
|
allowlist,
|
|
13802
|
-
...bridge ? { bridge } : {}
|
|
13844
|
+
...bridge ? { bridge } : {},
|
|
13845
|
+
...storage ? { storage } : {},
|
|
13846
|
+
...breakers ? { breakers } : {},
|
|
13847
|
+
...transcriptsDir ? { transcriptsDir } : {},
|
|
13848
|
+
...repoRoot ? { repoRoot } : {}
|
|
13803
13849
|
})
|
|
13804
13850
|
};
|
|
13805
13851
|
}
|
|
13806
|
-
function triangulateTool(providers, allowlist, bridge) {
|
|
13852
|
+
function triangulateTool(providers, allowlist, bridge, storage, breakers, transcriptsDir, repoRoot) {
|
|
13807
13853
|
return {
|
|
13808
13854
|
name: "triangulate",
|
|
13809
13855
|
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.",
|
|
@@ -13824,7 +13870,11 @@ function triangulateTool(providers, allowlist, bridge) {
|
|
|
13824
13870
|
handler: (args) => runTriangulate(args, {
|
|
13825
13871
|
providers,
|
|
13826
13872
|
allowlist,
|
|
13827
|
-
...bridge ? { bridge } : {}
|
|
13873
|
+
...bridge ? { bridge } : {},
|
|
13874
|
+
...storage ? { storage } : {},
|
|
13875
|
+
...breakers ? { breakers } : {},
|
|
13876
|
+
...transcriptsDir ? { transcriptsDir } : {},
|
|
13877
|
+
...repoRoot ? { repoRoot } : {}
|
|
13828
13878
|
})
|
|
13829
13879
|
};
|
|
13830
13880
|
}
|
|
@@ -14154,7 +14204,12 @@ var PROVIDER_TO_SCHEMA = {
|
|
|
14154
14204
|
openai: "openai",
|
|
14155
14205
|
gemini: "gemini",
|
|
14156
14206
|
xai: "grok",
|
|
14157
|
-
grok: "grok"
|
|
14207
|
+
grok: "grok",
|
|
14208
|
+
mistral: "mistral",
|
|
14209
|
+
groq: "groq",
|
|
14210
|
+
deepseek: "deepseek",
|
|
14211
|
+
kimi: "kimi",
|
|
14212
|
+
qwen: "qwen"
|
|
14158
14213
|
};
|
|
14159
14214
|
var TOOL_TO_PATTERN = {
|
|
14160
14215
|
confer: "confer",
|