getcompetitive 1.1.0 → 2.0.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threats.data.js","sourceRoot":"","sources":["../src/threats.data.ts"],"names":[],"mappings":"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"}
package/dist/threats.js CHANGED
@@ -1,335 +1,46 @@
1
1
  /**
2
- * Curated meta threat list + standard sets for Pokémon Champions regulations.
2
+ * Usage-derived meta threat list + standard sets for Pokémon Champions regulations.
3
3
  *
4
- * This is EDITORIAL content, not usage-derived statistics. It reflects
5
- * established competitive knowledge applied to each regulation's legal roster
6
- * (Mega Evolution is the marquee mechanic; Legendary/Restricted Pokémon are
7
- * banned in the M-A/M-B/M-C era). Treat tiers and sets as informed starting
8
- * points, not authoritative usage data.
4
+ * Nothing in here is hand-authored. The threat list is generated from live
5
+ * competitive data by `scripts/build-threats.mjs`, which ranks the legal roster
6
+ * by measured usage, resolves each species' most-played set, and writes
7
+ * `src/threats.data.ts`:
9
8
  *
10
- * To add a new regulation:
11
- * 1. `node scripts/extract-regs.mjs` (refresh legal rosters)
12
- * 2. add the set metadata in `src/regulations.ts`
13
- * 3. `node scripts/threat-scaffold.mjs m-d` (print the Mega roster to guide authoring)
14
- * 4. add a `ThreatList` entry here keyed by the new regulation id
9
+ * * species, item, ability, nature and moves — Limitless VGC online
10
+ * tournaments (at least 25 players), aggregated per regulation
11
+ * * ranking and `usage` — share of the sampled teams carrying the species,
12
+ * summed across its forms because Species Clause is per National Pokédex
13
+ * number
14
+ * * EV spreads — the in-game ranked ladder
15
+ *
16
+ * To refresh a regulation: `node scripts/build-threats.mjs m-c`. See the
17
+ * generator for the derivation rules (tier bands, role labels, the EV
18
+ * conversion from Champions stat points).
15
19
  */
