cogames 0.3.49__py3-none-any.whl → 0.3.64__py3-none-any.whl

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 (169) hide show
  1. cogames/cli/client.py +60 -6
  2. cogames/cli/docsync/__init__.py +0 -0
  3. cogames/cli/docsync/_nb_md_directive_processing.py +180 -0
  4. cogames/cli/docsync/_nb_md_sync.py +103 -0
  5. cogames/cli/docsync/_nb_py_sync.py +122 -0
  6. cogames/cli/docsync/_three_way_sync.py +115 -0
  7. cogames/cli/docsync/_utils.py +76 -0
  8. cogames/cli/docsync/docsync.py +156 -0
  9. cogames/cli/leaderboard.py +112 -28
  10. cogames/cli/mission.py +64 -53
  11. cogames/cli/policy.py +46 -10
  12. cogames/cli/submit.py +268 -67
  13. cogames/cogs_vs_clips/cog.py +79 -0
  14. cogames/cogs_vs_clips/cogs_vs_clips_mapgen.md +19 -16
  15. cogames/cogs_vs_clips/cogsguard_reward_variants.py +153 -0
  16. cogames/cogs_vs_clips/cogsguard_tutorial.py +56 -0
  17. cogames/cogs_vs_clips/evals/README.md +10 -16
  18. cogames/cogs_vs_clips/evals/cogsguard_evals.py +81 -0
  19. cogames/cogs_vs_clips/evals/diagnostic_evals.py +49 -444
  20. cogames/cogs_vs_clips/evals/difficulty_variants.py +13 -326
  21. cogames/cogs_vs_clips/evals/integrated_evals.py +5 -45
  22. cogames/cogs_vs_clips/evals/spanning_evals.py +9 -180
  23. cogames/cogs_vs_clips/mission.py +187 -146
  24. cogames/cogs_vs_clips/missions.py +46 -137
  25. cogames/cogs_vs_clips/procedural.py +8 -8
  26. cogames/cogs_vs_clips/sites.py +107 -3
  27. cogames/cogs_vs_clips/stations.py +198 -186
  28. cogames/cogs_vs_clips/tutorial_missions.py +1 -1
  29. cogames/cogs_vs_clips/variants.py +25 -476
  30. cogames/device.py +13 -1
  31. cogames/{policy/scripted_agent/README.md → docs/SCRIPTED_AGENT.md} +82 -58
  32. cogames/evaluate.py +18 -30
  33. cogames/main.py +1434 -243
  34. cogames/maps/canidate1_1000.map +1 -1
  35. cogames/maps/canidate1_1000_stations.map +2 -2
  36. cogames/maps/canidate1_500.map +1 -1
  37. cogames/maps/canidate1_500_stations.map +2 -2
  38. cogames/maps/canidate2_1000.map +1 -1
  39. cogames/maps/canidate2_1000_stations.map +2 -2
  40. cogames/maps/canidate2_500.map +1 -1
  41. cogames/maps/canidate2_500_stations.map +2 -2
  42. cogames/maps/canidate3_1000.map +1 -1
  43. cogames/maps/canidate3_1000_stations.map +2 -2
  44. cogames/maps/canidate3_500.map +1 -1
  45. cogames/maps/canidate3_500_stations.map +2 -2
  46. cogames/maps/canidate4_500.map +1 -1
  47. cogames/maps/canidate4_500_stations.map +2 -2
  48. cogames/maps/cave_base_50.map +2 -2
  49. cogames/maps/diagnostic_evals/diagnostic_agile.map +2 -2
  50. cogames/maps/diagnostic_evals/diagnostic_agile_hard.map +2 -2
  51. cogames/maps/diagnostic_evals/diagnostic_charge_up.map +2 -2
  52. cogames/maps/diagnostic_evals/diagnostic_charge_up_hard.map +2 -2
  53. cogames/maps/diagnostic_evals/diagnostic_chest_navigation1.map +2 -2
  54. cogames/maps/diagnostic_evals/diagnostic_chest_navigation1_hard.map +2 -2
  55. cogames/maps/diagnostic_evals/diagnostic_chest_navigation2.map +2 -2
  56. cogames/maps/diagnostic_evals/diagnostic_chest_navigation2_hard.map +2 -2
  57. cogames/maps/diagnostic_evals/diagnostic_chest_navigation3.map +2 -2
  58. cogames/maps/diagnostic_evals/diagnostic_chest_navigation3_hard.map +2 -2
  59. cogames/maps/diagnostic_evals/diagnostic_chest_near.map +2 -2
  60. cogames/maps/diagnostic_evals/diagnostic_chest_search.map +2 -2
  61. cogames/maps/diagnostic_evals/diagnostic_chest_search_hard.map +2 -2
  62. cogames/maps/diagnostic_evals/diagnostic_extract_lab.map +2 -2
  63. cogames/maps/diagnostic_evals/diagnostic_extract_lab_hard.map +2 -2
  64. cogames/maps/diagnostic_evals/diagnostic_memory.map +2 -2
  65. cogames/maps/diagnostic_evals/diagnostic_memory_hard.map +2 -2
  66. cogames/maps/diagnostic_evals/diagnostic_radial.map +2 -2
  67. cogames/maps/diagnostic_evals/diagnostic_radial_hard.map +2 -2
  68. cogames/maps/diagnostic_evals/diagnostic_resource_lab.map +2 -2
  69. cogames/maps/diagnostic_evals/diagnostic_unclip.map +2 -2
  70. cogames/maps/evals/eval_balanced_spread.map +9 -5
  71. cogames/maps/evals/eval_clip_oxygen.map +9 -5
  72. cogames/maps/evals/eval_collect_resources.map +9 -5
  73. cogames/maps/evals/eval_collect_resources_hard.map +9 -5
  74. cogames/maps/evals/eval_collect_resources_medium.map +9 -5
  75. cogames/maps/evals/eval_divide_and_conquer.map +9 -5
  76. cogames/maps/evals/eval_energy_starved.map +9 -5
  77. cogames/maps/evals/eval_multi_coordinated_collect_hard.map +9 -5
  78. cogames/maps/evals/eval_oxygen_bottleneck.map +9 -5
  79. cogames/maps/evals/eval_single_use_world.map +9 -5
  80. cogames/maps/evals/extractor_hub_100x100.map +9 -5
  81. cogames/maps/evals/extractor_hub_30x30.map +9 -5
  82. cogames/maps/evals/extractor_hub_50x50.map +9 -5
  83. cogames/maps/evals/extractor_hub_70x70.map +9 -5
  84. cogames/maps/evals/extractor_hub_80x80.map +9 -5
  85. cogames/maps/machina_100_stations.map +2 -2
  86. cogames/maps/machina_200_stations.map +2 -2
  87. cogames/maps/machina_200_stations_small.map +2 -2
  88. cogames/maps/machina_eval_exp01.map +2 -2
  89. cogames/maps/machina_eval_template_large.map +2 -2
  90. cogames/maps/machinatrainer4agents.map +2 -2
  91. cogames/maps/machinatrainer4agentsbase.map +2 -2
  92. cogames/maps/machinatrainerbig.map +2 -2
  93. cogames/maps/machinatrainersmall.map +2 -2
  94. cogames/maps/planky_evals/aligner_avoid_aoe.map +28 -0
  95. cogames/maps/planky_evals/aligner_full_cycle.map +28 -0
  96. cogames/maps/planky_evals/aligner_gear.map +24 -0
  97. cogames/maps/planky_evals/aligner_hearts.map +24 -0
  98. cogames/maps/planky_evals/aligner_junction.map +26 -0
  99. cogames/maps/planky_evals/exploration_distant.map +28 -0
  100. cogames/maps/planky_evals/maze.map +32 -0
  101. cogames/maps/planky_evals/miner_best_resource.map +26 -0
  102. cogames/maps/planky_evals/miner_deposit.map +24 -0
  103. cogames/maps/planky_evals/miner_extract.map +26 -0
  104. cogames/maps/planky_evals/miner_full_cycle.map +28 -0
  105. cogames/maps/planky_evals/miner_gear.map +24 -0
  106. cogames/maps/planky_evals/multi_role.map +28 -0
  107. cogames/maps/planky_evals/resource_chain.map +30 -0
  108. cogames/maps/planky_evals/scout_explore.map +32 -0
  109. cogames/maps/planky_evals/scout_gear.map +24 -0
  110. cogames/maps/planky_evals/scrambler_full_cycle.map +28 -0
  111. cogames/maps/planky_evals/scrambler_gear.map +24 -0
  112. cogames/maps/planky_evals/scrambler_target.map +26 -0
  113. cogames/maps/planky_evals/stuck_corridor.map +32 -0
  114. cogames/maps/planky_evals/survive_retreat.map +26 -0
  115. cogames/maps/training_facility_clipped.map +2 -2
  116. cogames/maps/training_facility_open_1.map +2 -2
  117. cogames/maps/training_facility_open_2.map +2 -2
  118. cogames/maps/training_facility_open_3.map +2 -2
  119. cogames/maps/training_facility_tight_4.map +2 -2
  120. cogames/maps/training_facility_tight_5.map +2 -2
  121. cogames/maps/vanilla_large.map +2 -2
  122. cogames/maps/vanilla_small.map +2 -2
  123. cogames/pickup.py +183 -0
  124. cogames/play.py +166 -33
  125. cogames/policy/chaos_monkey.py +54 -0
  126. cogames/policy/nim_agents/__init__.py +27 -10
  127. cogames/policy/nim_agents/agents.py +121 -60
  128. cogames/policy/nim_agents/thinky_eval.py +35 -222
  129. cogames/policy/pufferlib_policy.py +67 -32
  130. cogames/policy/starter_agent.py +184 -0
  131. cogames/policy/trainable_policy_template.py +4 -1
  132. cogames/train.py +51 -13
  133. cogames/verbose.py +2 -2
  134. cogames-0.3.64.dist-info/METADATA +1842 -0
  135. cogames-0.3.64.dist-info/RECORD +159 -0
  136. cogames-0.3.64.dist-info/licenses/LICENSE +21 -0
  137. cogames-0.3.64.dist-info/top_level.txt +2 -0
  138. metta_alo/__init__.py +0 -0
  139. metta_alo/job_specs.py +17 -0
  140. metta_alo/policy.py +16 -0
  141. metta_alo/pure_single_episode_runner.py +75 -0
  142. metta_alo/py.typed +0 -0
  143. metta_alo/rollout.py +322 -0
  144. metta_alo/scoring.py +168 -0
  145. cogames/maps/diagnostic_evals/diagnostic_assembler_near.map +0 -49
  146. cogames/maps/diagnostic_evals/diagnostic_assembler_search.map +0 -49
  147. cogames/maps/diagnostic_evals/diagnostic_assembler_search_hard.map +0 -89
  148. cogames/policy/nim_agents/common.nim +0 -887
  149. cogames/policy/nim_agents/install.sh +0 -1
  150. cogames/policy/nim_agents/ladybug_agent.nim +0 -984
  151. cogames/policy/nim_agents/nim_agents.nim +0 -55
  152. cogames/policy/nim_agents/nim_agents.nims +0 -14
  153. cogames/policy/nim_agents/nimby.lock +0 -3
  154. cogames/policy/nim_agents/racecar_agents.nim +0 -884
  155. cogames/policy/nim_agents/random_agents.nim +0 -68
  156. cogames/policy/nim_agents/test_agents.py +0 -53
  157. cogames/policy/nim_agents/thinky_agents.nim +0 -717
  158. cogames/policy/scripted_agent/baseline_agent.py +0 -1049
  159. cogames/policy/scripted_agent/demo_policy.py +0 -244
  160. cogames/policy/scripted_agent/pathfinding.py +0 -126
  161. cogames/policy/scripted_agent/starter_agent.py +0 -136
  162. cogames/policy/scripted_agent/types.py +0 -235
  163. cogames/policy/scripted_agent/unclipping_agent.py +0 -476
  164. cogames/policy/scripted_agent/utils.py +0 -385
  165. cogames-0.3.49.dist-info/METADATA +0 -406
  166. cogames-0.3.49.dist-info/RECORD +0 -136
  167. cogames-0.3.49.dist-info/top_level.txt +0 -1
  168. {cogames-0.3.49.dist-info → cogames-0.3.64.dist-info}/WHEEL +0 -0
  169. {cogames-0.3.49.dist-info → cogames-0.3.64.dist-info}/entry_points.txt +0 -0
