@battlegrid/mcp-server 31.2.78 → 31.2.79

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,52 @@ 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 — v97 (a signal records the evidence it decided on)
28
+
29
+ **Breaking at v97: an evaluated signal's evidence keys move, `BB_TOUCH` touches by %B, and a crossing is
30
+ read on the bar that leaves zero.** v97 is the contract on top of v96.
31
+
32
+ ### Changed meaning — the same record, different keys
33
+
34
+ - An evaluated signal's `indicatorValues` — on `get_signal_log`, `get_public_agent_signal_log_detail` and
35
+ `get_coin_signal_preview` — records the last price a live-priced signal evaluated under **`last_price`**.
36
+ Six signals recorded it under `price`: `MA_SMA200_ABOVE` / `_BELOW`, `SR_AT_SUPPORT` / `_RESISTANCE` and
37
+ `BOLLINGER_LOWER_TOUCH` / `_UPPER_TOUCH`; the three structure-approach signals now record it too.
38
+ - **`price` means the last closed close** on every signal that records it.
39
+ - The Bollinger touches add `bb_upper` and `bb_lower`, and their `bb_percent_b` is the live %B they
40
+ compared — never the closed-bar %B.
41
+ - The EMA 5/13 crosses add `ema_cross` (`1` / `−1`), and the sector comparison signals add `ema5`, `ema13`
42
+ and `ema20`.
43
+ - `MFI_SUSTAINED_*` and `CVD_BULLISH` / `CVD_BEARISH` record their prior-bar value when there is one, and
44
+ omit it when there is not.
45
+
46
+ A signal records exactly the keys its declared vocabulary names. Records written before v97 keep the keys
47
+ they were written with, so a reader of history meets both.
48
+
49
+ ### Changed values — the same fields, one rule each
50
+
51
+ - **Crossings.** One zero-cross rule decides every crossing: a value that reaches zero has not crossed; one
52
+ that leaves zero has. Every `crossDetect` column (`MACD_cross`, `PPO_cross`, `ROC_cross` and authored
53
+ ones), the `EMA_CROSS` label, the MACD / PPO / stochastic cross signals and `FUNDING_RATE_FLIPPING` read
54
+ no crossing on a bar that lands exactly on zero. They read the crossing on the bar that leaves it.
55
+ - **`BB_TOUCH` and `bandTouch`** classify a touch when %B is strictly below `0.05` or above `0.95` — the
56
+ touch signals' default thresholds. Before, a price within 2% of the band width of an edge, inclusive,
57
+ touched. A degenerate band reads `none`, and a `BBtouch` condition now agrees with the scorecard's touch
58
+ at defaults.
59
+ - **RSI zone.** The projected RSI state is overbought strictly above 70 and oversold strictly below 30, as
60
+ the `RSI14_zone` columns already read it.
61
+ - **Descriptions.** A served rule description states the thresholds that rule evaluates, and the ROC
62
+ descriptions read "positive and rising".
63
+
64
+ ### Widened output
65
+
66
+ - `get_strategy_signal_definition`'s `indicators[].meta` gains `optional: true` on a key the signal records
67
+ only when its read is present — `prev_cvd_value` on `CVD_BULLISH` / `CVD_BEARISH`, `prev_mfi14_value` on
68
+ `MFI_SUSTAINED_*`. Every other key is always recorded when the signal has the data to evaluate.
69
+
70
+ A key read at v96 is absent at v97 on the same signal, and a touch or a crossing read at v96 can read
71
+ differently on the same bar — hence the MAJOR.
72
+
27
73
  ## Contract history — v96 (a metric's meaning is declared once)
28
74
 
29
75
  **Breaking at v96: `efficiency` admits only a level or a price-fact series, and `nearestZoneDist` changes
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.78";
52
+ export declare const PACKAGE_VERSION = "31.2.79";
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.78';
55
+ export const PACKAGE_VERSION = '31.2.79';
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.78",
3
+ "version": "31.2.79",
4
4
  "description": "BattleGrid MCP server — play crypto prediction games from AI agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",