@battlegrid/mcp-server 31.2.69 → 31.2.71
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 +55 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/skills/EXPORT.json +2 -2
- package/skills/battlegrid-strategy-examples/SKILL.md +5 -2
package/README.md
CHANGED
|
@@ -24,6 +24,61 @@ 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 — v89 (a new strategy is held to today's operator bounds)
|
|
28
|
+
|
|
29
|
+
**Breaking at v89: acceptance narrows behind unchanged schemas.** v89 is the contract on top of v88.1.
|
|
30
|
+
|
|
31
|
+
### Narrowed acceptance — `commit_strategy_draft`, `preview_strategy_report` (`DRAFT` source)
|
|
32
|
+
|
|
33
|
+
- **A create judges every dial of the new strategy at the operator bounds configured now.** That includes a dial
|
|
34
|
+
the author typed, one a fork copied from its source, and one left at the creation default. The operator bounds
|
|
35
|
+
are the platform's ATR %, stop-loss ATR-multiple and risk:reward limits.
|
|
36
|
+
- At v88.1 a create judged only the dials that differed from the fork's source or the creation default. So a copied
|
|
37
|
+
dial outside a bound tightened since the source stored it was committed.
|
|
38
|
+
- At v89 `commit_strategy_draft` (`expectedRevision: null`) refuses that create with `VALIDATION_ERROR`, naming the
|
|
39
|
+
dial and the bound, for example `minAtrPct (0.1) must be >= 0.15`. Nothing is created and the draft is unchanged:
|
|
40
|
+
stage the dial inside the bound and commit again.
|
|
41
|
+
- `preview_strategy_report` with `source: { kind: "DRAFT", … }` composes the draft exactly as the commit does, so it
|
|
42
|
+
refuses the same draft with the same error where v88.1 rendered it.
|
|
43
|
+
- `stage_strategy_draft` and `get_strategy_draft` report the error in their diagnostics before the commit.
|
|
44
|
+
- `fork_strategy`'s description now says this, so its description hash moves.
|
|
45
|
+
|
|
46
|
+
### Behaviour behind unchanged schemas
|
|
47
|
+
|
|
48
|
+
- **An edit still judges only what it moves.** An update or a restore carries a dial it leaves unchanged, so a stored
|
|
49
|
+
value outside a since-tightened bound stays readable and saveable on its own strategy.
|
|
50
|
+
- **The platform keeps its defaults creatable.** An operator cannot set a bound that would put a creation default
|
|
51
|
+
outside it, so a create that leaves a dial untouched is never refused for a value the platform seeded.
|
|
52
|
+
|
|
53
|
+
Something accepted at v88.1 is refused at v89 — hence the MAJOR.
|
|
54
|
+
|
|
55
|
+
## Contract history — v88.1 (an open position keeps the exit rules it opened under)
|
|
56
|
+
|
|
57
|
+
**Additive at v88.1: acceptance widens and one served value narrows; no input or output schema
|
|
58
|
+
changes.** v88.1 is the contract on top of v88.
|
|
59
|
+
|
|
60
|
+
### Widened acceptance — `commit_strategy_draft`, `restore_strategy`, `commit_agent_draft`
|
|
61
|
+
|
|
62
|
+
- **An open position no longer refuses a strategy commit, a restore or a rebind.** At v88 a write that
|
|
63
|
+
would leave an exit rule unreadable on a coin a bound agent held an open position on was refused with
|
|
64
|
+
`CONDITION_UNREADABLE_BY_RADAR_SCAN` or `CONDITION_OPERAND_UNSERVED_IN_LANE`. At v88.1 it commits. A radar
|
|
65
|
+
slot's coin and a pending manual request's coin are still checked, and refused exactly as before.
|
|
66
|
+
- The three tools' descriptions now say this, so their description hashes move.
|
|
67
|
+
|
|
68
|
+
### Narrowed served value — the readability refusal's `coinRole`
|
|
69
|
+
|
|
70
|
+
- The refusal's error context serves `coinRole` as `SLOT` or `MANUAL_REQUEST` only. `OPEN_POSITION` is no
|
|
71
|
+
longer emitted. A client switching on it loses a member it can no longer receive.
|
|
72
|
+
|
|
73
|
+
### Behaviour behind unchanged schemas
|
|
74
|
+
|
|
75
|
+
- **An open position keeps what it opened with.** An agent position records the exit rules it opened
|
|
76
|
+
under, with the report and timeframes they read, and its exit rules are evaluated from that record for
|
|
77
|
+
the life of the trade. An exit-rule, exit-policy or level edit reaches only positions opened after it;
|
|
78
|
+
a revision, rebind, SYSTEM update or timeframe change after the open never reaches an open trade.
|
|
79
|
+
|
|
80
|
+
Nothing accepted at v88 is refused at v88.1.
|
|
81
|
+
|
|
27
82
|
## Contract history — v88 (an exit rule names the side it closes)
|
|
28
83
|
|
|
29
84
|
**Breaking at v88: a condition body accepted at v87 is refused, and condition and chart output 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.71";
|
|
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.71';
|
|
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];
|
package/package.json
CHANGED
package/skills/EXPORT.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"generator": "battlegrid-app/server/scripts/export-mcp-skills.mjs",
|
|
3
|
-
"contractVersion": "88.
|
|
3
|
+
"contractVersion": "88.1.0",
|
|
4
4
|
"files": {
|
|
5
5
|
"battlegrid-agent-management/SKILL.md": "b2f04d76480de2f9fdbd00f8cb25610d2b72fcaa4f87ca57a09bd9ffc78fdbba",
|
|
6
6
|
"battlegrid-arena-play/SKILL.md": "4cfaa92a8d0dcaf477b227abd774e7aa8642c185d72108dfd401be0cf8aecd7f",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"battlegrid-radar-deployment/SKILL.md": "a624807c9d1f0e1fa650592bfbbdab228d75098d66a9c2d4d3cd3f85e5d3796c",
|
|
9
9
|
"battlegrid-strategy-authoring/SKILL.md": "a5066740d7d57f095545fd812b0228a8eef6e3b08c87047596a0e1639ae4971d",
|
|
10
10
|
"battlegrid-strategy-doctor/SKILL.md": "14f20bff9e2b5a59d11634fe3615b1298d672d5e2eba06d3dc8698b571b3bee3",
|
|
11
|
-
"battlegrid-strategy-examples/SKILL.md": "
|
|
11
|
+
"battlegrid-strategy-examples/SKILL.md": "7ec80099efe3a923e1a701703eba5edbbe3ce044628273c806dfd688f2fd715c",
|
|
12
12
|
"battlegrid-strategy-examples/references/playbooks.md": "63aa07f3d55f97e53b2bf6401528807ab23bd093a4bbc37e598158249db24a59",
|
|
13
13
|
"battlegrid-strategy-examples/references/recipes.md": "61382acdd295fa159f055b787ba501f1c015f383f59a6714a973057f10de611f",
|
|
14
14
|
"battlegrid-strategy-examples/references/tradingview-ports.md": "2b13adbc137178955edcca31b6ab40c01c745a932a0750b91db8820c736700bb",
|
|
@@ -222,7 +222,7 @@ scan has on that coin, or free the coin.
|
|
|
222
222
|
|
|
223
223
|
**The refusal lands where an agent meets a coin**: at the radar deploy (its preview, the builder's
|
|
224
224
|
Save and the draft commit); at a manual entry request, as `CONDITION_UNREADABLE_ON_COIN`;
|
|
225
|
-
and, for an agent already deployed or holding
|
|
225
|
+
and, for an agent already deployed or holding a pending manual request, at a
|
|
226
226
|
strategy commit (`commit_strategy_draft`, the builder's Save, `restore_strategy`) or a rebind (the
|
|
227
227
|
agent draft's STRATEGY_BINDING commit). A commit is checked only on behalf of those agents: a
|
|
228
228
|
strategy carries no lane of its own, so one with no agent the radar acts on is never checked, and
|
|
@@ -242,7 +242,10 @@ an exit rule may reference anything, so "exit when the entry setup stops holding
|
|
|
242
242
|
whose definition is `NOT` a `conditionRef` to the entry condition. An exit rule is legal only over a
|
|
243
243
|
closure every operand of which a completed bar MOVES (`CONDITION_EXIT_READ_ILLEGAL`), which rules out
|
|
244
244
|
a developing read — a bar in progress is the forming bar, and an exit fired on one is an intrabar
|
|
245
|
-
exit — and rules out a frame-inert operand, which could never fire.
|
|
245
|
+
exit — and rules out a frame-inert operand, which could never fire. A position stamps the exit rules
|
|
246
|
+
it opened under, with the report and timeframes they read: an exit-rule edit applies to positions
|
|
247
|
+
opened after it, and an open position keeps the exit rules it opened with, so an open position never
|
|
248
|
+
refuses a commit or a rebind.
|
|
246
249
|
|
|
247
250
|
**A state column is not a flip event.** `ST_DIR` reads the same on every bar of a trend, so
|
|
248
251
|
`ST_DIR is "bullish"` is a regime filter and never an entry signal. The flip needs an event column
|