crosscheck-mcp 0.2.17 → 0.2.18
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 +107 -8
- package/dist/browser-ext.cjs.map +1 -1
- package/dist/browser-ext.js +107 -8
- package/dist/browser-ext.js.map +1 -1
- package/dist/node-stdio.cjs +109 -8
- package/dist/node-stdio.cjs.map +1 -1
- package/dist/node-stdio.js +109 -8
- package/dist/node-stdio.js.map +1 -1
- package/package.json +1 -1
package/dist/node-stdio.cjs
CHANGED
|
@@ -2219,6 +2219,7 @@ var ROUTABLE_TOOLS = [
|
|
|
2219
2219
|
"explain",
|
|
2220
2220
|
// Operations
|
|
2221
2221
|
"list_providers",
|
|
2222
|
+
"models",
|
|
2222
2223
|
"recommend_panel",
|
|
2223
2224
|
"delegate",
|
|
2224
2225
|
"bench",
|
|
@@ -2275,7 +2276,7 @@ var import_zod = require("zod");
|
|
|
2275
2276
|
// src/server-meta.ts
|
|
2276
2277
|
init_cjs_shims();
|
|
2277
2278
|
var SERVER_NAME = "crosscheck-agent";
|
|
2278
|
-
var SERVER_VERSION = true ? "0.2.
|
|
2279
|
+
var SERVER_VERSION = true ? "0.2.18" : "0.0.0-dev";
|
|
2279
2280
|
|
|
2280
2281
|
// src/tools/audit.ts
|
|
2281
2282
|
init_cjs_shims();
|
|
@@ -11112,11 +11113,13 @@ function runListProviders(args, opts) {
|
|
|
11112
11113
|
const providers = [];
|
|
11113
11114
|
for (const name of names) {
|
|
11114
11115
|
const prov = opts.providers[name];
|
|
11116
|
+
const superChain = superRequested ? superChainFor(name) : [];
|
|
11115
11117
|
providers.push({
|
|
11116
11118
|
name,
|
|
11117
11119
|
available: prov !== void 0,
|
|
11118
11120
|
active: active.has(name),
|
|
11119
|
-
model: superRequested ?
|
|
11121
|
+
model: superRequested ? superPrimary(name) ?? null : prov ? prov.model : null,
|
|
11122
|
+
...superChain.length > 1 ? { fallbacks: superChain.slice(1) } : {}
|
|
11120
11123
|
});
|
|
11121
11124
|
}
|
|
11122
11125
|
const result = {
|
|
@@ -11128,6 +11131,81 @@ function runListProviders(args, opts) {
|
|
|
11128
11131
|
return result;
|
|
11129
11132
|
}
|
|
11130
11133
|
|
|
11134
|
+
// src/tools/models.ts
|
|
11135
|
+
init_cjs_shims();
|
|
11136
|
+
var KNOWN_PROVIDERS7 = [
|
|
11137
|
+
"anthropic",
|
|
11138
|
+
"openai",
|
|
11139
|
+
"xai",
|
|
11140
|
+
"gemini",
|
|
11141
|
+
"mistral",
|
|
11142
|
+
"groq",
|
|
11143
|
+
"deepseek",
|
|
11144
|
+
"kimi",
|
|
11145
|
+
"qwen"
|
|
11146
|
+
];
|
|
11147
|
+
var PICKER_URL = "https://crosscheckagent.com/account/models";
|
|
11148
|
+
var SUPER_ENV_VARS2 = {
|
|
11149
|
+
anthropic: "ANTHROPIC_SUPER_MODEL",
|
|
11150
|
+
openai: "OPENAI_SUPER_MODEL",
|
|
11151
|
+
xai: "XAI_SUPER_MODEL",
|
|
11152
|
+
gemini: "GEMINI_SUPER_MODEL",
|
|
11153
|
+
kimi: "KIMI_SUPER_MODEL",
|
|
11154
|
+
qwen: "QWEN_SUPER_MODEL",
|
|
11155
|
+
mistral: "MISTRAL_SUPER_MODEL",
|
|
11156
|
+
groq: "GROQ_SUPER_MODEL",
|
|
11157
|
+
deepseek: "DEEPSEEK_SUPER_MODEL"
|
|
11158
|
+
};
|
|
11159
|
+
var MODEL_ENV_VARS2 = {
|
|
11160
|
+
anthropic: "ANTHROPIC_MODEL",
|
|
11161
|
+
openai: "OPENAI_MODEL",
|
|
11162
|
+
xai: "XAI_MODEL",
|
|
11163
|
+
gemini: "GEMINI_MODEL",
|
|
11164
|
+
kimi: "KIMI_MODEL",
|
|
11165
|
+
qwen: "QWEN_MODEL",
|
|
11166
|
+
mistral: "MISTRAL_MODEL",
|
|
11167
|
+
groq: "GROQ_MODEL",
|
|
11168
|
+
deepseek: "DEEPSEEK_MODEL"
|
|
11169
|
+
};
|
|
11170
|
+
function runModels(args, opts) {
|
|
11171
|
+
const env = opts.env ?? process.env;
|
|
11172
|
+
const active = new Set(opts.activeProviders ?? Object.keys(opts.providers));
|
|
11173
|
+
const onlySuper = isSuperRequested(args);
|
|
11174
|
+
const names = onlySuper ? SUPER_PROVIDER_NAMES : KNOWN_PROVIDERS7;
|
|
11175
|
+
const rows = [];
|
|
11176
|
+
for (const name of names) {
|
|
11177
|
+
const prov = opts.providers[name];
|
|
11178
|
+
const conferModel = prov ? prov.model : null;
|
|
11179
|
+
const conferPinned = Boolean(MODEL_ENV_VARS2[name] && env[MODEL_ENV_VARS2[name]]);
|
|
11180
|
+
const conferSource = !prov ? "unconfigured" : conferPinned ? "preference" : "default";
|
|
11181
|
+
const superVar = SUPER_ENV_VARS2[name];
|
|
11182
|
+
const superPinned = Boolean(superVar && env[superVar]);
|
|
11183
|
+
const chain = superChainFor(name, env);
|
|
11184
|
+
rows.push({
|
|
11185
|
+
provider: name,
|
|
11186
|
+
available: prov !== void 0,
|
|
11187
|
+
active: active.has(name),
|
|
11188
|
+
confer: conferModel,
|
|
11189
|
+
confer_source: conferSource,
|
|
11190
|
+
super: superPrimary(name, env) ?? null,
|
|
11191
|
+
super_source: superPinned ? "preference" : chain.length > 0 ? "default" : "unconfigured",
|
|
11192
|
+
...chain.length > 1 ? { super_fallbacks: chain.slice(1) } : {}
|
|
11193
|
+
});
|
|
11194
|
+
}
|
|
11195
|
+
const pinned = rows.filter(
|
|
11196
|
+
(r) => r.confer_source === "preference" || r.super_source === "preference"
|
|
11197
|
+
).length;
|
|
11198
|
+
return {
|
|
11199
|
+
tool: "models",
|
|
11200
|
+
providers: rows,
|
|
11201
|
+
...onlySuper ? { super_mode: true } : {},
|
|
11202
|
+
pinned_count: pinned,
|
|
11203
|
+
// Read-only by design — say so, and say where selection actually happens,
|
|
11204
|
+
// rather than leaving someone to guess why nothing changed.
|
|
11205
|
+
how_to_change: `This is read-only. Choose models at ${PICKER_URL} \u2014 a dropdown per provider, with separate tabs for \`confer\` and \`confer super\` \u2014 then run \`crosscheck models sync\`, or restart the MCP server. In the terminal, \`crosscheck models set <provider> <model>\` pins one and \`crosscheck models fallback <provider> <model>\` greenlights a fallback (tried ONLY when the pinned model is inaccessible, never for a bad key, a rate limit, or a 500). Terminal commands edit the confer set only; picking a separate super lineup is browser-only for now.`
|
|
11206
|
+
};
|
|
11207
|
+
}
|
|
11208
|
+
|
|
11131
11209
|
// src/tools/pick.ts
|
|
11132
11210
|
init_cjs_shims();
|
|
11133
11211
|
var import_node_perf_hooks10 = require("perf_hooks");
|
|
@@ -11448,7 +11526,7 @@ function resolveProviders7(names, available, allowlist) {
|
|
|
11448
11526
|
}
|
|
11449
11527
|
return out;
|
|
11450
11528
|
}
|
|
11451
|
-
var
|
|
11529
|
+
var KNOWN_PROVIDERS8 = [
|
|
11452
11530
|
"anthropic",
|
|
11453
11531
|
"openai",
|
|
11454
11532
|
"xai",
|
|
@@ -11462,7 +11540,7 @@ function unknownProviderError6(unknownNames, available) {
|
|
|
11462
11540
|
const typos = [];
|
|
11463
11541
|
for (const n of unknownNames) {
|
|
11464
11542
|
const key = n.trim().toLowerCase();
|
|
11465
|
-
if (
|
|
11543
|
+
if (KNOWN_PROVIDERS8.includes(key)) notRegistered.push(n);
|
|
11466
11544
|
else typos.push(n);
|
|
11467
11545
|
}
|
|
11468
11546
|
return {
|
|
@@ -12618,7 +12696,7 @@ function resolveProviders8(names, available, allowlist) {
|
|
|
12618
12696
|
}
|
|
12619
12697
|
return out;
|
|
12620
12698
|
}
|
|
12621
|
-
var
|
|
12699
|
+
var KNOWN_PROVIDERS9 = [
|
|
12622
12700
|
"anthropic",
|
|
12623
12701
|
"openai",
|
|
12624
12702
|
"xai",
|
|
@@ -12632,7 +12710,7 @@ function unknownProviderError7(unknownNames, available) {
|
|
|
12632
12710
|
const typos = [];
|
|
12633
12711
|
for (const n of unknownNames) {
|
|
12634
12712
|
const key = n.trim().toLowerCase();
|
|
12635
|
-
if (
|
|
12713
|
+
if (KNOWN_PROVIDERS9.includes(key)) notRegistered.push(n);
|
|
12636
12714
|
else typos.push(n);
|
|
12637
12715
|
}
|
|
12638
12716
|
return {
|
|
@@ -12684,7 +12762,7 @@ var CHECK_INTERVAL_SECONDS = 3 * 24 * 60 * 60;
|
|
|
12684
12762
|
var DEFAULT_PACKAGE = "crosscheck-cli";
|
|
12685
12763
|
var FETCH_TIMEOUT_MS = 3e3;
|
|
12686
12764
|
function engineVersion() {
|
|
12687
|
-
return true ? "0.2.
|
|
12765
|
+
return true ? "0.2.18" : "0.0.0-dev";
|
|
12688
12766
|
}
|
|
12689
12767
|
function defaultUpdateCachePath() {
|
|
12690
12768
|
const base = process.env["CROSSCHECK_DATA_DIR"] || import_node_path13.default.join(import_node_os2.default.homedir() || import_node_os2.default.tmpdir(), ".crosscheck");
|
|
@@ -13279,7 +13357,15 @@ var HELP_CATALOG = [
|
|
|
13279
13357
|
primaryArg: "(none)",
|
|
13280
13358
|
summary: "Show configured providers, their default models, and active status.",
|
|
13281
13359
|
example: "xc list_providers",
|
|
13282
|
-
detail: "Lists every provider Crosscheck knows about, which have keys configured, each one's default model, and whether it's active in the panel."
|
|
13360
|
+
detail: "Lists every provider Crosscheck knows about, which have keys configured, each one's default model, and whether it's active in the panel. For what each provider will actually RUN on each panel, and how to change it, use `xc models`."
|
|
13361
|
+
},
|
|
13362
|
+
{
|
|
13363
|
+
name: "models",
|
|
13364
|
+
category: "Operations",
|
|
13365
|
+
primaryArg: "(none)",
|
|
13366
|
+
summary: "Where to choose which model each provider uses, per panel.",
|
|
13367
|
+
example: "xc models \xB7 xc models super:true",
|
|
13368
|
+
detail: "Every provider has a default model, and `super` has its own flagship lineup. Both are defaults you can change, per provider, per machine.\n\nEasiest in the browser: crosscheckagent.com/account/models. A dropdown per provider, with separate tabs for `confer` (the everyday panel, also used by debate/audit/plan) and `confer super` (the flagship lineup). The blank option names the engine's own default, so leaving a row alone tells you what you're getting. Save, then run `crosscheck models sync` in your terminal \u2014 or just restart the MCP server.\n\nFrom the terminal: `crosscheck models list` shows what this machine will actually use and why (env var, your preference, org policy, or default); `crosscheck models set <provider> <model>` pins one; `crosscheck models fallback <provider> <model>` greenlights a fallback, tried ONLY if the pinned model comes back inaccessible \u2014 never for a bad key, a rate limit, or a 500, since a different model wouldn't fix those.\n\nTwo things that catch people out. Leaving a provider blank in the super tab means 'inherit my confer choice', not 'reset to default'. And the terminal commands edit the confer set only \u2014 choosing a separate lineup for super is browser-only for now."
|
|
13283
13369
|
},
|
|
13284
13370
|
{
|
|
13285
13371
|
name: "recommend_panel",
|
|
@@ -13547,6 +13633,7 @@ function registerCoreTools(opts = {}) {
|
|
|
13547
13633
|
o.repoRoot
|
|
13548
13634
|
),
|
|
13549
13635
|
listProvidersTool(o.providers ?? {}, o.activeProviders ?? null, o.moderatorDefault ?? "anthropic"),
|
|
13636
|
+
modelsTool(o.providers ?? {}, o.activeProviders ?? null),
|
|
13550
13637
|
recallTool(o.storage, o.bridge),
|
|
13551
13638
|
sessionMemoryTool(o.storage, o.bridge),
|
|
13552
13639
|
scoreboardTool(o.storage, o.bridge, o.eventsPath),
|
|
@@ -13962,6 +14049,20 @@ function listProvidersTool(providers, activeProviders, moderatorDefault) {
|
|
|
13962
14049
|
})
|
|
13963
14050
|
};
|
|
13964
14051
|
}
|
|
14052
|
+
function modelsTool(providers, activeProviders) {
|
|
14053
|
+
return {
|
|
14054
|
+
name: "models",
|
|
14055
|
+
description: "Show which model each provider will use, for BOTH panels \u2014 plain confer and `super` \u2014 with where each choice came from (your preference or the engine default), plus where to change them. Read-only; selection happens in the browser or the CLI.",
|
|
14056
|
+
inputSchema: {
|
|
14057
|
+
type: "object",
|
|
14058
|
+
additionalProperties: true,
|
|
14059
|
+
properties: {
|
|
14060
|
+
super: { type: "boolean", description: "Narrow the listing to the super lineup." }
|
|
14061
|
+
}
|
|
14062
|
+
},
|
|
14063
|
+
handler: async (args) => runModels(args, { providers, activeProviders })
|
|
14064
|
+
};
|
|
14065
|
+
}
|
|
13965
14066
|
function reviewTool(providers, allowlist, bridge, storage, breakers, transcriptsDir, repoRoot) {
|
|
13966
14067
|
return {
|
|
13967
14068
|
name: "review",
|