16
- const THREATS_M_C = [
17
- {
18
- species: 'Incineroar',
19
- role: 'Intimidate support pivot',
20
- tier: 'S',
21
- item: 'Safety Goggles',
22
- ability: 'Intimidate',
23
- nature: 'Careful',
24
- evs: { hp: 252, spd: 252, def: 4 },
25
- moves: ['Fake Out', 'Flare Blitz', 'Knock Off', 'U-turn'],
26
- teraType: 'Ghost',
27
- notes: 'The format-defining support: Fake Out + Intimidate + slow U-turn. Ghost Tera dodges Fake Out and Fighting.',
28
- },
29
- {
30
- species: 'Garchomp',
31
- role: 'Mega sweeper / wallbreaker',
32
- tier: 'S',
33
- item: 'Garchompite',
34
- ability: 'Rough Skin',
35
- megaForm: 'Mega Garchomp',
36
- megaAbility: 'Sand Force',
37
- nature: 'Jolly',
38
- evs: { atk: 252, spe: 252, hp: 4 },
39
- moves: ['Swords Dance', 'Earthquake', 'Dragon Claw', 'Rock Slide'],
40
- teraType: 'Steel',
41
- notes: 'Premier Mega. Sand Force in sand, Swords Dance to break walls, Rock Slide for Flying coverage.',
42
- },
43
- {
44
- species: 'Salamence',
45
- role: 'Mega Dragon Dance sweeper',
46
- tier: 'S',
47
- item: 'Salamencite',
48
- ability: 'Intimidate',
49
- megaForm: 'Mega Salamence',
50
- megaAbility: 'Aerilate',
51
- nature: 'Adamant',
52
- evs: { atk: 252, spe: 252, hp: 4 },
53
- moves: ['Dragon Dance', 'Dual Wingbeat', 'Earthquake', 'Roost'],
54
- teraType: 'Steel',
55
- notes: 'Intimidate pre-Mega, Aerilate-boosted Flying STAB after. One Dragon Dance ends games.',
56
- },
57
- {
58
- species: 'Kangaskhan',
59
- role: 'Mega pressure',
60
- tier: 'S',
61
- item: 'Kangaskhanite',
62
- ability: 'Scrappy',
63
- megaForm: 'Mega Kangaskhan',
64
- megaAbility: 'Parental Bond',
65
- nature: 'Jolly',
66
- evs: { atk: 252, spe: 252, hp: 4 },
67
- moves: ['Fake Out', 'Body Slam', 'Sucker Punch', 'Crunch'],
68
- teraType: 'Normal',
69
- notes: 'Parental Bond double-hits everything; Fake Out + Sucker Punch chip is relentless.',
70
- },
71
- {
72
- species: 'Gholdengo',
73
- role: 'Good as Gold breaker',
74
- tier: 'S',
75
- item: 'Life Orb',
76
- ability: 'Good as Gold',
77
- nature: 'Timid',
78
- evs: { spa: 252, spe: 252, hp: 4 },
79
- moves: ['Nasty Plot', 'Make It Rain', 'Shadow Ball', 'Recover'],
80
- teraType: 'Flying',
81
- notes: 'Good as Gold blocks status and pivots around; Make It Rain is a nuke. Flying Tera flips its Ground weakness.',
82
- },
83
- {
84
- species: 'Lucario',
85
- role: 'Mega mixed sweeper',
86
- tier: 'A',
87
- item: 'Lucarionite',
88
- ability: 'Justified',
89
- megaForm: 'Mega Lucario',
90
- megaAbility: 'Adaptability',
91
- nature: 'Jolly',
92
- evs: { atk: 252, spe: 252, hp: 4 },
93
- moves: ['Swords Dance', 'Close Combat', 'Meteor Mash', 'Extreme Speed'],
94
- teraType: 'Steel',
95
- notes: 'Adaptability turns Close Combat into a delete button; Extreme Speed picks off weakened threats.',
96
- },
97
- {
98
- species: 'Dragapult',
99
- role: 'Fast pivot / special breaker',
100
- tier: 'A',
101
- item: 'Choice Specs',
102
- ability: 'Infiltrator',
103
- nature: 'Timid',
104
- evs: { spa: 252, spe: 252, hp: 4 },
105
- moves: ['Draco Meteor', 'Shadow Ball', 'U-turn', 'Thunderbolt'],
106
- teraType: 'Ghost',
107
- notes: 'Fastest relevant mon in the format; Infiltrator ignores screens/Substitute.',
108
- },
109
- {
110
- species: 'Charizard',
111
- role: 'Mega X sweeper',
112
- tier: 'A',
113
- item: 'Charizardite X',
114
- ability: 'Blaze',
115
- megaForm: 'Mega Charizard X',
116
- megaAbility: 'Tough Claws',
117
- nature: 'Adamant',
118
- evs: { atk: 252, spe: 252, hp: 4 },
119
- moves: ['Dragon Dance', 'Flare Blitz', 'Dragon Claw', 'Earthquake'],
120
- teraType: 'Fire',
121
- notes: 'Tough Claws + Dragon Dance makes Flare Blitz and Dragon Claw both stab-boosted nukes.',
122
- },
123
- {
124
- species: 'Gengar',
125
- role: 'Mega special breaker',
126
- tier: 'A',
127
- item: 'Gengarite',
128
- ability: 'Cursed Body',
129
- megaForm: 'Mega Gengar',
130
- megaAbility: 'Shadow Tag',
131
- nature: 'Timid',
132
- evs: { spa: 252, spe: 252, hp: 4 },
133
- moves: ['Nasty Plot', 'Shadow Ball', 'Sludge Bomb', 'Focus Blast'],
134
- teraType: 'Ghost',
135
- notes: 'Shadow Tag traps and removes a defensive piece; pairs with Perish Song.',
136
- },
137
- {
138
- species: 'Scizor',
139
- role: 'Mega priority + pivot',
140
- tier: 'A',
141
- item: 'Scizorite',
142
- ability: 'Technician',
143
- megaForm: 'Mega Scizor',
144
- megaAbility: 'Technician',
145
- nature: 'Adamant',
146
- evs: { hp: 252, atk: 252, def: 4 },
147
- moves: ['Swords Dance', 'Bullet Punch', 'U-turn', 'Close Combat'],
148
- teraType: 'Steel',
149
- notes: 'Technician Bullet Punch is the best priority in the format; U-turn keeps momentum.',
150
- },
151
- {
152
- species: 'Metagross',
153
- role: 'Mega bulky offense',
154
- tier: 'A',
155
- item: 'Metagrossite',
156
- ability: 'Clear Body',
157
- megaForm: 'Mega Metagross',
158
- megaAbility: 'Tough Claws',
159
- nature: 'Jolly',
160
- evs: { atk: 252, spe: 252, hp: 4 },
161
- moves: ['Meteor Mash', 'Zen Headbutt', 'Earthquake', 'Bullet Punch'],
162
- teraType: 'Steel',
163
- notes: 'Tough Claws buffs every attacking move; Bullet Punch for cleanup.',
164
- },
165
- {
166
- species: 'Tyranitar',
167
- role: 'Mega sand attacker',
168
- tier: 'A',
169
- item: 'Tyranitarite',
170
- ability: 'Sand Stream',
171
- megaForm: 'Mega Tyranitar',
172
- megaAbility: 'Sand Stream',
173
- nature: 'Adamant',
174
- evs: { atk: 252, spe: 252, hp: 4 },
175
- moves: ['Dragon Dance', 'Crunch', 'Earthquake', 'Stone Edge'],
176
- teraType: 'Rock',
177
- notes: 'Sets sand for the team and sweeps with Dragon Dance; also enables Sand Rush Excadrill.',
178
- },
179
- {
180
- species: 'Gardevoir',
181
- role: 'Mega special Fairy',
182
- tier: 'A',
183
- item: 'Gardevoirite',
184
- ability: 'Trace',
185
- megaForm: 'Mega Gardevoir',
186
- megaAbility: 'Pixilate',
187
- nature: 'Timid',
188
- evs: { spa: 252, spe: 252, hp: 4 },
189
- moves: ['Calm Mind', 'Moonblast', 'Psyshock', 'Mystical Fire'],
190
- teraType: 'Fairy',
191
- notes: 'Pixilate + Fairy STAB pressures Dark/Dragon; Calm Mind turns it into a win condition.',
192
- },
193
- {
194
- species: 'Gyarados',
195
- role: 'Mega Dragon Dance + Intimidate',
196
- tier: 'A',
197
- item: 'Gyaradosite',
198
- ability: 'Intimidate',
199
- megaForm: 'Mega Gyarados',
200
- megaAbility: 'Mold Breaker',
201
- nature: 'Jolly',
202
- evs: { atk: 252, spe: 252, hp: 4 },
203
- moves: ['Dragon Dance', 'Waterfall', 'Earthquake', 'Ice Fang'],
204
- teraType: 'Flying',
205
- notes: 'Intimidate support then Mold Breaker Waterfall ignores abilities like Levitate/Water Absorb.',
206
- },
207
- {
208
- species: 'Blaziken',
209
- role: 'Mega Speed Boost sweeper',
210
- tier: 'A',
211
- item: 'Blazikenite',
212
- ability: 'Speed Boost',
213
- megaForm: 'Mega Blaziken',
214
- megaAbility: 'Speed Boost',
215
- nature: 'Adamant',
216
- evs: { atk: 252, spe: 252, hp: 4 },
217
- moves: ['Protect', 'Swords Dance', 'Flare Blitz', 'Close Combat'],
218
- teraType: 'Fire',
219
- notes: 'Speed Boost snowballs; Protect farms a turn, Swords Dance makes it unstoppable.',
220
- },
221
- {
222
- species: 'Mawile',
223
- role: 'Mega Huge Power breaker',
224
- tier: 'A',
225
- item: 'Mawilite',
226
- ability: 'Intimidate',
227
- megaForm: 'Mega Mawile',
228
- megaAbility: 'Huge Power',
229
- nature: 'Adamant',
230
- evs: { hp: 252, atk: 252, def: 4 },
231
- moves: ['Swords Dance', 'Play Rough', 'Iron Head', 'Sucker Punch'],
232
- teraType: 'Fairy',
233
- notes: 'Huge Power + Swords Dance reaches absurd attack; Sucker Punch covers its low speed.',
234
- },
235
- {
236
- species: 'Grimmsnarl',
237
- role: 'Prankster screen setter',
238
- tier: 'A',
239
- item: 'Light Clay',
240
- ability: 'Prankster',
241
- nature: 'Careful',
242
- evs: { hp: 252, spd: 252, def: 4 },
243
- moves: ['Reflect', 'Light Screen', 'Spirit Break', 'Thunder Wave'],
244
- teraType: 'Steel',
245
- notes: 'Prankster dual screens enable every setup sweeper; Spirit Break drops the opponent\u2019s SpA.',
246
- },
247
- {
248
- species: 'Swampert',
249
- role: 'Mega Swift Swim (rain)',
250
- tier: 'B',
251
- item: 'Swampertite',
252
- ability: 'Damp',
253
- megaForm: 'Mega Swampert',
254
- megaAbility: 'Swift Swim',
255
- nature: 'Adamant',
256
- evs: { atk: 252, spe: 252, hp: 4 },
257
- moves: ['Waterfall', 'Earthquake', 'Ice Punch', 'Flip Turn'],
258
- teraType: 'Water',
259
- notes: 'Swift Swim under rain makes it the fastest rain breaker; Flip Turn pivots.',
260
- },
261
- {
262
- species: 'Sceptile',
263
- role: 'Mega special attacker',
264
- tier: 'B',
265
- item: 'Sceptilite',
266
- ability: 'Overgrow',
267
- megaForm: 'Mega Sceptile',
268
- megaAbility: 'Lightning Rod',
269
- nature: 'Timid',
270
- evs: { spa: 252, spe: 252, hp: 4 },
271
- moves: ['Leaf Storm', 'Giga Drain', 'Dragon Pulse', 'Focus Blast'],
272
- teraType: 'Grass',
273
- notes: 'Lightning Rod redirects Electric (great vs Rotom-Wash/Thunder) while it fires boosted Leaf Storm.',
274
- },
275
- {
276
- species: 'Whimsicott',
277
- role: 'Prankster speed control',
278
- tier: 'B',
279
- item: 'Focus Sash',
280
- ability: 'Prankster',
281
- nature: 'Timid',
282
- evs: { hp: 252, spe: 252, def: 4 },
283
- moves: ['Tailwind', 'Taunt', 'Encore', 'Moonblast'],
284
- teraType: 'Fairy',
285
- notes: 'Priority Tailwind + Taunt/Encore disruption; the format\u2019s best speed control.',
286
- },
287
- {
288
- species: 'Pelipper',
289
- role: 'Rain setter',
290
- tier: 'B',
291
- item: 'Damp Rock',
292
- ability: 'Drizzle',
293
- nature: 'Bold',
294
- evs: { hp: 252, def: 252, spd: 4 },
295
- moves: ['Scald', 'Hurricane', 'U-turn', 'Roost'],
296
- teraType: 'Water',
297
- notes: 'Drizzle powers Swift Swim (Mega Swampert) and 100%-accurate Hurricane; U-turn pivots.',
298
- },
299
- {
300
- species: 'Rotom-Wash',
301
- role: 'Bulky pivot',
302
- tier: 'B',
303
- item: 'Sitrus Berry',
304
- ability: 'Levitate',
305
- nature: 'Bold',
306
- evs: { hp: 252, def: 252, spd: 4 },
307
- moves: ['Volt Switch', 'Hydro Pump', 'Will-O-Wisp', 'Protect'],
308
- teraType: 'Electric',
309
- notes: 'Levitate + Will-O-Wisp walls physical attackers; Volt Switch keeps momentum.',
310
- },
311
- ];
312
- export const THREAT_LISTS = {
313
- 'm-c': {
314
- regulation: 'm-c',
315
- name: 'Regulation Set M-C',
316
- source: 'curated',
317
- sourceAsOf: '2026-09-14',
318
- note: 'Curated editorial threat list, not usage-derived. Mega Evolution is the marquee mechanic; Legendary/Restricted Pokémon are banned.',
319
- threats: THREATS_M_C,
320
- },
321
- };
20
+ import raw from './threats.data.js';
21
+ // `raw` is generated JSON: its literals widen `tier` to `string` and give every
22
+ // `evs` object its own optional-key shape, so neither overlaps the declared types.
23
+ export const THREAT_LISTS = raw;
322
24
  export function getThreatList(regulation) {
323
- const q = regulation.toLowerCase();
324
- return Object.values(THREAT_LISTS).find((l) => l.regulation === q || l.name.toLowerCase() === q || l.regulation.replace(/[^a-z0-9]/g, '') === q.replace(/[^a-z0-9]/g, ''));
25
+ const q = regulation.toLowerCase().replace(/[^a-z0-9]/g, '');
26
+ return Object.values(THREAT_LISTS).find((l) => [l.regulation, l.name].map((alias) => alias.toLowerCase().replace(/[^a-z0-9]/g, '')).includes(q));
325
27
  }
