@reicek/neataptic-ts 0.1.24 → 0.1.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/.github/copilot-instructions.md +11 -0
  2. package/.github/skills/trace-analyzer-extension/SKILL.md +3 -3
  3. package/.github/skills/trace-analyzer-extension/assets/extension-checklist.md +1 -1
  4. package/.github/skills/trace-analyzer-extension/references/analyzer-extension-workflow.md +1 -1
  5. package/.github/skills/trace-audit-reporting/SKILL.md +3 -3
  6. package/.github/skills/trace-audit-reporting/references/trace-analysis-workflow.md +1 -1
  7. package/.github/workflows/ci.yml +3 -3
  8. package/.github/workflows/deploy-pages.yml +6 -6
  9. package/.github/workflows/manual_release_pipeline.yml +3 -3
  10. package/.github/workflows/publish.yml +18 -19
  11. package/.github/workflows/release_dispatch.yml +3 -3
  12. package/package.json +26 -20
  13. package/plans/Flappy_Bird_Folder_Documentation_Pass.md +4 -4
  14. package/plans/README.md +24 -0
  15. package/plans/Roadmap.md +62 -40
  16. package/plans/analyze-trace-solid-split.plans.md +66 -0
  17. package/plans/architecture-solid-split.plans.md +9 -15
  18. package/plans/asciiMaze-typescript-repair.plans.md +1 -1
  19. package/plans/generate-docs-solid-split.plans.md +87 -0
  20. package/plans/methods-docs.plans.md +25 -1
  21. package/plans/methods-solid-split.plans.md +14 -14
  22. package/plans/neat-docs.plans.md +9 -1
  23. package/plans/neat-test-surface-repair.plans.md +1 -1
  24. package/plans/render-docs-html-solid-split.plans.md +68 -0
  25. package/plans/src-no-explicit-any-cleanup.plans.md +1 -1
  26. package/plans/utils-docs.plans.md +6 -1
  27. package/scripts/analyze-trace/analyze-trace.analysis.ts +479 -0
  28. package/scripts/analyze-trace/analyze-trace.constants.ts +35 -0
  29. package/scripts/analyze-trace/analyze-trace.io.ts +69 -0
  30. package/scripts/analyze-trace/analyze-trace.report.ts +100 -0
  31. package/scripts/analyze-trace/analyze-trace.shared.ts +116 -0
  32. package/scripts/analyze-trace/analyze-trace.ts +45 -0
  33. package/scripts/analyze-trace/analyze-trace.types.ts +72 -0
  34. package/scripts/assets/theme.css +80 -23
  35. package/scripts/copy-examples.ts +239 -0
  36. package/scripts/export-onnx.ts +223 -0
  37. package/scripts/generate-bench-tables.ts +378 -37
  38. package/scripts/generate-docs/generate-docs.constants.ts +107 -0
  39. package/scripts/generate-docs/generate-docs.order.ts +355 -0
  40. package/scripts/generate-docs/generate-docs.state.ts +31 -0
  41. package/scripts/generate-docs/generate-docs.targets.ts +165 -0
  42. package/scripts/generate-docs/generate-docs.ts +63 -0
  43. package/scripts/generate-docs/generate-docs.types.ts +112 -0
  44. package/scripts/generate-docs/output/generate-docs.output.folder-index.utils.ts +167 -0
  45. package/scripts/generate-docs/output/generate-docs.output.ordering.utils.ts +353 -0
  46. package/scripts/generate-docs/output/generate-docs.output.readme.utils.ts +420 -0
  47. package/scripts/generate-docs/output/generate-docs.output.ts +123 -0
  48. package/scripts/generate-docs/output/generate-docs.output.warnings.utils.ts +219 -0
  49. package/scripts/generate-docs/symbols/generate-docs.symbols.collection.utils.ts +365 -0
  50. package/scripts/generate-docs/symbols/generate-docs.symbols.jsdoc.utils.ts +373 -0
  51. package/scripts/generate-docs/symbols/generate-docs.symbols.normalize.utils.ts +155 -0
  52. package/scripts/generate-docs/symbols/generate-docs.symbols.render.utils.ts +149 -0
  53. package/scripts/generate-docs/symbols/generate-docs.symbols.signature.utils.ts +289 -0
  54. package/scripts/generate-docs/symbols/generate-docs.symbols.ts +11 -0
  55. package/scripts/mermaid-cli.mjs +102 -22
  56. package/scripts/mermaid-cli.ts +736 -0
  57. package/scripts/render-docs-html/render-docs-html.assets.ts +54 -0
  58. package/scripts/render-docs-html/render-docs-html.mermaid.ts +245 -0
  59. package/scripts/{render-docs-html.sidebar.ts → render-docs-html/render-docs-html.navigation.ts} +141 -144
  60. package/scripts/render-docs-html/render-docs-html.pages.ts +333 -0
  61. package/scripts/render-docs-html/render-docs-html.shared.ts +333 -0
  62. package/scripts/render-docs-html/render-docs-html.types.ts +42 -0
  63. package/scripts/render-docs-html.ts +23 -587
  64. package/scripts/run-docs.ts +238 -0
  65. package/scripts/write-dist-docs-pkg.ts +40 -0
  66. package/src/README.md +75 -75
  67. package/src/architecture/connection/README.md +5 -5
  68. package/src/architecture/layer/README.md +508 -508
  69. package/src/architecture/network/README.md +1458 -1458
  70. package/src/architecture/network/activate/README.md +694 -694
  71. package/src/architecture/network/bootstrap/README.md +77 -77
  72. package/src/architecture/network/connect/README.md +74 -74
  73. package/src/architecture/network/deterministic/README.md +135 -135
  74. package/src/architecture/network/evolve/README.md +364 -364
  75. package/src/architecture/network/gating/README.md +130 -130
  76. package/src/architecture/network/genetic/README.md +399 -399
  77. package/src/architecture/network/mutate/README.md +897 -897
  78. package/src/architecture/network/onnx/README.md +720 -720
  79. package/src/architecture/network/onnx/export/README.md +728 -728
  80. package/src/architecture/network/onnx/export/layers/README.md +450 -450
  81. package/src/architecture/network/onnx/import/README.md +618 -618
  82. package/src/architecture/network/onnx/schema/README.md +32 -32
  83. package/src/architecture/network/prune/README.md +245 -245
  84. package/src/architecture/network/remove/README.md +135 -135
  85. package/src/architecture/network/runtime/README.md +106 -106
  86. package/src/architecture/network/serialize/README.md +542 -542
  87. package/src/architecture/network/slab/README.md +608 -608
  88. package/src/architecture/network/standalone/README.md +212 -212
  89. package/src/architecture/network/stats/README.md +84 -84
  90. package/src/architecture/network/topology/README.md +465 -465
  91. package/src/architecture/network/training/README.md +200 -200
  92. package/src/architecture/node/README.md +5 -5
  93. package/src/architecture/nodePool/README.md +14 -14
  94. package/src/methods/README.md +99 -99
  95. package/src/methods/activation/README.md +189 -189
  96. package/src/methods/cost/README.md +131 -131
  97. package/src/methods/rate/README.md +86 -86
  98. package/src/multithreading/README.md +77 -77
  99. package/src/multithreading/workers/browser/README.md +8 -8
  100. package/src/multithreading/workers/node/README.md +8 -8
  101. package/src/neat/README.md +148 -148
  102. package/src/neat/adaptive/README.md +120 -120
  103. package/src/neat/adaptive/acceptance/README.md +40 -40
  104. package/src/neat/adaptive/complexity/README.md +137 -137
  105. package/src/neat/adaptive/core/README.md +197 -197
  106. package/src/neat/adaptive/lineage/README.md +90 -90
  107. package/src/neat/adaptive/mutation/README.md +284 -284
  108. package/src/neat/compat/README.md +43 -43
  109. package/src/neat/compat/core/README.md +90 -90
  110. package/src/neat/diversity/README.md +35 -35
  111. package/src/neat/diversity/core/README.md +88 -88
  112. package/src/neat/evaluate/README.md +85 -85
  113. package/src/neat/evaluate/auto-distance/README.md +75 -75
  114. package/src/neat/evaluate/entropy-compat/README.md +37 -37
  115. package/src/neat/evaluate/entropy-sharing/README.md +43 -43
  116. package/src/neat/evaluate/fitness/README.md +23 -23
  117. package/src/neat/evaluate/novelty/README.md +120 -120
  118. package/src/neat/evaluate/objectives/README.md +17 -17
  119. package/src/neat/evaluate/shared/README.md +94 -94
  120. package/src/neat/evolve/README.md +96 -96
  121. package/src/neat/evolve/adaptive/README.md +60 -60
  122. package/src/neat/evolve/objectives/README.md +63 -63
  123. package/src/neat/evolve/offspring/README.md +56 -56
  124. package/src/neat/evolve/population/README.md +171 -171
  125. package/src/neat/evolve/runtime/README.md +79 -79
  126. package/src/neat/evolve/speciation/README.md +74 -74
  127. package/src/neat/evolve/warnings/README.md +10 -10
  128. package/src/neat/export/README.md +114 -114
  129. package/src/neat/helpers/README.md +50 -50
  130. package/src/neat/init/README.md +9 -9
  131. package/src/neat/lineage/core/README.md +101 -101
  132. package/src/neat/multiobjective/category/README.md +74 -74
  133. package/src/neat/multiobjective/crowding/README.md +272 -272
  134. package/src/neat/multiobjective/dominance/README.md +171 -171
  135. package/src/neat/multiobjective/fronts/README.md +68 -68
  136. package/src/neat/multiobjective/metrics/README.md +43 -43
  137. package/src/neat/multiobjective/objectives/README.md +31 -31
  138. package/src/neat/multiobjective/shared/README.md +27 -27
  139. package/src/neat/mutation/README.md +97 -97
  140. package/src/neat/mutation/add-conn/README.md +115 -115
  141. package/src/neat/mutation/add-node/README.md +126 -126
  142. package/src/neat/mutation/flow/README.md +149 -149
  143. package/src/neat/mutation/repair/README.md +185 -185
  144. package/src/neat/mutation/select/README.md +117 -117
  145. package/src/neat/mutation/shared/README.md +32 -32
  146. package/src/neat/objectives/README.md +25 -25
  147. package/src/neat/objectives/core/README.md +67 -67
  148. package/src/neat/pruning/README.md +40 -40
  149. package/src/neat/pruning/core/README.md +171 -171
  150. package/src/neat/pruning/facade/README.md +32 -32
  151. package/src/neat/rng/README.md +104 -104
  152. package/src/neat/rng/core/README.md +137 -137
  153. package/src/neat/rng/facade/README.md +50 -50
  154. package/src/neat/selection/README.md +111 -111
  155. package/src/neat/selection/core/README.md +227 -227
  156. package/src/neat/selection/facade/README.md +61 -61
  157. package/src/neat/shared/README.md +163 -163
  158. package/src/neat/speciation/README.md +31 -31
  159. package/src/neat/speciation/threshold/README.md +35 -35
  160. package/src/neat/species/README.md +25 -25
  161. package/src/neat/species/core/README.md +20 -20
  162. package/src/neat/species/core/shared/README.md +18 -18
  163. package/src/neat/species/history/context/README.md +22 -22
  164. package/src/neat/telemetry/accessors/README.md +58 -58
  165. package/src/neat/telemetry/exports/README.md +233 -233
  166. package/src/neat/telemetry/facade/README.md +252 -252
  167. package/src/neat/telemetry/facade/archive/README.md +57 -57
  168. package/src/neat/telemetry/facade/buffer/README.md +43 -43
  169. package/src/neat/telemetry/facade/lineage/README.md +12 -12
  170. package/src/neat/telemetry/facade/objectives/README.md +44 -44
  171. package/src/neat/telemetry/facade/runtime/README.md +26 -26
  172. package/src/neat/telemetry/facade/species/README.md +27 -27
  173. package/src/neat/telemetry/metrics/README.md +696 -696
  174. package/src/neat/telemetry/recorder/README.md +57 -57
  175. package/src/neat/telemetry/types/README.md +32 -32
  176. package/src/neat/topology-intent/README.md +75 -75
  177. package/src/utils/README.md +193 -193
  178. package/test/examples/asciiMaze/browser-entry/README.md +92 -92
  179. package/test/examples/asciiMaze/dashboardManager/README.md +109 -109
  180. package/test/examples/asciiMaze/dashboardManager/telemetry/README.md +28 -28
  181. package/test/examples/asciiMaze/evolutionEngine/README.md +1527 -1527
  182. package/test/examples/asciiMaze/mazeMovement/README.md +105 -105
  183. package/test/examples/asciiMaze/mazeMovement/finalization/README.md +16 -16
  184. package/test/examples/asciiMaze/mazeMovement/policy/README.md +57 -57
  185. package/test/examples/asciiMaze/mazeMovement/runtime/README.md +52 -52
  186. package/test/examples/asciiMaze/mazeMovement/shaping/README.md +46 -46
  187. package/test/examples/flappy_bird/browser-entry/README.md +508 -508
  188. package/test/examples/flappy_bird/browser-entry/host/README.md +101 -101
  189. package/test/examples/flappy_bird/browser-entry/host/resize/README.md +144 -144
  190. package/test/examples/flappy_bird/browser-entry/network-view/README.md +194 -194
  191. package/test/examples/flappy_bird/browser-entry/playback/README.md +278 -278
  192. package/test/examples/flappy_bird/browser-entry/playback/background/README.md +129 -129
  193. package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/README.md +502 -502
  194. package/test/examples/flappy_bird/browser-entry/playback/frame-render/README.md +139 -139
  195. package/test/examples/flappy_bird/browser-entry/playback/snapshot/README.md +10 -10
  196. package/test/examples/flappy_bird/browser-entry/playback/trail/README.md +43 -43
  197. package/test/examples/flappy_bird/browser-entry/playback/worker-channel/README.md +30 -30
  198. package/test/examples/flappy_bird/browser-entry/runtime/README.md +59 -59
  199. package/test/examples/flappy_bird/browser-entry/visualization/README.md +276 -276
  200. package/test/examples/flappy_bird/browser-entry/worker-channel/README.md +16 -16
  201. package/test/examples/flappy_bird/constants/README.md +1070 -1070
  202. package/test/examples/flappy_bird/environment/README.md +22 -22
  203. package/test/examples/flappy_bird/evaluation/README.md +32 -32
  204. package/test/examples/flappy_bird/evaluation/rollout/README.md +141 -141
  205. package/test/examples/flappy_bird/flappy-evolution-worker/README.md +425 -425
  206. package/test/examples/flappy_bird/simulation-shared/README.md +170 -170
  207. package/test/examples/flappy_bird/simulation-shared/observation/README.md +109 -109
  208. package/test/examples/flappy_bird/trainer/README.md +325 -325
  209. package/test/examples/flappy_bird/trainer/evaluation/README.md +74 -74
  210. package/scripts/analyze-trace.ts +0 -590
  211. package/scripts/copy-examples.mjs +0 -114
  212. package/scripts/export-onnx.mjs +0 -86
  213. package/scripts/generate-bench-tables.mjs +0 -182
  214. package/scripts/generate-docs.ts +0 -2900
  215. package/scripts/write-dist-docs-pkg.mjs +0 -16
