@reicek/neataptic-ts 0.1.24 → 0.1.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/.github/copilot-instructions.md +11 -0
  2. package/.github/skills/trace-analyzer-extension/SKILL.md +3 -3
  3. package/.github/skills/trace-analyzer-extension/assets/extension-checklist.md +1 -1
  4. package/.github/skills/trace-analyzer-extension/references/analyzer-extension-workflow.md +1 -1
  5. package/.github/skills/trace-audit-reporting/SKILL.md +3 -3
  6. package/.github/skills/trace-audit-reporting/references/trace-analysis-workflow.md +1 -1
  7. package/.github/workflows/ci.yml +3 -3
  8. package/.github/workflows/deploy-pages.yml +6 -6
  9. package/.github/workflows/manual_release_pipeline.yml +3 -3
  10. package/.github/workflows/publish.yml +18 -19
  11. package/.github/workflows/release_dispatch.yml +3 -3
  12. package/package.json +26 -20
  13. package/plans/Flappy_Bird_Folder_Documentation_Pass.md +4 -4
  14. package/plans/README.md +24 -0
  15. package/plans/Roadmap.md +62 -40
  16. package/plans/analyze-trace-solid-split.plans.md +66 -0
  17. package/plans/architecture-solid-split.plans.md +9 -15
  18. package/plans/asciiMaze-typescript-repair.plans.md +1 -1
  19. package/plans/generate-docs-solid-split.plans.md +87 -0
  20. package/plans/methods-docs.plans.md +25 -1
  21. package/plans/methods-solid-split.plans.md +14 -14
  22. package/plans/neat-docs.plans.md +9 -1
  23. package/plans/neat-test-surface-repair.plans.md +1 -1
  24. package/plans/render-docs-html-solid-split.plans.md +68 -0
  25. package/plans/src-no-explicit-any-cleanup.plans.md +1 -1
  26. package/plans/utils-docs.plans.md +6 -1
  27. package/scripts/analyze-trace/analyze-trace.analysis.ts +479 -0
  28. package/scripts/analyze-trace/analyze-trace.constants.ts +35 -0
  29. package/scripts/analyze-trace/analyze-trace.io.ts +69 -0
  30. package/scripts/analyze-trace/analyze-trace.report.ts +100 -0
  31. package/scripts/analyze-trace/analyze-trace.shared.ts +116 -0
  32. package/scripts/analyze-trace/analyze-trace.ts +45 -0
  33. package/scripts/analyze-trace/analyze-trace.types.ts +72 -0
  34. package/scripts/assets/theme.css +80 -23
  35. package/scripts/copy-examples.ts +239 -0
  36. package/scripts/export-onnx.ts +223 -0
  37. package/scripts/generate-bench-tables.ts +378 -37
  38. package/scripts/generate-docs/generate-docs.constants.ts +107 -0
  39. package/scripts/generate-docs/generate-docs.order.ts +355 -0
  40. package/scripts/generate-docs/generate-docs.state.ts +31 -0
  41. package/scripts/generate-docs/generate-docs.targets.ts +165 -0
  42. package/scripts/generate-docs/generate-docs.ts +63 -0
  43. package/scripts/generate-docs/generate-docs.types.ts +112 -0
  44. package/scripts/generate-docs/output/generate-docs.output.folder-index.utils.ts +167 -0
  45. package/scripts/generate-docs/output/generate-docs.output.ordering.utils.ts +353 -0
  46. package/scripts/generate-docs/output/generate-docs.output.readme.utils.ts +420 -0
  47. package/scripts/generate-docs/output/generate-docs.output.ts +123 -0
  48. package/scripts/generate-docs/output/generate-docs.output.warnings.utils.ts +219 -0
  49. package/scripts/generate-docs/symbols/generate-docs.symbols.collection.utils.ts +365 -0
  50. package/scripts/generate-docs/symbols/generate-docs.symbols.jsdoc.utils.ts +373 -0
  51. package/scripts/generate-docs/symbols/generate-docs.symbols.normalize.utils.ts +155 -0
  52. package/scripts/generate-docs/symbols/generate-docs.symbols.render.utils.ts +149 -0
  53. package/scripts/generate-docs/symbols/generate-docs.symbols.signature.utils.ts +289 -0
  54. package/scripts/generate-docs/symbols/generate-docs.symbols.ts +11 -0
  55. package/scripts/mermaid-cli.mjs +102 -22
  56. package/scripts/mermaid-cli.ts +736 -0
  57. package/scripts/render-docs-html/render-docs-html.assets.ts +54 -0
  58. package/scripts/render-docs-html/render-docs-html.mermaid.ts +245 -0
  59. package/scripts/{render-docs-html.sidebar.ts → render-docs-html/render-docs-html.navigation.ts} +141 -144
  60. package/scripts/render-docs-html/render-docs-html.pages.ts +333 -0
  61. package/scripts/render-docs-html/render-docs-html.shared.ts +333 -0
  62. package/scripts/render-docs-html/render-docs-html.types.ts +42 -0
  63. package/scripts/render-docs-html.ts +23 -587
  64. package/scripts/run-docs.ts +238 -0
  65. package/scripts/write-dist-docs-pkg.ts +40 -0
  66. package/src/README.md +75 -75
  67. package/src/architecture/connection/README.md +5 -5
  68. package/src/architecture/layer/README.md +508 -508
  69. package/src/architecture/network/README.md +1458 -1458
  70. package/src/architecture/network/activate/README.md +694 -694
  71. package/src/architecture/network/bootstrap/README.md +77 -77
  72. package/src/architecture/network/connect/README.md +74 -74
  73. package/src/architecture/network/deterministic/README.md +135 -135
  74. package/src/architecture/network/evolve/README.md +364 -364
  75. package/src/architecture/network/gating/README.md +130 -130
  76. package/src/architecture/network/genetic/README.md +399 -399
  77. package/src/architecture/network/mutate/README.md +897 -897
  78. package/src/architecture/network/onnx/README.md +720 -720
  79. package/src/architecture/network/onnx/export/README.md +728 -728
  80. package/src/architecture/network/onnx/export/layers/README.md +450 -450
  81. package/src/architecture/network/onnx/import/README.md +618 -618
  82. package/src/architecture/network/onnx/schema/README.md +32 -32
  83. package/src/architecture/network/prune/README.md +245 -245
  84. package/src/architecture/network/remove/README.md +135 -135
  85. package/src/architecture/network/runtime/README.md +106 -106
  86. package/src/architecture/network/serialize/README.md +542 -542
  87. package/src/architecture/network/slab/README.md +608 -608
  88. package/src/architecture/network/standalone/README.md +212 -212
  89. package/src/architecture/network/stats/README.md +84 -84
  90. package/src/architecture/network/topology/README.md +465 -465
  91. package/src/architecture/network/training/README.md +200 -200
  92. package/src/architecture/node/README.md +5 -5
  93. package/src/architecture/nodePool/README.md +14 -14
  94. package/src/methods/README.md +99 -99
  95. package/src/methods/activation/README.md +189 -189
  96. package/src/methods/cost/README.md +131 -131
  97. package/src/methods/rate/README.md +86 -86
  98. package/src/multithreading/README.md +77 -77
  99. package/src/multithreading/workers/browser/README.md +8 -8
  100. package/src/multithreading/workers/node/README.md +8 -8
  101. package/src/neat/README.md +148 -148
  102. package/src/neat/adaptive/README.md +120 -120
  103. package/src/neat/adaptive/acceptance/README.md +40 -40
  104. package/src/neat/adaptive/complexity/README.md +137 -137
  105. package/src/neat/adaptive/core/README.md +197 -197
  106. package/src/neat/adaptive/lineage/README.md +90 -90
  107. package/src/neat/adaptive/mutation/README.md +284 -284
  108. package/src/neat/compat/README.md +43 -43
  109. package/src/neat/compat/core/README.md +90 -90
  110. package/src/neat/diversity/README.md +35 -35
  111. package/src/neat/diversity/core/README.md +88 -88
  112. package/src/neat/evaluate/README.md +85 -85
  113. package/src/neat/evaluate/auto-distance/README.md +75 -75
  114. package/src/neat/evaluate/entropy-compat/README.md +37 -37
  115. package/src/neat/evaluate/entropy-sharing/README.md +43 -43
  116. package/src/neat/evaluate/fitness/README.md +23 -23
  117. package/src/neat/evaluate/novelty/README.md +120 -120
  118. package/src/neat/evaluate/objectives/README.md +17 -17
  119. package/src/neat/evaluate/shared/README.md +94 -94
  120. package/src/neat/evolve/README.md +96 -96
  121. package/src/neat/evolve/adaptive/README.md +60 -60
  122. package/src/neat/evolve/objectives/README.md +63 -63
  123. package/src/neat/evolve/offspring/README.md +56 -56
  124. package/src/neat/evolve/population/README.md +171 -171
  125. package/src/neat/evolve/runtime/README.md +79 -79
  126. package/src/neat/evolve/speciation/README.md +74 -74
  127. package/src/neat/evolve/warnings/README.md +10 -10
  128. package/src/neat/export/README.md +114 -114
  129. package/src/neat/helpers/README.md +50 -50
  130. package/src/neat/init/README.md +9 -9
  131. package/src/neat/lineage/core/README.md +101 -101
  132. package/src/neat/multiobjective/category/README.md +74 -74
  133. package/src/neat/multiobjective/crowding/README.md +272 -272
  134. package/src/neat/multiobjective/dominance/README.md +171 -171
  135. package/src/neat/multiobjective/fronts/README.md +68 -68
  136. package/src/neat/multiobjective/metrics/README.md +43 -43
  137. package/src/neat/multiobjective/objectives/README.md +31 -31
  138. package/src/neat/multiobjective/shared/README.md +27 -27
  139. package/src/neat/mutation/README.md +97 -97
  140. package/src/neat/mutation/add-conn/README.md +115 -115
  141. package/src/neat/mutation/add-node/README.md +126 -126
  142. package/src/neat/mutation/flow/README.md +149 -149
  143. package/src/neat/mutation/repair/README.md +185 -185
  144. package/src/neat/mutation/select/README.md +117 -117
  145. package/src/neat/mutation/shared/README.md +32 -32
  146. package/src/neat/objectives/README.md +25 -25
  147. package/src/neat/objectives/core/README.md +67 -67
  148. package/src/neat/pruning/README.md +40 -40
  149. package/src/neat/pruning/core/README.md +171 -171
  150. package/src/neat/pruning/facade/README.md +32 -32
  151. package/src/neat/rng/README.md +104 -104
  152. package/src/neat/rng/core/README.md +137 -137
  153. package/src/neat/rng/facade/README.md +50 -50
  154. package/src/neat/selection/README.md +111 -111
  155. package/src/neat/selection/core/README.md +227 -227
  156. package/src/neat/selection/facade/README.md +61 -61
  157. package/src/neat/shared/README.md +163 -163
  158. package/src/neat/speciation/README.md +31 -31
  159. package/src/neat/speciation/threshold/README.md +35 -35
  160. package/src/neat/species/README.md +25 -25
  161. package/src/neat/species/core/README.md +20 -20
  162. package/src/neat/species/core/shared/README.md +18 -18
  163. package/src/neat/species/history/context/README.md +22 -22
  164. package/src/neat/telemetry/accessors/README.md +58 -58
  165. package/src/neat/telemetry/exports/README.md +233 -233
  166. package/src/neat/telemetry/facade/README.md +252 -252
  167. package/src/neat/telemetry/facade/archive/README.md +57 -57
  168. package/src/neat/telemetry/facade/buffer/README.md +43 -43
  169. package/src/neat/telemetry/facade/lineage/README.md +12 -12
  170. package/src/neat/telemetry/facade/objectives/README.md +44 -44
  171. package/src/neat/telemetry/facade/runtime/README.md +26 -26
  172. package/src/neat/telemetry/facade/species/README.md +27 -27
  173. package/src/neat/telemetry/metrics/README.md +696 -696
  174. package/src/neat/telemetry/recorder/README.md +57 -57
  175. package/src/neat/telemetry/types/README.md +32 -32
  176. package/src/neat/topology-intent/README.md +75 -75
  177. package/src/utils/README.md +193 -193
  178. package/test/examples/asciiMaze/browser-entry/README.md +92 -92
  179. package/test/examples/asciiMaze/dashboardManager/README.md +109 -109
  180. package/test/examples/asciiMaze/dashboardManager/telemetry/README.md +28 -28
  181. package/test/examples/asciiMaze/evolutionEngine/README.md +1527 -1527
  182. package/test/examples/asciiMaze/mazeMovement/README.md +105 -105
  183. package/test/examples/asciiMaze/mazeMovement/finalization/README.md +16 -16
  184. package/test/examples/asciiMaze/mazeMovement/policy/README.md +57 -57
  185. package/test/examples/asciiMaze/mazeMovement/runtime/README.md +52 -52
  186. package/test/examples/asciiMaze/mazeMovement/shaping/README.md +46 -46
  187. package/test/examples/flappy_bird/browser-entry/README.md +508 -508
  188. package/test/examples/flappy_bird/browser-entry/host/README.md +101 -101
  189. package/test/examples/flappy_bird/browser-entry/host/resize/README.md +144 -144
  190. package/test/examples/flappy_bird/browser-entry/network-view/README.md +194 -194
  191. package/test/examples/flappy_bird/browser-entry/playback/README.md +278 -278
  192. package/test/examples/flappy_bird/browser-entry/playback/background/README.md +129 -129
  193. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/README.md +502 -502
  194. package/test/examples/flappy_bird/browser-entry/playback/frame-render/README.md +139 -139
  195. package/test/examples/flappy_bird/browser-entry/playback/snapshot/README.md +10 -10
  196. package/test/examples/flappy_bird/browser-entry/playback/trail/README.md +43 -43
  197. package/test/examples/flappy_bird/browser-entry/playback/worker-channel/README.md +30 -30
  198. package/test/examples/flappy_bird/browser-entry/runtime/README.md +59 -59
  199. package/test/examples/flappy_bird/browser-entry/visualization/README.md +276 -276
  200. package/test/examples/flappy_bird/browser-entry/worker-channel/README.md +16 -16
  201. package/test/examples/flappy_bird/constants/README.md +1070 -1070
  202. package/test/examples/flappy_bird/environment/README.md +22 -22
  203. package/test/examples/flappy_bird/evaluation/README.md +32 -32
  204. package/test/examples/flappy_bird/evaluation/rollout/README.md +141 -141
  205. package/test/examples/flappy_bird/flappy-evolution-worker/README.md +425 -425
  206. package/test/examples/flappy_bird/simulation-shared/README.md +170 -170
  207. package/test/examples/flappy_bird/simulation-shared/observation/README.md +109 -109
  208. package/test/examples/flappy_bird/trainer/README.md +325 -325
  209. package/test/examples/flappy_bird/trainer/evaluation/README.md +74 -74
  210. package/scripts/analyze-trace.ts +0 -590
  211. package/scripts/copy-examples.mjs +0 -114
  212. package/scripts/export-onnx.mjs +0 -86
  213. package/scripts/generate-bench-tables.mjs +0 -182
  214. package/scripts/generate-docs.ts +0 -2900
  215. package/scripts/write-dist-docs-pkg.mjs +0 -16
@@ -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