@reicek/neataptic-ts 0.1.25 → 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 (210) 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/package.json +19 -13
  8. package/plans/Flappy_Bird_Folder_Documentation_Pass.md +4 -4
  9. package/plans/README.md +24 -0
  10. package/plans/Roadmap.md +62 -40
  11. package/plans/analyze-trace-solid-split.plans.md +66 -0
  12. package/plans/architecture-solid-split.plans.md +9 -15
  13. package/plans/asciiMaze-typescript-repair.plans.md +1 -1
  14. package/plans/generate-docs-solid-split.plans.md +87 -0
  15. package/plans/methods-docs.plans.md +25 -1
  16. package/plans/methods-solid-split.plans.md +14 -14
  17. package/plans/neat-docs.plans.md +9 -1
  18. package/plans/neat-test-surface-repair.plans.md +1 -1
  19. package/plans/render-docs-html-solid-split.plans.md +68 -0
  20. package/plans/src-no-explicit-any-cleanup.plans.md +1 -1
  21. package/plans/utils-docs.plans.md +6 -1
  22. package/scripts/analyze-trace/analyze-trace.analysis.ts +479 -0
  23. package/scripts/analyze-trace/analyze-trace.constants.ts +35 -0
  24. package/scripts/analyze-trace/analyze-trace.io.ts +69 -0
  25. package/scripts/analyze-trace/analyze-trace.report.ts +100 -0
  26. package/scripts/analyze-trace/analyze-trace.shared.ts +116 -0
  27. package/scripts/analyze-trace/analyze-trace.ts +45 -0
  28. package/scripts/analyze-trace/analyze-trace.types.ts +72 -0
  29. package/scripts/assets/theme.css +80 -23
  30. package/scripts/copy-examples.ts +239 -0
  31. package/scripts/export-onnx.ts +223 -0
  32. package/scripts/generate-bench-tables.ts +378 -37
  33. package/scripts/generate-docs/generate-docs.constants.ts +107 -0
  34. package/scripts/generate-docs/generate-docs.order.ts +355 -0
  35. package/scripts/generate-docs/generate-docs.state.ts +31 -0
  36. package/scripts/generate-docs/generate-docs.targets.ts +165 -0
  37. package/scripts/generate-docs/generate-docs.ts +63 -0
  38. package/scripts/generate-docs/generate-docs.types.ts +112 -0
  39. package/scripts/generate-docs/output/generate-docs.output.folder-index.utils.ts +167 -0
  40. package/scripts/generate-docs/output/generate-docs.output.ordering.utils.ts +353 -0
  41. package/scripts/generate-docs/output/generate-docs.output.readme.utils.ts +420 -0
  42. package/scripts/generate-docs/output/generate-docs.output.ts +123 -0
  43. package/scripts/generate-docs/output/generate-docs.output.warnings.utils.ts +219 -0
  44. package/scripts/generate-docs/symbols/generate-docs.symbols.collection.utils.ts +365 -0
  45. package/scripts/generate-docs/symbols/generate-docs.symbols.jsdoc.utils.ts +373 -0
  46. package/scripts/generate-docs/symbols/generate-docs.symbols.normalize.utils.ts +155 -0
  47. package/scripts/generate-docs/symbols/generate-docs.symbols.render.utils.ts +149 -0
  48. package/scripts/generate-docs/symbols/generate-docs.symbols.signature.utils.ts +289 -0
  49. package/scripts/generate-docs/symbols/generate-docs.symbols.ts +11 -0
  50. package/scripts/mermaid-cli.mjs +102 -22
  51. package/scripts/mermaid-cli.ts +736 -0
  52. package/scripts/render-docs-html/render-docs-html.assets.ts +54 -0
  53. package/scripts/render-docs-html/render-docs-html.mermaid.ts +245 -0
  54. package/scripts/{render-docs-html.sidebar.ts → render-docs-html/render-docs-html.navigation.ts} +141 -144
  55. package/scripts/render-docs-html/render-docs-html.pages.ts +333 -0
  56. package/scripts/render-docs-html/render-docs-html.shared.ts +333 -0
  57. package/scripts/render-docs-html/render-docs-html.types.ts +42 -0
  58. package/scripts/render-docs-html.ts +23 -587
  59. package/scripts/run-docs.ts +238 -0
  60. package/scripts/write-dist-docs-pkg.ts +40 -0
  61. package/src/README.md +75 -75
  62. package/src/architecture/connection/README.md +5 -5
  63. package/src/architecture/layer/README.md +508 -508
  64. package/src/architecture/network/README.md +1458 -1458
  65. package/src/architecture/network/activate/README.md +694 -694
  66. package/src/architecture/network/bootstrap/README.md +77 -77
  67. package/src/architecture/network/connect/README.md +74 -74
  68. package/src/architecture/network/deterministic/README.md +135 -135
  69. package/src/architecture/network/evolve/README.md +364 -364
  70. package/src/architecture/network/gating/README.md +130 -130
  71. package/src/architecture/network/genetic/README.md +399 -399
  72. package/src/architecture/network/mutate/README.md +897 -897
  73. package/src/architecture/network/onnx/README.md +720 -720
  74. package/src/architecture/network/onnx/export/README.md +728 -728
  75. package/src/architecture/network/onnx/export/layers/README.md +450 -450
  76. package/src/architecture/network/onnx/import/README.md +618 -618
  77. package/src/architecture/network/onnx/schema/README.md +32 -32
  78. package/src/architecture/network/prune/README.md +245 -245
  79. package/src/architecture/network/remove/README.md +135 -135
  80. package/src/architecture/network/runtime/README.md +106 -106
  81. package/src/architecture/network/serialize/README.md +542 -542
  82. package/src/architecture/network/slab/README.md +608 -608
  83. package/src/architecture/network/standalone/README.md +212 -212
  84. package/src/architecture/network/stats/README.md +84 -84
  85. package/src/architecture/network/topology/README.md +465 -465
  86. package/src/architecture/network/training/README.md +200 -200
  87. package/src/architecture/node/README.md +5 -5
  88. package/src/architecture/nodePool/README.md +14 -14
  89. package/src/methods/README.md +99 -99
  90. package/src/methods/activation/README.md +189 -189
  91. package/src/methods/cost/README.md +131 -131
  92. package/src/methods/rate/README.md +86 -86
  93. package/src/multithreading/README.md +77 -77
  94. package/src/multithreading/workers/browser/README.md +8 -8
  95. package/src/multithreading/workers/node/README.md +8 -8
  96. package/src/neat/README.md +148 -148
  97. package/src/neat/adaptive/README.md +120 -120
  98. package/src/neat/adaptive/acceptance/README.md +40 -40
  99. package/src/neat/adaptive/complexity/README.md +137 -137
  100. package/src/neat/adaptive/core/README.md +197 -197
  101. package/src/neat/adaptive/lineage/README.md +90 -90
  102. package/src/neat/adaptive/mutation/README.md +284 -284
  103. package/src/neat/compat/README.md +43 -43
  104. package/src/neat/compat/core/README.md +90 -90
  105. package/src/neat/diversity/README.md +35 -35
  106. package/src/neat/diversity/core/README.md +88 -88
  107. package/src/neat/evaluate/README.md +85 -85
  108. package/src/neat/evaluate/auto-distance/README.md +75 -75
  109. package/src/neat/evaluate/entropy-compat/README.md +37 -37
  110. package/src/neat/evaluate/entropy-sharing/README.md +43 -43
  111. package/src/neat/evaluate/fitness/README.md +23 -23
  112. package/src/neat/evaluate/novelty/README.md +120 -120
  113. package/src/neat/evaluate/objectives/README.md +17 -17
  114. package/src/neat/evaluate/shared/README.md +94 -94
  115. package/src/neat/evolve/README.md +96 -96
  116. package/src/neat/evolve/adaptive/README.md +60 -60
  117. package/src/neat/evolve/objectives/README.md +63 -63
  118. package/src/neat/evolve/offspring/README.md +56 -56
  119. package/src/neat/evolve/population/README.md +171 -171
  120. package/src/neat/evolve/runtime/README.md +79 -79
  121. package/src/neat/evolve/speciation/README.md +74 -74
  122. package/src/neat/evolve/warnings/README.md +10 -10
  123. package/src/neat/export/README.md +114 -114
  124. package/src/neat/helpers/README.md +50 -50
  125. package/src/neat/init/README.md +9 -9
  126. package/src/neat/lineage/core/README.md +101 -101
  127. package/src/neat/multiobjective/category/README.md +74 -74
  128. package/src/neat/multiobjective/crowding/README.md +272 -272
  129. package/src/neat/multiobjective/dominance/README.md +171 -171
  130. package/src/neat/multiobjective/fronts/README.md +68 -68
  131. package/src/neat/multiobjective/metrics/README.md +43 -43
  132. package/src/neat/multiobjective/objectives/README.md +31 -31
  133. package/src/neat/multiobjective/shared/README.md +27 -27
  134. package/src/neat/mutation/README.md +97 -97
  135. package/src/neat/mutation/add-conn/README.md +115 -115
  136. package/src/neat/mutation/add-node/README.md +126 -126
  137. package/src/neat/mutation/flow/README.md +149 -149
  138. package/src/neat/mutation/repair/README.md +185 -185
  139. package/src/neat/mutation/select/README.md +117 -117
  140. package/src/neat/mutation/shared/README.md +32 -32
  141. package/src/neat/objectives/README.md +25 -25
  142. package/src/neat/objectives/core/README.md +67 -67
  143. package/src/neat/pruning/README.md +40 -40
  144. package/src/neat/pruning/core/README.md +171 -171
  145. package/src/neat/pruning/facade/README.md +32 -32
  146. package/src/neat/rng/README.md +104 -104
  147. package/src/neat/rng/core/README.md +137 -137
  148. package/src/neat/rng/facade/README.md +50 -50
  149. package/src/neat/selection/README.md +111 -111
  150. package/src/neat/selection/core/README.md +227 -227
  151. package/src/neat/selection/facade/README.md +61 -61
  152. package/src/neat/shared/README.md +163 -163
  153. package/src/neat/speciation/README.md +31 -31
  154. package/src/neat/speciation/threshold/README.md +35 -35
  155. package/src/neat/species/README.md +25 -25
  156. package/src/neat/species/core/README.md +20 -20
  157. package/src/neat/species/core/shared/README.md +18 -18
  158. package/src/neat/species/history/context/README.md +22 -22
  159. package/src/neat/telemetry/accessors/README.md +58 -58
  160. package/src/neat/telemetry/exports/README.md +233 -233
  161. package/src/neat/telemetry/facade/README.md +252 -252
  162. package/src/neat/telemetry/facade/archive/README.md +57 -57
  163. package/src/neat/telemetry/facade/buffer/README.md +43 -43
  164. package/src/neat/telemetry/facade/lineage/README.md +12 -12
  165. package/src/neat/telemetry/facade/objectives/README.md +44 -44
  166. package/src/neat/telemetry/facade/runtime/README.md +26 -26
  167. package/src/neat/telemetry/facade/species/README.md +27 -27
  168. package/src/neat/telemetry/metrics/README.md +696 -696
  169. package/src/neat/telemetry/recorder/README.md +57 -57
  170. package/src/neat/telemetry/types/README.md +32 -32
  171. package/src/neat/topology-intent/README.md +75 -75
  172. package/src/utils/README.md +193 -193
  173. package/test/examples/asciiMaze/browser-entry/README.md +92 -92
  174. package/test/examples/asciiMaze/dashboardManager/README.md +109 -109
  175. package/test/examples/asciiMaze/dashboardManager/telemetry/README.md +28 -28
  176. package/test/examples/asciiMaze/evolutionEngine/README.md +1527 -1527
  177. package/test/examples/asciiMaze/mazeMovement/README.md +105 -105
  178. package/test/examples/asciiMaze/mazeMovement/finalization/README.md +16 -16
  179. package/test/examples/asciiMaze/mazeMovement/policy/README.md +57 -57
  180. package/test/examples/asciiMaze/mazeMovement/runtime/README.md +52 -52
  181. package/test/examples/asciiMaze/mazeMovement/shaping/README.md +46 -46
  182. package/test/examples/flappy_bird/browser-entry/README.md +508 -508
  183. package/test/examples/flappy_bird/browser-entry/host/README.md +101 -101
  184. package/test/examples/flappy_bird/browser-entry/host/resize/README.md +144 -144
  185. package/test/examples/flappy_bird/browser-entry/network-view/README.md +194 -194
  186. package/test/examples/flappy_bird/browser-entry/playback/README.md +278 -278
  187. package/test/examples/flappy_bird/browser-entry/playback/background/README.md +129 -129
  188. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/README.md +502 -502
  189. package/test/examples/flappy_bird/browser-entry/playback/frame-render/README.md +139 -139
  190. package/test/examples/flappy_bird/browser-entry/playback/snapshot/README.md +10 -10
  191. package/test/examples/flappy_bird/browser-entry/playback/trail/README.md +43 -43
  192. package/test/examples/flappy_bird/browser-entry/playback/worker-channel/README.md +30 -30
  193. package/test/examples/flappy_bird/browser-entry/runtime/README.md +59 -59
  194. package/test/examples/flappy_bird/browser-entry/visualization/README.md +276 -276
  195. package/test/examples/flappy_bird/browser-entry/worker-channel/README.md +16 -16
  196. package/test/examples/flappy_bird/constants/README.md +1070 -1070
  197. package/test/examples/flappy_bird/environment/README.md +22 -22
  198. package/test/examples/flappy_bird/evaluation/README.md +32 -32
  199. package/test/examples/flappy_bird/evaluation/rollout/README.md +141 -141
  200. package/test/examples/flappy_bird/flappy-evolution-worker/README.md +425 -425
  201. package/test/examples/flappy_bird/simulation-shared/README.md +170 -170
  202. package/test/examples/flappy_bird/simulation-shared/observation/README.md +109 -109
  203. package/test/examples/flappy_bird/trainer/README.md +325 -325
  204. package/test/examples/flappy_bird/trainer/evaluation/README.md +74 -74
  205. package/scripts/analyze-trace.ts +0 -590
  206. package/scripts/copy-examples.mjs +0 -114
  207. package/scripts/export-onnx.mjs +0 -86
  208. package/scripts/generate-bench-tables.mjs +0 -182
  209. package/scripts/generate-docs.ts +0 -2900
  210. package/scripts/write-dist-docs-pkg.mjs +0 -16
