@reicek/neataptic-ts 0.1.23 → 0.1.25

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 (766) hide show
  1. package/.github/agents/boundary-mapper.agent.md +23 -0
  2. package/.github/agents/docs-scout.agent.md +27 -1
  3. package/.github/agents/plan-scout.agent.md +18 -0
  4. package/.github/agents/solid-split.agent.md +36 -20
  5. package/.github/copilot-instructions.md +108 -101
  6. package/.github/skills/educational-docs/SKILL.md +604 -0
  7. package/.github/skills/educational-docs/assets/external-sources-and-media.md +118 -0
  8. package/.github/skills/educational-docs/assets/mermaid-diagram-playbook.md +763 -0
  9. package/.github/skills/educational-docs/assets/readme-tone-model.md +74 -0
  10. package/.github/skills/educational-docs/assets/source-mapping-checklist.md +60 -0
  11. package/.github/skills/educational-docs/assets/visual-style-guide.md +165 -0
  12. package/.github/skills/plan-alignment/SKILL.md +114 -0
  13. package/.github/skills/solid-split/SKILL.md +426 -0
  14. package/.github/skills/{solid-split-playbook → solid-split}/assets/docs-checklist.md +8 -2
  15. package/.github/skills/{solid-split-playbook → solid-split}/assets/split-workflow-checklist.md +2 -2
  16. package/.github/skills/test-fix-workflow/SKILL.md +105 -0
  17. package/.github/skills/trace-analyzer-extension/SKILL.md +5 -0
  18. package/.github/skills/trace-audit-reporting/SKILL.md +9 -0
  19. package/.github/skills/tracker-handoff/SKILL.md +153 -0
  20. package/.github/workflows/ci.yml +3 -3
  21. package/.github/workflows/deploy-pages.yml +6 -6
  22. package/.github/workflows/manual_release_pipeline.yml +3 -3
  23. package/.github/workflows/publish.yml +18 -19
  24. package/.github/workflows/release_dispatch.yml +3 -3
  25. package/README.md +84 -1610
  26. package/eslint.config.mjs +1 -1
  27. package/jest.config.mjs +1 -3
  28. package/nn.jpg +0 -0
  29. package/package.json +37 -32
  30. package/plans/Architecture_Primitives_Node_Group_Layer.md +2 -0
  31. package/plans/Browser_Build_and_CDN_Distribution.md +2 -0
  32. package/plans/Construct_From_Parts_Graph_Assembly.md +2 -0
  33. package/plans/ES2023 migration +2 -0
  34. package/plans/Evolution_Training_Interoperability_Contracts.md +2 -0
  35. package/plans/Flappy_Bird_Folder_Documentation_Pass.md +67 -3
  36. package/plans/HyperEvoDevoMorphoNEAT.md +2 -0
  37. package/plans/Interactive_Examples_and_Learning_Path.md +2 -0
  38. package/plans/Memory_Optimization.md +2 -0
  39. package/plans/Network_Visualization_Export_Schema.md +2 -0
  40. package/plans/ONNX_EXPORT_PLAN.md +2 -0
  41. package/plans/Population_Save_Resume_and_Checkpointing.md +2 -0
  42. package/plans/Preconfigured_Architectures_MLP_LSTM_GRU_NARX.md +2 -0
  43. package/plans/README.md +9 -0
  44. package/plans/Roadmap.md +92 -25
  45. package/plans/Stable_Activation_Ordering_and_Explicit_IO_Roles.md +2 -0
  46. package/plans/Standalone_Inference_Export.md +2 -0
  47. package/plans/Turnkey_Multithread_Evaluation_API.md +2 -0
  48. package/plans/Worker_Friendly_Network_Serialization_Fastpath.md +2 -0
  49. package/plans/architecture-solid-split.plans.md +675 -0
  50. package/plans/asciiMaze-typescript-repair.plans.md +42 -0
  51. package/plans/methods-docs.plans.md +173 -0
  52. package/plans/methods-solid-split.plans.md +78 -0
  53. package/plans/neat-docs.plans.md +68 -0
  54. package/plans/neat-test-surface-repair.plans.md +38 -0
  55. package/plans/neat.plans.md +4 -2
  56. package/plans/src-no-explicit-any-cleanup.plans.md +175 -0
  57. package/plans/utils-docs.plans.md +44 -0
  58. package/scripts/assets/theme.css +532 -55
  59. package/scripts/generate-docs.ts +1491 -114
  60. package/scripts/mermaid-cli.mjs +158 -0
  61. package/scripts/render-docs-html.sidebar.ts +513 -0
  62. package/scripts/render-docs-html.ts +391 -90
  63. package/src/README.md +2284 -924
  64. package/src/architecture/README.md +19 -2102
  65. package/src/architecture/activationArrayPool/README.md +35 -0
  66. package/src/architecture/activationArrayPool/activationArrayPool.ts +185 -0
  67. package/src/architecture/activationArrayPool.ts +6 -136
  68. package/src/architecture/architect/README.md +198 -0
  69. package/src/architecture/architect/architect.ts +550 -0
  70. package/src/architecture/architect.ts +5 -641
  71. package/src/architecture/connection/README.md +260 -0
  72. package/src/architecture/connection/connection.ts +455 -0
  73. package/src/architecture/connection.ts +4 -397
  74. package/src/architecture/docs.order.json +35 -0
  75. package/src/architecture/group/README.md +193 -0
  76. package/src/architecture/group/group.ts +506 -0
  77. package/src/architecture/group.ts +5 -417
  78. package/src/architecture/layer/README.md +1101 -458
  79. package/src/architecture/layer/layer.activation.utils.ts +1 -1
  80. package/src/architecture/layer/layer.connection.utils.ts +2 -2
  81. package/src/architecture/layer/layer.factory.core.utils.ts +2 -2
  82. package/src/architecture/layer/layer.factory.experimental.utils.ts +1 -1
  83. package/src/architecture/layer/layer.factory.normalization.utils.ts +1 -1
  84. package/src/architecture/layer/layer.factory.recurrent.utils.ts +3 -7
  85. package/src/architecture/layer/layer.guard.utils.ts +1 -1
  86. package/src/architecture/layer/layer.ts +488 -0
  87. package/src/architecture/layer/layer.utils.types.ts +2 -2
  88. package/src/architecture/layer.ts +4 -470
  89. package/src/architecture/network/README.md +2559 -1276
  90. package/src/architecture/network/activate/README.md +1001 -522
  91. package/src/architecture/network/activate/network.activate.contexts.utils.ts +1 -1
  92. package/src/architecture/network/activate/network.activate.core.utils.ts +4 -4
  93. package/src/architecture/network/activate/network.activate.notrace.utils.ts +1 -1
  94. package/src/architecture/network/activate/network.activate.raw.utils.ts +1 -1
  95. package/src/architecture/network/activate/network.activate.utils.ts +3 -3
  96. package/src/architecture/network/activate/network.activate.utils.types.ts +2 -2
  97. package/src/architecture/network/bootstrap/README.md +207 -0
  98. package/src/architecture/network/bootstrap/network.bootstrap.utils.ts +295 -0
  99. package/src/architecture/network/connect/README.md +146 -60
  100. package/src/architecture/network/connect/network.connect.create.utils.ts +1 -1
  101. package/src/architecture/network/connect/network.connect.remove.utils.ts +1 -1
  102. package/src/architecture/network/connect/network.connect.utils.ts +2 -2
  103. package/src/architecture/network/deterministic/README.md +236 -113
  104. package/src/architecture/network/deterministic/network.deterministic.lifecycle.utils.ts +1 -1
  105. package/src/architecture/network/deterministic/network.deterministic.setup.utils.ts +2 -2
  106. package/src/architecture/network/deterministic/network.deterministic.state.utils.ts +2 -2
  107. package/src/architecture/network/deterministic/network.deterministic.utils.ts +2 -2
  108. package/src/architecture/network/docs.order.json +8 -0
  109. package/src/architecture/network/evolve/README.md +550 -261
  110. package/src/architecture/network/evolve/network.evolve.finalize.utils.ts +1 -1
  111. package/src/architecture/network/evolve/network.evolve.fitness.utils.ts +1 -1
  112. package/src/architecture/network/evolve/network.evolve.loop.utils.ts +1 -1
  113. package/src/architecture/network/evolve/network.evolve.setup.utils.ts +1 -1
  114. package/src/architecture/network/evolve/network.evolve.utils.ts +1 -1
  115. package/src/architecture/network/gating/README.md +221 -111
  116. package/src/architecture/network/gating/network.gating.gate.utils.ts +1 -1
  117. package/src/architecture/network/gating/network.gating.remove.utils.ts +2 -2
  118. package/src/architecture/network/gating/network.gating.utils.ts +2 -2
  119. package/src/architecture/network/genetic/README.md +624 -287
  120. package/src/architecture/network/genetic/network.genetic.setup.utils.ts +2 -2
  121. package/src/architecture/network/genetic/network.genetic.utils.ts +1 -1
  122. package/src/architecture/network/mutate/README.md +1248 -653
  123. package/src/architecture/network/mutate/network.mutate.dispatch.utils.ts +1 -1
  124. package/src/architecture/network/mutate/network.mutate.handlers.utils.ts +15 -42
  125. package/src/architecture/network/mutate/network.mutate.public.utils.ts +60 -0
  126. package/src/architecture/network/mutate/network.mutate.utils.ts +1 -1
  127. package/src/architecture/network/mutate/network.mutate.utils.types.ts +0 -5
  128. package/src/architecture/network/network.ts +1153 -0
  129. package/src/architecture/network/network.types.ts +102 -8
  130. package/src/architecture/network/network.utils.ts +22 -15
  131. package/src/architecture/network/onnx/README.md +1039 -3171
  132. package/src/architecture/network/onnx/docs.order.json +13 -0
  133. package/src/architecture/network/onnx/export/README.md +1691 -0
  134. package/src/architecture/network/onnx/export/layers/README.md +1121 -0
  135. package/src/architecture/network/onnx/{network.onnx.export-conv.utils.ts → export/layers/network.onnx.export-conv.utils.ts} +35 -7
  136. package/src/architecture/network/onnx/{network.onnx.export-dense.utils.ts → export/layers/network.onnx.export-dense.utils.ts} +42 -9
  137. package/src/architecture/network/onnx/{network.onnx.export-layer-common.utils.ts → export/layers/network.onnx.export-layer-common.utils.ts} +22 -16
  138. package/src/architecture/network/onnx/{network.onnx.export-layer-graph.utils.ts → export/layers/network.onnx.export-layer-graph.utils.ts} +51 -4
  139. package/src/architecture/network/onnx/{network.onnx.export-recurrent.utils.ts → export/layers/network.onnx.export-recurrent.utils.ts} +27 -6
  140. package/src/architecture/network/onnx/{network.onnx.export-build.utils.ts → export/network.onnx.export-build.utils.ts} +5 -5
  141. package/src/architecture/network/onnx/{network.onnx.export-flow.utils.ts → export/network.onnx.export-flow.utils.ts} +3 -2
  142. package/src/architecture/network/onnx/{network.onnx.export-orchestrators.utils.ts → export/network.onnx.export-orchestrators.utils.ts} +9 -5
  143. package/src/architecture/network/onnx/{network.onnx.export-postprocess.utils.ts → export/network.onnx.export-postprocess.utils.ts} +11 -7
  144. package/src/architecture/network/onnx/{network.onnx.export-setup.utils.ts → export/network.onnx.export-setup.utils.ts} +9 -7
  145. package/src/architecture/network/onnx/export/network.onnx.export.types.ts +734 -0
  146. package/src/architecture/network/onnx/import/README.md +1515 -0
  147. package/src/architecture/network/onnx/import/docs.order.json +15 -0
  148. package/src/architecture/network/onnx/{network.onnx.import-activations.utils.ts → import/network.onnx.import-activations.utils.ts} +3 -3
  149. package/src/architecture/network/onnx/{network.onnx.import-flow.utils.ts → import/network.onnx.import-flow.utils.ts} +25 -5
  150. package/src/architecture/network/onnx/import/network.onnx.import-fused-recurrent.types.ts +101 -0
  151. package/src/architecture/network/onnx/{network.onnx.import-fused-recurrent.utils.ts → import/network.onnx.import-fused-recurrent.utils.ts} +10 -6
  152. package/src/architecture/network/onnx/import/network.onnx.import-orchestrators.types.ts +74 -0
  153. package/src/architecture/network/onnx/{network.onnx.import-orchestrators.utils.ts → import/network.onnx.import-orchestrators.utils.ts} +9 -7
  154. package/src/architecture/network/onnx/import/network.onnx.import-weights.types.ts +189 -0
  155. package/src/architecture/network/onnx/{network.onnx.import-weights.utils.ts → import/network.onnx.import-weights.utils.ts} +11 -7
  156. package/src/architecture/network/onnx/import/network.onnx.runtime-load.types.ts +52 -0
  157. package/src/architecture/network/onnx/{network.onnx.runtime-load.utils.ts → import/network.onnx.runtime-load.utils.ts} +2 -2
  158. package/src/architecture/network/onnx/network.onnx.layer-analysis.utils.ts +1 -1
  159. package/src/architecture/network/onnx/network.onnx.ts +20 -5
  160. package/src/architecture/network/onnx/network.onnx.utils.ts +32 -11
  161. package/src/architecture/network/onnx/network.onnx.utils.types.ts +172 -1195
  162. package/src/architecture/network/onnx/schema/README.md +120 -0
  163. package/src/architecture/network/onnx/schema/network.onnx.schema.types.ts +202 -0
  164. package/src/architecture/network/prune/README.md +453 -210
  165. package/src/architecture/network/prune/network.prune.evolutionary.utils.ts +1 -1
  166. package/src/architecture/network/prune/network.prune.regrowth.utils.ts +1 -1
  167. package/src/architecture/network/prune/network.prune.schedule.utils.ts +1 -1
  168. package/src/architecture/network/prune/network.prune.sparsity.utils.ts +1 -1
  169. package/src/architecture/network/prune/network.prune.utils.ts +16 -19
  170. package/src/architecture/network/remove/README.md +267 -132
  171. package/src/architecture/network/remove/network.remove.finalize.utils.ts +1 -1
  172. package/src/architecture/network/remove/network.remove.reconnect.utils.ts +1 -1
  173. package/src/architecture/network/remove/network.remove.snapshot.utils.ts +1 -1
  174. package/src/architecture/network/remove/network.remove.utils.ts +2 -2
  175. package/src/architecture/network/remove/network.remove.utils.types.ts +1 -1
  176. package/src/architecture/network/remove/network.remove.validation.utils.ts +1 -1
  177. package/src/architecture/network/runtime/README.md +332 -0
  178. package/src/architecture/network/runtime/network.runtime.controls.utils.ts +301 -0
  179. package/src/architecture/network/runtime/network.runtime.diagnostics.utils.ts +150 -0
  180. package/src/architecture/network/serialize/README.md +903 -359
  181. package/src/architecture/network/serialize/network.serialize.activation.utils.ts +1 -1
  182. package/src/architecture/network/serialize/network.serialize.public.utils.ts +28 -0
  183. package/src/architecture/network/serialize/network.serialize.runtime.utils.ts +1 -1
  184. package/src/architecture/network/serialize/network.serialize.utils.ts +1 -1
  185. package/src/architecture/network/slab/README.md +907 -492
  186. package/src/architecture/network/slab/network.slab.activate.utils.ts +1 -1
  187. package/src/architecture/network/slab/network.slab.adjacency.helpers.utils.ts +1 -1
  188. package/src/architecture/network/slab/network.slab.fast-path.helpers.utils.ts +2 -2
  189. package/src/architecture/network/slab/network.slab.rebuild.helpers.utils.ts +2 -2
  190. package/src/architecture/network/slab/network.slab.shared.helpers.utils.ts +1 -1
  191. package/src/architecture/network/slab/network.slab.utils.ts +3 -3
  192. package/src/architecture/network/slab/network.slab.utils.types.ts +1 -1
  193. package/src/architecture/network/slab/network.slab.view.utils.ts +1 -1
  194. package/src/architecture/network/standalone/README.md +401 -161
  195. package/src/architecture/network/standalone/network.standalone.utils.setup.ts +1 -1
  196. package/src/architecture/network/standalone/network.standalone.utils.ts +1 -1
  197. package/src/architecture/network/stats/README.md +152 -64
  198. package/src/architecture/network/stats/network.stats.test.utils.ts +1 -1
  199. package/src/architecture/network/stats/network.stats.utils.ts +5 -4
  200. package/src/architecture/network/topology/README.md +773 -280
  201. package/src/architecture/network/topology/network.topology.architecture.utils.ts +55 -1
  202. package/src/architecture/network/topology/network.topology.contract.utils.ts +78 -0
  203. package/src/architecture/network/topology/network.topology.factory.utils.ts +5 -1
  204. package/src/architecture/network/topology/network.topology.utils.ts +19 -3
  205. package/src/architecture/network/topology/network.topology.utils.types.ts +1 -1
  206. package/src/architecture/network/training/README.md +385 -158
  207. package/src/architecture/network/training/network.training.backprop.utils.ts +1 -1
  208. package/src/architecture/network/training/network.training.finalize.utils.ts +1 -1
  209. package/src/architecture/network/training/network.training.gradient-clip.utils.ts +1 -1
  210. package/src/architecture/network/training/network.training.loop.utils.ts +1 -1
  211. package/src/architecture/network/training/network.training.utils.ts +1 -1
  212. package/src/architecture/network/training/network.training.utils.types.ts +1 -1
  213. package/src/architecture/network.ts +18 -1744
  214. package/src/architecture/node/README.md +464 -0
  215. package/src/architecture/node/node.ts +1338 -0
  216. package/src/architecture/node.ts +4 -1317
  217. package/src/architecture/nodePool/README.md +78 -0
  218. package/src/architecture/nodePool/nodePool.ts +169 -0
  219. package/src/architecture/nodePool.ts +12 -150
  220. package/src/architecture/onnx.ts +7 -0
  221. package/src/methods/README.md +533 -982
  222. package/src/methods/activation/README.md +639 -0
  223. package/src/methods/{activation.ts → activation/activation.ts} +104 -11
  224. package/src/methods/{activation.utils.ts → activation/activation.utils.ts} +147 -1
  225. package/src/methods/activation/docs.order.json +7 -0
  226. package/src/methods/connection/README.md +97 -0
  227. package/src/methods/connection/connection.ts +100 -0
  228. package/src/methods/cost/README.md +509 -0
  229. package/src/methods/{cost.ts → cost/cost.ts} +56 -0
  230. package/src/methods/{cost.utils.ts → cost/cost.utils.ts} +1 -1
  231. package/src/methods/cost/docs.order.json +7 -0
  232. package/src/methods/crossover/README.md +52 -0
  233. package/src/methods/{crossover.ts → crossover/crossover.ts} +56 -0
  234. package/src/methods/docs.order.json +16 -0
  235. package/src/methods/gating/README.md +52 -0
  236. package/src/methods/gating/gating.ts +106 -0
  237. package/src/methods/methods.ts +58 -8
  238. package/src/methods/mutation/README.md +123 -0
  239. package/src/methods/{mutation.ts → mutation/mutation.ts} +87 -7
  240. package/src/methods/rate/README.md +490 -0
  241. package/src/methods/rate/docs.order.json +7 -0
  242. package/src/methods/{rate.ts → rate/rate.ts} +85 -4
  243. package/src/methods/{rate.utils.ts → rate/rate.utils.ts} +3 -3
  244. package/src/methods/selection/README.md +60 -0
  245. package/src/methods/{selection.ts → selection/selection.ts} +64 -0
  246. package/src/multithreading/README.md +281 -95
  247. package/src/multithreading/multi.ts +2 -2
  248. package/src/multithreading/workers/README.md +8 -6
  249. package/src/multithreading/workers/browser/README.md +21 -11
  250. package/src/multithreading/workers/node/README.md +52 -20
  251. package/src/neat/README.md +397 -10476
  252. package/src/neat/adaptive/README.md +281 -0
  253. package/src/neat/adaptive/acceptance/README.md +361 -0
  254. package/src/neat/adaptive/acceptance/adaptive.acceptance.ts +46 -0
  255. package/src/neat/{neat.adaptive.minimal-criterion.utils.ts → adaptive/acceptance/adaptive.minimal-criterion.utils.ts} +59 -5
  256. package/src/neat/{neat.adaptive.ts → adaptive/adaptive.ts} +103 -54
  257. package/src/neat/adaptive/complexity/README.md +519 -0
  258. package/src/neat/adaptive/complexity/adaptive.complexity.ts +42 -0
  259. package/src/neat/{neat.adaptive.complexity.utils.ts → adaptive/complexity/adaptive.complexity.utils.ts} +72 -10
  260. package/src/neat/{neat.adaptive.phases.utils.ts → adaptive/complexity/adaptive.phases.utils.ts} +27 -4
  261. package/src/neat/adaptive/core/README.md +587 -0
  262. package/src/neat/adaptive/core/adaptive.core.constants.ts +160 -0
  263. package/src/neat/adaptive/core/adaptive.core.ts +33 -0
  264. package/src/neat/{neat.adaptive.shared.ts → adaptive/core/adaptive.core.types.ts} +114 -134
  265. package/src/neat/adaptive/lineage/README.md +369 -0
  266. package/src/neat/{neat.adaptive.ancestor-uniqueness.utils.ts → adaptive/lineage/adaptive.ancestor-uniqueness.utils.ts} +59 -6
  267. package/src/neat/adaptive/lineage/adaptive.lineage.ts +49 -0
  268. package/src/neat/adaptive/mutation/README.md +754 -0
  269. package/src/neat/adaptive/mutation/adaptive.mutation.ts +51 -0
  270. package/src/neat/{neat.adaptive.mutation.utils.ts → adaptive/mutation/adaptive.mutation.utils.ts} +98 -4
  271. package/src/neat/{neat.adaptive.operator.utils.ts → adaptive/mutation/adaptive.operator.utils.ts} +30 -3
  272. package/src/neat/cache/README.md +156 -0
  273. package/src/neat/cache/cache.ts +79 -0
  274. package/src/neat/cache/core/README.md +151 -0
  275. package/src/neat/cache/core/cache.constants.ts +70 -0
  276. package/src/neat/cache/core/cache.core.ts +89 -0
  277. package/src/neat/compat/README.md +186 -0
  278. package/src/neat/compat/compat.ts +222 -0
  279. package/src/neat/compat/core/README.md +257 -0
  280. package/src/neat/{neat.compat.utils.ts → compat/core/compat.core.ts} +92 -102
  281. package/src/neat/compat/core/compat.types.ts +122 -0
  282. package/src/neat/diversity/README.md +160 -0
  283. package/src/neat/diversity/core/README.md +242 -0
  284. package/src/neat/diversity/core/diversity.core.ts +278 -0
  285. package/src/neat/diversity/core/diversity.types.ts +114 -0
  286. package/src/neat/diversity/diversity.ts +170 -0
  287. package/src/neat/evaluate/README.md +268 -0
  288. package/src/neat/evaluate/auto-distance/README.md +242 -0
  289. package/src/neat/evaluate/auto-distance/evaluate.auto-distance.ts +328 -0
  290. package/src/neat/evaluate/entropy-compat/README.md +128 -0
  291. package/src/neat/evaluate/entropy-compat/evaluate.entropy-compat.ts +163 -0
  292. package/src/neat/evaluate/entropy-sharing/README.md +147 -0
  293. package/src/neat/evaluate/entropy-sharing/evaluate.entropy-sharing.ts +179 -0
  294. package/src/neat/evaluate/evaluate.ts +158 -0
  295. package/src/neat/evaluate/fitness/README.md +90 -0
  296. package/src/neat/evaluate/fitness/evaluate.fitness.ts +104 -0
  297. package/src/neat/evaluate/novelty/README.md +281 -0
  298. package/src/neat/evaluate/novelty/evaluate.novelty.ts +348 -0
  299. package/src/neat/evaluate/objectives/README.md +112 -0
  300. package/src/neat/evaluate/objectives/evaluate.objectives.ts +121 -0
  301. package/src/neat/evaluate/shared/README.md +248 -0
  302. package/src/neat/evaluate/shared/evaluate.constants.ts +191 -0
  303. package/src/neat/{neat.evaluate.utils.types.ts → evaluate/shared/evaluate.types.ts} +112 -14
  304. package/src/neat/evaluate/speciation/README.md +138 -0
  305. package/src/neat/evaluate/speciation/evaluate.speciation.ts +144 -0
  306. package/src/neat/evolve/README.md +360 -0
  307. package/src/neat/evolve/adaptive/README.md +219 -0
  308. package/src/neat/evolve/adaptive/evolve.adaptive.utils.ts +324 -0
  309. package/src/neat/{neat.evolve.ts → evolve/evolve.ts} +204 -80
  310. package/src/neat/{neat.evolve.types.ts → evolve/evolve.types.ts} +92 -5
  311. package/src/neat/evolve/objectives/README.md +204 -0
  312. package/src/neat/{neat.evolve.objectives.utils.ts → evolve/objectives/evolve.objectives.utils.ts} +129 -24
  313. package/src/neat/evolve/offspring/README.md +145 -0
  314. package/src/neat/evolve/offspring/evolve.offspring.constants.ts +44 -0
  315. package/src/neat/evolve/offspring/evolve.offspring.utils.ts +163 -0
  316. package/src/neat/evolve/population/README.md +477 -0
  317. package/src/neat/{neat.evolve.population.utils.ts → evolve/population/evolve.population.utils.ts} +258 -40
  318. package/src/neat/evolve/runtime/README.md +188 -0
  319. package/src/neat/evolve/runtime/evolve.runtime.utils.ts +215 -0
  320. package/src/neat/evolve/speciation/README.md +227 -0
  321. package/src/neat/evolve/speciation/evolve.speciation.utils.ts +359 -0
  322. package/src/neat/evolve/telemetry/README.md +133 -0
  323. package/src/neat/evolve/telemetry/evolve.telemetry.utils.ts +143 -0
  324. package/src/neat/evolve/warnings/README.md +43 -0
  325. package/src/neat/evolve/warnings/evolve.warnings.utils.ts +48 -0
  326. package/src/neat/export/README.md +289 -0
  327. package/src/neat/{neat.export.ts → export/neat.export.ts} +127 -45
  328. package/src/neat/harness/README.md +136 -0
  329. package/src/neat/harness/neat.harness.types.ts +144 -0
  330. package/src/neat/helpers/README.md +232 -0
  331. package/src/neat/helpers/neat.helpers.ts +408 -0
  332. package/src/neat/init/README.md +140 -0
  333. package/src/neat/init/neat.init.ts +375 -0
  334. package/src/neat/lineage/README.md +141 -0
  335. package/src/neat/lineage/core/README.md +292 -0
  336. package/src/neat/lineage/core/lineage.core.ts +372 -0
  337. package/src/neat/lineage/core/lineage.types.ts +105 -0
  338. package/src/neat/lineage/lineage.ts +163 -0
  339. package/src/neat/maintenance/README.md +78 -0
  340. package/src/neat/maintenance/facade/README.md +143 -0
  341. package/src/neat/maintenance/facade/maintenance.facade.ts +168 -0
  342. package/src/neat/maintenance/maintenance.ts +80 -0
  343. package/src/neat/multiobjective/README.md +90 -0
  344. package/src/neat/multiobjective/archive/README.md +81 -0
  345. package/src/neat/multiobjective/archive/multiobjective.archive.ts +100 -0
  346. package/src/neat/multiobjective/category/README.md +208 -0
  347. package/src/neat/{neat.multiobjective.category.utils.ts → multiobjective/category/multiobjective.category.ts} +109 -18
  348. package/src/neat/multiobjective/crowding/README.md +516 -0
  349. package/src/neat/{neat.multiobjective.crowding.utils.ts → multiobjective/crowding/multiobjective.crowding.ts} +105 -3
  350. package/src/neat/multiobjective/dominance/README.md +426 -0
  351. package/src/neat/{neat.multiobjective.dominance.utils.ts → multiobjective/dominance/multiobjective.dominance.ts} +110 -4
  352. package/src/neat/multiobjective/fronts/README.md +222 -0
  353. package/src/neat/{neat.multiobjective.fronts.utils.ts → multiobjective/fronts/multiobjective.fronts.ts} +82 -4
  354. package/src/neat/multiobjective/metrics/README.md +140 -0
  355. package/src/neat/multiobjective/metrics/multiobjective.metrics.ts +153 -0
  356. package/src/neat/multiobjective/multiobjective.ts +140 -0
  357. package/src/neat/multiobjective/objectives/README.md +113 -0
  358. package/src/neat/{neat.multiobjective.objectives.utils.ts → multiobjective/objectives/multiobjective.objectives.ts} +42 -2
  359. package/src/neat/multiobjective/shared/README.md +85 -0
  360. package/src/neat/multiobjective/shared/multiobjective.types.ts +155 -0
  361. package/src/neat/mutation/README.md +282 -0
  362. package/src/neat/mutation/add-conn/README.md +271 -0
  363. package/src/neat/{neat.mutation.add-conn.utils.ts → mutation/add-conn/mutation.add-conn.ts} +87 -6
  364. package/src/neat/mutation/add-node/README.md +293 -0
  365. package/src/neat/{neat.mutation.add-node.utils.ts → mutation/add-node/mutation.add-node.ts} +97 -8
  366. package/src/neat/mutation/flow/README.md +379 -0
  367. package/src/neat/{neat.mutation.flow.utils.ts → mutation/flow/mutation.flow.ts} +147 -6
  368. package/src/neat/mutation/mutation.ts +482 -0
  369. package/src/neat/mutation/repair/README.md +497 -0
  370. package/src/neat/{neat.mutation.dead-ends.utils.ts → mutation/repair/mutation.dead-ends.ts} +75 -9
  371. package/src/neat/{neat.mutation.min-hidden.utils.ts → mutation/repair/mutation.min-hidden.ts} +73 -7
  372. package/src/neat/mutation/select/README.md +285 -0
  373. package/src/neat/{neat.mutation.select.utils.ts → mutation/select/mutation.select.ts} +102 -4
  374. package/src/neat/mutation/shared/README.md +109 -0
  375. package/src/neat/{neat.mutation.types.ts → mutation/shared/mutation.types.ts} +77 -4
  376. package/src/neat/neat.constants.ts +116 -7
  377. package/src/neat/neat.defaults.constants.ts +183 -0
  378. package/src/neat/neat.diversity.ts +5 -53
  379. package/src/neat/neat.lineage.ts +2 -134
  380. package/src/neat/neat.types.ts +59 -791
  381. package/src/neat/objectives/README.md +142 -0
  382. package/src/neat/objectives/core/README.md +288 -0
  383. package/src/neat/objectives/core/objectives.core.ts +273 -0
  384. package/src/neat/objectives/core/objectives.types.ts +63 -0
  385. package/src/neat/objectives/objectives.ts +175 -0
  386. package/src/neat/pruning/README.md +120 -0
  387. package/src/neat/pruning/core/README.md +420 -0
  388. package/src/neat/pruning/core/pruning.core.ts +410 -0
  389. package/src/neat/pruning/core/pruning.types.ts +104 -0
  390. package/src/neat/pruning/facade/README.md +121 -0
  391. package/src/neat/pruning/facade/pruning.facade.ts +124 -0
  392. package/src/neat/pruning/pruning.ts +192 -0
  393. package/src/neat/rng/README.md +323 -0
  394. package/src/neat/rng/core/README.md +503 -0
  395. package/src/neat/rng/core/rng.constants.ts +44 -0
  396. package/src/neat/rng/core/rng.core.ts +27 -0
  397. package/src/neat/rng/core/rng.types.ts +87 -0
  398. package/src/neat/rng/core/rng.utils.ts +238 -0
  399. package/src/neat/rng/facade/README.md +162 -0
  400. package/src/neat/rng/facade/rng.facade.ts +150 -0
  401. package/src/neat/rng/rng.ts +88 -0
  402. package/src/neat/selection/README.md +307 -0
  403. package/src/neat/selection/core/README.md +546 -0
  404. package/src/neat/selection/core/selection.core.ts +580 -0
  405. package/src/neat/selection/core/selection.types.ts +120 -0
  406. package/src/neat/selection/facade/README.md +180 -0
  407. package/src/neat/selection/facade/selection.facade.ts +177 -0
  408. package/src/neat/selection/selection.ts +255 -0
  409. package/src/neat/shared/README.md +361 -0
  410. package/src/neat/shared/neat.shared.types.ts +1120 -0
  411. package/src/neat/speciation/README.md +171 -0
  412. package/src/neat/speciation/assignment/README.md +274 -0
  413. package/src/neat/speciation/assignment/docs.order.json +12 -0
  414. package/src/neat/speciation/assignment/speciation.assignment.utils.ts +325 -0
  415. package/src/neat/speciation/history/README.md +254 -0
  416. package/src/neat/speciation/history/docs.order.json +12 -0
  417. package/src/neat/speciation/history/speciation.history.utils.ts +449 -0
  418. package/src/neat/speciation/shared/README.md +313 -0
  419. package/src/neat/speciation/shared/docs.order.json +31 -0
  420. package/src/neat/speciation/shared/speciation.shared.ts +393 -0
  421. package/src/neat/speciation/sharing/README.md +131 -0
  422. package/src/neat/speciation/sharing/speciation.sharing.utils.ts +287 -0
  423. package/src/neat/speciation/speciation.ts +243 -0
  424. package/src/neat/speciation/threshold/README.md +189 -0
  425. package/src/neat/speciation/threshold/speciation.threshold.utils.ts +310 -0
  426. package/src/neat/species/README.md +113 -0
  427. package/src/neat/species/core/README.md +92 -0
  428. package/src/neat/species/core/augmentation/README.md +60 -0
  429. package/src/neat/species/core/augmentation/species.core.augmentation.ts +109 -0
  430. package/src/neat/species/core/shared/README.md +92 -0
  431. package/src/neat/species/core/shared/species.core.shared.ts +154 -0
  432. package/src/neat/species/core/species.core.ts +92 -0
  433. package/src/neat/species/history/README.md +102 -0
  434. package/src/neat/species/history/context/README.md +86 -0
  435. package/src/neat/species/history/context/species.history.context.ts +112 -0
  436. package/src/neat/species/history/read/README.md +74 -0
  437. package/src/neat/species/history/read/species.history.read.ts +86 -0
  438. package/src/neat/species/history/species.history.ts +105 -0
  439. package/src/neat/species/species.ts +114 -0
  440. package/src/neat/species/stats/README.md +91 -0
  441. package/src/neat/species/stats/species.stats.ts +109 -0
  442. package/src/neat/telemetry/README.md +44 -0
  443. package/src/neat/telemetry/accessors/README.md +183 -0
  444. package/src/neat/telemetry/accessors/telemetry.accessors.ts +168 -0
  445. package/src/neat/telemetry/exports/README.md +600 -0
  446. package/src/neat/telemetry/exports/telemetry.exports.ts +549 -0
  447. package/src/neat/{neat.telemetry.exports.utils.ts → telemetry/exports/telemetry.exports.utils.ts} +76 -2
  448. package/src/neat/telemetry/facade/README.md +582 -0
  449. package/src/neat/telemetry/facade/archive/README.md +173 -0
  450. package/src/neat/telemetry/facade/archive/telemetry.facade.archive.ts +175 -0
  451. package/src/neat/telemetry/facade/buffer/README.md +141 -0
  452. package/src/neat/telemetry/facade/buffer/telemetry.facade.buffer.ts +132 -0
  453. package/src/neat/telemetry/facade/lineage/README.md +87 -0
  454. package/src/neat/telemetry/facade/lineage/telemetry.facade.lineage.ts +93 -0
  455. package/src/neat/telemetry/facade/novelty/README.md +79 -0
  456. package/src/neat/telemetry/facade/novelty/telemetry.facade.novelty.ts +70 -0
  457. package/src/neat/telemetry/facade/objectives/README.md +161 -0
  458. package/src/neat/telemetry/facade/objectives/telemetry.facade.objectives.ts +163 -0
  459. package/src/neat/telemetry/facade/operator-stats/README.md +62 -0
  460. package/src/neat/telemetry/facade/operator-stats/telemetry.facade.operator-stats.ts +63 -0
  461. package/src/neat/telemetry/facade/runtime/README.md +96 -0
  462. package/src/neat/telemetry/facade/runtime/telemetry.facade.runtime.ts +104 -0
  463. package/src/neat/telemetry/facade/species/README.md +165 -0
  464. package/src/neat/telemetry/facade/species/telemetry.facade.species.ts +171 -0
  465. package/src/neat/telemetry/facade/telemetry.facade.ts +555 -0
  466. package/src/neat/telemetry/metrics/README.md +1717 -0
  467. package/src/neat/{neat.telemetry.complexity.utils.ts → telemetry/metrics/telemetry.metrics.complexity.ts} +5 -2
  468. package/src/neat/{neat.telemetry.diversity.utils.ts → telemetry/metrics/telemetry.metrics.diversity.ts} +2 -2
  469. package/src/neat/{neat.telemetry.entropy.utils.ts → telemetry/metrics/telemetry.metrics.entropy.ts} +1 -1
  470. package/src/neat/{neat.telemetry.lineage.utils.ts → telemetry/metrics/telemetry.metrics.lineage.ts} +4 -4
  471. package/src/neat/{neat.telemetry.objectives.utils.ts → telemetry/metrics/telemetry.metrics.objectives.ts} +3 -3
  472. package/src/neat/{neat.telemetry.operator.utils.ts → telemetry/metrics/telemetry.metrics.operator.ts} +4 -1
  473. package/src/neat/{neat.telemetry.performance.utils.ts → telemetry/metrics/telemetry.metrics.performance.ts} +2 -2
  474. package/src/neat/{neat.telemetry.rng.utils.ts → telemetry/metrics/telemetry.metrics.rng.ts} +2 -2
  475. package/src/neat/{neat.telemetry.selection.utils.ts → telemetry/metrics/telemetry.metrics.selection.ts} +3 -3
  476. package/src/neat/telemetry/metrics/telemetry.metrics.ts +60 -0
  477. package/src/neat/telemetry/recorder/README.md +220 -0
  478. package/src/neat/{neat.telemetry.ts → telemetry/recorder/telemetry.recorder.ts} +91 -30
  479. package/src/neat/telemetry/runtime/README.md +106 -0
  480. package/src/neat/telemetry/runtime/telemetry.runtime.ts +119 -0
  481. package/src/neat/telemetry/telemetry.ts +46 -0
  482. package/src/neat/telemetry/types/README.md +85 -0
  483. package/src/neat/telemetry/types/telemetry.types.ts +121 -0
  484. package/src/neat/topology-intent/README.md +225 -0
  485. package/src/neat/topology-intent/neat.topology-intent.ts +305 -0
  486. package/src/neat.ts +710 -405
  487. package/src/utils/README.md +367 -114
  488. package/src/utils/memory.ts +74 -10
  489. package/src/utils/memory.utils.ts +77 -4
  490. package/test/architecture/node.test.ts +2 -2
  491. package/test/examples/README.md +168 -0
  492. package/test/examples/asciiMaze/README.md +263 -253
  493. package/test/examples/asciiMaze/asciiMaze.e2e.test.ts +4 -3
  494. package/test/examples/asciiMaze/browser-entry/README.md +316 -57
  495. package/test/examples/asciiMaze/browser-entry/browser-entry.globals.services.ts +7 -4
  496. package/test/examples/asciiMaze/browser-entry/browser-entry.host.services.ts +1 -1
  497. package/test/examples/asciiMaze/browser-entry/browser-entry.ts +16 -0
  498. package/test/examples/asciiMaze/browser-entry.ts +5 -0
  499. package/test/examples/asciiMaze/dashboardManager/README.md +182 -101
  500. package/test/examples/asciiMaze/dashboardManager/archive/README.md +25 -1
  501. package/test/examples/asciiMaze/dashboardManager/archive/dashboardManager.archive.services.ts +17 -0
  502. package/test/examples/asciiMaze/dashboardManager/dashboardManager.types.ts +1 -1
  503. package/test/examples/asciiMaze/dashboardManager/live/README.md +28 -1
  504. package/test/examples/asciiMaze/dashboardManager/live/dashboardManager.live.services.ts +22 -0
  505. package/test/examples/asciiMaze/dashboardManager/telemetry/README.md +60 -21
  506. package/test/examples/asciiMaze/dashboardManager/telemetry/dashboardManager.telemetry.services.ts +20 -0
  507. package/test/examples/asciiMaze/evolutionEngine/README.md +3471 -567
  508. package/test/examples/asciiMaze/evolutionEngine/engineState.types.ts +10 -3
  509. package/test/examples/asciiMaze/evolutionEngine/evolutionEngine.constants.ts +95 -0
  510. package/test/examples/asciiMaze/evolutionEngine/evolutionEngine.services.ts +93 -0
  511. package/test/examples/asciiMaze/evolutionEngine/evolutionEngine.types.ts +74 -5
  512. package/test/examples/asciiMaze/evolutionEngine/evolutionEngine.utils.ts +123 -0
  513. package/test/examples/asciiMaze/evolutionEngine/evolutionLoop.ts +58 -86
  514. package/test/examples/asciiMaze/evolutionEngine/neatConfiguration.ts +29 -17
  515. package/test/examples/asciiMaze/evolutionEngine/networkInspection.ts +19 -38
  516. package/test/examples/asciiMaze/evolutionEngine/optionsAndSetup.ts +96 -36
  517. package/test/examples/asciiMaze/evolutionEngine/populationDynamics.ts +194 -180
  518. package/test/examples/asciiMaze/evolutionEngine/populationPruning.ts +47 -54
  519. package/test/examples/asciiMaze/evolutionEngine/sampling.ts +18 -3
  520. package/test/examples/asciiMaze/evolutionEngine/telemetryMetrics.ts +24 -17
  521. package/test/examples/asciiMaze/evolutionEngine/trainingWarmStart.ts +83 -52
  522. package/test/examples/asciiMaze/evolutionEngine.ts +119 -231
  523. package/test/examples/asciiMaze/index.ts +30 -7
  524. package/test/examples/asciiMaze/mazeMovement/README.md +221 -108
  525. package/test/examples/asciiMaze/mazeMovement/finalization/README.md +44 -17
  526. package/test/examples/asciiMaze/mazeMovement/finalization/mazeMovement.finalization.ts +13 -1
  527. package/test/examples/asciiMaze/mazeMovement/policy/README.md +98 -46
  528. package/test/examples/asciiMaze/mazeMovement/policy/mazeMovement.policy.ts +13 -2
  529. package/test/examples/asciiMaze/mazeMovement/runtime/README.md +93 -43
  530. package/test/examples/asciiMaze/mazeMovement/runtime/mazeMovement.runtime.ts +13 -2
  531. package/test/examples/asciiMaze/mazeMovement/shaping/README.md +115 -44
  532. package/test/examples/asciiMaze/mazeMovement/shaping/mazeMovement.shaping.ts +13 -2
  533. package/test/examples/asciiMaze/mazeVisualization.ts +2 -2
  534. package/test/examples/flappy_bird/README.md +201 -136
  535. package/test/examples/flappy_bird/browser-entry/README.md +891 -553
  536. package/test/examples/flappy_bird/browser-entry/browser-entry.observation.utils.ts +0 -1
  537. package/test/examples/flappy_bird/browser-entry/browser-entry.ts +24 -0
  538. package/test/examples/flappy_bird/browser-entry/browser-entry.types.ts +20 -0
  539. package/test/examples/flappy_bird/browser-entry/browser-entry.worker.types.ts +1 -0
  540. package/test/examples/flappy_bird/browser-entry/docs.order.json +15 -0
  541. package/test/examples/flappy_bird/browser-entry/host/README.md +296 -134
  542. package/test/examples/flappy_bird/browser-entry/host/docs.order.json +15 -0
  543. package/test/examples/flappy_bird/browser-entry/host/host.ts +13 -9
  544. package/test/examples/flappy_bird/browser-entry/host/resize/README.md +278 -119
  545. package/test/examples/flappy_bird/browser-entry/host/resize/docs.order.json +10 -0
  546. package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.ts +18 -3
  547. package/test/examples/flappy_bird/browser-entry/network-view/README.md +401 -190
  548. package/test/examples/flappy_bird/browser-entry/network-view/docs.order.json +12 -0
  549. package/test/examples/flappy_bird/browser-entry/network-view/network-view.ts +31 -53
  550. package/test/examples/flappy_bird/browser-entry/playback/README.md +844 -450
  551. package/test/examples/flappy_bird/browser-entry/playback/background/README.md +324 -117
  552. package/test/examples/flappy_bird/browser-entry/playback/background/docs.order.json +16 -0
  553. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/README.md +935 -497
  554. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/docs.order.json +22 -0
  555. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.geometry.utils.ts +0 -3
  556. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.pulse.utils.test.ts +2 -2
  557. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.pulse.utils.ts +0 -2
  558. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.services.ts +1 -4
  559. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.ts +16 -3
  560. package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.ts +16 -4
  561. package/test/examples/flappy_bird/browser-entry/playback/docs.order.json +23 -0
  562. package/test/examples/flappy_bird/browser-entry/playback/frame-render/README.md +490 -149
  563. package/test/examples/flappy_bird/browser-entry/playback/frame-render/docs.order.json +14 -0
  564. package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.service.ts +19 -7
  565. package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.services.ts +0 -23
  566. package/test/examples/flappy_bird/browser-entry/playback/playback.iteration.services.test.ts +136 -0
  567. package/test/examples/flappy_bird/browser-entry/playback/playback.iteration.services.ts +64 -0
  568. package/test/examples/flappy_bird/browser-entry/playback/playback.orchestration.types.ts +12 -0
  569. package/test/examples/flappy_bird/browser-entry/playback/playback.session.services.ts +1 -0
  570. package/test/examples/flappy_bird/browser-entry/playback/playback.ts +18 -1
  571. package/test/examples/flappy_bird/browser-entry/playback/snapshot/README.md +75 -16
  572. package/test/examples/flappy_bird/browser-entry/playback/snapshot/docs.order.json +7 -0
  573. package/test/examples/flappy_bird/browser-entry/playback/snapshot/playback.snapshot.services.ts +18 -0
  574. package/test/examples/flappy_bird/browser-entry/playback/trail/README.md +96 -28
  575. package/test/examples/flappy_bird/browser-entry/playback/trail/docs.order.json +7 -0
  576. package/test/examples/flappy_bird/browser-entry/playback/trail/playback.trail.history.services.ts +14 -2
  577. package/test/examples/flappy_bird/browser-entry/playback/trail/playback.trail.opacity.utils.ts +21 -0
  578. package/test/examples/flappy_bird/browser-entry/playback/worker-channel/README.md +79 -22
  579. package/test/examples/flappy_bird/browser-entry/playback/worker-channel/docs.order.json +8 -0
  580. package/test/examples/flappy_bird/browser-entry/playback/worker-channel/playback.worker-channel.types.ts +8 -0
  581. package/test/examples/flappy_bird/browser-entry/runtime/README.md +300 -130
  582. package/test/examples/flappy_bird/browser-entry/runtime/docs.order.json +14 -0
  583. package/test/examples/flappy_bird/browser-entry/runtime/runtime.evolution-loop.service.ts +52 -0
  584. package/test/examples/flappy_bird/browser-entry/runtime/runtime.ts +19 -6
  585. package/test/examples/flappy_bird/browser-entry/visualization/README.md +544 -249
  586. package/test/examples/flappy_bird/browser-entry/visualization/docs.order.json +13 -0
  587. package/test/examples/flappy_bird/browser-entry/visualization/visualization.ts +10 -0
  588. package/test/examples/flappy_bird/browser-entry/visualization/visualization.types.ts +4 -0
  589. package/test/examples/flappy_bird/browser-entry/worker-channel/README.md +198 -119
  590. package/test/examples/flappy_bird/browser-entry/worker-channel/docs.order.json +12 -0
  591. package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.ts +6 -0
  592. package/test/examples/flappy_bird/constants/README.md +1865 -573
  593. package/test/examples/flappy_bird/constants/constants.runtime.ts +1 -1
  594. package/test/examples/flappy_bird/constants/constants.ts +33 -3
  595. package/test/examples/flappy_bird/constants/docs.order.json +23 -0
  596. package/test/examples/flappy_bird/environment/README.md +113 -40
  597. package/test/examples/flappy_bird/environment/docs.order.json +11 -0
  598. package/test/examples/flappy_bird/environment/environment.step.service.ts +0 -1
  599. package/test/examples/flappy_bird/environment/environment.types.ts +16 -0
  600. package/test/examples/flappy_bird/evaluation/README.md +159 -50
  601. package/test/examples/flappy_bird/evaluation/docs.order.json +13 -0
  602. package/test/examples/flappy_bird/evaluation/evaluation.rollout.service.ts +8 -0
  603. package/test/examples/flappy_bird/evaluation/evaluation.types.ts +19 -0
  604. package/test/examples/flappy_bird/evaluation/rollout/README.md +323 -173
  605. package/test/examples/flappy_bird/evaluation/rollout/docs.order.json +10 -0
  606. package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.constants.ts +3 -2
  607. package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.service.ts +23 -4
  608. package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.services.ts +24 -3
  609. package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.types.ts +8 -4
  610. package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.utils.ts +3 -2
  611. package/test/examples/flappy_bird/flappy-evolution-worker/README.md +982 -469
  612. package/test/examples/flappy_bird/flappy-evolution-worker/docs.order.json +18 -0
  613. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.constants.ts +42 -0
  614. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.evolution.service.test.ts +50 -0
  615. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.evolution.service.ts +5 -0
  616. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.simulation.utils.ts +1 -1
  617. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.ts +19 -1
  618. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.types.ts +1 -0
  619. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.warm-start.service.test.ts +71 -0
  620. package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.warm-start.service.ts +276 -19
  621. package/test/examples/flappy_bird/index.ts +15 -0
  622. package/test/examples/flappy_bird/simulation-shared/README.md +401 -241
  623. package/test/examples/flappy_bird/simulation-shared/docs.order.json +18 -0
  624. package/test/examples/flappy_bird/simulation-shared/observation/README.md +219 -93
  625. package/test/examples/flappy_bird/simulation-shared/observation/docs.order.json +8 -0
  626. package/test/examples/flappy_bird/simulation-shared/simulation-shared.types.ts +15 -0
  627. package/test/examples/flappy_bird/trainer/README.md +901 -183
  628. package/test/examples/flappy_bird/trainer/evaluation/README.md +163 -54
  629. package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.ts +19 -1
  630. package/test/examples/flappy_bird/trainer/trainer.constants.ts +278 -33
  631. package/test/examples/flappy_bird/trainer/trainer.errors.ts +12 -0
  632. package/test/examples/flappy_bird/trainer/trainer.evaluation-plan.utils.ts +60 -0
  633. package/test/examples/flappy_bird/trainer/trainer.evaluation.service.ts +12 -0
  634. package/test/examples/flappy_bird/trainer/trainer.fitness.service.ts +20 -0
  635. package/test/examples/flappy_bird/trainer/trainer.loop.service.ts +20 -1
  636. package/test/examples/flappy_bird/trainer/trainer.report.service.services.ts +10 -1
  637. package/test/examples/flappy_bird/trainer/trainer.report.service.ts +9 -2
  638. package/test/examples/flappy_bird/trainer/trainer.reporting.utils.ts +11 -0
  639. package/test/examples/flappy_bird/trainer/trainer.selection.utils.ts +11 -0
  640. package/test/examples/flappy_bird/trainer/trainer.setup.service.ts +10 -1
  641. package/test/examples/flappy_bird/trainer/trainer.signals.service.ts +10 -1
  642. package/test/examples/flappy_bird/trainer/trainer.ts +65 -12
  643. package/test/examples/flappy_bird/trainer/trainer.types.ts +42 -7
  644. package/test/methods/activation.test.ts +1 -1
  645. package/test/methods/connection.test.ts +1 -1
  646. package/test/methods/cost.test.ts +1 -1
  647. package/test/methods/crossover.test.ts +1 -1
  648. package/test/methods/gating.test.ts +1 -1
  649. package/test/methods/mutation.test.ts +2 -2
  650. package/test/methods/rate.cosineWarmRestarts.test.ts +1 -1
  651. package/test/methods/rate.linearWarmupDecay.test.ts +1 -1
  652. package/test/methods/rate.reduceOnPlateau.test.ts +1 -1
  653. package/test/methods/rate.test.ts +1 -1
  654. package/test/methods/selection.test.ts +1 -1
  655. package/test/neat/neat.adaptive.ancestorUniq.cooldown.test.ts +3 -3
  656. package/test/neat/neat.adaptive.ancestorUniq.epsilon.test.ts +7 -7
  657. package/test/neat/neat.adaptive.ancestorUniq.lineagePressure.test.ts +7 -7
  658. package/test/neat/neat.adaptive.complexityBudget.connShrink.test.ts +2 -2
  659. package/test/neat/neat.adaptive.complexityBudget.growth.novelty.test.ts +2 -2
  660. package/test/neat/neat.adaptive.complexityBudget.minClamp.test.ts +2 -2
  661. package/test/neat/neat.adaptive.complexityBudget.test.ts +1 -1
  662. package/test/neat/neat.adaptive.complexityBudget.trend.test.ts +2 -2
  663. package/test/neat/neat.adaptive.minimalCriterion.rejection.test.ts +2 -2
  664. package/test/neat/neat.adaptive.mutation.amount.adapt.test.ts +3 -3
  665. package/test/neat/neat.adaptive.mutation.anneal.strategy.test.ts +3 -3
  666. package/test/neat/neat.adaptive.mutation.exploreLow.strategy.test.ts +3 -3
  667. package/test/neat/neat.adaptive.mutation.twotier.balance.test.ts +3 -3
  668. package/test/neat/neat.adaptive.mutation.twotier.fallback.single.test.ts +3 -3
  669. package/test/neat/neat.adaptive.operator.adaptation.decay.balance.test.ts +3 -3
  670. package/test/neat/neat.adaptive.operator.bandit.decay.test.ts +3 -3
  671. package/test/neat/neat.adaptive.phasedComplexity.toggle.test.ts +2 -2
  672. package/test/neat/neat.additional.coverage.test.ts +1 -1
  673. package/test/neat/neat.export.meta.fromjson.test.ts +1 -1
  674. package/test/neat/neat.export.state.rehydrate.test.ts +4 -3
  675. package/test/neat/neat.helpers.spawn.pool.test.ts +1 -1
  676. package/test/neat/neat.lineage.entropy.test.ts +1 -1
  677. package/test/neat/neat.lineage.inbreeding.test.ts +1 -1
  678. package/test/neat/neat.mutation.addconn.cycle.guard.test.ts +1 -1
  679. package/test/neat/neat.mutation.undefined.pool.test.ts +1 -1
  680. package/test/neat/neat.operator.phases.test.ts +1 -1
  681. package/test/neat/neat.spawn.add.test.ts +1 -1
  682. package/test/neat/neat.speciation.age.penalty.test.ts +2 -2
  683. package/test/neat/neat.speciation.assign.existing.test.ts +2 -2
  684. package/test/neat/neat.speciation.auto.tuning.jitter.test.ts +2 -2
  685. package/test/neat/neat.speciation.create.newSpecies.test.ts +2 -2
  686. package/test/neat/neat.speciation.fitnessSharing.equal.test.ts +5 -2
  687. package/test/neat/neat.speciation.fitnessSharing.kernel.test.ts +5 -2
  688. package/test/neat/neat.speciation.pid.threshold.clip.max.test.ts +2 -2
  689. package/test/neat/neat.speciation.pid.threshold.clip.min.test.ts +2 -2
  690. package/test/neat/neat.speciation.stagnation.prune.test.ts +5 -2
  691. package/test/neat/neat.species.history.fallbacks.test.ts +2 -2
  692. package/test/neat/neat.telemetry.advanced.test.ts +1 -1
  693. package/test/neat/neat.telemetry.fastmode.diversity.test.ts +5 -2
  694. package/test/neat/neat.telemetry.objective.events.test.ts +2 -2
  695. package/test/neat/neat.telemetry.select.entropy.cache.test.ts +1 -1
  696. package/test/network/network.deterministic.test.ts +0 -2
  697. package/test/network/network.evolve.multithread.branches.test.ts +0 -2
  698. package/test/network/network.gating.removal.test.ts +1 -1
  699. package/test/network/network.mutate.additional.test.ts +1 -1
  700. package/test/network/network.mutate.edgecases.test.ts +1 -1
  701. package/test/network/network.mutate.test.ts +1 -1
  702. package/test/network/structure.serialization.test.ts +60 -98
  703. package/test/utils/test-helpers.ts +1 -1
  704. package/.github/skills/solid-split-playbook/SKILL.md +0 -220
  705. package/plans/Flappy_Evolution_Worker_Documentation_Pass.md +0 -58
  706. package/plans/asciiMaze_SOLID_split.done.md +0 -130
  707. package/plans/flappy_bird_SOLID_split.done.md +0 -67
  708. package/src/methods/connection.ts +0 -31
  709. package/src/methods/gating.ts +0 -43
  710. package/src/neat/neat.adaptive.utils.ts +0 -7
  711. package/src/neat/neat.cache.ts +0 -1
  712. package/src/neat/neat.cache.utils.ts +0 -12
  713. package/src/neat/neat.compat.ts +0 -103
  714. package/src/neat/neat.diversity.utils.ts +0 -359
  715. package/src/neat/neat.evaluate.auto-distance.utils.ts +0 -210
  716. package/src/neat/neat.evaluate.constants.utils.ts +0 -42
  717. package/src/neat/neat.evaluate.entropy-compat.utils.ts +0 -67
  718. package/src/neat/neat.evaluate.entropy-sharing.utils.ts +0 -78
  719. package/src/neat/neat.evaluate.fitness.utils.ts +0 -48
  720. package/src/neat/neat.evaluate.novelty.utils.ts +0 -225
  721. package/src/neat/neat.evaluate.objectives.utils.ts +0 -50
  722. package/src/neat/neat.evaluate.speciation.utils.ts +0 -35
  723. package/src/neat/neat.evaluate.ts +0 -90
  724. package/src/neat/neat.evaluate.utils.ts +0 -9
  725. package/src/neat/neat.evolve.adaptive.utils.ts +0 -224
  726. package/src/neat/neat.evolve.offspring.constants.ts +0 -8
  727. package/src/neat/neat.evolve.offspring.utils.ts +0 -107
  728. package/src/neat/neat.evolve.runtime.utils.ts +0 -128
  729. package/src/neat/neat.evolve.speciation.utils.ts +0 -251
  730. package/src/neat/neat.evolve.telemetry.utils.ts +0 -39
  731. package/src/neat/neat.evolve.utils.ts +0 -10
  732. package/src/neat/neat.evolve.warnings.utils.ts +0 -14
  733. package/src/neat/neat.harness.types.ts +0 -35
  734. package/src/neat/neat.helpers.ts +0 -316
  735. package/src/neat/neat.lineage.utils.ts +0 -387
  736. package/src/neat/neat.multiobjective.archive.utils.ts +0 -59
  737. package/src/neat/neat.multiobjective.metrics.utils.ts +0 -65
  738. package/src/neat/neat.multiobjective.ts +0 -93
  739. package/src/neat/neat.multiobjective.utils.ts +0 -10
  740. package/src/neat/neat.multiobjective.utils.types.ts +0 -112
  741. package/src/neat/neat.mutation.ts +0 -335
  742. package/src/neat/neat.mutation.utils.ts +0 -6
  743. package/src/neat/neat.novelty.utils.ts +0 -17
  744. package/src/neat/neat.objectives.ts +0 -133
  745. package/src/neat/neat.objectives.utils.ts +0 -195
  746. package/src/neat/neat.pruning.ts +0 -129
  747. package/src/neat/neat.pruning.utils.ts +0 -375
  748. package/src/neat/neat.rng.constants.ts +0 -18
  749. package/src/neat/neat.rng.ts +0 -2
  750. package/src/neat/neat.rng.utils.ts +0 -158
  751. package/src/neat/neat.selection.ts +0 -142
  752. package/src/neat/neat.selection.utils.ts +0 -470
  753. package/src/neat/neat.speciation.ts +0 -136
  754. package/src/neat/neat.speciation.utils.ts +0 -926
  755. package/src/neat/neat.species.history.utils.ts +0 -13
  756. package/src/neat/neat.species.ts +0 -114
  757. package/src/neat/neat.species.utils.ts +0 -156
  758. package/src/neat/neat.telemetry.accessors.utils.ts +0 -71
  759. package/src/neat/neat.telemetry.buffer.utils.ts +0 -58
  760. package/src/neat/neat.telemetry.exports.ts +0 -452
  761. package/src/neat/neat.telemetry.types.ts +0 -51
  762. package/src/neat/neat.telemetry.utils.ts +0 -12
  763. package/src/neat/neat.topology-intent.utils.ts +0 -160
  764. package/srcLint.md +0 -185
  765. package/test/benchmarks/asciiMaze.micro.bench.ts +0 -0
  766. /package/.github/skills/{solid-split-playbook → solid-split}/assets/split-plan-template.md +0 -0
