@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
@@ -117,6 +117,57 @@ A practical chooser for first experiments:
117
117
  - use `registerCustomActivation()` when the built-ins are close but not quite
118
118
  the transfer curve your experiment needs.
119
119
 
120
+ ### crossover
121
+
122
+ Crossover methods for genetic algorithms.
123
+
124
+ These methods implement the crossover strategies described in the Instinct algorithm,
125
+ enabling the creation of offspring with unique combinations of parent traits.
126
+
127
+ Read this file as an inheritance-policy shelf: each method answers a
128
+ different question about how aggressively two parents should be mixed.
129
+
130
+ - `SINGLE_POINT` preserves one contiguous prefix from one parent and the
131
+ remaining suffix from the other,
132
+ - `TWO_POINT` preserves a middle segment boundary instead of only one split,
133
+ - `UNIFORM` treats each gene as an independent coin flip,
134
+ - `AVERAGE` blends compatible numeric genes instead of copying segments.
135
+
136
+ A practical chooser for first experiments:
137
+
138
+ - start with `UNIFORM` when you want broad mixing and do not need contiguous
139
+ blocks of structure to stay together,
140
+ - use `SINGLE_POINT` or `TWO_POINT` when adjacency matters and you want to
141
+ preserve larger parent segments,
142
+ - choose `AVERAGE` when the genome is meaningfully numeric and interpolation
143
+ is more useful than hard parent switching.
144
+
145
+ Minimal workflow:
146
+
147
+ ```ts
148
+ const broadMixing = crossover.UNIFORM;
149
+
150
+ const oneCut = crossover.SINGLE_POINT;
151
+
152
+ const twoCut = {
153
+ ...crossover.TWO_POINT,
154
+ config: [0.25, 0.75],
155
+ };
156
+
157
+ const blendedOffspring = crossover.AVERAGE;
158
+ ```
159
+
160
+ ```mermaid
161
+ flowchart LR
162
+ Parents[Two parent genomes] --> Segment[Segment-preserving crossover]
163
+ Parents --> GeneWise[Gene-wise crossover]
164
+ Parents --> Blend[Numeric blending]
165
+ Segment --> Single[SINGLE_POINT]
166
+ Segment --> Double[TWO_POINT]
167
+ GeneWise --> Uniform[UNIFORM]
168
+ Blend --> Average[AVERAGE]
169
+ ```
170
+
120
171
  ### gating
121
172
 
122
173
  Defines the small routing shelf that decides where a gater applies control.
@@ -168,6 +219,54 @@ const routingShelf = {
168
219
  };
169
220
  ```
170
221
 
222
+ ### groupConnection
223
+
224
+ Defines the small wiring-policy shelf for connecting one node group to another.
225
+
226
+ Read this file as a topology chooser rather than a bag of connection names.
227
+ These policies do not decide weights, learning, or mutation pressure; they
228
+ answer a narrower structural question first: what edge pattern should exist
229
+ between the source group and the target group before later optimization
230
+ details matter?
231
+
232
+ The three built-ins answer three different wiring intents:
233
+
234
+ - `ALL_TO_ALL` asks for the densest possible bridge between the groups,
235
+ - `ALL_TO_ELSE` keeps that dense bridge but avoids trivial self-links when
236
+ the source and target are the same group,
237
+ - `ONE_TO_ONE` preserves positional pairing instead of creating a dense mesh.
238
+
239
+ Those choices matter because they create very different starting biases. A
240
+ dense bridge maximizes routing freedom, a dense-without-self-links bridge is
241
+ often the cleanest way to describe intra-group recurrence, and one-to-one
242
+ wiring preserves explicit alignment instead of encouraging cross-talk.
243
+
244
+ A practical chooser for first experiments:
245
+
246
+ - start with `ALL_TO_ALL` when every source feature should be allowed to
247
+ influence every target unit,
248
+ - use `ALL_TO_ELSE` when you want dense recurrent-style reuse inside one
249
+ group without creating direct self-connections,
250
+ - choose `ONE_TO_ONE` when index alignment matters and each source unit
251
+ should feed exactly one partner.
252
+
253
+ ```mermaid
254
+ flowchart LR
255
+ Dense[Dense mesh] --> AllToAll[ALL_TO_ALL]
256
+ Dense --> AllToElse[ALL_TO_ELSE]
257
+ Paired[Positional pairing] --> OneToOne[ONE_TO_ONE]
258
+ ```
259
+
260
+ Minimal workflow:
261
+
262
+ ```ts
263
+ const wiringShelf = {
264
+ denseBridge: groupConnection.ALL_TO_ALL,
265
+ denseWithoutSelfLoops: groupConnection.ALL_TO_ELSE,
266
+ alignedBridge: groupConnection.ONE_TO_ONE,
267
+ };
268
+ ```
269
+
171
270
  ### mutation
172
271
 
173
272
  Defines various mutation methods used in neuroevolution algorithms.
@@ -338,105 +437,6 @@ flowchart LR
338
437
  Population --> Tournament[TOURNAMENT<br/>small local bracket decides]
339
438
  ```