@@ -29,24 +29,6 @@ stable language without widening into a second full controller facade.
29
29
 
30
30
  ## neat/evaluate/shared/evaluate.types.ts
31
31
 
32
- ### GenomeForEvaluation
33
-
34
- Genome with score, novelty, and clearing capabilities.
35
-
36
- This interface describes the smallest practical genome shape that the
37
- evaluate subtree can reason about. It is intentionally permissive so legacy
38
- genome variants and downstream extensions can still participate in
39
- evaluation, while the documented fields mark the pieces of evidence that the
40
- shared helpers actually rely on.
41
-
42
- ### NoveltyArchiveEntry
43
-
44
- Novelty archive entry with descriptor and novelty score.
45
-
46
- Entries store one behavior descriptor alongside its novelty score so later
47
- evaluation passes can keep some memory of previously unusual behavior without
48
- retaining the entire population history.
49
-
50
32
  ### DiversityStats
51
33
 
52
34
  Diversity statistics tracked during evaluation.
@@ -56,13 +38,15 @@ a subset of metrics. Tuning chapters read this structure opportunistically,
56
38
  which lets the evaluation pipeline add evidence incrementally instead of
57
39
  requiring every metric to exist on every pass.
58
40
 
59
- ### ObjectiveDef
41
+ ### GenomeForEvaluation
60
42
 
