@battlegrid/mcp-server 32.0.32 → 32.0.33

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
@@ -38,6 +38,122 @@ Seeing package `31.x` alongside handshake `battlegrid@33.x` — the package **be
38
38
 
39
39
  **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.
40
40
 
41
+ ## Contract history — v135.1 (the bar clock, trading-session levels and a period level that stops at its roll)
42
+
43
+ **Additive at v135.1: thirty-five metrics and five studies, and one value moves.** v135.1 is the contract on top of
44
+ v135. Nothing a client sends is refused that v135 accepted. Reconnect the proxy, or restart it, so discovery reads the
45
+ widened vocabulary.
46
+
47
+ ### Widened input — new metrics and studies
48
+
49
+ - **The bar clock:** `UTC_HOUR`, `DAY_OF_WEEK` (0–6 UTC, 0 = Sunday) and `TRADING_SESSION` (`asia` 00–08, `london`
50
+ 08–13, `newYork` 13–21, `late` 21–24 UTC; fixed windows, no daylight-saving rule). Each is a fact of the read bar's
51
+ open time, so a session window is an ordinary condition. A weekend or the London–New York overlap is a composition.
52
+ - **Trading-session levels:** `ASIA_*`, `LONDON_*` and `NEW_YORK_*` (`HIGH` / `LOW` / `OPEN`) for the current
53
+ session, `null` outside it, and `PRIOR_*` for the previous instance of each.
54
+ - **Swept flags:** `PRIOR_<S>_HIGH_SWEPT` / `_LOW_SWEPT`, read `swept` or `intact`.
55
+ - **Opening ranges:** `OR15_HIGH`, `OR15_LOW`, `OR30_HIGH`, `OR30_LOW`, absent until each range closes.
56
+ - **Initial-balance extensions:** `IB_EXT_UP_150`, `IB_EXT_DOWN_150`, `IB_EXT_UP_200`, `IB_EXT_DOWN_200`, `null` for
57
+ a zero-range initial balance.
58
+ - **Studies:** `barClock`, `tradingSessions`, `priorTradingSessions`, `openingRange` and `ibExtensions`. The
59
+ metric-key enum widens with them on every input and output that carries it.
60
+
61
+ ### Changed values — the same schema serves a different number
62
+
63
+ - **A period level read across its roll is `null`.** A `spread` with one candle side, or a `levelInteraction`, over
64
+ a bundle-homed period level (a UTC day's or a trading session's) reads `null` on a bar outside the instance the
65
+ level was taken from. Before, it was measured against the next day's or session's level. A required condition over
66
+ one fails closed on the roll bar. `distance` and a spread between two bundle-homed levels are unchanged.
67
+ - **Prose says "UTC day" where it said "session"** for the day-fold metrics, `VWAP` and `CVD`. "Session" is now only a
68
+ game session, and the condition strip labels a trading session with its window ("New York 13–21 UTC"). The served
69
+ `nullBehavior` of `spread` and `levelInteraction` states the roll rule.
70
+
71
+ ### Digest move
72
+
73
+ - **`vocabularyDigest` moves.** A client caching vocabulary against it re-reads `list_strategy_vocabulary`.
74
+
75
+ ## Contract history — v135 (an efficiency window counts changes, and six series statistics)
76
+
77
+ **Breaking at v135: an `efficiency` window means one less than it did, and one output key is replaced.** v135 is the
78
+ contract on top of v134. Reconnect the proxy, or restart it, so discovery reads the new schemas.
79
+
80
+ ### Re-specified input — the same field means something else
81
+
82
+ - **An `efficiency` column's `window` counts bar-to-bar changes** and reads `window + 1` bars, as TradingView's
83
+ `er(src, n)` does; it counted the bars read. The default, 20 changes, reads the same 21 bars as before. An explicit
84
+ window `w` reads one bar more than it did, so send `w − 1` to read the bars you meant. The largest legal window is
85
+ one below the cap, and a window at the cap is refused. Stored windows on the server are already moved to `w − 1`.
86
+
87
+ ### Reshaped output — something you read moved
88
+
89
+ - **`rankableSpreadOperands` is gone** from `get_metric_construction_hints` and every catalog transform entry. Read
90
+ **`chainedOuters`** instead, present exactly when `chainSuccessors` is and keyed by its members. Each entry has the
91
+ `operands` construction accepts under that outer (`null` where the inner names none) and the chained column's
92
+ `windowMaximum`. Rank's operands are `chainedOuters.rank.operands`.
93
+ - **`chainOuterParameters`** (required) declares each chain outer once, on `get_metric_construction_hints` and the
94
+ report catalog.
95
+ - **A served `window` carries required `unit`:** `seriesElements`, `seriesChanges` (`efficiency`) or `priorElements`
96
+ (`pctl`).
97
+
98
+ ### Widened input and enums
99
+
100
+ - **Six transforms:** `zscore`, `stddev`, `linregSlope`, `pctl`, `rollingMin` and `rollingMax`, on every metric with a
101
+ series home and over every relation. A `zscore` header's column contract serves five `zoneBands` (`extreme low`
102
+ below −2 through `extreme high` above 2).
103
+ - **`efficiency` is accepted** on the 27 oscillators and over `distance` and `spread`.
104
+ - **`budgets.columnLookback` is 64**, where it was 32, for windows and offsets.
105
+ - A transform measurement's `nullPolicy` gains `endpoints`.
106
+
107
+ ### Narrowed offer
108
+
109
+ - **A series chain over a spread operand with no per-bar value** (`EMA5 × spread(MARK) × trajectory`) is no longer
110
+ offered. Construction already refused it, and the refusal now names the side and the operands that work.
111
+
112
+ ### Changed values
113
+
114
+ - **An `efficiency` value whose newest or oldest bar is missing, or whose series is shorter than `window + 1`, is
115
+ `null`.** A clause over it reads UNRESOLVED instead of reducing the bars present. Expect this on coins with session
116
+ gaps, young listings and short history homes.
117
+ - **`vocabularyDigest` moves.**
118
+
119
+ ## Contract history — v134 (Multi-Timeframe Confluence becomes columns, and the perp/spot rate gap)
120
+
121
+ **Breaking at v134: the Multi-Timeframe Confluence platform section is retired.** v134 is the contract on top of
122
+ v133. Reconnect the proxy, or restart it, so discovery reads the new schemas.
123
+
124
+ ### Rejected input — something you send is no longer accepted
125
+
126
+ - **`includeMtfConfluence` is refused** wherever an input names a platform section: every authoring, staging and
127
+ preview input, `get_strategy_section_template`'s section key and `get_context_source_full_preview`'s `sourceKey`.
128
+ **`mtfConfluence` is refused** in `get_market_context`'s `modules`.
129
+ - **Its lower-timeframe reads stay authorable as custom columns:** `MA_ALIGN × value`, `RSI14 × classifyZone` and
130
+ `ADX × classifyZone` at `{rel:'lower'}` (headers `MAalign_ltf`, `RSI14_ltf_zone`, `ADX14_ltf_zone`). The primary and
131
+ higher-timeframe reads belong to Moving Averages, RSI, Trend Strength and Higher Timeframe Context.
132
+ - Stored strategies and agents are already migrated on the server. Each placement became a custom section titled
133
+ `Multi-Timeframe Confluence (lower rung)`, and a Market Read marker `ADX14_…_state` became `ADX14_…_zone`.
134
+
135
+ ### Removed output — a key you read is gone
136
+
137
+ - **`includeMtfConfluence`** leaves every agent context-source read (`get_intelligence_agent`,
138
+ `list_intelligence_agents`, `get_agent_explorer`, `activate_intelligence_agent`, `archive_intelligence_agent`,
139
+ `commit_agent_draft`, `get_agent_prompt_context_preview`) and `list_strategy_categories`. The prompt-section kind
140
+ `mtf-confluence` leaves `get_context_sources_preview` and `get_context_source_full_preview`.
141
+
142
+ ### Widened input — a new metric
143
+
144
+ - **`PERP_SPOT_GAP`** (`perpSpotGap`): the perp/spot rate gap `|spot rate − perp rate|`, 0 to 2, offered `value` and
145
+ the report-scoped `rank`. It is `null` on the bar after the UTC-day reset and where the spot tape is unavailable,
146
+ never `0`. A required or direction-setting condition over its rank is refused at radar-policy save with
147
+ `CONDITION_UNREADABLE_BY_RADAR_SCAN`, as a ranked crowd column already is.
148
+
149
+ ### Changed values
150
+
151
+ - **Six verdict glosses state their gates:** `FLOW_ALIGN`, `SMART_RETAIL`, `CAPTAIN_CONF`, `CONFIDENCE`,
152
+ `PERP_SPOT_FLOW` and `PERP_SPOT_STRENGTH` serve the catalog gloss followed by the gate sentence over their operands'
153
+ headers. Read the sentence instead of restating thresholds.
154
+ - **A regime-timeframe column's `timeframe` is the regime timeframe**, whichever sections the report places. Before,
155
+ it read the anchor, or `null` without Module 16 or 17.
156
+
41
157
  ## Contract history — v131 (an agent's arena decisions and a trade's thesis are read where each is made)