340
439
 
341
- ### crossover
342
-
343
- Crossover methods for genetic algorithms.
344
-
345
- These methods implement the crossover strategies described in the Instinct algorithm,
346
- enabling the creation of offspring with unique combinations of parent traits.
347
-
348
- Read this file as an inheritance-policy shelf: each method answers a
349
- different question about how aggressively two parents should be mixed.
350
-
351
- - `SINGLE_POINT` preserves one contiguous prefix from one parent and the
352
- remaining suffix from the other,
353
- - `TWO_POINT` preserves a middle segment boundary instead of only one split,
354
- - `UNIFORM` treats each gene as an independent coin flip,
355
- - `AVERAGE` blends compatible numeric genes instead of copying segments.
356
-
357
- A practical chooser for first experiments:
358
-
359
- - start with `UNIFORM` when you want broad mixing and do not need contiguous
360
- blocks of structure to stay together,
361
- - use `SINGLE_POINT` or `TWO_POINT` when adjacency matters and you want to
362
- preserve larger parent segments,
363
- - choose `AVERAGE` when the genome is meaningfully numeric and interpolation
364
- is more useful than hard parent switching.
365
-
366
- Minimal workflow:
367
-
368
- ```ts
369
- const broadMixing = crossover.UNIFORM;
370
-
371
- const oneCut = crossover.SINGLE_POINT;
372
-
373
- const twoCut = {
374
- ...crossover.TWO_POINT,
375
- config: [0.25, 0.75],
376
- };
377
-
378
- const blendedOffspring = crossover.AVERAGE;
379
- ```
380
-
381
- ```mermaid
382
- flowchart LR
383
- Parents[Two parent genomes] --> Segment[Segment-preserving crossover]
384
- Parents --> GeneWise[Gene-wise crossover]
385
- Parents --> Blend[Numeric blending]
386
- Segment --> Single[SINGLE_POINT]
387
- Segment --> Double[TWO_POINT]
388
- GeneWise --> Uniform[UNIFORM]
389
- Blend --> Average[AVERAGE]
390
- ```
391
-
392
- ### groupConnection
393
-
394
- Defines the small wiring-policy shelf for connecting one node group to another.
395
-
396
- Read this file as a topology chooser rather than a bag of connection names.
397
- These policies do not decide weights, learning, or mutation pressure; they
398
- answer a narrower structural question first: what edge pattern should exist
399
- between the source group and the target group before later optimization
400
- details matter?
401
-
402
- The three built-ins answer three different wiring intents:
403
-
404
- - `ALL_TO_ALL` asks for the densest possible bridge between the groups,
405
- - `ALL_TO_ELSE` keeps that dense bridge but avoids trivial self-links when
406
- the source and target are the same group,
407
- - `ONE_TO_ONE` preserves positional pairing instead of creating a dense mesh.
408
-
409
- Those choices matter because they create very different starting biases. A
410
- dense bridge maximizes routing freedom, a dense-without-self-links bridge is
411
- often the cleanest way to describe intra-group recurrence, and one-to-one
412
- wiring preserves explicit alignment instead of encouraging cross-talk.
413
-
414
- A practical chooser for first experiments:
415
-
416
- - start with `ALL_TO_ALL` when every source feature should be allowed to
417
- influence every target unit,
418
- - use `ALL_TO_ELSE` when you want dense recurrent-style reuse inside one
419
- group without creating direct self-connections,
420
- - choose `ONE_TO_ONE` when index alignment matters and each source unit
421
- should feed exactly one partner.
422
-
423
- ```mermaid
424
- flowchart LR
425
- Dense[Dense mesh] --> AllToAll[ALL_TO_ALL]
426
- Dense --> AllToElse[ALL_TO_ELSE]
427
- Paired[Positional pairing] --> OneToOne[ONE_TO_ONE]
428
- ```
429
-
430
- Minimal workflow:
431
-
432
- ```ts
433
- const wiringShelf = {
434
- denseBridge: groupConnection.ALL_TO_ALL,
435
- denseWithoutSelfLoops: groupConnection.ALL_TO_ELSE,
436
- alignedBridge: groupConnection.ONE_TO_ONE,
437
- };
438
- ```
439
-
440
440
  ### default
441
441
 
442
442
  #### binary