@battlegrid/mcp-server 31.2.32 → 31.2.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/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.
|
|
52
|
+
export declare const PACKAGE_VERSION = "31.2.33";
|
|
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.
|
|
55
|
+
export const PACKAGE_VERSION = '31.2.33';
|
|
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
package/skills/EXPORT.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"generator": "battlegrid-app/server/scripts/export-mcp-skills.mjs",
|
|
3
|
-
"contractVersion": "
|
|
3
|
+
"contractVersion": "62.1.0",
|
|
4
4
|
"files": {
|
|
5
|
-
"battlegrid-agent-management/SKILL.md": "
|
|
6
|
-
"battlegrid-arena-play/SKILL.md": "
|
|
5
|
+
"battlegrid-agent-management/SKILL.md": "d56834fa2016ec9371994999fa13a3dbb69906efc54db522e10fd2eb0ebb6044",
|
|
6
|
+
"battlegrid-arena-play/SKILL.md": "4cfaa92a8d0dcaf477b227abd774e7aa8642c185d72108dfd401be0cf8aecd7f",
|
|
7
7
|
"battlegrid-market-analysis/SKILL.md": "22fde9c4eac0261c89a8056ab8b20b66fcbe1fd58447fa0ac84fd410b4d134d7",
|
|
8
8
|
"battlegrid-radar-deployment/SKILL.md": "d2a012b154e1e529db19529bd7c3d75d069f4e410d5804add51165f0f0902b2e",
|
|
9
9
|
"battlegrid-strategy-authoring/SKILL.md": "66ed78d8e83401586b6d0ec33ce59b0fdc8b22b04a3db0ab529cc77779bfe1c9",
|
|
@@ -13,6 +13,6 @@
|
|
|
13
13
|
"battlegrid-strategy-examples/references/recipes.md": "53887daece17995543e7d3fe1bf2577fc41a6254c291acacde48d7de63853641",
|
|
14
14
|
"battlegrid-strategy-examples/references/tradingview-ports.md": "2b13adbc137178955edcca31b6ab40c01c745a932a0750b91db8820c736700bb",
|
|
15
15
|
"battlegrid-trade-analysis/SKILL.md": "f49482702f17d7fc44db00c31a19fc6e9350668fe76e8948d22faaa9c7e9d6bf",
|
|
16
|
-
"battlegrid-trade-proposal/SKILL.md": "
|
|
16
|
+
"battlegrid-trade-proposal/SKILL.md": "a198dd360bd7a1de5f00237b544a3535fc7c373612c09cf9a9dae4f2607c489a"
|
|
17
17
|
}
|
|
18
18
|
}
|
|
@@ -78,6 +78,14 @@ this confirm turn. A create spends an agent slot against the player's rank quota
|
|
|
78
78
|
dropped response would spend a second one. With the key, an ambiguous retry replays the original
|
|
79
79
|
result instead.
|
|
80
80
|
|
|
81
|
+
**When the mandate names the arena, read `get_account_state` in the same breath.** The arena needs
|
|
82
|
+
Agent Wagers: `mcpWagerEnabled: false` means every entry will be refused at the fee, so say the
|
|
83
|
+
arena needs it and offer the switch — **in a conversation a web Commander surface hosts, the switch
|
|
84
|
+
renders beneath the account card just shown, so offer it there**, and in every other host name the
|
|
85
|
+
Profile → Wallet tab path instead, because no control renders there. **Create the agent either
|
|
86
|
+
way**: the consent gates entering a game, never commissioning one. A `true` flag is consent alone
|
|
87
|
+
and not readiness — the pipeline's own refusal at the fee is the authority.
|
|
88
|
+
|
|
81
89
|
### 3. Lifecycle verbs: read first, state the radius, then confirm
|
|
82
90
|
|
|
83
91
|
Every one of update, rebind, halt, resume, activate and archive runs this shape. The reads
|
|
@@ -27,12 +27,20 @@ the grid you submit is the one that gets scored. There is no draft state and no
|
|
|
27
27
|
`get_account_state`. It carries the balance, the rank, and **`mcpWagerEnabled`** — a served
|
|
28
28
|
projection of the player's Server-Signed Wagers signer consent.
|
|
29
29
|
|
|
30
|
-
- **False** ⇒
|
|
31
|
-
Wagers), and continue **read-only**: sessions, market
|
|
32
|
-
useful.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
30
|
+
- **False** ⇒ a **definite refusal**, before any submission. Say so up front, name the enablement
|
|
31
|
+
path (Profile → Wallet tab → enable Agent Wagers), and continue **read-only**: sessions, market
|
|
32
|
+
context, results and journals are all still useful. Never call a submission tool the flag says
|
|
33
|
+
will be refused.
|
|
34
|
+
- **True** ⇒ proceed, but it is **consent alone and never readiness**. It projects the signer
|
|
35
|
+
consent and nothing else, so an account whose server signer is unregistered reads true here and
|
|
36
|
+
is still refused at the fee. The wager pipeline re-checks at the fee itself and its refusal is
|
|
37
|
+
the authority in either direction.
|
|
38
|
+
|
|
39
|
+
**In a conversation a web Commander surface hosts, the switch renders beneath the account card just
|
|
40
|
+
shown, or beneath the refusal — offer it there.** Say the arena needs Agent Wagers and point at the
|
|
41
|
+
control rather than at a settings path they would have to leave the conversation for. Every other
|
|
42
|
+
host — an external MCP client, Telegram — renders no such control, so the Wallet-tab path above is
|
|
43
|
+
the enablement path there.
|
|
36
44
|
|
|
37
45
|
### 2. Workflow A reads, in order
|
|
38
46
|
|
|
@@ -56,8 +56,13 @@ flow stays available.
|
|
|
56
56
|
(`barStart`), when the answer is due (`decidesBy`), and the deadline past which that bar can no
|
|
57
57
|
longer be decided (`windowEndsAt`). `decidesBy` and `windowEndsAt` are different instants — a bar
|
|
58
58
|
that has already settled is decided at the next sweep, seconds away.
|
|
59
|
-
- Say where the answer will appear:
|
|
60
|
-
`list_pending_approvals`. Nothing further is needed from the player until
|
|
59
|
+
- Say where the answer will appear: on the delegation card in this conversation, and — if it
|
|
60
|
+
proposes a trade — in `list_pending_approvals`. Nothing further is needed from the player until
|
|
61
|
+
then; the card carries the answer to them when the bar closes.
|
|
62
|
+
- When the player asks what the agent decided, read the request's conversation with
|
|
63
|
+
`get_trade_conversation({ conversationId })`, using the id the `queued` result carried. It serves
|
|
64
|
+
the whole transcript in stored order — the queued card, the agent's reasoning, its thesis and
|
|
65
|
+
setups, the recommendation, a no-trade with its reason and next coins, or a close answer.
|
|
61
66
|
- `get_entry_request` re-reads a request still pending; `cancel_entry_request` withdraws it. Both
|
|
62
67
|
are `NOT_FOUND` once it has been answered, cancelled or expired, and that is the honest record:
|
|
63
68
|
the answer is in the conversation.
|
|
@@ -71,12 +76,17 @@ flow stays available.
|
|
|
71
76
|
|
|
72
77
|
## 4. When the answer arrives — approve or decline only on the player's word
|
|
73
78
|
|
|
74
|
-
**
|
|
75
|
-
|
|
79
|
+
**On a web Commander surface the approval is the card's own.** The decided close lands on the
|
|
80
|
+
delegation card in this conversation, carrying the player's Accept and Decline. `accept_entry_decision`
|
|
81
|
+
and `cancel_entry_decision` remain yours for the external and Telegram doors, and on the web only on
|
|
82
|
+
the player's explicit typed word — never inferred from interest, agreement, or a question about the
|
|
83
|
+
trade.
|
|
84
|
+
|
|
85
|
+
**In a conversation the Agent Toolbox hosts, the approval is not yours to send at all.** The decided
|
|
86
|
+
close lands on the trade card in the lane beside you, carrying the player's own Accept and Decline;
|
|
76
87
|
`accept_entry_decision` and `cancel_entry_decision` are refused there as tool errors, so calling one
|
|
77
88
|
spends an op and moves nothing. Read the card back to them — the direction, the levels, the
|
|
78
|
-
conviction, the expiry — and say what you would do, which is the whole of your part.
|
|
79
|
-
to work from is whatever the player attaches from a card: its rendered readings, nothing more.
|
|
89
|
+
conviction, the expiry — and say what you would do, which is the whole of your part.
|
|
80
90
|
|
|
81
91
|
- A decided close produces one of: a PROPOSED decision awaiting approval; a no-trade with the
|
|
82
92
|
reason and the next coins worth asking about; a close that did not qualify; a window that passed
|