@@ -1,86 +0,0 @@
1
- /**
2
- * Minimal CLI to export a JSON ONNX model from a serialized Network state.
3
- * Usage (Node >=20):
4
- * node scripts/export-onnx.mjs --in network.json --out model.onnx.json [--metadata] [--batch] [--legacy] [--partial] [--mixed]
5
- *
6
- * This is a lightweight helper; for production pipelines integrate directly with the API.
7
- */
8
- import fs from 'fs';
9
- import path from 'path';
10
- import { fileURLToPath, pathToFileURL } from 'url';
11
-
12
- const __filename = fileURLToPath(import.meta.url);
13
- const __dirname = path.dirname(__filename);
14
-
15
- const args = process.argv.slice(2);
16
- const arg = (name, def) => {
17
- const idx = args.indexOf(name);
18
- return idx >= 0 ? args[idx + 1] : def;
19
- };
20
- const flag = (name) => args.includes(name);
21
-
22
- if (flag('--help') || flag('-h')) {
23
- console.log(
24
- `Usage: node scripts/export-onnx.mjs --in network.json --out model.onnx.json [--metadata] [--batch] [--legacy] [--partial] [--mixed]\n`,
25
- );
26
- process.exit(0);
27
- }
28
-
29
- const inputFile = arg('--in');
30
- const outputFile = arg('--out');
31
- if (!inputFile || !outputFile) {
32
- console.error('Error: --in and --out are required.');
33
- process.exit(1);
34
- }
35
-
36
- const includeMetadata = flag('--metadata');
37
- const batchDimension = flag('--batch');
38
- const legacyNodeOrdering = flag('--legacy');
39
- const allowPartialConnectivity = flag('--partial');
40
- const allowMixedActivations = flag('--mixed');
41
-
42
- // Dynamic import of built library (dist) in ESM context
43
- async function loadDist() {
44
- // Use pathToFileURL to avoid Windows path issues
45
- const onnxMod = await import(
46
- pathToFileURL(path.resolve('dist', 'architecture', 'onnx.js')).href
47
- ).catch(async () => {
48
- // Fallback to network/network.onnx if direct path changed
49
- return import(
50
- pathToFileURL(
51
- path.resolve('dist', 'architecture', 'network', 'network.onnx.js'),
52
- ).href
53
- );
54
- });
55
- // network default export
56
- const netMod = await import(
57
- pathToFileURL(path.resolve('dist', 'architecture', 'network.js')).href
58
- );
59
- const Network = netMod.default;
60
- const { exportToONNX, importFromONNX } = onnxMod; // importFromONNX unused but re-exported for completeness
61
- return { Network, exportToONNX, importFromONNX };
62
- }
63
-
64
- (async () => {
65
- try {
66
- const { Network, exportToONNX } = await loadDist();
67
- const raw = JSON.parse(fs.readFileSync(path.resolve(inputFile), 'utf8'));
68
- const net = Network.fromJSON(raw);
69
- const onnx = exportToONNX(net, {
70
- includeMetadata,
71
- batchDimension,
72
- legacyNodeOrdering,
73
- allowPartialConnectivity,
74
- allowMixedActivations,
75
- });
76
- fs.writeFileSync(
77
- path.resolve(outputFile),
78
- JSON.stringify(onnx, null, 2),
79
- 'utf8',
80
- );
81
- console.log(`ONNX JSON written to ${outputFile}`);
82
- } catch (err) {
83
- console.error('Export failed:', err.message || err);
84
- process.exit(1);
85
- }
86
- })();
@@ -1,182 +0,0 @@
1
- /**
2
- * generate-bench-tables.mjs (ESM version)
3
- * Emits markdown tables derived from test/benchmarks/benchmark.results.json.
4
- */
5
- import fs from 'fs';
6
- import path from 'path';
7
-
8
- function cell(v, w) {
9
- const s = String(v ?? '');
10
- return s.length >= w ? s.slice(0, w) : s + ' '.repeat(w - s.length);
11
- }
12
- function fmtNum(n, digits = 4) {
13
- if (typeof n !== 'number' || !isFinite(n)) return '';
14
- return n.toFixed(digits).replace(/0+$/, '').replace(/\.$/, '');
15
- }
16
- function loadArtifact() {
17
- const file = path.resolve('test/benchmarks/benchmark.results.json');
18
- if (!fs.existsSync(file)) {
19
- console.error('[bench:tables] Artifact not found:', file);
20
- return null;
21
- }
22
- try {
23
- return JSON.parse(fs.readFileSync(file, 'utf8'));
24
- } catch (e) {
25
- console.error('[bench:tables] Parse error', e);
26
- return null;
27
- }
28
- }
29
- function normalizeAggregated(artifact) {
30
- const raw = artifact.aggregated;
31
- if (Array.isArray(raw)) {
32
- const out = { src: {}, dist: {} };
33
- for (const entry of raw) {
34
- const mode = entry.mode;
35
- const sizeKey = String(entry.size);
36
- out[mode] = out[mode] || {};
37
- out[mode][sizeKey] = out[mode][sizeKey] || {}; // scenario bucket
38
- out[mode][sizeKey].all = out[mode][sizeKey].all || {};
39
- const metrics = [
40
- 'buildMs',
41
- 'fwdAvgMs',
42
- 'bytesPerConn',
43
- 'heapUsed',
44
- 'rss',
45
- ];
46
- out[mode][sizeKey].all = out[mode][sizeKey].all || {};
47
- for (const m of metrics) {
48
- const meanKey = m + 'Mean';
49
- if (meanKey in entry) {
50
- out[mode][sizeKey].all[m] = { mean: entry[meanKey] };
51
- }
52
- }
53
- }
54
- return out;
55
- }
56
- return raw || { src: {}, dist: {} };
57
- }
58
- function buildVariantDeltaTable(artifact) {
59
- const agg = normalizeAggregated(artifact);
60
- const sizes = new Set(Object.keys(agg.src || {}));
61
- const ordered = Array.from(sizes).sort((a, b) => parseInt(a) - parseInt(b));
62
- const rows = [];
63
- rows.push(
64
- 'Size Metric Src Mean Dist Mean Δ Abs Δ % Flag Result',
65
- );
66
- rows.push(
67
- '------ ----------------- ------------- ------------- ------------- ---------- ------------- ------------------------------------------------------------',
68
- );
69
- const metrics = ['buildMs', 'fwdAvgMs', 'bytesPerConn'];
70
- for (const size of ordered) {
71
- for (const metric of metrics) {
72
- const srcAgg = agg.src?.[size]?.all?.[metric];
73
- const distAgg = agg.dist?.[size]?.all?.[metric];
74
- const sMean = srcAgg?.mean;
75
- const dMean = distAgg?.mean;
76
- let dAbs, dPct;
77
- if (typeof sMean === 'number' && typeof dMean === 'number') {
78
- dAbs = dMean - sMean;
79
- dPct = sMean === 0 ? undefined : (dAbs / sMean) * 100;
80
- }
81
- const threshold = metric === 'bytesPerConn' ? 3 : 5;
82
- const flag =
83
- typeof dPct === 'number'
84
- ? Math.abs(dPct) > threshold
85
- ? '(REG)'
86
- : 'OK'
87
- : '';
88
- const note =
89
- metric === 'bytesPerConn'
90
- ? flag === '(REG)'
91
- ? 'Dist bytes divergence'
92
- : 'Parity'
93
- : flag === '(REG)'
94
- ? `Dist ${dAbs > 0 ? 'slower' : 'faster'} ${metric}`
95
- : 'Parity';
96
- rows.push(
97
- cell(size, 6) +
98
- ' ' +
99
- cell(metric + 'Mean', 17) +
100
- ' ' +
101
- cell(typeof sMean === 'number' ? fmtNum(sMean, 4) : '', 13) +
102
- ' ' +
103
- cell(typeof dMean === 'number' ? fmtNum(dMean, 4) : '', 13) +
104
- ' ' +
105
- cell(
106
- typeof dAbs === 'number'
107
- ? (dAbs >= 0 ? '+' : '') + fmtNum(dAbs, 4)
108
- : '',
109
- 13,
110
- ) +
111
- ' ' +
112
- cell(
113
- typeof dPct === 'number'
114
- ? (dPct >= 0 ? '+' : '') + fmtNum(dPct, 2)
115
- : '',
116
- 10,
117
- ) +
118
- ' ' +
119
- cell(flag, 13) +
120
- ' ' +
121
- note,
122
- );
123
- }
124
- }
125
- return rows.join('\n');
126
- }
127
- function buildHeapTable(artifact) {
128
- const agg = normalizeAggregated(artifact);
129
- const sizes = new Set(Object.keys(agg.src || {}));
130
- const ordered = Array.from(sizes).sort((a, b) => parseInt(a) - parseInt(b));
131
- const rows = [];
132
- rows.push(
133
- 'Size Metric Src Bytes Dist Bytes Src MB Dist MB Δ Bytes Δ % Note',
134
- );
135
- rows.push(
136
- '------ -------------- ------------ ------------ --------- --------- ----------- ------- -------------------------------------------------',
137
- );
138
- for (const size of ordered) {
139
- for (const metric of ['heapUsed', 'rss']) {
140
- const s = agg.src?.[size]?.all?.[metric]?.mean;
141
- const d = agg.dist?.[size]?.all?.[metric]?.mean;
142
- if (typeof s !== 'number' || typeof d !== 'number') continue;
143
- const dBytes = d - s;
144
- const dPct = s === 0 ? 0 : (dBytes / s) * 100;
145
- rows.push(
146
- cell(size, 6) +
147
- ' ' +
148
- cell(metric + 'Mean', 14) +
149
- ' ' +
150
- cell(s, 12) +
151
- ' ' +
152
- cell(d, 12) +
153
- ' ' +
154
- cell((s / 1048576).toFixed(1), 9) +
155
- ' ' +
156
- cell((d / 1048576).toFixed(1), 9) +
157
- ' ' +
158
- cell((dBytes >= 0 ? '+' : '') + dBytes, 11) +
159
- ' ' +
160
- cell((dPct >= 0 ? '+' : '') + dPct.toFixed(2), 7) +
161
- ' ' +
162
- 'Informational',
163
- );
164
- }
165
- }
166
- return rows.join('\n');
167
- }
168
- function main() {
169
- const artifact = loadArtifact();
170
- if (!artifact) process.exit(1);
171
- const out = [
172
- '```',
173
- buildVariantDeltaTable(artifact),
174
- '```',
175
- '',
176
- '```',
177
- buildHeapTable(artifact),
178
- '```',
179
- ].join('\n');
180
- console.log(out);
181
- }
182
- main();