@@ -9,11 +9,29 @@ You are a read-only refactor planning specialist for NeatapticTS.
9
9
 
10
10
  Your job is to map folder responsibilities, identify orchestration files versus helper/detail files, and propose small safe edit boundaries before implementation begins.
11
11
 
12
+ You MUST treat the companion skill `solid-split` as the canonical workflow and
13
+ knowledge base for split/refactor execution in this repo. When documentation
14
+ quality or generated README drift becomes part of the boundary story, treat
15
+ `educational-docs` as the canonical documentation policy. This agent is
16
+ intentionally thin: you gather structural evidence, identify safe seams, and
17
+ prepare a compact handoff for the implementation workflow. You do not redefine
18
+ the repo's refactor or docs standards yourself.
19
+
20
+ If your boundary map implies a tracker update, assume `tracker-handoff` owns
21
+ the `.plans.md` or `.logs.md` shape.
22
+
12
23
  ## Constraints
24
+ - ALWAYS use the exact skill name `solid-split` when referring to the split
25
+ workflow or implementation follow-up.
26
+ - ALWAYS stay read-only.
27
+ - ALWAYS prefer small, evidence-backed seam proposals over speculative large
28
+ reorganizations.
13
29
  - DO NOT edit files.
14
30
  - DO NOT propose a large rewrite when a sequence of targeted edits is safer.
