@reicek/neataptic-ts 0.1.24 → 0.1.26

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 (215) hide show
  1. package/.github/copilot-instructions.md +11 -0
  2. package/.github/skills/trace-analyzer-extension/SKILL.md +3 -3
  3. package/.github/skills/trace-analyzer-extension/assets/extension-checklist.md +1 -1
  4. package/.github/skills/trace-analyzer-extension/references/analyzer-extension-workflow.md +1 -1
  5. package/.github/skills/trace-audit-reporting/SKILL.md +3 -3
  6. package/.github/skills/trace-audit-reporting/references/trace-analysis-workflow.md +1 -1
  7. package/.github/workflows/ci.yml +3 -3
  8. package/.github/workflows/deploy-pages.yml +6 -6
  9. package/.github/workflows/manual_release_pipeline.yml +3 -3
  10. package/.github/workflows/publish.yml +18 -19
  11. package/.github/workflows/release_dispatch.yml +3 -3
  12. package/package.json +26 -20
  13. package/plans/Flappy_Bird_Folder_Documentation_Pass.md +4 -4
  14. package/plans/README.md +24 -0
  15. package/plans/Roadmap.md +62 -40
  16. package/plans/analyze-trace-solid-split.plans.md +66 -0
  17. package/plans/architecture-solid-split.plans.md +9 -15
  18. package/plans/asciiMaze-typescript-repair.plans.md +1 -1
  19. package/plans/generate-docs-solid-split.plans.md +87 -0
  20. package/plans/methods-docs.plans.md +25 -1
  21. package/plans/methods-solid-split.plans.md +14 -14
  22. package/plans/neat-docs.plans.md +9 -1
  23. package/plans/neat-test-surface-repair.plans.md +1 -1
  24. package/plans/render-docs-html-solid-split.plans.md +68 -0
  25. package/plans/src-no-explicit-any-cleanup.plans.md +1 -1
  26. package/plans/utils-docs.plans.md +6 -1
  27. package/scripts/analyze-trace/analyze-trace.analysis.ts +479 -0
  28. package/scripts/analyze-trace/analyze-trace.constants.ts +35 -0
  29. package/scripts/analyze-trace/analyze-trace.io.ts +69 -0
  30. package/scripts/analyze-trace/analyze-trace.report.ts +100 -0
  31. package/scripts/analyze-trace/analyze-trace.shared.ts +116 -0
  32. package/scripts/analyze-trace/analyze-trace.ts +45 -0
  33. package/scripts/analyze-trace/analyze-trace.types.ts +72 -0
  34. package/scripts/assets/theme.css +80 -23
  35. package/scripts/copy-examples.ts +239 -0
  36. package/scripts/export-onnx.ts +223 -0
  37. package/scripts/generate-bench-tables.ts +378 -37
  38. package/scripts/generate-docs/generate-docs.constants.ts +107 -0
  39. package/scripts/generate-docs/generate-docs.order.ts +355 -0
  40. package/scripts/generate-docs/generate-docs.state.ts +31 -0
  41. package/scripts/generate-docs/generate-docs.targets.ts +165 -0
  42. package/scripts/generate-docs/generate-docs.ts +63 -0
  43. package/scripts/generate-docs/generate-docs.types.ts +112 -0
  44. package/scripts/generate-docs/output/generate-docs.output.folder-index.utils.ts +167 -0
  45. package/scripts/generate-docs/output/generate-docs.output.ordering.utils.ts +353 -0
  46. package/scripts/generate-docs/output/generate-docs.output.readme.utils.ts +420 -0
  47. package/scripts/generate-docs/output/generate-docs.output.ts +123 -0
  48. package/scripts/generate-docs/output/generate-docs.output.warnings.utils.ts +219 -0
  49. package/scripts/generate-docs/symbols/generate-docs.symbols.collection.utils.ts +365 -0
  50. package/scripts/generate-docs/symbols/generate-docs.symbols.jsdoc.utils.ts +373 -0
  51. package/scripts/generate-docs/symbols/generate-docs.symbols.normalize.utils.ts +155 -0
  52. package/scripts/generate-docs/symbols/generate-docs.symbols.render.utils.ts +149 -0
  53. package/scripts/generate-docs/symbols/generate-docs.symbols.signature.utils.ts +289 -0
  54. package/scripts/generate-docs/symbols/generate-docs.symbols.ts +11 -0
  55. package/scripts/mermaid-cli.mjs +102 -22
  56. package/scripts/mermaid-cli.ts +736 -0
  57. package/scripts/render-docs-html/render-docs-html.assets.ts +54 -0
  58. package/scripts/render-docs-html/render-docs-html.mermaid.ts +245 -0
  59. package/scripts/{render-docs-html.sidebar.ts → render-docs-html/render-docs-html.navigation.ts} +141 -144
  60. package/scripts/render-docs-html/render-docs-html.pages.ts +333 -0
  61. package/scripts/render-docs-html/render-docs-html.shared.ts +333 -0
  62. package/scripts/render-docs-html/render-docs-html.types.ts +42 -0
  63. package/scripts/render-docs-html.ts +23 -587
  64. package/scripts/run-docs.ts +238 -0
  65. package/scripts/write-dist-docs-pkg.ts +40 -0
  66. package/src/README.md +75 -75
  67. package/src/architecture/connection/README.md +5 -5
  68. package/src/architecture/layer/README.md +508 -508
  69. package/src/architecture/network/README.md +1458 -1458
  70. package/src/architecture/network/activate/README.md +694 -694
  71. package/src/architecture/network/bootstrap/README.md +77 -77
  72. package/src/architecture/network/connect/README.md +74 -74
  73. package/src/architecture/network/deterministic/README.md +135 -135
  74. package/src/architecture/network/evolve/README.md +364 -364
  75. package/src/architecture/network/gating/README.md +130 -130
  76. package/src/architecture/network/genetic/README.md +399 -399
  77. package/src/architecture/network/mutate/README.md +897 -897
  78. package/src/architecture/network/onnx/README.md +720 -720
  79. package/src/architecture/network/onnx/export/README.md +728 -728
  80. package/src/architecture/network/onnx/export/layers/README.md +450 -450
  81. package/src/architecture/network/onnx/import/README.md +618 -618
  82. package/src/architecture/network/onnx/schema/README.md +32 -32
  83. package/src/architecture/network/prune/README.md +245 -245
  84. package/src/architecture/network/remove/README.md +135 -135
  85. package/src/architecture/network/runtime/README.md +106 -106
  86. package/src/architecture/network/serialize/README.md +542 -542
  87. package/src/architecture/network/slab/README.md +608 -608
  88. package/src/architecture/network/standalone/README.md +212 -212
  89. package/src/architecture/network/stats/README.md +84 -84
  90. package/src/architecture/network/topology/README.md +465 -465
  91. package/src/architecture/network/training/README.md +200 -200
  92. package/src/architecture/node/README.md +5 -5
  93. package/src/architecture/nodePool/README.md +14 -14
  94. package/src/methods/README.md +99 -99
  95. package/src/methods/activation/README.md +189 -189
  96. package/src/methods/cost/README.md +131 -131
  97. package/src/methods/rate/README.md +86 -86
  98. package/src/multithreading/README.md +77 -77
  99. package/src/multithreading/workers/browser/README.md +8 -8
  100. package/src/multithreading/workers/node/README.md +8 -8
  101. package/src/neat/README.md +148 -148
  102. package/src/neat/adaptive/README.md +120 -120
  103. package/src/neat/adaptive/acceptance/README.md +40 -40
  104. package/src/neat/adaptive/complexity/README.md +137 -137
  105. package/src/neat/adaptive/core/README.md +197 -197
  106. package/src/neat/adaptive/lineage/README.md +90 -90
  107. package/src/neat/adaptive/mutation/README.md +284 -284
  108. package/src/neat/compat/README.md +43 -43
  109. package/src/neat/compat/core/README.md +90 -90
  110. package/src/neat/diversity/README.md +35 -35
  111. package/src/neat/diversity/core/README.md +88 -88
  112. package/src/neat/evaluate/README.md +85 -85
  113. package/src/neat/evaluate/auto-distance/README.md +75 -75
  114. package/src/neat/evaluate/entropy-compat/README.md +37 -37
  115. package/src/neat/evaluate/entropy-sharing/README.md +43 -43
  116. package/src/neat/evaluate/fitness/README.md +23 -23
  117. package/src/neat/evaluate/novelty/README.md +120 -120
  118. package/src/neat/evaluate/objectives/README.md +17 -17
  119. package/src/neat/evaluate/shared/README.md +94 -94
  120. package/src/neat/evolve/README.md +96 -96
  121. package/src/neat/evolve/adaptive/README.md +60 -60
  122. package/src/neat/evolve/objectives/README.md +63 -63
  123. package/src/neat/evolve/offspring/README.md +56 -56
  124. package/src/neat/evolve/population/README.md +171 -171
  125. package/src/neat/evolve/runtime/README.md +79 -79
  126. package/src/neat/evolve/speciation/README.md +74 -74
  127. package/src/neat/evolve/warnings/README.md +10 -10
  128. package/src/neat/export/README.md +114 -114
  129. package/src/neat/helpers/README.md +50 -50
  130. package/src/neat/init/README.md +9 -9
  131. package/src/neat/lineage/core/README.md +101 -101
  132. package/src/neat/multiobjective/category/README.md +74 -74
  133. package/src/neat/multiobjective/crowding/README.md +272 -272
  134. package/src/neat/multiobjective/dominance/README.md +171 -171
  135. package/src/neat/multiobjective/fronts/README.md +68 -68
  136. package/src/neat/multiobjective/metrics/README.md +43 -43
  137. package/src/neat/multiobjective/objectives/README.md +31 -31
  138. package/src/neat/multiobjective/shared/README.md +27 -27
  139. package/src/neat/mutation/README.md +97 -97
  140. package/src/neat/mutation/add-conn/README.md +115 -115
  141. package/src/neat/mutation/add-node/README.md +126 -126
  142. package/src/neat/mutation/flow/README.md +149 -149
  143. package/src/neat/mutation/repair/README.md +185 -185
  144. package/src/neat/mutation/select/README.md +117 -117
  145. package/src/neat/mutation/shared/README.md +32 -32
  146. package/src/neat/objectives/README.md +25 -25
  147. package/src/neat/objectives/core/README.md +67 -67
  148. package/src/neat/pruning/README.md +40 -40
  149. package/src/neat/pruning/core/README.md +171 -171
  150. package/src/neat/pruning/facade/README.md +32 -32
  151. package/src/neat/rng/README.md +104 -104
  152. package/src/neat/rng/core/README.md +137 -137
  153. package/src/neat/rng/facade/README.md +50 -50
  154. package/src/neat/selection/README.md +111 -111
  155. package/src/neat/selection/core/README.md +227 -227
  156. package/src/neat/selection/facade/README.md +61 -61
  157. package/src/neat/shared/README.md +163 -163
  158. package/src/neat/speciation/README.md +31 -31
  159. package/src/neat/speciation/threshold/README.md +35 -35
  160. package/src/neat/species/README.md +25 -25
  161. package/src/neat/species/core/README.md +20 -20
  162. package/src/neat/species/core/shared/README.md +18 -18
  163. package/src/neat/species/history/context/README.md +22 -22
  164. package/src/neat/telemetry/accessors/README.md +58 -58
  165. package/src/neat/telemetry/exports/README.md +233 -233
  166. package/src/neat/telemetry/facade/README.md +252 -252
  167. package/src/neat/telemetry/facade/archive/README.md +57 -57
  168. package/src/neat/telemetry/facade/buffer/README.md +43 -43
  169. package/src/neat/telemetry/facade/lineage/README.md +12 -12
  170. package/src/neat/telemetry/facade/objectives/README.md +44 -44
  171. package/src/neat/telemetry/facade/runtime/README.md +26 -26
  172. package/src/neat/telemetry/facade/species/README.md +27 -27
  173. package/src/neat/telemetry/metrics/README.md +696 -696
  174. package/src/neat/telemetry/recorder/README.md +57 -57
  175. package/src/neat/telemetry/types/README.md +32 -32
  176. package/src/neat/topology-intent/README.md +75 -75
  177. package/src/utils/README.md +193 -193
  178. package/test/examples/asciiMaze/browser-entry/README.md +92 -92
  179. package/test/examples/asciiMaze/dashboardManager/README.md +109 -109
  180. package/test/examples/asciiMaze/dashboardManager/telemetry/README.md +28 -28
  181. package/test/examples/asciiMaze/evolutionEngine/README.md +1527 -1527
  182. package/test/examples/asciiMaze/mazeMovement/README.md +105 -105
  183. package/test/examples/asciiMaze/mazeMovement/finalization/README.md +16 -16
  184. package/test/examples/asciiMaze/mazeMovement/policy/README.md +57 -57
  185. package/test/examples/asciiMaze/mazeMovement/runtime/README.md +52 -52
  186. package/test/examples/asciiMaze/mazeMovement/shaping/README.md +46 -46
  187. package/test/examples/flappy_bird/browser-entry/README.md +508 -508
  188. package/test/examples/flappy_bird/browser-entry/host/README.md +101 -101
  189. package/test/examples/flappy_bird/browser-entry/host/resize/README.md +144 -144
  190. package/test/examples/flappy_bird/browser-entry/network-view/README.md +194 -194
  191. package/test/examples/flappy_bird/browser-entry/playback/README.md +278 -278
  192. package/test/examples/flappy_bird/browser-entry/playback/background/README.md +129 -129
  193. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/README.md +502 -502
  194. package/test/examples/flappy_bird/browser-entry/playback/frame-render/README.md +139 -139
  195. package/test/examples/flappy_bird/browser-entry/playback/snapshot/README.md +10 -10
  196. package/test/examples/flappy_bird/browser-entry/playback/trail/README.md +43 -43
  197. package/test/examples/flappy_bird/browser-entry/playback/worker-channel/README.md +30 -30
  198. package/test/examples/flappy_bird/browser-entry/runtime/README.md +59 -59
  199. package/test/examples/flappy_bird/browser-entry/visualization/README.md +276 -276
  200. package/test/examples/flappy_bird/browser-entry/worker-channel/README.md +16 -16
  201. package/test/examples/flappy_bird/constants/README.md +1070 -1070
  202. package/test/examples/flappy_bird/environment/README.md +22 -22
  203. package/test/examples/flappy_bird/evaluation/README.md +32 -32
  204. package/test/examples/flappy_bird/evaluation/rollout/README.md +141 -141
  205. package/test/examples/flappy_bird/flappy-evolution-worker/README.md +425 -425
  206. package/test/examples/flappy_bird/simulation-shared/README.md +170 -170
  207. package/test/examples/flappy_bird/simulation-shared/observation/README.md +109 -109
  208. package/test/examples/flappy_bird/trainer/README.md +325 -325
  209. package/test/examples/flappy_bird/trainer/evaluation/README.md +74 -74
  210. package/scripts/analyze-trace.ts +0 -590
  211. package/scripts/copy-examples.mjs +0 -114
  212. package/scripts/export-onnx.mjs +0 -86
  213. package/scripts/generate-bench-tables.mjs +0 -182
  214. package/scripts/generate-docs.ts +0 -2900
  215. package/scripts/write-dist-docs-pkg.mjs +0 -16