@@ -9,26 +9,16 @@ from cogames.cogs_vs_clips.mission import Mission, Site
9
9
  from cogames.cogs_vs_clips.procedural import MachinaArena
10
10
  from cogames.cogs_vs_clips.sites import HELLO_WORLD, TRAINING_FACILITY
11
11
  from cogames.cogs_vs_clips.variants import (
12
- ClipHubStationsVariant,
13
- ClipPeriodOnVariant,
14
12
  CompassVariant,
15
- CyclicalUnclipVariant,
16
13
  DarkSideVariant,
17
14
  DistantResourcesVariant,
18
15
  EmptyBaseVariant,
19
16
  EnergizedVariant,
20
- ExtractorHeartTuneVariant,
21
- InventoryHeartTuneVariant,
22
- LonelyHeartVariant,
23
17
  PackRatVariant,
24
18
  QuadrantBuildingsVariant,
25
- ResourceBottleneckVariant,
26
19
  RoughTerrainVariant,
27
20
  SingleResourceUniformVariant,
28
- SingleToolUnclipVariant,
29
- SingleUseSwarmVariant,
30
21
  SuperChargedVariant,
31
- VibeCheckMin2Variant,
32
22
  )
33
23
  from mettagrid.mapgen.mapgen import MapGen
34
24
 
