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.
- package/dist/browser-ext.cjs +47 -11
- package/dist/browser-ext.cjs.map +1 -1
- package/dist/browser-ext.js +47 -11
- package/dist/browser-ext.js.map +1 -1
- package/dist/node-stdio.cjs +76 -11
- package/dist/node-stdio.cjs.map +1 -1
- package/dist/node-stdio.js +76 -11
- package/dist/node-stdio.js.map +1 -1
- 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 +6 -1
package/dist/node-stdio.cjs
CHANGED
|
@@ -1976,6 +1976,28 @@ var DEFAULT_MODELS = {
|
|
|
1976
1976
|
kimi: "kimi-k3",
|
|
1977
1977
|
qwen: "qwen3.8-max"
|
|
1978
1978
|
};
|
|
1979
|
+
var MODEL_ENV_VARS = {
|
|
1980
|
+
anthropic: "ANTHROPIC_MODEL",
|
|
1981
|
+
openai: "OPENAI_MODEL",
|
|
1982
|
+
xai: "XAI_MODEL",
|
|
1983
|
+
mistral: "MISTRAL_MODEL",
|
|
1984
|
+
groq: "GROQ_MODEL",
|
|
1985
|
+
deepseek: "DEEPSEEK_MODEL",
|
|
1986
|
+
gemini: "GEMINI_MODEL",
|
|
1987
|
+
kimi: "KIMI_MODEL",
|
|
1988
|
+
qwen: "QWEN_MODEL"
|
|
1989
|
+
};
|
|
1990
|
+
function detectStalePins(env) {
|
|
1991
|
+
const out = [];
|
|
1992
|
+
for (const [provider, envVar] of Object.entries(MODEL_ENV_VARS)) {
|
|
1993
|
+
const pinned = env[envVar];
|
|
1994
|
+
const current = DEFAULT_MODELS[provider];
|
|
1995
|
+
if (pinned && current && pinned !== current) {
|
|
1996
|
+
out.push({ provider, envVar, pinned, current });
|
|
1997
|
+
}
|
|
1998
|
+
}
|
|
1999
|
+
return out;
|
|
2000
|
+
}
|
|
1979
2001
|
function buildProviders(opts) {
|
|
1980
2002
|
const out = {};
|
|
1981
2003
|
const anthropicKey = opts.env["ANTHROPIC_API_KEY"];
|
|
@@ -2191,7 +2213,7 @@ var import_zod = require("zod");
|
|
|
2191
2213
|
// src/server-meta.ts
|
|
2192
2214
|
init_cjs_shims();
|
|
2193
2215
|
var SERVER_NAME = "crosscheck-agent";
|
|
2194
|
-
var SERVER_VERSION = true ? "0.2.
|
|
2216
|
+
var SERVER_VERSION = true ? "0.2.13" : "0.0.0-dev";
|
|
2195
2217
|
|
|
2196
2218
|
// src/tools/audit.ts
|
|
2197
2219
|
init_cjs_shims();
|
|
@@ -12485,7 +12507,7 @@ var CHECK_INTERVAL_SECONDS = 3 * 24 * 60 * 60;
|
|
|
12485
12507
|
var DEFAULT_PACKAGE = "crosscheck-cli";
|
|
12486
12508
|
var FETCH_TIMEOUT_MS = 3e3;
|
|
12487
12509
|
function engineVersion() {
|
|
12488
|
-
return true ? "0.2.
|
|
12510
|
+
return true ? "0.2.13" : "0.0.0-dev";
|
|
12489
12511
|
}
|
|
12490
12512
|
function defaultUpdateCachePath() {
|
|
12491
12513
|
const base = process.env["CROSSCHECK_DATA_DIR"] || import_node_path13.default.join(import_node_os2.default.homedir() || import_node_os2.default.tmpdir(), ".crosscheck");
|
|
@@ -13311,8 +13333,24 @@ function registerCoreTools(opts = {}) {
|
|
|
13311
13333
|
o.repoRoot,
|
|
13312
13334
|
o.workerToolsCfg
|
|
13313
13335
|
),
|
|
13314
|
-
triangulateTool(
|
|
13315
|
-
|
|
13336
|
+
triangulateTool(
|
|
13337
|
+
o.providers ?? {},
|
|
13338
|
+
o.providerAllowlist ?? null,
|
|
13339
|
+
o.bridge,
|
|
13340
|
+
o.storage,
|
|
13341
|
+
o.circuitBreakers,
|
|
13342
|
+
o.transcriptsDir,
|
|
13343
|
+
o.repoRoot
|
|
13344
|
+
),
|
|
13345
|
+
planTool(
|
|
13346
|
+
o.providers ?? {},
|
|
13347
|
+
o.providerAllowlist ?? null,
|
|
13348
|
+
o.bridge,
|
|
13349
|
+
o.storage,
|
|
13350
|
+
o.circuitBreakers,
|
|
13351
|
+
o.transcriptsDir,
|
|
13352
|
+
o.repoRoot
|
|
13353
|
+
),
|
|
13316
13354
|
critiqueTool(
|
|
13317
13355
|
o.providers ?? {},
|
|
13318
13356
|
o.providerAllowlist ?? null,
|
|
@@ -13322,7 +13360,15 @@ function registerCoreTools(opts = {}) {
|
|
|
13322
13360
|
o.transcriptsDir,
|
|
13323
13361
|
o.repoRoot
|
|
13324
13362
|
),
|
|
13325
|
-
reviewTool(
|
|
13363
|
+
reviewTool(
|
|
13364
|
+
o.providers ?? {},
|
|
13365
|
+
o.providerAllowlist ?? null,
|
|
13366
|
+
o.bridge,
|
|
13367
|
+
o.storage,
|
|
13368
|
+
o.circuitBreakers,
|
|
13369
|
+
o.transcriptsDir,
|
|
13370
|
+
o.repoRoot
|
|
13371
|
+
),
|
|
13326
13372
|
listProvidersTool(o.providers ?? {}, o.activeProviders ?? null, o.moderatorDefault ?? "anthropic"),
|
|
13327
13373
|
recallTool(o.storage, o.bridge),
|
|
13328
13374
|
sessionMemoryTool(o.storage, o.bridge),
|
|
@@ -13739,7 +13785,7 @@ function listProvidersTool(providers, activeProviders, moderatorDefault) {
|
|
|
13739
13785
|
})
|
|
13740
13786
|
};
|
|
13741
13787
|
}
|
|
13742
|
-
function reviewTool(providers, allowlist, bridge) {
|
|
13788
|
+
function reviewTool(providers, allowlist, bridge, storage, breakers, transcriptsDir, repoRoot) {
|
|
13743
13789
|
return {
|
|
13744
13790
|
name: "review",
|
|
13745
13791
|
description: "Have an LLM panel peer-review a code or proposal snippet. Returns the confer envelope (one answer per provider).",
|
|
@@ -13758,7 +13804,11 @@ function reviewTool(providers, allowlist, bridge) {
|
|
|
13758
13804
|
handler: (args) => runReview(args, {
|
|
13759
13805
|
providers,
|
|
13760
13806
|
allowlist,
|
|
13761
|
-
...bridge ? { bridge } : {}
|
|
13807
|
+
...bridge ? { bridge } : {},
|
|
13808
|
+
...storage ? { storage } : {},
|
|
13809
|
+
...breakers ? { breakers } : {},
|
|
13810
|
+
...transcriptsDir ? { transcriptsDir } : {},
|
|
13811
|
+
...repoRoot ? { repoRoot } : {}
|
|
13762
13812
|
})
|
|
13763
13813
|
};
|
|
13764
13814
|
}
|
|
@@ -13790,7 +13840,7 @@ function critiqueTool(providers, allowlist, bridge, storage, breakers, transcrip
|
|
|
13790
13840
|
})
|
|
13791
13841
|
};
|
|
13792
13842
|
}
|
|
13793
|
-
function planTool(providers, allowlist, bridge) {
|
|
13843
|
+
function planTool(providers, allowlist, bridge, storage, breakers, transcriptsDir, repoRoot) {
|
|
13794
13844
|
return {
|
|
13795
13845
|
name: "plan",
|
|
13796
13846
|
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.',
|
|
@@ -13817,11 +13867,15 @@ function planTool(providers, allowlist, bridge) {
|
|
|
13817
13867
|
handler: (args) => runPlan(args, {
|
|
13818
13868
|
providers,
|
|
13819
13869
|
allowlist,
|
|
13820
|
-
...bridge ? { bridge } : {}
|
|
13870
|
+
...bridge ? { bridge } : {},
|
|
13871
|
+
...storage ? { storage } : {},
|
|
13872
|
+
...breakers ? { breakers } : {},
|
|
13873
|
+
...transcriptsDir ? { transcriptsDir } : {},
|
|
13874
|
+
...repoRoot ? { repoRoot } : {}
|
|
13821
13875
|
})
|
|
13822
13876
|
};
|
|
13823
13877
|
}
|
|
13824
|
-
function triangulateTool(providers, allowlist, bridge) {
|
|
13878
|
+
function triangulateTool(providers, allowlist, bridge, storage, breakers, transcriptsDir, repoRoot) {
|
|
13825
13879
|
return {
|
|
13826
13880
|
name: "triangulate",
|
|
13827
13881
|
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.",
|
|
@@ -13842,7 +13896,11 @@ function triangulateTool(providers, allowlist, bridge) {
|
|
|
13842
13896
|
handler: (args) => runTriangulate(args, {
|
|
13843
13897
|
providers,
|
|
13844
13898
|
allowlist,
|
|
13845
|
-
...bridge ? { bridge } : {}
|
|
13899
|
+
...bridge ? { bridge } : {},
|
|
13900
|
+
...storage ? { storage } : {},
|
|
13901
|
+
...breakers ? { breakers } : {},
|
|
13902
|
+
...transcriptsDir ? { transcriptsDir } : {},
|
|
13903
|
+
...repoRoot ? { repoRoot } : {}
|
|
13846
13904
|
})
|
|
13847
13905
|
};
|
|
13848
13906
|
}
|
|
@@ -14743,6 +14801,13 @@ async function main() {
|
|
|
14743
14801
|
if (Object.keys(providers).length > 0) {
|
|
14744
14802
|
process.stderr.write(
|
|
14745
14803
|
`crosscheck-agent: native providers loaded: ${Object.keys(providers).sort().join(", ")}
|
|
14804
|
+
`
|
|
14805
|
+
);
|
|
14806
|
+
}
|
|
14807
|
+
for (const stale of detectStalePins(process.env)) {
|
|
14808
|
+
if (!(stale.provider in providers)) continue;
|
|
14809
|
+
process.stderr.write(
|
|
14810
|
+
`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.
|
|
14746
14811
|
`
|
|
14747
14812
|
);
|
|
14748
14813
|
}
|