@chessceo/mcp 0.49.10 → 0.49.11
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/analysis/response.js +0 -14
- package/dist/index.js +2 -11
- package/dist/tools.js +1 -2
- package/package.json +1 -1
|
@@ -179,17 +179,3 @@ export function storedEvalToCompact(ev, analysis) {
|
|
|
179
179
|
}
|
|
180
180
|
return compact;
|
|
181
181
|
}
|
|
182
|
-
// Fan-out merge: each rental returns the engines it runs. Keep the first
|
|
183
|
-
// rental's block per engine field, so one object carries e.g. Stockfish from
|
|
184
|
-
// one rental and Lc0 from another. Top-level fields come from the first result.
|
|
185
|
-
export function mergeRentalAnalyses(results) {
|
|
186
|
-
const merged = { ...(results[0] ?? {}) };
|
|
187
|
-
for (const key of ["stockfish", "lc0"]) {
|
|
188
|
-
delete merged[key];
|
|
189
|
-
for (const r of results) {
|
|
190
|
-
if (r[key] !== undefined && merged[key] === undefined)
|
|
191
|
-
merged[key] = r[key];
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
return merged;
|
|
195
|
-
}
|
package/dist/index.js
CHANGED
|
@@ -22,7 +22,7 @@ import { TOOLS } from "./tools.js";
|
|
|
22
22
|
import { PROMPTS } from "./prompts.js";
|
|
23
23
|
import { commentAntiPatterns, longLineWarning, noDescribeWarning, noStatsCheckWarning, positionalNagOnIntermediateWarning, positionsDescribed, positionsStatsChecked, } from "./warnings.js";
|
|
24
24
|
import { authContext, authedRequest, deleteGame, fetchGame, get, makeFileId, restoreGame, } from "./http.js";
|
|
25
|
-
import { analysisToStoredEval, capPvsInResponse, convertCloudSnapshotResponse, fetchCompactEval,
|
|
25
|
+
import { analysisToStoredEval, capPvsInResponse, convertCloudSnapshotResponse, fetchCompactEval, } from "./analysis/response.js";
|
|
26
26
|
import { autoEvaluate, autoEvaluateCancel, autoEvaluateStatus, } from "./analysis/auto.js";
|
|
27
27
|
import { deepAnalyseCancel, deepAnalyseStart, deepAnalyseStatus, } from "./analysis/deep.js";
|
|
28
28
|
import { analyseRouting, getNodeByPath, resolveFromNodeOrFen, storeEvalOnNode, } from "./analysis/file_handle.js";
|
|
@@ -414,16 +414,7 @@ async function callToolInner(name, args) {
|
|
|
414
414
|
if (typeof args.contempt === "number")
|
|
415
415
|
body.contempt = args.contempt;
|
|
416
416
|
Object.assign(body, analyseRouting(args));
|
|
417
|
-
|
|
418
|
-
// returning the engines it runs; the results are merged into one
|
|
419
|
-
// object (first rental wins per engine field). One call, one
|
|
420
|
-
// position, any mix of rentals.
|
|
421
|
-
const fanOutIds = Array.isArray(args.contract_ids)
|
|
422
|
-
? args.contract_ids.filter((id) => typeof id === "string" && id.trim() !== "").map((id) => id.trim())
|
|
423
|
-
: [];
|
|
424
|
-
const raw = fanOutIds.length > 1
|
|
425
|
-
? mergeRentalAnalyses(await Promise.all(fanOutIds.map((id) => authedRequest("POST", "/api/agent/cloud-engines/analyse", { ...body, contract_id: id }))))
|
|
426
|
-
: await authedRequest("POST", "/api/agent/cloud-engines/analyse", body);
|
|
417
|
+
const raw = await authedRequest("POST", "/api/agent/cloud-engines/analyse", body);
|
|
427
418
|
const converted = convertCloudSnapshotResponse(raw, fen);
|
|
428
419
|
// PV cap: engine PVs beyond ~6 plies are speculative (the tail is
|
|
429
420
|
// where the search's confidence collapses — SF at depth 24 has
|
package/dist/tools.js
CHANGED
|
@@ -305,7 +305,7 @@ export const TOOLS = [
|
|
|
305
305
|
name: "cloud_analyse",
|
|
306
306
|
description: "Runs a synchronous ~2s analysis on one of the user's running engine instances and returns the requested engines' final read for the FEN — depth, top-N candidate moves with scores (**scoreCp is White-POV centipawns**: +20 = White is +0.20 pawns better regardless of whose turn it is; matches the sign convention used everywhere else in this MCP, including the stored ceoEval). Mate is White-POV plies-to-mate (+5 = White mates in 5). Also returns each engine's principal variation.\n\n" +
|
|
307
307
|
"GROUNDING: every claim you make about a position must trace back to actual engine output from a call in THIS session. Don't invent evaluations, don't name 'best moves' you haven't seen the engine list, don't fabricate variations that 'look plausible.' Compute is cheap — call this 5-10 times while walking a tree rather than pattern-matching from your training data. When you don't have data for the position, either run the tool or say so; don't fill the gap with chess prose the user can't distinguish from measured output.\n\n" +
|
|
308
|
-
"Runs on any of the caller's running rentals. Pass `contract_id` to choose one; without it the only rental that can serve the requested engines is used, and the error lists the candidates if there are several
|
|
308
|
+
"Runs on any of the caller's running rentals — combo, stockfish-only, or lc0-only. Pass `contract_id` to choose one; without it the only rental that can serve the requested engines is used, and the error lists the candidates if there are several.\n\n" +
|
|
309
309
|
"How to read the response:\n" +
|
|
310
310
|
"• Stockfish is objective truth — trust it for 'does this line hold?' 'is there a tactic?' 'is this endgame drawn?' A Stockfish 0.00 means 'objectively equal', NOT 'trivial draw' — one side can still be much harder to play in practice.\n" +
|
|
311
311
|
"• Lc0 is practical eval — trust it for 'which side is easier?' 'which candidate is best when Stockfish shows several as equal?' Lc0 sees long-term positional factors Stockfish's fixed search can miss.\n" +
|
|
@@ -351,7 +351,6 @@ export const TOOLS = [
|
|
|
351
351
|
description: "Lc0 contempt bias. Signed 0-100 strength (same scale as the web UI's ContemptStrength slider — server multiplies by 8 to get the internal cp bias). 0 = objective (default). Positive favours White, negative favours Black. Typical: ±15 light nudge, ±30-60 real fighting play, ±80-100 maximum steer. Not applied to Stockfish. See engine_usage_primer for when to use.",
|
|
352
352
|
},
|
|
353
353
|
contract_id: { type: "string", description: "Which of your running rentals to use, from list_cloud_engines. Any engine shape works (combo, stockfish-only, lc0-only). Omit it when only one rental can serve the request; if several can, the error lists their contract ids." },
|
|
354
|
-
contract_ids: { type: "array", items: { type: "string" }, description: "Several running rentals to analyse the same FEN in parallel, from list_cloud_engines. Results merge by engine. Use it to get Stockfish and Lc0 on one position from separate rentals in one call." },
|
|
355
354
|
engines: {
|
|
356
355
|
type: "array",
|
|
357
356
|
items: { type: "string", enum: ["stockfish", "lc0"] },
|
package/package.json
CHANGED