crosscheck-mcp 0.2.26 → 0.2.27
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 +86 -33
- package/dist/browser-ext.cjs.map +1 -1
- package/dist/browser-ext.js +86 -33
- package/dist/browser-ext.js.map +1 -1
- package/dist/embed.cjs +42 -19
- package/dist/embed.cjs.map +1 -1
- package/dist/embed.js +42 -19
- package/dist/embed.js.map +1 -1
- package/dist/node-stdio.cjs +44 -21
- package/dist/node-stdio.cjs.map +1 -1
- package/dist/node-stdio.js +44 -21
- package/dist/node-stdio.js.map +1 -1
- package/dist/pricing.json +44 -14
- package/package.json +1 -1
package/dist/node-stdio.cjs
CHANGED
|
@@ -2094,7 +2094,7 @@ async function sendOpenAICompatible(args) {
|
|
|
2094
2094
|
// src/providers/registry.ts
|
|
2095
2095
|
var DEFAULT_MODELS = {
|
|
2096
2096
|
anthropic: "claude-opus-5-5",
|
|
2097
|
-
openai: "gpt-
|
|
2097
|
+
openai: "gpt-6-sol",
|
|
2098
2098
|
xai: "grok-4-latest",
|
|
2099
2099
|
mistral: "mistral-large-latest",
|
|
2100
2100
|
groq: "llama-3.3-70b-versatile",
|
|
@@ -2358,13 +2358,13 @@ Examples:
|
|
|
2358
2358
|
This convention is opt-in: a user message without the \`xc\`/\`XC\` prefix should NOT be auto-routed here. Pick tools normally based on the conversation.
|
|
2359
2359
|
|
|
2360
2360
|
Reasoning upgrade (Fable 5):
|
|
2361
|
-
- The reasoning tools (plan, solve, debate, orchestrate, audit, triangulate) can bump their lead reasoning seat to Fable 5 \u2014 Anthropic's newest thinking model \u2014 instead of the default Opus
|
|
2361
|
+
- The reasoning tools (plan, solve, debate, orchestrate, audit, triangulate) can bump their lead reasoning seat to Fable 5 \u2014 Anthropic's newest thinking model \u2014 instead of the default Opus 5.5. Only that one seat is upgraded; other panel seats stay on their normal models, so premium tokens are not wasted.
|
|
2362
2362
|
- When a tool result includes a "suggested_upgrade" block, the engine judged the task reasoning-heavy. Surface it: ask the user something like "This looks reasoning-heavy \u2014 bump the lead seat to Fable 5 (higher quality, higher cost)?" If they say yes, re-run the SAME tool with reasoning:"max" added. Do NOT upgrade silently.
|
|
2363
2363
|
- If the user explicitly asks for the best/deepest reasoning up front, pass reasoning:"max" directly. A result with reasoning_upgrade.applied = true confirms Fable 5 was used.
|
|
2364
2364
|
|
|
2365
2365
|
Super mode (confer / debate / plan / triangulate / list_providers only \u2014 internal team trial, do not mention this outside the team or write it into any docs/help text):
|
|
2366
2366
|
- When the token immediately after the tool name is \`super\` (e.g. \`xc confer super what's the best caching strategy?\`), pass \`super: true\` in that tool's args and treat everything after \`super\` as the normal primary-argument text (same slot as usual \u2014 \`question\`/\`topic\`/\`goal\`). Example: \`xc confer super what's the best caching strategy?\` \u2192 \`mcp__crosscheck__confer({ question: "what's the best caching strategy?", super: true })\`.
|
|
2367
|
-
- This swaps the panel to a fixed top-tier lineup (one flagship model per provider, restricted to providers the user actually has keys for) and triples the completion-token budget. For debate/plan/triangulate it also forces the Fable 5 +
|
|
2367
|
+
- This swaps the panel to a fixed top-tier lineup (one flagship model per provider, restricted to providers the user actually has keys for) and triples the completion-token budget. For debate/plan/triangulate it also forces the Fable 5 + OpenAI co-reasoner synthesis path automatically \u2014 no need to also pass reasoning:"max".
|
|
2368
2368
|
- A result with a "super_mode" block confirms it ran; show the panel it used.
|
|
2369
2369
|
- \`xc list_providers super\` (no text after \`super\` \u2014 list_providers takes no other args) \u2192 \`mcp__crosscheck__list_providers({ super: true })\`. Shows the top-tier lineup and which of those models are actually available, instead of the normal default-model listing.
|
|
2370
2370
|
|
|
@@ -2381,7 +2381,7 @@ var import_zod = require("zod");
|
|
|
2381
2381
|
// src/server-meta.ts
|
|
2382
2382
|
init_cjs_shims();
|
|
2383
2383
|
var SERVER_NAME = "crosscheck-agent";
|
|
2384
|
-
var SERVER_VERSION = true ? "0.2.
|
|
2384
|
+
var SERVER_VERSION = true ? "0.2.27" : "0.0.0-dev";
|
|
2385
2385
|
|
|
2386
2386
|
// src/tools/audit.ts
|
|
2387
2387
|
init_cjs_shims();
|
|
@@ -3984,13 +3984,25 @@ var import_node_perf_hooks = require("perf_hooks");
|
|
|
3984
3984
|
|
|
3985
3985
|
// src/core/co-reason.ts
|
|
3986
3986
|
init_cjs_shims();
|
|
3987
|
-
var CO_REASON_MODEL = "gpt-
|
|
3987
|
+
var CO_REASON_MODEL = "gpt-6-sol";
|
|
3988
|
+
var CO_REASON_ALTERNATE = "gpt-6-astra";
|
|
3989
|
+
var LABELS = {
|
|
3990
|
+
"gpt-6-sol": "GPT-6 Sol",
|
|
3991
|
+
"gpt-6-astra": "GPT-6 Astra",
|
|
3992
|
+
"gpt-5.6-sol": "GPT-5.6 Sol"
|
|
3993
|
+
};
|
|
3994
|
+
function coReasonLabel(model) {
|
|
3995
|
+
return LABELS[model] ?? model;
|
|
3996
|
+
}
|
|
3997
|
+
var CO_REASON_LABEL = coReasonLabel(CO_REASON_MODEL);
|
|
3988
3998
|
var CO_REASON_PROVIDER = "openai";
|
|
3989
|
-
|
|
3990
|
-
function pickCoReasoner(providers, upgradeRequested) {
|
|
3999
|
+
function pickCoReasoner(providers, upgradeRequested, openAiSeatModel) {
|
|
3991
4000
|
if (!upgradeRequested) return null;
|
|
3992
4001
|
const base = providers[CO_REASON_PROVIDER];
|
|
3993
|
-
|
|
4002
|
+
if (!base) return null;
|
|
4003
|
+
const seat = openAiSeatModel ?? base.model;
|
|
4004
|
+
const model = seat === CO_REASON_MODEL ? CO_REASON_ALTERNATE : CO_REASON_MODEL;
|
|
4005
|
+
return retargetProvider(base, model);
|
|
3994
4006
|
}
|
|
3995
4007
|
async function coReasonThenInject(opts) {
|
|
3996
4008
|
const { provider, messages, maxTokens } = opts;
|
|
@@ -4221,7 +4233,7 @@ function buildSuggestedUpgrade(toolName, assessment) {
|
|
|
4221
4233
|
model: UPGRADE_MODEL,
|
|
4222
4234
|
label: UPGRADE_LABEL,
|
|
4223
4235
|
reason: assessment.reason,
|
|
4224
|
-
how: `re-run \`${toolName}\` with reasoning:"max" (or upgrade:true) to route the lead reasoning seat to ${UPGRADE_LABEL}, and \u2014 when an OpenAI key is configured \u2014 add
|
|
4236
|
+
how: `re-run \`${toolName}\` with reasoning:"max" (or upgrade:true) to route the lead reasoning seat to ${UPGRADE_LABEL}, and \u2014 when an OpenAI key is configured \u2014 add an OpenAI second-opinion pass that ${UPGRADE_LABEL} weighs before finalizing (the result names which model ran). Other panel seats stay on their normal models.`
|
|
4225
4237
|
};
|
|
4226
4238
|
}
|
|
4227
4239
|
|
|
@@ -4524,8 +4536,9 @@ ${rubricText}`;
|
|
|
4524
4536
|
const upgradeRequested = isUpgradeRequested(args);
|
|
4525
4537
|
const upgraded = upgradeRequested && opts.providers["anthropic"] !== void 0;
|
|
4526
4538
|
const auditorForCall = upgraded ? retargetProvider(opts.providers["anthropic"], UPGRADE_MODEL) : auditor;
|
|
4539
|
+
const coProvider = pickCoReasoner(opts.providers, upgradeRequested);
|
|
4527
4540
|
const coReason = await coReasonThenInject({
|
|
4528
|
-
provider:
|
|
4541
|
+
provider: coProvider,
|
|
4529
4542
|
messages: msgs,
|
|
4530
4543
|
maxTokens: 2048,
|
|
4531
4544
|
purpose: "audit-coreason"
|
|
@@ -4609,7 +4622,7 @@ ${rubricText}`;
|
|
|
4609
4622
|
model: UPGRADE_MODEL,
|
|
4610
4623
|
label: UPGRADE_LABEL,
|
|
4611
4624
|
seat: "auditor",
|
|
4612
|
-
...coReasoned ? { co_reasoner: { model:
|
|
4625
|
+
...coReasoned ? { co_reasoner: { model: coProvider.model, label: coReasonLabel(coProvider.model) } } : {}
|
|
4613
4626
|
};
|
|
4614
4627
|
} else if (upgradeRequested) {
|
|
4615
4628
|
result["reasoning_upgrade"] = {
|
|
@@ -5348,8 +5361,12 @@ var SUPER_MODELS = {
|
|
|
5348
5361
|
// Fable 5.1 verified present on the account; 5 as the fallback for accounts
|
|
5349
5362
|
// that haven't been granted 5.1 yet.
|
|
5350
5363
|
anthropic: ["claude-fable-5-1", UPGRADE_MODEL],
|
|
5351
|
-
// Astra
|
|
5352
|
-
|
|
5364
|
+
// Astra is live (verified against the account's model list 2026-09-23).
|
|
5365
|
+
// The fallback is named explicitly rather than reusing CO_REASON_MODEL:
|
|
5366
|
+
// that constant means "OpenAI's top reasoning model" for the max-reasoning
|
|
5367
|
+
// co-reasoner, which is a different question from "what should super fall
|
|
5368
|
+
// back to". Sharing the symbol silently coupled two unrelated decisions.
|
|
5369
|
+
openai: ["gpt-6-astra", "gpt-6-sol"],
|
|
5353
5370
|
// Explicitly left as-is per product decision. Note grok-4-latest is not in
|
|
5354
5371
|
// xAI's published model list, but it resolves in practice — real panel calls
|
|
5355
5372
|
// on it succeeded as recently as 2026-08-30 — so it is an unlisted alias
|
|
@@ -8338,8 +8355,9 @@ ${recombineSys}` : recombineSys },
|
|
|
8338
8355
|
provider: synthProvider.name
|
|
8339
8356
|
} }
|
|
8340
8357
|
);
|
|
8358
|
+
const coProvider = pickCoReasoner(opts.providers, upgradeRequested);
|
|
8341
8359
|
const coReason = await coReasonThenInject({
|
|
8342
|
-
provider:
|
|
8360
|
+
provider: coProvider,
|
|
8343
8361
|
messages: recMsgs,
|
|
8344
8362
|
maxTokens,
|
|
8345
8363
|
purpose: "orchestrate-coreason"
|
|
@@ -8398,7 +8416,7 @@ ${recombineSys}` : recombineSys },
|
|
|
8398
8416
|
model: UPGRADE_MODEL,
|
|
8399
8417
|
label: UPGRADE_LABEL,
|
|
8400
8418
|
seat: "recombine/synthesis",
|
|
8401
|
-
...coReasoned ? { co_reasoner: { model:
|
|
8419
|
+
...coReasoned ? { co_reasoner: { model: coProvider.model, label: coReasonLabel(coProvider.model) } } : {}
|
|
8402
8420
|
};
|
|
8403
8421
|
} else if (upgradeRequested) {
|
|
8404
8422
|
result["reasoning_upgrade"] = {
|
|
@@ -9747,8 +9765,9 @@ CRITIQUES:
|
|
|
9747
9765
|
${critiqueBlock}`
|
|
9748
9766
|
}
|
|
9749
9767
|
];
|
|
9768
|
+
const coProvider = pickCoReasoner(opts.providers, upgradeRequested);
|
|
9750
9769
|
const coReason = await coReasonThenInject({
|
|
9751
|
-
provider:
|
|
9770
|
+
provider: coProvider,
|
|
9752
9771
|
messages: synthMessages,
|
|
9753
9772
|
maxTokens,
|
|
9754
9773
|
purpose: "coordinate-coreason"
|
|
@@ -9812,7 +9831,7 @@ ${critiqueBlock}`
|
|
|
9812
9831
|
model: superRequested ? superPrimary("anthropic") ?? UPGRADE_MODEL : UPGRADE_MODEL,
|
|
9813
9832
|
label: UPGRADE_LABEL,
|
|
9814
9833
|
seat: "synthesizer",
|
|
9815
|
-
...coReasonAns ? { co_reasoner: { model:
|
|
9834
|
+
...coReasonAns ? { co_reasoner: { model: coProvider.model, label: coReasonLabel(coProvider.model) } } : {}
|
|
9816
9835
|
};
|
|
9817
9836
|
} else if (upgradeRequested) {
|
|
9818
9837
|
result["reasoning_upgrade"] = {
|
|
@@ -10539,6 +10558,7 @@ ${prior.body}` });
|
|
|
10539
10558
|
let synthesisErrors = [];
|
|
10540
10559
|
let personaMeta = null;
|
|
10541
10560
|
let coReasoned = false;
|
|
10561
|
+
let coReasonerModel = null;
|
|
10542
10562
|
if (moderator) {
|
|
10543
10563
|
const synthProvider = superRequested && opts.providers["anthropic"] ? retargetForSuper(opts.providers["anthropic"]) : upgraded ? retargetProvider(opts.providers["anthropic"], UPGRADE_MODEL) : moderator;
|
|
10544
10564
|
const condensed = buildModeratorTranscript(transcript);
|
|
@@ -10566,13 +10586,16 @@ TRANSCRIPT:
|
|
|
10566
10586
|
${condensed}`
|
|
10567
10587
|
}
|
|
10568
10588
|
];
|
|
10589
|
+
const openAiSeat = selected.find((p) => p.name === "openai")?.model;
|
|
10590
|
+
const coProvider = pickCoReasoner(opts.providers, upgradeRequested, openAiSeat);
|
|
10569
10591
|
const coReason = await coReasonThenInject({
|
|
10570
|
-
provider:
|
|
10592
|
+
provider: coProvider,
|
|
10571
10593
|
messages: synthMessages,
|
|
10572
10594
|
maxTokens,
|
|
10573
10595
|
purpose: "debate-coreason"
|
|
10574
10596
|
});
|
|
10575
10597
|
synthMessages = coReason.messages;
|
|
10598
|
+
coReasonerModel = coProvider?.model ?? null;
|
|
10576
10599
|
if (coReason.answer) extraAnswers.push(coReason.answer);
|
|
10577
10600
|
coReasoned = coReason.answer !== null;
|
|
10578
10601
|
if (structuredOpt) {
|
|
@@ -10631,7 +10654,7 @@ ${condensed}`
|
|
|
10631
10654
|
model: superRequested ? superPrimary("anthropic") ?? UPGRADE_MODEL : UPGRADE_MODEL,
|
|
10632
10655
|
label: UPGRADE_LABEL,
|
|
10633
10656
|
seat: "moderator synthesis",
|
|
10634
|
-
...coReasoned ? { co_reasoner: { model:
|
|
10657
|
+
...coReasoned && coReasonerModel ? { co_reasoner: { model: coReasonerModel, label: coReasonLabel(coReasonerModel) } } : {}
|
|
10635
10658
|
};
|
|
10636
10659
|
} else if (upgradeRequested) {
|
|
10637
10660
|
result["reasoning_upgrade"] = {
|
|
@@ -12667,7 +12690,7 @@ Re-emit the FULL solution. No commentary.`
|
|
|
12667
12690
|
model: UPGRADE_MODEL,
|
|
12668
12691
|
label: UPGRADE_LABEL,
|
|
12669
12692
|
seat: "solver",
|
|
12670
|
-
...coReasoned ? { co_reasoner: { model:
|
|
12693
|
+
...coReasoned ? { co_reasoner: { model: coProvider.model, label: coReasonLabel(coProvider.model) } } : {}
|
|
12671
12694
|
};
|
|
12672
12695
|
} else if (upgradeRequested) {
|
|
12673
12696
|
result["reasoning_upgrade"] = {
|
|
@@ -12958,7 +12981,7 @@ var CHECK_INTERVAL_SECONDS = 3 * 24 * 60 * 60;
|
|
|
12958
12981
|
var DEFAULT_PACKAGE = "crosscheck-cli";
|
|
12959
12982
|
var FETCH_TIMEOUT_MS = 3e3;
|
|
12960
12983
|
function engineVersion() {
|
|
12961
|
-
return true ? "0.2.
|
|
12984
|
+
return true ? "0.2.27" : "0.0.0-dev";
|
|
12962
12985
|
}
|
|
12963
12986
|
function defaultUpdateCachePath() {
|
|
12964
12987
|
const base = process.env["CROSSCHECK_DATA_DIR"] || import_node_path13.default.join(import_node_os2.default.homedir() || import_node_os2.default.tmpdir(), ".crosscheck");
|