@umang-boss/claudemon 1.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.
Files changed (203) hide show
  1. package/README.md +164 -0
  2. package/bin/claudemon.js +52 -0
  3. package/bunfig.toml +2 -0
  4. package/cli/doctor.ts +334 -0
  5. package/cli/index.ts +42 -0
  6. package/cli/install.ts +248 -0
  7. package/cli/shared.ts +102 -0
  8. package/cli/uninstall.ts +155 -0
  9. package/cli/update.ts +318 -0
  10. package/hooks/post-tool-use.sh +127 -0
  11. package/hooks/stop.sh +49 -0
  12. package/hooks/user-prompt-submit.sh +73 -0
  13. package/package.json +68 -0
  14. package/scripts/download-colorscripts.ts +311 -0
  15. package/skills/buddy/SKILL.md +47 -0
  16. package/sprites/colorscripts/small/1-bulbasaur.txt +11 -0
  17. package/sprites/colorscripts/small/10-caterpie.txt +9 -0
  18. package/sprites/colorscripts/small/100-voltorb.txt +8 -0
  19. package/sprites/colorscripts/small/101-electrode.txt +9 -0
  20. package/sprites/colorscripts/small/102-exeggcute.txt +10 -0
  21. package/sprites/colorscripts/small/103-exeggutor.txt +23 -0
  22. package/sprites/colorscripts/small/104-cubone.txt +11 -0
  23. package/sprites/colorscripts/small/105-marowak.txt +16 -0
  24. package/sprites/colorscripts/small/106-hitmonlee.txt +16 -0
  25. package/sprites/colorscripts/small/107-hitmonchan.txt +19 -0
  26. package/sprites/colorscripts/small/108-lickitung.txt +10 -0
  27. package/sprites/colorscripts/small/109-koffing.txt +14 -0
  28. package/sprites/colorscripts/small/11-metapod.txt +10 -0
  29. package/sprites/colorscripts/small/110-weezing.txt +23 -0
  30. package/sprites/colorscripts/small/111-rhyhorn.txt +11 -0
  31. package/sprites/colorscripts/small/112-rhydon.txt +20 -0
  32. package/sprites/colorscripts/small/113-chansey.txt +11 -0
  33. package/sprites/colorscripts/small/114-tangela.txt +10 -0
  34. package/sprites/colorscripts/small/115-kangaskhan.txt +18 -0
  35. package/sprites/colorscripts/small/116-horsea.txt +10 -0
  36. package/sprites/colorscripts/small/117-seadra.txt +11 -0
  37. package/sprites/colorscripts/small/118-goldeen.txt +11 -0
  38. package/sprites/colorscripts/small/119-seaking.txt +16 -0
  39. package/sprites/colorscripts/small/12-butterfree.txt +20 -0
  40. package/sprites/colorscripts/small/120-staryu.txt +10 -0
  41. package/sprites/colorscripts/small/121-starmie.txt +17 -0
  42. package/sprites/colorscripts/small/122-mr-mime.txt +18 -0
  43. package/sprites/colorscripts/small/123-scyther.txt +21 -0
  44. package/sprites/colorscripts/small/124-jynx.txt +18 -0
  45. package/sprites/colorscripts/small/125-electabuzz.txt +19 -0
  46. package/sprites/colorscripts/small/126-magmar.txt +19 -0
  47. package/sprites/colorscripts/small/127-pinsir.txt +19 -0
  48. package/sprites/colorscripts/small/128-tauros.txt +20 -0
  49. package/sprites/colorscripts/small/129-magikarp.txt +13 -0
  50. package/sprites/colorscripts/small/13-weedle.txt +10 -0
  51. package/sprites/colorscripts/small/130-gyarados.txt +21 -0
  52. package/sprites/colorscripts/small/131-lapras.txt +19 -0
  53. package/sprites/colorscripts/small/132-ditto.txt +8 -0
  54. package/sprites/colorscripts/small/133-eevee.txt +10 -0
  55. package/sprites/colorscripts/small/134-vaporeon.txt +16 -0
  56. package/sprites/colorscripts/small/135-jolteon.txt +17 -0
  57. package/sprites/colorscripts/small/136-flareon.txt +18 -0
  58. package/sprites/colorscripts/small/137-porygon.txt +10 -0
  59. package/sprites/colorscripts/small/138-omanyte.txt +10 -0
  60. package/sprites/colorscripts/small/139-omastar.txt +18 -0
  61. package/sprites/colorscripts/small/14-kakuna.txt +10 -0
  62. package/sprites/colorscripts/small/140-kabuto.txt +8 -0
  63. package/sprites/colorscripts/small/141-kabutops.txt +17 -0
  64. package/sprites/colorscripts/small/142-aerodactyl.txt +17 -0
  65. package/sprites/colorscripts/small/143-snorlax.txt +21 -0
  66. package/sprites/colorscripts/small/144-articuno.txt +24 -0
  67. package/sprites/colorscripts/small/145-zapdos.txt +20 -0
  68. package/sprites/colorscripts/small/146-moltres.txt +23 -0
  69. package/sprites/colorscripts/small/147-dratini.txt +10 -0
  70. package/sprites/colorscripts/small/148-dragonair.txt +12 -0
  71. package/sprites/colorscripts/small/149-dragonite.txt +21 -0
  72. package/sprites/colorscripts/small/15-beedrill.txt +13 -0
  73. package/sprites/colorscripts/small/150-mewtwo.txt +22 -0
  74. package/sprites/colorscripts/small/151-mew.txt +14 -0
  75. package/sprites/colorscripts/small/16-pidgey.txt +10 -0
  76. package/sprites/colorscripts/small/17-pidgeotto.txt +11 -0
  77. package/sprites/colorscripts/small/18-pidgeot.txt +18 -0
  78. package/sprites/colorscripts/small/19-rattata.txt +12 -0
  79. package/sprites/colorscripts/small/2-ivysaur.txt +11 -0
  80. package/sprites/colorscripts/small/20-raticate.txt +12 -0
  81. package/sprites/colorscripts/small/21-spearow.txt +9 -0
  82. package/sprites/colorscripts/small/22-fearow.txt +12 -0
  83. package/sprites/colorscripts/small/23-ekans.txt +12 -0
  84. package/sprites/colorscripts/small/24-arbok.txt +16 -0
  85. package/sprites/colorscripts/small/25-pikachu.txt +11 -0
  86. package/sprites/colorscripts/small/26-raichu.txt +19 -0
  87. package/sprites/colorscripts/small/27-sandshrew.txt +10 -0
  88. package/sprites/colorscripts/small/28-sandslash.txt +16 -0
  89. package/sprites/colorscripts/small/29-nidoran-f.txt +11 -0
  90. package/sprites/colorscripts/small/3-venusaur.txt +21 -0
  91. package/sprites/colorscripts/small/30-nidorina.txt +12 -0
  92. package/sprites/colorscripts/small/31-nidoqueen.txt +19 -0
  93. package/sprites/colorscripts/small/32-nidoran-m.txt +11 -0
  94. package/sprites/colorscripts/small/33-nidorino.txt +12 -0
  95. package/sprites/colorscripts/small/34-nidoking.txt +18 -0
  96. package/sprites/colorscripts/small/35-clefairy.txt +11 -0
  97. package/sprites/colorscripts/small/36-clefable.txt +17 -0
  98. package/sprites/colorscripts/small/37-vulpix.txt +11 -0
  99. package/sprites/colorscripts/small/38-ninetales.txt +18 -0
  100. package/sprites/colorscripts/small/39-jigglypuff.txt +11 -0
  101. package/sprites/colorscripts/small/4-charmander.txt +11 -0
  102. package/sprites/colorscripts/small/40-wigglytuff.txt +20 -0
  103. package/sprites/colorscripts/small/41-zubat.txt +11 -0
  104. package/sprites/colorscripts/small/42-golbat.txt +18 -0
  105. package/sprites/colorscripts/small/43-oddish.txt +11 -0
  106. package/sprites/colorscripts/small/44-gloom.txt +12 -0
  107. package/sprites/colorscripts/small/45-vileplume.txt +17 -0
  108. package/sprites/colorscripts/small/46-paras.txt +11 -0
  109. package/sprites/colorscripts/small/47-parasect.txt +12 -0
  110. package/sprites/colorscripts/small/48-venonat.txt +14 -0
  111. package/sprites/colorscripts/small/49-venomoth.txt +19 -0
  112. package/sprites/colorscripts/small/5-charmeleon.txt +13 -0
  113. package/sprites/colorscripts/small/50-diglett.txt +8 -0
  114. package/sprites/colorscripts/small/51-dugtrio.txt +18 -0
  115. package/sprites/colorscripts/small/52-meowth.txt +12 -0
  116. package/sprites/colorscripts/small/53-persian.txt +20 -0
  117. package/sprites/colorscripts/small/54-psyduck.txt +12 -0
  118. package/sprites/colorscripts/small/55-golduck.txt +17 -0
  119. package/sprites/colorscripts/small/56-mankey.txt +11 -0
  120. package/sprites/colorscripts/small/57-primeape.txt +13 -0
  121. package/sprites/colorscripts/small/58-growlithe.txt +12 -0
  122. package/sprites/colorscripts/small/59-arcanine.txt +20 -0
  123. package/sprites/colorscripts/small/6-charizard.txt +21 -0
  124. package/sprites/colorscripts/small/60-poliwag.txt +9 -0
  125. package/sprites/colorscripts/small/61-poliwhirl.txt +11 -0
  126. package/sprites/colorscripts/small/62-poliwrath.txt +17 -0
  127. package/sprites/colorscripts/small/63-abra.txt +12 -0
  128. package/sprites/colorscripts/small/64-kadabra.txt +14 -0
  129. package/sprites/colorscripts/small/65-alakazam.txt +19 -0
  130. package/sprites/colorscripts/small/66-machop.txt +11 -0
  131. package/sprites/colorscripts/small/67-machoke.txt +12 -0
  132. package/sprites/colorscripts/small/68-machamp.txt +19 -0
  133. package/sprites/colorscripts/small/69-bellsprout.txt +9 -0
  134. package/sprites/colorscripts/small/7-squirtle.txt +10 -0
  135. package/sprites/colorscripts/small/70-weepinbell.txt +11 -0
  136. package/sprites/colorscripts/small/71-victreebel.txt +17 -0
  137. package/sprites/colorscripts/small/72-tentacool.txt +12 -0
  138. package/sprites/colorscripts/small/73-tentacruel.txt +20 -0
  139. package/sprites/colorscripts/small/74-geodude.txt +9 -0
  140. package/sprites/colorscripts/small/75-graveler.txt +12 -0
  141. package/sprites/colorscripts/small/76-golem.txt +18 -0
  142. package/sprites/colorscripts/small/77-ponyta.txt +13 -0
  143. package/sprites/colorscripts/small/78-rapidash.txt +18 -0
  144. package/sprites/colorscripts/small/79-slowpoke.txt +12 -0
  145. package/sprites/colorscripts/small/8-wartortle.txt +12 -0
  146. package/sprites/colorscripts/small/80-slowbro.txt +18 -0
  147. package/sprites/colorscripts/small/81-magnemite.txt +9 -0
  148. package/sprites/colorscripts/small/82-magneton.txt +18 -0
  149. package/sprites/colorscripts/small/83-farfetchd.txt +12 -0
  150. package/sprites/colorscripts/small/84-doduo.txt +10 -0
  151. package/sprites/colorscripts/small/85-dodrio.txt +17 -0
  152. package/sprites/colorscripts/small/86-seel.txt +13 -0
  153. package/sprites/colorscripts/small/87-dewgong.txt +20 -0
  154. package/sprites/colorscripts/small/88-grimer.txt +10 -0
  155. package/sprites/colorscripts/small/89-muk.txt +14 -0
  156. package/sprites/colorscripts/small/9-blastoise.txt +20 -0
  157. package/sprites/colorscripts/small/90-shellder.txt +10 -0
  158. package/sprites/colorscripts/small/91-cloyster.txt +18 -0
  159. package/sprites/colorscripts/small/92-gastly.txt +12 -0
  160. package/sprites/colorscripts/small/93-haunter.txt +14 -0
  161. package/sprites/colorscripts/small/94-gengar.txt +19 -0
  162. package/sprites/colorscripts/small/95-onix.txt +22 -0
  163. package/sprites/colorscripts/small/96-drowzee.txt +12 -0
  164. package/sprites/colorscripts/small/97-hypno.txt +19 -0
  165. package/sprites/colorscripts/small/98-krabby.txt +12 -0
  166. package/sprites/colorscripts/small/99-kingler.txt +20 -0
  167. package/src/engine/constants.ts +121 -0
  168. package/src/engine/encounter-pool.ts +71 -0
  169. package/src/engine/encounters.ts +308 -0
  170. package/src/engine/evolution-data.ts +535 -0
  171. package/src/engine/evolution.ts +310 -0
  172. package/src/engine/pokemon-data.ts +1838 -0
  173. package/src/engine/reactions.ts +877 -0
  174. package/src/engine/starter-pool.ts +47 -0
  175. package/src/engine/stats.ts +97 -0
  176. package/src/engine/types.ts +312 -0
  177. package/src/engine/xp.ts +135 -0
  178. package/src/gamification/achievements.ts +204 -0
  179. package/src/gamification/legendary-quests.ts +265 -0
  180. package/src/gamification/milestones.ts +86 -0
  181. package/src/hooks/award-xp.ts +131 -0
  182. package/src/hooks/increment-counter.ts +27 -0
  183. package/src/server/index.ts +78 -0
  184. package/src/server/instructions.ts +194 -0
  185. package/src/server/tools/achievements.ts +118 -0
  186. package/src/server/tools/catch.ts +295 -0
  187. package/src/server/tools/display-helpers.ts +35 -0
  188. package/src/server/tools/evolve.ts +236 -0
  189. package/src/server/tools/legendary.ts +78 -0
  190. package/src/server/tools/party.ts +251 -0
  191. package/src/server/tools/pet.ts +124 -0
  192. package/src/server/tools/pokedex.ts +286 -0
  193. package/src/server/tools/rename.ts +63 -0
  194. package/src/server/tools/show.ts +136 -0
  195. package/src/server/tools/starter.ts +175 -0
  196. package/src/server/tools/stats.ts +123 -0
  197. package/src/server/tools/visibility.ts +65 -0
  198. package/src/sprites/index.ts +45 -0
  199. package/src/state/io.ts +91 -0
  200. package/src/state/schemas.ts +131 -0
  201. package/src/state/state-manager.ts +321 -0
  202. package/statusline/buddy-status.sh +233 -0
  203. package/tsconfig.json +37 -0