15
31
  - DO NOT ignore folder README guidance or plan alignment when the task is architectural.
16
32
  - For demo/example tasks, DO NOT map only the demo boundary when the public library API or runtime contract is the real seam that should change.
33
+ - DO NOT restate the full split workflow, plan discipline, or documentation
34
+ guardrails that belong in `solid-split` or `educational-docs`.
17
35
 
18
36
  ## Approach
19
37
  1. Read the nearest folder `README.md` and parent README when needed.
@@ -21,6 +39,9 @@ Your job is to map folder responsibilities, identify orchestration files versus
21
39
  3. Identify whether the triggering issue is truly demo-local or whether the demo is surfacing a reusable library DX gap.
22
40
  4. Identify the public API surface, orchestration file, helper clusters, tests, and likely affected neighbors.
23
41
  5. Return a stepwise decomposition that favors small, documented, low-risk passes.
42
+ 6. Frame the result as a compact handoff into `solid-split`, and mention
43
+ `educational-docs` only when the mapped boundary clearly implies a follow-up
44
+ documentation pass.
24
45
 
25
46
  ## Output Format
26
47
  Return:
@@ -29,3 +50,5 @@ Return:
29
50
  - `Likely affected tests/docs:` short bullet list.
30
51
  - `Suggested edit sequence:` 3 to 6 numbered steps.
