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.js
CHANGED
|
@@ -2140,6 +2140,12 @@ Reasoning upgrade (Fable 5):
|
|
|
2140
2140
|
- 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.
|
|
2141
2141
|
- 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.
|
|
2142
2142
|
|
|
2143
|
+
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):
|
|
2144
|
+
- 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 })\`.
|
|
2145
|
+
- 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".
|
|
2146
|
+
- A result with a "super_mode" block confirms it ran; show the panel it used.
|
|
2147
|
+
- \`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.
|
|
2148
|
+
|
|
2143
2149
|
Spend visibility:
|
|
2144
2150
|
- 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.
|
|
2145
2151
|
- "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.
|
|
@@ -2153,7 +2159,7 @@ import { z } from "zod";
|
|
|
2153
2159
|
// src/server-meta.ts
|
|
2154
2160
|
init_esm_shims();
|
|
2155
2161
|
var SERVER_NAME = "crosscheck-agent";
|
|
2156
|
-
var SERVER_VERSION = true ? "0.2.
|
|
2162
|
+
var SERVER_VERSION = true ? "0.2.8" : "0.0.0-dev";
|
|
2157
2163
|
|
|
2158
2164
|
// src/tools/audit.ts
|
|
2159
2165
|
init_esm_shims();
|
|
@@ -5032,6 +5038,34 @@ async function pickAutoPanel(storage, purpose, n, providers, allowlist) {
|
|
|
5032
5038
|
return { providers: ranked.slice(0, Math.max(1, n)), coldStart: true };
|
|
5033
5039
|
}
|
|
5034
5040
|
|
|
5041
|
+
// src/core/super-mode.ts
|
|
5042
|
+
init_esm_shims();
|
|
5043
|
+
var SUPER_MODELS = {
|
|
5044
|
+
anthropic: UPGRADE_MODEL,
|
|
5045
|
+
// "claude-fable-5"
|
|
5046
|
+
openai: CO_REASON_MODEL,
|
|
5047
|
+
// "gpt-5.6"
|
|
5048
|
+
xai: DEFAULT_MODELS["xai"],
|
|
5049
|
+
// already the default — no-op retarget
|
|
5050
|
+
gemini: DEFAULT_MODELS["gemini"],
|
|
5051
|
+
// already the default — no-op retarget
|
|
5052
|
+
kimi: DEFAULT_MODELS["kimi"]
|
|
5053
|
+
// already the default — no-op retarget
|
|
5054
|
+
};
|
|
5055
|
+
var SUPER_PROVIDER_NAMES = Object.keys(SUPER_MODELS);
|
|
5056
|
+
function isSuperRequested(args) {
|
|
5057
|
+
return args["super"] === true;
|
|
5058
|
+
}
|
|
5059
|
+
function retargetForSuper(p) {
|
|
5060
|
+
const model = SUPER_MODELS[p.name];
|
|
5061
|
+
return model ? retargetProvider(p, model) : p;
|
|
5062
|
+
}
|
|
5063
|
+
var SUPER_BUDGET_MULTIPLIER = 3;
|
|
5064
|
+
var SUPER_BUDGET_CEILING = 16e3;
|
|
5065
|
+
function superBudget(base) {
|
|
5066
|
+
return Math.min(base * SUPER_BUDGET_MULTIPLIER, SUPER_BUDGET_CEILING);
|
|
5067
|
+
}
|
|
5068
|
+
|
|
5035
5069
|
// src/core/session-memory.ts
|
|
5036
5070
|
init_esm_shims();
|
|
5037
5071
|
var SESSION_MEMORY_DEFAULT_LIMIT = 50;
|
|
@@ -5622,11 +5656,12 @@ async function runConfer(args, opts) {
|
|
|
5622
5656
|
const question = typeof args["question"] === "string" ? args["question"] : String(args["question"] ?? "");
|
|
5623
5657
|
const context = typeof args["context"] === "string" ? args["context"] : "";
|
|
5624
5658
|
const autoPanel = Boolean(args["auto_panel"]);
|
|
5659
|
+
const superRequested = isSuperRequested(args);
|
|
5625
5660
|
const callerProvidersRaw = args["providers"];
|
|
5626
5661
|
const callerSuppliedProviders = Array.isArray(callerProvidersRaw) && callerProvidersRaw.length > 0;
|
|
5627
5662
|
let resolvedProviders = callerProvidersRaw;
|
|
5628
5663
|
let autoPanelMeta = null;
|
|
5629
|
-
if (autoPanel && !callerSuppliedProviders && opts.storage) {
|
|
5664
|
+
if (autoPanel && !callerSuppliedProviders && !superRequested && opts.storage) {
|
|
5630
5665
|
const autoNRaw = Number(args["auto_panel_n"]);
|
|
5631
5666
|
const autoN = Number.isFinite(autoNRaw) && autoNRaw > 0 ? Math.trunc(autoNRaw) : AUTO_PANEL_DEFAULT_N;
|
|
5632
5667
|
const picked = await pickAutoPanel(
|
|
@@ -5646,6 +5681,9 @@ async function runConfer(args, opts) {
|
|
|
5646
5681
|
};
|
|
5647
5682
|
}
|
|
5648
5683
|
}
|
|
5684
|
+
if (superRequested && !callerSuppliedProviders) {
|
|
5685
|
+
resolvedProviders = SUPER_PROVIDER_NAMES;
|
|
5686
|
+
}
|
|
5649
5687
|
let { selected, unknown: unknownNames, blocked } = resolveProviders(
|
|
5650
5688
|
resolvedProviders,
|
|
5651
5689
|
opts.providers,
|
|
@@ -5663,8 +5701,11 @@ async function runConfer(args, opts) {
|
|
|
5663
5701
|
}
|
|
5664
5702
|
return { tool: "confer", error: "no active providers have API keys in .env" };
|
|
5665
5703
|
}
|
|
5704
|
+
if (superRequested) {
|
|
5705
|
+
selected = selected.map(retargetForSuper);
|
|
5706
|
+
}
|
|
5666
5707
|
let cheapModePanelMeta = null;
|
|
5667
|
-
if (opts.ctx?.cheap_mode === true && !callerSuppliedProviders && selected.length > 1) {
|
|
5708
|
+
if (opts.ctx?.cheap_mode === true && !callerSuppliedProviders && !superRequested && selected.length > 1) {
|
|
5668
5709
|
if (!opts.pricing) {
|
|
5669
5710
|
cheapModePanelMeta = {
|
|
5670
5711
|
before: selected.length,
|
|
@@ -5741,7 +5782,7 @@ ${ctxBody}` });
|
|
|
5741
5782
|
if (injectMem && opts.storage && sessionId) {
|
|
5742
5783
|
await injectSessionMemoryInline(messages, opts.storage, sessionId);
|
|
5743
5784
|
}
|
|
5744
|
-
const maxTokens = opts.maxTokens ?? 4096;
|
|
5785
|
+
const maxTokens = superRequested ? superBudget(opts.maxTokens ?? 4096) : opts.maxTokens ?? 4096;
|
|
5745
5786
|
const earlyStop = Boolean(args["early_stop"]);
|
|
5746
5787
|
const earlyStopThresholdRaw = Number(args["early_stop_threshold"]);
|
|
5747
5788
|
const earlyStopThreshold = Number.isFinite(earlyStopThresholdRaw) ? earlyStopThresholdRaw : 0.7;
|
|
@@ -5862,6 +5903,13 @@ ${ctxBody}` });
|
|
|
5862
5903
|
}
|
|
5863
5904
|
if (unknownNames.length > 0) result["skipped_unknown_providers"] = unknownNames;
|
|
5864
5905
|
if (blocked.length > 0) result["blocked_by_allowlist"] = blocked;
|
|
5906
|
+
if (superRequested) {
|
|
5907
|
+
result["super_mode"] = {
|
|
5908
|
+
applied: true,
|
|
5909
|
+
panel: selected.map((p) => ({ provider: p.name, model: p.model })),
|
|
5910
|
+
max_tokens: maxTokens
|
|
5911
|
+
};
|
|
5912
|
+
}
|
|
5865
5913
|
const allCallEnvelopes = [
|
|
5866
5914
|
...sanitized,
|
|
5867
5915
|
...extraAnswers.map((a) => a)
|
|
@@ -9142,6 +9190,7 @@ var ROLE_TURN_SCHEMA = {
|
|
|
9142
9190
|
async function runCoordinate(args, opts) {
|
|
9143
9191
|
const callStartedWall = performance8.now();
|
|
9144
9192
|
const callStartedCpu = process.cpuUsage();
|
|
9193
|
+
const superRequested = isSuperRequested(args);
|
|
9145
9194
|
const requestedWorkerTools = Array.isArray(args["worker_tools"]) ? args["worker_tools"].filter(
|
|
9146
9195
|
(t) => typeof t === "string"
|
|
9147
9196
|
) : [];
|
|
@@ -9157,6 +9206,13 @@ async function runCoordinate(args, opts) {
|
|
|
9157
9206
|
const workerToolsNeedsBridge = acceptedWorkerTools.length > 0 && !opts.innerCallers;
|
|
9158
9207
|
const needsBridge = DEFERRED_OPTS3.some((k) => Boolean(args[k])) || workerToolsNeedsBridge;
|
|
9159
9208
|
if (needsBridge) {
|
|
9209
|
+
if (superRequested) {
|
|
9210
|
+
return errorEnvelope7(
|
|
9211
|
+
"COORDINATE_SUPER_NOT_NATIVE",
|
|
9212
|
+
"super mode requested but worker_tools needs the Python bridge",
|
|
9213
|
+
"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."
|
|
9214
|
+
);
|
|
9215
|
+
}
|
|
9160
9216
|
if (opts.bridge && opts.bridge.toolNames.has("coordinate")) {
|
|
9161
9217
|
return await deferCoordinate(args, opts.bridge);
|
|
9162
9218
|
}
|
|
@@ -9170,8 +9226,11 @@ async function runCoordinate(args, opts) {
|
|
|
9170
9226
|
const canary = untrusted ? mintCanary() : null;
|
|
9171
9227
|
const topic = typeof args["topic"] === "string" ? args["topic"] : String(args["topic"] ?? "");
|
|
9172
9228
|
const context = typeof args["context"] === "string" ? args["context"] : "";
|
|
9229
|
+
const callerProvidersRaw = args["providers"];
|
|
9230
|
+
const callerSuppliedProviders = Array.isArray(callerProvidersRaw) && callerProvidersRaw.length > 0;
|
|
9231
|
+
const resolvedProviders = superRequested && !callerSuppliedProviders ? SUPER_PROVIDER_NAMES : callerProvidersRaw;
|
|
9173
9232
|
const { selected, unknown: unknownNames, blocked } = resolveProviders4(
|
|
9174
|
-
|
|
9233
|
+
resolvedProviders,
|
|
9175
9234
|
opts.providers,
|
|
9176
9235
|
opts.allowlist ?? null
|
|
9177
9236
|
);
|
|
@@ -9198,9 +9257,10 @@ async function runCoordinate(args, opts) {
|
|
|
9198
9257
|
const synthName = typeof args["synthesizer"] === "string" && args["synthesizer"] ? args["synthesizer"] : typeof args["moderator"] === "string" && args["moderator"] ? args["moderator"] : opts.moderator ?? "anthropic";
|
|
9199
9258
|
const proposer = opts.providers[proposerName.toLowerCase()] ?? selected[0];
|
|
9200
9259
|
const synth = opts.providers[synthName.toLowerCase()] ?? proposer;
|
|
9201
|
-
const
|
|
9260
|
+
const proposerForCall = superRequested ? retargetForSuper(proposer) : proposer;
|
|
9261
|
+
const upgradeRequested = isUpgradeRequested(args) || superRequested;
|
|
9202
9262
|
const upgraded = upgradeRequested && opts.providers["anthropic"] !== void 0;
|
|
9203
|
-
const synthForCall = upgraded ? retargetProvider(opts.providers["anthropic"], UPGRADE_MODEL) : synth;
|
|
9263
|
+
const synthForCall = upgraded ? retargetProvider(opts.providers["anthropic"], UPGRADE_MODEL) : superRequested ? retargetForSuper(synth) : synth;
|
|
9204
9264
|
let critics = [];
|
|
9205
9265
|
if (Array.isArray(args["critics"])) {
|
|
9206
9266
|
for (const n of args["critics"]) {
|
|
@@ -9223,7 +9283,10 @@ async function runCoordinate(args, opts) {
|
|
|
9223
9283
|
available_now: Object.keys(opts.providers).sort()
|
|
9224
9284
|
};
|
|
9225
9285
|
}
|
|
9226
|
-
|
|
9286
|
+
if (superRequested) {
|
|
9287
|
+
critics = critics.map(retargetForSuper);
|
|
9288
|
+
}
|
|
9289
|
+
const maxTokens = superRequested ? superBudget(opts.maxTokens ?? 4096) : opts.maxTokens ?? 4096;
|
|
9227
9290
|
let topicBlock = `TOPIC: ${topic}`;
|
|
9228
9291
|
if (context) {
|
|
9229
9292
|
const ctxBlock = untrusted ? wrapUntrusted(context, canary) : context;
|
|
@@ -9301,7 +9364,7 @@ ${UNTRUSTED_SYSTEM_NOTE}`;
|
|
|
9301
9364
|
{ role: "system", content: propSystem },
|
|
9302
9365
|
{ role: "user", content: topicBlock }
|
|
9303
9366
|
];
|
|
9304
|
-
const propResult = await runRoleTurn(
|
|
9367
|
+
const propResult = await runRoleTurn(proposerForCall, propMessages, ROLE_TURN_SCHEMA);
|
|
9305
9368
|
const proposalObj = propResult.obj;
|
|
9306
9369
|
const proposalAns = propResult.answer;
|
|
9307
9370
|
const proposalRender = formatRoleTurn(
|
|
@@ -9425,6 +9488,17 @@ ${critiqueBlock}`
|
|
|
9425
9488
|
result["suggested_upgrade"] = buildSuggestedUpgrade("coordinate", assessment);
|
|
9426
9489
|
}
|
|
9427
9490
|
}
|
|
9491
|
+
if (superRequested) {
|
|
9492
|
+
result["super_mode"] = {
|
|
9493
|
+
applied: true,
|
|
9494
|
+
panel: [
|
|
9495
|
+
{ provider: proposerForCall.name, model: proposerForCall.model },
|
|
9496
|
+
...critics.map((p) => ({ provider: p.name, model: p.model })),
|
|
9497
|
+
{ provider: synthForCall.name, model: synthForCall.model }
|
|
9498
|
+
],
|
|
9499
|
+
max_tokens: maxTokens
|
|
9500
|
+
};
|
|
9501
|
+
}
|
|
9428
9502
|
const allCallEnvelopes = [
|
|
9429
9503
|
scannedProposal,
|
|
9430
9504
|
...scannedCritiques,
|
|
@@ -9837,6 +9911,7 @@ var DEFERRED_OPTS4 = [
|
|
|
9837
9911
|
async function runDebate(args, opts) {
|
|
9838
9912
|
const callStartedWall = performance10.now();
|
|
9839
9913
|
const callStartedCpu = process.cpuUsage();
|
|
9914
|
+
const superRequested = isSuperRequested(args);
|
|
9840
9915
|
const extraAnswers = [];
|
|
9841
9916
|
const requestedWorkerTools = Array.isArray(args["worker_tools"]) ? args["worker_tools"].filter(
|
|
9842
9917
|
(t) => typeof t === "string"
|
|
@@ -9853,6 +9928,13 @@ async function runDebate(args, opts) {
|
|
|
9853
9928
|
const workerToolsNeedsBridge = acceptedWorkerTools.length > 0 && !opts.innerCallers;
|
|
9854
9929
|
const needsBridge = DEFERRED_OPTS4.some((k) => Boolean(args[k])) || workerToolsNeedsBridge;
|
|
9855
9930
|
if (needsBridge) {
|
|
9931
|
+
if (superRequested) {
|
|
9932
|
+
return errorEnvelope9(
|
|
9933
|
+
"DEBATE_SUPER_NOT_NATIVE",
|
|
9934
|
+
"super mode requested but worker_tools needs the Python bridge",
|
|
9935
|
+
"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."
|
|
9936
|
+
);
|
|
9937
|
+
}
|
|
9856
9938
|
if (opts.bridge && opts.bridge.toolNames.has("debate")) {
|
|
9857
9939
|
return await deferDebate(args, opts.bridge);
|
|
9858
9940
|
}
|
|
@@ -9881,7 +9963,7 @@ async function runDebate(args, opts) {
|
|
|
9881
9963
|
const callerSuppliedProviders = Array.isArray(callerProvidersRaw) && callerProvidersRaw.length > 0;
|
|
9882
9964
|
let resolvedProviders = callerProvidersRaw;
|
|
9883
9965
|
let autoPanelMeta = null;
|
|
9884
|
-
if (autoPanel && !callerSuppliedProviders && opts.storage) {
|
|
9966
|
+
if (autoPanel && !callerSuppliedProviders && !superRequested && opts.storage) {
|
|
9885
9967
|
const autoNRaw = Number(args["auto_panel_n"]);
|
|
9886
9968
|
const autoN = Number.isFinite(autoNRaw) && autoNRaw > 0 ? Math.trunc(autoNRaw) : AUTO_PANEL_DEFAULT_N;
|
|
9887
9969
|
const picked = await pickAutoPanel(
|
|
@@ -9901,7 +9983,10 @@ async function runDebate(args, opts) {
|
|
|
9901
9983
|
};
|
|
9902
9984
|
}
|
|
9903
9985
|
}
|
|
9904
|
-
|
|
9986
|
+
if (superRequested && !callerSuppliedProviders) {
|
|
9987
|
+
resolvedProviders = SUPER_PROVIDER_NAMES;
|
|
9988
|
+
}
|
|
9989
|
+
let { selected, unknown: unknownNames, blocked } = resolveProviders6(
|
|
9905
9990
|
resolvedProviders,
|
|
9906
9991
|
opts.providers,
|
|
9907
9992
|
opts.allowlist ?? null
|
|
@@ -9925,7 +10010,10 @@ async function runDebate(args, opts) {
|
|
|
9925
10010
|
available_now: Object.keys(opts.providers).sort()
|
|
9926
10011
|
};
|
|
9927
10012
|
}
|
|
9928
|
-
|
|
10013
|
+
if (superRequested) {
|
|
10014
|
+
selected = selected.map(retargetForSuper);
|
|
10015
|
+
}
|
|
10016
|
+
const maxTokens = superRequested ? superBudget(opts.maxTokens ?? 4096) : opts.maxTokens ?? 4096;
|
|
9929
10017
|
let memBlock = "";
|
|
9930
10018
|
if (Boolean(args["inject_session_memory"]) && opts.storage && sessionId) {
|
|
9931
10019
|
memBlock = await renderSessionMemoryBlock(opts.storage, sessionId);
|
|
@@ -9966,7 +10054,7 @@ async function runDebate(args, opts) {
|
|
|
9966
10054
|
let agreementBlock = null;
|
|
9967
10055
|
const moderatorName = typeof args["moderator"] === "string" && args["moderator"] ? args["moderator"] : opts.moderator ?? "anthropic";
|
|
9968
10056
|
const moderator = opts.providers[moderatorName.toLowerCase()] ?? selected[0];
|
|
9969
|
-
const upgradeRequested = isUpgradeRequested(args);
|
|
10057
|
+
const upgradeRequested = isUpgradeRequested(args) || superRequested;
|
|
9970
10058
|
const upgraded = upgradeRequested && opts.providers["anthropic"] !== void 0;
|
|
9971
10059
|
for (let rnd = 1; rnd <= maxRounds; rnd++) {
|
|
9972
10060
|
const roundMessages = [
|
|
@@ -10037,7 +10125,7 @@ ${prior}` });
|
|
|
10037
10125
|
let personaMeta = null;
|
|
10038
10126
|
let coReasoned = false;
|
|
10039
10127
|
if (moderator) {
|
|
10040
|
-
const synthProvider = upgraded ? retargetProvider(opts.providers["anthropic"], UPGRADE_MODEL) : moderator;
|
|
10128
|
+
const synthProvider = upgraded ? retargetProvider(opts.providers["anthropic"], UPGRADE_MODEL) : superRequested ? retargetForSuper(moderator) : moderator;
|
|
10041
10129
|
const condensed = transcript.map(
|
|
10042
10130
|
(e) => `[${e.provider} \u2014 round ${e.round}]
|
|
10043
10131
|
${e.response ?? "(error)"}`
|
|
@@ -10172,6 +10260,13 @@ ${condensed}`
|
|
|
10172
10260
|
}
|
|
10173
10261
|
if (unknownNames.length > 0) result["skipped_unknown_providers"] = unknownNames;
|
|
10174
10262
|
if (blocked.length > 0) result["blocked_by_allowlist"] = blocked;
|
|
10263
|
+
if (superRequested) {
|
|
10264
|
+
result["super_mode"] = {
|
|
10265
|
+
applied: true,
|
|
10266
|
+
panel: selected.map((p) => ({ provider: p.name, model: p.model })),
|
|
10267
|
+
max_tokens: maxTokens
|
|
10268
|
+
};
|
|
10269
|
+
}
|
|
10175
10270
|
const allCallEnvelopes = [
|
|
10176
10271
|
...transcript,
|
|
10177
10272
|
...extraAnswers
|
|
@@ -10793,24 +10888,27 @@ var KNOWN_PROVIDERS6 = [
|
|
|
10793
10888
|
"kimi"
|
|
10794
10889
|
];
|
|
10795
10890
|
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.";
|
|
10796
|
-
function runListProviders(
|
|
10797
|
-
|
|
10891
|
+
function runListProviders(args, opts) {
|
|
10892
|
+
const superRequested = isSuperRequested(args);
|
|
10798
10893
|
const active = new Set(opts.activeProviders ?? Object.keys(opts.providers));
|
|
10894
|
+
const names = superRequested ? SUPER_PROVIDER_NAMES : KNOWN_PROVIDERS6;
|
|
10799
10895
|
const providers = [];
|
|
10800
|
-
for (const name of
|
|
10896
|
+
for (const name of names) {
|
|
10801
10897
|
const prov = opts.providers[name];
|
|
10802
10898
|
providers.push({
|
|
10803
10899
|
name,
|
|
10804
10900
|
available: prov !== void 0,
|
|
10805
10901
|
active: active.has(name),
|
|
10806
|
-
model: prov ? prov.model : null
|
|
10902
|
+
model: superRequested ? SUPER_MODELS[name] : prov ? prov.model : null
|
|
10807
10903
|
});
|
|
10808
10904
|
}
|
|
10809
|
-
|
|
10905
|
+
const result = {
|
|
10810
10906
|
providers,
|
|
10811
10907
|
moderator_default: opts.moderatorDefault ?? "anthropic",
|
|
10812
10908
|
usage_hint: USAGE_HINT
|
|
10813
10909
|
};
|
|
10910
|
+
if (superRequested) result["super_mode"] = true;
|
|
10911
|
+
return result;
|
|
10814
10912
|
}
|
|
10815
10913
|
|
|
10816
10914
|
// src/tools/pick.ts
|
|
@@ -11218,6 +11316,7 @@ Return: (1) the plan as numbered steps, (2) risks, (3) alternatives considered.`
|
|
|
11218
11316
|
if (args["reasoning"] !== void 0) debateArgs["reasoning"] = args["reasoning"];
|
|
11219
11317
|
if (args["upgrade"] !== void 0) debateArgs["upgrade"] = args["upgrade"];
|
|
11220
11318
|
if (args["model"] !== void 0) debateArgs["model"] = args["model"];
|
|
11319
|
+
if (args["super"] !== void 0) debateArgs["super"] = args["super"];
|
|
11221
11320
|
const result = await runDebate(debateArgs, opts);
|
|
11222
11321
|
if (result["suggested_upgrade"] && typeof result["suggested_upgrade"] === "object") {
|
|
11223
11322
|
const su = result["suggested_upgrade"];
|
|
@@ -12368,7 +12467,7 @@ var CHECK_INTERVAL_SECONDS = 3 * 24 * 60 * 60;
|
|
|
12368
12467
|
var DEFAULT_PACKAGE = "crosscheck-cli";
|
|
12369
12468
|
var FETCH_TIMEOUT_MS = 3e3;
|
|
12370
12469
|
function engineVersion() {
|
|
12371
|
-
return true ? "0.2.
|
|
12470
|
+
return true ? "0.2.8" : "0.0.0-dev";
|
|
12372
12471
|
}
|
|
12373
12472
|
function defaultUpdateCachePath() {
|
|
12374
12473
|
const base = process.env["CROSSCHECK_DATA_DIR"] || path10.join(os.homedir() || os.tmpdir(), ".crosscheck");
|
|
@@ -12725,6 +12824,7 @@ async function runTriangulate(args, opts) {
|
|
|
12725
12824
|
if (args["reasoning"] !== void 0) coordArgs["reasoning"] = args["reasoning"];
|
|
12726
12825
|
if (args["upgrade"] !== void 0) coordArgs["upgrade"] = args["upgrade"];
|
|
12727
12826
|
if (args["model"] !== void 0) coordArgs["model"] = args["model"];
|
|
12827
|
+
if (args["super"] !== void 0) coordArgs["super"] = args["super"];
|
|
12728
12828
|
const coord = await runCoordinate(coordArgs, opts);
|
|
12729
12829
|
if (typeof coord["error"] === "string") return coord;
|
|
12730
12830
|
const synth = coord["synthesis_structured"] ?? {};
|
|
@@ -12775,7 +12875,8 @@ async function runTriangulate(args, opts) {
|
|
|
12775
12875
|
"blocked_by_allowlist",
|
|
12776
12876
|
"skipped_unknown_providers",
|
|
12777
12877
|
"reasoning_upgrade",
|
|
12778
|
-
"suggested_upgrade"
|
|
12878
|
+
"suggested_upgrade",
|
|
12879
|
+
"super_mode"
|
|
12779
12880
|
]) {
|
|
12780
12881
|
if (k in coord) result[k] = coord[k];
|
|
12781
12882
|
}
|
|
@@ -13609,7 +13710,9 @@ function listProvidersTool(providers, activeProviders, moderatorDefault) {
|
|
|
13609
13710
|
inputSchema: {
|
|
13610
13711
|
type: "object",
|
|
13611
13712
|
additionalProperties: true,
|
|
13612
|
-
properties: {
|
|
13713
|
+
properties: {
|
|
13714
|
+
super: { type: "boolean" }
|
|
13715
|
+
}
|
|
13613
13716
|
},
|
|
13614
13717
|
handler: async (args) => runListProviders(args, {
|
|
13615
13718
|
providers,
|
|
@@ -13688,7 +13791,8 @@ function planTool(providers, allowlist, bridge) {
|
|
|
13688
13791
|
mode: { type: "string", enum: ["fast", "thorough"] },
|
|
13689
13792
|
max_rounds: { type: "integer", minimum: 1 },
|
|
13690
13793
|
early_stop: { type: "boolean" },
|
|
13691
|
-
early_stop_threshold: { type: "number", minimum: 0, maximum: 1 }
|
|
13794
|
+
early_stop_threshold: { type: "number", minimum: 0, maximum: 1 },
|
|
13795
|
+
super: { type: "boolean" }
|
|
13692
13796
|
},
|
|
13693
13797
|
required: ["goal"]
|
|
13694
13798
|
},
|
|
@@ -13712,7 +13816,8 @@ function triangulateTool(providers, allowlist, bridge) {
|
|
|
13712
13816
|
context: { type: "string" },
|
|
13713
13817
|
providers: { type: "array", items: { type: "string" } },
|
|
13714
13818
|
session_id: { type: "string" },
|
|
13715
|
-
untrusted_input: { type: "boolean" }
|
|
13819
|
+
untrusted_input: { type: "boolean" },
|
|
13820
|
+
super: { type: "boolean" }
|
|
13716
13821
|
},
|
|
13717
13822
|
required: ["question"]
|
|
13718
13823
|
},
|
|
@@ -13780,7 +13885,8 @@ function debateTool(providers, allowlist, bridge, innerCallers, storage, pricing
|
|
|
13780
13885
|
auto_panel: { type: "boolean" },
|
|
13781
13886
|
auto_panel_n: { type: "integer" },
|
|
13782
13887
|
inject_session_memory: { type: "boolean" },
|
|
13783
|
-
worker_tools: { type: "array", items: { type: "string" } }
|
|
13888
|
+
worker_tools: { type: "array", items: { type: "string" } },
|
|
13889
|
+
super: { type: "boolean" }
|
|
13784
13890
|
},
|
|
13785
13891
|
required: ["topic"]
|
|
13786
13892
|
},
|
|
@@ -13829,7 +13935,8 @@ function conferTool(providers, allowlist, bridge, moderator, pricing, storage, i
|
|
|
13829
13935
|
inject_session_memory: { type: "boolean" },
|
|
13830
13936
|
auto_panel: { type: "boolean" },
|
|
13831
13937
|
auto_panel_n: { type: "integer" },
|
|
13832
|
-
worker_tools: { type: "array", items: { type: "string" } }
|
|
13938
|
+
worker_tools: { type: "array", items: { type: "string" } },
|
|
13939
|
+
super: { type: "boolean" }
|
|
13833
13940
|
},
|
|
13834
13941
|
required: ["question"]
|
|
13835
13942
|
},
|