@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
@@ -17,27 +17,20 @@ Read the file in three passes:
17
17
 
18
18
  ## neat/neat.types.ts
19
19
 
20
- ### NeatOptions
21
-
22
- Public configuration bag accepted by the root `Neat` constructor.
23
-
24
- This alias stays intentionally permissive because the public boundary still
25
- absorbs legacy experiment bags, partially migrated option families, and a
26
- few chapter-local knobs that do not yet deserve a tighter shared contract.
27
-
28
- That looseness is a boundary choice rather than a shared-type ideal. The
29
- root facade accepts the broad option surface so the deeper helper chapters
30
- can keep narrowing their own local slices instead of reintroducing one wide
31
- compatibility bag in multiple places.
20
+ ### NeatExportFitnessFunction
32
21
 
33
- ### NeatFitnessResult
22
+ ```ts
23
+ NeatExportFitnessFunction(
24
+ network: GenomeWithSerialization,
25
+ ): number | Promise<number>
26
+ ```
34
27
 
35
- Opaque result shape returned by root-level fitness callbacks.
28
+ Fitness callback shape expected by the export/import restore helpers.
36
29
 
37
- The top-level `Neat` entrypoint has to tolerate both single-genome and
38
- population-wide fitness styles, including delegates that perform async work
39
- or side effects before downstream evaluation helpers interpret the result.
40
- The root contract therefore stays wide on purpose.
30
+ The persistence chapter reconstructs a controller from serialized state and
31
+ then reattaches a scoring delegate. The root surface derives that callback
32
+ type from the export chapter so the static restore helpers stay in lockstep
33
+ with the real persistence contract.
41
34
 
42
35
  ### NeatFitnessFunction
43
36
 
@@ -54,6 +47,15 @@ every legal scoring protocol. The constructor only promises that a scoring
54
47
  delegate can be stored and forwarded safely; the stronger semantics live in
55
48
  the evaluation and evolve chapters that actually consume the callback.
56
49
 
50
+ ### NeatFitnessResult
51
+
52
+ Opaque result shape returned by root-level fitness callbacks.
53
+
54
+ The top-level `Neat` entrypoint has to tolerate both single-genome and
55
+ population-wide fitness styles, including delegates that perform async work
56
+ or side effects before downstream evaluation helpers interpret the result.
57
+ The root contract therefore stays wide on purpose.
58
+
57
59
  ### NeatMutationSelectionResult
58
60
 
59
61
  Awaited return shape for the public mutation-method selection wrapper.
@@ -62,6 +64,19 @@ The mutation chapter already owns the concrete union. This alias keeps the
62
64
  root class synchronized with that source of truth without repeating a legacy
63
65
  compatibility union inline.
64
66
 
67
+ ### NeatOptions
68
+
69
+ Public configuration bag accepted by the root `Neat` constructor.
70
+
71
+ This alias stays intentionally permissive because the public boundary still
72
+ absorbs legacy experiment bags, partially migrated option families, and a
73
+ few chapter-local knobs that do not yet deserve a tighter shared contract.
74
+
75
+ That looseness is a boundary choice rather than a shared-type ideal. The
76
+ root facade accepts the broad option surface so the deeper helper chapters
77
+ can keep narrowing their own local slices instead of reintroducing one wide
78
+ compatibility bag in multiple places.
79
+
65
80
  ### NeatRngStateSnapshot
66
81
 
67
82
  Replay token accepted by the public RNG restore and import methods.
@@ -70,21 +85,6 @@ Deriving the token from the RNG facade keeps the root entrypoint aligned with
70
85
  the replay chapter instead of maintaining a second hand-written copy of the
71
86
  same restore contract.
72
87
 
73
- ### NeatExportFitnessFunction
74
-
75
- ```ts
76
- NeatExportFitnessFunction(
77
- network: GenomeWithSerialization,
78
- ): number | Promise<number>
79
- ```
80
-
81
- Fitness callback shape expected by the export/import restore helpers.
82
-
83
- The persistence chapter reconstructs a controller from serialized state and
84
- then reattaches a scoring delegate. The root surface derives that callback
85
- type from the export chapter so the static restore helpers stay in lockstep
86
- with the real persistence contract.
87
-
88
88
  ## neat/neat.lineage.ts