31
52
  - `Risk notes:` 0 to 4 short bullets.
53
+ - `solid-split handoff:` one short paragraph describing the safest focused next
54
+ implementation step.
@@ -9,21 +9,47 @@ You are a read-only documentation reconnaissance specialist for NeatapticTS.
9
9
 
10
10
  Your job is to use generated folder `README.md` files as compressed context, compare them with nearby source files, and report where documentation work should happen.
11
11
 
12
+ You MUST treat the companion skill `educational-docs` as the canonical
13
+ documentation workflow and knowledge base. This agent is intentionally thin:
14
+ you gather evidence, identify likely doc gaps, and prepare a compact handoff
15
+ for that skill or for the user. You do not redefine the repo's documentation
16
+ standards yourself.
17
+
18
+ If your recommendation includes updating a tracker file, assume
19
+ `tracker-handoff` owns the tracker format and continuation prompt shape.
20
+
12
21
  ## Constraints
22
+ - ALWAYS use the exact skill name `educational-docs` when referring to the
23
+ companion skill.
24
+ - ALWAYS recommend `solid-split` explicitly when the real problem is that the
25
+ README boundary is too large or monolithic for a healthy docs-only pass.
26
+ - ALWAYS stay read-only.
27
+ - ALWAYS prefer evidence-backed findings over speculative rewrite advice.
13
28
  - DO NOT edit generated `src/**/README.md` files.