61
- Objective definition for multi-objective optimization.
43
+ Genome with score, novelty, and clearing capabilities.
62
44
 
63
- Objectives are registered dynamically so evaluation can surface additional
64
- evidence, such as entropy, without forcing the entire objective stack to be
65
- hard-coded at controller construction time.
45
+ This interface describes the smallest practical genome shape that the
46
+ evaluate subtree can reason about. It is intentionally permissive so legacy
47
+ genome variants and downstream extensions can still participate in
48
+ evaluation, while the documented fields mark the pieces of evidence that the
49
+ shared helpers actually rely on.
66
50
 
67
51
  ### NeatControllerForEval
68
52
 
@@ -78,6 +62,22 @@ still much smaller than the full `Neat` surface. That tradeoff keeps the
78
62
  evaluate chapters interoperable while preserving a clear boundary between
79
63
  evaluation and the rest of the runtime.
80
64
 
65
+ ### NoveltyArchiveEntry
66
+
67
+ Novelty archive entry with descriptor and novelty score.
68
+
69
+ Entries store one behavior descriptor alongside its novelty score so later
70
+ evaluation passes can keep some memory of previously unusual behavior without
71
+ retaining the entire population history.
72
+
73
+ ### ObjectiveDef
74
+
75
+ Objective definition for multi-objective optimization.
76
+
77
+ Objectives are registered dynamically so evaluation can surface additional
78
+ evidence, such as entropy, without forcing the entire objective stack to be
79
+ hard-coded at controller construction time.
80
+
81
81
  ## neat/evaluate/shared/evaluate.constants.ts