@@ -20,6 +20,13 @@ flowchart LR
20
20
 
21
21
  ## trainer/evaluation/trainer.evaluation.service.types.ts
22
22
 
23
+ ### PopulationAggregateScoringContext
24
+
25
+ Aggregate scoring context shared while computing frame-primary scores.
26
+
27
+ The context precomputes population-wide reference values so per-genome scoring
28
+ can stay simple and deterministic.
29
+
23
30
  ### PopulationStageEvaluationRequest
24
31
 
25
32
  Candidate-stage request used by the staged population evaluator.
@@ -32,52 +39,29 @@ This shape is intentionally stage-agnostic: quick, full, and reevaluation can
32
39
  all use the same execution helper by changing only candidate count, seed set,
33
40
  and rollout budget.
34
41
 
35
- ### PopulationAggregateScoringContext
36
-
37
- Aggregate scoring context shared while computing frame-primary scores.
38
-
39
- The context precomputes population-wide reference values so per-genome scoring
40
- can stay simple and deterministic.
41
-
42
42
  ## trainer/evaluation/trainer.evaluation.service.ts
43
43
 
44
- ### evaluatePopulationQuickStage
44
+ ### commitPopulationScores
45
45
 
46
46
  ```ts
47
- evaluatePopulationQuickStage(
47
+ commitPopulationScores(
48
48
  population: readonly FlappyTrainerNetwork[],
49
- generationEvaluationPlan: FlappyGenerationEvaluationPlan,
50
- aggregateByGenome: Map<FlappyTrainerNetwork, FlappySeedBatchEvaluation>,
51
- provisionalScoresByGenome: Map<FlappyTrainerNetwork, number>,
49
+ provisionalScoresByGenome: ReadonlyMap<FlappyTrainerNetwork, number>,
52
50
  ): void
53
51
  ```