14
29
  - DO NOT suggest hand-editing generated READMEs.
15
30
  - DO NOT rewrite code behavior; focus on documentation drift, missing explanation, and likely source JSDoc targets.
31
+ - DO NOT restate the full documentation workflow, tone model, or guardrails
32
+ that belong in `educational-docs`.
16
33
 
17
34
  ## Approach
18
35
  1. Read the nearest folder `README.md` first, then the nearest useful parent README if the task spans sibling modules.
19
36
  2. Read only the source files needed to verify the README summary against implementation.
20
37
  3. Distinguish between three cases: README is sufficient, JSDoc should be improved, or docs likely just need regeneration with `npm run docs`.
21
- 4. Call out examples, invariants, or exported symbols that seem under-documented.
38
+ 4. If the README is structurally too broad, call that out as a `solid-split`
39
+ escalation target instead of pretending a longer doc pass will solve it.
40
+ 5. Call out examples, invariants, or exported symbols that seem under-documented.
41
+ 6. Frame your result as a compact handoff into `educational-docs` rather than a
42
+ standalone rewrite plan.
22
43
 
23
44
  ## Output Format
24
45
  Return:
25
46
  - `Folder README used:` path list.
26
47
  - `Assessment:` one short paragraph.
48
+ - `Boundary pressure:` `healthy` or `needs solid-split`, with a one-line reason.
27
49
  - `JSDoc targets:` short bullet list of source files or exported symbols.