@@ -0,0 +1,535 @@
1
+ /**
2
+ * Evolution chains for all 151 Gen 1 Pokemon.
3
+ * Stone evolutions are mapped to badge-based methods.
4
+ * Trade evolutions become collaboration events.
5
+ */
6
+
7
+ import type { EvolutionChain } from "./types.js";
8
+
9
+ export const EVOLUTION_CHAINS: readonly EvolutionChain[] = [
10
+ // ── Chain 1: Bulbasaur → Ivysaur → Venusaur ─────────────
11
+ {
12
+ id: 1,
13
+ links: [
14
+ { from: 1, to: 2, method: { type: "level", level: 16 } },
15
+ { from: 2, to: 3, method: { type: "level", level: 32 } },
16
+ ],
17
+ },
18
+
19
+ // ── Chain 2: Charmander → Charmeleon → Charizard ─────────
20
+ {
21
+ id: 2,
22
+ links: [
23
+ { from: 4, to: 5, method: { type: "level", level: 16 } },
24
+ { from: 5, to: 6, method: { type: "level", level: 36 } },
25
+ ],
26
+ },
27
+
28
+ // ── Chain 3: Squirtle → Wartortle → Blastoise ────────────
29
+ {
30
+ id: 3,
31
+ links: [
32
+ { from: 7, to: 8, method: { type: "level", level: 16 } },
33
+ { from: 8, to: 9, method: { type: "level", level: 36 } },
34
+ ],
35
+ },
36
+
37
+ // ── Chain 4: Caterpie → Metapod → Butterfree ─────────────
38
+ {
39
+ id: 4,
40
+ links: [
41
+ { from: 10, to: 11, method: { type: "level", level: 7 } },
42
+ { from: 11, to: 12, method: { type: "level", level: 10 } },
43
+ ],
44
+ },
45
+
46
+ // ── Chain 5: Weedle → Kakuna → Beedrill ──────────────────
47
+ {
48
+ id: 5,
49
+ links: [
50
+ { from: 13, to: 14, method: { type: "level", level: 7 } },
51
+ { from: 14, to: 15, method: { type: "level", level: 10 } },
52
+ ],
53
+ },
54
+
55
+ // ── Chain 6: Pidgey → Pidgeotto → Pidgeot ────────────────
56
+ {
57
+ id: 6,
58
+ links: [
59
+ { from: 16, to: 17, method: { type: "level", level: 18 } },
60
+ { from: 17, to: 18, method: { type: "level", level: 36 } },
61
+ ],
62
+ },
63
+
64
+ // ── Chain 7: Rattata → Raticate ──────────────────────────
65
+ {
66
+ id: 7,
67
+ links: [{ from: 19, to: 20, method: { type: "level", level: 20 } }],
68
+ },
69
+
70
+ // ── Chain 8: Spearow → Fearow ────────────────────────────
71
+ {
72
+ id: 8,
73
+ links: [{ from: 21, to: 22, method: { type: "level", level: 20 } }],
74
+ },
75
+
76
+ // ── Chain 9: Ekans → Arbok ───────────────────────────────
77
+ {
78
+ id: 9,
79
+ links: [{ from: 23, to: 24, method: { type: "level", level: 22 } }],
80
+ },
81
+
82
+ // ── Chain 10: Pikachu → Raichu (Thunder Stone → spark) ───
83
+ {
84
+ id: 10,
85
+ links: [{ from: 25, to: 26, method: { type: "badge", badge: "spark" } }],
86
+ },
87
+
88
+ // ── Chain 11: Sandshrew → Sandslash ──────────────────────
89
+ {
90
+ id: 11,
91
+ links: [{ from: 27, to: 28, method: { type: "level", level: 22 } }],
92
+ },
93
+
94
+ // ── Chain 12: Nidoran♀ → Nidorina → Nidoqueen (Moon Stone)
95
+ {
96
+ id: 12,
97
+ links: [
98
+ { from: 29, to: 30, method: { type: "level", level: 16 } },
99
+ { from: 30, to: 31, method: { type: "badge", badge: "lunar" } },
100
+ ],
101
+ },
102
+
103
+ // ── Chain 13: Nidoran♂ → Nidorino → Nidoking (Moon Stone)
104
+ {
105
+ id: 13,
106
+ links: [
107
+ { from: 32, to: 33, method: { type: "level", level: 16 } },
108
+ { from: 33, to: 34, method: { type: "badge", badge: "lunar" } },
109
+ ],
110
+ },
111
+
112
+ // ── Chain 14: Clefairy → Clefable (Moon Stone → lunar) ───
113
+ {
114
+ id: 14,
115
+ links: [{ from: 35, to: 36, method: { type: "badge", badge: "lunar" } }],
116
+ },
117
+
118
+ // ── Chain 15: Vulpix → Ninetales (Fire Stone → blaze) ────
119
+ {
120
+ id: 15,
121
+ links: [{ from: 37, to: 38, method: { type: "badge", badge: "blaze" } }],
122
+ },
123
+
124
+ // ── Chain 16: Jigglypuff → Wigglytuff (Moon Stone → lunar)
125
+ {
126
+ id: 16,
127
+ links: [{ from: 39, to: 40, method: { type: "badge", badge: "lunar" } }],
128
+ },
129
+
130
+ // ── Chain 17: Zubat → Golbat ─────────────────────────────
131
+ {
132
+ id: 17,
133
+ links: [{ from: 41, to: 42, method: { type: "level", level: 22 } }],
134
+ },
135
+
136
+ // ── Chain 18: Oddish → Gloom → Vileplume (Leaf Stone → growth)
137
+ {
138
+ id: 18,
139
+ links: [
140
+ { from: 43, to: 44, method: { type: "level", level: 21 } },
141
+ { from: 44, to: 45, method: { type: "badge", badge: "growth" } },
142
+ ],
143
+ },
144
+
145
+ // ── Chain 19: Paras → Parasect ───────────────────────────
146
+ {
147
+ id: 19,
148
+ links: [{ from: 46, to: 47, method: { type: "level", level: 24 } }],
149
+ },
150
+
151
+ // ── Chain 20: Venonat → Venomoth ─────────────────────────
152
+ {
153
+ id: 20,
154
+ links: [{ from: 48, to: 49, method: { type: "level", level: 31 } }],
155
+ },
156
+
157
+ // ── Chain 21: Diglett → Dugtrio ──────────────────────────
158
+ {
159
+ id: 21,
160
+ links: [{ from: 50, to: 51, method: { type: "level", level: 26 } }],
161
+ },
162
+
163
+ // ── Chain 22: Meowth → Persian ───────────────────────────
164
+ {
165
+ id: 22,
166
+ links: [{ from: 52, to: 53, method: { type: "level", level: 28 } }],
167
+ },
168
+
169
+ // ── Chain 23: Psyduck → Golduck ──────────────────────────
170
+ {
171
+ id: 23,
172
+ links: [{ from: 54, to: 55, method: { type: "level", level: 33 } }],
173
+ },
174
+
175
+ // ── Chain 24: Mankey → Primeape ──────────────────────────
176
+ {
177
+ id: 24,
178
+ links: [{ from: 56, to: 57, method: { type: "level", level: 28 } }],
179
+ },
180
+
181
+ // ── Chain 25: Growlithe → Arcanine (Fire Stone → blaze) ──
182
+ {
183
+ id: 25,
184
+ links: [{ from: 58, to: 59, method: { type: "badge", badge: "blaze" } }],
185
+ },
186
+
187
+ // ── Chain 26: Poliwag → Poliwhirl → Poliwrath (Water Stone → flow)
188
+ {
189
+ id: 26,
190
+ links: [
191
+ { from: 60, to: 61, method: { type: "level", level: 25 } },
192
+ { from: 61, to: 62, method: { type: "badge", badge: "flow" } },
193
+ ],
194
+ },
195
+
196
+ // ── Chain 27: Abra → Kadabra → Alakazam (trade → collaboration)
197
+ {
198
+ id: 27,
199
+ links: [
200
+ { from: 63, to: 64, method: { type: "level", level: 16 } },
201
+ { from: 64, to: 65, method: { type: "collaboration" } },
202
+ ],
203
+ },
204
+
205
+ // ── Chain 28: Machop → Machoke → Machamp (trade → collaboration)
206
+ {
207
+ id: 28,
208
+ links: [
209
+ { from: 66, to: 67, method: { type: "level", level: 28 } },
210
+ { from: 67, to: 68, method: { type: "collaboration" } },
211
+ ],
212
+ },
213
+
214
+ // ── Chain 29: Bellsprout → Weepinbell → Victreebel (Leaf Stone → growth)
215
+ {
216
+ id: 29,
217
+ links: [
218
+ { from: 69, to: 70, method: { type: "level", level: 21 } },
219
+ { from: 70, to: 71, method: { type: "badge", badge: "growth" } },
220
+ ],
221
+ },
222
+
223
+ // ── Chain 30: Tentacool → Tentacruel ─────────────────────
224
+ {
225
+ id: 30,
226
+ links: [{ from: 72, to: 73, method: { type: "level", level: 30 } }],
227
+ },
228
+
229
+ // ── Chain 31: Geodude → Graveler → Golem (trade → collaboration)
230
+ {
231
+ id: 31,
232
+ links: [
233
+ { from: 74, to: 75, method: { type: "level", level: 25 } },
234
+ { from: 75, to: 76, method: { type: "collaboration" } },
235
+ ],
236
+ },
237
+
238
+ // ── Chain 32: Ponyta → Rapidash ──────────────────────────
239
+ {
240
+ id: 32,
241
+ links: [{ from: 77, to: 78, method: { type: "level", level: 40 } }],
242
+ },
243
+
244
+ // ── Chain 33: Slowpoke → Slowbro ─────────────────────────
245
+ {
246
+ id: 33,
247
+ links: [{ from: 79, to: 80, method: { type: "level", level: 37 } }],
248
+ },
249
+
250
+ // ── Chain 34: Magnemite → Magneton ───────────────────────
251
+ {
252
+ id: 34,
253
+ links: [{ from: 81, to: 82, method: { type: "level", level: 30 } }],
254
+ },
255
+
256
+ // ── Chain 35: Farfetch'd (no evolution) ──────────────────
257
+ {
258
+ id: 35,
259
+ links: [],
260
+ },
261
+
262
+ // ── Chain 36: Doduo → Dodrio ─────────────────────────────
263
+ {
264
+ id: 36,
265
+ links: [{ from: 84, to: 85, method: { type: "level", level: 31 } }],
266
+ },
267
+
268
+ // ── Chain 37: Seel → Dewgong ─────────────────────────────
269
+ {
270
+ id: 37,
271
+ links: [{ from: 86, to: 87, method: { type: "level", level: 34 } }],
272
+ },
273
+
274
+ // ── Chain 38: Grimer → Muk ───────────────────────────────
275
+ {
276
+ id: 38,
277
+ links: [{ from: 88, to: 89, method: { type: "level", level: 38 } }],
278
+ },
279
+
280
+ // ── Chain 39: Shellder → Cloyster (Water Stone → flow) ───
281
+ {
282
+ id: 39,
283
+ links: [{ from: 90, to: 91, method: { type: "badge", badge: "flow" } }],
284
+ },
285
+
286
+ // ── Chain 40: Gastly → Haunter → Gengar (trade → collaboration)
287
+ {
288
+ id: 40,
289
+ links: [
290
+ { from: 92, to: 93, method: { type: "level", level: 25 } },
291
+ { from: 93, to: 94, method: { type: "collaboration" } },
292
+ ],
293
+ },
294
+
295
+ // ── Chain 41: Onix (no evolution in Gen 1) ───────────────
296
+ {
297
+ id: 41,
298
+ links: [],
299
+ },
300
+
301
+ // ── Chain 42: Drowzee → Hypno ────────────────────────────
302
+ {
303
+ id: 42,
304
+ links: [{ from: 96, to: 97, method: { type: "level", level: 26 } }],
305
+ },
306
+
307
+ // ── Chain 43: Krabby → Kingler ───────────────────────────
308
+ {
309
+ id: 43,
310
+ links: [{ from: 98, to: 99, method: { type: "level", level: 28 } }],
311
+ },
312
+
313
+ // ── Chain 44: Voltorb → Electrode ────────────────────────
314
+ {
315
+ id: 44,
316
+ links: [{ from: 100, to: 101, method: { type: "level", level: 30 } }],
317
+ },
318
+
319
+ // ── Chain 45: Exeggcute → Exeggutor (Leaf Stone → growth)
320
+ {
321
+ id: 45,
322
+ links: [{ from: 102, to: 103, method: { type: "badge", badge: "growth" } }],
323
+ },
324
+
325
+ // ── Chain 46: Cubone → Marowak ───────────────────────────
326
+ {
327
+ id: 46,
328
+ links: [{ from: 104, to: 105, method: { type: "level", level: 28 } }],
329
+ },
330
+
331
+ // ── Chain 47: Hitmonlee (no evolution in Gen 1) ──────────
332
+ {
333
+ id: 47,
334
+ links: [],
335
+ },
336
+
337
+ // ── Chain 48: Hitmonchan (no evolution in Gen 1) ─────────
338
+ {
339
+ id: 48,
340
+ links: [],
341
+ },
342
+
343
+ // ── Chain 49: Lickitung (no evolution in Gen 1) ──────────
344
+ {
345
+ id: 49,
346
+ links: [],
347
+ },
348
+
349
+ // ── Chain 50: Koffing → Weezing ──────────────────────────
350
+ {
351
+ id: 50,
352
+ links: [{ from: 109, to: 110, method: { type: "level", level: 35 } }],
353
+ },
354
+
355
+ // ── Chain 51: Rhyhorn → Rhydon ───────────────────────────
356
+ {
357
+ id: 51,
358
+ links: [{ from: 111, to: 112, method: { type: "level", level: 42 } }],
359
+ },
360
+
361
+ // ── Chain 52: Chansey (no evolution in Gen 1) ────────────
362
+ {
363
+ id: 52,
364
+ links: [],
365
+ },
366
+
367
+ // ── Chain 53: Tangela (no evolution in Gen 1) ────────────
368
+ {
369
+ id: 53,
370
+ links: [],
371
+ },
372
+
373
+ // ── Chain 54: Kangaskhan (no evolution in Gen 1) ─────────
374
+ {
375
+ id: 54,
376
+ links: [],
377
+ },
378
+
379
+ // ── Chain 55: Horsea → Seadra ────────────────────────────
380
+ {
381
+ id: 55,
382
+ links: [{ from: 116, to: 117, method: { type: "level", level: 32 } }],
383
+ },
384
+
385
+ // ── Chain 56: Goldeen → Seaking ──────────────────────────
386
+ {
387
+ id: 56,
388
+ links: [{ from: 118, to: 119, method: { type: "level", level: 33 } }],
389
+ },
390
+
391
+ // ── Chain 57: Staryu → Starmie (Water Stone → flow) ──────
392
+ {
393
+ id: 57,
394
+ links: [{ from: 120, to: 121, method: { type: "badge", badge: "flow" } }],
395
+ },
396
+
397
+ // ── Chain 58: Mr. Mime (no evolution in Gen 1) ───────────
398
+ {
399
+ id: 58,
400
+ links: [],
401
+ },
402
+
403
+ // ── Chain 59: Scyther (no evolution in Gen 1) ────────────
404
+ {
405
+ id: 59,
406
+ links: [],
407
+ },
408
+
409
+ // ── Chain 60: Jynx (no evolution in Gen 1) ──────────────
410
+ {
411
+ id: 60,
412
+ links: [],
413
+ },
414
+
415
+ // ── Chain 61: Electabuzz (no evolution in Gen 1) ─────────
416
+ {
417
+ id: 61,
418
+ links: [],
419
+ },
420
+
421
+ // ── Chain 62: Magmar (no evolution in Gen 1) ─────────────
422
+ {
423
+ id: 62,
424
+ links: [],
425
+ },
426
+
427
+ // ── Chain 63: Pinsir (no evolution in Gen 1) ─────────────
428
+ {
429
+ id: 63,
430
+ links: [],
431
+ },
432
+
433
+ // ── Chain 64: Tauros (no evolution in Gen 1) ─────────────
434
+ {
435
+ id: 64,
436
+ links: [],
437
+ },
438
+
439
+ // ── Chain 65: Magikarp → Gyarados ────────────────────────
440
+ {
441
+ id: 65,
442
+ links: [{ from: 129, to: 130, method: { type: "level", level: 20 } }],
443
+ },
444
+
445
+ // ── Chain 66: Lapras (no evolution in Gen 1) ─────────────
446
+ {
447
+ id: 66,
448
+ links: [],
449
+ },
450
+
451
+ // ── Chain 67: Ditto (no evolution) ───────────────────────
452
+ {
453
+ id: 67,
454
+ links: [],
455
+ },
456
+
457
+ // ── Chain 68: Eevee → Vaporeon / Jolteon / Flareon (stat-based)
458
+ {
459
+ id: 68,
460
+ links: [
461
+ { from: 133, to: 134, method: { type: "stat", stat: "stability", minValue: 50 } },
462
+ { from: 133, to: 135, method: { type: "stat", stat: "velocity", minValue: 50 } },
463
+ { from: 133, to: 136, method: { type: "stat", stat: "debugging", minValue: 50 } },
464
+ ],
465
+ },
466
+
467
+ // ── Chain 69: Porygon (no evolution in Gen 1) ────────────
468
+ {
469
+ id: 69,
470
+ links: [],
471
+ },
472
+
473
+ // ── Chain 70: Omanyte → Omastar ──────────────────────────
474
+ {
475
+ id: 70,
476
+ links: [{ from: 138, to: 139, method: { type: "level", level: 40 } }],
477
+ },
478
+
479
+ // ── Chain 71: Kabuto → Kabutops ──────────────────────────
480
+ {
481
+ id: 71,
482
+ links: [{ from: 140, to: 141, method: { type: "level", level: 40 } }],
483
+ },
484
+
485
+ // ── Chain 72: Aerodactyl (no evolution in Gen 1) ─────────
486
+ {
487
+ id: 72,
488
+ links: [],
489
+ },
490
+
491
+ // ── Chain 73: Snorlax (no evolution in Gen 1) ────────────
492
+ {
493
+ id: 73,
494
+ links: [],
495
+ },
496
+
497
+ // ── Chain 74: Articuno (no evolution) ────────────────────
498
+ {
499
+ id: 74,
500
+ links: [],
501
+ },
502
+
503
+ // ── Chain 75: Zapdos (no evolution) ──────────────────────
504
+ {
505
+ id: 75,
506
+ links: [],
507
+ },
508
+
509
+ // ── Chain 76: Moltres (no evolution) ─────────────────────
510
+ {
511
+ id: 76,
512
+ links: [],
513
+ },
514
+
515
+ // ── Chain 77: Dratini → Dragonair → Dragonite ────────────
516
+ {
517
+ id: 77,
518
+ links: [
519
+ { from: 147, to: 148, method: { type: "level", level: 30 } },
520
+ { from: 148, to: 149, method: { type: "level", level: 55 } },
521
+ ],
522
+ },
523
+
524
+ // ── Chain 78: Mewtwo (no evolution) ──────────────────────
525
+ {
526
+ id: 78,
527
+ links: [],
528
+ },
529
+
530
+ // ── Chain 79: Mew (no evolution) ─────────────────────────
531
+ {
532
+ id: 79,
533
+ links: [],
534
+ },
535
+ ] as const satisfies readonly EvolutionChain[];