82
82
 
83
83
  Shared default constants for the NEAT evaluate chapter.
@@ -101,67 +101,68 @@ The exports below group into four families:
101
101
  - entropy-compatibility defaults,
102
102
  - auto-distance and variance-baseline defaults.
103
103
 
104
- ### NOVELTY_DEFAULT_NEIGHBORS
104
+ ### AUTO_COEFF_ADJUST_DEFAULT
105
105
 
106
- Default number of nearest neighbors used when computing novelty.
106
+ Default rate used when auto distance-coefficient tuning rebalances structural distance weights.
107
107
 
108
- Small values keep novelty sensitive to local behavioral differences without requiring a large
109
- archive or population.
108
+ This shared step size controls how quickly excess and disjoint coefficients react when topology
109
+ variance drifts away from the recent baseline.
110
110
 
111
- ### NOVELTY_DEFAULT_BLEND
111
+ ### AUTO_COEFF_MAX_DEFAULT
112
112
 
113
- Default blend factor used when mixing novelty into an existing fitness score.
113
+ Maximum structural-distance coefficient allowed during automatic tuning.
114
114
 
115
- A mid-range value keeps novelty influential without letting exploratory behavior completely drown
116
- out task performance.
115
+ The upper bound prevents excess and disjoint penalties from dominating every later compatibility
116
+ comparison.
117
117
 
118
- ### NOVELTY_ARCHIVE_CAP
118
+ ### AUTO_COEFF_MIN_DEFAULT
119
119
 
120
- Maximum number of descriptors retained in the novelty archive.
120
+ Minimum structural-distance coefficient allowed during automatic tuning.
121
121
 
122
- The cap keeps novelty history useful for exploration while preventing unbounded memory growth.
122
+ The lower bound keeps structural differences meaningful even when the auto-distance policy is
123
+ softening species pressure.
123
124
 
124
- ### ENTROPY_VAR_TARGET_DEFAULT
125
+ ### COMPAT_MAX_THRESHOLD_DEFAULT
125
126
 
126
- Target variance used by entropy-sharing tuning.
127
+ Maximum compatibility threshold allowed during automatic compatibility tuning.
127
128
 
128
- The controller nudges sharing sigma toward a population whose entropy spread is neither too flat
129
- nor too unstable.
129
+ The upper clamp prevents compatibility from becoming so permissive that species boundaries lose
130
+ practical meaning.
130
131
 
131
- ### ENTROPY_VAR_ADJUST_DEFAULT
132
+ ### COMPAT_MIN_THRESHOLD_DEFAULT
132
133
 
133
- Default step size used when entropy-sharing tuning increases or decreases sharing sigma.
134
+ Minimum compatibility threshold allowed during automatic compatibility tuning.
134
135
 
135
- A modest default keeps the sigma controller responsive without letting one noisy variance read
136
- swing the sharing radius too aggressively.
136
+ The lower clamp prevents the threshold from collapsing until even small structural differences
137
+ force unnecessary species fragmentation.
137
138
 
138
- ### ENTROPY_VAR_MIN_SIGMA_DEFAULT
139
+ ### COMPAT_THRESHOLD_DEFAULT
139
140
 
140
- Lower bound for the sharing sigma used by entropy-sharing adaptation.
141
+ Baseline compatibility threshold used when no explicit value is configured.
141
142
 
142
- The lower clamp prevents the sharing radius from shrinking so far that later sharing pressure
143
- becomes hypersensitive to tiny entropy fluctuations.
143
+ This serves as the neutral starting point before entropy-based tuning or explicit user policy
144
+ begins to reshape species pressure.
144
145
 
145
- ### ENTROPY_VAR_MAX_SIGMA_DEFAULT
146
+ ### DISTANCE_COEFF_DEFAULT
146
147
 
147
- Upper bound for the sharing sigma used by entropy-sharing adaptation.
148
+ Baseline structural-distance coefficient used before automatic tuning occurs.
148
149
 