@@ -58,76 +48,25 @@ LARGE_HELLO_WORLD = Site(
58
48
  max_cogs=20,
59
49
  )
60
50
 
61
- # Resource Bottleneck evals (Different resources are the limiting reagents; agents must prioritize correct resource.)
51
+ # Resource Bottleneck evals
62
52
  OxygenBottleneck = Mission(
63
53
  name="oxygen_bottleneck",
64
54
  description="Oxygen is the limiting resource; agents must prioritize oxygen over other resources.",
65
55
  site=HELLO_WORLD,
66
56
  variants=[
67
57
  EmptyBaseVariant(missing=["oxygen_extractor"]),
68
- ResourceBottleneckVariant(resource=["oxygen"]),
69
58
  SingleResourceUniformVariant(building_name="oxygen_extractor"),
70
59
  PackRatVariant(),
71
60
  ],
72
61
  )
73
62
 
74
- # Unclipping missions (agents must craft gear to unclip oxygen and proceed)
75
- UnclippingEasy = Mission(
76
- name="unclipping_easy",
77
- description="World grows increasingly clipped over time; agents must craft gear to unclip and proceed.",
78
- site=HELLO_WORLD,
79
- variants=[
80
- ClipPeriodOnVariant(clip_period=50),
81
- PackRatVariant(),
82
- SingleToolUnclipVariant(),
83
- ClipHubStationsVariant(clip=["oxygen_extractor", "germanium_extractor", "silicon_extractor"]),
84
- ],
85
- )
86
-
87
- UnclippingStandard = Mission(
88
- name="unclipping_standard",
89
- description="Standard unclipping; periodic clips and multiple stations clipped at start.",
90
- site=HELLO_WORLD,
91
- variants=[
92
- ClipPeriodOnVariant(clip_period=25),
93
- ClipHubStationsVariant(clip=["oxygen_extractor", "germanium_extractor", "silicon_extractor"]),
94
- CyclicalUnclipVariant(),
95
- ],
96
- )
97
-
98
- UnclippingHard = Mission(
99
- name="unclipping_hard",
100
- description="Hard unclipping; oxygen starts clipped with tight extractor budgets.",
101
- site=HELLO_WORLD,
102
- variants=[
103
- ClipPeriodOnVariant(clip_period=10),
104
- PackRatVariant(),
105
- ClipHubStationsVariant(clip=["oxygen_extractor", "germanium_extractor", "silicon_extractor"]),
106
- CyclicalUnclipVariant(),
107
- ],
108
- )
109
-
110
- ClippedEasyHearts = Mission(
111
- name="clipped_easy_hearts",
112
- description="Easy hearts with clipping and tool making.",
113
- site=HELLO_WORLD,
114
- variants=[
115
- ClipPeriodOnVariant(),
116
- ClipHubStationsVariant(),
117
- InventoryHeartTuneVariant(hearts=1),
118
- LonelyHeartVariant(),
119
- PackRatVariant(),
120
- ],
121
- )
122
-
123
- # Energy Starved evals (Low energy regen and weak chargers; requires careful charging and routing.)
63
+ # Energy Starved evals
124
64
  EnergyStarved = Mission(
125
65
  name="energy_starved",
126
66
  description="Energy is the limiting resource; agents must prioritize energy over other resources.",
127
67
  site=HELLO_WORLD,
128
68
  variants=[
129
69
  EmptyBaseVariant(),
130
- ResourceBottleneckVariant(resource=["energy"]),
131
70
  DarkSideVariant(),
132
71
  ],
133
72
  )