42
158
 
43
159
  **Breaking at v131: one tool is replaced and some keys you read are gone.** v131 is the contract on top of v130.1. No
package/dist/index.d.ts CHANGED
@@ -47,7 +47,7 @@ import { Client, StreamableHTTPClientTransport } from '@modelcontextprotocol/cli
47
47
  * being asked. Move it for a change to THIS package — a proxy fix, a dependency bump, a docs
48
48
  * correction. Never move it to track the server.
49
49
  */
50
- export declare const PACKAGE_VERSION = "32.0.32";
50
+ export declare const PACKAGE_VERSION = "32.0.33";
51
51
  export declare const DEFAULT_URL = "https://mcp.battlegrid.trade/mcp";
52
52
  export interface EnvConfig {
53
53
  apiKeys: string[];
package/dist/index.js CHANGED
@@ -49,7 +49,7 @@ import { Client, SdkHttpError, StreamableHTTPClientTransport } from '@modelconte
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 const PACKAGE_VERSION = '32.0.32';
52
+ export const PACKAGE_VERSION = '32.0.33';
53
53
  export const DEFAULT_URL = 'https://mcp.battlegrid.trade/mcp';
54
54
  const MAX_RETRIES = 3;
55
55
  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": "32.0.32",
3
+ "version": "32.0.33",
4
4
  "description": "BattleGrid MCP server — play crypto prediction games from AI agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",