@battlegrid/mcp-server 31.2.83 → 31.2.86

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 CHANGED
@@ -24,6 +24,69 @@ 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 — v102 (your entry history's facets come with the first page)
28
+
29
+ **Breaking at v102: `list_my_market_grid_entries` moves its counts, summary and agent options under one
30
+ `facets` object, sent with the first page only, and every entry gains a payout state.** v102 is the
31
+ contract on top of v101.1.
32
+
33
+ ### Reshaped output — something you read has moved or been added
34
+
35
+ - **`outcomeCounts`, `summary` and `agentOptions` move under `facets`**, unchanged inside it:
36
+ `facets.outcomeCounts`, `facets.summary`, `facets.agentOptions`.
37
+ - **`facets` comes with the first page only.** A page you read with a `cursor` carries `facets: null`.
38
+ Keep the first page's facets for the whole scroll: every page of one read shares the same filters, so
39
+ the first page's counts, summary and agent options describe all of them.
40
+ - **Every entry gains `payoutState`**, in `list_my_market_grid_entries` and `get_my_market_grid_entry`:
41
+ `RECORDED` once settlement has recorded both of the entry's payouts, `UNDER_REVIEW` if it left one
42
+ unrecorded, and `null` while the entry is in play or cancelled.
43
+ - **`facets.summary` gains `payoutsUnderReviewCount`**: how many settled entries the money figures leave
44
+ out because their payout is under review.
45
+
46
+ ### Behaviour behind unchanged schemas
47
+
48
+ - **An entry under review has `netPnl: null`.** It is listed under `PLAYED` only, never under `PAID` or
49
+ `NOT_PAID`, and the summary leaves both its fee and its payout out of every money figure, so the totals
50
+ stay consistent. Today no entry is under review: the entries settled before settlement recorded both
51
+ payouts now record `0` for the payout they never received, so their net reads the same as before.
52
+ - The five filters (`window`, `outcome`, `source`, `agentId`, `cursor`) accept exactly what they
53
+ accepted before. Only the `agentId` description changes: it now points at `facets.agentOptions`.
54
+
55
+ A client that reads `outcomeCounts`, `summary` or `agentOptions` at the top level, expects them on every
56
+ page, or rejects unknown entry fields, breaks at v102 — hence the MAJOR.
57
+
58
+ ## Contract history — v101.1 (swing highs, swing lows and the structure label)
59
+
60
+ **Additive at v101.1: the catalog gains three swing-structure metrics.** v101.1 is the contract on top of
61
+ v101; nothing you send today is refused and nothing you read is reshaped.
62
+
63
+ ### Widened input — something new you can send
64
+
65
+ - **`SWING_FRACTAL_HIGH` and `SWING_FRACTAL_LOW`** — the most recent swing high and swing low: a bar
66
+ whose high is at or above the two highs before it and strictly above the two after it (Pine's
67
+ `ta.pivothigh(2, 2)` tie rule), and the mirror on the lows. A swing is published from the bar that
68
+ completes its right side — never under its own bar, never from a forming bar — and held until the
69
+ next swing on its side. They are candle price levels: every transform a candle level takes,
70
+ `levelInteraction` included, and they rank across the board as `dist_fractalHi` / `dist_fractalLo`.
71
+ - **`SWING_FRACTAL_LABEL`** — the most recent swing against the previous one on its side: `HH` / `LH` for
72
+ a high (an equal high is `LH`), `HL` / `LL` for a low (an equal low is `HL`), `none` when no comparable
73
+ pair is in reach. A held state, value-only; on too short a history it reads nothing.
74
+ - **Break of structure** is `dist_fractalHi crossesAbove 0` / `dist_fractalLo crossesBelow 0`; a step of
75
+ the level onto a newly confirmed swing never fires it.
76
+
77
+ ### Widened output
78
+
79
+ - The catalog and vocabulary surfaces list the three keys, and the authoring digest's `metricKeys` gains
80
+ them.
81
+
82
+ ### Still refused
83
+
84
+ - The headers are `fractalHi` / `fractalLo` / `fractalLabel`. The `swingHi` / `swingLo` stems retired at
85
+ v53 (the Donchian channel's old names) stay refused: `dist_swingHi` is still `CONDITION_COLUMN_UNKNOWN`.
86
+
87
+ A client that treats the metric vocabulary as a closed set re-reads it; no request is refused — hence
88
+ the MINOR.
89
+
27
90
  ## Contract history — v101 (an agent on a radar cannot be archived)
28
91
 
29
92
  **Breaking at v101: `archive_intelligence_agent` refuses an agent held in any radar deployment, and its
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.83";
52
+ export declare const PACKAGE_VERSION = "31.2.86";
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.83';
55
+ export const PACKAGE_VERSION = '31.2.86';
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@battlegrid/mcp-server",
3
- "version": "31.2.83",
3
+ "version": "31.2.86",
4
4
  "description": "BattleGrid MCP server — play crypto prediction games from AI agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",