@battlegrid/mcp-server 31.2.79 → 31.2.81
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/README.md +93 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -24,6 +24,99 @@ Seeing package `31.x` alongside handshake `battlegrid@33.x` — the package **be
|
|
|
24
24
|
|
|
25
25
|
**What this changes for you:** nothing about how you call anything. Upgrading the package no longer waits on a server deploy, and a server deploy no longer strands you on a package that names the wrong contract — reconnect and the announcement follows. **Contract breaking-change notes are no longer keyed to package versions**, since a contract move is no longer a release here; the v11-and-earlier notes below are kept as history, and the live vocabulary is always discovery.
|
|
26
26
|
|
|
27
|
+
## Contract history — v99 (your arena entries are one owner-only history)
|
|
28
|
+
|
|
29
|
+
**Breaking at v99: four tools are retired, two are added, and `get_agent_journal` loses a field.** v99 is
|
|
30
|
+
the contract on top of v98.
|
|
31
|
+
|
|
32
|
+
Every Market Grid entry you made — by your deployed agent, an agent you asked for, an MCP client,
|
|
33
|
+
Commander, a grid you built or dice you rolled — is now read from one history, and only by you.
|
|
34
|
+
|
|
35
|
+
### Removed tools
|
|
36
|
+
|
|
37
|
+
- **`get_agent_game_history`, `get_user_agent_game_history`, `get_public_agent_game_history` and
|
|
38
|
+
`get_mcp_reasoning_journal`** are gone, with no alias; a call gets an unknown-tool error. The
|
|
39
|
+
replacements:
|
|
40
|
+
- `get_agent_game_history { agentId }` → `list_my_market_grid_entries { agentId }`;
|
|
41
|
+
- `get_user_agent_game_history` → `list_my_market_grid_entries` with no `agentId`;
|
|
42
|
+
- `get_public_agent_game_history` → none: arena entry history is owner-only, so no public read
|
|
43
|
+
replaces it;
|
|
44
|
+
- `get_mcp_reasoning_journal { sessionId }` → `get_my_market_grid_entry { sessionId }`, whose
|
|
45
|
+
`reasoning` is the reasoning recorded with the entry's picks.
|
|
46
|
+
|
|
47
|
+
### Added tools
|
|
48
|
+
|
|
49
|
+
- **`list_my_market_grid_entries { window?, outcome?, source?, agentId?, cursor?, limit? }`** (`mcp:read`)
|
|
50
|
+
pages every entry you made, newest first by its first submission. `outcome` is `PLAYED` (the default:
|
|
51
|
+
every entry except a cancelled one), `IN_PLAY`, `PAID` (a payout above zero), `NOT_PAID` or
|
|
52
|
+
`CANCELLED`; `source` and `agentId` filter by the entry's original author. The same read returns one
|
|
53
|
+
count per outcome, a summary (paid rate, totals, net, averages) and the agents you can filter by. Page
|
|
54
|
+
with `nextCursor`.
|
|
55
|
+
- **`get_my_market_grid_entry { sessionId }`** (`mcp:read`) returns your entry in one session — the same
|
|
56
|
+
record a list row carries. A session you never entered is `NOT_FOUND`.
|
|
57
|
+
- Each entry carries its `entryState` (`WON`, `PLACED`, `NO_WIN`, `VOID_NO_SUBMISSION`, `IN_PLAY` or
|
|
58
|
+
`CANCELLED`), its `entryFee` and signed `netPnl` (null while in play or cancelled), a cancelled entry's
|
|
59
|
+
`refundState`, its `originalSource` and original `agent`, and `edited` — true once another author has
|
|
60
|
+
rewritten the picks. `reasoning` is null on an edited entry, because the record no longer describes the
|
|
61
|
+
picks. Neither tool accepts a user identity: both read the authenticated account's own entries.
|
|
62
|
+
|
|
63
|
+
### Narrowed output
|
|
64
|
+
|
|
65
|
+
- **`get_agent_journal` no longer returns `recentGames`.** An agent's arena entries are read with
|
|
66
|
+
`list_my_market_grid_entries { agentId }`.
|
|
67
|
+
|
|
68
|
+
A client that calls a retired tool, or reads `recentGames`, breaks at v99 — hence the MAJOR.
|
|
69
|
+
|
|
70
|
+
## Contract history — v98 (a clause can read the bar before)
|
|
71
|
+
|
|
72
|
+
**Breaking at v98: a condition clause accepts six operators that compare a column with its own previous
|
|
73
|
+
completed bar, and a clause's evidence gains a second shape.** v98 is the contract on top of v97.
|
|
74
|
+
|
|
75
|
+
### Widened input — something new you can send
|
|
76
|
+
|
|
77
|
+
- A condition clause on `stage_strategy_draft` and `preview_strategy_report` accepts:
|
|
78
|
+
- `crossesAbove` / `crossesBelow` with a number `value` — TRUE when the value is above (below) it on the
|
|
79
|
+
decided bar and was at or below (at or above) it on the bar before. A bar landing exactly on the level
|
|
80
|
+
has not crossed.
|
|
81
|
+
- `increased` / `decreased` with **no** literal — strictly above (below) the prior bar's reading. A
|
|
82
|
+
`value` beside them is refused.
|
|
83
|
+
- `enters` / `exits` with one `label` — the label read now and not on the bar before, or the reverse.
|
|
84
|
+
- Numeric headers take the crossings and changes; classification, direction and boolean headers take the
|
|
85
|
+
transitions; event and rank headers take none of them. A strategy's served `conditionOperators`
|
|
86
|
+
(`preview_strategy_report` at `detail: "detailed"`, and the scalar vocabulary) lists exactly what each
|
|
87
|
+
header admits on that strategy; `get_strategy_column_contract`, which reads no strategy's stored history,
|
|
88
|
+
lists the operators the header's kind takes.
|
|
89
|
+
- Each of the six reads two completed bars, never the forming one, on every basis, so its reading is never
|
|
90
|
+
provisional. A failed read on either bar is `UNRESOLVED`; a bar with no value reads `FALSE`.
|
|
91
|
+
|
|
92
|
+
### Narrowed acceptance — the same request, refused where it cannot be read
|
|
93
|
+
|
|
94
|
+
- A header whose stored history keeps only one bar (`conditionHold.maxWindow` 1) admits none of the six:
|
|
95
|
+
the clause is refused with `CONDITION_OPERATOR_UNSUPPORTED`, and every operator refusal's
|
|
96
|
+
`allowedDomain` now lists the operators that header admits.
|
|
97
|
+
- `crossesAbove`, `crossesBelow`, `enters` and `exits` are edges: a hold with `atLeast` above 1 is refused
|
|
98
|
+
(`CONDITION_HOLD_ILLEGAL`) — hold them "within n closes". A prior-bar clause's largest window is one bar
|
|
99
|
+
less than its header's, and the frame-read budget counts the bar before.
|
|
100
|
+
|
|
101
|
+
### Reshaped output — a clause's evidence has two shapes
|
|
102
|
+
|
|
103
|
+
- A prior-bar clause's evidence carries **`priorOperand`** — the same column's reading on the bar before —
|
|
104
|
+
and a **`decidedBar` that is never null**. It appears on `preview_strategy_report`,
|
|
105
|
+
`get_radar_close_decisions`, `list_gate_blocks`, `preview_radar_resolution`, `get_signal_log`,
|
|
106
|
+
`get_agent_coin_qualification` (a condition level's clauses) and the trade register an agent reads.
|
|
107
|
+
- A current-bar clause's evidence is unchanged and carries no `priorOperand`; every record written before
|
|
108
|
+
v98 reads as it was written.
|
|
109
|
+
- Rendered evidence lines read prior before current: `RSI14_now crosses above 50 (49.6 → 50.4)`.
|
|
110
|
+
|
|
111
|
+
### Widened output
|
|
112
|
+
|
|
113
|
+
- A condition series' `BOUND` threshold `op` widens to `crossesAbove` / `crossesBelow`, drawn at the level
|
|
114
|
+
crossed. A change or a transition draws no threshold.
|
|
115
|
+
- The authoring contract digest gains `domains.conditionOperator`, the thirteen operator names.
|
|
116
|
+
|
|
117
|
+
A clause reader that assumed one evidence shape, or an operator vocabulary of seven, breaks on the same
|
|
118
|
+
call at v98 — hence the MAJOR.
|
|
119
|
+
|
|
27
120
|
## Contract history — v97 (a signal records the evidence it decided on)
|
|
28
121
|
|
|
29
122
|
**Breaking at v97: an evaluated signal's evidence keys move, `BB_TOUCH` touches by %B, and a crossing is
|
package/dist/index.d.ts
CHANGED
|
@@ -49,7 +49,7 @@ import { type Implementation, type Prompt, type Resource } from '@modelcontextpr
|
|
|
49
49
|
* being asked. Move it for a change to THIS package — a proxy fix, a dependency bump, a docs
|
|
50
50
|
* correction. Never move it to track the server.
|
|
51
51
|
*/
|
|
52
|
-
export declare const PACKAGE_VERSION = "31.2.
|
|
52
|
+
export declare const PACKAGE_VERSION = "31.2.81";
|
|
53
53
|
export declare const DEFAULT_URL = "https://mcp.battlegrid.trade/mcp";
|
|
54
54
|
export interface EnvConfig {
|
|
55
55
|
apiKeys: string[];
|
package/dist/index.js
CHANGED
|
@@ -52,7 +52,7 @@ import { ListToolsRequestSchema, CallToolRequestSchema, ListPromptsRequestSchema
|
|
|
52
52
|
* being asked. Move it for a change to THIS package — a proxy fix, a dependency bump, a docs
|
|
53
53
|
* correction. Never move it to track the server.
|
|
54
54
|
*/
|
|
55
|
-
export const PACKAGE_VERSION = '31.2.
|
|
55
|
+
export const PACKAGE_VERSION = '31.2.81';
|
|
56
56
|
export const DEFAULT_URL = 'https://mcp.battlegrid.trade/mcp';
|
|
57
57
|
const MAX_RETRIES = 3;
|
|
58
58
|
const RETRY_DELAYS_MS = [2000, 4000, 8000];
|