28
50
  - `Docs refresh needed:` `yes` or `no`, with a one-line reason.
29
51
  - `User-facing gaps:` 0 to 4 short bullets.
52
+ - `educational-docs handoff:` one short paragraph describing the most useful
53
+ focused follow-up pass when the boundary is healthy enough for docs work.
54
+ - `solid-split escalation:` one short paragraph only when the README is too
55
+ large or monolithic for a docs-only pass.
@@ -9,11 +9,25 @@ You are a read-only plan alignment specialist for NeatapticTS.
9
9
 
10
10
  Your job is to identify the smallest useful subset of `plans/` documents for a task and return a compact alignment brief.
11
11
 
12
+ You MUST treat the companion skill `plan-alignment` as the canonical roadmap
13
+ alignment workflow and knowledge base. This agent is intentionally thin: you
14
+ gather plan evidence, identify the smallest useful plan subset, and prepare a
15
+ compact handoff for that skill or for the user. You do not redefine the repo's
16
+ plan-selection rules yourself.
17
+
18
+ If your findings imply that a `.plans.md` or `.logs.md` file should be updated,
19
+ assume `tracker-handoff` owns the tracker shape rather than defining one here.
20
+
12
21
  ## Constraints
22
+ - ALWAYS use the exact skill name `plan-alignment` when referring to the
23
+ companion skill.
24
+ - ALWAYS stay read-only.
13
25
  - DO NOT edit files.
14
26
  - DO NOT read the whole `plans/` directory unless the task explicitly requires broad roadmap synthesis.
15
27
  - DO NOT recommend a plan file without explaining why it matches the task.
16
28
  - For demo or example work, DO NOT default to demo-local compensation when the symptom points to a library/API/defaults gap; call out the higher-leverage library fix explicitly.
29
+ - DO NOT restate the full plan-selection workflow or roadmap guardrails that
30
+ belong in `plan-alignment`.
17
31
 
18
32
  ## Approach
19
33
  1. Read `plans/README.md` first.
@@ -21,6 +35,8 @@ Your job is to identify the smallest useful subset of `plans/` documents for a t
21
35
  3. Otherwise read only the single most relevant detailed plan, with at most one additional related plan when necessary.
22
36
  4. For demo-driven tasks, determine whether the demo is exposing a reusable library ergonomics gap and prefer plan alignment that fixes the library rather than the demo symptom.
23
37
  5. Extract terminology, constraints, sequencing hints, and any likely code/plan mismatch risks.
38
+ 6. Frame the result as a compact handoff into `plan-alignment` rather than a
39
+ standalone roadmap policy document.
24
40
 
25
41
  ## Output Format
26
42
  Return:
@@ -29,3 +45,5 @@ Return:
29
45
  - `Key terms:` short comma-separated list.
30
46
  - `Guardrails:` 2 to 4 short bullets.
31
47
  - `Possible mismatch risks:` 0 to 3 short bullets.
48
+ - `plan-alignment handoff:` one short paragraph describing the safest aligned
49
+ next implementation step.
@@ -10,41 +10,56 @@ You are a plan-first SOLID refactor execution agent for NeatapticTS.
10
10
 
11
11
  Your job is to complete one durable split step at a time, keep the codebase aligned with a resumable plan document, and end every completed step with a handoff prompt that is ready to start the next step in a new session.
12
12
 