149
- The upper clamp prevents the radius from widening until entropy sharing loses practical
150
- contrast across the population.
150
+ This is the neutral starting point for the structural-distance fold before variance-driven
151
+ updates begin to reshape it.
151
152
 
152
- ### ENTROPY_VAR_LOW_BAND
153
+ ### ENTROPY_ADJUST_DEFAULT
153
154
 
154
- Lower tolerance band for deciding that observed entropy variance is meaningfully low.
155
+ Default rate used when compatibility tuning nudges the threshold upward or downward.
155
156
 
156
- Values below this multiplier mark a population whose entropy spread is flatter than the tuning
157
- target expects.
157
+ A conservative step size keeps the compatibility-threshold loop gradual enough that later
158
+ speciation reads remain interpretable from one generation to the next.
158
159
 
159
- ### ENTROPY_VAR_HIGH_BAND
160
+ ### ENTROPY_DEADBAND_DEFAULT
160
161
 
161
- Upper tolerance band for deciding that observed entropy variance is meaningfully high.
162
+ Deadband around the entropy target where compatibility tuning intentionally does nothing.
162
163
 
163
- Values above this multiplier mark a population whose entropy spread is noisier than the tuning
164
- target expects.
164
+ The deadband reduces threshold jitter by treating small entropy deviations as normal noise
165
+ rather than signals that demand a policy change.
165
166
 
166
167
  ### ENTROPY_TARGET_DEFAULT
167
168
 
@@ -170,68 +171,67 @@ Target mean entropy used when tuning the compatibility threshold.
170
171
  The goal is to keep speciation pressure near a stable diversity level instead of drifting toward
171
172
  either species collapse or fragmentation.
172
173
 
173
- ### ENTROPY_DEADBAND_DEFAULT
174
+ ### ENTROPY_VAR_ADJUST_DEFAULT
174
175
 
175
- Deadband around the entropy target where compatibility tuning intentionally does nothing.
176
+ Default step size used when entropy-sharing tuning increases or decreases sharing sigma.
176
177
 
177
- The deadband reduces threshold jitter by treating small entropy deviations as normal noise
178
- rather than signals that demand a policy change.
178
+ A modest default keeps the sigma controller responsive without letting one noisy variance read
179
+ swing the sharing radius too aggressively.
179
180
 
180
- ### ENTROPY_ADJUST_DEFAULT
181
+ ### ENTROPY_VAR_HIGH_BAND
181
182
 
182
- Default rate used when compatibility tuning nudges the threshold upward or downward.
183
+ Upper tolerance band for deciding that observed entropy variance is meaningfully high.
183
184
 
184
- A conservative step size keeps the compatibility-threshold loop gradual enough that later
185
- speciation reads remain interpretable from one generation to the next.
185
+ Values above this multiplier mark a population whose entropy spread is noisier than the tuning
186
+ target expects.
186
187
 
187
- ### COMPAT_THRESHOLD_DEFAULT
188
+ ### ENTROPY_VAR_LOW_BAND
188
189
 
189
- Baseline compatibility threshold used when no explicit value is configured.
190
+ Lower tolerance band for deciding that observed entropy variance is meaningfully low.
190
191
 
191
- This serves as the neutral starting point before entropy-based tuning or explicit user policy
192
- begins to reshape species pressure.
192
+ Values below this multiplier mark a population whose entropy spread is flatter than the tuning
193
+ target expects.
193
194
 
194
- ### COMPAT_MIN_THRESHOLD_DEFAULT
195
+ ### ENTROPY_VAR_MAX_SIGMA_DEFAULT
195
196
 
196
- Minimum compatibility threshold allowed during automatic compatibility tuning.
197
+ Upper bound for the sharing sigma used by entropy-sharing adaptation.
197
198
 
198
- The lower clamp prevents the threshold from collapsing until even small structural differences
199
- force unnecessary species fragmentation.
199
+ The upper clamp prevents the radius from widening until entropy sharing loses practical
200
+ contrast across the population.
200
201
 
201
- ### COMPAT_MAX_THRESHOLD_DEFAULT
202
+ ### ENTROPY_VAR_MIN_SIGMA_DEFAULT
202
203
 
203
- Maximum compatibility threshold allowed during automatic compatibility tuning.
204
+ Lower bound for the sharing sigma used by entropy-sharing adaptation.
204
205
 
205
- The upper clamp prevents compatibility from becoming so permissive that species boundaries lose
206
- practical meaning.
206
+ The lower clamp prevents the sharing radius from shrinking so far that later sharing pressure
207
+ becomes hypersensitive to tiny entropy fluctuations.
207
208
 
208
- ### AUTO_COEFF_ADJUST_DEFAULT
209
+ ### ENTROPY_VAR_TARGET_DEFAULT
209
210
 
210
- Default rate used when auto distance-coefficient tuning rebalances structural distance weights.
211
+ Target variance used by entropy-sharing tuning.
211
212
 
212
- This shared step size controls how quickly excess and disjoint coefficients react when topology
213
- variance drifts away from the recent baseline.
213
+ The controller nudges sharing sigma toward a population whose entropy spread is neither too flat
214
+ nor too unstable.
214
215
 
215
- ### AUTO_COEFF_MIN_DEFAULT
216
+ ### NOVELTY_ARCHIVE_CAP
216
217
 
