crosscheck-mcp 0.2.6 → 0.2.8
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 +126 -26
- package/dist/browser-ext.cjs.map +1 -1
- package/dist/browser-ext.js +126 -26
- package/dist/browser-ext.js.map +1 -1
- package/dist/node-stdio.cjs +133 -26
- package/dist/node-stdio.cjs.map +1 -1
- package/dist/node-stdio.js +133 -26
- package/dist/node-stdio.js.map +1 -1
- package/package.json +1 -1
package/dist/node-stdio.cjs
CHANGED
|
@@ -2161,6 +2161,12 @@ Reasoning upgrade (Fable 5):
|
|
|
2161
2161
|
- 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.
|
|
2162
2162
|
- 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.
|
|
2163
2163
|
|
|
2164
|
+
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):
|
|
2165
|
+
- 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 })\`.
|
|
2166
|
+
- 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 + GPT-5.6 co-reasoner synthesis path automatically \u2014 no need to also pass reasoning:"max".
|
|
2167
|
+
- A result with a "super_mode" block confirms it ran; show the panel it used.
|
|
2168
|
+
- \`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.
|
|
2169
|
+
|
|
2164
2170
|
Spend visibility:
|
|
2165
2171
|
- Every reasoning-tool result carries a "run_summary" whose pre-rendered "text" block already includes a "spend by model (this call)" breakdown. Show that block \u2014 do not bury the cost.
|
|
2166
2172
|
- "run_summary" also carries "session_by_model" + "session_cost_usd" (per-model spend for the whole session). At the END of a multi-turn task, present the session spend per model plus the aggregate total, so the user knows what the task cost without scrolling back.
|
|
@@ -2174,7 +2180,7 @@ var import_zod = require("zod");
|
|
|
2174
2180
|
// src/server-meta.ts
|
|
2175
2181
|
init_cjs_shims();
|
|
2176
2182
|
var SERVER_NAME = "crosscheck-agent";
|
|
2177
|
-
var SERVER_VERSION = true ? "0.2.
|
|
2183
|
+
var SERVER_VERSION = true ? "0.2.8" : "0.0.0-dev";
|
|
2178
2184
|
|
|
2179
2185
|
// src/tools/audit.ts
|
|
2180
2186
|
init_cjs_shims();
|
|
@@ -5053,6 +5059,34 @@ async function pickAutoPanel(storage, purpose, n, providers, allowlist) {
|
|
|
5053
5059
|
return { providers: ranked.slice(0, Math.max(1, n)), coldStart: true };
|
|
5054
5060
|
}
|
|
5055
5061
|
|
|
5062
|
+
// src/core/super-mode.ts
|
|
5063
|
+
init_cjs_shims();
|
|
5064
|
+
var SUPER_MODELS = {
|
|
5065
|
+
anthropic: UPGRADE_MODEL,
|
|
5066
|
+
// "claude-fable-5"
|
|
5067
|
+
openai: CO_REASON_MODEL,
|
|
5068
|
+
// "gpt-5.6"
|
|
5069
|
+
xai: DEFAULT_MODELS["xai"],
|
|
5070
|
+
// already the default — no-op retarget
|
|
5071
|
+
gemini: DEFAULT_MODELS["gemini"],
|
|
5072
|
+
// already the default — no-op retarget
|
|
5073
|
+
kimi: DEFAULT_MODELS["kimi"]
|
|
5074
|
+
// already the default — no-op retarget
|
|
5075
|
+
};
|
|
5076
|
+
var SUPER_PROVIDER_NAMES = Object.keys(SUPER_MODELS);
|
|
5077
|
+
function isSuperRequested(args) {
|
|
5078
|
+
return args["super"] === true;
|
|
5079
|
+
}
|
|
5080
|
+
function retargetForSuper(p) {
|
|
5081
|
+
const model = SUPER_MODELS[p.name];
|
|
5082
|
+
return model ? retargetProvider(p, model) : p;
|
|
5083
|
+
}
|
|
5084
|
+
var SUPER_BUDGET_MULTIPLIER = 3;
|
|
5085
|
+
var SUPER_BUDGET_CEILING = 16e3;
|
|
5086
|
+
function superBudget(base) {
|
|
5087
|
+
return Math.min(base * SUPER_BUDGET_MULTIPLIER, SUPER_BUDGET_CEILING);
|
|
5088
|
+
}
|
|
5089
|
+
|
|
5056
5090
|
// src/core/session-memory.ts
|
|
5057
5091
|
init_cjs_shims();
|
|
5058
5092
|
var SESSION_MEMORY_DEFAULT_LIMIT = 50;
|
|
@@ -5643,11 +5677,12 @@ async function runConfer(args, opts) {
|
|
|
5643
5677
|
const question = typeof args["question"] === "string" ? args["question"] : String(args["question"] ?? "");
|
|
5644
5678
|
const context = typeof args["context"] === "string" ? args["context"] : "";
|
|
5645
5679
|
const autoPanel = Boolean(args["auto_panel"]);
|
|
5680
|
+
const superRequested = isSuperRequested(args);
|
|
5646
5681
|
const callerProvidersRaw = args["providers"];
|
|
5647
5682
|
const callerSuppliedProviders = Array.isArray(callerProvidersRaw) && callerProvidersRaw.length > 0;
|
|
5648
5683
|
let resolvedProviders = callerProvidersRaw;
|
|
5649
5684
|
let autoPanelMeta = null;
|
|
5650
|
-
if (autoPanel && !callerSuppliedProviders && opts.storage) {
|
|
5685
|
+
if (autoPanel && !callerSuppliedProviders && !superRequested && opts.storage) {
|
|
5651
5686
|
const autoNRaw = Number(args["auto_panel_n"]);
|
|
5652
5687
|
const autoN = Number.isFinite(autoNRaw) && autoNRaw > 0 ? Math.trunc(autoNRaw) : AUTO_PANEL_DEFAULT_N;
|
|
5653
5688
|
const picked = await pickAutoPanel(
|
|
@@ -5667,6 +5702,9 @@ async function runConfer(args, opts) {
|
|
|
5667
5702
|
};
|
|
5668
5703
|
}
|
|
5669
5704
|
}
|
|
5705
|
+
if (superRequested && !callerSuppliedProviders) {
|
|
5706
|
+
resolvedProviders = SUPER_PROVIDER_NAMES;
|
|
5707
|
+
}
|
|
5670
5708
|
let { selected, unknown: unknownNames, blocked } = resolveProviders(
|
|
5671
5709
|
resolvedProviders,
|
|
5672
5710
|
opts.providers,
|
|
@@ -5684,8 +5722,11 @@ async function runConfer(args, opts) {
|
|
|
5684
5722
|
}
|
|
5685
5723
|
return { tool: "confer", error: "no active providers have API keys in .env" };
|
|
5686
5724
|
}
|
|
5725
|
+
if (superRequested) {
|
|
5726
|
+
selected = selected.map(retargetForSuper);
|
|
5727
|
+
}
|
|
5687
5728
|
let cheapModePanelMeta = null;
|
|
5688
|
-
if (opts.ctx?.cheap_mode === true && !callerSuppliedProviders && selected.length > 1) {
|
|
5729
|
+
if (opts.ctx?.cheap_mode === true && !callerSuppliedProviders && !superRequested && selected.length > 1) {
|
|
5689
5730
|
if (!opts.pricing) {
|
|
5690
5731
|
cheapModePanelMeta = {
|
|
5691
5732
|
before: selected.length,
|
|
@@ -5762,7 +5803,7 @@ ${ctxBody}` });
|
|
|
5762
5803
|
if (injectMem && opts.storage && sessionId) {
|
|
5763
5804
|
await injectSessionMemoryInline(messages, opts.storage, sessionId);
|
|
5764
5805
|
}
|
|
5765
|
-
const maxTokens = opts.maxTokens ?? 4096;
|
|
5806
|
+
const maxTokens = superRequested ? superBudget(opts.maxTokens ?? 4096) : opts.maxTokens ?? 4096;
|
|
5766
5807
|
const earlyStop = Boolean(args["early_stop"]);
|
|
5767
5808
|
const earlyStopThresholdRaw = Number(args["early_stop_threshold"]);
|
|
5768
5809
|
const earlyStopThreshold = Number.isFinite(earlyStopThresholdRaw) ? earlyStopThresholdRaw : 0.7;
|
|
@@ -5883,6 +5924,13 @@ ${ctxBody}` });
|
|
|
5883
5924
|
}
|
|
5884
5925
|
if (unknownNames.length > 0) result["skipped_unknown_providers"] = unknownNames;
|
|
5885
5926
|
if (blocked.length > 0) result["blocked_by_allowlist"] = blocked;
|
|
5927
|
+
if (superRequested) {
|
|
5928
|
+
result["super_mode"] = {
|
|
5929
|
+
applied: true,
|
|
5930
|
+
panel: selected.map((p) => ({ provider: p.name, model: p.model })),
|
|
5931
|
+
max_tokens: maxTokens
|
|
5932
|
+
};
|
|
5933
|
+
}
|
|
5886
5934
|
const allCallEnvelopes = [
|
|
5887
5935
|
...sanitized,
|
|
5888
5936
|
...extraAnswers.map((a) => a)
|
|
@@ -9146,6 +9194,7 @@ var ROLE_TURN_SCHEMA = {
|
|
|
9146
9194
|
async function runCoordinate(args, opts) {
|
|
9147
9195
|
const callStartedWall = import_node_perf_hooks7.performance.now();
|
|
9148
9196
|
const callStartedCpu = process.cpuUsage();
|
|
9197
|
+
const superRequested = isSuperRequested(args);
|
|
9149
9198
|
const requestedWorkerTools = Array.isArray(args["worker_tools"]) ? args["worker_tools"].filter(
|
|
9150
9199
|
(t) => typeof t === "string"
|
|
9151
9200
|
) : [];
|
|
@@ -9161,6 +9210,13 @@ async function runCoordinate(args, opts) {
|
|
|
9161
9210
|
const workerToolsNeedsBridge = acceptedWorkerTools.length > 0 && !opts.innerCallers;
|
|
9162
9211
|
const needsBridge = DEFERRED_OPTS3.some((k) => Boolean(args[k])) || workerToolsNeedsBridge;
|
|
9163
9212
|
if (needsBridge) {
|
|
9213
|
+
if (superRequested) {
|
|
9214
|
+
return errorEnvelope7(
|
|
9215
|
+
"COORDINATE_SUPER_NOT_NATIVE",
|
|
9216
|
+
"super mode requested but worker_tools needs the Python bridge",
|
|
9217
|
+
"worker_tools without innerCallers wired defers to the Python bridge, which doesn't support super mode. Drop worker_tools, or wire innerCallers, to use super."
|
|
9218
|
+
);
|
|
9219
|
+
}
|
|
9164
9220
|
if (opts.bridge && opts.bridge.toolNames.has("coordinate")) {
|
|
9165
9221
|
return await deferCoordinate(args, opts.bridge);
|
|
9166
9222
|
}
|
|
@@ -9174,8 +9230,11 @@ async function runCoordinate(args, opts) {
|
|
|
9174
9230
|
const canary = untrusted ? mintCanary() : null;
|
|
9175
9231
|
const topic = typeof args["topic"] === "string" ? args["topic"] : String(args["topic"] ?? "");
|
|
9176
9232
|
const context = typeof args["context"] === "string" ? args["context"] : "";
|
|
9233
|
+
const callerProvidersRaw = args["providers"];
|
|
9234
|
+
const callerSuppliedProviders = Array.isArray(callerProvidersRaw) && callerProvidersRaw.length > 0;
|
|
9235
|
+
const resolvedProviders = superRequested && !callerSuppliedProviders ? SUPER_PROVIDER_NAMES : callerProvidersRaw;
|
|
9177
9236
|
const { selected, unknown: unknownNames, blocked } = resolveProviders4(
|
|
9178
|
-
|
|
9237
|
+
resolvedProviders,
|
|
9179
9238
|
opts.providers,
|
|
9180
9239
|
opts.allowlist ?? null
|
|
9181
9240
|
);
|
|
@@ -9202,9 +9261,10 @@ async function runCoordinate(args, opts) {
|
|
|
9202
9261
|
const synthName = typeof args["synthesizer"] === "string" && args["synthesizer"] ? args["synthesizer"] : typeof args["moderator"] === "string" && args["moderator"] ? args["moderator"] : opts.moderator ?? "anthropic";
|
|
9203
9262
|
const proposer = opts.providers[proposerName.toLowerCase()] ?? selected[0];
|
|
9204
9263
|
const synth = opts.providers[synthName.toLowerCase()] ?? proposer;
|
|
9205
|
-
const
|
|
9264
|
+
const proposerForCall = superRequested ? retargetForSuper(proposer) : proposer;
|
|
9265
|
+
const upgradeRequested = isUpgradeRequested(args) || superRequested;
|
|
9206
9266
|
const upgraded = upgradeRequested && opts.providers["anthropic"] !== void 0;
|
|
9207
|
-
const synthForCall = upgraded ? retargetProvider(opts.providers["anthropic"], UPGRADE_MODEL) : synth;
|
|
9267
|
+
const synthForCall = upgraded ? retargetProvider(opts.providers["anthropic"], UPGRADE_MODEL) : superRequested ? retargetForSuper(synth) : synth;
|
|
9208
9268
|
let critics = [];
|
|
9209
9269
|
if (Array.isArray(args["critics"])) {
|
|
9210
9270
|
for (const n of args["critics"]) {
|
|
@@ -9227,7 +9287,10 @@ async function runCoordinate(args, opts) {
|
|
|
9227
9287
|
available_now: Object.keys(opts.providers).sort()
|
|
9228
9288
|
};
|
|
9229
9289
|
}
|
|
9230
|
-
|
|
9290
|
+
if (superRequested) {
|
|
9291
|
+
critics = critics.map(retargetForSuper);
|
|
9292
|
+
}
|
|
9293
|
+
const maxTokens = superRequested ? superBudget(opts.maxTokens ?? 4096) : opts.maxTokens ?? 4096;
|
|
9231
9294
|
let topicBlock = `TOPIC: ${topic}`;
|
|
9232
9295
|
if (context) {
|
|
9233
9296
|
const ctxBlock = untrusted ? wrapUntrusted(context, canary) : context;
|
|
@@ -9305,7 +9368,7 @@ ${UNTRUSTED_SYSTEM_NOTE}`;
|
|
|
9305
9368
|
{ role: "system", content: propSystem },
|
|
9306
9369
|
{ role: "user", content: topicBlock }
|
|
9307
9370
|
];
|
|
9308
|
-
const propResult = await runRoleTurn(
|
|
9371
|
+
const propResult = await runRoleTurn(proposerForCall, propMessages, ROLE_TURN_SCHEMA);
|
|
9309
9372
|
const proposalObj = propResult.obj;
|
|
9310
9373
|
const proposalAns = propResult.answer;
|
|
9311
9374
|
const proposalRender = formatRoleTurn(
|
|
@@ -9429,6 +9492,17 @@ ${critiqueBlock}`
|
|
|
9429
9492
|
result["suggested_upgrade"] = buildSuggestedUpgrade("coordinate", assessment);
|
|
9430
9493
|
}
|
|
9431
9494
|
}
|
|
9495
|
+
if (superRequested) {
|
|
9496
|
+
result["super_mode"] = {
|
|
9497
|
+
applied: true,
|
|
9498
|
+
panel: [
|
|
9499
|
+
{ provider: proposerForCall.name, model: proposerForCall.model },
|
|
9500
|
+
...critics.map((p) => ({ provider: p.name, model: p.model })),
|
|
9501
|
+
{ provider: synthForCall.name, model: synthForCall.model }
|
|
9502
|
+
],
|
|
9503
|
+
max_tokens: maxTokens
|
|
9504
|
+
};
|
|
9505
|
+
}
|
|
9432
9506
|
const allCallEnvelopes = [
|
|
9433
9507
|
scannedProposal,
|
|
9434
9508
|
...scannedCritiques,
|
|
@@ -9841,6 +9915,7 @@ var DEFERRED_OPTS4 = [
|
|
|
9841
9915
|
async function runDebate(args, opts) {
|
|
9842
9916
|
const callStartedWall = import_node_perf_hooks9.performance.now();
|
|
9843
9917
|
const callStartedCpu = process.cpuUsage();
|
|
9918
|
+
const superRequested = isSuperRequested(args);
|
|
9844
9919
|
const extraAnswers = [];
|
|
9845
9920
|
const requestedWorkerTools = Array.isArray(args["worker_tools"]) ? args["worker_tools"].filter(
|
|
9846
9921
|
(t) => typeof t === "string"
|
|
@@ -9857,6 +9932,13 @@ async function runDebate(args, opts) {
|
|
|
9857
9932
|
const workerToolsNeedsBridge = acceptedWorkerTools.length > 0 && !opts.innerCallers;
|
|
9858
9933
|
const needsBridge = DEFERRED_OPTS4.some((k) => Boolean(args[k])) || workerToolsNeedsBridge;
|
|
9859
9934
|
if (needsBridge) {
|
|
9935
|
+
if (superRequested) {
|
|
9936
|
+
return errorEnvelope9(
|
|
9937
|
+
"DEBATE_SUPER_NOT_NATIVE",
|
|
9938
|
+
"super mode requested but worker_tools needs the Python bridge",
|
|
9939
|
+
"worker_tools without innerCallers wired defers to the Python bridge, which doesn't support super mode. Drop worker_tools, or wire innerCallers, to use super."
|
|
9940
|
+
);
|
|
9941
|
+
}
|
|
9860
9942
|
if (opts.bridge && opts.bridge.toolNames.has("debate")) {
|
|
9861
9943
|
return await deferDebate(args, opts.bridge);
|
|
9862
9944
|
}
|
|
@@ -9885,7 +9967,7 @@ async function runDebate(args, opts) {
|
|
|
9885
9967
|
const callerSuppliedProviders = Array.isArray(callerProvidersRaw) && callerProvidersRaw.length > 0;
|
|
9886
9968
|
let resolvedProviders = callerProvidersRaw;
|
|
9887
9969
|
let autoPanelMeta = null;
|
|
9888
|
-
if (autoPanel && !callerSuppliedProviders && opts.storage) {
|
|
9970
|
+
if (autoPanel && !callerSuppliedProviders && !superRequested && opts.storage) {
|
|
9889
9971
|
const autoNRaw = Number(args["auto_panel_n"]);
|
|
9890
9972
|
const autoN = Number.isFinite(autoNRaw) && autoNRaw > 0 ? Math.trunc(autoNRaw) : AUTO_PANEL_DEFAULT_N;
|
|
9891
9973
|
const picked = await pickAutoPanel(
|
|
@@ -9905,7 +9987,10 @@ async function runDebate(args, opts) {
|
|
|
9905
9987
|
};
|
|
9906
9988
|
}
|
|
9907
9989
|
}
|
|
9908
|
-
|
|
9990
|
+
if (superRequested && !callerSuppliedProviders) {
|
|
9991
|
+
resolvedProviders = SUPER_PROVIDER_NAMES;
|
|
9992
|
+
}
|
|
9993
|
+
let { selected, unknown: unknownNames, blocked } = resolveProviders6(
|
|
9909
9994
|
resolvedProviders,
|
|
9910
9995
|
opts.providers,
|
|
9911
9996
|
opts.allowlist ?? null
|
|
@@ -9929,7 +10014,10 @@ async function runDebate(args, opts) {
|
|
|
9929
10014
|
available_now: Object.keys(opts.providers).sort()
|
|
9930
10015
|
};
|
|
9931
10016
|
}
|
|
9932
|
-
|
|
10017
|
+
if (superRequested) {
|
|
10018
|
+
selected = selected.map(retargetForSuper);
|
|
10019
|
+
}
|
|
10020
|
+
const maxTokens = superRequested ? superBudget(opts.maxTokens ?? 4096) : opts.maxTokens ?? 4096;
|
|
9933
10021
|
let memBlock = "";
|
|
9934
10022
|
if (Boolean(args["inject_session_memory"]) && opts.storage && sessionId) {
|
|
9935
10023
|
memBlock = await renderSessionMemoryBlock(opts.storage, sessionId);
|
|
@@ -9970,7 +10058,7 @@ async function runDebate(args, opts) {
|
|
|
9970
10058
|
let agreementBlock = null;
|
|
9971
10059
|
const moderatorName = typeof args["moderator"] === "string" && args["moderator"] ? args["moderator"] : opts.moderator ?? "anthropic";
|
|
9972
10060
|
const moderator = opts.providers[moderatorName.toLowerCase()] ?? selected[0];
|
|
9973
|
-
const upgradeRequested = isUpgradeRequested(args);
|
|
10061
|
+
const upgradeRequested = isUpgradeRequested(args) || superRequested;
|
|
9974
10062
|
const upgraded = upgradeRequested && opts.providers["anthropic"] !== void 0;
|
|
9975
10063
|
for (let rnd = 1; rnd <= maxRounds; rnd++) {
|
|
9976
10064
|
const roundMessages = [
|
|
@@ -10041,7 +10129,7 @@ ${prior}` });
|
|
|
10041
10129
|
let personaMeta = null;
|
|
10042
10130
|
let coReasoned = false;
|
|
10043
10131
|
if (moderator) {
|
|
10044
|
-
const synthProvider = upgraded ? retargetProvider(opts.providers["anthropic"], UPGRADE_MODEL) : moderator;
|
|
10132
|
+
const synthProvider = upgraded ? retargetProvider(opts.providers["anthropic"], UPGRADE_MODEL) : superRequested ? retargetForSuper(moderator) : moderator;
|
|
10045
10133
|
const condensed = transcript.map(
|
|
10046
10134
|
(e) => `[${e.provider} \u2014 round ${e.round}]
|
|
10047
10135
|
${e.response ?? "(error)"}`
|
|
@@ -10176,6 +10264,13 @@ ${condensed}`
|
|
|
10176
10264
|
}
|
|
10177
10265
|
if (unknownNames.length > 0) result["skipped_unknown_providers"] = unknownNames;
|
|
10178
10266
|
if (blocked.length > 0) result["blocked_by_allowlist"] = blocked;
|
|
10267
|
+
if (superRequested) {
|
|
10268
|
+
result["super_mode"] = {
|
|
10269
|
+
applied: true,
|
|
10270
|
+
panel: selected.map((p) => ({ provider: p.name, model: p.model })),
|
|
10271
|
+
max_tokens: maxTokens
|
|
10272
|
+
};
|
|
10273
|
+
}
|
|
10179
10274
|
const allCallEnvelopes = [
|
|
10180
10275
|
...transcript,
|
|
10181
10276
|
...extraAnswers
|
|
@@ -10797,24 +10892,27 @@ var KNOWN_PROVIDERS6 = [
|
|
|
10797
10892
|
"kimi"
|
|
10798
10893
|
];
|
|
10799
10894
|
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.";
|
|
10800
|
-
function runListProviders(
|
|
10801
|
-
|
|
10895
|
+
function runListProviders(args, opts) {
|
|
10896
|
+
const superRequested = isSuperRequested(args);
|
|
10802
10897
|
const active = new Set(opts.activeProviders ?? Object.keys(opts.providers));
|
|
10898
|
+
const names = superRequested ? SUPER_PROVIDER_NAMES : KNOWN_PROVIDERS6;
|
|
10803
10899
|
const providers = [];
|
|
10804
|
-
for (const name of
|
|
10900
|
+
for (const name of names) {
|
|
10805
10901
|
const prov = opts.providers[name];
|
|
10806
10902
|
providers.push({
|
|
10807
10903
|
name,
|
|
10808
10904
|
available: prov !== void 0,
|
|
10809
10905
|
active: active.has(name),
|
|
10810
|
-
model: prov ? prov.model : null
|
|
10906
|
+
model: superRequested ? SUPER_MODELS[name] : prov ? prov.model : null
|
|
10811
10907
|
});
|
|
10812
10908
|
}
|
|
10813
|
-
|
|
10909
|
+
const result = {
|
|
10814
10910
|
providers,
|
|
10815
10911
|
moderator_default: opts.moderatorDefault ?? "anthropic",
|
|
10816
10912
|
usage_hint: USAGE_HINT
|
|
10817
10913
|
};
|
|
10914
|
+
if (superRequested) result["super_mode"] = true;
|
|
10915
|
+
return result;
|
|
10818
10916
|
}
|
|
10819
10917
|
|
|
10820
10918
|
// src/tools/pick.ts
|
|
@@ -11222,6 +11320,7 @@ Return: (1) the plan as numbered steps, (2) risks, (3) alternatives considered.`
|
|
|
11222
11320
|
if (args["reasoning"] !== void 0) debateArgs["reasoning"] = args["reasoning"];
|
|
11223
11321
|
if (args["upgrade"] !== void 0) debateArgs["upgrade"] = args["upgrade"];
|
|
11224
11322
|
if (args["model"] !== void 0) debateArgs["model"] = args["model"];
|
|
11323
|
+
if (args["super"] !== void 0) debateArgs["super"] = args["super"];
|
|
11225
11324
|
const result = await runDebate(debateArgs, opts);
|
|
11226
11325
|
if (result["suggested_upgrade"] && typeof result["suggested_upgrade"] === "object") {
|
|
11227
11326
|
const su = result["suggested_upgrade"];
|
|
@@ -12372,7 +12471,7 @@ var CHECK_INTERVAL_SECONDS = 3 * 24 * 60 * 60;
|
|
|
12372
12471
|
var DEFAULT_PACKAGE = "crosscheck-cli";
|
|
12373
12472
|
var FETCH_TIMEOUT_MS = 3e3;
|
|
12374
12473
|
function engineVersion() {
|
|
12375
|
-
return true ? "0.2.
|
|
12474
|
+
return true ? "0.2.8" : "0.0.0-dev";
|
|
12376
12475
|
}
|
|
12377
12476
|
function defaultUpdateCachePath() {
|
|
12378
12477
|
const base = process.env["CROSSCHECK_DATA_DIR"] || import_node_path13.default.join(import_node_os2.default.homedir() || import_node_os2.default.tmpdir(), ".crosscheck");
|
|
@@ -12729,6 +12828,7 @@ async function runTriangulate(args, opts) {
|
|
|
12729
12828
|
if (args["reasoning"] !== void 0) coordArgs["reasoning"] = args["reasoning"];
|
|
12730
12829
|
if (args["upgrade"] !== void 0) coordArgs["upgrade"] = args["upgrade"];
|
|
12731
12830
|
if (args["model"] !== void 0) coordArgs["model"] = args["model"];
|
|
12831
|
+
if (args["super"] !== void 0) coordArgs["super"] = args["super"];
|
|
12732
12832
|
const coord = await runCoordinate(coordArgs, opts);
|
|
12733
12833
|
if (typeof coord["error"] === "string") return coord;
|
|
12734
12834
|
const synth = coord["synthesis_structured"] ?? {};
|
|
@@ -12779,7 +12879,8 @@ async function runTriangulate(args, opts) {
|
|
|
12779
12879
|
"blocked_by_allowlist",
|
|
12780
12880
|
"skipped_unknown_providers",
|
|
12781
12881
|
"reasoning_upgrade",
|
|
12782
|
-
"suggested_upgrade"
|
|
12882
|
+
"suggested_upgrade",
|
|
12883
|
+
"super_mode"
|
|
12783
12884
|
]) {
|
|
12784
12885
|
if (k in coord) result[k] = coord[k];
|
|
12785
12886
|
}
|
|
@@ -13613,7 +13714,9 @@ function listProvidersTool(providers, activeProviders, moderatorDefault) {
|
|
|
13613
13714
|
inputSchema: {
|
|
13614
13715
|
type: "object",
|
|
13615
13716
|
additionalProperties: true,
|
|
13616
|
-
properties: {
|
|
13717
|
+
properties: {
|
|
13718
|
+
super: { type: "boolean" }
|
|
13719
|
+
}
|
|
13617
13720
|
},
|
|
13618
13721
|
handler: async (args) => runListProviders(args, {
|
|
13619
13722
|
providers,
|
|
@@ -13692,7 +13795,8 @@ function planTool(providers, allowlist, bridge) {
|
|
|
13692
13795
|
mode: { type: "string", enum: ["fast", "thorough"] },
|
|
13693
13796
|
max_rounds: { type: "integer", minimum: 1 },
|
|
13694
13797
|
early_stop: { type: "boolean" },
|
|
13695
|
-
early_stop_threshold: { type: "number", minimum: 0, maximum: 1 }
|
|
13798
|
+
early_stop_threshold: { type: "number", minimum: 0, maximum: 1 },
|
|
13799
|
+
super: { type: "boolean" }
|
|
13696
13800
|
},
|
|
13697
13801
|
required: ["goal"]
|
|
13698
13802
|
},
|
|
@@ -13716,7 +13820,8 @@ function triangulateTool(providers, allowlist, bridge) {
|
|
|
13716
13820
|
context: { type: "string" },
|
|
13717
13821
|
providers: { type: "array", items: { type: "string" } },
|
|
13718
13822
|
session_id: { type: "string" },
|
|
13719
|
-
untrusted_input: { type: "boolean" }
|
|
13823
|
+
untrusted_input: { type: "boolean" },
|
|
13824
|
+
super: { type: "boolean" }
|
|
13720
13825
|
},
|
|
13721
13826
|
required: ["question"]
|
|
13722
13827
|
},
|
|
@@ -13784,7 +13889,8 @@ function debateTool(providers, allowlist, bridge, innerCallers, storage, pricing
|
|
|
13784
13889
|
auto_panel: { type: "boolean" },
|
|
13785
13890
|
auto_panel_n: { type: "integer" },
|
|
13786
13891
|
inject_session_memory: { type: "boolean" },
|
|
13787
|
-
worker_tools: { type: "array", items: { type: "string" } }
|
|
13892
|
+
worker_tools: { type: "array", items: { type: "string" } },
|
|
13893
|
+
super: { type: "boolean" }
|
|
13788
13894
|
},
|
|
13789
13895
|
required: ["topic"]
|
|
13790
13896
|
},
|
|
@@ -13833,7 +13939,8 @@ function conferTool(providers, allowlist, bridge, moderator, pricing, storage, i
|
|
|
13833
13939
|
inject_session_memory: { type: "boolean" },
|
|
13834
13940
|
auto_panel: { type: "boolean" },
|
|
13835
13941
|
auto_panel_n: { type: "integer" },
|
|
13836
|
-
worker_tools: { type: "array", items: { type: "string" } }
|
|
13942
|
+
worker_tools: { type: "array", items: { type: "string" } },
|
|
13943
|
+
super: { type: "boolean" }
|
|
13837
13944
|
},
|
|
13838
13945
|
required: ["question"]
|
|
13839
13946
|
},
|