@battlegrid/mcp-server 32.0.0 → 32.0.1

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
@@ -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.0";
50
+ export declare const PACKAGE_VERSION = "32.0.1";
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.0';
52
+ export const PACKAGE_VERSION = '32.0.1';
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.0",
3
+ "version": "32.0.1",
4
4
  "description": "BattleGrid MCP server — play crypto prediction games from AI agents",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "generator": "battlegrid-app/server/scripts/export-mcp-skills.mjs",
3
- "contractVersion": "113.0.0",
3
+ "contractVersion": "116.0.0",
4
4
  "files": {
5
5
  "battlegrid-agent-management/SKILL.md": "9dc151c32c3578d06e8895c6752d7a64959bff6a6681a01d62ab65e1ea1590d1",
6
6
  "battlegrid-agent-management/references/agent-stage-examples.md": "dffcc353d61dfc7b5bb6a2b3077fc6bf8c760a34c287cafb3b59b99306f24195",
7
7
  "battlegrid-arena-play/SKILL.md": "2e37970a66b8738ffbc445a23da90651c1f41b56ce4eef551582ab123517ef74",
8
8
  "battlegrid-arena-play/references/entry-stage-examples.md": "0223f3743171ff213e943789d27590b2f65648398e85e10cd24938d5eb6af665",
9
9
  "battlegrid-market-analysis/SKILL.md": "fcbe98e30e1edce39bb170c224cdf20181934f62b5f3a26b293787c70eeb6229",
10
- "battlegrid-radar-deployment/SKILL.md": "dfe8f354ac3dd426eedeac1ec080ac518e9c8cbfefdd26036afa61f80c08295c",
10
+ "battlegrid-radar-deployment/SKILL.md": "cf6664f51f92d40acce21a46f4fb078d9afe46c99c4f4b603bf002e73d4c5a23",
11
11
  "battlegrid-radar-deployment/references/arena-stage-examples.md": "d27cfed1f4663f267c4a7ecebe4a6e65a450fc74bd14ce8987fb61af5bbf2ca5",
12
- "battlegrid-radar-deployment/references/radar-stage-examples.md": "e3805f5c1b243135a7f25fb3a8cc6093dd242f8ad67b7e6b242bbdefa58a0735",
12
+ "battlegrid-radar-deployment/references/radar-stage-examples.md": "13fc3f55d91d3da9754e1ed7fb27493b7b7ba4d40a6a7e8d1ee0365f90ea10de",
13
13
  "battlegrid-strategy-authoring/SKILL.md": "39cfa46b1f640e6800edb7e85a8f2c4b6b8786cddf71bb8244d172a44fc11d75",
14
14
  "battlegrid-strategy-authoring/references/strategy-stage-examples.md": "f10ecdc91f3660a708eee7a7bacefce2acbb46c9cf7e0ac1454bd54f839f39fd",
15
15
  "battlegrid-strategy-doctor/SKILL.md": "e34e055b0cc9b355bc1adeb5d49d464eaa0756ca3f48dc89ca2ccdda94e1311f",
@@ -107,7 +107,12 @@ is test-routing a regime. Never carry a fact from a radar conversation into it,
107
107
  Do not confirm a draft whose diagnostics carry an error: stage a fix.
108
108
  3. `preview_radar_resolution({ coinId, request: { kind: "DRAFT", draftVersion } })` at the version that
109
109
  read returned. It composes the draft over the deployed policy **exactly as the commit will write it**,
110
- and refuses a draft no longer at that version with `DRAFT_VERSION_MOVED`.
110
+ and refuses a draft no longer at that version with `DRAFT_VERSION_MOVED`. Its `ruleCloseCoverage`
111
+ counts, for each hours rule, the closes of its agent's `strategyTimeframe` bar the rule's hours let
112
+ it decide through `windowEndAt`. Before asking the player to commit, name every rule whose
113
+ `decidableCloses` is 0: its agent's timeframe, the served `windowEndAt`, and that it is this rule's
114
+ hours alone that hold no close — not the agent, which still decides closes it is on duty for through
115
+ another rule or the default. Never tell the player the agent will not trade.
111
116
 
112
117
  To try a slot set without touching the draft, preview `{ kind: "SLOTS", slots }` — it resolves
113
118
  explicit slots and nothing can commit it.
@@ -122,6 +127,19 @@ from what the player asked for:
122
127
  | only in named hours and days | a rule with an hours condition |
123
128
  | in named regimes during named hours | a rule with one hours condition and one regime condition |
124
129
 
130
+ When the player names an exchange session — New York, the New York open, London, the London open,
131
+ the London–New York overlap, Tokyo, the Tokyo open — call `get_radar_market_hours` and stage that session's `hours`
132
+ exactly as served, merged with any other session they name; never work session hours out yourself,
133
+ because New York and London shift with daylight saving on their own dates and the overlap changes
134
+ shape on each of those dates. The three opens are one hour wide, so they suit agents on 1h bars or
135
+ faster. The days stay the player's choice. Tell the player the staged hours are UTC, that an hour is
136
+ on duty from :00 through :59, and, when the session carries a `nextShift`, the date its hours change
137
+ and that the rule keeps the hours it was given.
138
+
139
+ Session closes are not presets. Asked for "the New York close" or any other session close, stage only
140
+ the hours the player names, or raise flattening before the session ends as a separate idea — never
141
+ work a close window out yourself.
142
+
125
143
  When the ask maps to no single row, or a refusal rules out the construction the player asked for,
126
144
  ask the player which construction they mean, naming the rows that fit — never stage one they did not
127
145
  choose. Complete stage payloads for every row are in `references/radar-stage-examples.md`.
@@ -352,8 +370,9 @@ Four reads, cheapest first. Stop as soon as the player's question is answered.
352
370
  refused it and nothing was traded. It is the only history of not-qualifying closes: the journal
353
371
  writes no row for one, and `resolvesNow` keeps only each agent's last decision — the one
354
372
  `reading.lastClose` (step 1) carries; this read holds every decision before it. Narrow with
355
- `agentId`; page back by passing the response's `nextBefore` as `before`, and stop when
356
- `nextBefore` is null — that is the end of the history. A bar still
373
+ `agentId`. Each record carries its whole evidence, so keep `limit` small; page back by passing
374
+ the response's `nextCursor` as `cursor`, and stop when `nextCursor` is null — that is the end of
375
+ the history. A bar still
357
376
  waiting inside its window has no record yet (`resolvesNow` shows its `closeDecision.state` as
358
377
  `DEFERRED`), and records are kept 90 days.
359
378
  4. **`get_radar_activity`** only for what steps 2 and 3 cannot do: more rows than its ten, a
@@ -56,7 +56,10 @@ regime condition is the regime-reading floor, and must be a level one of the sel
56
56
 
57
57
  ## On duty only in named hours and days
58
58
 
59
- Hours are UTC, 0–23. Days run 0 (Sunday) to 6. Each is listed once.
59
+ Hours are UTC, 0–23. Days run 0 (Sunday) to 6. Each is listed once. For a named exchange session —
60
+ including the London and Tokyo opens and the London–New York overlap — stage the `hours` `get_radar_market_hours`
61
+ serves for it rather than a set of your own; the example below is a shape, not a session. No session
62
+ close is served: a close is staged only as hours the player names.
60
63
 
61
64
  ```json stage_radar_deployment_draft
62
65
  {