28
+ /**
29
+ * Look up one species' set, optionally scoped to a regulation. Matches the base
30
+ * species, the form it is played as, and its Mega form, so "Indeedee-F" and
31
+ * "Salamence-Mega" find the same entries as "Indeedee" and "Salamence".
32
+ */
326
33
  export function findThreat(species, regulation) {
327
- const lists = regulation ? [getThreatList(regulation)].filter(Boolean) : Object.values(THREAT_LISTS);
328
- const q = species.toLowerCase();
34
+ const q = species.toLowerCase().replace(/[^a-z0-9]/g, '');
35
+ const lists = regulation
36
+ ? [getThreatList(regulation)].filter(Boolean)
37
+ : Object.values(THREAT_LISTS);
329
38
  for (const list of lists) {
330
- const t = list.threats.find((x) => x.species.toLowerCase() === q);
331
- if (t)
332
- return { list, threat: t };
39
+ const threat = list.threats.find((t) => [t.species, t.form, t.megaForm]
40
+ .map((alias) => alias?.toLowerCase().replace(/[^a-z0-9]/g, ''))
41
+ .includes(q));
42
+ if (threat)
43
+ return { list, threat };
333
44
  }
334
45
  return undefined;
335
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"threats.js","sourceRoot":"","sources":["../src/threats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"threats.js","sourceRoot":"","sources":["../src/threats.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,GAAG,MAAM,mBAAmB,CAAC;AAiFpC,gFAAgF;AAChF,mFAAmF;AACnF,MAAM,CAAC,MAAM,YAAY,GAA+B,GAA4C,CAAC;AAErG,MAAM,UAAU,aAAa,CAAC,UAAkB;IAC9C,MAAM,CAAC,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAC7D,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5C,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CACjG,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe,EAAE,UAAmB;IAC7D,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,UAAU;QACtB,CAAC,CAAE,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAkB;QAC/D,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CACrC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC;aAC5B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;aAC9D,QAAQ,CAAC,CAAC,CAAC,CACf,CAAC;QACF,IAAI,MAAM;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACtC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -10,7 +10,7 @@ import { ok, wrap, requireExists, READ_ONLY_ANNOTATIONS } from '../result.js';
10
10
  export function registerAnalyzeTools(server) {
11
11
  server.registerTool('analyze_team', {
12
12
  title: 'Analyze team synergy',
13
- description: 'Analyze a whole team\u2019s type synergy: per-type weak, resist, and immune counts with the types at risk, super-effective coverage from STAB, Tera type and supplied moves, speed placement, and a transparent 0-100 heuristic score \u2014 a quick signal, not a metagame rating. Use `type_chart` or `get_type` for one matchup. Each entry is a `species` with optional `teraType` and `moves`; unknown moves are collected into `unknownMoves`, unknown species or Tera types error, and `regulation` (e.g. "m-c") adds legal threats that outspeed your fastest member. Read-only and offline over the bundled dataset.',
13
+ description: 'Analyze a whole team\u2019s type synergy: per-type weak, resist, and immune counts with the types at risk, super-effective coverage from STAB, Tera type and supplied moves, speed placement, and a transparent 0-100 heuristic score \u2014 a quick signal, not a metagame rating. Use `get_type_matchup` or `get_type` for one matchup. Each entry is a `species` with optional `teraType` and `moves`; unknown moves are collected into `unknownMoves`, unknown species or Tera types error, and `regulation` (e.g. "m-c") adds legal threats that outspeed your fastest member. Read-only and offline over the bundled dataset.',
14
14
  annotations: READ_ONLY_ANNOTATIONS,
15
15
  inputSchema: {
16
16
  team: z
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/tools/analyze.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/tools/analyze.ts"],"names":[],"mappings":"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"}
@@ -57,7 +57,7 @@ const setSchema = z.object({
57
57
  moves: z
58
58
  .array(z.string())
59
59
  .optional()
60
- .describe('Moveset names, e.g. ["Earthquake", "Dragon Claw"]; used by `calc_matchups` to pick the hardest-hitting move per defender.'),
60
+ .describe('Moveset names, e.g. ["Earthquake", "Dragon Claw"]; used by `calculate_matchups` to pick the hardest-hitting move per defender.'),
61
61
  });
62
62
  /** Flatten a calc damage value (number | number[] | number[][]) into a flat roll list. */
63
63
  function flatDamage(d) {
@@ -96,7 +96,7 @@ const reportedEvs = z
96
96
  /** `[minimum, maximum]` damage of a resolved move, across all of its rolls. */
97
97
  const damageRangeSchema = z
98
98
  .tuple([z.number(), z.number()])
99
- .describe('[minimum, maximum] damage: `calculate_damage` totals every roll (multi-hit moves are summed), while `calc_matchups` reports the flattened per-hit rolls, so its bounds stay single-hit values. [0, 0] means nothing could be calculated.');
99
+ .describe('[minimum, maximum] damage: `calculate_damage` totals every roll (multi-hit moves are summed), while `calculate_matchups` reports the flattened per-hit rolls, so its bounds stay single-hit values. [0, 0] means nothing could be calculated.');
100
100
  /** One side of a damage calculation as the calc resolved it (see `summarizeSet` in dex.ts). */
101
101
  const damageSetSchema = z.object({
102
102
  species: z.string().describe('Canonical species name used in the calculation, e.g. "Garchomp".'),
@@ -117,7 +117,7 @@ const damageSetSchema = z.object({
117
117
  export function registerCalcTools(server) {
118
118
  server.registerTool('calculate_stats', {
119
119
  title: 'Calculate final stats',
120
- description: 'Compute one Pok\u00e9mon\u2019s final six stats at a level from its nature, IVs, and EVs, returning the stat table plus base stats and BST. Stats only, never a battle: use `calculate_damage` or `calc_matchups` for damage rolls, `speed_check` to place the Speed stat against a regulation roster, and `optimize_evs` when the spread must be derived from a goal. EVs are 0-252 per stat with a 510 total cap, IVs 0-31, level defaults to 50 and nature to Serious. Read-only and offline; unknown species or nature names return an isError.',
120
+ description: 'Compute one Pok\u00e9mon\u2019s final six stats at a level from its nature, IVs, and EVs, returning the stat table plus base stats and BST. Stats only, never a battle: use `calculate_damage` or `calculate_matchups` for damage rolls, `check_speed` to place the Speed stat against a regulation roster, and `optimize_evs` when the spread must be derived from a goal. EVs are 0-252 per stat with a 510 total cap, IVs 0-31, level defaults to 50 and nature to Serious. Read-only and offline; unknown species or nature names return an isError.',
121
121
  annotations: READ_ONLY_ANNOTATIONS,
122
122
  inputSchema: {
123
123
  species: z.string().describe('Species or form name, e.g. "Garchomp", "Ogerpon-Wellspring".'),
@@ -177,7 +177,7 @@ export function registerCalcTools(server) {
177
177
  }));
178
178
  server.registerTool('calculate_damage', {
179
179
  title: 'Calculate damage for one matchup',
180
- description: 'Simulate one attack end to end: one attacker set, one defender set, one named move, optionally under weather, terrain, game type, or side conditions. Use `calc_matchups` when one attacker must be tested against several defenders, and `calculate_stats` for stat tables with no battle. `field.weather` takes Sand/Sun/Rain/Hail/Snow and `field.terrain` Electric/Grassy/Psychic/Misty; `attackerSide`/`defenderSide` take calc flags (isReflect, isLightScreen, isAuroraVeil, spikes 0-3, isSR), and set levels default to 100 here. Species and move names are validated first, so typos return an isError. Returns every damage roll, damageRange, koChance text, a description line, and both sets\u2019 computed stats. Read-only and offline.',
180
+ description: 'Simulate one attack end to end: one attacker set, one defender set, one named move, optionally under weather, terrain, game type, or side conditions. Use `calculate_matchups` when one attacker must be tested against several defenders, and `calculate_stats` for stat tables with no battle. `field.weather` takes Sand/Sun/Rain/Hail/Snow and `field.terrain` Electric/Grassy/Psychic/Misty; `attackerSide`/`defenderSide` take calc flags (isReflect, isLightScreen, isAuroraVeil, spikes 0-3, isSR), and set levels default to 100 here. Species and move names are validated first, so typos return an isError. Returns every damage roll, damageRange, koChance text, a description line, and both sets\u2019 computed stats. Read-only and offline.',
181
181
  annotations: READ_ONLY_ANNOTATIONS,
182
182
  inputSchema: {
183
183
  attacker: setSchema.describe('The attacking Pok\u00e9mon: species plus optional level, nature, IVs, EVs, item, ability, boosts, status, Tera type, and current HP.'),
@@ -235,7 +235,7 @@ export function registerCalcTools(server) {
235
235
  const result = damageResult(gen, args.attacker, args.defender, args.move, args.field ?? {});
236
236
  return ok(result);
237
237
  }));
238
- server.registerTool('calc_matchups', {
238
+ server.registerTool('calculate_matchups', {
239
239
  title: 'Batch damage matchups',
240
240
  description: 'Run one attacker against 1-30 defenders in a single call, picking the hardest-hitting move per defender from `move` or `attacker.moves` and reporting each matchup\u2019s damage range, KO chance, immunity, and who moves first. Use `calculate_damage` for a single pinned matchup or when side screens and hazards matter (this tool\u2019s `field` has only gameType, weather, and terrain); use `analyze_team` for type-synergy, not damage. Supply `move` or a non-empty `attacker.moves`, else the call errors; defender levels default to 100. Read-only, offline, deterministic; unknown species or move names return an isError naming the offender.',
241
241
  annotations: READ_ONLY_ANNOTATIONS,
@@ -360,9 +360,9 @@ export function registerCalcTools(server) {
360
360
  matchups,
361
361
  });
362
362
  }));
363
- server.registerTool('speed_check', {
363
+ server.registerTool('check_speed', {
364
364
  title: 'Check Speed against a regulation',
365
- description: 'Compute one Pok\u00e9mon\u2019s final Speed and, given a Regulation Set, rank it against that roster at its fastest (252 EV, +Spe nature) and uninvested reference speeds. Speed only: for damage use `calculate_damage` or `calc_matchups`, for a tier-wide ranking use `speed_tiers`, and to find the Speed EVs that beat a target use `optimize_evs`. Applies `boosts.spe` (-6..+6) and Choice Scarf \u00d71.5; other items are reported as Speed-neutral, and `regulation` is optional. Returns finalSpeed, modifiers, and outspeeds/conditional/losesTo counts with up to 15 threats each. Read-only and offline; unknown names return an isError.',
365
+ description: 'Compute one Pok\u00e9mon\u2019s final Speed and, given a Regulation Set, rank it against that roster at its fastest (252 EV, +Spe nature) and uninvested reference speeds. Speed only: for damage use `calculate_damage` or `calculate_matchups`, for a tier-wide ranking use `list_speed_tiers`, and to find the Speed EVs that beat a target use `optimize_evs`. Applies `boosts.spe` (-6..+6) and Choice Scarf \u00d71.5; other items are reported as Speed-neutral, and `regulation` is optional. Returns finalSpeed, modifiers, and outspeeds/conditional/losesTo counts with up to 15 threats each. Read-only and offline; unknown names return an isError.',
366
366
  annotations: READ_ONLY_ANNOTATIONS,
367
367
  inputSchema: {
368
368
  species: z.string().describe('Species or form name, e.g. "Dragapult", "Ogerpon-Wellspring".'),
@@ -520,7 +520,7 @@ export function registerCalcTools(server) {
520
520
  }));
521
521
  server.registerTool('optimize_evs', {
522
522
  title: 'Optimize EVs for a goal',
523
- description: 'Derive a minimal EV spread for one Pok\u00e9mon satisfying up to three goals: survive a named attack, outspeed a target Speed, and guarantee a KO in 1-4 hits. Use it when EVs must come from a goal \u2014 `calculate_stats` evaluates a spread you already have, `speed_check` ranks Speed without deriving EVs, and `get_set` returns a curated spread. Supplying none of survive/outspeed/kill errors; `outspeed` takes a set `target` or a raw `speed`, and leftover EVs fill `maximize` (default spe). Returns the spread, resulting stats, totalEVs/unusedEVs of the 508 usable, and a verification line per goal. Read-only and offline; an unreachable goal returns an isError.',
523
+ description: 'Derive a minimal EV spread for one Pok\u00e9mon satisfying up to three goals: survive a named attack, outspeed a target Speed, and guarantee a KO in 1-4 hits. Use it when EVs must come from a goal \u2014 `calculate_stats` evaluates a spread you already have, `check_speed` ranks Speed without deriving EVs, and `get_set` returns a curated spread. Supplying none of survive/outspeed/kill errors; `outspeed` takes a set `target` or a raw `speed`, and leftover EVs fill `maximize` (default spe). Returns the spread, resulting stats, totalEVs/unusedEVs of the 508 usable, and a verification line per goal. Read-only and offline; an unreachable goal returns an isError.',
524
524
  annotations: READ_ONLY_ANNOTATIONS,
525
525
  inputSchema: {
526
526
  species: z.string().describe('Species or form name to optimize, e.g. "Garchomp", "Incineroar".'),