@reicek/neataptic-ts 0.1.22 → 0.1.24
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.
- package/.github/agents/boundary-mapper.agent.md +27 -2
- package/.github/agents/docs-scout.agent.md +27 -1
- package/.github/agents/plan-scout.agent.md +21 -1
- package/.github/agents/solid-split.agent.md +37 -16
- package/.github/copilot-instructions.md +122 -99
- package/.github/skills/educational-docs/SKILL.md +604 -0
- package/.github/skills/educational-docs/assets/external-sources-and-media.md +118 -0
- package/.github/skills/educational-docs/assets/mermaid-diagram-playbook.md +763 -0
- package/.github/skills/educational-docs/assets/readme-tone-model.md +74 -0
- package/.github/skills/educational-docs/assets/source-mapping-checklist.md +60 -0
- package/.github/skills/educational-docs/assets/visual-style-guide.md +165 -0
- package/.github/skills/plan-alignment/SKILL.md +114 -0
- package/.github/skills/solid-split/SKILL.md +426 -0
- package/.github/skills/solid-split/assets/docs-checklist.md +40 -0
- package/.github/skills/solid-split/assets/split-plan-template.md +48 -0
- package/.github/skills/solid-split/assets/split-workflow-checklist.md +51 -0
- package/.github/skills/test-fix-workflow/SKILL.md +105 -0
- package/.github/skills/trace-analyzer-extension/SKILL.md +68 -0
- package/.github/skills/trace-analyzer-extension/assets/extension-checklist.md +24 -0
- package/.github/skills/trace-analyzer-extension/references/analyzer-extension-workflow.md +101 -0
- package/.github/skills/trace-audit-reporting/SKILL.md +105 -0
- package/.github/skills/trace-audit-reporting/assets/performance-report-template.md +123 -0
- package/.github/skills/trace-audit-reporting/references/trace-analysis-workflow.md +132 -0
- package/.github/skills/tracker-handoff/SKILL.md +153 -0
- package/README.md +84 -1610
- package/eslint.config.mjs +1 -1
- package/jest.config.mjs +1 -3
- package/nn.jpg +0 -0
- package/package.json +37 -31
- package/plans/Architecture_Primitives_Node_Group_Layer.md +2 -0
- package/plans/Browser_Build_and_CDN_Distribution.md +2 -0
- package/plans/Construct_From_Parts_Graph_Assembly.md +2 -0
- package/plans/ES2023 migration +2 -0
- package/plans/Evolution_Training_Interoperability_Contracts.md +2 -0
- package/plans/Flappy_Bird_Folder_Documentation_Pass.md +117 -0
- package/plans/HyperEvoDevoMorphoNEAT.md +2 -0
- package/plans/Interactive_Examples_and_Learning_Path.md +2 -0
- package/plans/Memory_Optimization.md +2 -0
- package/plans/Network_Visualization_Export_Schema.md +2 -0
- package/plans/ONNX_EXPORT_PLAN.md +2 -0
- package/plans/Population_Save_Resume_and_Checkpointing.md +2 -0
- package/plans/Preconfigured_Architectures_MLP_LSTM_GRU_NARX.md +2 -0
- package/plans/README.md +9 -0
- package/plans/Roadmap.md +92 -25
- package/plans/Stable_Activation_Ordering_and_Explicit_IO_Roles.md +2 -0
- package/plans/Standalone_Inference_Export.md +2 -0
- package/plans/Turnkey_Multithread_Evaluation_API.md +2 -0
- package/plans/Worker_Friendly_Network_Serialization_Fastpath.md +2 -0
- package/plans/architecture-solid-split.plans.md +675 -0
- package/plans/asciiMaze-typescript-repair.plans.md +42 -0
- package/plans/methods-docs.plans.md +173 -0
- package/plans/methods-solid-split.plans.md +78 -0
- package/plans/neat-docs.plans.md +68 -0
- package/plans/neat-test-surface-repair.plans.md +38 -0
- package/plans/neat.plans.md +4 -2
- package/plans/src-no-explicit-any-cleanup.plans.md +175 -0
- package/plans/utils-docs.plans.md +44 -0
- package/scripts/analyze-trace.ts +590 -0
- package/scripts/assets/theme.css +532 -55
- package/scripts/generate-docs.ts +1491 -114
- package/scripts/mermaid-cli.mjs +158 -0
- package/scripts/render-docs-html.sidebar.ts +513 -0
- package/scripts/render-docs-html.ts +391 -90
- package/src/README.md +2304 -917
- package/src/architecture/README.md +19 -2041
- package/src/architecture/activationArrayPool/README.md +35 -0
- package/src/architecture/activationArrayPool/activationArrayPool.ts +185 -0
- package/src/architecture/activationArrayPool.ts +6 -136
- package/src/architecture/architect/README.md +198 -0
- package/src/architecture/architect/architect.ts +550 -0
- package/src/architecture/architect.ts +5 -635
- package/src/architecture/connection/README.md +260 -0
- package/src/architecture/connection/connection.ts +455 -0
- package/src/architecture/connection.ts +4 -397
- package/src/architecture/docs.order.json +35 -0
- package/src/architecture/group/README.md +193 -0
- package/src/architecture/group/group.ts +506 -0
- package/src/architecture/group.ts +5 -417
- package/src/architecture/layer/README.md +1101 -458
- package/src/architecture/layer/layer.activation.utils.ts +1 -1
- package/src/architecture/layer/layer.connection.utils.ts +2 -2
- package/src/architecture/layer/layer.factory.core.utils.ts +2 -2
- package/src/architecture/layer/layer.factory.experimental.utils.ts +1 -1
- package/src/architecture/layer/layer.factory.normalization.utils.ts +1 -1
- package/src/architecture/layer/layer.factory.recurrent.utils.ts +3 -7
- package/src/architecture/layer/layer.guard.utils.ts +1 -1
- package/src/architecture/layer/layer.ts +488 -0
- package/src/architecture/layer/layer.utils.types.ts +2 -2
- package/src/architecture/layer.ts +4 -470
- package/src/architecture/network/README.md +2563 -1264
- package/src/architecture/network/activate/README.md +1001 -522
- package/src/architecture/network/activate/network.activate.contexts.utils.ts +1 -1
- package/src/architecture/network/activate/network.activate.core.utils.ts +4 -4
- package/src/architecture/network/activate/network.activate.notrace.utils.ts +1 -1
- package/src/architecture/network/activate/network.activate.raw.utils.ts +1 -1
- package/src/architecture/network/activate/network.activate.utils.ts +3 -3
- package/src/architecture/network/activate/network.activate.utils.types.ts +2 -2
- package/src/architecture/network/bootstrap/README.md +207 -0
- package/src/architecture/network/bootstrap/network.bootstrap.utils.ts +295 -0
- package/src/architecture/network/connect/README.md +146 -60
- package/src/architecture/network/connect/network.connect.create.utils.ts +1 -1
- package/src/architecture/network/connect/network.connect.remove.utils.ts +1 -1
- package/src/architecture/network/connect/network.connect.utils.ts +2 -2
- package/src/architecture/network/deterministic/README.md +236 -113
- package/src/architecture/network/deterministic/network.deterministic.lifecycle.utils.ts +1 -1
- package/src/architecture/network/deterministic/network.deterministic.setup.utils.ts +2 -2
- package/src/architecture/network/deterministic/network.deterministic.state.utils.ts +2 -2
- package/src/architecture/network/deterministic/network.deterministic.utils.ts +2 -2
- package/src/architecture/network/docs.order.json +8 -0
- package/src/architecture/network/evolve/README.md +550 -261
- package/src/architecture/network/evolve/network.evolve.finalize.utils.ts +1 -1
- package/src/architecture/network/evolve/network.evolve.fitness.utils.ts +1 -1
- package/src/architecture/network/evolve/network.evolve.loop.utils.ts +1 -1
- package/src/architecture/network/evolve/network.evolve.setup.utils.ts +1 -1
- package/src/architecture/network/evolve/network.evolve.utils.ts +1 -1
- package/src/architecture/network/gating/README.md +221 -111
- package/src/architecture/network/gating/network.gating.gate.utils.ts +1 -1
- package/src/architecture/network/gating/network.gating.remove.utils.ts +2 -2
- package/src/architecture/network/gating/network.gating.utils.ts +2 -2
- package/src/architecture/network/genetic/README.md +624 -287
- package/src/architecture/network/genetic/network.genetic.setup.utils.ts +2 -2
- package/src/architecture/network/genetic/network.genetic.utils.ts +1 -1
- package/src/architecture/network/mutate/README.md +1248 -653
- package/src/architecture/network/mutate/network.mutate.dispatch.utils.ts +1 -1
- package/src/architecture/network/mutate/network.mutate.handlers.utils.ts +15 -42
- package/src/architecture/network/mutate/network.mutate.public.utils.ts +60 -0
- package/src/architecture/network/mutate/network.mutate.utils.ts +1 -1
- package/src/architecture/network/mutate/network.mutate.utils.types.ts +0 -5
- package/src/architecture/network/network.ts +1153 -0
- package/src/architecture/network/network.types.ts +141 -8
- package/src/architecture/network/network.utils.ts +22 -15
- package/src/architecture/network/onnx/README.md +1039 -3171
- package/src/architecture/network/onnx/docs.order.json +13 -0
- package/src/architecture/network/onnx/export/README.md +1691 -0
- package/src/architecture/network/onnx/export/layers/README.md +1121 -0
- package/src/architecture/network/onnx/{network.onnx.export-conv.utils.ts → export/layers/network.onnx.export-conv.utils.ts} +35 -7
- package/src/architecture/network/onnx/{network.onnx.export-dense.utils.ts → export/layers/network.onnx.export-dense.utils.ts} +42 -9
- package/src/architecture/network/onnx/{network.onnx.export-layer-common.utils.ts → export/layers/network.onnx.export-layer-common.utils.ts} +22 -16
- package/src/architecture/network/onnx/{network.onnx.export-layer-graph.utils.ts → export/layers/network.onnx.export-layer-graph.utils.ts} +51 -4
- package/src/architecture/network/onnx/{network.onnx.export-recurrent.utils.ts → export/layers/network.onnx.export-recurrent.utils.ts} +27 -6
- package/src/architecture/network/onnx/{network.onnx.export-build.utils.ts → export/network.onnx.export-build.utils.ts} +5 -5
- package/src/architecture/network/onnx/{network.onnx.export-flow.utils.ts → export/network.onnx.export-flow.utils.ts} +3 -2
- package/src/architecture/network/onnx/{network.onnx.export-orchestrators.utils.ts → export/network.onnx.export-orchestrators.utils.ts} +9 -5
- package/src/architecture/network/onnx/{network.onnx.export-postprocess.utils.ts → export/network.onnx.export-postprocess.utils.ts} +11 -7
- package/src/architecture/network/onnx/{network.onnx.export-setup.utils.ts → export/network.onnx.export-setup.utils.ts} +9 -7
- package/src/architecture/network/onnx/export/network.onnx.export.types.ts +734 -0
- package/src/architecture/network/onnx/import/README.md +1515 -0
- package/src/architecture/network/onnx/import/docs.order.json +15 -0
- package/src/architecture/network/onnx/{network.onnx.import-activations.utils.ts → import/network.onnx.import-activations.utils.ts} +3 -3
- package/src/architecture/network/onnx/{network.onnx.import-flow.utils.ts → import/network.onnx.import-flow.utils.ts} +25 -5
- package/src/architecture/network/onnx/import/network.onnx.import-fused-recurrent.types.ts +101 -0
- package/src/architecture/network/onnx/{network.onnx.import-fused-recurrent.utils.ts → import/network.onnx.import-fused-recurrent.utils.ts} +10 -6
- package/src/architecture/network/onnx/import/network.onnx.import-orchestrators.types.ts +74 -0
- package/src/architecture/network/onnx/{network.onnx.import-orchestrators.utils.ts → import/network.onnx.import-orchestrators.utils.ts} +9 -7
- package/src/architecture/network/onnx/import/network.onnx.import-weights.types.ts +189 -0
- package/src/architecture/network/onnx/{network.onnx.import-weights.utils.ts → import/network.onnx.import-weights.utils.ts} +11 -7
- package/src/architecture/network/onnx/import/network.onnx.runtime-load.types.ts +52 -0
- package/src/architecture/network/onnx/{network.onnx.runtime-load.utils.ts → import/network.onnx.runtime-load.utils.ts} +2 -2
- package/src/architecture/network/onnx/network.onnx.layer-analysis.utils.ts +1 -1
- package/src/architecture/network/onnx/network.onnx.ts +20 -5
- package/src/architecture/network/onnx/network.onnx.utils.ts +32 -11
- package/src/architecture/network/onnx/network.onnx.utils.types.ts +172 -1195
- package/src/architecture/network/onnx/schema/README.md +120 -0
- package/src/architecture/network/onnx/schema/network.onnx.schema.types.ts +202 -0
- package/src/architecture/network/prune/README.md +453 -210
- package/src/architecture/network/prune/network.prune.evolutionary.utils.ts +1 -1
- package/src/architecture/network/prune/network.prune.regrowth.utils.ts +1 -1
- package/src/architecture/network/prune/network.prune.schedule.utils.ts +1 -1
- package/src/architecture/network/prune/network.prune.sparsity.utils.ts +1 -1
- package/src/architecture/network/prune/network.prune.utils.ts +16 -19
- package/src/architecture/network/remove/README.md +267 -132
- package/src/architecture/network/remove/network.remove.finalize.utils.ts +1 -1
- package/src/architecture/network/remove/network.remove.reconnect.utils.ts +1 -1
- package/src/architecture/network/remove/network.remove.snapshot.utils.ts +1 -1
- package/src/architecture/network/remove/network.remove.utils.ts +2 -2
- package/src/architecture/network/remove/network.remove.utils.types.ts +1 -1
- package/src/architecture/network/remove/network.remove.validation.utils.ts +1 -1
- package/src/architecture/network/runtime/README.md +332 -0
- package/src/architecture/network/runtime/network.runtime.controls.utils.ts +301 -0
- package/src/architecture/network/runtime/network.runtime.diagnostics.utils.ts +150 -0
- package/src/architecture/network/serialize/README.md +903 -359
- package/src/architecture/network/serialize/network.serialize.activation.utils.ts +1 -1
- package/src/architecture/network/serialize/network.serialize.json.utils.ts +1 -0
- package/src/architecture/network/serialize/network.serialize.public.utils.ts +28 -0
- package/src/architecture/network/serialize/network.serialize.runtime.utils.ts +1 -1
- package/src/architecture/network/serialize/network.serialize.utils.ts +7 -2
- package/src/architecture/network/serialize/network.serialize.utils.types.ts +1 -1
- package/src/architecture/network/slab/README.md +907 -492
- package/src/architecture/network/slab/network.slab.activate.utils.ts +1 -1
- package/src/architecture/network/slab/network.slab.adjacency.helpers.utils.ts +1 -1
- package/src/architecture/network/slab/network.slab.fast-path.helpers.utils.ts +2 -2
- package/src/architecture/network/slab/network.slab.rebuild.helpers.utils.ts +2 -2
- package/src/architecture/network/slab/network.slab.shared.helpers.utils.ts +1 -1
- package/src/architecture/network/slab/network.slab.utils.ts +3 -3
- package/src/architecture/network/slab/network.slab.utils.types.ts +1 -1
- package/src/architecture/network/slab/network.slab.view.utils.ts +1 -1
- package/src/architecture/network/standalone/README.md +401 -161
- package/src/architecture/network/standalone/network.standalone.utils.setup.ts +1 -1
- package/src/architecture/network/standalone/network.standalone.utils.ts +1 -1
- package/src/architecture/network/stats/README.md +152 -64
- package/src/architecture/network/stats/network.stats.test.utils.ts +1 -1
- package/src/architecture/network/stats/network.stats.utils.ts +5 -4
- package/src/architecture/network/topology/README.md +773 -280
- package/src/architecture/network/topology/network.topology.architecture.utils.ts +55 -1
- package/src/architecture/network/topology/network.topology.contract.utils.ts +78 -0
- package/src/architecture/network/topology/network.topology.factory.utils.ts +5 -1
- package/src/architecture/network/topology/network.topology.utils.ts +19 -3
- package/src/architecture/network/topology/network.topology.utils.types.ts +1 -1
- package/src/architecture/network/training/README.md +385 -158
- package/src/architecture/network/training/network.training.backprop.utils.ts +1 -1
- package/src/architecture/network/training/network.training.finalize.utils.ts +1 -1
- package/src/architecture/network/training/network.training.gradient-clip.utils.ts +1 -1
- package/src/architecture/network/training/network.training.loop.utils.ts +1 -1
- package/src/architecture/network/training/network.training.utils.ts +1 -1
- package/src/architecture/network/training/network.training.utils.types.ts +1 -1
- package/src/architecture/network.ts +18 -1640
- package/src/architecture/node/README.md +464 -0
- package/src/architecture/node/node.ts +1338 -0
- package/src/architecture/node.ts +4 -1317
- package/src/architecture/nodePool/README.md +78 -0
- package/src/architecture/nodePool/nodePool.ts +169 -0
- package/src/architecture/nodePool.ts +12 -150
- package/src/architecture/onnx.ts +7 -0
- package/src/methods/README.md +533 -982
- package/src/methods/activation/README.md +639 -0
- package/src/methods/{activation.ts → activation/activation.ts} +104 -11
- package/src/methods/{activation.utils.ts → activation/activation.utils.ts} +147 -1
- package/src/methods/activation/docs.order.json +7 -0
- package/src/methods/connection/README.md +97 -0
- package/src/methods/connection/connection.ts +100 -0
- package/src/methods/cost/README.md +509 -0
- package/src/methods/{cost.ts → cost/cost.ts} +56 -0
- package/src/methods/{cost.utils.ts → cost/cost.utils.ts} +1 -1
- package/src/methods/cost/docs.order.json +7 -0
- package/src/methods/crossover/README.md +52 -0
- package/src/methods/{crossover.ts → crossover/crossover.ts} +56 -0
- package/src/methods/docs.order.json +16 -0
- package/src/methods/gating/README.md +52 -0
- package/src/methods/gating/gating.ts +106 -0
- package/src/methods/methods.ts +58 -8
- package/src/methods/mutation/README.md +123 -0
- package/src/methods/{mutation.ts → mutation/mutation.ts} +87 -7
- package/src/methods/rate/README.md +490 -0
- package/src/methods/rate/docs.order.json +7 -0
- package/src/methods/{rate.ts → rate/rate.ts} +85 -4
- package/src/methods/{rate.utils.ts → rate/rate.utils.ts} +3 -3
- package/src/methods/selection/README.md +60 -0
- package/src/methods/{selection.ts → selection/selection.ts} +64 -0
- package/src/multithreading/README.md +281 -95
- package/src/multithreading/multi.ts +2 -2
- package/src/multithreading/workers/README.md +8 -6
- package/src/multithreading/workers/browser/README.md +21 -11
- package/src/multithreading/workers/node/README.md +52 -20
- package/src/neat/README.md +397 -10415
- package/src/neat/adaptive/README.md +281 -0
- package/src/neat/adaptive/acceptance/README.md +361 -0
- package/src/neat/adaptive/acceptance/adaptive.acceptance.ts +46 -0
- package/src/neat/{neat.adaptive.minimal-criterion.utils.ts → adaptive/acceptance/adaptive.minimal-criterion.utils.ts} +59 -5
- package/src/neat/{neat.adaptive.ts → adaptive/adaptive.ts} +103 -54
- package/src/neat/adaptive/complexity/README.md +519 -0
- package/src/neat/adaptive/complexity/adaptive.complexity.ts +42 -0
- package/src/neat/{neat.adaptive.complexity.utils.ts → adaptive/complexity/adaptive.complexity.utils.ts} +72 -10
- package/src/neat/{neat.adaptive.phases.utils.ts → adaptive/complexity/adaptive.phases.utils.ts} +27 -4
- package/src/neat/adaptive/core/README.md +587 -0
- package/src/neat/adaptive/core/adaptive.core.constants.ts +160 -0
- package/src/neat/adaptive/core/adaptive.core.ts +33 -0
- package/src/neat/{neat.adaptive.shared.ts → adaptive/core/adaptive.core.types.ts} +114 -134
- package/src/neat/adaptive/lineage/README.md +369 -0
- package/src/neat/{neat.adaptive.ancestor-uniqueness.utils.ts → adaptive/lineage/adaptive.ancestor-uniqueness.utils.ts} +59 -6
- package/src/neat/adaptive/lineage/adaptive.lineage.ts +49 -0
- package/src/neat/adaptive/mutation/README.md +754 -0
- package/src/neat/adaptive/mutation/adaptive.mutation.ts +51 -0
- package/src/neat/{neat.adaptive.mutation.utils.ts → adaptive/mutation/adaptive.mutation.utils.ts} +98 -4
- package/src/neat/{neat.adaptive.operator.utils.ts → adaptive/mutation/adaptive.operator.utils.ts} +30 -3
- package/src/neat/cache/README.md +156 -0
- package/src/neat/cache/cache.ts +79 -0
- package/src/neat/cache/core/README.md +151 -0
- package/src/neat/cache/core/cache.constants.ts +70 -0
- package/src/neat/cache/core/cache.core.ts +89 -0
- package/src/neat/compat/README.md +186 -0
- package/src/neat/compat/compat.ts +222 -0
- package/src/neat/compat/core/README.md +257 -0
- package/src/neat/{neat.compat.utils.ts → compat/core/compat.core.ts} +92 -102
- package/src/neat/compat/core/compat.types.ts +122 -0
- package/src/neat/diversity/README.md +160 -0
- package/src/neat/diversity/core/README.md +242 -0
- package/src/neat/diversity/core/diversity.core.ts +278 -0
- package/src/neat/diversity/core/diversity.types.ts +114 -0
- package/src/neat/diversity/diversity.ts +170 -0
- package/src/neat/evaluate/README.md +268 -0
- package/src/neat/evaluate/auto-distance/README.md +242 -0
- package/src/neat/evaluate/auto-distance/evaluate.auto-distance.ts +328 -0
- package/src/neat/evaluate/entropy-compat/README.md +128 -0
- package/src/neat/evaluate/entropy-compat/evaluate.entropy-compat.ts +163 -0
- package/src/neat/evaluate/entropy-sharing/README.md +147 -0
- package/src/neat/evaluate/entropy-sharing/evaluate.entropy-sharing.ts +179 -0
- package/src/neat/evaluate/evaluate.ts +158 -0
- package/src/neat/evaluate/fitness/README.md +90 -0
- package/src/neat/evaluate/fitness/evaluate.fitness.ts +104 -0
- package/src/neat/evaluate/novelty/README.md +281 -0
- package/src/neat/evaluate/novelty/evaluate.novelty.ts +348 -0
- package/src/neat/evaluate/objectives/README.md +112 -0
- package/src/neat/evaluate/objectives/evaluate.objectives.ts +121 -0
- package/src/neat/evaluate/shared/README.md +248 -0
- package/src/neat/evaluate/shared/evaluate.constants.ts +191 -0
- package/src/neat/{neat.evaluate.utils.types.ts → evaluate/shared/evaluate.types.ts} +112 -14
- package/src/neat/evaluate/speciation/README.md +138 -0
- package/src/neat/evaluate/speciation/evaluate.speciation.ts +144 -0
- package/src/neat/evolve/README.md +360 -0
- package/src/neat/evolve/adaptive/README.md +219 -0
- package/src/neat/evolve/adaptive/evolve.adaptive.utils.ts +324 -0
- package/src/neat/{neat.evolve.ts → evolve/evolve.ts} +204 -80
- package/src/neat/{neat.evolve.types.ts → evolve/evolve.types.ts} +92 -5
- package/src/neat/evolve/objectives/README.md +204 -0
- package/src/neat/{neat.evolve.objectives.utils.ts → evolve/objectives/evolve.objectives.utils.ts} +129 -24
- package/src/neat/evolve/offspring/README.md +145 -0
- package/src/neat/evolve/offspring/evolve.offspring.constants.ts +44 -0
- package/src/neat/evolve/offspring/evolve.offspring.utils.ts +163 -0
- package/src/neat/evolve/population/README.md +477 -0
- package/src/neat/{neat.evolve.population.utils.ts → evolve/population/evolve.population.utils.ts} +286 -44
- package/src/neat/evolve/runtime/README.md +188 -0
- package/src/neat/evolve/runtime/evolve.runtime.utils.ts +215 -0
- package/src/neat/evolve/speciation/README.md +227 -0
- package/src/neat/evolve/speciation/evolve.speciation.utils.ts +359 -0
- package/src/neat/evolve/telemetry/README.md +133 -0
- package/src/neat/evolve/telemetry/evolve.telemetry.utils.ts +143 -0
- package/src/neat/evolve/warnings/README.md +43 -0
- package/src/neat/evolve/warnings/evolve.warnings.utils.ts +48 -0
- package/src/neat/export/README.md +289 -0
- package/src/neat/{neat.export.ts → export/neat.export.ts} +127 -45
- package/src/neat/harness/README.md +136 -0
- package/src/neat/harness/neat.harness.types.ts +144 -0
- package/src/neat/helpers/README.md +232 -0
- package/src/neat/helpers/neat.helpers.ts +408 -0
- package/src/neat/init/README.md +140 -0
- package/src/neat/init/neat.init.ts +375 -0
- package/src/neat/lineage/README.md +141 -0
- package/src/neat/lineage/core/README.md +292 -0
- package/src/neat/lineage/core/lineage.core.ts +372 -0
- package/src/neat/lineage/core/lineage.types.ts +105 -0
- package/src/neat/lineage/lineage.ts +163 -0
- package/src/neat/maintenance/README.md +78 -0
- package/src/neat/maintenance/facade/README.md +143 -0
- package/src/neat/maintenance/facade/maintenance.facade.ts +168 -0
- package/src/neat/maintenance/maintenance.ts +80 -0
- package/src/neat/multiobjective/README.md +90 -0
- package/src/neat/multiobjective/archive/README.md +81 -0
- package/src/neat/multiobjective/archive/multiobjective.archive.ts +100 -0
- package/src/neat/multiobjective/category/README.md +208 -0
- package/src/neat/{neat.multiobjective.category.utils.ts → multiobjective/category/multiobjective.category.ts} +109 -18
- package/src/neat/multiobjective/crowding/README.md +516 -0
- package/src/neat/{neat.multiobjective.crowding.utils.ts → multiobjective/crowding/multiobjective.crowding.ts} +105 -3
- package/src/neat/multiobjective/dominance/README.md +426 -0
- package/src/neat/{neat.multiobjective.dominance.utils.ts → multiobjective/dominance/multiobjective.dominance.ts} +110 -4
- package/src/neat/multiobjective/fronts/README.md +222 -0
- package/src/neat/{neat.multiobjective.fronts.utils.ts → multiobjective/fronts/multiobjective.fronts.ts} +82 -4
- package/src/neat/multiobjective/metrics/README.md +140 -0
- package/src/neat/multiobjective/metrics/multiobjective.metrics.ts +153 -0
- package/src/neat/multiobjective/multiobjective.ts +140 -0
- package/src/neat/multiobjective/objectives/README.md +113 -0
- package/src/neat/{neat.multiobjective.objectives.utils.ts → multiobjective/objectives/multiobjective.objectives.ts} +42 -2
- package/src/neat/multiobjective/shared/README.md +85 -0
- package/src/neat/multiobjective/shared/multiobjective.types.ts +155 -0
- package/src/neat/mutation/README.md +282 -0
- package/src/neat/mutation/add-conn/README.md +271 -0
- package/src/neat/{neat.mutation.add-conn.utils.ts → mutation/add-conn/mutation.add-conn.ts} +87 -6
- package/src/neat/mutation/add-node/README.md +293 -0
- package/src/neat/{neat.mutation.add-node.utils.ts → mutation/add-node/mutation.add-node.ts} +97 -8
- package/src/neat/mutation/flow/README.md +379 -0
- package/src/neat/{neat.mutation.flow.utils.ts → mutation/flow/mutation.flow.ts} +147 -6
- package/src/neat/mutation/mutation.ts +482 -0
- package/src/neat/mutation/repair/README.md +497 -0
- package/src/neat/{neat.mutation.dead-ends.utils.ts → mutation/repair/mutation.dead-ends.ts} +75 -9
- package/src/neat/{neat.mutation.min-hidden.utils.ts → mutation/repair/mutation.min-hidden.ts} +73 -7
- package/src/neat/mutation/select/README.md +285 -0
- package/src/neat/{neat.mutation.select.utils.ts → mutation/select/mutation.select.ts} +102 -4
- package/src/neat/mutation/shared/README.md +109 -0
- package/src/neat/{neat.mutation.types.ts → mutation/shared/mutation.types.ts} +77 -4
- package/src/neat/neat.constants.ts +116 -7
- package/src/neat/neat.defaults.constants.ts +183 -0
- package/src/neat/neat.diversity.ts +5 -53
- package/src/neat/neat.lineage.ts +2 -134
- package/src/neat/neat.types.ts +59 -791
- package/src/neat/objectives/README.md +142 -0
- package/src/neat/objectives/core/README.md +288 -0
- package/src/neat/objectives/core/objectives.core.ts +273 -0
- package/src/neat/objectives/core/objectives.types.ts +63 -0
- package/src/neat/objectives/objectives.ts +175 -0
- package/src/neat/pruning/README.md +120 -0
- package/src/neat/pruning/core/README.md +420 -0
- package/src/neat/pruning/core/pruning.core.ts +410 -0
- package/src/neat/pruning/core/pruning.types.ts +104 -0
- package/src/neat/pruning/facade/README.md +121 -0
- package/src/neat/pruning/facade/pruning.facade.ts +124 -0
- package/src/neat/pruning/pruning.ts +192 -0
- package/src/neat/rng/README.md +323 -0
- package/src/neat/rng/core/README.md +503 -0
- package/src/neat/rng/core/rng.constants.ts +44 -0
- package/src/neat/rng/core/rng.core.ts +27 -0
- package/src/neat/rng/core/rng.types.ts +87 -0
- package/src/neat/rng/core/rng.utils.ts +238 -0
- package/src/neat/rng/facade/README.md +162 -0
- package/src/neat/rng/facade/rng.facade.ts +150 -0
- package/src/neat/rng/rng.ts +88 -0
- package/src/neat/selection/README.md +307 -0
- package/src/neat/selection/core/README.md +546 -0
- package/src/neat/selection/core/selection.core.ts +580 -0
- package/src/neat/selection/core/selection.types.ts +120 -0
- package/src/neat/selection/facade/README.md +180 -0
- package/src/neat/selection/facade/selection.facade.ts +177 -0
- package/src/neat/selection/selection.ts +255 -0
- package/src/neat/shared/README.md +361 -0
- package/src/neat/shared/neat.shared.types.ts +1120 -0
- package/src/neat/speciation/README.md +171 -0
- package/src/neat/speciation/assignment/README.md +274 -0
- package/src/neat/speciation/assignment/docs.order.json +12 -0
- package/src/neat/speciation/assignment/speciation.assignment.utils.ts +325 -0
- package/src/neat/speciation/history/README.md +254 -0
- package/src/neat/speciation/history/docs.order.json +12 -0
- package/src/neat/speciation/history/speciation.history.utils.ts +449 -0
- package/src/neat/speciation/shared/README.md +313 -0
- package/src/neat/speciation/shared/docs.order.json +31 -0
- package/src/neat/speciation/shared/speciation.shared.ts +393 -0
- package/src/neat/speciation/sharing/README.md +131 -0
- package/src/neat/speciation/sharing/speciation.sharing.utils.ts +287 -0
- package/src/neat/speciation/speciation.ts +243 -0
- package/src/neat/speciation/threshold/README.md +189 -0
- package/src/neat/speciation/threshold/speciation.threshold.utils.ts +310 -0
- package/src/neat/species/README.md +113 -0
- package/src/neat/species/core/README.md +92 -0
- package/src/neat/species/core/augmentation/README.md +60 -0
- package/src/neat/species/core/augmentation/species.core.augmentation.ts +109 -0
- package/src/neat/species/core/shared/README.md +92 -0
- package/src/neat/species/core/shared/species.core.shared.ts +154 -0
- package/src/neat/species/core/species.core.ts +92 -0
- package/src/neat/species/history/README.md +102 -0
- package/src/neat/species/history/context/README.md +86 -0
- package/src/neat/species/history/context/species.history.context.ts +112 -0
- package/src/neat/species/history/read/README.md +74 -0
- package/src/neat/species/history/read/species.history.read.ts +86 -0
- package/src/neat/species/history/species.history.ts +105 -0
- package/src/neat/species/species.ts +114 -0
- package/src/neat/species/stats/README.md +91 -0
- package/src/neat/species/stats/species.stats.ts +109 -0
- package/src/neat/telemetry/README.md +44 -0
- package/src/neat/telemetry/accessors/README.md +183 -0
- package/src/neat/telemetry/accessors/telemetry.accessors.ts +168 -0
- package/src/neat/telemetry/exports/README.md +600 -0
- package/src/neat/telemetry/exports/telemetry.exports.ts +549 -0
- package/src/neat/{neat.telemetry.exports.utils.ts → telemetry/exports/telemetry.exports.utils.ts} +76 -2
- package/src/neat/telemetry/facade/README.md +582 -0
- package/src/neat/telemetry/facade/archive/README.md +173 -0
- package/src/neat/telemetry/facade/archive/telemetry.facade.archive.ts +175 -0
- package/src/neat/telemetry/facade/buffer/README.md +141 -0
- package/src/neat/telemetry/facade/buffer/telemetry.facade.buffer.ts +132 -0
- package/src/neat/telemetry/facade/lineage/README.md +87 -0
- package/src/neat/telemetry/facade/lineage/telemetry.facade.lineage.ts +93 -0
- package/src/neat/telemetry/facade/novelty/README.md +79 -0
- package/src/neat/telemetry/facade/novelty/telemetry.facade.novelty.ts +70 -0
- package/src/neat/telemetry/facade/objectives/README.md +161 -0
- package/src/neat/telemetry/facade/objectives/telemetry.facade.objectives.ts +163 -0
- package/src/neat/telemetry/facade/operator-stats/README.md +62 -0
- package/src/neat/telemetry/facade/operator-stats/telemetry.facade.operator-stats.ts +63 -0
- package/src/neat/telemetry/facade/runtime/README.md +96 -0
- package/src/neat/telemetry/facade/runtime/telemetry.facade.runtime.ts +104 -0
- package/src/neat/telemetry/facade/species/README.md +165 -0
- package/src/neat/telemetry/facade/species/telemetry.facade.species.ts +171 -0
- package/src/neat/telemetry/facade/telemetry.facade.ts +555 -0
- package/src/neat/telemetry/metrics/README.md +1717 -0
- package/src/neat/{neat.telemetry.complexity.utils.ts → telemetry/metrics/telemetry.metrics.complexity.ts} +5 -2
- package/src/neat/{neat.telemetry.diversity.utils.ts → telemetry/metrics/telemetry.metrics.diversity.ts} +2 -2
- package/src/neat/{neat.telemetry.entropy.utils.ts → telemetry/metrics/telemetry.metrics.entropy.ts} +1 -1
- package/src/neat/{neat.telemetry.lineage.utils.ts → telemetry/metrics/telemetry.metrics.lineage.ts} +4 -4
- package/src/neat/{neat.telemetry.objectives.utils.ts → telemetry/metrics/telemetry.metrics.objectives.ts} +3 -3
- package/src/neat/{neat.telemetry.operator.utils.ts → telemetry/metrics/telemetry.metrics.operator.ts} +4 -1
- package/src/neat/{neat.telemetry.performance.utils.ts → telemetry/metrics/telemetry.metrics.performance.ts} +2 -2
- package/src/neat/{neat.telemetry.rng.utils.ts → telemetry/metrics/telemetry.metrics.rng.ts} +2 -2
- package/src/neat/{neat.telemetry.selection.utils.ts → telemetry/metrics/telemetry.metrics.selection.ts} +3 -3
- package/src/neat/telemetry/metrics/telemetry.metrics.ts +60 -0
- package/src/neat/telemetry/recorder/README.md +220 -0
- package/src/neat/{neat.telemetry.ts → telemetry/recorder/telemetry.recorder.ts} +91 -30
- package/src/neat/telemetry/runtime/README.md +106 -0
- package/src/neat/telemetry/runtime/telemetry.runtime.ts +119 -0
- package/src/neat/telemetry/telemetry.ts +46 -0
- package/src/neat/telemetry/types/README.md +85 -0
- package/src/neat/telemetry/types/telemetry.types.ts +121 -0
- package/src/neat/topology-intent/README.md +225 -0
- package/src/neat/topology-intent/neat.topology-intent.ts +305 -0
- package/src/neat.ts +710 -405
- package/src/utils/README.md +367 -114
- package/src/utils/memory.ts +74 -10
- package/src/utils/memory.utils.ts +77 -4
- package/test/architecture/node.test.ts +2 -2
- package/test/examples/README.md +168 -0
- package/test/examples/asciiMaze/README.md +263 -253
- package/test/examples/asciiMaze/asciiMaze.e2e.test.ts +4 -3
- package/test/examples/asciiMaze/browser-entry/README.md +316 -57
- package/test/examples/asciiMaze/browser-entry/browser-entry.globals.services.ts +7 -4
- package/test/examples/asciiMaze/browser-entry/browser-entry.host.services.ts +1 -1
- package/test/examples/asciiMaze/browser-entry/browser-entry.ts +16 -0
- package/test/examples/asciiMaze/browser-entry.ts +5 -0
- package/test/examples/asciiMaze/dashboardManager/README.md +182 -101
- package/test/examples/asciiMaze/dashboardManager/archive/README.md +25 -1
- package/test/examples/asciiMaze/dashboardManager/archive/dashboardManager.archive.services.ts +17 -0
- package/test/examples/asciiMaze/dashboardManager/dashboardManager.types.ts +1 -1
- package/test/examples/asciiMaze/dashboardManager/live/README.md +28 -1
- package/test/examples/asciiMaze/dashboardManager/live/dashboardManager.live.services.ts +22 -0
- package/test/examples/asciiMaze/dashboardManager/telemetry/README.md +60 -21
- package/test/examples/asciiMaze/dashboardManager/telemetry/dashboardManager.telemetry.services.ts +20 -0
- package/test/examples/asciiMaze/evolutionEngine/README.md +3471 -567
- package/test/examples/asciiMaze/evolutionEngine/engineState.types.ts +10 -3
- package/test/examples/asciiMaze/evolutionEngine/evolutionEngine.constants.ts +95 -0
- package/test/examples/asciiMaze/evolutionEngine/evolutionEngine.services.ts +93 -0
- package/test/examples/asciiMaze/evolutionEngine/evolutionEngine.types.ts +74 -5
- package/test/examples/asciiMaze/evolutionEngine/evolutionEngine.utils.ts +123 -0
- package/test/examples/asciiMaze/evolutionEngine/evolutionLoop.ts +58 -86
- package/test/examples/asciiMaze/evolutionEngine/neatConfiguration.ts +29 -17
- package/test/examples/asciiMaze/evolutionEngine/networkInspection.ts +19 -38
- package/test/examples/asciiMaze/evolutionEngine/optionsAndSetup.ts +96 -36
- package/test/examples/asciiMaze/evolutionEngine/populationDynamics.ts +194 -180
- package/test/examples/asciiMaze/evolutionEngine/populationPruning.ts +47 -54
- package/test/examples/asciiMaze/evolutionEngine/sampling.ts +18 -3
- package/test/examples/asciiMaze/evolutionEngine/telemetryMetrics.ts +24 -17
- package/test/examples/asciiMaze/evolutionEngine/trainingWarmStart.ts +83 -52
- package/test/examples/asciiMaze/evolutionEngine.ts +119 -231
- package/test/examples/asciiMaze/index.ts +30 -7
- package/test/examples/asciiMaze/mazeMovement/README.md +221 -108
- package/test/examples/asciiMaze/mazeMovement/finalization/README.md +44 -17
- package/test/examples/asciiMaze/mazeMovement/finalization/mazeMovement.finalization.ts +13 -1
- package/test/examples/asciiMaze/mazeMovement/policy/README.md +98 -46
- package/test/examples/asciiMaze/mazeMovement/policy/mazeMovement.policy.ts +13 -2
- package/test/examples/asciiMaze/mazeMovement/runtime/README.md +93 -43
- package/test/examples/asciiMaze/mazeMovement/runtime/mazeMovement.runtime.ts +13 -2
- package/test/examples/asciiMaze/mazeMovement/shaping/README.md +115 -44
- package/test/examples/asciiMaze/mazeMovement/shaping/mazeMovement.shaping.ts +13 -2
- package/test/examples/asciiMaze/mazeVisualization.ts +2 -2
- package/test/examples/flappy_bird/README.md +265 -95
- package/test/examples/flappy_bird/browser-entry/README.md +1035 -385
- package/test/examples/flappy_bird/browser-entry/browser-entry.network-view.utils.ts +6 -0
- package/test/examples/flappy_bird/browser-entry/browser-entry.observation.utils.ts +0 -1
- package/test/examples/flappy_bird/browser-entry/browser-entry.playback.utils.ts +8 -0
- package/test/examples/flappy_bird/browser-entry/browser-entry.render.types.ts +26 -3
- package/test/examples/flappy_bird/browser-entry/browser-entry.runtime.types.ts +16 -1
- package/test/examples/flappy_bird/browser-entry/browser-entry.simulation.types.ts +39 -5
- package/test/examples/flappy_bird/browser-entry/browser-entry.stats.types.ts +32 -4
- package/test/examples/flappy_bird/browser-entry/browser-entry.ts +35 -0
- package/test/examples/flappy_bird/browser-entry/browser-entry.types.ts +28 -0
- package/test/examples/flappy_bird/browser-entry/browser-entry.visualization.types.ts +50 -7
- package/test/examples/flappy_bird/browser-entry/browser-entry.visualization.utils.ts +6 -0
- package/test/examples/flappy_bird/browser-entry/browser-entry.worker.types.ts +92 -10
- package/test/examples/flappy_bird/browser-entry/docs.order.json +15 -0
- package/test/examples/flappy_bird/browser-entry/host/README.md +294 -121
- package/test/examples/flappy_bird/browser-entry/host/docs.order.json +15 -0
- package/test/examples/flappy_bird/browser-entry/host/host.canvas.service.ts +16 -0
- package/test/examples/flappy_bird/browser-entry/host/host.constants.ts +20 -0
- package/test/examples/flappy_bird/browser-entry/host/host.dom.service.ts +10 -0
- package/test/examples/flappy_bird/browser-entry/host/host.stats.service.ts +14 -0
- package/test/examples/flappy_bird/browser-entry/host/host.ts +34 -0
- package/test/examples/flappy_bird/browser-entry/host/host.types.ts +13 -0
- package/test/examples/flappy_bird/browser-entry/host/resize/README.md +310 -116
- package/test/examples/flappy_bird/browser-entry/host/resize/docs.order.json +10 -0
- package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.constants.ts +16 -0
- package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.services.ts +32 -0
- package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.ts +30 -0
- package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.types.ts +29 -0
- package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.utils.ts +22 -0
- package/test/examples/flappy_bird/browser-entry/network-view/README.md +392 -191
- package/test/examples/flappy_bird/browser-entry/network-view/docs.order.json +12 -0
- package/test/examples/flappy_bird/browser-entry/network-view/network-view.draw.service.ts +13 -0
- package/test/examples/flappy_bird/browser-entry/network-view/network-view.labels.utils.ts +12 -0
- package/test/examples/flappy_bird/browser-entry/network-view/network-view.layout.utils.ts +14 -0
- package/test/examples/flappy_bird/browser-entry/network-view/network-view.topology.utils.ts +12 -0
- package/test/examples/flappy_bird/browser-entry/network-view/network-view.ts +43 -44
- package/test/examples/flappy_bird/browser-entry/network-view/network-view.types.ts +11 -0
- package/test/examples/flappy_bird/browser-entry/playback/README.md +850 -295
- package/test/examples/flappy_bird/browser-entry/playback/background/README.md +387 -102
- package/test/examples/flappy_bird/browser-entry/playback/background/docs.order.json +16 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/README.md +1071 -335
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/docs.order.json +22 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.batch.services.ts +64 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.cache.services.ts +30 -1
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.constants.ts +121 -31
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.geometry.batch.utils.ts +114 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.geometry.layout.utils.test.ts +96 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.geometry.layout.utils.ts +204 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.geometry.services.ts +49 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.geometry.utils.ts +38 -246
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.layer.services.ts +81 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.math.utils.test.ts +33 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.math.utils.ts +84 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.pulse.selection.utils.ts +171 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.pulse.timing.utils.ts +124 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.pulse.utils.test.ts +279 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.pulse.utils.ts +45 -148
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.scene.services.ts +26 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.services.ts +14 -163
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.ts +16 -3
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types.ts +138 -8
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.utils.ts +2 -73
- package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.constants.ts +77 -12
- package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.draw.services.ts +184 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.scene.services.ts +64 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.services.ts +6 -244
- package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.ts +16 -4
- package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.types.ts +39 -2
- package/test/examples/flappy_bird/browser-entry/playback/docs.order.json +23 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/README.md +654 -82
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/docs.order.json +14 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.bird.utils.ts +180 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.canvas.services.ts +77 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.entity.services.ts +167 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.scene.services.ts +57 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.service.test.ts +176 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.service.ts +40 -7
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.services.ts +12 -272
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.trail.utils.ts +248 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types.ts +64 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.utils.ts +11 -493
- package/test/examples/flappy_bird/browser-entry/playback/playback.frame-render.service.ts +6 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.iteration.services.test.ts +136 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.iteration.services.ts +256 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.loop.service.ts +12 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.orchestration.types.ts +90 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.render.pipe-outline.service.ts +128 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.render.service.ts +1 -116
- package/test/examples/flappy_bird/browser-entry/playback/playback.session.services.ts +185 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.snapshot.utils.test.ts +121 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.snapshot.utils.ts +5 -41
- package/test/examples/flappy_bird/browser-entry/playback/playback.starfield.layer.services.ts +36 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.starfield.service.ts +2 -36
- package/test/examples/flappy_bird/browser-entry/playback/playback.starfield.services.ts +7 -11
- package/test/examples/flappy_bird/browser-entry/playback/playback.starfield.types.ts +30 -1
- package/test/examples/flappy_bird/browser-entry/playback/playback.trail.utils.ts +9 -86
- package/test/examples/flappy_bird/browser-entry/playback/playback.ts +47 -363
- package/test/examples/flappy_bird/browser-entry/playback/playback.types.ts +11 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.worker-channel.utils.ts +11 -123
- package/test/examples/flappy_bird/browser-entry/playback/snapshot/README.md +114 -0
- package/test/examples/flappy_bird/browser-entry/playback/snapshot/docs.order.json +7 -0
- package/test/examples/flappy_bird/browser-entry/playback/snapshot/playback.snapshot.services.ts +121 -0
- package/test/examples/flappy_bird/browser-entry/playback/snapshot/playback.snapshot.summary.utils.test.ts +45 -0
- package/test/examples/flappy_bird/browser-entry/playback/snapshot/playback.snapshot.summary.utils.ts +28 -0
- package/test/examples/flappy_bird/browser-entry/playback/trail/README.md +163 -0
- package/test/examples/flappy_bird/browser-entry/playback/trail/docs.order.json +7 -0
- package/test/examples/flappy_bird/browser-entry/playback/trail/playback.trail.history.services.test.ts +35 -0
- package/test/examples/flappy_bird/browser-entry/playback/trail/playback.trail.history.services.ts +76 -0
- package/test/examples/flappy_bird/browser-entry/playback/trail/playback.trail.opacity.utils.test.ts +37 -0
- package/test/examples/flappy_bird/browser-entry/playback/trail/playback.trail.opacity.utils.ts +95 -0
- package/test/examples/flappy_bird/browser-entry/playback/worker-channel/README.md +128 -0
- package/test/examples/flappy_bird/browser-entry/playback/worker-channel/docs.order.json +8 -0
- package/test/examples/flappy_bird/browser-entry/playback/worker-channel/playback.worker-channel.request.services.ts +45 -0
- package/test/examples/flappy_bird/browser-entry/playback/worker-channel/playback.worker-channel.summary.services.ts +74 -0
- package/test/examples/flappy_bird/browser-entry/playback/worker-channel/playback.worker-channel.types.ts +61 -0
- package/test/examples/flappy_bird/browser-entry/runtime/README.md +317 -78
- package/test/examples/flappy_bird/browser-entry/runtime/docs.order.json +14 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.browser-globals.service.ts +15 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.errors.ts +17 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.evolution-launch.service.ts +11 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.evolution-loop.service.ts +71 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.lifecycle.service.ts +15 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.startup.service.ts +18 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.telemetry.service.ts +24 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.ts +19 -6
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.types.ts +29 -0
- package/test/examples/flappy_bird/browser-entry/visualization/README.md +538 -232
- package/test/examples/flappy_bird/browser-entry/visualization/docs.order.json +13 -0
- package/test/examples/flappy_bird/browser-entry/visualization/visualization.colors.utils.ts +26 -0
- package/test/examples/flappy_bird/browser-entry/visualization/visualization.draw.service.ts +22 -0
- package/test/examples/flappy_bird/browser-entry/visualization/visualization.legend.utils.ts +19 -0
- package/test/examples/flappy_bird/browser-entry/visualization/visualization.topology.utils.ts +10 -0
- package/test/examples/flappy_bird/browser-entry/visualization/visualization.ts +19 -0
- package/test/examples/flappy_bird/browser-entry/visualization/visualization.types.ts +18 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/README.md +225 -64
- package/test/examples/flappy_bird/browser-entry/worker-channel/docs.order.json +12 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.errors.ts +11 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.generation.service.ts +12 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.playback.service.test.ts +143 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.playback.service.ts +140 -14
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.request.service.ts +27 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.ts +14 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.types.ts +23 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.url.service.ts +5 -0
- package/test/examples/flappy_bird/constants/README.md +1860 -584
- package/test/examples/flappy_bird/constants/constants.birds.ts +16 -38
- package/test/examples/flappy_bird/constants/constants.difficulty.ts +21 -0
- package/test/examples/flappy_bird/constants/constants.network.ts +1 -1
- package/test/examples/flappy_bird/constants/constants.observation.ts +7 -0
- package/test/examples/flappy_bird/constants/constants.palette.ts +4 -4
- package/test/examples/flappy_bird/constants/constants.physics.ts +9 -0
- package/test/examples/flappy_bird/constants/constants.pipe-render.ts +3 -0
- package/test/examples/flappy_bird/constants/constants.pipes.ts +22 -3
- package/test/examples/flappy_bird/constants/constants.runtime.ts +29 -5
- package/test/examples/flappy_bird/constants/constants.ts +36 -0
- package/test/examples/flappy_bird/constants/docs.order.json +23 -0
- package/test/examples/flappy_bird/environment/README.md +160 -48
- package/test/examples/flappy_bird/environment/docs.order.json +11 -0
- package/test/examples/flappy_bird/environment/environment.collision.utils.ts +7 -0
- package/test/examples/flappy_bird/environment/environment.constants.ts +16 -3
- package/test/examples/flappy_bird/environment/environment.observation.utils.ts +11 -0
- package/test/examples/flappy_bird/environment/environment.state.service.ts +10 -0
- package/test/examples/flappy_bird/environment/environment.step.service.ts +12 -1
- package/test/examples/flappy_bird/environment/environment.types.ts +30 -0
- package/test/examples/flappy_bird/evaluation/README.md +175 -41
- package/test/examples/flappy_bird/evaluation/docs.order.json +13 -0
- package/test/examples/flappy_bird/evaluation/evaluation.constants.ts +23 -4
- package/test/examples/flappy_bird/evaluation/evaluation.fitness.utils.ts +15 -0
- package/test/examples/flappy_bird/evaluation/evaluation.rollout.service.ts +11 -0
- package/test/examples/flappy_bird/evaluation/evaluation.seed.utils.ts +4 -0
- package/test/examples/flappy_bird/evaluation/evaluation.types.ts +37 -2
- package/test/examples/flappy_bird/evaluation/rollout/README.md +347 -133
- package/test/examples/flappy_bird/evaluation/rollout/docs.order.json +10 -0
- package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.constants.ts +12 -3
- package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.service.ts +32 -0
- package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.services.ts +51 -2
- package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.types.ts +19 -2
- package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.utils.ts +34 -2
- package/test/examples/flappy_bird/flappy-evolution-worker/README.md +1015 -275
- package/test/examples/flappy_bird/flappy-evolution-worker/docs.order.json +18 -0
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.constants.ts +91 -7
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.errors.ts +34 -3
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.evolution.service.test.ts +50 -0
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.evolution.service.ts +27 -0
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.playback.service.ts +55 -19
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.protocol.service.ts +27 -1
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.runtime.service.ts +23 -0
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.simulation.frame.service.ts +15 -1
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.simulation.types.ts +9 -1
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.simulation.utils.ts +17 -3
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.snapshot.utils.test.ts +94 -0
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.snapshot.utils.ts +78 -13
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.ts +74 -4
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.types.ts +171 -22
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.warm-start.service.test.ts +71 -0
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.warm-start.service.ts +302 -22
- package/test/examples/flappy_bird/flappy.simulation.shared.utils.ts +12 -0
- package/test/examples/flappy_bird/flappyEnvironment.ts +21 -0
- package/test/examples/flappy_bird/flappyEvaluation.ts +12 -0
- package/test/examples/flappy_bird/flappyEvolution.worker.ts +7 -0
- package/test/examples/flappy_bird/index.ts +23 -2
- package/test/examples/flappy_bird/rng.ts +10 -0
- package/test/examples/flappy_bird/simulation-shared/README.md +443 -182
- package/test/examples/flappy_bird/simulation-shared/docs.order.json +18 -0
- package/test/examples/flappy_bird/simulation-shared/observation/README.md +265 -67
- package/test/examples/flappy_bird/simulation-shared/observation/docs.order.json +8 -0
- package/test/examples/flappy_bird/simulation-shared/observation/observation.features.utils.ts +38 -0
- package/test/examples/flappy_bird/simulation-shared/observation/observation.ts +10 -0
- package/test/examples/flappy_bird/simulation-shared/observation/observation.vector.utils.ts +22 -0
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.constants.ts +3 -0
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.control.utils.ts +6 -0
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.difficulty.utils.ts +9 -0
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.errors.ts +10 -1
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.memory.utils.ts +18 -0
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.observation.utils.ts +3 -0
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.spawn.utils.ts +16 -0
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.statistics.utils.ts +7 -1
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.types.ts +53 -5
- package/test/examples/flappy_bird/trainFlappyBird.ts +13 -0
- package/test/examples/flappy_bird/trainer/README.md +988 -157
- package/test/examples/flappy_bird/trainer/evaluation/README.md +212 -49
- package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.constants.ts +6 -0
- package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.services.ts +13 -0
- package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.ts +41 -1
- package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.types.ts +7 -0
- package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.utils.ts +21 -0
- package/test/examples/flappy_bird/trainer/trainer.constants.ts +278 -33
- package/test/examples/flappy_bird/trainer/trainer.errors.ts +12 -0
- package/test/examples/flappy_bird/trainer/trainer.evaluation-plan.utils.ts +60 -0
- package/test/examples/flappy_bird/trainer/trainer.evaluation.service.ts +12 -0
- package/test/examples/flappy_bird/trainer/trainer.fitness.service.ts +43 -1
- package/test/examples/flappy_bird/trainer/trainer.loop.service.ts +36 -1
- package/test/examples/flappy_bird/trainer/trainer.report.service.services.ts +10 -1
- package/test/examples/flappy_bird/trainer/trainer.report.service.ts +18 -1
- package/test/examples/flappy_bird/trainer/trainer.reporting.utils.ts +11 -0
- package/test/examples/flappy_bird/trainer/trainer.selection.utils.ts +11 -0
- package/test/examples/flappy_bird/trainer/trainer.setup.service.ts +31 -0
- package/test/examples/flappy_bird/trainer/trainer.signals.service.ts +17 -0
- package/test/examples/flappy_bird/trainer/trainer.ts +88 -8
- package/test/examples/flappy_bird/trainer/trainer.types.ts +79 -7
- package/test/methods/activation.test.ts +1 -1
- package/test/methods/connection.test.ts +1 -1
- package/test/methods/cost.test.ts +1 -1
- package/test/methods/crossover.test.ts +1 -1
- package/test/methods/gating.test.ts +1 -1
- package/test/methods/mutation.test.ts +2 -2
- package/test/methods/rate.cosineWarmRestarts.test.ts +1 -1
- package/test/methods/rate.linearWarmupDecay.test.ts +1 -1
- package/test/methods/rate.reduceOnPlateau.test.ts +1 -1
- package/test/methods/rate.test.ts +1 -1
- package/test/methods/selection.test.ts +1 -1
- package/test/neat/neat.adaptive.ancestorUniq.cooldown.test.ts +3 -3
- package/test/neat/neat.adaptive.ancestorUniq.epsilon.test.ts +7 -7
- package/test/neat/neat.adaptive.ancestorUniq.lineagePressure.test.ts +7 -7
- package/test/neat/neat.adaptive.complexityBudget.connShrink.test.ts +2 -2
- package/test/neat/neat.adaptive.complexityBudget.growth.novelty.test.ts +2 -2
- package/test/neat/neat.adaptive.complexityBudget.minClamp.test.ts +2 -2
- package/test/neat/neat.adaptive.complexityBudget.test.ts +1 -1
- package/test/neat/neat.adaptive.complexityBudget.trend.test.ts +2 -2
- package/test/neat/neat.adaptive.minimalCriterion.rejection.test.ts +2 -2
- package/test/neat/neat.adaptive.mutation.amount.adapt.test.ts +3 -3
- package/test/neat/neat.adaptive.mutation.anneal.strategy.test.ts +3 -3
- package/test/neat/neat.adaptive.mutation.exploreLow.strategy.test.ts +3 -3
- package/test/neat/neat.adaptive.mutation.twotier.balance.test.ts +3 -3
- package/test/neat/neat.adaptive.mutation.twotier.fallback.single.test.ts +3 -3
- package/test/neat/neat.adaptive.operator.adaptation.decay.balance.test.ts +3 -3
- package/test/neat/neat.adaptive.operator.bandit.decay.test.ts +3 -3
- package/test/neat/neat.adaptive.phasedComplexity.toggle.test.ts +2 -2
- package/test/neat/neat.additional.coverage.test.ts +1 -1
- package/test/neat/neat.export.meta.fromjson.test.ts +1 -1
- package/test/neat/neat.export.state.rehydrate.test.ts +4 -3
- package/test/neat/neat.helpers.spawn.pool.test.ts +1 -1
- package/test/neat/neat.lineage.entropy.test.ts +1 -1
- package/test/neat/neat.lineage.inbreeding.test.ts +1 -1
- package/test/neat/neat.mutation.addconn.cycle.guard.test.ts +1 -1
- package/test/neat/neat.mutation.undefined.pool.test.ts +1 -1
- package/test/neat/neat.operator.phases.test.ts +1 -1
- package/test/neat/neat.spawn.add.test.ts +1 -1
- package/test/neat/neat.speciation.age.penalty.test.ts +2 -2
- package/test/neat/neat.speciation.assign.existing.test.ts +2 -2
- package/test/neat/neat.speciation.auto.tuning.jitter.test.ts +2 -2
- package/test/neat/neat.speciation.create.newSpecies.test.ts +2 -2
- package/test/neat/neat.speciation.fitnessSharing.equal.test.ts +5 -2
- package/test/neat/neat.speciation.fitnessSharing.kernel.test.ts +5 -2
- package/test/neat/neat.speciation.pid.threshold.clip.max.test.ts +2 -2
- package/test/neat/neat.speciation.pid.threshold.clip.min.test.ts +2 -2
- package/test/neat/neat.speciation.stagnation.prune.test.ts +5 -2
- package/test/neat/neat.species.history.fallbacks.test.ts +2 -2
- package/test/neat/neat.telemetry.advanced.test.ts +1 -1
- package/test/neat/neat.telemetry.fastmode.diversity.test.ts +5 -2
- package/test/neat/neat.telemetry.objective.events.test.ts +2 -2
- package/test/neat/neat.telemetry.select.entropy.cache.test.ts +1 -1
- package/test/neat/neat.topology-intent.test.ts +129 -0
- package/test/network/network.deterministic.test.ts +0 -2
- package/test/network/network.evolve.multithread.branches.test.ts +0 -2
- package/test/network/network.gating.removal.test.ts +1 -1
- package/test/network/network.mutate.additional.test.ts +1 -1
- package/test/network/network.mutate.edgecases.test.ts +1 -1
- package/test/network/network.mutate.test.ts +1 -1
- package/test/network/network.topology-intent.test.ts +44 -0
- package/test/network/structure.serialization.test.ts +60 -98
- package/test/utils/test-helpers.ts +1 -1
- package/plans/asciiMaze_SOLID_split.done.md +0 -130
- package/plans/flappy_bird_SOLID_split.done.md +0 -67
- package/src/methods/connection.ts +0 -31
- package/src/methods/gating.ts +0 -43
- package/src/neat/neat.adaptive.utils.ts +0 -7
- package/src/neat/neat.cache.ts +0 -1
- package/src/neat/neat.cache.utils.ts +0 -12
- package/src/neat/neat.compat.ts +0 -103
- package/src/neat/neat.diversity.utils.ts +0 -359
- package/src/neat/neat.evaluate.auto-distance.utils.ts +0 -210
- package/src/neat/neat.evaluate.constants.utils.ts +0 -42
- package/src/neat/neat.evaluate.entropy-compat.utils.ts +0 -67
- package/src/neat/neat.evaluate.entropy-sharing.utils.ts +0 -78
- package/src/neat/neat.evaluate.fitness.utils.ts +0 -48
- package/src/neat/neat.evaluate.novelty.utils.ts +0 -225
- package/src/neat/neat.evaluate.objectives.utils.ts +0 -50
- package/src/neat/neat.evaluate.speciation.utils.ts +0 -35
- package/src/neat/neat.evaluate.ts +0 -90
- package/src/neat/neat.evaluate.utils.ts +0 -9
- package/src/neat/neat.evolve.adaptive.utils.ts +0 -224
- package/src/neat/neat.evolve.offspring.constants.ts +0 -8
- package/src/neat/neat.evolve.offspring.utils.ts +0 -107
- package/src/neat/neat.evolve.runtime.utils.ts +0 -128
- package/src/neat/neat.evolve.speciation.utils.ts +0 -251
- package/src/neat/neat.evolve.telemetry.utils.ts +0 -39
- package/src/neat/neat.evolve.utils.ts +0 -10
- package/src/neat/neat.evolve.warnings.utils.ts +0 -14
- package/src/neat/neat.harness.types.ts +0 -35
- package/src/neat/neat.helpers.ts +0 -300
- package/src/neat/neat.lineage.utils.ts +0 -387
- package/src/neat/neat.multiobjective.archive.utils.ts +0 -59
- package/src/neat/neat.multiobjective.metrics.utils.ts +0 -65
- package/src/neat/neat.multiobjective.ts +0 -93
- package/src/neat/neat.multiobjective.utils.ts +0 -10
- package/src/neat/neat.multiobjective.utils.types.ts +0 -112
- package/src/neat/neat.mutation.ts +0 -335
- package/src/neat/neat.mutation.utils.ts +0 -6
- package/src/neat/neat.novelty.utils.ts +0 -17
- package/src/neat/neat.objectives.ts +0 -133
- package/src/neat/neat.objectives.utils.ts +0 -195
- package/src/neat/neat.pruning.ts +0 -129
- package/src/neat/neat.pruning.utils.ts +0 -375
- package/src/neat/neat.rng.constants.ts +0 -18
- package/src/neat/neat.rng.ts +0 -2
- package/src/neat/neat.rng.utils.ts +0 -158
- package/src/neat/neat.selection.ts +0 -142
- package/src/neat/neat.selection.utils.ts +0 -470
- package/src/neat/neat.speciation.ts +0 -136
- package/src/neat/neat.speciation.utils.ts +0 -926
- package/src/neat/neat.species.history.utils.ts +0 -13
- package/src/neat/neat.species.ts +0 -114
- package/src/neat/neat.species.utils.ts +0 -156
- package/src/neat/neat.telemetry.accessors.utils.ts +0 -71
- package/src/neat/neat.telemetry.buffer.utils.ts +0 -58
- package/src/neat/neat.telemetry.exports.ts +0 -452
- package/src/neat/neat.telemetry.types.ts +0 -51
- package/src/neat/neat.telemetry.utils.ts +0 -12
- package/srcLint.md +0 -185
- package/test/benchmarks/asciiMaze.micro.bench.ts +0 -0
- package/test/examples/flappy_bird/Trace-20260309T191949.json +0 -24124
|
@@ -98,6 +98,13 @@ export const createNeat = (
|
|
|
98
98
|
fitnessCallback: (net: Network) => number,
|
|
99
99
|
cfg?: NeatConfig,
|
|
100
100
|
): Neat => {
|
|
101
|
+
const NeatNetworkConstructor = Neat as unknown as new (
|
|
102
|
+
input: number,
|
|
103
|
+
output: number,
|
|
104
|
+
fitness: (network: Network) => unknown,
|
|
105
|
+
options: NeatConfig,
|
|
106
|
+
) => Neat;
|
|
107
|
+
|
|
101
108
|
// Default constants (extracted from EvolutionEngine static fields)
|
|
102
109
|
const DEFAULT_POPSIZE = 150;
|
|
103
110
|
const DEFAULT_ELITISM_FRACTION = 0.05;
|
|
@@ -162,23 +169,28 @@ export const createNeat = (
|
|
|
162
169
|
};
|
|
163
170
|
|
|
164
171
|
// Step 4: Instantiate the Neat driver with the assembled options.
|
|
165
|
-
const neatInstance = new
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
172
|
+
const neatInstance = new NeatNetworkConstructor(
|
|
173
|
+
inputCount,
|
|
174
|
+
outputCount,
|
|
175
|
+
fitnessCallback,
|
|
176
|
+
{
|
|
177
|
+
popsize: popSize,
|
|
178
|
+
mutation: mutationOps,
|
|
179
|
+
mutationRate: DEFAULT_MUTATION_RATE,
|
|
180
|
+
mutationAmount: DEFAULT_MUTATION_AMOUNT,
|
|
181
|
+
elitism,
|
|
182
|
+
provenance,
|
|
183
|
+
allowRecurrent,
|
|
184
|
+
minHidden: DEFAULT_MIN_HIDDEN,
|
|
185
|
+
adaptiveMutation,
|
|
186
|
+
multiObjective,
|
|
187
|
+
telemetry,
|
|
188
|
+
lineageTracking,
|
|
189
|
+
novelty,
|
|
190
|
+
targetSpecies,
|
|
191
|
+
adaptiveTargetSpecies,
|
|
192
|
+
},
|
|
193
|
+
);
|
|
182
194
|
|
|
183
195
|
return neatInstance;
|
|
184
196
|
};
|
|
@@ -25,8 +25,18 @@
|
|
|
25
25
|
|
|
26
26
|
import type { INetwork } from '../interfaces';
|
|
27
27
|
import type { EngineState } from './engineState';
|
|
28
|
+
import type { NetworkConnection, NetworkNode } from './evolutionEngine.types';
|
|
28
29
|
import { ensureConnFlagsCapacity } from './scratchPools';
|
|
29
30
|
|
|
31
|
+
interface ClassifiedNodeBuckets {
|
|
32
|
+
nodeList: NetworkNode[];
|
|
33
|
+
inputNodes: NetworkNode[];
|
|
34
|
+
hiddenNodes: NetworkNode[];
|
|
35
|
+
outputNodes: NetworkNode[];
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
type NodeBucketPool = [NetworkNode[], NetworkNode[], NetworkNode[]];
|
|
39
|
+
|
|
30
40
|
/**
|
|
31
41
|
* Utility to explicitly mark swallowed errors for lint compliance.
|
|
32
42
|
*
|
|
@@ -61,9 +71,7 @@ export const swallowError = (error: unknown): void => {
|
|
|
61
71
|
* @param network - Network-like object with an optional `nodes` array.
|
|
62
72
|
* @returns Safe array reference (network.nodes or empty array).
|
|
63
73
|
*/
|
|
64
|
-
|
|
65
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
66
|
-
const normalizeNodesArray = (network: INetwork): any[] => {
|
|
74
|
+
const normalizeNodesArray = (network: INetwork): NetworkNode[] => {
|
|
67
75
|
return Array.isArray(network?.nodes) ? network.nodes : [];
|
|
68
76
|
};
|
|
69
77
|
|
|
@@ -95,29 +103,16 @@ const normalizeNodesArray = (network: INetwork): any[] => {
|
|
|
95
103
|
*/
|
|
96
104
|
const classifyNodesFromArray = (
|
|
97
105
|
engineState: EngineState,
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
nodesArray: any[],
|
|
101
|
-
): {
|
|
102
|
-
// Type assertion: Network nodes are dynamically typed structures with variable properties
|
|
103
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
104
|
-
nodeList: any[];
|
|
105
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
106
|
-
inputNodes: any[];
|
|
107
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
108
|
-
hiddenNodes: any[];
|
|
109
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
110
|
-
outputNodes: any[];
|
|
111
|
-
} => {
|
|
106
|
+
nodesArray: NetworkNode[],
|
|
107
|
+
): ClassifiedNodeBuckets => {
|
|
112
108
|
// Step 1: Normalise the incoming node list to a safe, non-null array reference.
|
|
113
|
-
|
|
114
|
-
const nodeList: any[] = Array.isArray(nodesArray) ? nodesArray : [];
|
|
109
|
+
const nodeList: NetworkNode[] = Array.isArray(nodesArray) ? nodesArray : [];
|
|
115
110
|
|
|
116
111
|
// Step 2: Lazily create / reuse the pooled buckets structure on the state.
|
|
117
112
|
const scratchBundle = engineState.scratch;
|
|
118
|
-
let pooledBuckets = scratchBundle.nodeBuckets;
|
|
113
|
+
let pooledBuckets = scratchBundle.nodeBuckets as NodeBucketPool | undefined;
|
|
119
114
|
if (!Array.isArray(pooledBuckets?.[0])) {
|
|
120
|
-
pooledBuckets = scratchBundle.nodeBuckets = [[], [], []];
|
|
115
|
+
pooledBuckets = scratchBundle.nodeBuckets = [[], [], []] as NodeBucketPool;
|
|
121
116
|
}
|
|
122
117
|
|
|
123
118
|
// Descriptive bucket aliases for readability.
|
|
@@ -177,17 +172,7 @@ const classifyNodesFromArray = (
|
|
|
177
172
|
const classifyNodes = (
|
|
178
173
|
engineState: EngineState,
|
|
179
174
|
network: INetwork,
|
|
180
|
-
): {
|
|
181
|
-
// Type assertion: Network nodes are dynamically typed structures with variable properties
|
|
182
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
183
|
-
nodeList: any[];
|
|
184
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
185
|
-
inputNodes: any[];
|
|
186
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
187
|
-
hiddenNodes: any[];
|
|
188
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
189
|
-
outputNodes: any[];
|
|
190
|
-
} => {
|
|
175
|
+
): ClassifiedNodeBuckets => {
|
|
191
176
|
// Orchestrator: normalize inputs then delegate to the fast, allocation-light classifier.
|
|
192
177
|
const normalizedNodeList = normalizeNodesArray(network);
|
|
193
178
|
return classifyNodesFromArray(engineState, normalizedNodeList);
|
|
@@ -221,9 +206,7 @@ const gatherActivationNames = (
|
|
|
221
206
|
network: INetwork,
|
|
222
207
|
): string[] => {
|
|
223
208
|
// Step 1: Safe normalisation of the node list reference.
|
|
224
|
-
|
|
225
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
226
|
-
const nodesArray: any[] = Array.isArray(network?.nodes) ? network.nodes : [];
|
|
209
|
+
const nodesArray = normalizeNodesArray(network);
|
|
227
210
|
const nodesCount = nodesArray.length;
|
|
228
211
|
|
|
229
212
|
// Step 2: Lazily ensure the shared pool exists.
|
|
@@ -294,9 +277,7 @@ const gatherActivationNames = (
|
|
|
294
277
|
*/
|
|
295
278
|
const detectRecurrentOrGated = (
|
|
296
279
|
engineState: EngineState,
|
|
297
|
-
|
|
298
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
299
|
-
connectionsList: any[],
|
|
280
|
+
connectionsList: NetworkConnection[],
|
|
300
281
|
): boolean => {
|
|
301
282
|
// Step 1: Validate input quickly
|
|
302
283
|
if (!Array.isArray(connectionsList) || connectionsList.length === 0)
|
|
@@ -25,8 +25,71 @@ import { Network } from '../../../../src/neataptic';
|
|
|
25
25
|
import { MazeUtils } from '../mazeUtils';
|
|
26
26
|
import { FitnessEvaluator } from '../fitness';
|
|
27
27
|
import type { IFitnessEvaluationContext } from '../fitness.types';
|
|
28
|
-
import type {
|
|
28
|
+
import type {
|
|
29
|
+
IEvolutionAlgorithmConfig,
|
|
30
|
+
IMazeConfig,
|
|
31
|
+
IReportingConfig,
|
|
32
|
+
IRunMazeEvolutionOptions,
|
|
33
|
+
ScratchBundle,
|
|
34
|
+
} from './evolutionEngine.types';
|
|
29
35
|
import { createNeat, seedInitialPopulation } from './neatConfiguration';
|
|
36
|
+
import type { NeatConfig } from './neatConfiguration';
|
|
37
|
+
|
|
38
|
+
interface NormalizedRunOptions {
|
|
39
|
+
mazeConfig?: IMazeConfig;
|
|
40
|
+
agentSimConfig: IFitnessEvaluationContext['agentSimConfig'];
|
|
41
|
+
evolutionAlgorithmConfig: IEvolutionAlgorithmConfig;
|
|
42
|
+
reportingConfig: IReportingConfig | Record<string, never>;
|
|
43
|
+
fitnessEvaluator?: IRunMazeEvolutionOptions['fitnessEvaluator'];
|
|
44
|
+
popSize: number;
|
|
45
|
+
allowRecurrent: boolean;
|
|
46
|
+
maxStagnantGenerations: number;
|
|
47
|
+
minProgressToPass: number;
|
|
48
|
+
maxGenerations: number;
|
|
49
|
+
randomSeed?: number;
|
|
50
|
+
initialPopulation?: IEvolutionAlgorithmConfig['initialPopulation'];
|
|
51
|
+
initialBestNetwork?: IEvolutionAlgorithmConfig['initialBestNetwork'];
|
|
52
|
+
lamarckianIterations: number;
|
|
53
|
+
lamarckianSampleSize?: number;
|
|
54
|
+
plateauGenerations: number;
|
|
55
|
+
plateauImprovementThreshold: number;
|
|
56
|
+
simplifyDuration: number;
|
|
57
|
+
simplifyPruneFraction: number;
|
|
58
|
+
simplifyStrategy: NonNullable<IEvolutionAlgorithmConfig['simplifyStrategy']>;
|
|
59
|
+
persistEvery: number;
|
|
60
|
+
persistDir: string;
|
|
61
|
+
persistTopK: number;
|
|
62
|
+
dynamicPopEnabled: boolean;
|
|
63
|
+
dynamicPopMax: number;
|
|
64
|
+
dynamicPopExpandInterval: number;
|
|
65
|
+
dynamicPopExpandFactor: number;
|
|
66
|
+
dynamicPopPlateauSlack: number;
|
|
67
|
+
stopOnlyOnSolve: boolean;
|
|
68
|
+
autoPauseOnSolve: boolean;
|
|
69
|
+
deterministic: boolean;
|
|
70
|
+
memoryCompactionInterval: number;
|
|
71
|
+
telemetryReduceStats: boolean;
|
|
72
|
+
telemetryMinimal: boolean;
|
|
73
|
+
disableBaldwinianRefinement: boolean;
|
|
74
|
+
neatOptions: NeatConfig;
|
|
75
|
+
maze?: string[];
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
interface PreparedRunEnvironment {
|
|
79
|
+
encodedMaze: IFitnessEvaluationContext['encodedMaze'];
|
|
80
|
+
startPosition: IFitnessEvaluationContext['startPosition'];
|
|
81
|
+
exitPosition: IFitnessEvaluationContext['exitPosition'];
|
|
82
|
+
distanceMap: NonNullable<IFitnessEvaluationContext['distanceMap']>;
|
|
83
|
+
inputSize: number;
|
|
84
|
+
outputSize: number;
|
|
85
|
+
fitnessContext: IFitnessEvaluationContext;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
interface CreateAndSeedNeatResult {
|
|
89
|
+
neat: ReturnType<typeof createNeat> | null;
|
|
90
|
+
scratchPopClone: Network[];
|
|
91
|
+
scratchSample: unknown[];
|
|
92
|
+
}
|
|
30
93
|
|
|
31
94
|
/**
|
|
32
95
|
* Normalize and validate run options with sensible defaults.
|
|
@@ -89,9 +152,7 @@ export const normalizeRunOptions = (
|
|
|
89
152
|
setReducedTelemetry: (enabled: boolean) => void,
|
|
90
153
|
setMinimalTelemetry: (enabled: boolean) => void,
|
|
91
154
|
setDisableBaldwin: (disabled: boolean) => void,
|
|
92
|
-
|
|
93
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
94
|
-
): any => {
|
|
155
|
+
): NormalizedRunOptions => {
|
|
95
156
|
// Step 1: normalise option groups using nullish coalescing for robustness.
|
|
96
157
|
const mazeConfig = options?.mazeConfig;
|
|
97
158
|
const agentSimConfig = options?.agentSimConfig ?? {};
|
|
@@ -147,7 +208,7 @@ export const normalizeRunOptions = (
|
|
|
147
208
|
: Math.max(popSize, 120);
|
|
148
209
|
|
|
149
210
|
// Step 5: compose the final normalised options object (shape expected by callers).
|
|
150
|
-
|
|
211
|
+
const normalizedOptions: NormalizedRunOptions = {
|
|
151
212
|
mazeConfig,
|
|
152
213
|
agentSimConfig,
|
|
153
214
|
evolutionAlgorithmConfig,
|
|
@@ -209,9 +270,9 @@ export const normalizeRunOptions = (
|
|
|
209
270
|
},
|
|
210
271
|
},
|
|
211
272
|
maze: mazeConfig?.maze,
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
273
|
+
};
|
|
274
|
+
|
|
275
|
+
return normalizedOptions;
|
|
215
276
|
};
|
|
216
277
|
|
|
217
278
|
/**
|
|
@@ -257,17 +318,16 @@ export const normalizeRunOptions = (
|
|
|
257
318
|
* const neat = createAndSeedNeat(normalizedOpts, env.inputSize, env.outputSize, env.fitnessContext);
|
|
258
319
|
*/
|
|
259
320
|
export const prepareEnvironmentForRun = (
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
// Type assertion: Scratch bundle contains dynamic pooled structures
|
|
264
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
265
|
-
scratchBundle: any,
|
|
266
|
-
// Type assertion: Returns diverse environment properties for evolution setup
|
|
267
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
268
|
-
): any => {
|
|
321
|
+
opts: NormalizedRunOptions,
|
|
322
|
+
scratchBundle: ScratchBundle,
|
|
323
|
+
): PreparedRunEnvironment => {
|
|
269
324
|
// Step 1: Resolve the maze input in a null-safe way.
|
|
270
325
|
const mazeSource = opts?.maze ?? opts?.mazeConfig?.maze;
|
|
326
|
+
if (!Array.isArray(mazeSource)) {
|
|
327
|
+
throw new Error(
|
|
328
|
+
'ASCII Maze requires a maze layout before environment setup.',
|
|
329
|
+
);
|
|
330
|
+
}
|
|
271
331
|
|
|
272
332
|
// Step 2: Encode the maze (delegated to MazeUtils). Keep the variable name explicit.
|
|
273
333
|
const encodedMaze = MazeUtils.encodeMaze(mazeSource);
|
|
@@ -295,7 +355,7 @@ export const prepareEnvironmentForRun = (
|
|
|
295
355
|
// Best-effort: warm a couple of small engine-level pools to reduce first-use allocations.
|
|
296
356
|
try {
|
|
297
357
|
if (!Array.isArray(scratchBundle.samplePool)) {
|
|
298
|
-
scratchBundle.samplePool = new Array(32);
|
|
358
|
+
scratchBundle.samplePool = new Array<unknown>(32);
|
|
299
359
|
}
|
|
300
360
|
if (!(scratchBundle.profilingScratch instanceof Float64Array)) {
|
|
301
361
|
scratchBundle.profilingScratch = new Float64Array(4);
|
|
@@ -360,26 +420,18 @@ export const prepareEnvironmentForRun = (
|
|
|
360
420
|
* );
|
|
361
421
|
*/
|
|
362
422
|
export const createAndSeedNeat = (
|
|
363
|
-
|
|
364
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
365
|
-
opts: any,
|
|
423
|
+
opts: NormalizedRunOptions,
|
|
366
424
|
inputSize: number,
|
|
367
425
|
outputSize: number,
|
|
368
426
|
fitnessContext: IFitnessEvaluationContext,
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
// Type assertion: Pooled sample buffer for selection operations
|
|
373
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
374
|
-
scratchSample: any[],
|
|
375
|
-
// Type assertion: Returns NEAT driver and updated scratch buffers
|
|
376
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
377
|
-
): any => {
|
|
427
|
+
scratchPopClone: Network[],
|
|
428
|
+
scratchSample: unknown[],
|
|
429
|
+
): CreateAndSeedNeatResult => {
|
|
378
430
|
try {
|
|
379
431
|
// Step 1: Build a descriptive, bound fitness callback.
|
|
380
|
-
const fitnessCallback = (network: Network) =>
|
|
432
|
+
const fitnessCallback = (network: Network): number =>
|
|
381
433
|
(opts.fitnessEvaluator ?? FitnessEvaluator.defaultFitnessEvaluator)(
|
|
382
|
-
network,
|
|
434
|
+
network as unknown as import('../interfaces').INetwork,
|
|
383
435
|
fitnessContext,
|
|
384
436
|
);
|
|
385
437
|
|
|
@@ -394,8 +446,8 @@ export const createAndSeedNeat = (
|
|
|
394
446
|
// Step 3: Seed the newly created driver using provided initial population / best network.
|
|
395
447
|
scratchPopClone = seedInitialPopulation(
|
|
396
448
|
neatDriver,
|
|
397
|
-
opts.initialPopulation
|
|
398
|
-
opts.initialBestNetwork
|
|
449
|
+
opts.initialPopulation as Network[] | undefined,
|
|
450
|
+
opts.initialBestNetwork as Network | undefined,
|
|
399
451
|
Number.isFinite(opts.popSize) ? Math.max(0, Math.floor(opts.popSize)) : 0,
|
|
400
452
|
scratchPopClone,
|
|
401
453
|
);
|
|
@@ -422,10 +474,18 @@ export const createAndSeedNeat = (
|
|
|
422
474
|
// Best-effort: swallow sample buffer warm-up errors.
|
|
423
475
|
}
|
|
424
476
|
|
|
425
|
-
return {
|
|
477
|
+
return {
|
|
478
|
+
neat: neatDriver,
|
|
479
|
+
scratchPopClone: scratchPopClone as Network[],
|
|
480
|
+
scratchSample,
|
|
481
|
+
};
|
|
426
482
|
} catch {
|
|
427
483
|
// Top-level safety net: return null driver on catastrophic failure.
|
|
428
484
|
// Caller should check for null and handle gracefully.
|
|
429
|
-
return {
|
|
485
|
+
return {
|
|
486
|
+
neat: null,
|
|
487
|
+
scratchPopClone: scratchPopClone as Network[],
|
|
488
|
+
scratchSample,
|
|
489
|
+
};
|
|
430
490
|
}
|
|
431
491
|
};
|