217
- Minimum structural-distance coefficient allowed during automatic tuning.
218
+ Maximum number of descriptors retained in the novelty archive.
218
219
 
219
- The lower bound keeps structural differences meaningful even when the auto-distance policy is
220
- softening species pressure.
220
+ The cap keeps novelty history useful for exploration while preventing unbounded memory growth.
221
221
 
222
- ### AUTO_COEFF_MAX_DEFAULT
222
+ ### NOVELTY_DEFAULT_BLEND
223
223
 
224
- Maximum structural-distance coefficient allowed during automatic tuning.
224
+ Default blend factor used when mixing novelty into an existing fitness score.
225
225
 
226
- The upper bound prevents excess and disjoint penalties from dominating every later compatibility
227
- comparison.
226
+ A mid-range value keeps novelty influential without letting exploratory behavior completely drown
227
+ out task performance.
228
228
 
229
- ### DISTANCE_COEFF_DEFAULT
229
+ ### NOVELTY_DEFAULT_NEIGHBORS
230
230
 
231
- Baseline structural-distance coefficient used before automatic tuning occurs.
231
+ Default number of nearest neighbors used when computing novelty.
232
232
 
233
- This is the neutral starting point for the structural-distance fold before variance-driven
234
- updates begin to reshape it.
233
+ Small values keep novelty sensitive to local behavioral differences without requiring a large
234
+ archive or population.
235
235
 
236
236
  ### VARIANCE_DECREASE_THRESHOLD
237
237
 
@@ -95,24 +95,14 @@ The important boundary is that this interface is richer than the minimal
95
95
  shared genome contracts used by read-side chapters, because evolve helpers are
96
96
  the place where new runtime metadata is actually attached.
97
97
 
98
- ### SpeciesWithMetadata
99
-
100
- Runtime interface for species metadata used in allocation and stats.
101
-
102
- This is the live species record shape used during one evolve step. Helpers in
103
- `speciation/`, `population/`, and telemetry-oriented paths rely on it to ask
104
- practical generation-level questions: which genomes belong together now, how
105
- much shared fitness does the species have, and how many offspring should it
106
- receive next?
107
-
108
- ### SpeciesHistoryRecord
98
+ ### MultiObjectiveOptions
109
99
 
110
- Species history snapshot record used for telemetry/exports.
100
+ Multi-objective configuration block.
111
101
 
112
- Unlike `SpeciesWithMetadata`, which describes the current live registry, this
113
- contract is archival. It captures the summarized species view that can be
114
- retained across generations for telemetry, historical diagnostics, and later
115
- export.
102
+ This is the policy bundle evolve helpers consult when deciding how dynamic
103
+ objective scheduling, epsilon tuning, and inactive-objective pruning should
104
+ behave during a run. It is broader than one descriptor but narrower than the
105
+ full controller options object.
116
106
 
117
107
  ### MutationMethod
118
108
 
@@ -123,24 +113,6 @@ mutation policy metadata defined in the mutation subtree. That is why this
123
113
  local descriptor stays intentionally tiny: evolve orchestration mainly uses it
124
114
  as a token when handing work off to mutation-oriented hooks.
125
115
 
126
- ### ObjectiveDescriptor
127
-
128
- Objective descriptor for multi-objective evaluation.
129
-
130
- This is the shared scoring token used when evolve orchestration hands the
131
- current population to objective-aware ranking logic. Each descriptor couples a
132
- stable key with the accessor that extracts that objective's numeric evidence
133
- from one genome.
134
-
135
- ### MultiObjectiveOptions
136
-
137
- Multi-objective configuration block.
138
-
139
- This is the policy bundle evolve helpers consult when deciding how dynamic
140
- objective scheduling, epsilon tuning, and inactive-objective pruning should
141
- behave during a run. It is broader than one descriptor but narrower than the
142
- full controller options object.
143
-
144
116
  ### NeatControllerForEvolution
145
117
 
146
118
  NEAT controller subset used by evolve orchestrations.
@@ -165,6 +137,34 @@ the point where many chapter boundaries meet. Even so, it is still narrower
165
137
  than the full public controller API: only the state and callbacks needed for
166
138
  one generation step are surfaced here.
167
139
 
140
+ ### ObjectiveDescriptor
141
+
142
+ Objective descriptor for multi-objective evaluation.
143
+
144
+ This is the shared scoring token used when evolve orchestration hands the
145
+ current population to objective-aware ranking logic. Each descriptor couples a
146
+ stable key with the accessor that extracts that objective's numeric evidence
147
+ from one genome.
148
+
149
+ ### SpeciesHistoryRecord
150
+
151
+ Species history snapshot record used for telemetry/exports.
152
+
153
+ Unlike `SpeciesWithMetadata`, which describes the current live registry, this
154
+ contract is archival. It captures the summarized species view that can be
155
+ retained across generations for telemetry, historical diagnostics, and later
156
+ export.
157
+
158
+ ### SpeciesWithMetadata
159
+
160
+ Runtime interface for species metadata used in allocation and stats.
161
+
162
+ This is the live species record shape used during one evolve step. Helpers in
163
+ `speciation/`, `population/`, and telemetry-oriented paths rely on it to ask
164
+ practical generation-level questions: which genomes belong together now, how
165
+ much shared fitness does the species have, and how many offspring should it
166
+ receive next?
167
+
168
168
  ## neat/evolve/evolve.ts
169
169
 
170
170
  ### evolve
