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.cjs
CHANGED
|
@@ -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.
|
|
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.
|
|
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(
|
|
13301
|
-
|
|
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(
|
|
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",
|