89
89
 
90
90
  ### buildAnc
@@ -262,22 +262,22 @@ Read it as the controller's everyday guard rail: small enough to stay out of
262
262
  the way of ordinary calculations, but present anywhere a divide-by-zero or a
263
263
  log-of-zero edge could quietly poison downstream training or telemetry.
264
264
 
265
- ### PROB_EPSILON
265
+ ### EXTRA_CONNECTION_PROBABILITY
266
266
 
267
- Probability-scale safety constant for very small ratios and logarithms.
267
+ Default heuristic for one opportunistic extra add-connection attempt.
268
268
 
269
- This is intentionally smaller than {@link EPSILON} because probability terms
270
- often need protection without materially changing the magnitude of already
271
- tiny values.
269
+ This is a heuristic rather than a numerical safety constant. It slightly
270
+ increases the chance that a genome gains new connectivity during mutation
271
+ without making extra-connection attempts mandatory on every pass.
272
272
 
273
- Reach for this when the math is closer to "protect a probability-like term"
274
- than to "stabilize a general denominator". The smaller offset helps keep
275
- loss-style or entropy-style quantities numerically safe while staying closer
276
- to the original scale.
273
+ Treat this as a small statement about controller personality: the default
274
+ search policy is willing to occasionally spend extra effort on connectivity
275
+ growth, but it does not force that gamble on every mutation cycle.
277
276
 
278
- In practice this constant teaches a useful distinction: not every safety fix
279
- should be equally large. Probability-like quantities often need a gentler
280
- nudge than general controller arithmetic.
277
+ That makes this constant the policy counterpart to the epsilon family. The
278
+ epsilons say how carefully the controller protects its math; this value says
279
+ how adventurous the default mutation policy is willing to be when a little
280
+ extra connectivity might unlock better search.
281
281
 
282
282
  ### NORM_EPSILON
283
283
 
@@ -296,22 +296,22 @@ spread, and normalization math often benefit from a visibly larger floor than
296
296
  probability math, because the goal is smooth controller behavior rather than
297
297
  near-exact preservation of microscopic values.
298
298
 
299
- ### EXTRA_CONNECTION_PROBABILITY
299
+ ### PROB_EPSILON
300
300
 
301
- Default heuristic for one opportunistic extra add-connection attempt.
301
+ Probability-scale safety constant for very small ratios and logarithms.
302
302
 
303
- This is a heuristic rather than a numerical safety constant. It slightly
304
- increases the chance that a genome gains new connectivity during mutation
305
- without making extra-connection attempts mandatory on every pass.
303
+ This is intentionally smaller than {@link EPSILON} because probability terms
304
+ often need protection without materially changing the magnitude of already
305
+ tiny values.
306
306
 
307
- Treat this as a small statement about controller personality: the default
308
- search policy is willing to occasionally spend extra effort on connectivity
309
- growth, but it does not force that gamble on every mutation cycle.
307
+ Reach for this when the math is closer to "protect a probability-like term"
308
+ than to "stabilize a general denominator". The smaller offset helps keep
309
+ loss-style or entropy-style quantities numerically safe while staying closer
310
+ to the original scale.
310
311
 
311
- That makes this constant the policy counterpart to the epsilon family. The
312
- epsilons say how carefully the controller protects its math; this value says
313
- how adventurous the default mutation policy is willing to be when a little
314
- extra connectivity might unlock better search.
312
+ In practice this constant teaches a useful distinction: not every safety fix
313
+ should be equally large. Probability-like quantities often need a gentler
314
+ nudge than general controller arithmetic.
315
315
 
316
316
  ## neat/neat.diversity.ts
317
317
 
@@ -376,6 +376,23 @@ if (diversity) {
376
376
  }