@@ -224,44 +224,41 @@ console.log('output nodes:', bestNetwork.output);
224
224
  Returns: a deep-cloned network snapshot representing the best genome from the
225
225
  previous generation, ready for inspection or external evaluation
226
226
 
227
- ### EVOLVE_PARETO_ARCHIVE_MAX
228
-
229
- Maximum number of Pareto archive snapshots to retain.
227
+ ### EVOLVE_AUTO_COMPAT_ADJUST_RATE
230
228
 
231
- This keeps multi-objective history useful for inspection without letting archive state
232
- grow unbounded during long runs.
229
+ Default rate used when nudging compatibility coefficients toward the desired species count.
233
230
 
234
- ### EVOLVE_TARGET_FRONT_MIN
231
+ ### EVOLVE_AUTO_COMPAT_MAX_COEFF
235
232
 
236
- Minimum target front size used for adaptive epsilon tuning.
233
+ Maximum compatibility coefficient allowed during automatic tuning.
237
234
 
238
- Small Pareto fronts are easy to overfit, so the epsilon controller never aims below this floor.
235
+ ### EVOLVE_AUTO_COMPAT_MIN_COEFF
239
236
 
240
- ### EVOLVE_TARGET_FRONT_UPPER_RATIO
237
+ Minimum compatibility coefficient allowed during automatic tuning.
241
238
 
242
- Upper ratio threshold for Pareto front size vs target.
239
+ ### EVOLVE_AUTO_COMPAT_RANDOM_SCALE
243
240
 
244
- When the first front grows beyond this band, the controller can tighten epsilon to recover pressure.
241
+ Random perturbation scale used when compatibility tuning has no directional error to follow.
245
242
 
246
- ### EVOLVE_TARGET_FRONT_LOWER_RATIO
243
+ ### EVOLVE_AUTO_COMPAT_TARGET_MIN
247
244
 
248
- Lower ratio threshold for Pareto front size vs target.
245
+ Minimum target species count used by automatic compatibility tuning.
249
246
 
250
- When the first front shrinks below this band, the controller can relax epsilon to avoid over-pruning.
247
+ The controller never tries to collapse diversity below this floor when adjusting coefficients.
251
248
 
252
- ### EVOLVE_DEFAULT_EPSILON_ADJUST
249
+ ### EVOLVE_AUTO_ENTROPY_ADD_AT
253
250
 
254
- Default adjustment step for dominance epsilon.
251
+ Default generation at which automatic entropy objective scheduling becomes eligible.
255
252
 
256
- The value is intentionally small because epsilon changes should steer ranking gradually rather than jerk it.
253
+ ### EVOLVE_CROSS_SPECIES_GUARD_LIMIT
257
254
 
258
- ### EVOLVE_DEFAULT_EPSILON_MIN
255
+ Retry limit for cross-species parent sampling before the controller falls back to a safer path.
259
256
 
260
- Minimum dominance epsilon floor used by adaptive Pareto tuning.
257
+ ### EVOLVE_DEFAULT_EPSILON_ADJUST
261
258
 
262
- ### EVOLVE_DEFAULT_EPSILON_MAX
259
+ Default adjustment step for dominance epsilon.
263
260
 
264
- Maximum dominance epsilon ceiling used by adaptive Pareto tuning.
261
+ The value is intentionally small because epsilon changes should steer ranking gradually rather than jerk it.
265
262
 
266
263
  ### EVOLVE_DEFAULT_EPSILON_COOLDOWN
267
264
 
@@ -269,49 +266,56 @@ Default cooldown in generations between epsilon adjustments.
269
266
 
270
267
  This prevents the controller from reacting to every short-lived fluctuation in front width.
271
268
 
272
- ### EVOLVE_PRUNE_WINDOW_DEFAULT
269
+ ### EVOLVE_DEFAULT_EPSILON_MAX
273
270
 
274
- Default inactivity window used before adaptive objective pruning considers removal.
271
+ Maximum dominance epsilon ceiling used by adaptive Pareto tuning.
275
272
 
276
- ### EVOLVE_PRUNE_RANGE_EPS_DEFAULT
273
+ ### EVOLVE_DEFAULT_EPSILON_MIN
277
274
 
278
- Default numerical range epsilon for deciding whether an objective has effectively gone flat.
275
+ Minimum dominance epsilon floor used by adaptive Pareto tuning.
279
276
 
280
- ### EVOLVE_YOUNG_THRESHOLD_DEFAULT
277
+ ### EVOLVE_GLOBAL_STAGNATION_REPLACE_FRACTION
281
278
 
282
- Generation threshold below which a species is still treated as young.
279
+ Fraction of the population replaced with fresh genomes when global stagnation rescue triggers.
283
280
 
284
- ### EVOLVE_YOUNG_MULTIPLIER_DEFAULT
281
+ ### EVOLVE_MIN_OFFSPRING_DEFAULT
285
282
 
286
- Fitness-sharing multiplier applied to species that are still in their early growth window.
283
+ Minimum offspring allocation reserved for a surviving species during speciated reproduction.
284
+
285
+ ### EVOLVE_OLD_MULTIPLIER_DEFAULT
286
+
287
+ Fitness-sharing multiplier applied to older species so stale lineages lose selection privilege.
287
288
 
288
289
  ### EVOLVE_OLD_THRESHOLD_DEFAULT
289
290
 
