@battlegrid/mcp-server 31.2.20 → 31.2.22

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/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.20";
52
+ export declare const PACKAGE_VERSION = "31.2.22";
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.20';
55
+ export const PACKAGE_VERSION = '31.2.22';
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.20",
3
+ "version": "31.2.22",
4
4
  "description": "BattleGrid MCP server — play crypto prediction games from AI agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -8,7 +8,7 @@
8
8
  "battlegrid-radar-deployment/SKILL.md": "d2a012b154e1e529db19529bd7c3d75d069f4e410d5804add51165f0f0902b2e",
9
9
  "battlegrid-strategy-authoring/SKILL.md": "2a973a9e52832ab1e0d9bf1b6d21b8bf898899bc3a455fde223646a01e914242",
10
10
  "battlegrid-strategy-doctor/SKILL.md": "9ab3f79128ec81d3e90167c3f1ea4bd6f6b570290e5ebe2bf855195263c58239",
11
- "battlegrid-strategy-examples/SKILL.md": "5343cb1ec76a1b1f1b3caface886ee87526ecd0da159abf98f34cf2de1392c3e",
11
+ "battlegrid-strategy-examples/SKILL.md": "6f15da8b29a8aff15f6829d7ae87cbe74904bfe5372e37fe17d578cc0c289577",
12
12
  "battlegrid-strategy-examples/references/playbooks.md": "35c543c090d00ba19e4bcf0a80502afac7a4954643fc535de0b24381c91ecbf4",
13
13
  "battlegrid-strategy-examples/references/recipes.md": "53887daece17995543e7d3fe1bf2577fc41a6254c291acacde48d7de63853641",
14
14
  "battlegrid-strategy-examples/references/tradingview-ports.md": "2b13adbc137178955edcca31b6ab40c01c745a932a0750b91db8820c736700bb",
@@ -104,9 +104,12 @@ setups block and from the `decide_trade` contract, not merely discouraged in the
104
104
  declares no verdict-carrying condition resolves `null` and constrains nothing.
105
105
 
106
106
  A verdict carrier must read a SETTLED bar wherever one is available to it — `clock: "CLOSE"`
107
- whenever every column it reads accepts a closed frame and every condition it references is itself
108
- `CLOSE`. Where no closed frame moves its operands (a published regime label, an open-interest
109
- regime), `LIVE` stays legal: there is no settled bar to take.
107
+ whenever every column in its CLOSURE accepts a closed frame. The closure is what it reads directly
108
+ plus everything reached through `conditionRef`, transitively: a referenced condition contributes what
109
+ IT reads, never the clock it happens to declare, so moving a clause into a building block and leaving
110
+ that block `LIVE` does not make a settled bar unavailable to the carrier. Where no closed frame moves
111
+ some operand in the closure (a published regime label, an open-interest regime, a published rolling
112
+ change), `LIVE` stays legal at any depth: there is no settled bar to take.
110
113
 
111
114
  Evaluation is three-valued: UNRESOLVED never collapses to FALSE; forming-bar reads are provisional.
112
115
 
@@ -117,10 +120,13 @@ this coin's own candle series at offset 0. Frame-inert operands are refused
117
120
  (`CONDITION_CLOCK_OPERAND_ILLEGAL`): perp-payload scalars, published rolling changes, ranks, zone
118
121
  entities, MDS regime labels, enrichment metrics, session scalars, and any clause authored at a
119
122
  non-zero offset. A closed frame cannot move them, so "held for N closes" would describe reads
120
- that never happened. The remedy is a split, not a re-clock: move that clause into its own LIVE
121
- condition and `conditionRef` it. **Worked liquidity floor:** `LIQUID_FLOOR` is LIVE because
122
- `vol24hUsd` is a bundle scalar; the carrier that refs it may be CLOSE over its own candle-series
123
- clauses.
123
+ that never happened. A frame-inert operand anywhere in a condition's closure simply keeps that
124
+ condition on `LIVE`, and that is legal — splitting the clause into its own condition and
125
+ `conditionRef`-ing it does NOT buy the referencing condition a CLOSE clock, because a `CLOSE`
126
+ condition may not reference a `LIVE` one (`CONDITION_CLOCK_REFERENCE_ILLEGAL`) and availability walks
127
+ into the referenced closure anyway. **Worked liquidity floor:** `LIQUID_FLOOR` is `LIVE` because
128
+ `vol24hUsd` is a bundle scalar, and a condition that references it is `LIVE` too. Reach for a split to
129
+ keep a condition's MEANING separable, not to change its clock.
124
130
 
125
131
  **The lane a strategy is deployed to.** Report-level scalars split by LANE, and the split is not a
126
132
  quality of the header — it is which reader runs. Market breadth and the reference pairs are ordinary