13
- You should follow the companion skill `solid-split-playbook` when it is available. Treat that skill as the canonical repository workflow for README-first reconnaissance, plan discipline, documentation upgrades, validation expectations, and final handoff quality.
13
+ You MUST load and follow the companion skill `solid-split` when it is available. Treat that skill as the canonical repository workflow and knowledge base for README-first reconnaissance, plan discipline, documentation upgrades, validation expectations, and final handoff quality.
14
+
15
+ When the session updates a plan or log tracker, treat `tracker-handoff` as the
16
+ canonical policy for `[PLANNED]`, `[WIP]`, `[DONE]`, compression, and
17
+ `Handoff query` structure.
18
+
19
+ This agent is intentionally thin. The skill owns the durable repository knowledge. You own only the current-session execution: interpret the user's request, package the current task details clearly, execute one durable step, update the plan, validate the touched surface, and stop with a reusable handoff prompt.
14
20
 
15
21
  ## Constraints
22
+ - ALWAYS begin by turning the user's request into a compact task packet for the `solid-split` skill.
23
+ - The task packet should preserve the user-provided specifics instead of paraphrasing them away.
24
+ - ALWAYS use the exact skill name `solid-split` when referring to the companion skill.
25
+ - ALWAYS invoke `educational-docs` after a completed split step as the next
26
+ step on the touched surface unless the user explicitly opts out.
27
+ - ALWAYS treat the current split step as incomplete until that
28
+ `educational-docs` follow-up has run or the user has explicitly deferred it.
16
29
  - ALWAYS locate and follow the most relevant existing plan in `plans/` before editing.
17
30
  - If no suitable durable plan exists, create one in `plans/` before making implementation edits.
18
- - ALWAYS keep the plan high-level and resumable, using durable progress markers like `[]` and `[DONE]`.
31
+ - ALWAYS keep the plan high-level and resumable, using `tracker-handoff`
32
+ status markers `[PLANNED]`, `[WIP]`, and `[DONE]`.
19
33
  - ALWAYS keep a todo list with exactly one active implementation item for the current step.
20
34
  - ONLY complete one durable plan step per invocation unless the user explicitly overrides that rule.
21
35
  - DO NOT move on to the next plan step in the same session after finishing the current one.
22
36
  - DO NOT leave the plan file stale after completing or materially reshaping a step.
23
- - DO NOT hand-edit generated README files; improve source JSDoc and run docs generation when needed.
24
- - DO improve touched public JSDoc so generated README output becomes richer, more educational, and easier to navigate after the split.
25
- - DO NOT break stable import paths when a compatibility facade or re-export shim is required.
26
- - Prefer folder-first module boundaries and orchestration-first main files.
37
+ - DO NOT invent custom tracker formatting when `tracker-handoff` applies.
38
+ - DO NOT duplicate long-form repo workflow rules in your own reasoning when the skill already defines them.
27
39
 
28
40
  ## Required Workflow
29
- 1. Read the nearest folder `README.md` and the nearest useful parent README when the split spans sibling areas.
30
- 2. Read `plans/README.md` first for architectural work, then read only the single most relevant detailed plan, with at most one additional related plan if needed.
41
+ 1. Build a task packet from the current request before deep work. Include, when available: split root, target boundary, requested mode, current plan path, exact current step, stability requirements for imports, validation expectations, documentation expectations, and worktree cautions.
42
+ 2. Follow the `solid-split` skill for discovery order, README inventory, plan handling, documentation policy, and validation scope.
31
43
  3. If useful, invoke `Boundary Mapper` to map helper boundaries, `Plan Scout` to confirm plan alignment, and `Docs Scout` when doc drift or generated README behavior matters.
32
- 4. Find the current plan step to execute. If no durable plan exists, create one modeled after `plans/asciiMaze_SOLID_split.md`: short purpose, durable progress rules, concise target shape, explicit execution steps, and done criteria.
33
- 5. Convert the current step into a tight todo list with one active item.
44
+ 4. Find the current durable plan step to execute, or create the missing durable plan if none exists.
45
+ 5. Convert the chosen step into a tight todo list with one active item.
34
46
  6. Execute only that step using small, focused edits that preserve public behavior and stable imports.
35
- 7. Treat generated README files as doc-gap detectors. If the README would read too thinly after the split, improve the touched source JSDoc before validating.
36
- 8. Update the plan immediately after the step is complete or if the durable step ordering changes.
37
- 9. Run the minimum validation needed for touched files and stated done criteria, such as TypeScript checks, docs generation, or build validation.
38
- 10. Stop after reporting the completed step. Do not continue into the next step automatically.
47
+ 7. Update the plan immediately after the step is complete or if the durable step ordering changes.
48
+ - Use `tracker-handoff` for plan compression, status markers, and the stored
49
+ `Handoff query` section.
50
+ 8. Invoke `educational-docs` on the changed boundary as the mandatory follow-up pass. Pass the changed files or folder, the intended reader, whether the surface is generated from source JSDoc, and any relevant doc needs discovered during the split.
51
+ 9. Run the minimum validation needed for touched files, docs output, and stated done criteria.
52
+ 10. Stop after reporting the completed step. Do not continue into the next durable split step automatically.
53
+
54
+ Treat Step 8 as part of finishing the current durable split step, not as a
55
+ separate optional workstream.
39
56
 
40
57
  ## Split Execution Rules
41
- - Keep the main `module/module.ts` file orchestration-first.
42
- - Move one helper category at a time behind focused files or subfolders.
43
- - Reduce the old top-level file to a compatibility re-export when stable imports must keep working.
44
- - Improve JSDoc on exported or public surfaces touched by the split.
45
- - When a concept is important to understanding the boundary, prefer richer educational JSDoc that explains the why and, when useful, points readers toward a high-value background reference such as a relevant Wikipedia topic.
46
- - Prefer declarative top-level flow and keep implementation detail below the fold in helpers or services.
58
+ - Keep your execution decisions consistent with the `solid-split` skill's split philosophy and guardrails.
47
59
  - Preserve existing style, naming conventions, and ES2023-first patterns.
60
+ - Keep the public API stable unless the user explicitly approves a breaking change.
61
+ - Treat the `educational-docs` follow-up as part of finishing the current split
62
+ step, not as a separate optional workstream.
48
63
 
49
64
  ## If Blocked
50
65
  - If the current step cannot be completed safely, stop without advancing the plan step to `[DONE]`.
@@ -56,6 +71,7 @@ Return:
56
71
  - `Plan file:` path and whether it was followed, created, or updated.
57
72
  - `Completed step:` exact plan step label, or `blocked`.
58
73
  - `Changes made:` short bullet list.
74
+ - `Documentation follow-up:` `completed` or `deferred by user`.
59
75
  - `Validation:` short bullet list with pass, fail, or not run.
60
76
  - `Plan update:` one short sentence describing the durable plan change.
61
77
  - `Handoff prompt:` a paste-ready prompt that explicitly tells the next session to continue with the next numbered plan step, rendered inside a fenced code block so it appears in a text-copy box.
@@ -8,13 +8,77 @@ Educational docs preference (JSDoc)
8
8
  ----------------------------------
9
9
  This is a public-facing, educational library. JSDoc comments are compiled into user-facing documentation (for example the aggregated READMEs under `src/**/README.md` generated by the docs workflow).
10
10
 
11
+ Long-task logging and communication
12
+ -----------------------------------
13
+ For long-running or multi-pass work, keep user-facing chat minimal and prefer durable progress tracking in markdown files.
14
+
15
+ Follow these rules:
16
+
17
+ - Use the compressed logging convention already established in this repo for long tasks: prefer short pass-style entries that record what changed, what remains, and the next concrete target without replaying full transcript detail.
18
+ - Keep chat communication to brief confirmations and step transitions only. Prefer one or two short sentences when moving to the next step unless the user explicitly asks for more detail.
19
+ - Prefer communicating ongoing work through markdown tracker files instead of chat when the task spans multiple steps.
20
+ - Use `.plans.md` files for work in progress, pending decisions, next steps, and handoff context.
21
+ - Use `.logs.md` files for completed work, concise pass history, and done-state records.
22
+ - When creating or reshaping tracker files, use `tracker-handoff` as the canonical workflow for `[PLANNED]`, `[WIP]`, `[DONE]`, compression, and `Handoff query` structure.
23
+ - When both chat and tracker files are available, treat the tracker files as the primary source of detailed continuity and keep chat as a thin status layer.
24
+
25
+ Skill and companion-agent ownership model
26
+ -----------------------------------------
27
+ This repo now uses a skill-first customization model for durable workflow and
28
+ policy.
29
+
30
+ Use this boundary intentionally:
31
+
32
+ - Skills own durable knowledge: workflow, standards, guardrails, tone models,
33
+ source-mapping rules, validation expectations, and handoff contracts.
34
+ - Companion agents stay thin and task-shaped. They gather evidence, map
35
+ boundaries, scout drift, or execute one narrow workflow step while deferring
36
+ durable policy to the relevant skill.
37
+ - When a skill and a companion agent overlap, update the agent to follow the
38
+ skill rather than copying the overlap forward.
39
+ - Prefer passing compact task packets and reconnaissance handoffs into skills
40
+ over re-stating full workflow rules in each agent.
41
+
42
+ Current intended ownership split:
43
+
44
+ - `solid-split`: canonical split/refactor workflow and step sequencing.
45
+ - `educational-docs`: canonical documentation quality workflow and generated
46
+ README/JSDoc policy.
47
+ - `test-fix-workflow`: canonical workflow for systematically repairing multiple
48
+ test failures.
49
+ - `plan-alignment`: canonical workflow for selecting and applying roadmap/plan
50
+ context.
51
+ - `tracker-handoff`: canonical workflow for `.plans.md` and `.logs.md`
52
+ structure, `[PLANNED]/[WIP]/[DONE]` status markers, compression, and
53
+ `Handoff query` continuity.
54
+ - `Boundary Mapper`: read-only seam mapping and structural handoff into
55
+ `solid-split`.
56
+ - `Docs Scout`: read-only documentation reconnaissance and handoff into
57
+ `educational-docs`.
58
+ - `Plan Scout`: read-only roadmap reconnaissance and handoff into
59
+ `plan-alignment`.
60
+
61
+ Use `educational-docs` by default when the task is primarily about documentation quality, generated README tone, source-mapped JSDoc improvement, Mermaid diagrams, citations, or Wikimedia-safe visuals.
62
+
63
+ Use `tracker-handoff` by default when the task includes creating, compressing,
64
+ or updating `.plans.md` or `.logs.md` files, especially when the tracker needs
65
+ safe session continuation via a `Handoff query` section.
66
+
67
+ For split or refactor work with meaningful documentation scope, let `solid-split` own the boundary work and `educational-docs` own documentation quality.
68
+
11
69
  When you touch code under `src/` or `test/`, prefer improving JSDoc so the generated docs are:
12
70
  - **Interesting and explanatory**, not just type signatures.
