@claudinho/mcp 0.8.4 → 0.8.5
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/index.js +17 -2
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -3047,6 +3047,18 @@ function hasGroupStarted(group, tables) {
|
|
|
3047
3047
|
if (!table?.rows.length) return false;
|
|
3048
3048
|
return table.rows.some((r) => r.played > 0);
|
|
3049
3049
|
}
|
|
3050
|
+
function matchesPerTeamInGroup(teamCount) {
|
|
3051
|
+
return Math.max(0, teamCount - 1);
|
|
3052
|
+
}
|
|
3053
|
+
function isGroupStandingsComplete(table) {
|
|
3054
|
+
const n = table?.rows.length ?? 0;
|
|
3055
|
+
if (n < 2) return false;
|
|
3056
|
+
const required = matchesPerTeamInGroup(n);
|
|
3057
|
+
return table.rows.every((r) => r.played >= required);
|
|
3058
|
+
}
|
|
3059
|
+
function isGroupComplete(group, tables) {
|
|
3060
|
+
return isGroupStandingsComplete(tables.find((t2) => t2.group === group));
|
|
3061
|
+
}
|
|
3050
3062
|
function resolveWinner(match) {
|
|
3051
3063
|
if (!isFinished(match.status)) return void 0;
|
|
3052
3064
|
if (match.winnerCode) {
|
|
@@ -3095,7 +3107,10 @@ function resolveSlot(ref, ctx) {
|
|
|
3095
3107
|
case "group": {
|
|
3096
3108
|
if (!ctx.standingsDegraded && hasGroupStarted(ref.group, ctx.tables)) {
|
|
3097
3109
|
const team = teamFromStandings(ref.group, ref.position, ctx.tables);
|
|
3098
|
-
if (team)
|
|
3110
|
+
if (team) {
|
|
3111
|
+
const status = isGroupComplete(ref.group, ctx.tables) ? "confirmed" : "projected";
|
|
3112
|
+
return participant(team, status);
|
|
3113
|
+
}
|
|
3099
3114
|
}
|
|
3100
3115
|
const label = ref.position === 1 ? t(ctx.lang, "bracket.slot.groupWinner", { group: ref.group }) : t(ctx.lang, "bracket.slot.groupSecond", { group: ref.group });
|
|
3101
3116
|
return tbd(label);
|
|
@@ -5031,7 +5046,7 @@ async function toolGetShareSnippet(args) {
|
|
|
5031
5046
|
|
|
5032
5047
|
// src/server.ts
|
|
5033
5048
|
var SERVER_NAME = "claudinho";
|
|
5034
|
-
var SERVER_VERSION = "0.8.
|
|
5049
|
+
var SERVER_VERSION = "0.8.5";
|
|
5035
5050
|
var VOICE = asFlavorLevel(process.env.CLAUDINHO_FLAVOR) === "off" ? "" : `
|
|
5036
5051
|
Voice: when relaying scores, narrate with lively, regionally-appropriate football-commentary energy in the user's language. Each match line may end with a short exclamation ("\u2014 \xA1GOOOOL!") \u2014 use it as a tone cue. Keep every fact exact; never invent details and never impersonate or name a real commentator.`;
|
|
5037
5052
|
var INSTRUCTIONS = `Claudinho serves live scores, fixtures, and group standings for the 2026 men's football tournament.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@claudinho/mcp",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.5",
|
|
4
4
|
"mcpName": "io.github.arturogarrido/claudinho",
|
|
5
5
|
"description": "MCP server for the 2026 men's football tournament — live scores, fixtures, standings, read-only prediction-market signals, and paste-ready match cards. Works with Claude Code, Cursor, Codex, Windsurf, Zed. Not affiliated with FIFA or Anthropic.",
|
|
6
6
|
"type": "module",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"tsup": "^8.0.0",
|
|
58
58
|
"typescript": "^5.7.0",
|
|
59
59
|
"vitest": "^4.1.9",
|
|
60
|
-
"@claudinho/core": "0.8.
|
|
60
|
+
"@claudinho/core": "0.8.5"
|
|
61
61
|
},
|
|
62
62
|
"scripts": {
|
|
63
63
|
"build": "tsup",
|