@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
@@ -178,83 +178,53 @@ The helper flow is intentionally compact:
178
178
  3. resolve thresholds and adjustment magnitude,
179
179
  4. route the adjustment into epsilon or lineage-pressure mode.
180
180
 
181
- ### isCooldownSatisfied
181
+ ### applyEpsilonAdjustment
182
182
 
183
183
  ```ts
184
- isCooldownSatisfied(
184
+ applyEpsilonAdjustment(
185
185
  engine: NeatLikeWithAdaptive,
186
- config: { enabled?: boolean | undefined; cooldown?: number | undefined; lowThreshold?: number | undefined; highThreshold?: number | undefined; adjust?: number | undefined; mode?: string | undefined; },
187
- ): boolean
186
+ ancestorUniq: number,
187
+ thresholds: { lowThreshold: number; highThreshold: number; },
188
+ adjustMagnitude: number,
189
+ ): void
188
190
  ```
189
191
 
190
- Determine whether the cooldown window has elapsed.
192
+ Apply dominance-epsilon adjustments when configured.
191
193
 
192
- Cooldowns prevent the controller from thrashing lineage policy on every
193
- generation. Once an adjustment has been recorded, later generations must wait
194
- for the configured gap before another nudge is allowed.
194
+ Epsilon mode nudges the multi-objective dominance tolerance when ancestry is
195
+ too uniform or too diffuse. That lets later Pareto comparisons become slightly
196
+ more or less permissive without changing the current generation directly.
195
197
 
196
198
  Parameters:
197
199
  - `engine` - - NEAT engine instance.
198
- - `config` - - Ancestor uniqueness adaptive configuration.
200
+ - `ancestorUniq` - - Current ancestor uniqueness metric.
201
+ - `thresholds` - - Threshold bounds for decisions.
202
+ - `adjustMagnitude` - - Adjustment magnitude.
199
203
 
200
- Returns: True when adjustment is allowed.
204
+ Returns: Nothing.
201
205
 
202
- ### extractAncestorUniqueness
206
+ ### applyLineagePressureAdjustment
203
207
 
204
208
  ```ts
205
- extractAncestorUniqueness(
209
+ applyLineagePressureAdjustment(
206
210
  engine: NeatLikeWithAdaptive,
207
- ): number | undefined
211
+ ancestorUniq: number,
212
+ thresholds: { lowThreshold: number; highThreshold: number; },
213
+ ): void
208
214
  ```
209
215
 
210
- Extract the latest ancestor-uniqueness metric from telemetry.
216
+ Apply lineage pressure strength adjustments.
211
217
 
212
- Lineage adaptation only trusts the most recent telemetry snapshot because it
213
- represents the latest scored generation. Missing or non-numeric lineage
214
- evidence simply disables the adjustment for that cycle.
218
+ Lineage-pressure mode keeps the feedback inside the ancestry-based selection
219
+ settings themselves. Low uniqueness increases spread pressure, while high
220
+ uniqueness relaxes it so the search does not over-penalize related genomes.
215
221
 
216
222
  Parameters:
217
223
  - `engine` - - NEAT engine instance.
224
+ - `ancestorUniq` - - Current ancestor uniqueness metric.
225
+ - `thresholds` - - Threshold bounds for decisions.
218
226
 
219
- Returns: Ancestor uniqueness value or undefined when missing.
220
-
221
- ### resolveUniquenessThresholds
222
-
223
- ```ts
224
- resolveUniquenessThresholds(
225
- config: { enabled?: boolean | undefined; cooldown?: number | undefined; lowThreshold?: number | undefined; highThreshold?: number | undefined; adjust?: number | undefined; mode?: string | undefined; },
226
- ): { lowThreshold: number; highThreshold: number; }
227
- ```
228
-
229
- Resolve thresholds for ancestor-uniqueness decisions.
230
-
231
- These bounds define the acceptable ancestry-diversity band. Values below the
232
- lower threshold suggest the population is converging onto similar family
233
- trees, while values above the upper threshold suggest diversity pressure may
234
- already be stronger than needed.
235
-
236
- Parameters:
237
- - `config` - - Ancestor uniqueness adaptive configuration.
238
-
239
- Returns: Threshold bounds.
240
-
241
- ### resolveAdjustmentMagnitude
242
-
243
- ```ts
244
- resolveAdjustmentMagnitude(
245
- config: { enabled?: boolean | undefined; cooldown?: number | undefined; lowThreshold?: number | undefined; highThreshold?: number | undefined; adjust?: number | undefined; mode?: string | undefined; },
246
- ): number
247
- ```
248
-
249
- Resolve adjustment magnitude for nudging controlled parameters.
250
-
251
- Magnitude resolution keeps defaulting logic away from the mode-specific
252
- adjusters so those helpers can focus on policy semantics.
253
-
254
- Parameters:
255
- - `config` - - Ancestor uniqueness adaptive configuration.
256
-
257
- Returns: Adjustment magnitude.
227
+ Returns: Nothing.
258
228
 
259
229
  ### applyUniquenessAdjustment
260
230
 
@@ -283,72 +253,64 @@ Parameters:
283
253
 
284
254
  Returns: Nothing.
285
255
 
286
- ### applyEpsilonAdjustment
256
+ ### ensureLineagePressureState
287
257
 
288
258
  ```ts
289
- applyEpsilonAdjustment(
259
+ ensureLineagePressureState(
290
260
  engine: NeatLikeWithAdaptive,
291
- ancestorUniq: number,
292
- thresholds: { lowThreshold: number; highThreshold: number; },
293
- adjustMagnitude: number,
294
- ): void
261
+ ): { enabled?: boolean | undefined; mode?: string | undefined; strength?: number | undefined; }
295
262
  ```