377
377
  ```
378
378
 
379
+ ### DiversityStats
380
+
381
+ Diversity statistics returned by sampled population analysis.
382
+
383
+ Treat this as a compact population-health report rather than as a single
384
+ scalar "diversity score." The fields are grouped deliberately:
385
+
386
+ - lineage fields show whether ancestry depth is spreading or collapsing,
387
+ - node and connection fields show average structural size and unevenness,
388
+ - compatibility sampling estimates how genetically separated sampled peers
389
+ remain,
390
+ - entropy adds a shape signal that raw size counts cannot capture.
391
+
392
+ In practice, telemetry consumers compare this object across generations to
393
+ see whether mutation, speciation, and pruning are still producing meaningful
394
+ variation without paying for exhaustive all-pairs analysis.
395
+
379
396
  ### MAX_COMPATIBILITY_SAMPLE
380
397
 
381
398
  Maximum population sample size for compatibility comparisons.
@@ -418,23 +435,6 @@ Parameters:
418
435
 
419
436
  Returns: Shannon-style entropy of the out-degree distribution.
420
437
 
421
- ### DiversityStats
422
-
423
- Diversity statistics returned by sampled population analysis.
424
-
425
- Treat this as a compact population-health report rather than as a single
426
- scalar "diversity score." The fields are grouped deliberately:
427
-
428
- - lineage fields show whether ancestry depth is spreading or collapsing,
429
- - node and connection fields show average structural size and unevenness,
430
- - compatibility sampling estimates how genetically separated sampled peers
431
- remain,
432
- - entropy adds a shape signal that raw size counts cannot capture.
433
-
434
- In practice, telemetry consumers compare this object across generations to
435
- see whether mutation, speciation, and pruning are still producing meaningful
436
- variation without paying for exhaustive all-pairs analysis.
437
-
438
438
  ## neat/neat.defaults.constants.ts
439
439
 
440
440
  Public default knobs for the root `Neat` controller.
@@ -455,64 +455,54 @@ Read them as the public defaults shelf, not as hidden implementation trivia.
455
455
  These values are the baseline promises the root controller makes when a user
456
456
  says, "give me an ordinary NEAT run," without specifying every knob.
457
457
 
458
- ### DEFAULT_POPULATION_SIZE
459
-
460
- Default population size when caller does not specify `popsize`.
461
-
462
- This opens the root defaults shelf's search-volume family. It controls how
463
- many genomes compete in each generation before elitism, provenance, or
464
- mutation pressure begin to reshape the population.
465
-
466
- ### DEFAULT_ELITISM
458
+ ### DEFAULT_COMPATIBILITY_THRESHOLD
467
459
 
468
- Default elitism count applied when unspecified.
460
+ Default compatibility threshold controlling speciation distance.
469
461
 
470
- Read this beside {@link DEFAULT_POPULATION_SIZE} and
471
- {@link DEFAULT_PROVENANCE}: the trio defines how much of each generation is
472
- reserved for carry-over, how much is freshly injected, and how much capacity
473
- remains for ordinary offspring.
462
+ This starts the speciation-pressure family of defaults. It is the neutral
463
+ boundary the controller uses before adaptive tuning or custom settings make
464
+ species splits stricter or more permissive.
474
465
 
475
- ### DEFAULT_PROVENANCE
466
+ ### DEFAULT_DISJOINT_COEFF
476
467
 
477
- Default provenance count applied when unspecified.
468
+ Default disjoint coefficient for NEAT compatibility distance.
478
469
 
479
- Provenance is the root controller's small "fresh seed" policy. A value of
480
- `0` means the default run does not spend population budget on extra
481
- generation-zero style injections unless the caller asks for them.
470
+ Matching the excess coefficient by default gives the root controller a
471
+ balanced structural view: excess and disjoint innovation gaps both count as
472
+ first-class evidence during compatibility comparisons.
482
473
 
483
- ### DEFAULT_MUTATION_RATE
474
+ ### DEFAULT_DIVERSITY_GRAPHLET_SAMPLE
484
475
 
485
- Default mutation rate used by the root controller when no explicit rate is supplied.
476
+ Default graphlet sample size used by diversity metrics in fast mode.
486
477
 
487
- This belongs to the same search-tempo family as
488
- {@link DEFAULT_MUTATION_AMOUNT}. Together they define how often mutation is
489
- attempted and how many mutation steps a genome can receive once mutation is
490
- active.
478
+ Read this beside {@link DEFAULT_DIVERSITY_PAIR_SAMPLE}: pair samples give the
479
+ controller quick distance evidence, while graphlet samples provide a small
480
+ structural texture read without forcing whole-population analysis.
491
481
 
492
- ### DEFAULT_MUTATION_AMOUNT
482
+ ### DEFAULT_DIVERSITY_PAIR_SAMPLE
493
483
 
494
- Default number of mutation operations applied per genome.
484
+ Default pair-sample size used by diversity metrics in fast mode.
495
485
 
496
- The default keeps the baseline search policy conservative: most runs mutate
497
- often enough to keep topology moving, but each genome usually pays for only
498
- one structural or parametric change per mutation pass.
486
+ This starts the observability-sampling family. The root controller uses a
487
+ bounded sample instead of exhaustive pair checks so diversity reads stay
488
+ cheap enough for ordinary runs.
499
489
 
500
- ### DEFAULT_COMPATIBILITY_THRESHOLD
490
+ ### DEFAULT_ELITISM
501
491
 
502
- Default compatibility threshold controlling speciation distance.
492
+ Default elitism count applied when unspecified.
503
493
 
504
- This starts the speciation-pressure family of defaults. It is the neutral
505
- boundary the controller uses before adaptive tuning or custom settings make
506
- species splits stricter or more permissive.
494
+ Read this beside {@link DEFAULT_POPULATION_SIZE} and
495
+ {@link DEFAULT_PROVENANCE}: the trio defines how much of each generation is
496
+ reserved for carry-over, how much is freshly injected, and how much capacity
497
+ remains for ordinary offspring.
507
498
 
508
- ### DEFAULT_MAX_NODES
499
+ ### DEFAULT_EXCESS_COEFF
509
500
 
510
- Default maximum allowed nodes where `Infinity` means unbounded growth.
501
+ Default excess coefficient for NEAT compatibility distance.
511
502
 
512
- Read the three `DEFAULT_MAX_*` exports as one structural-ceiling family.
513
- Leaving them unbounded by default tells the root controller to rely on
514
- mutation policy, pruning, and adaptive limits instead of an immediate hard
515
- cap.
503
+ This begins the root compatibility-weight family. These coefficients explain
504
+ which kinds of genome disagreement matter most when the controller decides
505
+ whether two genomes still belong in the same species neighborhood.
516
506
 
517
507
  ### DEFAULT_MAX_CONNS
518
508
 
@@ -529,45 +519,39 @@ Default maximum allowed gates where `Infinity` means unbounded growth.
529
519
  Gate limits stay in the same family as node and connection limits so the
530
520
  whole structural-cap story remains consistent at the root surface.
531
521
 
532
- ### DEFAULT_EXCESS_COEFF
533
-
534
- Default excess coefficient for NEAT compatibility distance.
535
-
536
- This begins the root compatibility-weight family. These coefficients explain
537
- which kinds of genome disagreement matter most when the controller decides
538
- whether two genomes still belong in the same species neighborhood.
539
-
540
- ### DEFAULT_DISJOINT_COEFF
522
+ ### DEFAULT_MAX_NODES
541
523
 
542
- Default disjoint coefficient for NEAT compatibility distance.
524
+ Default maximum allowed nodes where `Infinity` means unbounded growth.
543
525
 
544
- Matching the excess coefficient by default gives the root controller a
545
- balanced structural view: excess and disjoint innovation gaps both count as
546
- first-class evidence during compatibility comparisons.
526
+ Read the three `DEFAULT_MAX_*` exports as one structural-ceiling family.
527
+ Leaving them unbounded by default tells the root controller to rely on
528
+ mutation policy, pruning, and adaptive limits instead of an immediate hard
529
+ cap.
547
530
 
548
- ### DEFAULT_WEIGHT_DIFF_COEFF
531
+ ### DEFAULT_MUTATION_AMOUNT
549
532
 
550
- Default average weight difference coefficient for compatibility distance.
533
+ Default number of mutation operations applied per genome.
551
534
 
552
- This keeps parameter drift relevant without letting weight deltas dominate
553
- the whole speciation read. In the default family, topology disagreement still
554
- carries more weight than modest edge-weight differences.
535
+ The default keeps the baseline search policy conservative: most runs mutate
536
+ often enough to keep topology moving, but each genome usually pays for only
537
+ one structural or parametric change per mutation pass.
555
538
 
556
- ### DEFAULT_DIVERSITY_PAIR_SAMPLE
539
+ ### DEFAULT_MUTATION_RATE
557
540
 
558
- Default pair-sample size used by diversity metrics in fast mode.
541
+ Default mutation rate used by the root controller when no explicit rate is supplied.
559
542
 
560
- This starts the observability-sampling family. The root controller uses a
561
- bounded sample instead of exhaustive pair checks so diversity reads stay
562
- cheap enough for ordinary runs.
543
+ This belongs to the same search-tempo family as
544
+ {@link DEFAULT_MUTATION_AMOUNT}. Together they define how often mutation is
545
+ attempted and how many mutation steps a genome can receive once mutation is
546
+ active.
563
547
 
564
- ### DEFAULT_DIVERSITY_GRAPHLET_SAMPLE
548
+ ### DEFAULT_NEAT_CONSTRUCTOR_DEFAULTS
565
549
 
566
- Default graphlet sample size used by diversity metrics in fast mode.
550
+ Shared defaults packet consumed by the constructor bootstrap chapter.
567
551
 
568
- Read this beside {@link DEFAULT_DIVERSITY_PAIR_SAMPLE}: pair samples give the
569
- controller quick distance evidence, while graphlet samples provide a small
570
- structural texture read without forcing whole-population analysis.
552
+ The root public surface still exports the individual constants for callers
553
+ and docs, but the constructor now hands one named packet to `init/` instead
554
+ of rebuilding the same object inline inside `src/neat.ts`.
571
555
 
572
556
  ### DEFAULT_NOVELTY_K
573
557
 
@@ -577,10 +561,26 @@ This closes the root observability-and-exploration shelf. It controls how
577
561
  many nearby behaviors contribute to novelty before the caller tunes novelty
578
562
  search more explicitly.
579
563
 
580
- ### DEFAULT_NEAT_CONSTRUCTOR_DEFAULTS
564
+ ### DEFAULT_POPULATION_SIZE
581
565
 
582
- Shared defaults packet consumed by the constructor bootstrap chapter.
566
+ Default population size when caller does not specify `popsize`.
583
567
 
584
- The root public surface still exports the individual constants for callers
585
- and docs, but the constructor now hands one named packet to `init/` instead
586
- of rebuilding the same object inline inside `src/neat.ts`.
568
+ This opens the root defaults shelf's search-volume family. It controls how
569
+ many genomes compete in each generation before elitism, provenance, or
570
+ mutation pressure begin to reshape the population.
571
+
572
+ ### DEFAULT_PROVENANCE
573
+
574
+ Default provenance count applied when unspecified.
575
+
576
+ Provenance is the root controller's small "fresh seed" policy. A value of
577
+ `0` means the default run does not spend population budget on extra
578
+ generation-zero style injections unless the caller asks for them.
579
+
580
+ ### DEFAULT_WEIGHT_DIFF_COEFF
581
+
582
+ Default average weight difference coefficient for compatibility distance.
583
+
584
+ This keeps parameter drift relevant without letting weight deltas dominate
585
+ the whole speciation read. In the default family, topology disagreement still
586
+ carries more weight than modest edge-weight differences.