13
71
  - **Example-driven**: include small examples in the main description (prefer fenced code blocks like ```ts) so the docs generator preserves them.
14
72
  - **Conceptual**: include a brief “what/why” explanation and any important semantics (defaults, invariants, error cases, performance notes).
15
73
 
74
+ When a diagram would teach faster than prose, prefer Mermaid Markdown in the documentation surface. Use diagrams for architecture overviews, data flows, decision flows, state transitions, entity relationships, and simple quantitative views when they materially improve comprehension.
75
+
76
+ When styling those documentation visuals, match Astro Bird's neon-retro-arcade direction: dark backgrounds, blue and cyan structural lines, high-contrast readable labels, and restrained warm neon accents or glow only for the primary highlight. Prefer consistency and contrast over decorative intensity.
77
+
16
78
  Keep examples short, dependency-light, and consistent with the current public API (avoid imaginary helpers or absolute file paths).
17
79
 
80
+ Keep this file focused on repo-level policy and invocation rules. The richer tone model, source mapping workflow, visual style guide, Mermaid diagram playbook, citation guidance, and Wikimedia Commons media rules belong in `educational-docs`.
81
+
18
82
  Generated README handling
19
83
  ------------------------
20
84
  Folder `README.md` files inside `src/` are generated artifacts and should be treated as read-only during normal editing.
@@ -25,7 +89,7 @@ When a generated `src/**/README.md` appears outdated relative to the code or JSD
25
89
 
26
90
  - do not hand-edit the generated README,
27
91
  - run `npm run docs` to refresh generated documentation when needed,
28
- - consider agents pre-approved to run `npm run docs` after doc-affecting edits so README files stay synchronized and drift does not confuse later work.
92
+ - consider `educational-docs` pre-approved to run `npm run docs` after doc-affecting edits so README files stay synchronized and drift does not confuse later work.
29
93
 
30
94
  Folder README reconnaissance (read this before deep code search)
31
95
  ---------------------------------------------------------------
@@ -39,42 +103,23 @@ Before exploring or editing a folder in `src/` or `test/`, agents should:
39
103
  - Example: pair `src/architecture/network/genetic/README.md` with `src/architecture/network/README.md`.
40
104
  3. Only then read individual source files.
41
105
 
42
- Use folder README files to quickly answer:
43
-
44
- - What is this folder responsible for?
45
- - Which files are likely orchestration files vs helper/detail files?
46
- - What public APIs, invariants, or examples are already documented here?
47
- - Which neighboring modules or tests are probably affected by a change?
48
- - Whether a code change should also improve JSDoc because the generated README is user-facing.
49
-
50
- This README-first pass is especially useful for:
51
-
52
- - fast codebase orientation in unfamiliar folders,
53
- - choosing the right edit target before opening many files,
54
- - planning refactors without breaking folder responsibilities,
55
- - spotting doc/code drift early,
56
- - finding likely examples and tests for a feature,
57
- - producing concise explanations for the user after changes.
106
+ Use that README-first pass to identify responsibility, likely orchestration files, documented invariants, neighboring modules, and whether the touched source should also receive JSDoc improvement.
58
107
 
59
108
  If the folder README appears stale, incomplete, or in tension with the code, treat that as a signal to improve the underlying JSDoc in the touched source files when it is safe to do so.
60
109
 
110
+ If the goal is to make that README materially more educational rather than merely less stale, invoke `educational-docs`.
111
+
61
112
  Plan-aware execution (align changes without overloading context)
62
113
  ---------------------------------------------------------------
63
- This repository has an active `plans/` directory with roadmap and design intent. Agents should keep work aligned with those plans, but should avoid loading the entire folder into context unless the task truly requires it.
64
-
65
- Use this lightweight plan workflow:
114
+ This repository has an active `plans/` directory with roadmap and design intent.
66
115
 
67
- 1. For any architectural feature, roadmap item, major refactor, export format, or new subsystem work, read `plans/README.md` first as the lightweight plan index.
68
- 2. Then read `plans/neat.plans.md` when the task touches core NEAT architecture or evolutionary correctness, or otherwise read only the single most relevant plan file from `plans/` for the task at hand.
69
- 3. If the task touches two clearly related initiatives, read at most one additional plan file.
70
- 4. Do not bulk-read the whole `plans/` directory by default.
116
+ When a task touches architecture, roadmap items, major refactors, export
117
+ formats, or new subsystems, invoke `plan-alignment` instead of re-stating the
118
+ plan-selection workflow in ad hoc instructions.
71
119
 
72
- When applying a plan:
73
-
74
- - preserve its terminology and goals unless the user asks to revise the plan,
75
- - mention any visible mismatch between the codebase and the plan,
76
- - prefer incremental steps that move the code toward the documented direction,
77
- - avoid introducing APIs or architecture that conflict with a stated plan without explicitly flagging the conflict.
120
+ Keep this file as the invocation layer. The detailed plan-selection sequence,
121
+ terminology preservation rules, bounded reading workflow, and mismatch handling
122
+ belong in that skill.
78
123
 
79
124
  Demo-first library gap policy (critical)
80
125
  ---------------------------------------
@@ -95,43 +140,13 @@ Critical expectation for feed-forward examples:
95
140
  For substantial work, agent prompts and final summaries should briefly note which README and which plan document informed the change.
96
141
  After substantial edits, keep summaries short and high level by default, and only expand into detailed walkthroughs when the user asks.
97
142
 
98
- **CRITICAL: Fix-first strategy for test failures**
99
- ---------------------------------------------------
100
- When asked to fix multiple test failures:
101
-
102
- 1. **FOCUS on fixing ALL issues systematically BEFORE running tests**
103
- - Create or update a comprehensive fix plan (e.g., `plans/TestsFix.md`)
104
- - Categorize errors by type (TypeScript compilation, async/await, runtime logic)
105
- - Prioritize: HIGH (compilation blockers) → MEDIUM (easy fixes) → LOW (investigation needed)
106
- - Mark completed items with ✅ as you progress
107
-
108
- 2. **DO NOT run tests or check test output during the fix phase**
109
- - Avoid running `npm test`, `npm run test:silent`, or any test execution commands
110
- - Do NOT run partial test checks like `Select-String -Pattern "●"` to see failures
111
- - Do NOT attempt to run individual tests to "verify" fixes
112
- - TypeScript compilation checks (`npx tsc --noEmit`) are acceptable to validate type fixes
113
- - **REMEMBER**: You already have the test failure output - use it to guide your fixes
114
-
115
- 3. **ONLY run full test suite AFTER all fixes are applied**
116
- - Apply ALL planned fixes first (optimistically)
117
- - Use `npm test` or `npm run test:silent` for final validation ONLY
118
- - Analyze remaining failures and update the plan accordingly
119
- - If you feel tempted to run a test, STOP and apply more fixes instead
120
-
121
- 4. **Follow the plan strictly**
122
- - Do not improvise or skip ahead
123
- - Execute fixes in the documented priority order
124
- - Update the plan with ✅ checkmarks and status notes as you complete each item
125
- - Mark ALL items completed before running tests
126
-
127
- **Why this matters:**
128
- - Running tests interrupts the systematic fix workflow
129
- - Test output during fixes causes distraction and context switching
130
- - You already have all the error information needed to fix issues
131
- - Optimistic fixing is faster than iterative test-fix-test cycles
132
- - This strategy ensures thorough, complete fixes before validation
133
-
134
- This strategy prevents distraction, maintains focus, and ensures systematic completion of all fixes before validation.
143
+ Multi-test failure workflow
144
+ ---------------------------
145
+ When asked to fix multiple test failures, invoke `test-fix-workflow` instead of
146
+ re-stating the repair protocol in ad hoc instructions.
147
+
148
+ Keep this file as the invocation layer. The detailed planning sequence,
149
+ validation cadence, and no-premature-test-run rules belong in that skill.
135
150
 
136
151
 
137
152
  ES2023-first policy (strict)
@@ -159,9 +174,20 @@ How to use these instructions
159
174
  - Always prefer to produce code that already satisfies the style guide.
160
175
  - If you cannot fully transform a file (large refactor), return a patch with clear TODO comments, an explicit list of remaining violations, and small, safe automated fixes where possible.
161
176
  - If you propose changes that alter public behavior, include tests and TypeScript typechecks.
177
+ - Prefer invoking the relevant repo skill when the task matches an established
178
+ workflow instead of duplicating that workflow in ad hoc instructions.
162
179
  - Default discovery order for non-trivial tasks: relevant folder `README.md` -> parent folder `README.md` if needed -> `plans/README.md` for roadmap alignment when relevant -> the specific source files and the single most relevant detailed plan.
163
180
  - Treat generated folder READMEs as compressed context, not as a substitute for code. Use them to reduce search noise, then verify behavior in source.
164
181
  - Prefer multiple small, targeted, documented edits over large single-pass rewrites when both approaches can solve the task. This reduces breakage risk and makes generated-doc refreshes easier to verify.
182
+ - For documentation-first work, invoke `educational-docs` instead of duplicating its standards in ad hoc instructions.
183
+ - For split work with meaningful docs scope, let `solid-split` own sequencing and `educational-docs` own documentation quality.
184
+ - For multiple test-failure repair work, invoke `test-fix-workflow` instead of
185
+ duplicating its planning and validation sequence here.
186
+ - For architectural or roadmap alignment work, invoke `plan-alignment` instead
187
+ of duplicating its bounded plan-reading workflow here.
188
+ - For read-only reconnaissance before implementation, prefer companion agents
189
+ such as `Boundary Mapper`, `Docs Scout`, and `Plan Scout`, but keep them subordinate to the
190
+ relevant skill-owned workflow.
165
191
 
166
192
  Standard architecture for project files
167
193
  ---------------------------------------
@@ -320,43 +346,24 @@ When you modify or create files under `src/` or `test/`, run (or advise running)
320
346
 
321
347
  Test failure workflow
322
348
  ---------------------
323
- When fixing multiple test failures:
324
- 1. Create/update a comprehensive plan document (e.g., `plans/TestsFix.md`)
325
- 2. Apply ALL fixes systematically without running tests
326
- 3. Validate TypeScript compilation with `npx tsc --noEmit -p tsconfig.test.json`
327
- 4. ONLY run `npm test` after all planned fixes are complete
328
- 5. Analyze results and iterate on remaining issues
349
+ When fixing multiple test failures, invoke `test-fix-workflow` for the
350
+ detailed repair sequence.
329
351
 
330
352
 
331
353
  Refactor format: large-file split (step-by-step, user-confirmed)
332
354
  ---------------------------------------------------------------
333
- When splitting a large module into submodules, follow this exact execution format:
334
-
335
- 1. Plan first
336
- - Propose a file map (main orchestration file + helper/type modules).
337
- - Keep exported APIs in the main file unless explicitly requested otherwise.
338
- - Define boundaries clearly (types, pool, rebuild helpers, fast-path helpers, adjacency helpers).
339
-
340
- 2. Create a TODO checklist
341
- - Add ordered steps with one active item at a time.
342
- - Track progress visibly (mark completed items as soon as each step finishes).
355
+ When splitting a large module into submodules, invoke `solid-split` and let it
356
+ own the detailed stepwise execution protocol, including user-confirmed
357
+ stepwise mode when requested.
343
358
 
344
- 3. Execute in strict passes (one step at a time)
345
- - Step A: create empty target files (skeletons only).
346
- - Step B: move one category at a time (types first, then helper groups).
347
- - Step C: after moving a category, delete the original source from the main file immediately.
348
- - Never batch multiple categories in one pass.
349
-
350
- 4. Require user confirmation between steps
351
- - After each completed step, stop and request confirmation before continuing.
352
- - Do not proceed to the next step without explicit user approval.
353
-
354
- 5. Keep the main file as high-level orchestration
355
- - Exported functions should show step-level flow (`Step 1`, `Step 2`, ...).
356
- - Avoid trivial re-export wrappers or single-helper pass-through exports.
357
- - Main file may retain shared constants and orchestration-level guards.
358
-
359
- 6. Validate only after all planned moves
360
- - Run `npx tsc --noEmit -p tsconfig.json` after completing all migration steps.
361
- - Report concise validation summary and any unresolved follow-ups.
359
+ Quality thresholds and investigation rules
360
+ ------------------------------------------
361
+ - End every user facing response with `(Certainty: NN%)`
362
+ - If your certainty is below 90%, stop and investigate before proceeding
363
+ - If your certainty is below 95%, investigate further and ask follow-up questions until the requirements and environment are clear enough
362
364
 
365
+ Low context window mitigation
366
+ -----------------------------
367
+ When you need to make a change that requires more context than you have available:
368
+ - Update the relevant source plan document with a NEXT: item describing the change and the reason for it, so that future work in that area has more context.
369
+ - Provide a handoff prompt in a text-copy box with the relevant context and a clear question about how to proceed, so that a companion agent can pick it up and investigate.