54
52
 
55
- Executes the quick evaluation stage over the full population.
53
+ Commits provisional scores to genome score fields.
56
54
 
57
- Educational note:
58
- The quick stage is a cheap screening pass. Every genome is tested on the same
59
- small shared seed batch so the trainer can discard obviously weak candidates
60
- before spending more rollout budget on them.
55
+ Provisional scores are kept in a map during staging so each phase can refresh
56
+ them without mutating the genomes too early. This helper performs the final
57
+ write-back once staged evaluation is complete.
61
58
 
62
59
  Parameters:
63
60
  - `population` - - Current population.
64
- - `generationEvaluationPlan` - - Per-generation staged evaluation plan.
65
- - `aggregateByGenome` - - Mutable aggregate cache keyed by genome.
66
- - `provisionalScoresByGenome` - - Mutable provisional score map.
61
+ - `provisionalScoresByGenome` - - Final provisional score map.
67
62
 
68
63
  Returns: Nothing.
69
64
 
70
- Example:
71
-
72
- ```ts
73
- evaluatePopulationQuickStage(
74
- population,
75
- generationEvaluationPlan,
76
- aggregateByGenome,
77
- provisionalScoresByGenome,
78
- );
79
- ```
80
-
81
65
  ### evaluatePopulationFullStage