290
291
  Generation threshold after which a species is treated as old for age-based fitness shaping.
291
292
 
292
- ### EVOLVE_OLD_MULTIPLIER_DEFAULT
293
+ ### EVOLVE_PARETO_ARCHIVE_MAX
293
294
 
294
- Fitness-sharing multiplier applied to older species so stale lineages lose selection privilege.
295
+ Maximum number of Pareto archive snapshots to retain.
295
296
 
296
- ### EVOLVE_MIN_OFFSPRING_DEFAULT
297
+ This keeps multi-objective history useful for inspection without letting archive state
298
+ grow unbounded during long runs.
297
299
 
298
- Minimum offspring allocation reserved for a surviving species during speciated reproduction.
300
+ ### EVOLVE_PRUNE_RANGE_EPS_DEFAULT
299
301
 
300
- ### EVOLVE_SURVIVAL_THRESHOLD_DEFAULT
302
+ Default numerical range epsilon for deciding whether an objective has effectively gone flat.
301
303
 
302
- Survivor fraction used when choosing the parent pool inside each species.
304
+ ### EVOLVE_PRUNE_WINDOW_DEFAULT
303
305
 
304
- ### EVOLVE_CROSS_SPECIES_GUARD_LIMIT
306
+ Default inactivity window used before adaptive objective pruning considers removal.
305
307
 
306
- Retry limit for cross-species parent sampling before the controller falls back to a safer path.
308
+ ### EVOLVE_REENABLE_DELTA_SCALE
307
309
 
308
- ### EVOLVE_AUTO_ENTROPY_ADD_AT
310
+ Scale factor that converts re-enable success error into a probability update.
309
311
 
310
- Default generation at which automatic entropy objective scheduling becomes eligible.
312
+ ### EVOLVE_REENABLE_MAX
311
313
 
312
- ### EVOLVE_GLOBAL_STAGNATION_REPLACE_FRACTION
314
+ Upper bound for adaptive connection re-enable probability.
313
315
 
314
- Fraction of the population replaced with fresh genomes when global stagnation rescue triggers.
316
+ ### EVOLVE_REENABLE_MIN
317
+
318
+ Lower bound for adaptive connection re-enable probability.
315
319
 
316
320
  ### EVOLVE_REENABLE_MIN_SAMPLES
317
321
 
@@ -321,40 +325,36 @@ Minimum re-enable observations required before the controller trusts its adaptat
321
325
 
322
326
  Desired success ratio for connection re-enable attempts during adaptive mutation control.
323
327
 
324
- ### EVOLVE_REENABLE_DELTA_SCALE
325
-
326
- Scale factor that converts re-enable success error into a probability update.
327
-
328
- ### EVOLVE_REENABLE_MIN
328
+ ### EVOLVE_SPECIES_HISTORY_MAX
329
329
 
330
- Lower bound for adaptive connection re-enable probability.
330
+ Maximum number of species-history snapshots to retain for telemetry and later export.
331
331
 
332
- ### EVOLVE_REENABLE_MAX
332
+ ### EVOLVE_SURVIVAL_THRESHOLD_DEFAULT
333
333
 
334
- Upper bound for adaptive connection re-enable probability.
334
+ Survivor fraction used when choosing the parent pool inside each species.
335
335
 
336
- ### EVOLVE_AUTO_COMPAT_TARGET_MIN
336
+ ### EVOLVE_TARGET_FRONT_LOWER_RATIO
337
337
 
338
- Minimum target species count used by automatic compatibility tuning.
338
+ Lower ratio threshold for Pareto front size vs target.
339
339
 
340
- The controller never tries to collapse diversity below this floor when adjusting coefficients.
340
+ When the first front shrinks below this band, the controller can relax epsilon to avoid over-pruning.
341
341
 
342
- ### EVOLVE_AUTO_COMPAT_ADJUST_RATE
342
+ ### EVOLVE_TARGET_FRONT_MIN
343
343
 
344
- Default rate used when nudging compatibility coefficients toward the desired species count.
344
+ Minimum target front size used for adaptive epsilon tuning.
345
345
 
346
- ### EVOLVE_AUTO_COMPAT_MIN_COEFF
346
+ Small Pareto fronts are easy to overfit, so the epsilon controller never aims below this floor.
347
347
 
348
- Minimum compatibility coefficient allowed during automatic tuning.
348
+ ### EVOLVE_TARGET_FRONT_UPPER_RATIO
349
349
 
350
- ### EVOLVE_AUTO_COMPAT_MAX_COEFF
350
+ Upper ratio threshold for Pareto front size vs target.
351
351
 
352
- Maximum compatibility coefficient allowed during automatic tuning.
352
+ When the first front grows beyond this band, the controller can tighten epsilon to recover pressure.
353
353
 
354
- ### EVOLVE_AUTO_COMPAT_RANDOM_SCALE
354
+ ### EVOLVE_YOUNG_MULTIPLIER_DEFAULT
355
355
 
356
- Random perturbation scale used when compatibility tuning has no directional error to follow.
356
+ Fitness-sharing multiplier applied to species that are still in their early growth window.
357
357
 
358
- ### EVOLVE_SPECIES_HISTORY_MAX
358
+ ### EVOLVE_YOUNG_THRESHOLD_DEFAULT
359
359
 
360
- Maximum number of species-history snapshots to retain for telemetry and later export.
360
+ Generation threshold below which a species is still treated as young.