296
263
 
297
- Apply dominance-epsilon adjustments when configured.
264
+ Ensure lineage pressure state is available.
298
265
 
299
- Epsilon mode nudges the multi-objective dominance tolerance when ancestry is
300
- too uniform or too diffuse. That lets later Pareto comparisons become slightly
301
- more or less permissive without changing the current generation directly.
266
+ Some runs do not seed lineage-pressure options up front. This helper creates a
267
+ minimal spread-oriented state only when lineage-feedback mode actually needs
268
+ one.
302
269
 
303
270
  Parameters:
304
271
  - `engine` - - NEAT engine instance.
305
- - `ancestorUniq` - - Current ancestor uniqueness metric.
306
- - `thresholds` - - Threshold bounds for decisions.
307
- - `adjustMagnitude` - - Adjustment magnitude.
308
272
 
309
- Returns: Nothing.
273
+ Returns: Lineage pressure configuration object.
310
274
 
311
- ### applyLineagePressureAdjustment
275
+ ### extractAncestorUniqueness
312
276
 
313
277
  ```ts
314
- applyLineagePressureAdjustment(
278
+ extractAncestorUniqueness(
315
279
  engine: NeatLikeWithAdaptive,
316
- ancestorUniq: number,
317
- thresholds: { lowThreshold: number; highThreshold: number; },
318
- ): void
280
+ ): number | undefined
319
281
  ```
320
282
 
321
- Apply lineage pressure strength adjustments.
283
+ Extract the latest ancestor-uniqueness metric from telemetry.
322
284
 
323
- Lineage-pressure mode keeps the feedback inside the ancestry-based selection
324
- settings themselves. Low uniqueness increases spread pressure, while high
325
- uniqueness relaxes it so the search does not over-penalize related genomes.
285
+ Lineage adaptation only trusts the most recent telemetry snapshot because it
286
+ represents the latest scored generation. Missing or non-numeric lineage
287
+ evidence simply disables the adjustment for that cycle.
326
288
 
327
289
  Parameters:
328
290
  - `engine` - - NEAT engine instance.
329
- - `ancestorUniq` - - Current ancestor uniqueness metric.
330
- - `thresholds` - - Threshold bounds for decisions.
331
291
 
332
- Returns: Nothing.
292
+ Returns: Ancestor uniqueness value or undefined when missing.
333
293
 
334
- ### ensureLineagePressureState
294
+ ### isCooldownSatisfied
335
295
 
336
296
  ```ts
337
- ensureLineagePressureState(
297
+ isCooldownSatisfied(
338
298
  engine: NeatLikeWithAdaptive,
339
- ): { enabled?: boolean | undefined; mode?: string | undefined; strength?: number | undefined; }
299
+ config: { enabled?: boolean | undefined; cooldown?: number | undefined; lowThreshold?: number | undefined; highThreshold?: number | undefined; adjust?: number | undefined; mode?: string | undefined; },
300
+ ): boolean
340
301
  ```
341
302
 
342
- Ensure lineage pressure state is available.
303
+ Determine whether the cooldown window has elapsed.
343
304
 
344
- Some runs do not seed lineage-pressure options up front. This helper creates a
345
- minimal spread-oriented state only when lineage-feedback mode actually needs
346
- one.
305
+ Cooldowns prevent the controller from thrashing lineage policy on every
306
+ generation. Once an adjustment has been recorded, later generations must wait
307
+ for the configured gap before another nudge is allowed.
347
308
 
348
309
  Parameters:
349
310
  - `engine` - - NEAT engine instance.
311
+ - `config` - - Ancestor uniqueness adaptive configuration.
350
312
 
351
- Returns: Lineage pressure configuration object.
313
+ Returns: True when adjustment is allowed.
352
314
 
353
315
  ### recordAdjustment
354
316
 
@@ -367,3 +329,41 @@ Parameters:
367
329
  - `engine` - - NEAT engine instance.
368
330
 
369
331
  Returns: Nothing.
332
+
333
+ ### resolveAdjustmentMagnitude
334
+
335
+ ```ts
336
+ resolveAdjustmentMagnitude(
337
+ config: { enabled?: boolean | undefined; cooldown?: number | undefined; lowThreshold?: number | undefined; highThreshold?: number | undefined; adjust?: number | undefined; mode?: string | undefined; },
338
+ ): number
339
+ ```
340
+
341
+ Resolve adjustment magnitude for nudging controlled parameters.
342
+
343
+ Magnitude resolution keeps defaulting logic away from the mode-specific
344
+ adjusters so those helpers can focus on policy semantics.
345
+
346
+ Parameters:
347
+ - `config` - - Ancestor uniqueness adaptive configuration.
348
+
349
+ Returns: Adjustment magnitude.
350
+
351
+ ### resolveUniquenessThresholds
352
+
353
+ ```ts
354
+ resolveUniquenessThresholds(
355
+ config: { enabled?: boolean | undefined; cooldown?: number | undefined; lowThreshold?: number | undefined; highThreshold?: number | undefined; adjust?: number | undefined; mode?: string | undefined; },
356
+ ): { lowThreshold: number; highThreshold: number; }
357
+ ```
358
+
359
+ Resolve thresholds for ancestor-uniqueness decisions.
360
+
361
+ These bounds define the acceptable ancestry-diversity band. Values below the
362
+ lower threshold suggest the population is converging onto similar family
363
+ trees, while values above the upper threshold suggest diversity pressure may
364
+ already be stronger than needed.
365
+
366
+ Parameters:
367
+ - `config` - - Ancestor uniqueness adaptive configuration.
368
+
369
+ Returns: Threshold bounds.