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.js
CHANGED
|
@@ -2070,7 +2070,7 @@ async function sendOpenAICompatible(args) {
|
|
|
2070
2070
|
// src/providers/registry.ts
|
|
2071
2071
|
var DEFAULT_MODELS = {
|
|
2072
2072
|
anthropic: "claude-opus-5-5",
|
|
2073
|
-
openai: "gpt-
|
|
2073
|
+
openai: "gpt-6-sol",
|
|
2074
2074
|
xai: "grok-4-latest",
|
|
2075
2075
|
mistral: "mistral-large-latest",
|
|
2076
2076
|
groq: "llama-3.3-70b-versatile",
|
|
@@ -2337,13 +2337,13 @@ Examples:
|
|
|
2337
2337
|
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.
|
|
2338
2338
|
|
|
2339
2339
|
Reasoning upgrade (Fable 5):
|
|
2340
|
-
- 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
|
|
2340
|
+
- 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.
|
|
2341
2341
|
- 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.
|
|
2342
2342
|
- 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.
|
|
2343
2343
|
|
|
2344
2344
|
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):
|
|
2345
2345
|
- 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 })\`.
|
|
2346
|
-
- 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 +
|
|
2346
|
+
- 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".
|
|
2347
2347
|
- A result with a "super_mode" block confirms it ran; show the panel it used.
|
|
2348
2348
|
- \`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.
|
|
2349
2349
|
|
|
@@ -2360,7 +2360,7 @@ import { z } from "zod";
|
|
|
2360
2360
|
// src/server-meta.ts
|
|
2361
2361
|
init_esm_shims();
|
|
2362
2362
|
var SERVER_NAME = "crosscheck-agent";
|
|
2363
|
-
var SERVER_VERSION = true ? "0.2.
|
|
2363
|
+
var SERVER_VERSION = true ? "0.2.27" : "0.0.0-dev";
|
|
2364
2364
|
|
|
2365
2365
|
// src/tools/audit.ts
|
|
2366
2366
|
init_esm_shims();
|
|
@@ -3963,13 +3963,25 @@ import { performance as performance2 } from "perf_hooks";
|
|
|
3963
3963
|
|
|
3964
3964
|
// src/core/co-reason.ts
|
|
3965
3965
|
init_esm_shims();
|
|
3966
|
-
var CO_REASON_MODEL = "gpt-
|
|
3966
|
+
var CO_REASON_MODEL = "gpt-6-sol";
|
|
3967
|
+
var CO_REASON_ALTERNATE = "gpt-6-astra";
|
|
3968
|
+
var LABELS = {
|
|
3969
|
+
"gpt-6-sol": "GPT-6 Sol",
|
|
3970
|
+
"gpt-6-astra": "GPT-6 Astra",
|
|
3971
|
+
"gpt-5.6-sol": "GPT-5.6 Sol"
|
|
3972
|
+
};
|
|
3973
|
+
function coReasonLabel(model) {
|
|
3974
|
+
return LABELS[model] ?? model;
|
|
3975
|
+
}
|
|
3976
|
+
var CO_REASON_LABEL = coReasonLabel(CO_REASON_MODEL);
|
|
3967
3977
|
var CO_REASON_PROVIDER = "openai";
|
|
3968
|
-
|
|
3969
|
-
function pickCoReasoner(providers, upgradeRequested) {
|
|
3978
|
+
function pickCoReasoner(providers, upgradeRequested, openAiSeatModel) {
|
|
3970
3979
|
if (!upgradeRequested) return null;
|
|
3971
3980
|
const base = providers[CO_REASON_PROVIDER];
|
|
3972
|
-
|
|
3981
|
+
if (!base) return null;
|
|
3982
|
+
const seat = openAiSeatModel ?? base.model;
|
|
3983
|
+
const model = seat === CO_REASON_MODEL ? CO_REASON_ALTERNATE : CO_REASON_MODEL;
|
|
3984
|
+
return retargetProvider(base, model);
|
|
3973
3985
|
}
|
|
3974
3986
|
async function coReasonThenInject(opts) {
|
|
3975
3987
|
const { provider, messages, maxTokens } = opts;
|
|
@@ -4200,7 +4212,7 @@ function buildSuggestedUpgrade(toolName, assessment) {
|
|
|
4200
4212
|
model: UPGRADE_MODEL,
|
|
4201
4213
|
label: UPGRADE_LABEL,
|
|
4202
4214
|
reason: assessment.reason,
|
|
4203
|
-
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
|
|
4215
|
+
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.`
|
|
4204
4216
|
};
|
|
4205
4217
|
}
|
|
4206
4218
|
|
|
@@ -4503,8 +4515,9 @@ ${rubricText}`;
|
|
|
4503
4515
|
const upgradeRequested = isUpgradeRequested(args);
|
|
4504
4516
|
const upgraded = upgradeRequested && opts.providers["anthropic"] !== void 0;
|
|
4505
4517
|
const auditorForCall = upgraded ? retargetProvider(opts.providers["anthropic"], UPGRADE_MODEL) : auditor;
|
|
4518
|
+
const coProvider = pickCoReasoner(opts.providers, upgradeRequested);
|
|
4506
4519
|
const coReason = await coReasonThenInject({
|
|
4507
|
-
provider:
|
|
4520
|
+
provider: coProvider,
|
|
4508
4521
|
messages: msgs,
|
|
4509
4522
|
maxTokens: 2048,
|
|
4510
4523
|
purpose: "audit-coreason"
|
|
@@ -4588,7 +4601,7 @@ ${rubricText}`;
|
|
|
4588
4601
|
model: UPGRADE_MODEL,
|
|
4589
4602
|
label: UPGRADE_LABEL,
|
|
4590
4603
|
seat: "auditor",
|
|
4591
|
-
...coReasoned ? { co_reasoner: { model:
|
|
4604
|
+
...coReasoned ? { co_reasoner: { model: coProvider.model, label: coReasonLabel(coProvider.model) } } : {}
|
|
4592
4605
|
};
|
|
4593
4606
|
} else if (upgradeRequested) {
|
|
4594
4607
|
result["reasoning_upgrade"] = {
|
|
@@ -5327,8 +5340,12 @@ var SUPER_MODELS = {
|
|
|
5327
5340
|
// Fable 5.1 verified present on the account; 5 as the fallback for accounts
|
|
5328
5341
|
// that haven't been granted 5.1 yet.
|
|
5329
5342
|
anthropic: ["claude-fable-5-1", UPGRADE_MODEL],
|
|
5330
|
-
// Astra
|
|
5331
|
-
|
|
5343
|
+
// Astra is live (verified against the account's model list 2026-09-23).
|
|
5344
|
+
// The fallback is named explicitly rather than reusing CO_REASON_MODEL:
|
|
5345
|
+
// that constant means "OpenAI's top reasoning model" for the max-reasoning
|
|
5346
|
+
// co-reasoner, which is a different question from "what should super fall
|
|
5347
|
+
// back to". Sharing the symbol silently coupled two unrelated decisions.
|
|
5348
|
+
openai: ["gpt-6-astra", "gpt-6-sol"],
|
|
5332
5349
|
// Explicitly left as-is per product decision. Note grok-4-latest is not in
|
|
5333
5350
|
// xAI's published model list, but it resolves in practice — real panel calls
|
|
5334
5351
|
// on it succeeded as recently as 2026-08-30 — so it is an unlisted alias
|
|
@@ -8334,8 +8351,9 @@ ${recombineSys}` : recombineSys },
|
|
|
8334
8351
|
provider: synthProvider.name
|
|
8335
8352
|
} }
|
|
8336
8353
|
);
|
|
8354
|
+
const coProvider = pickCoReasoner(opts.providers, upgradeRequested);
|
|
8337
8355
|
const coReason = await coReasonThenInject({
|
|
8338
|
-
provider:
|
|
8356
|
+
provider: coProvider,
|
|
8339
8357
|
messages: recMsgs,
|
|
8340
8358
|
maxTokens,
|
|
8341
8359
|
purpose: "orchestrate-coreason"
|
|
@@ -8394,7 +8412,7 @@ ${recombineSys}` : recombineSys },
|
|
|
8394
8412
|
model: UPGRADE_MODEL,
|
|
8395
8413
|
label: UPGRADE_LABEL,
|
|
8396
8414
|
seat: "recombine/synthesis",
|
|
8397
|
-
...coReasoned ? { co_reasoner: { model:
|
|
8415
|
+
...coReasoned ? { co_reasoner: { model: coProvider.model, label: coReasonLabel(coProvider.model) } } : {}
|
|
8398
8416
|
};
|
|
8399
8417
|
} else if (upgradeRequested) {
|
|
8400
8418
|
result["reasoning_upgrade"] = {
|
|
@@ -9743,8 +9761,9 @@ CRITIQUES:
|
|
|
9743
9761
|
${critiqueBlock}`
|
|
9744
9762
|
}
|
|
9745
9763
|
];
|
|
9764
|
+
const coProvider = pickCoReasoner(opts.providers, upgradeRequested);
|
|
9746
9765
|
const coReason = await coReasonThenInject({
|
|
9747
|
-
provider:
|
|
9766
|
+
provider: coProvider,
|
|
9748
9767
|
messages: synthMessages,
|
|
9749
9768
|
maxTokens,
|
|
9750
9769
|
purpose: "coordinate-coreason"
|
|
@@ -9808,7 +9827,7 @@ ${critiqueBlock}`
|
|
|
9808
9827
|
model: superRequested ? superPrimary("anthropic") ?? UPGRADE_MODEL : UPGRADE_MODEL,
|
|
9809
9828
|
label: UPGRADE_LABEL,
|
|
9810
9829
|
seat: "synthesizer",
|
|
9811
|
-
...coReasonAns ? { co_reasoner: { model:
|
|
9830
|
+
...coReasonAns ? { co_reasoner: { model: coProvider.model, label: coReasonLabel(coProvider.model) } } : {}
|
|
9812
9831
|
};
|
|
9813
9832
|
} else if (upgradeRequested) {
|
|
9814
9833
|
result["reasoning_upgrade"] = {
|
|
@@ -10535,6 +10554,7 @@ ${prior.body}` });
|
|
|
10535
10554
|
let synthesisErrors = [];
|
|
10536
10555
|
let personaMeta = null;
|
|
10537
10556
|
let coReasoned = false;
|
|
10557
|
+
let coReasonerModel = null;
|
|
10538
10558
|
if (moderator) {
|
|
10539
10559
|
const synthProvider = superRequested && opts.providers["anthropic"] ? retargetForSuper(opts.providers["anthropic"]) : upgraded ? retargetProvider(opts.providers["anthropic"], UPGRADE_MODEL) : moderator;
|
|
10540
10560
|
const condensed = buildModeratorTranscript(transcript);
|
|
@@ -10562,13 +10582,16 @@ TRANSCRIPT:
|
|
|
10562
10582
|
${condensed}`
|
|
10563
10583
|
}
|
|
10564
10584
|
];
|
|
10585
|
+
const openAiSeat = selected.find((p) => p.name === "openai")?.model;
|
|
10586
|
+
const coProvider = pickCoReasoner(opts.providers, upgradeRequested, openAiSeat);
|
|
10565
10587
|
const coReason = await coReasonThenInject({
|
|
10566
|
-
provider:
|
|
10588
|
+
provider: coProvider,
|
|
10567
10589
|
messages: synthMessages,
|
|
10568
10590
|
maxTokens,
|
|
10569
10591
|
purpose: "debate-coreason"
|
|
10570
10592
|
});
|
|
10571
10593
|
synthMessages = coReason.messages;
|
|
10594
|
+
coReasonerModel = coProvider?.model ?? null;
|
|
10572
10595
|
if (coReason.answer) extraAnswers.push(coReason.answer);
|
|
10573
10596
|
coReasoned = coReason.answer !== null;
|
|
10574
10597
|
if (structuredOpt) {
|
|
@@ -10627,7 +10650,7 @@ ${condensed}`
|
|
|
10627
10650
|
model: superRequested ? superPrimary("anthropic") ?? UPGRADE_MODEL : UPGRADE_MODEL,
|
|
10628
10651
|
label: UPGRADE_LABEL,
|
|
10629
10652
|
seat: "moderator synthesis",
|
|
10630
|
-
...coReasoned ? { co_reasoner: { model:
|
|
10653
|
+
...coReasoned && coReasonerModel ? { co_reasoner: { model: coReasonerModel, label: coReasonLabel(coReasonerModel) } } : {}
|
|
10631
10654
|
};
|
|
10632
10655
|
} else if (upgradeRequested) {
|
|
10633
10656
|
result["reasoning_upgrade"] = {
|
|
@@ -12663,7 +12686,7 @@ Re-emit the FULL solution. No commentary.`
|
|
|
12663
12686
|
model: UPGRADE_MODEL,
|
|
12664
12687
|
label: UPGRADE_LABEL,
|
|
12665
12688
|
seat: "solver",
|
|
12666
|
-
...coReasoned ? { co_reasoner: { model:
|
|
12689
|
+
...coReasoned ? { co_reasoner: { model: coProvider.model, label: coReasonLabel(coProvider.model) } } : {}
|
|
12667
12690
|
};
|
|
12668
12691
|
} else if (upgradeRequested) {
|
|
12669
12692
|
result["reasoning_upgrade"] = {
|
|
@@ -12954,7 +12977,7 @@ var CHECK_INTERVAL_SECONDS = 3 * 24 * 60 * 60;
|
|
|
12954
12977
|
var DEFAULT_PACKAGE = "crosscheck-cli";
|
|
12955
12978
|
var FETCH_TIMEOUT_MS = 3e3;
|
|
12956
12979
|
function engineVersion() {
|
|
12957
|
-
return true ? "0.2.
|
|
12980
|
+
return true ? "0.2.27" : "0.0.0-dev";
|
|
12958
12981
|
}
|
|
12959
12982
|
function defaultUpdateCachePath() {
|
|
12960
12983
|
const base = process.env["CROSSCHECK_DATA_DIR"] || path10.join(os.homedir() || os.tmpdir(), ".crosscheck");
|