@battlegrid/mcp-server 31.2.41 → 31.2.44
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 +114 -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,120 @@ 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 — v66
|
|
28
|
+
|
|
29
|
+
**Breaking: one tool retired and one input reshaped.** Radar content now commits only as a draft the
|
|
30
|
+
player was shown a live preview of. The player's radar builder and every conversation share one
|
|
31
|
+
unsaved draft per coin.
|
|
32
|
+
|
|
33
|
+
### Removed tool — something you call no longer exists
|
|
34
|
+
|
|
35
|
+
- **`upsert_radar_deployment` is retired**, with no alias. Calling it is an unknown-tool error. To
|
|
36
|
+
deploy or change a coin's Radar policy:
|
|
37
|
+
1. `stage_radar_deployment_draft` the axes you are changing;
|
|
38
|
+
2. `preview_radar_resolution` with `request: { kind: "DRAFT", draftVersion }` at the version staging
|
|
39
|
+
returned;
|
|
40
|
+
3. show the player the resolution, and on their word call `commit_radar_deployment_draft` with the
|
|
41
|
+
`previewToken` that preview returned and `confirm: true`.
|
|
42
|
+
|
|
43
|
+
Pausing is no longer a flag on the write: use `pause_radar_deployment`.
|
|
44
|
+
|
|
45
|
+
### Rejected input — something you send is no longer accepted
|
|
46
|
+
|
|
47
|
+
- **`preview_radar_resolution`'s `request` needs a `kind`.** `{ kind: "SLOTS", deploymentTimeframe,
|
|
48
|
+
slots, simulatedRegime? }` is the old request. `{ kind: "DRAFT", draftVersion }` previews the
|
|
49
|
+
player's draft of the coin at that version, composed over the deployed policy exactly as the commit
|
|
50
|
+
writes it. `{ kind: "COMMITTED" }` previews the deployed policy a resume would arm. A request
|
|
51
|
+
without `kind` is refused.
|
|
52
|
+
|
|
53
|
+
### Wider surface — seven tools added
|
|
54
|
+
|
|
55
|
+
- **`stage_radar_deployment_draft`**, **`get_radar_deployment_draft`**,
|
|
56
|
+
**`list_radar_deployment_drafts`** and **`discard_radar_deployment_draft`** (`mcp:read`). The draft
|
|
57
|
+
axes are `DEPLOYMENT_TIMEFRAME`, `RULES` (the complete ordered rule list, first = highest priority)
|
|
58
|
+
and `DEFAULT_SLOT`, each written whole. None of them commits or arms anything.
|
|
59
|
+
- **`commit_radar_deployment_draft`** (`coinId`, `previewToken`, `confirm: true`; `mcp:wager`) — the
|
|
60
|
+
only MCP committer of radar content.
|
|
61
|
+
- **`pause_radar_deployment`** (`coinId`; `mcp:wager`) — no revision and no certificate: a disarm never
|
|
62
|
+
waits on a read.
|
|
63
|
+
- **`resume_radar_deployment`** (`coinId`, `previewToken`, `confirm: true`; `mcp:wager`) — needs the
|
|
64
|
+
certificate a live `COMMITTED` preview returned.
|
|
65
|
+
|
|
66
|
+
### Reshaped output — `preview_radar_resolution`
|
|
67
|
+
|
|
68
|
+
- Gains **`previewToken`**, the certificate a LIVE preview (no `simulatedRegime`) of `DRAFT` or
|
|
69
|
+
`COMMITTED` earns — null otherwise, and good for five minutes. It also gains
|
|
70
|
+
**`enabledAfterCommit`**: whether the policy trades once the previewed write lands. A paused
|
|
71
|
+
policy's draft stays paused.
|
|
72
|
+
|
|
73
|
+
### Refusals worth knowing before you commit or resume
|
|
74
|
+
|
|
75
|
+
- **The certificate is bound to what you previewed**: your credential, the player, the coin, the
|
|
76
|
+
subject, the deployment and its revision, the draft version and the composed content. If the
|
|
77
|
+
player edits the draft, another commit lands, the coin is redeployed, or an agent in it is deleted,
|
|
78
|
+
the commit or resume is a `CONFLICT` and nothing is written. Preview again; never reuse the old
|
|
79
|
+
certificate.
|
|
80
|
+
- **`commit_radar_deployment_draft` takes only a draft certificate**, and `resume_radar_deployment`
|
|
81
|
+
only a committed-policy one.
|
|
82
|
+
- **`discard_radar_deployment_draft` with `confirm: true` requires `expectedVersion`**: the version the
|
|
83
|
+
unconfirmed call named and the player was shown. A draft that moved since is answered again, and
|
|
84
|
+
nothing is removed.
|
|
85
|
+
- **`delete_radar_deployment` also ends the player's radar draft of the coin.**
|
|
86
|
+
|
|
87
|
+
### Vocabulary
|
|
88
|
+
|
|
89
|
+
`toolCount` goes 126 → 132. `preview_radar_resolution`'s input and output schemas move, and
|
|
90
|
+
`upsert_radar_deployment`'s are removed.
|
|
91
|
+
|
|
92
|
+
## Contract history — v65
|
|
93
|
+
|
|
94
|
+
**Breaking on one input, and four refusals behind unchanged schemas.** Agent staging now names the
|
|
95
|
+
draft version its proposal was read against, and three commits and one stage step aside where they
|
|
96
|
+
would otherwise land around the player's open draft or on a strategy that moved.
|
|
97
|
+
|
|
98
|
+
### Rejected input — something you send is no longer accepted
|
|
99
|
+
|
|
100
|
+
- **`stage_agent_draft` requires `draftVersion`**, an integer ≥ 0: the `version` the
|
|
101
|
+
`get_agent_draft` read you proposed against returned, or `0` when it returned `{ draft: null }`.
|
|
102
|
+
A call that omits it, or sends a negative or fractional number, is refused at the boundary. On a
|
|
103
|
+
new create draft send `0`, then reuse the `version` each accepted call returns.
|
|
104
|
+
|
|
105
|
+
### Refusals worth knowing before you stage or commit
|
|
106
|
+
|
|
107
|
+
- **A `draftVersion` above the draft's own is refused.** A draft's version only grows, so no read
|
|
108
|
+
ever returned it: the draft you read was saved or discarded since. Read again — never raise the
|
|
109
|
+
number to get past the refusal.
|
|
110
|
+
|
|
111
|
+
- **The contested-axis refusal is measured from your `draftVersion`**, not from a read the call
|
|
112
|
+
makes for itself, so an edit the player made between your read and your stage is refused by name
|
|
113
|
+
rather than silently overwritten.
|
|
114
|
+
|
|
115
|
+
- **`update_strategy_signal_rule` and `restore_strategy` answer `CONFLICT` while the player holds a
|
|
116
|
+
draft of that strategy.** Compile the tune and stage it with `stage_strategy_plan`; for a restore,
|
|
117
|
+
ask the player to save or discard their draft first. A caller whose player holds no draft is
|
|
118
|
+
unaffected.
|
|
119
|
+
|
|
120
|
+
- **`stage_strategy_plan` refuses a plan the strategy committed past** after the plan compiled,
|
|
121
|
+
with the same answer `apply_strategy_plan` gives: compile again against what is committed now.
|
|
122
|
+
|
|
123
|
+
- **Every refusal around an open draft names its version** in `details.draftVersion` — the
|
|
124
|
+
committers above, the agent committers, and a stage refused for a version above the draft's own —
|
|
125
|
+
so you can read the draft the player holds and propose against it.
|
|
126
|
+
|
|
127
|
+
### Changed meaning, unchanged shape
|
|
128
|
+
|
|
129
|
+
- **A draft axis's `source` names the door it came through.** A Telegram Commander turn stamps
|
|
130
|
+
`telegram` and a connected client stamps `mcp`, where every staging call used to stamp
|
|
131
|
+
`commander`. Both values were already in the enum.
|
|
132
|
+
|
|
133
|
+
- **A draft's `version` keeps counting after a save or discard empties it.** The next draft for the
|
|
134
|
+
same agent or strategy starts above the last version rather than at `1`, so a version you read is
|
|
135
|
+
never reissued to a different draft.
|
|
136
|
+
|
|
137
|
+
### Vocabulary
|
|
138
|
+
|
|
139
|
+
`toolCount` stays 126. One input schema moves, `stage_agent_draft`'s; no output schema moves.
|
|
140
|
+
|
|
27
141
|
## Contract history — v64.1
|
|
28
142
|
|
|
29
143
|
Purely additive in schema, with **one refusal behind an unchanged one.** An agent's unsaved
|
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.44";
|
|
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.44';
|
|
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];
|