82
66
 
83
67
  ```ts
@@ -105,52 +89,68 @@ Parameters:
105
89
 
106
90
  Returns: Nothing.
107
91
 
108
- ### evaluatePopulationReevaluationStage
92
+ ### evaluatePopulationQuickStage
109
93
 
110
94
  ```ts
111
- evaluatePopulationReevaluationStage(
95
+ evaluatePopulationQuickStage(
112
96
  population: readonly FlappyTrainerNetwork[],
113
97
  generationEvaluationPlan: FlappyGenerationEvaluationPlan,
114
98
  aggregateByGenome: Map<FlappyTrainerNetwork, FlappySeedBatchEvaluation>,
115
99
  provisionalScoresByGenome: Map<FlappyTrainerNetwork, number>,
116
- elitismCount: number,
117
100
  ): void
118
101
  ```
119
102
 
120
- Executes the large-seed reevaluation stage over top candidates.
103
+ Executes the quick evaluation stage over the full population.
121
104
 
122
105
  Educational note:
123
- Reevaluation is the trainer's anti-luck pass. The best provisional genomes
124
- are tested again on a larger shared seed batch so leaderboard positions are
125
- less sensitive to a fortunate early sample.
106
+ The quick stage is a cheap screening pass. Every genome is tested on the same
107
+ small shared seed batch so the trainer can discard obviously weak candidates
108
+ before spending more rollout budget on them.
126
109
 
127
110
  Parameters:
128
111
  - `population` - - Current population.
129
112
  - `generationEvaluationPlan` - - Per-generation staged evaluation plan.
130
113
  - `aggregateByGenome` - - Mutable aggregate cache keyed by genome.
131
114
  - `provisionalScoresByGenome` - - Mutable provisional score map.
132
- - `elitismCount` - - Configured elitism count.
133
115
 
134
116
  Returns: Nothing.
135
117
 
136
- ### commitPopulationScores
118
+ Example:
137
119
 
138
120
  ```ts
139
- commitPopulationScores(
121
+ evaluatePopulationQuickStage(
122
+ population,
123
+ generationEvaluationPlan,
124
+ aggregateByGenome,
125
+ provisionalScoresByGenome,
126
+ );
127
+ ```
128
+
129
+ ### evaluatePopulationReevaluationStage
130
+
131
+ ```ts
132
+ evaluatePopulationReevaluationStage(
140
133
  population: readonly FlappyTrainerNetwork[],
141
- provisionalScoresByGenome: ReadonlyMap<FlappyTrainerNetwork, number>,
134
+ generationEvaluationPlan: FlappyGenerationEvaluationPlan,
135
+ aggregateByGenome: Map<FlappyTrainerNetwork, FlappySeedBatchEvaluation>,
136
+ provisionalScoresByGenome: Map<FlappyTrainerNetwork, number>,
137
+ elitismCount: number,
142
138
  ): void
143
139
  ```
144
140
 
145
- Commits provisional scores to genome score fields.
141
+ Executes the large-seed reevaluation stage over top candidates.
146
142
 
147
- Provisional scores are kept in a map during staging so each phase can refresh
148
- them without mutating the genomes too early. This helper performs the final
149
- write-back once staged evaluation is complete.
143
+ Educational note:
144
+ Reevaluation is the trainer's anti-luck pass. The best provisional genomes
145
+ are tested again on a larger shared seed batch so leaderboard positions are
146
+ less sensitive to a fortunate early sample.
150
147
 
151
148
  Parameters:
152
149
  - `population` - - Current population.
153
- - `provisionalScoresByGenome` - - Final provisional score map.
150
+ - `generationEvaluationPlan` - - Per-generation staged evaluation plan.
151
+ - `aggregateByGenome` - - Mutable aggregate cache keyed by genome.
152
+ - `provisionalScoresByGenome` - - Mutable provisional score map.
153
+ - `elitismCount` - - Configured elitism count.
154
154
 
155
155
  Returns: Nothing.
156
156
 
@@ -239,13 +239,6 @@ Fallback score assigned to genomes that have not yet been evaluated.
239
239
  Using negative infinity guarantees unevaluated genomes lose any ranking tie
240
240
  against genomes that already have real aggregate results.
241
241
 
242
- ### FLAPPY_TRAINER_NEGATIVE_INFINITY_SCORE
243
-
244
- Fallback score assigned to genomes that have not yet been evaluated.
245
-
246
- Using negative infinity guarantees unevaluated genomes lose any ranking tie
247
- against genomes that already have real aggregate results.
248
-
249
242
  ### FLAPPY_TRAINER_MIN_PIPE_PROGRESS
250
243
 
251
244
  Minimum pipe-progress baseline used when no aggregates are available.
@@ -253,6 +246,13 @@ Minimum pipe-progress baseline used when no aggregates are available.
253
246
  This keeps early-stage aggregate scoring well-defined even before any genome
254
247
  has established meaningful pipe progress.
255
248
 
249
+ ### FLAPPY_TRAINER_NEGATIVE_INFINITY_SCORE
250
+
251
+ Fallback score assigned to genomes that have not yet been evaluated.
252
+
253
+ Using negative infinity guarantees unevaluated genomes lose any ranking tie
254
+ against genomes that already have real aggregate results.
255
+
256
256
  ## trainer/evaluation/trainer.evaluation.service.utils.ts
257
257
 
258
258
  ### assignFramePrimaryScores
@@ -319,6 +319,26 @@ Parameters:
319
319
 
320
320
  Returns: Highest mean pipe-progress value.
321
321
 
322
+ ### resolvePopulationAggregateScoringContext
323
+
324
+ ```ts
325
+ resolvePopulationAggregateScoringContext(
326
+ population: readonly FlappyTrainerNetwork[],
327
+ aggregateByGenome: ReadonlyMap<FlappyTrainerNetwork, FlappySeedBatchEvaluation>,
328
+ ): PopulationAggregateScoringContext
329
+ ```
330
+
331
+ Resolves the aggregate scoring context used by frame-primary scoring.
332
+
333
+ This precomputation step keeps the per-genome scoring loop lean and avoids
334
+ recomputing population-wide maxima for every genome.
335
+
336
+ Parameters:
337
+ - `population` - - Current population.
338
+ - `aggregateByGenome` - - Aggregate cache keyed by genome.
339
+
340
+ Returns: Aggregate scoring context.
341
+
322
342
  ### scoreAggregateFramePrimary
323
343
 
324
344
  ```ts
@@ -340,23 +360,3 @@ Parameters:
340
360
  - `maximumMeanPipesPassed` - - Best mean pipe progress in the population.
341
361
 
342
362
  Returns: Provisional score.
343
-
344
- ### resolvePopulationAggregateScoringContext
345
-
346
- ```ts
347
- resolvePopulationAggregateScoringContext(
348
- population: readonly FlappyTrainerNetwork[],
349
- aggregateByGenome: ReadonlyMap<FlappyTrainerNetwork, FlappySeedBatchEvaluation>,
350
- ): PopulationAggregateScoringContext
351
- ```
352
-
353
- Resolves the aggregate scoring context used by frame-primary scoring.
354
-
355
- This precomputation step keeps the per-genome scoring loop lean and avoids
356
- recomputing population-wide maxima for every genome.
357
-
358
- Parameters:
359
- - `population` - - Current population.
360
- - `aggregateByGenome` - - Aggregate cache keyed by genome.
361
-
362
- Returns: Aggregate scoring context.