@@ -151,17 +90,15 @@ OxygenBottleneckStandard = Mission(
151
90
  site=HELLO_WORLD,
152
91
  variants=[
153
92
  EmptyBaseVariant(missing=["oxygen_extractor"]),
154
- ResourceBottleneckVariant(resource=["oxygen"]),
155
93
  ],
156
94
  )
157
95
 
158
96
  OxygenBottleneckHard = Mission(
159
97
  name="oxygen_bottleneck_hard",
160
- description="Hard: oxygen bottleneck plus distant layout and rough terrain.",
98
+ description="Hard: oxygen bottleneck plus rough terrain.",
161
99
  site=HELLO_WORLD,
162
100
  variants=[
163
101
  EmptyBaseVariant(missing=["oxygen_extractor"]),
164
- ResourceBottleneckVariant(resource=["oxygen"]),
165
102
  RoughTerrainVariant(),
166
103
  ],
167
104
  )
@@ -188,17 +125,15 @@ EnergyStarvedStandard = Mission(
188
125
 
189
126
  EnergyStarvedHard = Mission(
190
127
  name="energy_starved_hard",
191
- description="Hard: energy bottleneck with solar flare damage and rough terrain.",
128
+ description="Hard: energy bottleneck with dark side and rough terrain.",
192
129
  site=HELLO_WORLD,
193
130
  variants=[
194
- ResourceBottleneckVariant(resource=["energy"]),
195
131
  DarkSideVariant(),
196
132
  RoughTerrainVariant(),
197
133
  ],
198
134
  )
199
135
 
200
- # Collect Distant Resources evals (Resources scattered far from base; heavy routing coordination.)
201
-
136
+ # Collect Distant Resources evals
202
137
  DistantResources = Mission(
203
138
  name="distant_resources",
204
139
  description="Resources scattered far from base; heavy routing coordination.",
@@ -233,17 +168,15 @@ DistantResourcesStandard = Mission(
233
168
 
234
169
  DistantResourcesHard = Mission(
235
170
  name="distant_resources_hard",
236
- description="Hard: distant resources with rough terrain, single-use constraints, and dim lighting.",
171
+ description="Hard: distant resources with rough terrain.",
237
172
  site=HELLO_WORLD,
238
173
  variants=[
239
174
  DistantResourcesVariant(),
240
175
  RoughTerrainVariant(),
241
- SingleUseSwarmVariant(),
242
176
  ],
243
177
  )
244
178
 
245
- # Divide and Conquer evals (Resources split by regions; specialize per resource and reconvene at base.)
246
-
179
+ # Divide and Conquer evals
247
180
  QuadrantBuildings = Mission(
248
181
  name="quadrant_buildings",
249
182
  description="Place buildings in the four quadrants of the map.",
@@ -257,7 +190,7 @@ QuadrantBuildings = Mission(
257
190
  # Quadrant Buildings tiers
258
191
  QuadrantBuildingsEasy = Mission(
259
192
  name="quadrant_buildings_easy",
260
- description="Easy: single resource uniformly distributed with navigation aid and light inventory boost.",
193
+ description="Easy: buildings in quadrants with navigation aid and inventory boost.",
261
194
  site=HELLO_WORLD,
262
195
  variants=[
263
196
  QuadrantBuildingsVariant(),
@@ -278,7 +211,7 @@ QuadrantBuildingsStandard = Mission(
278
211
 
279
212
  QuadrantBuildingsHard = Mission(
280
213
  name="quadrant_buildings_hard",
281
- description="Hard: quadrant distribution with empty base, rough terrain and dim lighting.",
214
+ description="Hard: quadrant distribution with empty base and rough terrain.",
282
215
  site=HELLO_WORLD,
283
216
  variants=[
284
217
  QuadrantBuildingsVariant(),
@@ -287,100 +220,11 @@ QuadrantBuildingsHard = Mission(
287
220
  ],
288
221
  )
289
222
 
290
- # Single Use Swarm evals (Everything is single use, so agents must fan out and reconverge with needed resources.)
291
-
292
- SingleUseSwarm = Mission(
293
- name="single_use_swarm",
294
- description="Everything is single use, so agents must fan out and reconverge with needed resources.",
295
- site=HELLO_WORLD,
296
- variants=[
297
- SingleUseSwarmVariant(),
298
- ],
299
- )
300
-
301
- # Single Use Swarm tiers
302
- SingleUseSwarmEasy = Mission(
303
- name="single_use_swarm_easy",
304
- description="Easy: single-use but with small map, compass, and better energy.",
305
- site=HELLO_WORLD,
306
- variants=[
307
- SingleUseSwarmVariant(),
308
- CompassVariant(),
309
- SuperChargedVariant(),
310
- ExtractorHeartTuneVariant(hearts=1),
311
- ],
312
- )
313
-
314
- SingleUseSwarmStandard = Mission(
315
- name="single_use_swarm_standard",
316
- description="Standard: single-use with distant resources.",
317
- site=HELLO_WORLD,
318
- variants=[
319
- SingleUseSwarmVariant(),
320
- DistantResourcesVariant(),
321
- ],
322
- )
323
-
324
- SingleUseSwarmHard = Mission(
325
- name="single_use_swarm_hard",
326
- description="Hard: single-use with distance, rough terrain, and poor lighting.",
327
- site=HELLO_WORLD,
328
- variants=[
329
- SingleUseSwarmVariant(),
330
- DistantResourcesVariant(),
331
- RoughTerrainVariant(),
332
- ],
333
- )
334
-
335
- # Vibe Check evals (Agents must check their vibe, either binary or full, and then coordinate others for assembly.)
336
-
337
- VibeCheck = Mission(
338
- name="vibe_check",
339
- description="Agents must check their vibe, either binary or full, and then coordinate others for assembly.",
340
- site=HELLO_WORLD,
341
- variants=[
342
- EmptyBaseVariant(),
343
- VibeCheckMin2Variant(),
344
- ],
345
- )
346
-
347
- VibeCheckEasy = Mission(
348
- name="vibe_check_easy",
349
- description="Easy: generous hearts with shaping rewards to guide coordination.",
350
- site=HELLO_WORLD,
351
- variants=[
352
- EmptyBaseVariant(),
353
- VibeCheckMin2Variant(),
354
- LonelyHeartVariant(),
355
- ],
356
- )
357
-
358
- VibeCheckStandard = Mission(
359
- name="vibe_check_standard",
360
- description="Standard: vanilla vibe requirements without extra constraints.",
361
- site=HELLO_WORLD,
362
- variants=[
363
- EmptyBaseVariant(),
364
- VibeCheckMin2Variant(min_vibes=3),
365
- ],
366
- )
367
-
368
- VibeCheckHard = Mission(
369
- name="vibe_check_hard",
370
- description="Hard: minimum heart vibes plus energy pressure.",
371
- site=HELLO_WORLD,
372
- variants=[
373
- EmptyBaseVariant(),
374
- VibeCheckMin2Variant(min_vibes=4),
375
- ],
376
- )
377
-
378
223
  EasyHeartsTraining = Mission(
379
224
  name="easy_hearts_training",
380
225
  description="Simplified heart crafting with generous caps and extractor base.",
381
226
  site=TRAINING_FACILITY,
382
227
  variants=[
383
- LonelyHeartVariant(),
384
228
  PackRatVariant(),
385
229
  ],
386
230
  )
@@ -390,7 +234,6 @@ EasyHeartsSmallWorld = Mission(
390
234
  description="Simplified heart crafting with generous caps and extractor base.",
391
235
  site=SMALL_HELLO_WORLD,
392
236
  variants=[
393
- LonelyHeartVariant(),
394
237
  PackRatVariant(),
395
238
  ],
396
239
  )
@@ -400,7 +243,6 @@ EasyHeartsMediumWorld = Mission(
400
243
  description="Simplified heart crafting with generous caps and extractor base.",
401
244
  site=MEDIUM_HELLO_WORLD,
402
245
  variants=[
403
- LonelyHeartVariant(),
404
246
  PackRatVariant(),
405
247
  ],
406
248
  )
@@ -410,7 +252,6 @@ EasyHeartsLargeWorld = Mission(
410
252
  description="Simplified heart crafting with generous caps and extractor base.",
411
253
  site=LARGE_HELLO_WORLD,
412
254
  variants=[
413
- LonelyHeartVariant(),
414
255
  PackRatVariant(),
415
256
  ],
416
257
  )
@@ -424,10 +265,6 @@ EVAL_MISSIONS: list[Mission] = [
424
265
  EnergyStarvedEasy,
425
266
  EnergyStarvedStandard,
426
267
  EnergyStarvedHard,
427
- # Unclipping tiers
428
- UnclippingEasy,
429
- UnclippingStandard,
430
- UnclippingHard,
431
268
  # Distant resources tiers
432
269
  DistantResourcesEasy,
433
270
  DistantResourcesStandard,
@@ -436,14 +273,6 @@ EVAL_MISSIONS: list[Mission] = [
436
273
  QuadrantBuildingsEasy,
437
274
  QuadrantBuildingsStandard,
438
275
  QuadrantBuildingsHard,
439
- # Single use swarm tiers
440
- SingleUseSwarmEasy,
441
- SingleUseSwarmStandard,
442
- SingleUseSwarmHard,
443
- # Vibe check tiers
444
- VibeCheckEasy,
445
- VibeCheckStandard,
446
- VibeCheckHard,
447
276
  # Hearts missions (easy only by design)
448
277
  EasyHeartsTraining,
449
278
  EasyHeartsSmallWorld,