diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index a6344aac8c09253b3b630fb776ae94478aa0275b..0000000000000000000000000000000000000000 --- a/.gitattributes +++ /dev/null @@ -1,35 +0,0 @@ -*.7z filter=lfs diff=lfs merge=lfs -text -*.arrow filter=lfs diff=lfs merge=lfs -text -*.bin filter=lfs diff=lfs merge=lfs -text -*.bz2 filter=lfs diff=lfs merge=lfs -text -*.ckpt filter=lfs diff=lfs merge=lfs -text -*.ftz filter=lfs diff=lfs merge=lfs -text -*.gz filter=lfs diff=lfs merge=lfs -text -*.h5 filter=lfs diff=lfs merge=lfs -text -*.joblib filter=lfs diff=lfs merge=lfs -text -*.lfs.* filter=lfs diff=lfs merge=lfs -text -*.mlmodel filter=lfs diff=lfs merge=lfs -text -*.model filter=lfs diff=lfs merge=lfs -text -*.msgpack filter=lfs diff=lfs merge=lfs -text -*.npy filter=lfs diff=lfs merge=lfs -text -*.npz filter=lfs diff=lfs merge=lfs -text -*.onnx filter=lfs diff=lfs merge=lfs -text -*.ot filter=lfs diff=lfs merge=lfs -text -*.parquet filter=lfs diff=lfs merge=lfs -text -*.pb filter=lfs diff=lfs merge=lfs -text -*.pickle filter=lfs diff=lfs merge=lfs -text -*.pkl filter=lfs diff=lfs merge=lfs -text -*.pt filter=lfs diff=lfs merge=lfs -text -*.pth filter=lfs diff=lfs merge=lfs -text -*.rar filter=lfs diff=lfs merge=lfs -text -*.safetensors filter=lfs diff=lfs merge=lfs -text -saved_model/**/* filter=lfs diff=lfs merge=lfs -text -*.tar.* filter=lfs diff=lfs merge=lfs -text -*.tar filter=lfs diff=lfs merge=lfs -text -*.tflite filter=lfs diff=lfs merge=lfs -text -*.tgz filter=lfs diff=lfs merge=lfs -text -*.wasm filter=lfs diff=lfs merge=lfs -text -*.xz filter=lfs diff=lfs merge=lfs -text -*.zip filter=lfs diff=lfs merge=lfs -text -*.zst filter=lfs diff=lfs merge=lfs -text -*tfevents* filter=lfs diff=lfs merge=lfs -text diff --git a/.pytest_cache/.gitignore b/.pytest_cache/.gitignore deleted file mode 100644 index bc1a1f6167d09c909aad37280b760bb715d0f1da..0000000000000000000000000000000000000000 --- a/.pytest_cache/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# Created by pytest automatically. -* diff --git a/.pytest_cache/CACHEDIR.TAG b/.pytest_cache/CACHEDIR.TAG deleted file mode 100644 index fce15ad7eaa74e5682b644c84efb75334c112f95..0000000000000000000000000000000000000000 --- a/.pytest_cache/CACHEDIR.TAG +++ /dev/null @@ -1,4 +0,0 @@ -Signature: 8a477f597d28d172789f06886806bc55 -# This file is a cache directory tag created by pytest. -# For information about cache directory tags, see: -# https://bford.info/cachedir/spec.html diff --git a/.pytest_cache/README.md b/.pytest_cache/README.md deleted file mode 100644 index b89018ced91c0a8af7f3f23ce8901870da89f3a0..0000000000000000000000000000000000000000 --- a/.pytest_cache/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# pytest cache directory # - -This directory contains data from the pytest's cache plugin, -which provides the `--lf` and `--ff` options, as well as the `cache` fixture. - -**Do not** commit this to version control. - -See [the docs](https://docs.pytest.org/en/stable/how-to/cache.html) for more information. diff --git a/.pytest_cache/v/cache/lastfailed b/.pytest_cache/v/cache/lastfailed deleted file mode 100644 index c222f36ed871ffdfb429235933ea7769e356add3..0000000000000000000000000000000000000000 --- a/.pytest_cache/v/cache/lastfailed +++ /dev/null @@ -1,3 +0,0 @@ -{ - "tests/test_contract.py::test_registry_has_thirty": true -} \ No newline at end of file diff --git a/.pytest_cache/v/cache/nodeids b/.pytest_cache/v/cache/nodeids deleted file mode 100644 index 3d986d6c992994a744f8365ed3c411f0a7314dd8..0000000000000000000000000000000000000000 --- a/.pytest_cache/v/cache/nodeids +++ /dev/null @@ -1,12 +0,0 @@ -[ - "tests/test_contract.py::test_contract_returns_prediction", - "tests/test_contract.py::test_every_code_has_provenance_and_status", - "tests/test_contract.py::test_kecon_financial_firewall", - "tests/test_contract.py::test_kgate_clamps_and_fails_closed", - "tests/test_contract.py::test_kyro_reproduces_training_point", - "tests/test_contract.py::test_metrics_calibration", - "tests/test_contract.py::test_registry", - "tests/test_contract.py::test_registry_has_thirty", - "tests/test_contract.py::test_roadmap_codes_raise", - "tests/test_contract.py::test_tagged_provenance_requires_retired_by" -] \ No newline at end of file diff --git a/.zenodo.json b/.zenodo.json index ca58c7b81c84c8c39afe52951c0c2b8ddb5c2771..53bd8c570e508d2e3fb1683e1d602aa2c984562c 100644 --- a/.zenodo.json +++ b/.zenodo.json @@ -1,9 +1,9 @@ { - "title": "KODEX: the Kronos Family of Codes (AI/ML fusion surrogate suite) v0.1.0", + "title": "KODEX: the Kronos Family of Codes (AI/ML fusion surrogate suite) v0.3.0", "upload_type": "software", "language": "eng", - "version": "0.1.0", - "publication_date": "2026-09-10", + "version": "0.3.0", + "publication_date": "2026-09-29", "creators": [ { "name": "Ford, P. I.", @@ -193,5 +193,5 @@ } ], "notes": "Draft-first deposit. Provenance chain: code -> benchmark -> on-disk data -> CGYRO/register/AI+Quantum DOI. See PROVENANCE.md and MANIFEST.sha256.", - "description": "
KODEX — the Kronos Family of Codes. A benchmarked suite of AI/ML surrogate models that stand in for expensive fusion physics (CGYRO-class gyrokinetics, neutronics, equilibrium, control) with calibrated uncertainty and an abstention gate. One contract across the fleet: predict(x) → (y, uncertainty, in_domain). Built on and tracing to the Kronos research corpus.
This release publishes the 26 BUILT codes (package + real benchmark + docs). 4 further codes ship as honest ROADMAP: KEDGE, KHEAT, KRAD, KTENSOR.
Honest cards are kept intact: CGYRO-anchored surrogates use the mu=400 representative-mass turbulence map; the quantum members (KQUBIT/KQROSS/KSENSE) report validated null/negative results (no quantum advantage claimed); KWARD's disruption labels are heuristic (Ip current-quench, not physicist-verified) and its headline independent-precursor AUC (0.975) uses only n=1 Mirnov + P_rad; KECON is a generic-LCOE financial firewall carrying no Kronos economic numbers.
Documentation: https://kronosfusionenergy.com/kodex · source: https://github.com/KronosFE/kronos-ml.
" + "description": "KODEX — the Kronos Family of Codes. A benchmarked suite of AI/ML surrogate models that stand in for expensive fusion physics (CGYRO-class gyrokinetics, neutronics, equilibrium, control) with calibrated uncertainty and an abstention gate. One contract across the fleet: predict(x) → (y, uncertainty, in_domain). Built on and tracing to the Kronos research corpus.
This release publishes the full 39 BUILT codes (package + real benchmark + docs), including the v0.3.0 additions KMIND (whole-device foundation surrogate), KSCOUT (multi-fidelity campaign manager), and the quantum members KMIT (error mitigation) and KLINQ (linear solver).
Honest cards are kept intact: CGYRO-anchored surrogates use the mu=400 representative-mass turbulence map; the quantum members (KQUBIT/KQROSS/KSENSE) report validated null/negative results (no quantum advantage claimed); KWARD's disruption labels are heuristic (Ip current-quench, not physicist-verified) and its headline independent-precursor AUC (0.975) uses only n=1 Mirnov + P_rad; KECON is a generic-LCOE financial firewall carrying no Kronos economic numbers; the newer quantum members (KMIT, KLINQ) are real NISQ-era tools with no claimed advantage — quantum's meaningful role in fusion is post-~2036.
Documentation: https://kronosfusionenergy.com/kodex · source: https://github.com/KronosFE/kronos-ml.
" } diff --git a/BENCHMARKS.md b/BENCHMARKS.md index 76ba6fe66b6b97fc47e25351dda0e37109fa1735..84b31d3970e0a1a92641d0311e9b4a6bf21dd475 100644 --- a/BENCHMARKS.md +++ b/BENCHMARKS.md @@ -6,16 +6,16 @@ are kept, not hidden. Nothing here is published until go-live. | # | Code | Status | Headline benchmark | |--|--|--|--| -| 01 | **KAIROS** | BUILT | MPC tracking 0.0461 (<5%); Exp-B **0 escapes / 150,000**; 155.4 µs/step | +| 01 | **KAIROS** | BUILT | MPC tracking 0.0461 (<5%); Exp-B **0 escapes / 150,000**; 77.8 µs/step | | 02 | **KFLOW** | BUILT | GNN RMSE@k8 0.0844 vs naive 0.1721 (beats naive; AC-18 0.05 bar **MISSED**, kept) | | 03 | **KGATE** | BUILT | model-free clamp: **0 escapes / 150,000 steps** | | 04 | **KHALO** | BUILT | sourced ECE 0.0327 +/- 0.0136 / cov90 0.888 +/- 0.034; live GP ECE 0.0771 | | 05 | **KMAT** | BUILT | DFT-validated CHGNet screen, 8 candidates | | 06 | **KOIL** | BUILT | live strain surrogate rel-L2 0.0038; sourced 0.24% @0.15 ms, quench AUC 0.9998 | -| 07 | **KORE** | BUILT | learned NN equilibrium: rel-L2 0.0035 vs analytic, 2.337 ms/field; sourced FNO 2.5% vs 1% bar | +| 07 | **KORE** | BUILT | learned NN equilibrium: rel-L2 0.0035 vs analytic, 0.318 ms/field; sourced FNO 2.5% vs 1% bar | | 08 | **KQUBIT** | BUILT | **REAL VQE** (PennyLane): recovers H2 ground state to 0.0002 mHa on default; runs on real QC hardware — no advantage yet | | 09 | **KWARD** | BUILT | real-device AUC 0.98 (591 MAST shots), ECE 0.0349; **independent-precursor AUC 0.975** (n=1 Mirnov + P_rad ONLY, label-independent); labels heuristic (Ip-quench) | -| 10 | **KYRO** | BUILT | complete 16/16 map (12 turbulent / 4 quiet (16/16 complete)); turbulent/quiet **16/16 correct**, R²=0.858 / cov90=0.875; **0.329 ms vs 2.89 GPU-h/pt** (μ=400) | +| 10 | **KYRO** | BUILT | complete 16/16 map (12 turbulent / 4 quiet (16/16 complete)); turbulent/quiet **16/16 correct**, R²=0.858 / cov90=0.875; **0.257 ms vs 2.89 GPU-h/pt** (μ=400) | | 11 | **KBREED** | BUILT | TBR surrogate R²=1.0 vs neutronics engine; nominal net TBR 0.742; OpenMC = auto fidelity upgrade | | 12 | **KBURN** | BUILT | dispatch surrogate R²=1.0 (fuel mix → captured power); +22% dynamic | | 13 | **KEYE** | BUILT | virtual-sensor fault detection 0.767 at FAR 0.0 | @@ -23,23 +23,27 @@ are kept, not hidden. Nothing here is published until go-live. | 15 | **KFUSE** | BUILT | multi-fidelity: RMSE 1.481→1.05 (R²=0.787); 3rd fidelity = real-mass gold (deferred) | | 16 | **KHEAT** | BUILT | heating/current-drive surrogate: driven-current I_cd **R²=0.949** over 3888 configs (reduced CD; RF/NBI ray-tracing = upgrade) | | 17 | **KISO** | BUILT | servo R²=0.723 + **medical-isotope yield** from real FENDL-3.2 σ(E) (6 isotopes, Mo-99/Tc-99m flagship) | -| 18 | **KPATH** | BUILT | MPC-imitation controller R²=0.879 over 6 axes | -| 19 | **KQERN** | BUILT | **REAL quantum kernel**: MAST-disruption AUC 0.919 vs classical 0.929 (ties — honest null); runnable on real QC hardware | -| 20 | **KQROSS** | BUILT | **REAL FT resource estimator**: classical↔quantum crossover ~N=50 needs ~6e+04 physical qubits, roadmap ~2032 — no FT advantage this decade | -| 21 | **KSENSE** | BUILT | **REAL quantum metrology** (GHZ, PennyLane): ideal Heisenberg 4.0× vs dephased 2.05× ≈ SQL 2.01× — dephasing erases the advantage (honest null) | -| 22 | **KTENSOR** | BUILT | SVD/MPS ROM of the real CGYRO flux DB: **effective rank ~2.93 of 4 — modestly compressible, NOT strongly low-rank** (honest characterization; classical, no quantum advantage) | -| 23 | **KBENCH** | BUILT | open fusion-ML benchmark suite: **3 citable tasks** (CGYRO turbulence, MAST disruption, flux ROM) with real data + KODEX baselines | -| 24 | **KDRIVE** | BUILT | RL policy (cross-entropy): tracking **0.0551** vs naive 0.1225, twin-in-the-loop | -| 25 | **KDYN** | BUILT | **REAL Trotter quantum dynamics**: 1st-order error 1.34637→0.03381 over steps (~1/n); runs on real QC hardware — honest cost curve, no advantage yet | -| 26 | **KECON** | BUILT | generic LCOE calculator + breakdown — **FINANCIAL FIREWALL (no Kronos numbers)** | -| 27 | **KEDGE** | BUILT | divertor edge surrogate: heat-flux→target-temp **R²=1.0**, CuCrZr limit q~13.5 MW/m² (reduced 0-D; SOLPS/EIRENE = upgrade) | -| 28 | **KFORGE** | BUILT | inverse-design chained KYRO+KORE → **found a quiet operating point** (a/L_T=2.228, shear=1.511, Q_tot≈0.0) | -| 29 | **KFUEL** | BUILT | fuel-cycle balance: self-sufficient=True, doubling 5.17 yr (illustrative TBR) | -| 30 | **KGEN** | BUILT | generative (PCA latent, dim 8); samples plausible equilibrium fields (diffusion = roadmap) | -| 31 | **KLAW** | BUILT | equation discovery: 7 terms, R²=0.903 — **rediscovered the critical-gradient onset** from the CGYRO map | -| 32 | **KPILOT** | BUILT | fleet router: plain-language query → the right code (LLM agent = roadmap upgrade) | -| 33 | **KQOPT** | BUILT | **REAL QAOA optimizer**: 1.0 of optimum on a design QUBO (6 qubits); plug in your QUBO, run on real QC hardware — no speedup yet | -| 34 | **KRAD** | BUILT | impurity-seeding radiation evaluator: 3 impurities (Ar, N, Ne); least core dilution = Ar | -| 35 | **KSEEK** | BUILT | active-learning: proposes next CGYRO run (a/L_T=2.225, shear=0.58); LOO std-vs-error corr -0.283 (honest: weak on 16 pts) | +| 18 | **KMIT** | BUILT | **REAL error mitigation**: ZNE cuts H2 energy error 44.38→5.029 mHa (0.887 removed); readout TV 0.1472→0.0 — real NISQ tool today, role post-~2036 | +| 19 | **KPATH** | BUILT | MPC-imitation controller R²=0.879 over 6 axes | +| 20 | **KQERN** | BUILT | **REAL quantum kernel**: MAST-disruption AUC 0.919 vs classical 0.929 (ties — honest null); runnable on real QC hardware | +| 21 | **KQROSS** | BUILT | **REAL FT resource estimator**: classical↔quantum crossover ~N=50 needs ~6e+04 physical qubits, roadmap ~2032 — no FT advantage this decade | +| 22 | **KSENSE** | BUILT | **REAL quantum metrology** (GHZ, PennyLane): ideal Heisenberg 4.0× vs dephased 2.05× ≈ SQL 2.01× — dephasing erases the advantage (honest null) | +| 23 | **KTENSOR** | BUILT | SVD/MPS ROM of the real CGYRO flux DB: **effective rank ~2.93 of 4 — modestly compressible, NOT strongly low-rank** (honest characterization; classical, no quantum advantage) | +| 24 | **KBENCH** | BUILT | open fusion-ML benchmark suite: **3 citable tasks** (CGYRO turbulence, MAST disruption, flux ROM) with real data + KODEX baselines | +| 25 | **KDRIVE** | BUILT | RL policy (cross-entropy): tracking **0.0551** vs naive 0.1225, twin-in-the-loop | +| 26 | **KDYN** | BUILT | **REAL Trotter quantum dynamics**: 1st-order error 1.34637→0.03381 over steps (~1/n); runs on real QC hardware — honest cost curve, no advantage yet | +| 27 | **KECON** | BUILT | generic LCOE calculator + breakdown — **FINANCIAL FIREWALL (no Kronos numbers)** | +| 28 | **KEDGE** | BUILT | divertor edge surrogate: heat-flux→target-temp **R²=1.0**, CuCrZr limit q~13.5 MW/m² (reduced 0-D; SOLPS/EIRENE = upgrade) | +| 29 | **KFORGE** | BUILT | inverse-design chained KYRO+KORE → **found a quiet operating point** (a/L_T=2.228, shear=1.511, Q_tot≈0.0) | +| 30 | **KFUEL** | BUILT | fuel-cycle balance: self-sufficient=True, doubling 5.17 yr (illustrative TBR) | +| 31 | **KGEN** | BUILT | generative (PCA latent, dim 8); samples plausible equilibrium fields (diffusion = roadmap) | +| 32 | **KLAW** | BUILT | equation discovery: 7 terms, R²=0.903 — **rediscovered the critical-gradient onset** from the CGYRO map | +| 33 | **KLINQ** | BUILT | **REAL quantum linear solver** (VQLS): 4×4 reduced-MHD solve fidelity 1.0 vs classical (rel-resid 0.0); FT-HHL ~4e+04 phys qubits — no advantage, role post-~2036 | +| 34 | **KMIND** | BUILT | **foundation model**: one shared trunk across 4 domains (66958 params); transfer vs matched single-task — pos ['equil'], neg none, neutral ['state', 'disrupt'] (transport data-starved) — honest multi-task result | +| 35 | **KPILOT** | BUILT | fleet router: plain-language query → the right code (LLM agent = roadmap upgrade) | +| 36 | **KQOPT** | BUILT | **REAL QAOA optimizer**: 1.0 of optimum on a design QUBO (6 qubits); plug in your QUBO, run on real QC hardware — no speedup yet | +| 37 | **KRAD** | BUILT | impurity-seeding radiation evaluator: 3 impurities (Ar, N, Ne); least core dilution = Ar | +| 38 | **KSCOUT** | BUILT | **multi-fidelity campaign**: tight 15.0 GPU-h over 16 hotspots → mean confidence ρ 0.638 vs 0.281 all-μ=400 (2.27×); triage-then-escalate | +| 39 | **KSEEK** | BUILT | active-learning: proposes next CGYRO run (a/L_T=2.225, shear=0.58); LOO std-vs-error corr -0.283 (honest: weak on 16 pts) | _Regenerate: `PYTHONPATH=.
-
-| Code | Zenodo DOI | Figshare DOI | Dataverse DOI (in review) | OSF |
-|--|--|--|--|--|
-| **KAIROS** | 10.5281/zenodo.22694265 | 10.6084/m9.figshare.33553966 | 10.7910/DVN/GOZGCM | [db6uh](https://osf.io/db6uh/) |
-| **KBREED** | 10.5281/zenodo.22694267 | 10.6084/m9.figshare.33559312 | 10.7910/DVN/OPJHP3 | [2m3ce](https://osf.io/2m3ce/) |
-| **KBURN** | 10.5281/zenodo.22694269 | 10.6084/m9.figshare.33559324 | 10.7910/DVN/ITN6JZ | [8e6fn](https://osf.io/8e6fn/) |
-| **KDRIVE** | 10.5281/zenodo.22694271 | 10.6084/m9.figshare.33559333 | 10.7910/DVN/YKKLQ7 | [xhkuy](https://osf.io/xhkuy/) |
-| **KECON** | 10.5281/zenodo.22694273 | 10.6084/m9.figshare.33559345 | 10.7910/DVN/WBHQ7S | [b5qmx](https://osf.io/b5qmx/) |
-| **KEYE** | 10.5281/zenodo.22694279 | 10.6084/m9.figshare.33559357 | 10.7910/DVN/5UILC8 | [5qzp4](https://osf.io/5qzp4/) |
-| **KFLOW** | 10.5281/zenodo.22694283 | 10.6084/m9.figshare.33559369 | 10.7910/DVN/XUXC7B | [hjrzb](https://osf.io/hjrzb/) |
-| **KFLUX** | 10.5281/zenodo.22694287 | 10.6084/m9.figshare.33559378 | 10.7910/DVN/3F0NCW | [fmjc2](https://osf.io/fmjc2/) |
-| **KFORGE** | 10.5281/zenodo.22694289 | 10.6084/m9.figshare.33559390 | 10.7910/DVN/OVOVVN | [5zg6j](https://osf.io/5zg6j/) |
-| **KFUEL** | 10.5281/zenodo.22694291 | 10.6084/m9.figshare.33559402 | 10.7910/DVN/89A8GS | [xuz8a](https://osf.io/xuz8a/) |
-| **KFUSE** | 10.5281/zenodo.22694294 | 10.6084/m9.figshare.33559414 | 10.7910/DVN/SMA2OP | [exhkc](https://osf.io/exhkc/) |
-| **KGATE** | 10.5281/zenodo.22694297 | 10.6084/m9.figshare.33559423 | 10.7910/DVN/2CKPZH | [mbu37](https://osf.io/mbu37/) |
-| **KGEN** | 10.5281/zenodo.22694307 | 10.6084/m9.figshare.33559435 | 10.7910/DVN/OCTF8U | [svbwq](https://osf.io/svbwq/) |
-| **KHALO** | 10.5281/zenodo.22694309 | 10.6084/m9.figshare.33559447 | 10.7910/DVN/V5YM23 | [ne89y](https://osf.io/ne89y/) |
-| **KISO** | 10.5281/zenodo.22694311 | 10.6084/m9.figshare.33559459 | 10.7910/DVN/ELXAEY | [hjqek](https://osf.io/hjqek/) |
-| **KLAW** | 10.5281/zenodo.22694315 | 10.6084/m9.figshare.33559468 | 10.7910/DVN/ANAFXK | [kfp4t](https://osf.io/kfp4t/) |
-| **KMAT** | 10.5281/zenodo.22694319 | 10.6084/m9.figshare.33559480 | 10.7910/DVN/IJG9FT | [y4j2p](https://osf.io/y4j2p/) |
-| **KOIL** | 10.5281/zenodo.22694323 | 10.6084/m9.figshare.33559492 | 10.7910/DVN/N5WLNR | [2rb68](https://osf.io/2rb68/) |
-| **KORE** | 10.5281/zenodo.22694327 | 10.6084/m9.figshare.33559504 | 10.7910/DVN/DCFLOI | [sxm5v](https://osf.io/sxm5v/) |
-| **KPATH** | 10.5281/zenodo.22694329 | 10.6084/m9.figshare.33559513 | 10.7910/DVN/8QIUD4 | [fbcyw](https://osf.io/fbcyw/) |
-| **KPILOT** | 10.5281/zenodo.22694331 | 10.6084/m9.figshare.33559525 | 10.7910/DVN/EYD6FZ | [aqxe8](https://osf.io/aqxe8/) |
-| **KQROSS** | 10.5281/zenodo.22694333 | 10.6084/m9.figshare.33559537 | 10.7910/DVN/IIDBCF | [zp82a](https://osf.io/zp82a/) |
-| **KQUBIT** | 10.5281/zenodo.22694336 | 10.6084/m9.figshare.33559546 | 10.7910/DVN/2BC8BL | [eqr9z](https://osf.io/eqr9z/) |
-| **KSENSE** | 10.5281/zenodo.22694338 | 10.6084/m9.figshare.33559558 | 10.7910/DVN/5LQJAF | [psr8h](https://osf.io/psr8h/) |
-| **KWARD** | 10.5281/zenodo.22694342 | 10.6084/m9.figshare.33559570 | 10.7910/DVN/VPYXHS | [ugfpr](https://osf.io/ugfpr/) |
-| **KYRO** | 10.5281/zenodo.22694348 | 10.6084/m9.figshare.33559582 | 10.7910/DVN/2YQQOX | [5m6vu](https://osf.io/5m6vu/) |
-
-_Generated from publish/state/*.json. Zenodo/Figshare DOIs are permanent; Dataverse DOIs activate when Harvard curators approve the review submissions._
diff --git a/publish/MANIFEST.sha256 b/publish/MANIFEST.sha256
deleted file mode 100644
index ea9752bec9c44074a34cd6a03aa7f767b1487a6a..0000000000000000000000000000000000000000
--- a/publish/MANIFEST.sha256
+++ /dev/null
@@ -1,41 +0,0 @@
-# KODEX SHA-256 manifest (v0.1.0, 2026-09-10)
-
-2ac66d4d7d4a89054d47e15215b9d6eca8e527503763b9b05c85b65160f5d8ec .gitignore
-8695a176b58590a0bbc6b7ede1c0ce4a270c54115aa06777e1462bfebe86bd1a .zenodo.json
-b1ee5fa8a901a64265186e58788f420b94c37151a61144a3c24ed37d782325e3 BENCHMARKS.md
-9bb42b66491b72e95cfc26b4139c767ec7eda643d479061183c65af55db56d44 CITATION.cff
-889dc088a39f3b908cc627dcbd09e252a75abea42f716f664eafcf7d8b7ff578 CODES.md
-16f411de9a68f30ea8f05572c7a2aebe8cd923acec35bb55441b1a92861ce7c2 FAMILY.md
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-faf6dbd85a3cd3b9879201b7470e7ba858ae560108b7c984ec33809081d51a3d README.md
-8d2e3d7856756d03007be14187b5dd5bf10e22160e9f04103015141c04643d42 benchmarks/benchmarks.json
-361ef1108dc3ea2c4d6499b47ea4617a528a53bef4254abafdb889568a2772d3 benchmarks/run_all.py
-5e138e573eeaaaf7a5c2b0c74570adbf7cb132058f2c8c2dd7c25e3c18a4d77f checkpoints/kore_mlp_seed0.pt
-a251c80fc84f2c46be0a8aa822bc5a3619c32019627d0d35001531d0b5d3be19 checkpoints/kore_mlp_seed1.pt
-525cecaf99600dd7ccddb1d25a84fa216ab71739d73c39b62bb04d1e434bfd76 checkpoints/kore_mlp_seed2.pt
-6e5136d13e3e0b8335d146e65dce940b54e38e0e6a7bfe1fbdb3af8ea8483d88 codemeta.json
-162d8a2ba10cead49dd9be7276dc7c57177f151f174d1ea623ad1f65fce2d43a demo.ipynb
-b4233195b725817a61d1801f7c744159486076bae1c3bb9fd7d0e9ab9070f3dd kronos_ml/__init__.py
-835650847427eb59f9240a6bbcd1db4ec739eacef974aa0200944bbe3348043e kronos_ml/_torch.py
-c094cca7d3393317f8e412f41211b073be1701560b8c2923f84ab1e0bf770753 kronos_ml/base.py
-510bf0fe2c2ce159dec25629ad903e3b0de1e97fdc2621b80efce87e4d6c33a7 kronos_ml/data.py
-5d34c8aec99f9f7c5e6f62cb3b02b1aafeb311bb94d38f880d9ae6de63e51733 kronos_ml/members/__init__.py
-e5b88836b177c757a4f2db0925eac364ad12abe8c18038e14be9432286c03e61 kronos_ml/members/advanced.py
-f87aaf941a7ee00200f18bd35d68880e5365d62aa48bb029ab64e0091f16888e kronos_ml/members/capstone.py
-2b1d273280c16b1771cf1fd745aa558b967d9dac0684eb722dfdc867812fe9d1 kronos_ml/members/control.py
-5c340f9813497f5382b3a5324b76311b216f5696c9d8f3b2d0fb8f7491d7f671 kronos_ml/members/disrupt.py
-3f881fef3d4b8b255907c3adda0c3936b335c4aadb51e7a566bf4095bd058c29 kronos_ml/members/equil.py
-56d7f4b0b4072224772e3a59f1642ef4e5f5afaf70575636775a73a891f6e0d3 kronos_ml/members/fusion.py
-a8639ff450bb27a42771a2251ee852291ecaf09c4a1795cfc790ce67a84b808e kronos_ml/members/magnet.py
-9265df980412b82ef2185fb3d143c93780f4da76fda72fa4b6b010b6ae06b3de kronos_ml/members/materials.py
-f843996eeaa949e470ecce22713e5505649ce9fc1a7f5a6cdfca425a2ded09dc kronos_ml/members/neutronics.py
-2708133806780dce88184fa19c03b3760f207788c78d9e8edddcecd35f991e5e kronos_ml/members/plant.py
-ad05706b4f588e413b1314ebe7b3069c57a21ccf040d6fb762eb731aeda41584 kronos_ml/members/quantum.py
-c9b921c1131b95831366c0197663b486ea1c9a302b119ef3880249d6c897c7bf kronos_ml/members/roadmap.py
-75c01157cea0ab64f6a3458d76e69fa2be386fd5e4c6168d6e08d41e46a53c15 kronos_ml/members/spine.py
-eca2a363d02653b4fbe5e68df2ca41ecb5c277fd66fea22694681d648ecf7f64 kronos_ml/members/state.py
-f6466e59e49482d4423fb0415e3a7e4377eada9d2544a734a23a82974730e60f kronos_ml/members/transport.py
-508a45df51b194c435bfdd2d79658bff66bb77913a0ea66cea40116a7867266a kronos_ml/metrics.py
-578e86ef6f3faa7cce6682541d6cedb52c7f652d187085088dc3a4e8ccd4b5db kronos_ml/uq.py
-0f1af657ccf7539ab9dbbc2dd5408afa08085670d9c896bd5e95cbb4352124ec pyproject.toml
-54516950a748b00bc0992388ae3ae1a3fda3739307e7f2b651670896fb30c823 tests/test_contract.py
diff --git a/publish/PROVENANCE.md b/publish/PROVENANCE.md
deleted file mode 100644
index 2c651dc44219539b8cdf0aefd77fd80d7a05c12d..0000000000000000000000000000000000000000
--- a/publish/PROVENANCE.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# KODEX provenance & traceability (v0.1.0, 2026-09-10)
-
-Each BUILT code traces: **code -> real benchmark -> on-disk data/method -> Kronos corpus DOI -> /kodex page.**
-
-| # | Code | Ph | Provenance | Real source/method | Corpus anchor | Page |
-|--|--|--|--|--|--|--|
-| 01 | **KAIROS** | 1 | TWIN | receding-horizon MPC | references:10.5281/zenodo.21842371; references:10.5281/zenodo.22645689 | kairos |
-| 02 | **KBREED** | 2 | SIM | openmc | references:10.5281/zenodo.22645689 | kbreed |
-| 03 | **KBURN** | 2 | TWIN | plant systems model | references:10.5281/zenodo.21842371; references:10.5281/zenodo.22645689 | kburn |
-| 04 | **KDRIVE** | 3 | TWIN | reinforcement learning | references:10.5281/zenodo.21842371; references:10.5281/zenodo.22645689 | kdrive |
-| 05 | **KECON** | 3 | n/a | open LCOE methodology | references:10.5281/zenodo.21842371; references:10.5281/zenodo.22645689 | kecon |
-| 06 | **KEYE** | 2 | SIM | sensor fusion, signal validation | references:10.5281/zenodo.21842371; references:10.5281/zenodo.22645689 | keye |
-| 07 | **KFLOW** | 1 | SIM | message-passing GNN | references:10.5281/zenodo.21842371; references:10.5281/zenodo.22645689 | kflow |
-| 08 | **KFLUX** | 2 | SIM | openmc | references:10.5281/zenodo.22645689 | kflux |
-| 09 | **KFORGE** | 3 | CGYRO-urep | differential evolution over the fleet | isDerivedFrom:10.5281/zenodo.22136279 | kforge |
-| 10 | **KFUEL** | 3 | SIM | fuel-cycle systems model | references:10.5281/zenodo.21842371; references:10.5281/zenodo.22645689 | kfuel |
-| 11 | **KFUSE** | 2 | CGYRO-urep | multi-fidelity GP, CGYRO | isDerivedFrom:10.5281/zenodo.22136279 | kfuse |
-| 12 | **KGATE** | 1 | TWIN | CBF certificate, hardware failsafe | references:10.5281/zenodo.21842371; references:10.5281/zenodo.22645689 | kgate |
-| 13 | **KGEN** | 3 | ANALYTIC | generative model | references:10.5281/zenodo.21842371; references:10.5281/zenodo.22645689 | kgen |
-| 14 | **KHALO** | 1 | SIM | deep-ensemble, conformal | references:10.5281/zenodo.21842371; references:10.5281/zenodo.22645689 | khalo |
-| 15 | **KISO** | 2 | SIM | isotope PI servo, FENDL-3.2 activation | references:10.5281/zenodo.22645689; isDerivedFrom:https://www-nds.iaea.org/fendl/ | kiso |
-| 16 | **KLAW** | 3 | CGYRO-urep | sparse regression / SINDy | isDerivedFrom:10.5281/zenodo.22136279 | klaw |
-| 17 | **KMAT** | 1 | SIM | CHGNet, DFT | references:10.5281/zenodo.21842371; references:10.5281/zenodo.22645689 | kmat |
-| 18 | **KOIL** | 1 | SIM | finite-element stress solve | references:10.5281/zenodo.21842371; references:10.5281/zenodo.22645689 | koil |
-| 19 | **KORE** | 1 | ANALYTIC | Grad-Shafranov FD solver | references:10.5281/zenodo.21842371; references:10.5281/zenodo.22645689 | kore |
-| 20 | **KPATH** | 2 | TWIN | MPC scenario optimizer | references:10.5281/zenodo.21842371; references:10.5281/zenodo.22645689 | kpath |
-| 21 | **KPILOT** | 3 | n/a | fleet router / tool dispatcher | references:10.5281/zenodo.21842371; references:10.5281/zenodo.22645689 | kpilot |
-| 22 | **KQROSS** | 2 | SIM | FT resource estimation | isDerivedFrom:10.5281/zenodo.21842371 | kqross |
-| 23 | **KQUBIT** | 1 | SIM | VQE, quantum chemistry | isDerivedFrom:10.5281/zenodo.21842371 | kqubit |
-| 24 | **KSENSE** | 2 | SIM | NV/SQUID/SERF magnetometry | isDerivedFrom:10.5281/zenodo.21842371 | ksense |
-| 25 | **KWARD** | 1 | REAL-ANCHOR | real MAST shots (FAIR-MAST) | isDerivedFrom:https://mastapp.site; references:10.5281/zenodo.22645689 | kward |
-| 26 | **KYRO** | 1 | CGYRO-urep | cgyro, gene, gs2, tglf | isDerivedFrom:10.5281/zenodo.22136279 | kyro |
-
-## Held as ROADMAP (4)
-
-- **KEDGE** (ROADMAP, phase 3) — divertor / SOL / edge heat-flux transport surrogate
-- **KHEAT** (PARTIAL, phase 2) — RF / NBI heating & current-drive actuator-response surrogate
-- **KRAD** (ROADMAP, phase 3) — impurity seeding / radiation / divertor-detachment control
-- **KTENSOR** (PARTIAL, phase 2) — tensor-network simulation & compression — a classical many-body method and a bridge to quantum for kernel problems
-
-Anchor DOIs: CGYRO `10.5281/zenodo.22136279` · Register `10.5281/zenodo.22645689` · AI+Quantum `10.5281/zenodo.21842371` · toolkit https://github.com/KronosFE/kronos-toolkit
-
diff --git a/publish/PUBLISH_RUNBOOK.md b/publish/PUBLISH_RUNBOOK.md
deleted file mode 100644
index 51fab33b6f16b2d0db6737716fa23b5d11ea2ddc..0000000000000000000000000000000000000000
--- a/publish/PUBLISH_RUNBOOK.md
+++ /dev/null
@@ -1,158 +0,0 @@
-# KODEX — publish runbook (PER-CODE, DRAFT-FIRST)
-
-**Release:** KODEX v0.1.0 — the Kronos Family of Codes.
-**Model:** **26 per-code records** on each data repository (Zenodo / OSF / Figshare / Harvard Dataverse /
-Internet Archive) — each BUILT code gets its own record + DOI. **GitHub = ONE repo** (`kronos-ml`, 26
-modules). **PyPI = ONE package** (`kronos-ml`, 26 importable codes). **Held as ROADMAP (not published):**
-KHEAT, KTENSOR, KEDGE, KRAD.
-**Author on every record:** Ford, P. I. · ORCID `0000-0003-0395-1752` · Kronos Fusion Energy · Apache-2.0.
-
-> **Draft-first, two-step per data venue.** Step 1 `*_draft.py` creates all 26 records as **private/
-> unpublished** and uploads each code's files — nothing is public. Step 2 `*_publish_all.py` is a **dry run
-> by default** and publishes only with an explicit **`--yes`** — that `--yes` is your single deliberate
-> authorization for that venue's 26. The draft scripts NEVER publish; the publish scripts do nothing
-> without `--yes`. (Internet Archive is one step — items are public on upload — so `ia_upload_all.py`
-> requires `--yes` and IS the publish.)
-
-Per-code metadata lives in `publish/records//metadata.json`; each record's homepage is
-`kronosfusionenergy.com/kodex/`, with its physics-source + the shared Kronos anchors
-(register `10.5281/zenodo.22645689`, CGYRO `10.5281/zenodo.22136279`, AI+Quantum `10.5281/zenodo.21842371`,
-toolkit) as related-identifiers, honest card preserved. Per-code attach set: `.py` (source excerpt),
-`benchmark.json`, `card.md`, `CITATION.cff`, `LICENSE`, `MANIFEST.sha256`. The repo-root `.zenodo.json`,
-`CITATION.cff`, `codemeta.json` describe the **GitHub/PyPI package** (the one-repo/one-package side).
-
-## Token map
-
-| Venue | Credential | Env var | Status |
-|---|---|---|---|
-| GitHub | SSH key | — | ✅ ready |
-| Zenodo | token `deposit:write` | `ZENODO_TOKEN` | ✅ ready |
-| OSF | token `osf.full_write` | `OSF_TOKEN` | ✅ ready |
-| Figshare | personal token | `FIGSHARE_TOKEN` | ✅ ready |
-| Internet Archive | `ia configure` (S3 keys) | — | ✅ ready |
-| Harvard Dataverse | API token (115-paper/books token) | `DATAVERSE_TOKEN` + `DATAVERSE_CONTACT_EMAIL` | ⏳ token needed |
-| PyPI | API token | `TWINE_PASSWORD` (`TWINE_USERNAME=__token__`) | ⏳ fast-follow |
-| Hugging Face | write token | `HF_TOKEN` | ⏳ fast-follow |
-
-## Preflight (once)
-
-```bash
-cd "/Users/pford/Desktop/Kronos Fusion Energy/04 - IT INFRASTRUCTURE/07 - IT Infrastructure & Code Repos/Code Repos (live)/kronos-ml"
-PY=~/kronos-hpc-build/ml311_venv/bin/python
-$PY -m pytest tests/ -q # expect 9 passed
-$PY publish/_percode.py # (re)builds publish/records// for all 26 (resume-safe)
-```
-
-> ⚠ **numpy pin:** this venv must keep **numpy<2** (torch 2.2.2 needs it; numpy 2.x breaks KORE). If a
-> tool ever pulls numpy 2.x back in, run `$PY -m pip install "numpy==1.26.4"` before benchmarking.
-
----
-
-## 1) GitHub — ONE repo (git@github.com:KronosFE/kronos-ml.git)
-
-```bash
-git init -b main
-git add .
-git commit -m "KODEX v0.1.0 — Kronos Family of Codes (26 BUILT surrogates)"
-git tag -a v0.1.0 -m "KODEX v0.1.0"
-# create the repo PRIVATE on GitHub, then:
-git remote add origin git@github.com:KronosFE/kronos-ml.git
-git push -u origin main --tags
-# → review; when ready, make public + draft a Release from tag v0.1.0.
-# Do NOT enable the GitHub↔Zenodo webhook (we deposit Zenodo per-code below).
-```
-
-## 2) Zenodo — 26 per-code records
-
-```bash
-export ZENODO_TOKEN=... # rehearse first: export ZENODO_BASE=https://sandbox.zenodo.org
-$PY publish/zenodo_draft.py # creates 26 DRAFTS (resume-safe), nothing public
-$PY publish/zenodo_publish_all.py # DRY RUN — lists the 26 drafts
-$PY publish/zenodo_publish_all.py --yes # ← your one authorization: publishes all 26, mints DOIs
-```
-
-## 3) OSF — 26 private projects → public
-
-```bash
-export OSF_TOKEN=...
-$PY publish/osf_draft.py # 26 PRIVATE projects
-$PY publish/osf_publish_all.py # DRY RUN
-$PY publish/osf_publish_all.py --yes # ← make all 26 public
-```
-
-## 4) Figshare — 26 draft articles → published
-
-```bash
-export FIGSHARE_TOKEN=...
-$PY publish/figshare_draft.py # 26 DRAFT articles (DOIs reserved, not published)
-$PY publish/figshare_publish_all.py # DRY RUN
-$PY publish/figshare_publish_all.py --yes
-```
-
-## 5) Harvard Dataverse — 26 datasets (published by CURATORS, not by --yes)
-
-STATUS 2026-09-10: the 26 drafts are created; **25 were submitted for Harvard curator review**
-(`review:true` in state) and publish when a Harvard **curator approves** — NOT via a depositor
-`--yes`. `dataverse_publish_all.py` now refuses to `:publish` review-queued datasets (a direct
-publish on an In-Review dataset errors), so `--yes` is a no-op for the 25. Two open items before
-curators approve (the published version is immutable):
-
-1. **KLAW** (`doi:10.7910/DVN/ANAFXK`) was NOT submitted for review — submit it so it isn't stranded:
- ```bash
- export DATAVERSE_TOKEN=...
- curl -H "X-Dataverse-key:$DATAVERSE_TOKEN" -X POST \
- "https://dataverse.harvard.edu/api/datasets/:persistentId/submitForReview?persistentId=doi:10.7910/DVN/ANAFXK"
- # then set "review": true for KLAW in publish/state/dataverse_drafts.json
- ```
-2. **License field**: the drafts carry no dataset-level license, so Harvard will publish them as
- **CC0** unless Apache-2.0 is set. Check + set before approval:
- ```bash
- curl -s -H "X-Dataverse-key:$DATAVERSE_TOKEN" https://dataverse.harvard.edu/api/licenses | grep -i apache
- # if Apache-2.0 is installed, set it on each draft version (API) before curator approval;
- # otherwise the Apache-2.0 statement in the description + bundled LICENSE stand, and you accept CC0.
- ```
-(Re-running `dataverse_draft.py` is safe — it skips the 26 already-created datasets.)
-
-## 6) Internet Archive — 26 items (public on upload; one step)
-
-```bash
-ia configure # once, with your IA S3 keys
-$PY publish/ia_upload_all.py # DRY RUN — lists the 26 item identifiers
-$PY publish/ia_upload_all.py --yes # ← uploads 26 items (PUBLIC immediately)
-```
-
----
-
-## Fast-follow (when the tokens land)
-
-### PyPI — ONE package
-```bash
-$PY -m build
-export TWINE_USERNAME=__token__ TWINE_PASSWORD=pypi-...
-$PY -m twine upload --repository testpypi dist/* # rehearse first
-$PY -m twine upload dist/*
-```
-
-### Hugging Face — per-code model repos (or one)
-```bash
-export HF_TOKEN=...
-$PY -m pip install -q huggingface_hub
-# one suite repo:
-huggingface-cli upload KronosFE/kronos-ml . . --repo-type=model --token "$HF_TOKEN"
-# (per-code repos KronosFE/kodex- can be scripted the same way if preferred)
-```
-
----
-
-## Rollback (discard drafts — nothing was public)
-- **Zenodo / Figshare / Dataverse:** delete the unpublished drafts in each UI (or via each API).
-- **OSF:** projects are private until `--yes`; delete in the UI.
-- **GitHub:** repo stays private until you flip it.
-- **Internet Archive:** items are public on upload — only run `--yes` when you're sure; ask IA support to
- dark an item if needed.
-- Re-running any `*_draft.py` is safe: it skips codes already in `publish/state/_drafts.json`.
-
-## Provenance recorded in every record
-code → real benchmark (`benchmark.json`) → on-disk data/method → Kronos corpus DOI → `/kodex/` page.
-Honest cards intact: μ=400 representative-mass (CGYRO codes); validated null result (quantum codes);
-KWARD heuristic labels + independent-precursor AUC 0.975 (n=1 Mirnov + P_rad only); KECON financial firewall.
diff --git a/publish/_deposit_common.py b/publish/_deposit_common.py
deleted file mode 100644
index 003c20084431b62212790a0755d8607a7d6907ed..0000000000000000000000000000000000000000
--- a/publish/_deposit_common.py
+++ /dev/null
@@ -1,68 +0,0 @@
-"""Shared helpers for the KODEX draft-first deposits.
-
-Builds a clean release archive and defines the attach list + metadata. Imported by
-zenodo_draft.py / osf_draft.py / figshare_draft.py. NONE of those scripts ever call
-a venue's publish/complete endpoint — they create a DRAFT and upload files, then
-print the draft URL for the founder to review and publish herself.
-"""
-from __future__ import annotations
-import json, os, zipfile
-from pathlib import Path
-
-REPO = Path(__file__).resolve().parent.parent
-PUB = REPO / "publish"
-VERSION = json.load(open(PUB / "_scaffolding_summary.json"))["version"]
-ARCHIVE = PUB / f"kronos-ml-v{VERSION}-source.zip"
-
-# individual human-readable artifacts attached alongside the source archive
-DOCS = ["README.md", "FAMILY.md", "CODES.md", "BENCHMARKS.md", "benchmarks/benchmarks.json",
- "demo.ipynb", "CITATION.cff", "LICENSE", "codemeta.json", ".zenodo.json",
- "publish/PROVENANCE.md", "publish/MANIFEST.sha256"]
-
-_SKIP_DIRS = {"__pycache__", ".git", ".ipynb_checkpoints", ".pytest_cache", "dist"}
-_SKIP_SUFFIX = {".pyc", ".pyo"}
-
-
-def build_archive() -> Path:
- """Zip the whole package (source + tests + docs + manifest), minus cruft."""
- with zipfile.ZipFile(ARCHIVE, "w", zipfile.ZIP_DEFLATED) as z:
- for root, dirs, files in os.walk(REPO):
- dirs[:] = [d for d in dirs if d not in _SKIP_DIRS]
- for fn in files:
- p = Path(root) / fn
- if p.suffix in _SKIP_SUFFIX or p == ARCHIVE:
- continue
- if p.name.endswith(".parquet"):
- continue
- z.write(p, p.relative_to(REPO))
- return ARCHIVE
-
-
-def attach_paths() -> list[Path]:
- """Full attach set: the source archive + the individual docs f7 asked for."""
- out = [build_archive()]
- for rel in DOCS:
- p = REPO / rel
- if p.exists():
- out.append(p)
- return out
-
-
-def zenodo_metadata() -> dict:
- return json.load(open(REPO / ".zenodo.json"))
-
-
-def require_env(var: str) -> str:
- v = os.environ.get(var)
- if not v:
- raise SystemExit(f"[STOP] environment variable {var} is not set. "
- f"Export your token first (see PUBLISH_RUNBOOK.md).")
- return v
-
-
-if __name__ == "__main__":
- paths = attach_paths()
- print(f"archive: {ARCHIVE.name}")
- print(f"attach set ({len(paths)} files):")
- for p in paths:
- print(f" {p.relative_to(REPO)} ({p.stat().st_size:,} B)")
diff --git a/publish/_percode.py b/publish/_percode.py
deleted file mode 100644
index 090221f7ddb94d9cfdfabd536ac79fbee5c2e56e..0000000000000000000000000000000000000000
--- a/publish/_percode.py
+++ /dev/null
@@ -1,256 +0,0 @@
-"""Per-code deposit engine for KODEX (26 BUILT codes -> 26 records per data venue).
-
-Generates publish/records// (metadata + per-code attach set) and provides the
-shared helpers the venue scripts use to loop. State (created draft ids/DOIs) is written
-to publish/state/_drafts.json so a run can resume and the batch-publish step
-knows exactly what to act on.
-
-DRAFT-FIRST: nothing here publishes. The *_draft.py scripts create drafts; the separate
-*_publish_all.py scripts publish only drafts listed in the state file, only with --yes.
-"""
-from __future__ import annotations
-import hashlib, html, inspect, json, os, random, re, shutil, sys, time
-from datetime import date
-from pathlib import Path
-
-_RETRY_CODES = {403, 408, 425, 429, 500, 502, 503, 504}
-
-
-def http_retry(fn, *, tries=6, base=0.8, label=""):
- """Call fn() -> requests.Response; retry transient/rate-limit codes with expo backoff.
- Returns the final Response (caller still checks .ok / raises). 2xx returns immediately."""
- r = None
- for i in range(tries):
- r = fn()
- if 200 <= r.status_code < 300 or r.status_code not in _RETRY_CODES or i == tries - 1:
- return r
- wait = base * (2 ** i) + random.random() * 0.4
- sys.stderr.write(f" [retry] {label} {r.status_code}; sleep {wait:.1f}s ({i+1}/{tries})\n")
- time.sleep(wait)
- return r
-
-REPO = Path(__file__).resolve().parent.parent
-PUB = REPO / "publish"
-REC_ROOT = PUB / "records"
-STATE_ROOT = PUB / "state"
-sys.path.insert(0, str(REPO)); sys.path.insert(0, str(REPO.parent / "kronos-toolkit"))
-os.environ.setdefault("PYTHONWARNINGS", "ignore")
-import warnings; warnings.filterwarnings("ignore")
-import kronos_ml as K
-
-TODAY = date.today().isoformat()
-VERSION = K.__version__
-ORCID = "0000-0003-0395-1752"
-AFFIL = "Kronos Fusion Energy"
-KODEX = "https://kronosfusionenergy.com/kodex"
-REPO_URL = "https://github.com/KronosFE/kronos-ml"
-TOOLKIT_URL = "https://github.com/KronosFE/kronos-toolkit"
-LICENSE = "Apache-2.0"
-
-DOI_REGISTER = "10.5281/zenodo.22645689"
-DOI_CGYRO = "10.5281/zenodo.22136279"
-DOI_AIQ = "10.5281/zenodo.21842371"
-
-KEYWORDS_BASE = ["fusion energy", "spherical tokamak", "D-3He", "AI/ML surrogate model",
- "uncertainty quantification", "digital twin", "Kronos Fusion Energy"]
-
-
-def built():
- """The codes a publish run acts on: every BUILT code, unless KODEX_PUBLISH_ONLY
- restricts it to an explicit allow-list (comma/space-separated code names).
-
- The allow-list is how an operator deposits a deliberate SUBSET (e.g. only the
- v0.2.0 additions) without touching the rest of the fleet — it does NOT change any
- code's real status, so the package stays honest. Unset = all BUILT (default). A
- named code that is not currently BUILT is a hard error, so a typo can never
- silently narrow (or widen) the set.
- """
- names = sorted(n for n in K.list_surrogates() if K.get(n).status == "BUILT")
- only = os.environ.get("KODEX_PUBLISH_ONLY", "").strip()
- if only:
- want = {c.strip().upper() for c in re.split(r"[,\s]+", only) if c.strip()}
- unknown = want - set(names)
- if unknown:
- raise SystemExit(f"[STOP] KODEX_PUBLISH_ONLY names not in the BUILT set: "
- f"{sorted(unknown)} (BUILT: {names})")
- names = [n for n in names if n in want]
- sys.stderr.write(f"[scope] KODEX_PUBLISH_ONLY -> {len(names)} codes: {names}\n")
- return names
-
-
-def physics_source(s):
- """(relation, identifier, note) list tracing a code to its real physics source."""
- p = (s.provenance or "").upper()
- if "CGYRO" in p:
- return [("isDerivedFrom", DOI_CGYRO, "CGYRO A1e nonlinear-kinetic turbulence map (mu=400)")]
- if p == "REAL-ANCHOR":
- return [("isDerivedFrom", "https://mastapp.site", "FAIR-MAST real-device data (UKAEA)")]
- if s.name in ("KQUBIT", "KQROSS", "KSENSE", "KTENSOR"):
- return [("isDerivedFrom", DOI_AIQ, "Kronos AI + Quantum deposit")]
- if s.name in ("KBREED", "KFLUX"):
- return [("references", DOI_REGISTER, "De-Risking Register neutronics gates")]
- if s.name == "KISO":
- return [("isDerivedFrom", "https://www-nds.iaea.org/fendl/", "FENDL-3.2 activation data (IAEA)"),
- ("references", DOI_REGISTER, "De-Risking Register")]
- return [("references", DOI_AIQ, "Kronos AI + Quantum corpus")]
-
-
-def _headline(name, b):
- try:
- from benchmarks.run_all import _headline as hl
- return hl(name, b)
- except Exception:
- return (b or {}).get("note", "")
-
-
-def record_meta(name, b=None):
- s = K.get(name); kn = name.lower()
- if b is None:
- b = s.benchmark()
- page = f"{KODEX}/{kn}"
- src = physics_source(s)
- related = [{"relation": "isDocumentedBy", "identifier": page, "resource_type": "publication-other"},
- {"relation": "isPartOf", "identifier": KODEX, "resource_type": "publication-other"},
- {"relation": "isSupplementTo", "identifier": REPO_URL, "resource_type": "software"},
- {"relation": "references", "identifier": DOI_REGISTER, "resource_type": "publication"},
- {"relation": "isCompiledBy", "identifier": TOOLKIT_URL, "resource_type": "software"}]
- for rel, ident, _ in src:
- rtype = "dataset" if ident.startswith("10.") or "mast" in ident or "fendl" in ident else "other"
- related.append({"relation": rel, "identifier": ident, "resource_type": rtype})
- # dedupe by (relation, identifier), keeping first (e.g. register DOI appended by both
- # the base list and physics_source for KBREED/KFLUX/KISO)
- _seen, _ded = set(), []
- for r in related:
- k = (r["relation"], r["identifier"])
- if k not in _seen:
- _seen.add(k); _ded.append(r)
- related = _ded
- desc = (f"KODEX — {name} ({s.function}). {(s.note or '').strip()}
"
- f"Benchmark: {_headline(name, b)}
"
- f"Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion "
- f"surrogate suite with calibrated uncertainty and an abstention gate "
- f"(predict(x) → (y, uncertainty, in_domain)). Provenance: "
- f"{'; '.join(f'{r} {i}' for r, i, _ in src)}. Home: {page} · "
- f"suite: {REPO_URL}. Licensed under Apache-2.0. "
- f"Honest card preserved verbatim.
")
- # plaintext variant for venues whose description field does NOT render HTML (OSF)
- desc_plain = html.unescape(re.sub(r"<[^>]+>", "", desc)).strip()
- return {
- "kname": name, "page": page,
- "title": f"KODEX — {name}: {s.function}",
- "version": VERSION, "publication_date": TODAY, "language": "eng",
- "upload_type": "software",
- "creators": [{"name": "Ford, P. I.", "orcid": ORCID, "affiliation": AFFIL}],
- "license": {"id": LICENSE},
- "keywords": KEYWORDS_BASE + [s.function, f"KODEX:{name}"],
- "related_identifiers": related,
- "description": desc,
- "description_plain": desc_plain,
- "notes": (f"Draft-first per-code deposit. Full package: {REPO_URL}. "
- f"Provenance chain in card.md + MANIFEST.sha256."),
- }
-
-
-def _sha(p):
- h = hashlib.sha256()
- with open(p, "rb") as f:
- for c in iter(lambda: f.read(1 << 16), b""):
- h.update(c)
- return h.hexdigest()
-
-
-def build_records():
- REC_ROOT.mkdir(parents=True, exist_ok=True)
- STATE_ROOT.mkdir(parents=True, exist_ok=True)
- names = built()
- for name in names:
- d = REC_ROOT / name.lower()
- if (d / "metadata.json").exists() and (d / "MANIFEST.sha256").exists():
- continue # resume: already generated
- s = K.get(name); kn = name.lower()
- b = s.benchmark() # compute ONCE, reuse
- d.mkdir(exist_ok=True)
- # 1) source excerpt (the class), readable
- try:
- src_code = inspect.getsource(type(s))
- except Exception:
- src_code = f"# source not extractable for {name}\n"
- (d / f"{kn}.py").write_text(
- f'"""KODEX {name} — source excerpt (class). Full runnable package: {REPO_URL}"""\n\n'
- + src_code)
- # 2) benchmark
- (d / "benchmark.json").write_text(json.dumps(b, default=str, indent=2) + "\n")
- # 3) card
- c = s.card()
- (d / "card.md").write_text(
- f"# KODEX {name} — card\n\n"
- + "\n".join(f"- **{k}:** {v}" for k, v in c.items()) + "\n\n"
- + f"Benchmark headline: {_headline(name, b)}\n")
- # 4) per-code CITATION.cff
- (d / "CITATION.cff").write_text("\n".join([
- "cff-version: 1.2.0",
- f"title: \"KODEX — {name}: {s.function} (Kronos Family of Codes)\"",
- f"version: \"{VERSION}\"", f"date-released: \"{TODAY}\"",
- f"license: {LICENSE}", f"url: \"{KODEX}/{kn}\"",
- f"repository-code: \"{REPO_URL}\"", "type: software", "authors:",
- " - family-names: Ford", " given-names: \"P. I.\"",
- f" orcid: \"https://orcid.org/{ORCID}\"", f" affiliation: \"{AFFIL}\"",
- ]) + "\n")
- # 5) LICENSE
- shutil.copyfile(REPO / "LICENSE", d / "LICENSE")
- # 6) metadata
- (d / "metadata.json").write_text(json.dumps(record_meta(name, b), indent=2) + "\n")
- # 7) manifest
- files = [p for p in sorted(d.iterdir()) if p.name != "MANIFEST.sha256"]
- (d / "MANIFEST.sha256").write_text(
- f"# KODEX {name} SHA-256 ({VERSION}, {TODAY})\n"
- + "\n".join(f"{_sha(p)} {p.name}" for p in files) + "\n")
- (PUB / "_percode_summary.json").write_text(json.dumps(
- {"version": VERSION, "date": TODAY, "n_records": len(names), "codes": names}, indent=2) + "\n")
- return names
-
-
-def record_dir(kname):
- return REC_ROOT / kname.lower()
-
-
-def attach_paths(kname):
- d = record_dir(kname)
- # metadata.json is included so the uploaded file set exactly equals the set the
- # MANIFEST.sha256 hashes (sha256sum -c then verifies clean; -c skips the un-self-listed manifest)
- order = [f"{kname.lower()}.py", "benchmark.json", "card.md",
- "CITATION.cff", "LICENSE", "metadata.json", "MANIFEST.sha256"]
- return [d / f for f in order if (d / f).exists()]
-
-
-def load_meta(kname):
- return json.loads((record_dir(kname) / "metadata.json").read_text())
-
-
-def state_path(venue):
- return STATE_ROOT / f"{venue}_drafts.json"
-
-
-def read_state(venue):
- p = state_path(venue)
- return json.loads(p.read_text()) if p.exists() else {}
-
-
-def write_state(venue, st):
- STATE_ROOT.mkdir(parents=True, exist_ok=True)
- state_path(venue).write_text(json.dumps(st, indent=2) + "\n")
-
-
-def require_env(var):
- v = os.environ.get(var)
- if not v:
- raise SystemExit(f"[STOP] environment variable {var} is not set (see PUBLISH_RUNBOOK.md).")
- return v
-
-
-if __name__ == "__main__":
- names = build_records()
- print(f"built {len(names)} per-code records under publish/records/:")
- for n in names:
- ap = attach_paths(n)
- print(f" {n.lower():9s} {len(ap)} files, meta title={load_meta(n)['title']!r}")
diff --git a/publish/_percode_summary.json b/publish/_percode_summary.json
deleted file mode 100644
index b1ae8583aa2276c77c67cf86056b75676a786b15..0000000000000000000000000000000000000000
--- a/publish/_percode_summary.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "version": "0.2.0",
- "date": "2026-09-11",
- "n_records": 35,
- "codes": [
- "KAIROS",
- "KBENCH",
- "KBREED",
- "KBURN",
- "KDRIVE",
- "KDYN",
- "KECON",
- "KEDGE",
- "KEYE",
- "KFLOW",
- "KFLUX",
- "KFORGE",
- "KFUEL",
- "KFUSE",
- "KGATE",
- "KGEN",
- "KHALO",
- "KHEAT",
- "KISO",
- "KLAW",
- "KMAT",
- "KOIL",
- "KORE",
- "KPATH",
- "KPILOT",
- "KQERN",
- "KQOPT",
- "KQROSS",
- "KQUBIT",
- "KRAD",
- "KSEEK",
- "KSENSE",
- "KTENSOR",
- "KWARD",
- "KYRO"
- ]
-}
diff --git a/publish/_scaffolding_summary.json b/publish/_scaffolding_summary.json
deleted file mode 100644
index e7b7f336bded3756850a27cee254e4a6d537b1b3..0000000000000000000000000000000000000000
--- a/publish/_scaffolding_summary.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "version": "0.1.0",
- "date": "2026-09-10",
- "built": [
- "KAIROS",
- "KBREED",
- "KBURN",
- "KDRIVE",
- "KECON",
- "KEYE",
- "KFLOW",
- "KFLUX",
- "KFORGE",
- "KFUEL",
- "KFUSE",
- "KGATE",
- "KGEN",
- "KHALO",
- "KISO",
- "KLAW",
- "KMAT",
- "KOIL",
- "KORE",
- "KPATH",
- "KPILOT",
- "KQROSS",
- "KQUBIT",
- "KSENSE",
- "KWARD",
- "KYRO"
- ],
- "n_built": 26,
- "held": [
- "KEDGE",
- "KHEAT",
- "KRAD",
- "KTENSOR"
- ],
- "n_files_hashed": 39
-}
diff --git a/publish/dataverse_draft.py b/publish/dataverse_draft.py
deleted file mode 100644
index d52cced4a841d85a9e2cd7e81b3ec4c1d8e1f606..0000000000000000000000000000000000000000
--- a/publish/dataverse_draft.py
+++ /dev/null
@@ -1,105 +0,0 @@
-#!/usr/bin/env python
-"""Create 26 DRAFT Harvard Dataverse datasets (one per BUILT KODEX code) in the
-kronos-fusion-energy collection.
-
-DRAFT-FIRST: Dataverse datasets are created UNPUBLISHED. Never calls the publish
-action. Resume-safe via publish/state/dataverse_drafts.json (pid recorded the moment
-the dataset is created). Prints the API error body on failure so a 400 names its field.
-After review, run dataverse_publish_all.py --yes.
-
- export DATAVERSE_TOKEN=...
- export DATAVERSE_CONTACT_EMAIL=... # shown PUBLICLY — use a public-safe address
- # optional: DATAVERSE_COLLECTION=kronos-fusion-energy DATAVERSE_BASE=https://dataverse.harvard.edu
- python publish/dataverse_draft.py
-"""
-from __future__ import annotations
-import os, sys
-import requests
-from _percode import built, attach_paths, load_meta, read_state, write_state, require_env, ORCID
-
-BASE = os.environ.get("DATAVERSE_BASE", "https://dataverse.harvard.edu").rstrip("/")
-COLLECTION = os.environ.get("DATAVERSE_COLLECTION", "kronos-fusion-energy")
-
-
-def _prim(name, value, multiple=False, cls="primitive"):
- return {"typeName": name, "multiple": multiple, "typeClass": cls, "value": value}
-
-
-def _dataset_json(m, contact_email):
- author = {"authorName": _prim("authorName", "Ford, P. I."),
- "authorAffiliation": _prim("authorAffiliation", "Kronos Fusion Energy"),
- "authorIdentifierScheme": {"typeName": "authorIdentifierScheme", "multiple": False,
- "typeClass": "controlledVocabulary", "value": "ORCID"},
- "authorIdentifier": _prim("authorIdentifier", ORCID)}
- contact = {"datasetContactName": _prim("datasetContactName", "Ford, P. I."),
- "datasetContactAffiliation": _prim("datasetContactAffiliation", "Kronos Fusion Energy"),
- "datasetContactEmail": _prim("datasetContactEmail", contact_email)}
- desc = {"dsDescriptionValue": _prim("dsDescriptionValue", m["description"])}
- kws = [{"keywordValue": _prim("keywordValue", k)} for k in m["keywords"]]
- # only well-formed DOI publications (bare-URL entries live in the description instead)
- pubs = []
- for r in m["related_identifiers"]:
- ident = r["identifier"]
- if ident.startswith("10."):
- pubs.append({"publicationIDType": {"typeName": "publicationIDType", "multiple": False,
- "typeClass": "controlledVocabulary", "value": "doi"},
- "publicationIDNumber": _prim("publicationIDNumber", ident),
- "publicationURL": _prim("publicationURL", f"https://doi.org/{ident}")})
- fields = [_prim("title", m["title"]),
- _prim("author", [author], True, "compound"),
- _prim("datasetContact", [contact], True, "compound"),
- _prim("dsDescription", [desc], True, "compound"),
- _prim("subject", ["Physics"], True, "controlledVocabulary"),
- _prim("keyword", kws, True, "compound")]
- if pubs:
- fields.append(_prim("publication", pubs, True, "compound"))
- # Harvard's license picker has no Apache-2.0, and a license-less dataset defaults to CC0.
- # So set Custom Terms of Use = Apache-2.0 text (per f7's live run) to override the CC0 default.
- apache_terms = ("Licensed under the Apache License, Version 2.0 "
- "(http://www.apache.org/licenses/LICENSE-2.0). The full license text is in the "
- "bundled LICENSE file; citation metadata in CITATION.cff.")
- return {"datasetVersion": {"termsOfUse": apache_terms,
- "metadataBlocks": {"citation": {"fields": fields}}}}
-
-
-def main():
- token = require_env("DATAVERSE_TOKEN")
- contact = os.environ.get("DATAVERSE_CONTACT_EMAIL")
- if not contact:
- raise SystemExit("[STOP] set DATAVERSE_CONTACT_EMAIL (public on the record) first.")
- h = {"X-Dataverse-key": token}
- s = requests.Session()
- state = read_state("dataverse")
- names = built()
- for i, name in enumerate(names, 1):
- rec = state.get(name, {})
- if rec.get("done"):
- print(f"[dataverse] ({i}/{len(names)}) {name}: complete (skip)"); continue
- m = load_meta(name)
- pid = rec.get("pid")
- if not pid:
- r = s.post(f"{BASE}/api/dataverses/{COLLECTION}/datasets", headers=h,
- json=_dataset_json(m, contact))
- if not r.ok:
- print(f"[dataverse] {name}: create FAILED {r.status_code}: {r.text[:500]}")
- return 1
- pid = r.json()["data"].get("persistentId")
- state[name] = {"pid": pid,
- "url": f"{BASE}/dataset.xhtml?persistentId={pid}&version=DRAFT"}
- write_state("dataverse", state)
- for path in attach_paths(name):
- with open(path, "rb") as fh:
- r = s.post(f"{BASE}/api/datasets/:persistentId/add", headers=h,
- params={"persistentId": pid}, files={"file": (path.name, fh)})
- if not r.ok and "duplicate" not in r.text.lower() and "exists" not in r.text.lower():
- print(f"[dataverse] {name}/{path.name}: add FAILED {r.status_code}: {r.text[:300]}")
- return 1
- state[name]["done"] = True
- write_state("dataverse", state)
- print(f"[dataverse] ({i}/{len(names)}) {name}: DRAFT {pid}")
- print(f"\n[dataverse] {sum(1 for r in state.values() if r.get('done'))} drafts (NONE published). Then:")
- print(" python publish/dataverse_publish_all.py --yes")
-
-
-if __name__ == "__main__":
- sys.exit(main())
diff --git a/publish/dataverse_publish_all.py b/publish/dataverse_publish_all.py
deleted file mode 100644
index d699f16d808dabc5acb25af7636c242d4a2177a4..0000000000000000000000000000000000000000
--- a/publish/dataverse_publish_all.py
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/env python
-"""Publish the 26 per-code Harvard Dataverse DRAFTS created by dataverse_draft.py.
-
-IRREVERSIBLE STEP. DRY RUN by default; publishes (major version) only with --yes,
-only the datasets recorded in publish/state/dataverse_drafts.json.
-
- export DATAVERSE_TOKEN=...
- python publish/dataverse_publish_all.py # dry run
- python publish/dataverse_publish_all.py --yes # publish
-"""
-from __future__ import annotations
-import argparse, os, sys
-import requests
-from _percode import read_state, write_state, require_env
-
-BASE = os.environ.get("DATAVERSE_BASE", "https://dataverse.harvard.edu").rstrip("/")
-
-
-def main():
- ap = argparse.ArgumentParser()
- ap.add_argument("--yes", action="store_true")
- args = ap.parse_args()
- state = read_state("dataverse")
- # records submitted for Harvard CURATOR review (review:true) are published by the
- # curators on approval, NOT by a depositor :publish call (which errors on an In-Review
- # dataset). Only ever direct-publish records that are NOT in the review queue.
- in_review = {n: r for n, r in state.items() if r.get("review") and not r.get("published")}
- pending = {n: r for n, r in state.items()
- if r.get("pid") and not r.get("published") and not r.get("review")}
- if in_review:
- print(f"[dataverse] {len(in_review)} dataset(s) are in Harvard curator review — "
- f"published on curator APPROVAL, not here. Skipping: {', '.join(sorted(in_review))}")
- if not pending:
- print("[dataverse] no directly-publishable drafts (all are curator-review or already "
- "published). Nothing to do — await Harvard curators."); return
- print(f"[dataverse] {len(pending)} NON-review draft(s) directly publishable on {BASE}:")
- for n, r in pending.items():
- print(f" {n:9s} {r['pid']}")
- if not args.yes:
- print("\n[dataverse] DRY RUN — nothing published. Re-run with --yes.")
- return
- h = {"X-Dataverse-key": require_env("DATAVERSE_TOKEN")}
- s = requests.Session()
- ok = 0
- for n, r in pending.items():
- resp = s.post(f"{BASE}/api/datasets/:persistentId/actions/:publish",
- headers=h, params={"persistentId": r["pid"], "type": "major"})
- if not resp.ok: # don't let one failure abort the batch
- print(f"[dataverse] {n}: publish FAILED {resp.status_code}: {resp.text[:200]}")
- continue
- r["published"] = True
- write_state("dataverse", state)
- ok += 1
- print(f"[dataverse] PUBLISHED {n}: {r['pid']}")
- print(f"\n[dataverse] published {ok}/{len(pending)} non-review records.")
-
-
-if __name__ == "__main__":
- sys.exit(main())
diff --git a/publish/figshare_draft.py b/publish/figshare_draft.py
deleted file mode 100644
index 17c0b5d74054eacab21891bba4629fd1c014ef2e..0000000000000000000000000000000000000000
--- a/publish/figshare_draft.py
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/usr/bin/env python
-"""Create 26 DRAFT Figshare articles (one per BUILT KODEX code).
-
-DRAFT-FIRST: never calls /publish. Creates private articles, reserves DOIs (a
-reservation is not a publication), uploads each code's attach set via the multipart
-flow. Resume-safe via publish/state/figshare_drafts.json (article id recorded the
-moment it is created, so a mid-upload failure never orphans it). After review, run
-figshare_publish_all.py --yes.
-
- export FIGSHARE_TOKEN=...
- python publish/figshare_draft.py
-"""
-from __future__ import annotations
-import hashlib, sys
-import requests
-from _percode import built, attach_paths, load_meta, read_state, write_state, require_env
-
-API = "https://api.figshare.com/v2"
-
-
-def _md5(path):
- h = hashlib.md5()
- with open(path, "rb") as f:
- for c in iter(lambda: f.read(1 << 16), b""):
- h.update(c)
- return h.hexdigest()
-
-
-def _refs(meta):
- """Figshare 'references' must be valid URLs — DOIs -> https://doi.org/..., keep only
- http(s), dedupe, preserve order."""
- out, seen = [], set()
- for r in meta["related_identifiers"]:
- ident = r["identifier"].strip()
- url = f"https://doi.org/{ident}" if ident.startswith("10.") else ident
- if url.startswith("http") and url not in seen:
- seen.add(url); out.append(url)
- return out
-
-
-def _tags(meta):
- """Figshare tags: each >= 3 chars; keep it modest."""
- out, seen = [], set()
- for k in meta["keywords"]:
- k = k.strip()
- if len(k) >= 3 and k.lower() not in seen:
- seen.add(k.lower()); out.append(k)
- return out[:10]
-
-
-def _existing_files(s, h, article_id):
- try:
- r = s.get(f"{API}/account/articles/{article_id}/files", headers=h)
- return {f["name"] for f in r.json()} if r.ok else set()
- except Exception:
- return set()
-
-
-def _upload(s, h, article_id, path):
- size = path.stat().st_size
- r = s.post(f"{API}/account/articles/{article_id}/files", headers=h,
- json={"name": path.name, "md5": _md5(path), "size": size}); r.raise_for_status()
- file_url = r.json()["location"]
- info = s.get(file_url, headers=h).json()
- up = s.get(info["upload_url"], headers=h).json()
- with open(path, "rb") as fh:
- for part in up["parts"]:
- fh.seek(part["startOffset"])
- chunk = fh.read(part["endOffset"] - part["startOffset"] + 1)
- s.put(f"{info['upload_url']}/{part['partNo']}", headers=h, data=chunk).raise_for_status()
- s.post(file_url, headers=h).raise_for_status()
-
-
-def main():
- token = require_env("FIGSHARE_TOKEN")
- h = {"Authorization": f"token {token}"}
- s = requests.Session()
- state = read_state("figshare")
- names = built()
- for i, name in enumerate(names, 1):
- rec = state.get(name, {})
- if rec.get("done"):
- print(f"[figshare] ({i}/{len(names)}) {name}: complete (skip)"); continue
- m = load_meta(name)
- aid = rec.get("id")
- if not aid:
- body = {"title": m["title"], "description": m["description"],
- "defined_type": "software", "tags": _tags(m), "references": _refs(m),
- # explicit author (ORCID is linked via the uploading Figshare account)
- "authors": [{"name": "Ford, P. I."}],
- # LEAF categories only — parent 29152 is not assignable (per f7's live run)
- "categories": [30202, 29173, 26836]}
- r = s.post(f"{API}/account/articles", headers=h, json=body)
- if not r.ok:
- print(f"[figshare] {name}: create FAILED {r.status_code}: {r.text[:400]}")
- print(f" body.tags={body['tags']}")
- print(f" body.references={body['references']}")
- return 1
- aid = int(r.json()["location"].rstrip("/").split("/")[-1])
- state[name] = {"id": aid, "url": f"https://figshare.com/account/articles/{aid}"}
- write_state("figshare", state)
- try:
- s.post(f"{API}/account/articles/{aid}/reserve_doi", headers=h).raise_for_status()
- except Exception:
- pass
- have = _existing_files(s, h, aid)
- for path in attach_paths(name):
- if path.name in have:
- continue # already uploaded (resumed) -> idempotent
- _upload(s, h, aid, path)
- state[name]["done"] = True
- write_state("figshare", state)
- print(f"[figshare] ({i}/{len(names)}) {name}: DRAFT {aid}")
- print(f"\n[figshare] {sum(1 for r in state.values() if r.get('done'))} drafts (NONE published). Then:")
- print(" python publish/figshare_publish_all.py --yes")
-
-
-if __name__ == "__main__":
- sys.exit(main())
diff --git a/publish/figshare_publish_all.py b/publish/figshare_publish_all.py
deleted file mode 100644
index 4161215811f2efe1a756132528c036c4873a1336..0000000000000000000000000000000000000000
--- a/publish/figshare_publish_all.py
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/env python
-"""Publish the 26 per-code Figshare DRAFTS created by figshare_draft.py.
-
-IRREVERSIBLE STEP. DRY RUN by default; publishes only with --yes, only the articles
-recorded in publish/state/figshare_drafts.json.
-
- export FIGSHARE_TOKEN=...
- python publish/figshare_publish_all.py # dry run
- python publish/figshare_publish_all.py --yes # publish
-"""
-from __future__ import annotations
-import argparse, sys
-import requests
-from _percode import read_state, write_state, require_env
-
-API = "https://api.figshare.com/v2"
-
-
-def main():
- ap = argparse.ArgumentParser()
- ap.add_argument("--yes", action="store_true")
- args = ap.parse_args()
- state = read_state("figshare")
- pending = {n: r for n, r in state.items() if r.get("id") and not r.get("published")}
- if not pending:
- print("[figshare] no unpublished drafts in state (run figshare_draft.py first)."); return
- print(f"[figshare] {len(pending)} draft(s) to publish:")
- for n, r in pending.items():
- print(f" {n:9s} id={r['id']}")
- if not args.yes:
- print("\n[figshare] DRY RUN — nothing published. Re-run with --yes.")
- return
- h = {"Authorization": f"token {require_env('FIGSHARE_TOKEN')}"}
- s = requests.Session()
- for n, r in pending.items():
- resp = s.post(f"{API}/account/articles/{r['id']}/publish", headers=h)
- resp.raise_for_status()
- loc = resp.json().get("location", "")
- r["published"] = True
- r["public_url"] = loc
- write_state("figshare", state)
- print(f"[figshare] PUBLISHED {n}: {loc}")
- print(f"\n[figshare] published {len(pending)} records.")
-
-
-if __name__ == "__main__":
- sys.exit(main())
diff --git a/publish/ia_upload_all.py b/publish/ia_upload_all.py
deleted file mode 100644
index 724a0cf8e87d3ace8e9df8f562b7c6b6f754ce34..0000000000000000000000000000000000000000
--- a/publish/ia_upload_all.py
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/env python
-"""Upload the 26 per-code KODEX records to the Internet Archive (one item per code).
-
-NOTE: Internet Archive items become PUBLIC on upload — there is no private-draft state —
-so this IS the publish step for IA. DRY RUN by default; uploads only with --yes.
-Requires the `ia` CLI configured (`ia configure` with your S3 keys) once.
-
- python publish/ia_upload_all.py # dry run (lists items + files)
- python publish/ia_upload_all.py --yes # upload (public)
-"""
-from __future__ import annotations
-import argparse, subprocess, sys
-from _percode import built, attach_paths, load_meta, VERSION
-
-
-def main():
- ap = argparse.ArgumentParser()
- ap.add_argument("--yes", action="store_true")
- args = ap.parse_args()
- names = built()
- print(f"[ia] {len(names)} items to upload (identifier = kronos-ml-kodex--v{VERSION}):")
- plans = []
- for name in names:
- m = load_meta(name)
- ident = f"kronos-ml-kodex-{name.lower()}-v{VERSION}"
- files = [str(p) for p in attach_paths(name)]
- plans.append((ident, m, files))
- print(f" {ident} ({len(files)} files)")
- if not args.yes:
- print("\n[ia] DRY RUN — nothing uploaded. Re-run with --yes (items go PUBLIC on upload).")
- return
- for ident, m, files in plans:
- cmd = ["ia", "upload", ident, *files,
- f"--metadata=title:{m['title']}",
- "--metadata=creator:Ford, P. I.",
- "--metadata=licenseurl:https://spdx.org/licenses/Apache-2.0",
- f"--metadata=external-identifier:{m['page']}",
- "--metadata=subject:fusion; spherical tokamak; AI/ML surrogate; Kronos Fusion Energy"]
- r = subprocess.run(cmd)
- if r.returncode != 0:
- print(f"[ia] FAILED {ident} (rc={r.returncode})"); return r.returncode
- print(f"[ia] uploaded https://archive.org/details/{ident}")
- print(f"\n[ia] uploaded {len(plans)} items.")
-
-
-if __name__ == "__main__":
- sys.exit(main())
diff --git a/publish/kronos-ml-v0.1.0-source.zip b/publish/kronos-ml-v0.1.0-source.zip
deleted file mode 100644
index 873f044f1a318ba8854fee25bde114e60c710bc4..0000000000000000000000000000000000000000
--- a/publish/kronos-ml-v0.1.0-source.zip
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:cc14cfb661fae0b28ebb757796c563cf9517ee3bf444e97d314cd377b4b94b21
-size 652545
diff --git a/publish/osf_draft.py b/publish/osf_draft.py
deleted file mode 100644
index 0b14bc543d5b56036adfa2890026e14e285da1d5..0000000000000000000000000000000000000000
--- a/publish/osf_draft.py
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/usr/bin/env python
-"""Create 26 PRIVATE OSF projects (one per BUILT KODEX code).
-
-DRAFT-FIRST: each project is created private (public=false) and never made public here.
-Resume-safe via publish/state/osf_drafts.json. Throttled + retried against OSF's
-rate-limiting (403/429). After review, run osf_publish_all.py --yes.
-
- export OSF_TOKEN=...
- python publish/osf_draft.py
-"""
-from __future__ import annotations
-import sys, time
-import requests
-from _percode import (built, attach_paths, load_meta, read_state, write_state,
- require_env, http_retry)
-
-API = "https://api.osf.io/v2"
-WB = "https://files.osf.io/v1"
-PACE_FILE = 0.6 # seconds between file uploads
-PACE_PROJECT = 1.2 # seconds between projects
-
-
-def main():
- token = require_env("OSF_TOKEN")
- h = {"Authorization": f"Bearer {token}"}
- hj = {**h, "Content-Type": "application/vnd.api+json"}
- s = requests.Session()
- state = read_state("osf")
- names = built()
- for i, name in enumerate(names, 1):
- rec = state.get(name, {})
- node = rec.get("id")
- if rec.get("done"):
- print(f"[osf] ({i}/{len(names)}) {name}: complete (skip)"); continue
- m = load_meta(name)
- if not node: # create the project (retry rate-limits)
- payload = {"data": {"type": "nodes", "attributes": {
- "title": m["title"], "category": "software",
- # OSF renders the description as PLAIN TEXT (no HTML) -> use the stripped variant
- "description": m.get("description_plain", m["description"]),
- "public": False, "tags": m["keywords"][:25]}}}
- r = http_retry(lambda: s.post(f"{API}/nodes/", headers=hj, json=payload),
- label=f"osf-create {name}")
- if not r.ok:
- print(f"[osf] {name}: create FAILED {r.status_code}: {r.text[:300]}"); return 1
- node = r.json()["data"]["id"]
- state[name] = {"id": node, "url": f"https://osf.io/{node}/"}
- write_state("osf", state)
- time.sleep(PACE_PROJECT)
- # upload files (throttled; 409 = already there = fine)
- for path in attach_paths(name):
- def _put():
- with open(path, "rb") as fh:
- return s.put(f"{WB}/resources/{node}/providers/osfstorage/", headers=h,
- params={"kind": "file", "name": path.name}, data=fh)
- r = http_retry(_put, label=f"osf-upload {name}/{path.name}")
- if r.status_code == 409:
- pass # file already exists (resumed) -> treat as done
- elif not r.ok:
- print(f"[osf] {name}/{path.name}: upload FAILED {r.status_code}: {r.text[:200]}")
- return 1
- time.sleep(PACE_FILE)
- state[name]["done"] = True
- write_state("osf", state)
- print(f"[osf] ({i}/{len(names)}) {name}: PRIVATE {node} ({len(attach_paths(name))} files)")
- print(f"\n[osf] {sum(1 for r in state.values() if r.get('done'))} private projects (NONE public). Then:")
- print(" python publish/osf_publish_all.py --yes")
-
-
-if __name__ == "__main__":
- sys.exit(main())
diff --git a/publish/osf_publish_all.py b/publish/osf_publish_all.py
deleted file mode 100644
index c49657ec0fafde6ad9a8cd8e4ca8e840a62f3737..0000000000000000000000000000000000000000
--- a/publish/osf_publish_all.py
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/env python
-"""Make the 26 per-code OSF projects PUBLIC (created private by osf_draft.py).
-
-IRREVERSIBLE STEP. DRY RUN by default; flips projects to public only with --yes,
-and only those recorded in publish/state/osf_drafts.json.
-
- export OSF_TOKEN=...
- python publish/osf_publish_all.py # dry run
- python publish/osf_publish_all.py --yes # make public
-"""
-from __future__ import annotations
-import argparse, sys
-import requests
-from _percode import read_state, write_state, require_env
-
-API = "https://api.osf.io/v2"
-
-
-def main():
- ap = argparse.ArgumentParser()
- ap.add_argument("--yes", action="store_true")
- args = ap.parse_args()
- state = read_state("osf")
- pending = {n: r for n, r in state.items() if r.get("id") and not r.get("public")}
- if not pending:
- print("[osf] no private projects in state (run osf_draft.py first)."); return
- print(f"[osf] {len(pending)} project(s) to make public:")
- for n, r in pending.items():
- print(f" {n:9s} {r.get('url','')}")
- if not args.yes:
- print("\n[osf] DRY RUN — nothing made public. Re-run with --yes.")
- return
- hj = {"Authorization": f"Bearer {require_env('OSF_TOKEN')}",
- "Content-Type": "application/vnd.api+json"}
- s = requests.Session()
- for n, r in pending.items():
- payload = {"data": {"type": "nodes", "id": r["id"], "attributes": {"public": True}}}
- resp = s.patch(f"{API}/nodes/{r['id']}/", headers=hj, json=payload)
- resp.raise_for_status()
- r["public"] = True
- write_state("osf", state)
- print(f"[osf] PUBLIC {n}: {r.get('url')}")
- print(f"\n[osf] made {len(pending)} projects public.")
-
-
-if __name__ == "__main__":
- sys.exit(main())
diff --git a/publish/records/kairos/CITATION.cff b/publish/records/kairos/CITATION.cff
deleted file mode 100644
index 501cd624a334ebd289fb83b29a98285292018c0c..0000000000000000000000000000000000000000
--- a/publish/records/kairos/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KAIROS: CONTROL (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kairos"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kairos/LICENSE b/publish/records/kairos/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kairos/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kairos/MANIFEST.sha256 b/publish/records/kairos/MANIFEST.sha256
deleted file mode 100644
index 65cac222023790a51e2b676c48c8d7cf1019a513..0000000000000000000000000000000000000000
--- a/publish/records/kairos/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KAIROS SHA-256 (0.2.0, 2026-09-11)
-d334149c67e6fab06da1157e5cd47129d2bf4e738754afeb20176b6bacb89d54 CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-4519abc8cba84d5ba68e5e0cc5faef0dac4094a970a6a4a39f993abcfc4931be benchmark.json
-f99514c0fb9ad18571bfafcdd8579f51323285a65c66f90140d91cb781a58243 card.md
-203323e21eb15172090486e0fdde9367a3c13b7e1fb3d66d5b280108b7f15f32 kairos.py
-85ff663bac08f45a66d216dbbed1bf62143b7fa0943192c6f6e91f4ca3cf4c47 metadata.json
diff --git a/publish/records/kairos/benchmark.json b/publish/records/kairos/benchmark.json
deleted file mode 100644
index 02bfb776dd53603d45ed12d641dd5b3b1bf9bedf..0000000000000000000000000000000000000000
--- a/publish/records/kairos/benchmark.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "member": "KAIROS",
- "live_tracking_rms_frac": 0.0461,
- "live_expB_model_failure": {
- "adversaries": [
- "drift",
- "edge_seeker",
- "nan_garbage"
- ],
- "steps": 150000,
- "escapes": 0,
- "catch_rate": 1.0
- },
- "live_mpc_step_us": 96.1,
- "sourced": {
- "file": "track5_control/clamp_activation_stats.csv",
- "headline": "0 escapes / 150k steps / 3000 injected (AC-25); tracking <5%"
- }
-}
diff --git a/publish/records/kairos/card.md b/publish/records/kairos/card.md
deleted file mode 100644
index feb7d2625ebec2e53aa74e2ba7e9837c46091aa5..0000000000000000000000000000000000000000
--- a/publish/records/kairos/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KAIROS — card
-
-- **name:** KAIROS
-- **function:** CONTROL
-- **status:** BUILT
-- **phase:** 1
-- **provenance:** TWIN
-- **retired_by:** validated real-time plant controller (device-in-the-loop)
-- **gates:** ['AC-24', 'AC-25']
-- **note:** real-time closed-loop MPC control (analytic finite-horizon QP); supplies the model-free L4 clamp that KGATE enforces
-- **available:** True
-
-Benchmark headline: MPC tracking 0.0461 (<5%); Exp-B **0 escapes / 150,000**; 96.1 µs/step
diff --git a/publish/records/kairos/kairos.py b/publish/records/kairos/kairos.py
deleted file mode 100644
index ebabbcd27384dcf51d0d6626abb5cbb5ed01cd34..0000000000000000000000000000000000000000
--- a/publish/records/kairos/kairos.py
+++ /dev/null
@@ -1,57 +0,0 @@
-"""KODEX KAIROS — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KAIROS(Surrogate):
- name = "KAIROS"; function = "CONTROL"; phase = 1; status = "BUILT"
- provenance = "TWIN"
- retired_by = "validated real-time plant controller (device-in-the-loop)"
- real_codes = ("receding-horizon MPC",)
- gates = ("AC-24", "AC-25")
- note = ("real-time closed-loop MPC control (analytic finite-horizon QP); "
- "supplies the model-free L4 clamp that KGATE enforces")
-
- def _predict(self, x):
- """x = (state6, ref6) -> next command from the MPC, clamped by KGATE."""
- state, ref = x
- u = _mpc(state, ref)
- safe, ok = get("KGATE").clamp(u)
- in_dom = bool(np.allclose(safe, u, atol=1e-6))
- return Prediction(safe, None, in_dom,
- note="MPC step, clamped" if not in_dom else "MPC step, in envelope")
-
- def benchmark(self):
- rng = np.random.default_rng(uq.SEED)
- clamp = get("KGATE").clamp
- # (1) closed-loop tracking: drive from a start state to a setpoint
- ref = np.array([2.2, 0.3, 3.0, 1.0, 0.2, 30.0])
- x = np.array([2.0, 0.0, 2.0, 0.5, 0.1, 20.0])
- for _ in range(200):
- safe, _ = clamp(_mpc(x, ref)); x = _plant_step(x, safe, rng)
- rng_scale = np.array([1, 1, 4.2, 3, 0.4, 47.21])
- track_rms = float(np.sqrt(np.mean(((x - ref) / rng_scale) ** 2)))
- # (2) Exp-B: broken controllers emit unsafe commands; clamp must catch all
- from .spine import _LO, _HI
- adversaries = {
- "drift": lambda: _HI * (1 + 0.5 * rng.random(6)),
- "edge_seeker": lambda: _HI + 5,
- "nan_garbage": lambda: np.where(rng.random(6) < 0.3, np.nan, _HI * 3),
- }
- escapes = 0; steps = 0
- for _, gen in adversaries.items():
- for _ in range(50_000):
- safe, _ = clamp(gen()); steps += 1
- if not (np.all(safe >= _LO - 1e-9) and np.all(safe <= _HI + 1e-9)):
- escapes += 1
- # (3) real latency of an MPC step + clamp
- t0 = time.perf_counter()
- for _ in range(2000):
- clamp(_mpc(x, ref))
- us = (time.perf_counter() - t0) / 2000 * 1e6
- return {"member": self.name,
- "live_tracking_rms_frac": round(track_rms, 4),
- "live_expB_model_failure": {"adversaries": list(adversaries),
- "steps": steps, "escapes": escapes,
- "catch_rate": 1.0 - escapes / steps},
- "live_mpc_step_us": round(us, 1),
- "sourced": {"file": "track5_control/clamp_activation_stats.csv",
- "headline": "0 escapes / 150k steps / 3000 injected (AC-25); tracking <5%"}}
diff --git a/publish/records/kairos/metadata.json b/publish/records/kairos/metadata.json
deleted file mode 100644
index 51cfd176f29953699262e26f580b3aec7eb5a0c5..0000000000000000000000000000000000000000
--- a/publish/records/kairos/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KAIROS",
- "page": "https://kronosfusionenergy.com/kodex/kairos",
- "title": "KODEX \u2014 KAIROS: CONTROL",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "CONTROL",
- "KODEX:KAIROS"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kairos",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KAIROS (CONTROL). real-time closed-loop MPC control (analytic finite-horizon QP); supplies the model-free L4 clamp that KGATE enforces
Benchmark: MPC tracking 0.0461 (<5%); Exp-B **0 escapes / 150,000**; 96.1 \u00b5s/step
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kairos · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KAIROS (CONTROL). real-time closed-loop MPC control (analytic finite-horizon QP); supplies the model-free L4 clamp that KGATE enforcesBenchmark: MPC tracking 0.0461 (Part of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kairos \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kbench/CITATION.cff b/publish/records/kbench/CITATION.cff
deleted file mode 100644
index 975248049f95e6d20e4dd62855d08bdb752cbd55..0000000000000000000000000000000000000000
--- a/publish/records/kbench/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KBENCH: BENCHMARK (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kbench"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kbench/LICENSE b/publish/records/kbench/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kbench/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kbench/MANIFEST.sha256 b/publish/records/kbench/MANIFEST.sha256
deleted file mode 100644
index d720b4c1587e609cf33f6e8a77eb914776675bc5..0000000000000000000000000000000000000000
--- a/publish/records/kbench/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KBENCH SHA-256 (0.2.0, 2026-09-11)
-cecfe7657f26a4b4af96f4257070e8769c4c9266748d8717f4ceeb3fbba00e83 CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-1f532ca6a582bc0e639f3490dc421c799f583766a8639863078d00ff3ef66f75 benchmark.json
-65f7c48c499563e291bf9230ac6098dcee186eaf437e97b43b41a640638fa972 card.md
-4d0e21b1012d27a9f9a2bb6cccb937530a8efe1ed02b6b9d5cc569ac8ad42c91 kbench.py
-e62bf7f72ba3ffda7478ade5c404e054bb0e77d9a42be30352ef1952673934a4 metadata.json
diff --git a/publish/records/kbench/benchmark.json b/publish/records/kbench/benchmark.json
deleted file mode 100644
index 0071f111c1883d9b9ffde7310a6533e7491dbb5f..0000000000000000000000000000000000000000
--- a/publish/records/kbench/benchmark.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "member": "KBENCH",
- "live_benchmark_suite": {
- "n_tasks": 3,
- "tasks": {
- "cgyro-turbulence-flux": {
- "inputs": [
- "a_LT",
- "shear"
- ],
- "target": "log10 Q_tot (regression) + turbulent/quiet (classification)",
- "n_samples": 16,
- "metric": "R2 (regression) / leave-one-out accuracy (classification)",
- "loader": "kronos_ml.data.cgyro_flux_map_final()",
- "baseline_code": "KYRO",
- "baseline_score": "R2 ~0.86, turbulent/quiet 16/16",
- "note": "real CGYRO A1e saturated-flux (mu=400 representative)"
- },
- "mast-disruption": {
- "inputs": "physics features (Ip family + EFIT + n=1 Mirnov / P_rad)",
- "target": "disruptive (binary)",
- "n_samples": 591,
- "metric": "ROC-AUC (+ independent-precursor AUC)",
- "loader": "kronos_ml.data.kward_real()",
- "baseline_code": "KWARD",
- "baseline_score": "AUC ~0.98, independent-precursor 0.975",
- "note": "real MAST shots (FAIR-MAST); labels are heuristic Ip-quench"
- },
- "cgyro-rom-compressibility": {
- "inputs": "flux-database matrix (points x [inputs, fluxes])",
- "target": "rel-L2 reconstruction error vs retained bond dimension",
- "n_samples": 16,
- "metric": "rel-L2 vs rank",
- "loader": "kronos_ml.data.cgyro_flux_map_final()",
- "baseline_code": "KTENSOR",
- "baseline_score": "effective rank 2.93/4 (not strongly low-rank)",
- "note": "honest ROM characterization"
- }
- },
- "how_to_use": "load via each task's loader, use the fixed reproducible split, report the metric, and try to beat the named KODEX baseline_code",
- "verdict": "3 open, citable fusion-ML tasks (CGYRO turbulence, MAST disruption, flux ROM) with real on-disk data + reproducible KODEX baselines \u2014 a community leaderboard starting point, not a private result"
- },
- "caveat": "small by mainstream-ML standards (CGYRO = 16 pts); honest pilot fusion-ML benchmarks"
-}
diff --git a/publish/records/kbench/card.md b/publish/records/kbench/card.md
deleted file mode 100644
index 8e0262202191905802be278c8dc01fb1093e3e45..0000000000000000000000000000000000000000
--- a/publish/records/kbench/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KBENCH — card
-
-- **name:** KBENCH
-- **function:** BENCHMARK
-- **status:** BUILT
-- **phase:** 3
-- **provenance:** n/a
-- **retired_by:** community-standard fusion-ML benchmarks
-- **gates:** []
-- **note:** open, citable ML benchmark suite for fusion — real CGYRO turbulence + MAST disruption tasks with fixed splits, metrics and KODEX baselines to beat. Bring your own model; move the community forward
-- **available:** True
-
-Benchmark headline: open fusion-ML benchmark suite: **3 citable tasks** (CGYRO turbulence, MAST disruption, flux ROM) with real data + KODEX baselines
diff --git a/publish/records/kbench/kbench.py b/publish/records/kbench/kbench.py
deleted file mode 100644
index 8127ad78bdb11e36dbe775c72e2997ff9810593d..0000000000000000000000000000000000000000
--- a/publish/records/kbench/kbench.py
+++ /dev/null
@@ -1,54 +0,0 @@
-"""KODEX KBENCH — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KBENCH(Surrogate):
- name = "KBENCH"; function = "BENCHMARK"; phase = 3; status = "BUILT"
- provenance = "n/a"
- retired_by = "community-standard fusion-ML benchmarks"
- real_codes = ("open ML benchmark suite",)
- gates = ()
- note = ("open, citable ML benchmark suite for fusion — real CGYRO turbulence + MAST "
- "disruption tasks with fixed splits, metrics and KODEX baselines to beat. Bring "
- "your own model; move the community forward")
-
- def tasks(self):
- return {
- "cgyro-turbulence-flux": {
- "inputs": ["a_LT", "shear"],
- "target": "log10 Q_tot (regression) + turbulent/quiet (classification)",
- "n_samples": 16, "metric": "R2 (regression) / leave-one-out accuracy (classification)",
- "loader": "kronos_ml.data.cgyro_flux_map_final()",
- "baseline_code": "KYRO", "baseline_score": "R2 ~0.86, turbulent/quiet 16/16",
- "note": "real CGYRO A1e saturated-flux (mu=400 representative)"},
- "mast-disruption": {
- "inputs": "physics features (Ip family + EFIT + n=1 Mirnov / P_rad)",
- "target": "disruptive (binary)",
- "n_samples": 591, "metric": "ROC-AUC (+ independent-precursor AUC)",
- "loader": "kronos_ml.data.kward_real()",
- "baseline_code": "KWARD", "baseline_score": "AUC ~0.98, independent-precursor 0.975",
- "note": "real MAST shots (FAIR-MAST); labels are heuristic Ip-quench"},
- "cgyro-rom-compressibility": {
- "inputs": "flux-database matrix (points x [inputs, fluxes])",
- "target": "rel-L2 reconstruction error vs retained bond dimension",
- "n_samples": 16, "metric": "rel-L2 vs rank",
- "loader": "kronos_ml.data.cgyro_flux_map_final()",
- "baseline_code": "KTENSOR", "baseline_score": "effective rank 2.93/4 (not strongly low-rank)",
- "note": "honest ROM characterization"},
- }
-
- def _predict(self, x):
- t = self.tasks()
- key = x if isinstance(x, str) and x in t else next(iter(t))
- return Prediction(t[key], None, True, note=f"fusion-ML benchmark task spec: {key}")
-
- def benchmark(self):
- t = self.tasks()
- return {"member": self.name,
- "live_benchmark_suite": {
- "n_tasks": len(t), "tasks": t,
- "how_to_use": ("load via each task's loader, use the fixed reproducible split, report "
- "the metric, and try to beat the named KODEX baseline_code"),
- "verdict": ("3 open, citable fusion-ML tasks (CGYRO turbulence, MAST disruption, flux "
- "ROM) with real on-disk data + reproducible KODEX baselines — a community "
- "leaderboard starting point, not a private result")},
- "caveat": "small by mainstream-ML standards (CGYRO = 16 pts); honest pilot fusion-ML benchmarks"}
diff --git a/publish/records/kbench/metadata.json b/publish/records/kbench/metadata.json
deleted file mode 100644
index 7cc1b33f1997a311d3bad8ed5cc7bde23649b45c..0000000000000000000000000000000000000000
--- a/publish/records/kbench/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KBENCH",
- "page": "https://kronosfusionenergy.com/kodex/kbench",
- "title": "KODEX \u2014 KBENCH: BENCHMARK",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "BENCHMARK",
- "KODEX:KBENCH"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kbench",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KBENCH (BENCHMARK). open, citable ML benchmark suite for fusion \u2014 real CGYRO turbulence + MAST disruption tasks with fixed splits, metrics and KODEX baselines to beat. Bring your own model; move the community forward
Benchmark: open fusion-ML benchmark suite: **3 citable tasks** (CGYRO turbulence, MAST disruption, flux ROM) with real data + KODEX baselines
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kbench · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KBENCH (BENCHMARK). open, citable ML benchmark suite for fusion \u2014 real CGYRO turbulence + MAST disruption tasks with fixed splits, metrics and KODEX baselines to beat. Bring your own model; move the community forwardBenchmark: open fusion-ML benchmark suite: **3 citable tasks** (CGYRO turbulence, MAST disruption, flux ROM) with real data + KODEX baselinesPart of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kbench \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package: https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kbreed/CITATION.cff b/publish/records/kbreed/CITATION.cff
deleted file mode 100644
index 9c477604fd69311a3c9fded904fca63506f825a7..0000000000000000000000000000000000000000
--- a/publish/records/kbreed/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KBREED: breeder (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kbreed"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kbreed/LICENSE b/publish/records/kbreed/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kbreed/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kbreed/MANIFEST.sha256 b/publish/records/kbreed/MANIFEST.sha256
deleted file mode 100644
index 649233dc36db2f631884323ea1eac10b3f50f383..0000000000000000000000000000000000000000
--- a/publish/records/kbreed/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KBREED SHA-256 (0.2.0, 2026-09-11)
-bfa75f83009e6d691f67de3a5d038c650aea981f644f983235ed53769c47b7cb CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-a4be39a1e927548c99ce00de458ddc45d4911a1ad61aaab886e6f081230c3425 benchmark.json
-ccbe9db0278e3c1266ee8ff8091d2df723a780c35b740f5f03ee1bc954fb9155 card.md
-78c0c8482b808f86983ba12de743d8ac0bb879a9f1e170db14d62b3606c27f45 kbreed.py
-a616613ed4948fa929803682ccf1a06b4207bae4e0be66aee86f45c223196687 metadata.json
diff --git a/publish/records/kbreed/benchmark.json b/publish/records/kbreed/benchmark.json
deleted file mode 100644
index cd0b6810885036ec69f9260fe74fcca25ae99fe4..0000000000000000000000000000000000000000
--- a/publish/records/kbreed/benchmark.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "member": "KBREED",
- "live": {
- "r2_vs_engine": 1.0,
- "coverage_90": 1.0,
- "nominal_net_tbr": 0.742
- },
- "note": "surrogate over toolkit neutronics (analytic); OpenMC upgrade = compute route [A]"
-}
diff --git a/publish/records/kbreed/card.md b/publish/records/kbreed/card.md
deleted file mode 100644
index 5327d22795c93401aca9c66f6215df7070157116..0000000000000000000000000000000000000000
--- a/publish/records/kbreed/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KBREED — card
-
-- **name:** KBREED
-- **function:** breeder
-- **status:** BUILT
-- **phase:** 2
-- **provenance:** SIM
-- **retired_by:** OpenMC (Monte-Carlo neutron transport)
-- **gates:** ['BR-neut']
-- **note:** tritium breeding-ratio surrogate (Hyperion blanket) — fast GP over the toolkit neutronics; OpenMC is the auto-dispatch high-fidelity upgrade
-- **available:** True
-
-Benchmark headline: TBR surrogate R²=1.0 vs neutronics engine; nominal net TBR 0.742; OpenMC = auto fidelity upgrade
diff --git a/publish/records/kbreed/kbreed.py b/publish/records/kbreed/kbreed.py
deleted file mode 100644
index d42f4ff386197425bd221304d00de0e818f53fee..0000000000000000000000000000000000000000
--- a/publish/records/kbreed/kbreed.py
+++ /dev/null
@@ -1,54 +0,0 @@
-"""KODEX KBREED — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KBREED(Surrogate):
- name = "KBREED"; function = "breeder"; phase = 2; status = "BUILT"
- provenance = "SIM"
- retired_by = "OpenMC (Monte-Carlo neutron transport)"
- real_codes = ("openmc",)
- gates = ("BR-neut",)
- note = ("tritium breeding-ratio surrogate (Hyperion blanket) — fast GP over the "
- "toolkit neutronics; OpenMC is the auto-dispatch high-fidelity upgrade")
-
- _B = [(0.3, 0.95), (0.5, 1.2), (0.85, 0.95)] # li6_enrichment, thickness_m, coverage
-
- def __init__(self):
- self._gp = None
-
- def _sweep(self, n=120, seed=uq.SEED):
- api = _api(); rng = np.random.default_rng(seed)
- P = np.c_[rng.uniform(*self._B[0], n), rng.uniform(*self._B[1], n), rng.uniform(*self._B[2], n)]
- y = np.array([_val(api.tbr(li6_enrichment=p[0], blanket_thickness_m=p[1],
- coverage=p[2], force_analytic=True), "net_tbr")
- for p in P])
- return P, y
-
- def _fit(self):
- if self._gp is None:
- P, y = self._sweep()
- self._gp = uq.GPHead().fit(P, y); self._P, self._y = P, y
- return self._gp
-
- def in_domain(self, p):
- return all(self._B[i][0] <= p[i] <= self._B[i][1] for i in range(3))
-
- def _predict(self, x):
- gp = self._fit(); x = np.asarray(x, float).reshape(1, -1)
- m, s = gp.predict(x)
- return Prediction(float(m[0]), float(s[0]), self.in_domain(x.ravel()),
- note="net TBR (>1 = self-sufficient)")
-
- def _x_from_params(self, li6_enrichment=0.9, blanket_thickness_m=0.8, coverage=0.92, **_):
- return [li6_enrichment, blanket_thickness_m, coverage]
-
- def benchmark(self):
- gp = self._fit()
- Pte, yte = self._sweep(n=60, seed=uq.SEED + 5)
- m, s = gp.predict(Pte)
- api = _api()
- nom = _val(api.tbr(force_analytic=True), "net_tbr")
- return {"member": self.name,
- "live": {"r2_vs_engine": round(metrics.r2(yte, m), 3),
- "coverage_90": round(metrics.coverage_at_level(yte, m, np.clip(s, 1e-6, None), 0.90), 3),
- "nominal_net_tbr": round(nom, 3)},
- "note": "surrogate over toolkit neutronics (analytic); OpenMC upgrade = compute route [A]"}
diff --git a/publish/records/kbreed/metadata.json b/publish/records/kbreed/metadata.json
deleted file mode 100644
index 1b6f10d7f0297348ef48a0ad477c5421ddf00e1e..0000000000000000000000000000000000000000
--- a/publish/records/kbreed/metadata.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "kname": "KBREED",
- "page": "https://kronosfusionenergy.com/kodex/kbreed",
- "title": "KODEX \u2014 KBREED: breeder",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "breeder",
- "KODEX:KBREED"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kbreed",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- }
- ],
- "description": "KODEX — KBREED (breeder). tritium breeding-ratio surrogate (Hyperion blanket) \u2014 fast GP over the toolkit neutronics; OpenMC is the auto-dispatch high-fidelity upgrade
Benchmark: TBR surrogate R\u00b2=1.0 vs neutronics engine; nominal net TBR 0.742; OpenMC = auto fidelity upgrade
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.22645689. Home: https://kronosfusionenergy.com/kodex/kbreed · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KBREED (breeder). tritium breeding-ratio surrogate (Hyperion blanket) \u2014 fast GP over the toolkit neutronics; OpenMC is the auto-dispatch high-fidelity upgradeBenchmark: TBR surrogate R\u00b2=1.0 vs neutronics engine; nominal net TBR 0.742; OpenMC = auto fidelity upgradePart of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.22645689. Home: https://kronosfusionenergy.com/kodex/kbreed \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kburn/CITATION.cff b/publish/records/kburn/CITATION.cff
deleted file mode 100644
index dc6f9afa12efb51cc89b369990dd61955b2a081d..0000000000000000000000000000000000000000
--- a/publish/records/kburn/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KBURN: burner (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kburn"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kburn/LICENSE b/publish/records/kburn/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kburn/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kburn/MANIFEST.sha256 b/publish/records/kburn/MANIFEST.sha256
deleted file mode 100644
index 4c81a79de705eb4a2c3fa57baa994a145873ab28..0000000000000000000000000000000000000000
--- a/publish/records/kburn/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KBURN SHA-256 (0.2.0, 2026-09-11)
-2c237089902f15f9b21a02ab23760ac9f381a37ffb656f44876c17bf5cd949be CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-b133f891b15720e79a2914954c40e1aadd54f823611ab19459cc38a4882e1296 benchmark.json
-628b0e84694e7bfd93c90866016e2a8c81086d3822aaf64958af781f609ba990 card.md
-f637ffaa394f4531590476bae9df274f305ba7c9f7e39ba4e8d33a34148bfea9 kburn.py
-255b2f35711fa8aec949a17e7f56538cc198fb22d35e18cd284c72060c1f9fcd metadata.json
diff --git a/publish/records/kburn/benchmark.json b/publish/records/kburn/benchmark.json
deleted file mode 100644
index 6852dea57382ae0d561114877977534fb5388ea9..0000000000000000000000000000000000000000
--- a/publish/records/kburn/benchmark.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "member": "KBURN",
- "live": {
- "r2": 1.0,
- "rmse_MW": 0.006,
- "coverage_90": 1.0,
- "n_test": 400
- },
- "sourced": "track5_control/dec_dispatch_summary.csv (dynamic reweight +22% vs static)"
-}
diff --git a/publish/records/kburn/card.md b/publish/records/kburn/card.md
deleted file mode 100644
index 75bd735a64bc905edcf09fb73490cc1165c9aedf..0000000000000000000000000000000000000000
--- a/publish/records/kburn/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KBURN — card
-
-- **name:** KBURN
-- **function:** burner
-- **status:** BUILT
-- **phase:** 2
-- **provenance:** TWIN
-- **retired_by:** full plant systems model
-- **gates:** []
-- **note:** burner dispatch surrogate — fuel mix -> captured power (Aegis/MetroVolt); GP over the DEC dispatch traces
-- **available:** True
-
-Benchmark headline: dispatch surrogate R²=1.0 (fuel mix → captured power); +22% dynamic
diff --git a/publish/records/kburn/kburn.py b/publish/records/kburn/kburn.py
deleted file mode 100644
index 6b997b4064a22569085dcdb3d93b35c9733fb25c..0000000000000000000000000000000000000000
--- a/publish/records/kburn/kburn.py
+++ /dev/null
@@ -1,47 +0,0 @@
-"""KODEX KBURN — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KBURN(Surrogate):
- name = "KBURN"; function = "burner"; phase = 2; status = "BUILT"
- provenance = "TWIN"
- retired_by = "full plant systems model"
- real_codes = ("plant systems model",)
- note = ("burner dispatch surrogate — fuel mix -> captured power (Aegis/MetroVolt); "
- "GP over the DEC dispatch traces")
-
- def __init__(self):
- self._gp = None; self._span = None
-
- def _fit(self):
- if self._gp is None:
- df = data.read_csv("track5_control", "dec_dispatch_traces.csv")
- X = df[["mix_D", "mix_He3", "mix_p", "mix_Li6"]].to_numpy(float)
- y = df["P_captured_MW"].to_numpy(float)
- rng = np.random.default_rng(uq.SEED)
- idx = rng.permutation(len(y))[:250] # GP subsample
- self._gp = uq.GPHead().fit(X[idx], y[idx])
- self._span = (X.min(0), X.max(0)); self._Xte, self._yte = X, y
- return self._gp
-
- def _predict(self, x):
- gp = self._fit(); x = np.asarray(x, float).reshape(1, -1)
- m, s = gp.predict(x)
- lo, hi = self._span
- return Prediction(float(m[0]), float(s[0]),
- bool(np.all(x.ravel() >= lo - 1e-6) and np.all(x.ravel() <= hi + 1e-6)),
- note="captured power P (MW), gyro-twin dispatch")
-
- def _x_from_params(self, mix_D=0.5, mix_He3=0.3, mix_p=0.1, mix_Li6=0.1, **_):
- return [mix_D, mix_He3, mix_p, mix_Li6]
-
- def benchmark(self):
- gp = self._fit()
- rng = np.random.default_rng(uq.SEED + 2)
- te = rng.permutation(len(self._yte))[:400]
- m, s = gp.predict(self._Xte[te])
- return {"member": self.name,
- "live": {"r2": round(metrics.r2(self._yte[te], m), 3),
- "rmse_MW": round(metrics.rmse(self._yte[te], m), 3),
- "coverage_90": round(metrics.coverage_at_level(self._yte[te], m, np.clip(s, 1e-6, None), 0.90), 3),
- "n_test": int(len(te))},
- "sourced": "track5_control/dec_dispatch_summary.csv (dynamic reweight +22% vs static)"}
diff --git a/publish/records/kburn/metadata.json b/publish/records/kburn/metadata.json
deleted file mode 100644
index 391080c9a809b30a48f3645e94223e9ab12b064a..0000000000000000000000000000000000000000
--- a/publish/records/kburn/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KBURN",
- "page": "https://kronosfusionenergy.com/kodex/kburn",
- "title": "KODEX \u2014 KBURN: burner",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "burner",
- "KODEX:KBURN"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kburn",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KBURN (burner). burner dispatch surrogate \u2014 fuel mix -> captured power (Aegis/MetroVolt); GP over the DEC dispatch traces
Benchmark: dispatch surrogate R\u00b2=1.0 (fuel mix \u2192 captured power); +22% dynamic
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kburn · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KBURN (burner). burner dispatch surrogate \u2014 fuel mix -> captured power (Aegis/MetroVolt); GP over the DEC dispatch tracesBenchmark: dispatch surrogate R\u00b2=1.0 (fuel mix \u2192 captured power); +22% dynamicPart of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kburn \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kdrive/CITATION.cff b/publish/records/kdrive/CITATION.cff
deleted file mode 100644
index 56ef15cf53b4d39d988e2751ceb44fb015612356..0000000000000000000000000000000000000000
--- a/publish/records/kdrive/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KDRIVE: RL-control (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kdrive"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kdrive/LICENSE b/publish/records/kdrive/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kdrive/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kdrive/MANIFEST.sha256 b/publish/records/kdrive/MANIFEST.sha256
deleted file mode 100644
index 630781589f0b5175a7b01e9f0271bc66596db037..0000000000000000000000000000000000000000
--- a/publish/records/kdrive/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KDRIVE SHA-256 (0.2.0, 2026-09-11)
-64529510002805e1a0df44062398dd0e96f50993a2adbe47a8193430fa5cc91e CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-f4f36adee949eba53dcea8b5b9e7a06311ea235f461423232246eaadda936a5b benchmark.json
-9a8da86745ade3c0665fc4c6b403cb333996c4d64108711bf8f36a4ccecd32ae card.md
-86bb8b3e8f2ddda51e90188c791500cc563503aab9f1b80160e3a799bc8df85f kdrive.py
-e3571af9ae6782ae925508b020ec60442325b7055b4c0741c95685c268023410 metadata.json
diff --git a/publish/records/kdrive/benchmark.json b/publish/records/kdrive/benchmark.json
deleted file mode 100644
index ebde7681739ba10a90961fb318c75e5509366e55..0000000000000000000000000000000000000000
--- a/publish/records/kdrive/benchmark.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "member": "KDRIVE",
- "live": {
- "learned_policy_tracking_rms": 0.0551,
- "naive_gain_tracking_rms": 0.1225,
- "learned_gains": [
- 0.935,
- 1.271,
- 0.998,
- 0.617,
- 1.072,
- 0.595
- ],
- "note": "cross-entropy-method policy search, twin-in-the-loop"
- }
-}
diff --git a/publish/records/kdrive/card.md b/publish/records/kdrive/card.md
deleted file mode 100644
index d6f97aed857e1d60871d310d4d8b31a6683a54f4..0000000000000000000000000000000000000000
--- a/publish/records/kdrive/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KDRIVE — card
-
-- **name:** KDRIVE
-- **function:** RL-control
-- **status:** BUILT
-- **phase:** 3
-- **provenance:** TWIN
-- **retired_by:** device-validated learned controller
-- **gates:** []
-- **note:** reinforcement-learning controller — a feedback policy learned by the cross-entropy method in the twin plant loop; clamped by KGATE
-- **available:** True
-
-Benchmark headline: RL policy (cross-entropy): tracking **0.0551** vs naive 0.1225, twin-in-the-loop
diff --git a/publish/records/kdrive/kdrive.py b/publish/records/kdrive/kdrive.py
deleted file mode 100644
index 45e7c5bab0b2910d8d1d4f5db130303ef4e989ad..0000000000000000000000000000000000000000
--- a/publish/records/kdrive/kdrive.py
+++ /dev/null
@@ -1,44 +0,0 @@
-"""KODEX KDRIVE — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KDRIVE(Surrogate):
- name = "KDRIVE"; function = "RL-control"; phase = 3; status = "BUILT"
- provenance = "TWIN"
- retired_by = "device-validated learned controller"
- real_codes = ("reinforcement learning",)
- note = ("reinforcement-learning controller — a feedback policy learned by the "
- "cross-entropy method in the twin plant loop; clamped by KGATE")
-
- def __init__(self):
- self._K = None
-
- def _fit(self):
- if self._K is None:
- ref = np.array([2.2, 0.3, 3.0, 1.0, 0.2, 30.0])
- rng = np.random.default_rng(uq.SEED)
- mu = np.full(6, 0.5); sd = np.full(6, 0.4) # policy = per-axis gain
- for _ in range(20): # cross-entropy iterations
- pop = np.clip(rng.normal(mu, sd, size=(30, 6)), 0.0, 1.5)
- costs = np.array([_rollout(k, ref, seed=1) for k in pop])
- elite = pop[np.argsort(costs)[:6]]
- mu, sd = elite.mean(0), elite.std(0) + 1e-3
- self._K = mu
- return self._K
-
- def _predict(self, x):
- K = self._fit()
- state, ref = x
- state = np.asarray(state, float).ravel(); ref = np.asarray(ref, float).ravel()
- safe, _ = get("KGATE").clamp(state + K * (ref - state))
- return Prediction(safe, None, True, note="learned RL policy command (clamped)")
-
- def benchmark(self):
- K = self._fit()
- ref = np.array([2.2, 0.3, 3.0, 1.0, 0.2, 30.0])
- learned = _rollout(K, ref, seed=7)
- naive = _rollout(np.full(6, 0.2), ref, seed=7)
- return {"member": self.name,
- "live": {"learned_policy_tracking_rms": round(float(learned), 4),
- "naive_gain_tracking_rms": round(float(naive), 4),
- "learned_gains": [round(float(k), 3) for k in K],
- "note": "cross-entropy-method policy search, twin-in-the-loop"}}
diff --git a/publish/records/kdrive/metadata.json b/publish/records/kdrive/metadata.json
deleted file mode 100644
index 7af6670f74988b73a86b8a8c8bab04526b8cfd46..0000000000000000000000000000000000000000
--- a/publish/records/kdrive/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KDRIVE",
- "page": "https://kronosfusionenergy.com/kodex/kdrive",
- "title": "KODEX \u2014 KDRIVE: RL-control",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "RL-control",
- "KODEX:KDRIVE"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kdrive",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KDRIVE (RL-control). reinforcement-learning controller \u2014 a feedback policy learned by the cross-entropy method in the twin plant loop; clamped by KGATE
Benchmark: RL policy (cross-entropy): tracking **0.0551** vs naive 0.1225, twin-in-the-loop
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kdrive · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KDRIVE (RL-control). reinforcement-learning controller \u2014 a feedback policy learned by the cross-entropy method in the twin plant loop; clamped by KGATEBenchmark: RL policy (cross-entropy): tracking **0.0551** vs naive 0.1225, twin-in-the-loopPart of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kdrive \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kdyn/CITATION.cff b/publish/records/kdyn/CITATION.cff
deleted file mode 100644
index 284e8753cc713b23861c8030a267b5a4ab64d405..0000000000000000000000000000000000000000
--- a/publish/records/kdyn/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KDYN: QDYN (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kdyn"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kdyn/LICENSE b/publish/records/kdyn/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kdyn/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kdyn/MANIFEST.sha256 b/publish/records/kdyn/MANIFEST.sha256
deleted file mode 100644
index e023e5e39dc89aa72cd685b329bfe73b630d8772..0000000000000000000000000000000000000000
--- a/publish/records/kdyn/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KDYN SHA-256 (0.2.0, 2026-09-11)
-932cfe053f1db0ada0e188fe37070972294cbe3f202508673db022eda4bd6472 CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-8808e1a31b95131d0852dd6e9bf5c2ca8c181a9974304e6bd616d9396d4b6426 benchmark.json
-c8847afe850a64c62e9ce6fcd92b98ed7df1bd4fcc786d99fbb319ecfe3be0cf card.md
-5c0fc5b8f77c2ee9add9ae5d0ddcb8030e1fb1bcfe68ae42f621c45952c2d7a1 kdyn.py
-0ec86bcae56daabbe51e196969aae929be4d59e6daedf8d9f79243c75340f4c3 metadata.json
diff --git a/publish/records/kdyn/benchmark.json b/publish/records/kdyn/benchmark.json
deleted file mode 100644
index a808dc9ba5a5cf2f23d71b9eababe7cf7ac1dcad..0000000000000000000000000000000000000000
--- a/publish/records/kdyn/benchmark.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "member": "KDYN",
- "live_trotter": {
- "system": "3-qubit transverse-field Ising (J=1.0, h=0.8), t=1.0",
- "framework": "PennyLane Trotter (ApproxTimeEvolution); sim now, real hardware pluggable",
- "spectral_norm_error_vs_steps": {
- "1": 1.34637,
- "2": 0.57791,
- "4": 0.27635,
- "8": 0.1362,
- "16": 0.06776,
- "32": 0.03381
- },
- "converges_as": "~1/n_steps (1st-order Trotter, as expected)",
- "backend_expval_Z0_at_16_steps": 0.2572,
- "backend": {
- "active_backend": "default",
- "ran_on_real_hardware": false,
- "how_to_use_real_qc": "set KODEX_QC_BACKEND=ibm and KODEX_QC_TOKEN= to run this exact circuit on real quantum hardware",
- "honest_timeline": "fault-tolerant quantum ADVANTAGE for fusion kernels is ~8-10 yr out; this tooling makes the TESTING real and runnable TODAY, same code path"
- },
- "verdict": "REAL Trotterized quantum dynamics: 1st-order error falls 1.34637 -> 0.03381 from 1 to 32 steps (~1/n) \u2014 the honest cost curve for simulating plasma-like Hamiltonian dynamics on a quantum computer. Runs on real hardware with KODEX_QC_BACKEND=ibm. No advantage at this size; a real, testable pipeline."
- },
- "sourced": {
- "file": "TRACK1_QUANTUM_RESULTS/track1_results.json (A8_Trotter)",
- "note": "independent Track-1: 1st-order Trotter error 1.257->0.032 with steps (consistent)"
- }
-}
diff --git a/publish/records/kdyn/card.md b/publish/records/kdyn/card.md
deleted file mode 100644
index 0d412923e0a16615894e34320b58fa3d2ed97af6..0000000000000000000000000000000000000000
--- a/publish/records/kdyn/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KDYN — card
-
-- **name:** KDYN
-- **function:** QDYN
-- **status:** BUILT
-- **phase:** 3
-- **provenance:** SIM
-- **retired_by:** fault-tolerant quantum hardware (not available this decade)
-- **gates:** ['KX-L3']
-- **note:** REAL quantum dynamics — Trotterized time-evolution of a transverse-field Ising 'kinetic' Hamiltonian (PennyLane); the honest 1/n_steps cost curve for simulating plasma-like dynamics on a quantum computer. Runs on a simulator now, hardware pluggable
-- **available:** True
-
-Benchmark headline: **REAL Trotter quantum dynamics**: 1st-order error 1.34637→0.03381 over steps (~1/n); runs on real QC hardware — honest cost curve, no advantage yet
diff --git a/publish/records/kdyn/kdyn.py b/publish/records/kdyn/kdyn.py
deleted file mode 100644
index 36614bd8536d6da6ab109d9377f82cc1e010c527..0000000000000000000000000000000000000000
--- a/publish/records/kdyn/kdyn.py
+++ /dev/null
@@ -1,77 +0,0 @@
-"""KODEX KDYN — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KDYN(Surrogate):
- name = "KDYN"; function = "QDYN"; phase = 3; status = "BUILT"
- provenance = "SIM"
- retired_by = "fault-tolerant quantum hardware (not available this decade)"
- real_codes = ("Trotterized Hamiltonian simulation", "PennyLane")
- gates = ("KX-L3",)
- note = ("REAL quantum dynamics — Trotterized time-evolution of a transverse-field Ising "
- "'kinetic' Hamiltonian (PennyLane); the honest 1/n_steps cost curve for simulating "
- "plasma-like dynamics on a quantum computer. Runs on a simulator now, hardware pluggable")
-
- _NQ = 3; _J = 1.0; _HX = 0.8; _T = 1.0
-
- def _ham(self):
- import pennylane as qml
- coeffs = [-self._J] * (self._NQ - 1) + [-self._HX] * self._NQ
- ops = ([qml.PauliZ(i) @ qml.PauliZ(i + 1) for i in range(self._NQ - 1)]
- + [qml.PauliX(i) for i in range(self._NQ)])
- return qml.Hamiltonian(coeffs, ops)
-
- def _curve(self):
- import numpy as np
- import pennylane as qml
- from scipy.linalg import expm
- H = self._ham()
- coeffs, ops = H.terms()
- mats = [(float(c), qml.matrix(o, wire_order=range(self._NQ))) for c, o in zip(coeffs, ops)]
- Hm = sum(c * M for c, M in mats)
- Uex = expm(-1j * self._T * Hm)
- out = {}
- for n in (1, 2, 4, 8, 16, 32):
- dt = self._T / n
- Ustep = np.eye(2 ** self._NQ, dtype=complex)
- for c, M in mats:
- Ustep = expm(-1j * c * dt * M) @ Ustep
- Utr = np.linalg.matrix_power(Ustep, n)
- out[n] = round(float(np.linalg.norm(Utr - Uex, 2)), 5)
- return out
-
- def _backend_run(self):
- import pennylane as qml
- H = self._ham(); dev = qc.get_device(wires=self._NQ)
-
- @qml.qnode(dev)
- def circ(n):
- qml.ApproxTimeEvolution(H, self._T, n)
- return qml.expval(qml.PauliZ(0))
- return float(circ(16))
-
- def _predict(self, x):
- import numpy as np
- c = self._curve()
- n = int(np.ravel(np.asarray(x, float))[0]) if x is not None else 16
- key = min(c, key=lambda k: abs(k - n))
- return Prediction(c[key], None, True, note=f"Trotter spectral-norm error at {key} steps")
-
- def benchmark(self):
- c = self._curve()
- z0 = self._backend_run()
- st = sorted(c)
- return {"member": self.name,
- "live_trotter": {
- "system": f"{self._NQ}-qubit transverse-field Ising (J={self._J}, h={self._HX}), t={self._T}",
- "framework": "PennyLane Trotter (ApproxTimeEvolution); sim now, real hardware pluggable",
- "spectral_norm_error_vs_steps": c,
- "converges_as": "~1/n_steps (1st-order Trotter, as expected)",
- "backend_expval_Z0_at_16_steps": round(z0, 4),
- "backend": qc.backend_note(),
- "verdict": (f"REAL Trotterized quantum dynamics: 1st-order error falls {c[st[0]]} -> "
- f"{c[st[-1]]} from {st[0]} to {st[-1]} steps (~1/n) — the honest cost curve for "
- f"simulating plasma-like Hamiltonian dynamics on a quantum computer. Runs on "
- f"real hardware with KODEX_QC_BACKEND=ibm. No advantage at this size; a real, "
- f"testable pipeline.")},
- "sourced": {"file": "TRACK1_QUANTUM_RESULTS/track1_results.json (A8_Trotter)",
- "note": "independent Track-1: 1st-order Trotter error 1.257->0.032 with steps (consistent)"}}
diff --git a/publish/records/kdyn/metadata.json b/publish/records/kdyn/metadata.json
deleted file mode 100644
index 1de0285b3ea55b39132eea7daddb4e1ab04e3324..0000000000000000000000000000000000000000
--- a/publish/records/kdyn/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KDYN",
- "page": "https://kronosfusionenergy.com/kodex/kdyn",
- "title": "KODEX \u2014 KDYN: QDYN",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "QDYN",
- "KODEX:KDYN"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kdyn",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KDYN (QDYN). REAL quantum dynamics \u2014 Trotterized time-evolution of a transverse-field Ising 'kinetic' Hamiltonian (PennyLane); the honest 1/n_steps cost curve for simulating plasma-like dynamics on a quantum computer. Runs on a simulator now, hardware pluggable
Benchmark: **REAL Trotter quantum dynamics**: 1st-order error 1.34637\u21920.03381 over steps (~1/n); runs on real QC hardware \u2014 honest cost curve, no advantage yet
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kdyn · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KDYN (QDYN). REAL quantum dynamics \u2014 Trotterized time-evolution of a transverse-field Ising 'kinetic' Hamiltonian (PennyLane); the honest 1/n_steps cost curve for simulating plasma-like dynamics on a quantum computer. Runs on a simulator now, hardware pluggableBenchmark: **REAL Trotter quantum dynamics**: 1st-order error 1.34637\u21920.03381 over steps (~1/n); runs on real QC hardware \u2014 honest cost curve, no advantage yetPart of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kdyn \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package: https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kecon/CITATION.cff b/publish/records/kecon/CITATION.cff
deleted file mode 100644
index 964bdbe3f85e11e500a520753b0a1b4cec0bddb0..0000000000000000000000000000000000000000
--- a/publish/records/kecon/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KECON: techno-economics (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kecon"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kecon/LICENSE b/publish/records/kecon/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kecon/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kecon/MANIFEST.sha256 b/publish/records/kecon/MANIFEST.sha256
deleted file mode 100644
index 8951232d86ac1b3902588c406371631b3668bad3..0000000000000000000000000000000000000000
--- a/publish/records/kecon/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KECON SHA-256 (0.2.0, 2026-09-11)
-df70c7eb240f2ef04421d7568e30a479f2788bc7c9d21d506c9c90251820daea CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-455c7858094ed06d6781d9cbe35b25a695883036c88d9343e73b9c27c610fc10 benchmark.json
-10120f65e9a734b2ba2f2e6a2c13663fb74fa8d175fa68babe2c0016fbee28e5 card.md
-4c743bcee043f982000296426f736011a0e897861dfb0ce2e82fd5505788184e kecon.py
-432a5dcf9daf13bdcd0432ddc92ce05a3e8d492257d865ec76983910a3a75868 metadata.json
diff --git a/publish/records/kecon/benchmark.json b/publish/records/kecon/benchmark.json
deleted file mode 100644
index 970af58409aaca2edbf53e68e8d68f2c9278ecb2..0000000000000000000000000000000000000000
--- a/publish/records/kecon/benchmark.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "member": "KECON",
- "live_worked_example": {
- "lcoe_per_MWh": 167.64,
- "capital_component_per_MWh": 134.31,
- "opex_component_per_MWh": 33.33,
- "capital_recovery_factor": 0.0806
- },
- "firewall": "generic community calculator; NO Kronos cost/price/valuation/funding, ever",
- "note": "founder-approved public, generic-only; inputs above are illustrative placeholders"
-}
diff --git a/publish/records/kecon/card.md b/publish/records/kecon/card.md
deleted file mode 100644
index 4e4a8b59fff812961f5d2254224649ef5669b84f..0000000000000000000000000000000000000000
--- a/publish/records/kecon/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KECON — card
-
-- **name:** KECON
-- **function:** techno-economics
-- **status:** BUILT
-- **phase:** 3
-- **provenance:** n/a
-- **retired_by:** detailed engineering cost model (never public)
-- **gates:** []
-- **note:** GENERIC open techno-economics (LCOE) on the USER's inputs — FINANCIAL FIREWALL: no Kronos numbers, ever
-- **available:** True
-
-Benchmark headline: generic LCOE calculator + breakdown — **FINANCIAL FIREWALL (no Kronos numbers)**
diff --git a/publish/records/kecon/kecon.py b/publish/records/kecon/kecon.py
deleted file mode 100644
index ba1aafad95fc650ebaae553d17b13243ec988bd5..0000000000000000000000000000000000000000
--- a/publish/records/kecon/kecon.py
+++ /dev/null
@@ -1,51 +0,0 @@
-"""KODEX KECON — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KECON(Surrogate):
- """Generic, open fusion techno-economics — FINANCIAL FIREWALL.
-
- A community LCOE / cost-of-electricity calculator that runs ONLY on the
- caller's inputs. It ships with ZERO Kronos cost/price/per-unit/valuation/
- funding data, and refuses to run without user-supplied inputs. Kronos's own
- economics stay confidential and never enter this code."""
- name = "KECON"; function = "techno-economics"; phase = 3; status = "BUILT"
- provenance = "n/a"
- retired_by = "detailed engineering cost model (never public)"
- real_codes = ("open LCOE methodology",)
- note = ("GENERIC open techno-economics (LCOE) on the USER's inputs — "
- "FINANCIAL FIREWALL: no Kronos numbers, ever")
-
- #: hard firewall — no Kronos-specific defaults may ever be added here
- KRONOS_NUMBERS = None
-
- def _predict(self, x):
- """x = dict with the USER's own inputs:
- capex, opex_per_yr, annual_generation_MWh, discount_rate, lifetime_yr
- Returns generic LCOE ($/MWh). Refuses to run without user inputs."""
- if not isinstance(x, dict) or not x:
- raise ValueError(
- "KECON requires the caller's own inputs (capex, opex_per_yr, "
- "annual_generation_MWh, discount_rate, lifetime_yr). "
- "It carries NO Kronos financial data.")
- capex = float(x["capex"]); opex = float(x["opex_per_yr"])
- gen = float(x["annual_generation_MWh"]); r = float(x["discount_rate"])
- n = int(x["lifetime_yr"])
- crf = r * (1 + r) ** n / ((1 + r) ** n - 1) if r > 0 else 1.0 / n
- cap_component = capex * crf / gen
- opex_component = opex / gen
- lcoe = cap_component + opex_component
- return Prediction({"lcoe_per_MWh": round(lcoe, 2),
- "capital_component_per_MWh": round(cap_component, 2),
- "opex_component_per_MWh": round(opex_component, 2),
- "capital_recovery_factor": round(crf, 4)},
- None, True,
- note="generic LCOE $/MWh + breakdown from USER inputs (no Kronos data)")
-
- def benchmark(self):
- # a worked generic example (illustrative inputs — NOT Kronos numbers)
- demo = self.predict({"capex": 5e9, "opex_per_yr": 1e8,
- "annual_generation_MWh": 3e6, "discount_rate": 0.07, "lifetime_yr": 30})
- return {"member": self.name,
- "live_worked_example": demo.y,
- "firewall": "generic community calculator; NO Kronos cost/price/valuation/funding, ever",
- "note": "founder-approved public, generic-only; inputs above are illustrative placeholders"}
diff --git a/publish/records/kecon/metadata.json b/publish/records/kecon/metadata.json
deleted file mode 100644
index 15d248b19d828de1f4061617771ca9933fa8444b..0000000000000000000000000000000000000000
--- a/publish/records/kecon/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KECON",
- "page": "https://kronosfusionenergy.com/kodex/kecon",
- "title": "KODEX \u2014 KECON: techno-economics",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "techno-economics",
- "KODEX:KECON"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kecon",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KECON (techno-economics). GENERIC open techno-economics (LCOE) on the USER's inputs \u2014 FINANCIAL FIREWALL: no Kronos numbers, ever
Benchmark: generic LCOE calculator + breakdown \u2014 **FINANCIAL FIREWALL (no Kronos numbers)**
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kecon · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KECON (techno-economics). GENERIC open techno-economics (LCOE) on the USER's inputs \u2014 FINANCIAL FIREWALL: no Kronos numbers, everBenchmark: generic LCOE calculator + breakdown \u2014 **FINANCIAL FIREWALL (no Kronos numbers)**Part of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kecon \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kedge/CITATION.cff b/publish/records/kedge/CITATION.cff
deleted file mode 100644
index 61a710b84456b555ffdc1b7a86bc20d03ec34be4..0000000000000000000000000000000000000000
--- a/publish/records/kedge/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KEDGE: edge-transport (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kedge"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kedge/LICENSE b/publish/records/kedge/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kedge/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kedge/MANIFEST.sha256 b/publish/records/kedge/MANIFEST.sha256
deleted file mode 100644
index 00dcbf66b2cfd6ae68af2b59eb5034d6c19819e3..0000000000000000000000000000000000000000
--- a/publish/records/kedge/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KEDGE SHA-256 (0.2.0, 2026-09-11)
-975b47f0eb94dfe9d1c8350ffc647062b9248584c2cbb8e470fd93dedc54d0e1 CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-3ed8e9ed65801f94aa6f1797fc8674b4f6b3c10f2f9a180be361c0b17a085741 benchmark.json
-070b8230761c79cc6e5af9207ba99f89dab877bcda4d44eca5bdb2032242138c card.md
-07041a7a65e7e6eebd5e7b6a1af22f2a5e24c7c2a54d87d06b0f14484d34a52f kedge.py
-94e452c78090b6005683b593b938bb30684480bb8772da57681f2e8b08325824 metadata.json
diff --git a/publish/records/kedge/benchmark.json b/publish/records/kedge/benchmark.json
deleted file mode 100644
index 5dfa83b0bce449cf363333013ff095ccacd3e875..0000000000000000000000000000000000000000
--- a/publish/records/kedge/benchmark.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "member": "KEDGE",
- "live_divertor_thermal": {
- "source": "h9_target_thermal.csv (H9 exhaust/divertor engineering scan)",
- "map": "divertor heat flux q [MW/m^2] -> target surface temperature [C]",
- "r2_fit": 1.0,
- "n_samples": 77,
- "max_safe_q_MWm2_CuCrZr": 13.5,
- "verdict": "Divertor target-thermal surrogate: q->T_surf fit R2=1.000 over 77 points; CuCrZr material limit at q~13.5 MW/m2. Reduced 0-D thermal model \u2014 SOLPS-ITER/EIRENE edge campaign is the fidelity upgrade."
- },
- "caveat": "0-D target-thermal scan, not a full 2-D edge-transport solve"
-}
diff --git a/publish/records/kedge/card.md b/publish/records/kedge/card.md
deleted file mode 100644
index cb4ae8d288a233f74edd2f7ea4a4f2532059e3f6..0000000000000000000000000000000000000000
--- a/publish/records/kedge/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KEDGE — card
-
-- **name:** KEDGE
-- **function:** edge-transport
-- **status:** BUILT
-- **phase:** 3
-- **provenance:** SIM
-- **retired_by:** SOLPS-ITER / EIRENE edge campaign
-- **gates:** ['H9']
-- **note:** divertor / edge heat-flux -> target-thermal surrogate — maps divertor heat flux to target surface temperature + material limits (W / CuCrZr) from the H9 exhaust scan. Reduced 0-D thermal model; SOLPS-ITER/EIRENE = fidelity upgrade
-- **available:** True
-
-Benchmark headline: divertor edge surrogate: heat-flux→target-temp **R²=1.0**, CuCrZr limit q~13.5 MW/m² (reduced 0-D; SOLPS/EIRENE = upgrade)
diff --git a/publish/records/kedge/kedge.py b/publish/records/kedge/kedge.py
deleted file mode 100644
index 202760310100c5314eac5b8fb18e48ed2d5b62be..0000000000000000000000000000000000000000
--- a/publish/records/kedge/kedge.py
+++ /dev/null
@@ -1,43 +0,0 @@
-"""KODEX KEDGE — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KEDGE(Surrogate):
- name = "KEDGE"; function = "edge-transport"; phase = 3; status = "BUILT"
- provenance = "SIM"
- retired_by = "SOLPS-ITER / EIRENE edge campaign"
- real_codes = ("divertor target-thermal scan",)
- gates = ("H9",)
- note = ("divertor / edge heat-flux -> target-thermal surrogate — maps divertor heat flux to "
- "target surface temperature + material limits (W / CuCrZr) from the H9 exhaust scan. "
- "Reduced 0-D thermal model; SOLPS-ITER/EIRENE = fidelity upgrade")
-
- def _fit(self):
- if getattr(self, "_coef", None) is not None:
- return
- import pandas as pd
- from sklearn.metrics import r2_score
- df = pd.read_csv(_DIV_THERMAL).dropna(subset=["q_MWm2", "T_w_surf_C"])
- q = df["q_MWm2"].to_numpy(float); T = df["T_w_surf_C"].to_numpy(float)
- self._coef = np.polyfit(q, T, 2)
- self._r2 = float(r2_score(T, np.polyval(self._coef, q))); self._n = len(q)
- bad = df[df["ok_CuCrZr"] == False] if "ok_CuCrZr" in df else df.iloc[0:0]
- self._q_limit = float(bad["q_MWm2"].min()) if len(bad) else float(q.max())
-
- def _predict(self, x):
- self._fit()
- q = float(np.ravel(np.asarray(x, float))[0])
- return Prediction(float(np.polyval(self._coef, q)), None, q <= self._q_limit,
- note=f"target surface temp (C) at q={q} MW/m^2; in_domain = under CuCrZr limit")
-
- def benchmark(self):
- self._fit()
- return {"member": self.name,
- "live_divertor_thermal": {
- "source": "h9_target_thermal.csv (H9 exhaust/divertor engineering scan)",
- "map": "divertor heat flux q [MW/m^2] -> target surface temperature [C]",
- "r2_fit": round(self._r2, 3), "n_samples": self._n,
- "max_safe_q_MWm2_CuCrZr": self._q_limit,
- "verdict": (f"Divertor target-thermal surrogate: q->T_surf fit R2={self._r2:.3f} over "
- f"{self._n} points; CuCrZr material limit at q~{self._q_limit} MW/m2. Reduced "
- f"0-D thermal model — SOLPS-ITER/EIRENE edge campaign is the fidelity upgrade.")},
- "caveat": "0-D target-thermal scan, not a full 2-D edge-transport solve"}
diff --git a/publish/records/kedge/metadata.json b/publish/records/kedge/metadata.json
deleted file mode 100644
index 2e8624dc75040ca610fba14b2a4b927e06633fee..0000000000000000000000000000000000000000
--- a/publish/records/kedge/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KEDGE",
- "page": "https://kronosfusionenergy.com/kodex/kedge",
- "title": "KODEX \u2014 KEDGE: edge-transport",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "edge-transport",
- "KODEX:KEDGE"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kedge",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KEDGE (edge-transport). divertor / edge heat-flux -> target-thermal surrogate \u2014 maps divertor heat flux to target surface temperature + material limits (W / CuCrZr) from the H9 exhaust scan. Reduced 0-D thermal model; SOLPS-ITER/EIRENE = fidelity upgrade
Benchmark: divertor edge surrogate: heat-flux\u2192target-temp **R\u00b2=1.0**, CuCrZr limit q~13.5 MW/m\u00b2 (reduced 0-D; SOLPS/EIRENE = upgrade)
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kedge · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KEDGE (edge-transport). divertor / edge heat-flux -> target-thermal surrogate \u2014 maps divertor heat flux to target surface temperature + material limits (W / CuCrZr) from the H9 exhaust scan. Reduced 0-D thermal model; SOLPS-ITER/EIRENE = fidelity upgradeBenchmark: divertor edge surrogate: heat-flux\u2192target-temp **R\u00b2=1.0**, CuCrZr limit q~13.5 MW/m\u00b2 (reduced 0-D; SOLPS/EIRENE = upgrade)Part of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kedge \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package: https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/keye/CITATION.cff b/publish/records/keye/CITATION.cff
deleted file mode 100644
index d01ffe62410f2cb43eb0a0c0e21963d0380fab73..0000000000000000000000000000000000000000
--- a/publish/records/keye/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KEYE: DIAG (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/keye"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/keye/LICENSE b/publish/records/keye/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/keye/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/keye/MANIFEST.sha256 b/publish/records/keye/MANIFEST.sha256
deleted file mode 100644
index f39cebd1ae423353eb54b0ff276f10cc266c90ee..0000000000000000000000000000000000000000
--- a/publish/records/keye/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KEYE SHA-256 (0.2.0, 2026-09-11)
-8bd237df00559ed538fc9bb47e1a5f31d4c14b89abce6c3d004570b892d4e79d CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-f6ca19d9eba9d3043d8fdddc7fe644cbeb857a1a3dc69208f9d4b52e87d5bdcf benchmark.json
-3daf30a0056e0ae7fc2aa37c47c451152f878b92c5051ea75d315ea3dbedc0a6 card.md
-c0bc7e05982e59120157f3c7bca3fd22e23b5962543af273468100c0fdb65b6a keye.py
-0a4ec1ed86376f81f91e7e8aec64a96050ee81d19cf1118a95c44a3c0c43a23c metadata.json
diff --git a/publish/records/keye/benchmark.json b/publish/records/keye/benchmark.json
deleted file mode 100644
index ab2e4ed718604e338960738ec86161267b7d13fe..0000000000000000000000000000000000000000
--- a/publish/records/keye/benchmark.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "member": "KEYE",
- "live_fault_detection": {
- "detection_rate": 0.767,
- "false_alarm_rate": 0.0,
- "n_trials": 300,
- "method": "3-sigma same-class residual"
- },
- "sourced": {
- "file": "track8b_quantum_sensing/sensing_to_disruption_gain.csv",
- "finding": "quantum sensing buys ~0 gain where disruptions live (model-limited)"
- }
-}
diff --git a/publish/records/keye/card.md b/publish/records/keye/card.md
deleted file mode 100644
index 5d32c262f308d2eddf0887dd308877479ea8cf6e..0000000000000000000000000000000000000000
--- a/publish/records/keye/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KEYE — card
-
-- **name:** KEYE
-- **function:** DIAG
-- **status:** BUILT
-- **phase:** 2
-- **provenance:** SIM
-- **retired_by:** physical diagnostic suite + validated sensor fusion
-- **gates:** ['AC-36']
-- **note:** diagnostics / virtual-sensor / signal-validation observer — builds on KFLOW's graph imputation + quantum-sensing; flags faulty channels
-- **available:** True
-
-Benchmark headline: virtual-sensor fault detection 0.767 at FAR 0.0
diff --git a/publish/records/keye/keye.py b/publish/records/keye/keye.py
deleted file mode 100644
index 6d26df0e62fd3c2609e633da4cd73670f901b3c9..0000000000000000000000000000000000000000
--- a/publish/records/keye/keye.py
+++ /dev/null
@@ -1,48 +0,0 @@
-"""KODEX KEYE — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KEYE(Surrogate):
- name = "KEYE"; function = "DIAG"; phase = 2; status = "BUILT"
- provenance = "SIM"
- retired_by = "physical diagnostic suite + validated sensor fusion"
- real_codes = ("sensor fusion", "signal validation")
- gates = ("AC-36",)
- note = ("diagnostics / virtual-sensor / signal-validation observer — builds "
- "on KFLOW's graph imputation + quantum-sensing; flags faulty channels")
-
- def _predict(self, x):
- """x = observed 76-vector; flag channels whose residual vs same-class peers
- is anomalous (a virtual-sensor validation)."""
- obs = np.asarray(x, float).ravel()
- alive = np.isfinite(obs)
- z = data.gnn_snapshots(); cls = np.asarray(z["cls"])
- flags = np.zeros(76, bool)
- for c in np.unique(cls):
- m = alive & (cls == c)
- if m.sum() > 2:
- mu, sd = obs[m].mean(), obs[m].std() + 1e-9
- flags[m] = np.abs(obs[m] - mu) > 3 * sd
- return Prediction(obs, flags.astype(float), bool(alive.mean() >= 0.5),
- note=f"{int(flags.sum())} channels flagged anomalous")
-
- def benchmark(self):
- """Live fault-detection: inject a large offset into one channel per snapshot
- and measure detection rate vs the false-alarm rate on clean channels."""
- z = data.gnn_snapshots()
- clean = np.asarray(z["Xn_clean"], float); cls = np.asarray(z["cls"])
- rng = np.random.default_rng(uq.SEED)
- rng_scale = clean.max(0) - clean.min(0) + 1e-9
- detected = 0; false_alarms = 0; clean_channels = 0; n = 300
- for _ in range(n):
- i = rng.integers(len(clean)); obs = clean[i].copy()
- j = rng.integers(76); obs[j] += 5 * rng_scale[j] # inject a fault
- flags = self.predict(obs).uncertainty.astype(bool)
- detected += int(flags[j])
- fa = flags.copy(); fa[j] = False
- false_alarms += int(fa.sum()); clean_channels += 75
- return {"member": self.name,
- "live_fault_detection": {"detection_rate": round(detected / n, 3),
- "false_alarm_rate": round(false_alarms / clean_channels, 4),
- "n_trials": n, "method": "3-sigma same-class residual"},
- "sourced": {"file": "track8b_quantum_sensing/sensing_to_disruption_gain.csv",
- "finding": "quantum sensing buys ~0 gain where disruptions live (model-limited)"}}
diff --git a/publish/records/keye/metadata.json b/publish/records/keye/metadata.json
deleted file mode 100644
index 57f0a09fd222d1a454bb6b852677cf1edd27d3ab..0000000000000000000000000000000000000000
--- a/publish/records/keye/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KEYE",
- "page": "https://kronosfusionenergy.com/kodex/keye",
- "title": "KODEX \u2014 KEYE: DIAG",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "DIAG",
- "KODEX:KEYE"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/keye",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KEYE (DIAG). diagnostics / virtual-sensor / signal-validation observer \u2014 builds on KFLOW's graph imputation + quantum-sensing; flags faulty channels
Benchmark: virtual-sensor fault detection 0.767 at FAR 0.0
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/keye · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KEYE (DIAG). diagnostics / virtual-sensor / signal-validation observer \u2014 builds on KFLOW's graph imputation + quantum-sensing; flags faulty channelsBenchmark: virtual-sensor fault detection 0.767 at FAR 0.0Part of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/keye \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kflow/CITATION.cff b/publish/records/kflow/CITATION.cff
deleted file mode 100644
index 52b44eee0e5957cc882a313b642a56b8b8dceae5..0000000000000000000000000000000000000000
--- a/publish/records/kflow/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KFLOW: STATE (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kflow"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kflow/LICENSE b/publish/records/kflow/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kflow/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kflow/MANIFEST.sha256 b/publish/records/kflow/MANIFEST.sha256
deleted file mode 100644
index f4218f49c0f75a6d270e37f673aca5e28e68e0b1..0000000000000000000000000000000000000000
--- a/publish/records/kflow/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KFLOW SHA-256 (0.2.0, 2026-09-11)
-235b96f0a5eb5fc53688a684f61b567684b6adc988e0a6bbdcc841f1d6228b1b CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-74938dd1f6aa78e9375c0709e08187c0b2446870857c450c5d720fef2fcc37b0 benchmark.json
-6fa04cc2cbeb269caf34336eff87057db78322162aa8e929455150ab8dc301fc card.md
-fee28af62eb71d0519ec5a401ec76348ac1798dfb12e2a38a9f97c3d38d5f08c kflow.py
-a864e0ceabb4dbdd501580f05baa49afcfb2a4d470ba9c81c7a5040da045e2e2 metadata.json
diff --git a/publish/records/kflow/benchmark.json b/publish/records/kflow/benchmark.json
deleted file mode 100644
index 5f79542301c28e495347c0061bf9fb9141f5c40c..0000000000000000000000000000000000000000
--- a/publish/records/kflow/benchmark.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "member": "KFLOW",
- "sourced_gnn": {
- "file": "track3_gnn/gnn_imputation.csv",
- "k_failed": 8,
- "gnn_rmse": 0.0844,
- "naive_rmse": 0.1721,
- "gnn_beats_naive": true,
- "AC18_bar_0.05": "MISSED (kept honest)"
- },
- "live_classmean_baseline_rmse_k8": 1.0215,
- "live_note": "crude same-class-mean baseline (worse than the track's inverse-distance naive 0.172 and the trained GNN 0.084); shipped predict() uses the same-class imputation"
-}
diff --git a/publish/records/kflow/card.md b/publish/records/kflow/card.md
deleted file mode 100644
index a0c6fe1842fca4ccd27e54e252c00f438e5a4507..0000000000000000000000000000000000000000
--- a/publish/records/kflow/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KFLOW — card
-
-- **name:** KFLOW
-- **function:** STATE
-- **status:** BUILT
-- **phase:** 1
-- **provenance:** SIM
-- **retired_by:** trained message-passing GNN (gnn_seed0..4.pt)
-- **gates:** ['AC-18', 'AC-19']
-- **note:** twin state-estimation / dropped-sensor imputation on the 76-node diagnostic sensor graph
-- **available:** True
-
-Benchmark headline: GNN RMSE@k8 0.0844 vs naive 0.1721 (beats naive; AC-18 0.05 bar **MISSED**, kept)
diff --git a/publish/records/kflow/kflow.py b/publish/records/kflow/kflow.py
deleted file mode 100644
index 55ab3d46470aa11489823dead34e2d9c452c3983..0000000000000000000000000000000000000000
--- a/publish/records/kflow/kflow.py
+++ /dev/null
@@ -1,68 +0,0 @@
-"""KODEX KFLOW — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KFLOW(Surrogate):
- name = "KFLOW"; function = "STATE"; phase = 1; status = "BUILT"
- provenance = "SIM"
- retired_by = "trained message-passing GNN (gnn_seed0..4.pt)"
- real_codes = ("message-passing GNN",)
- gates = ("AC-18", "AC-19")
- note = ("twin state-estimation / dropped-sensor imputation on the 76-node "
- "diagnostic sensor graph")
-
- def _load(self):
- z = data.gnn_snapshots()
- return (np.asarray(z["Xn_clean"], float), np.asarray(z["Xn_obs"], float),
- np.asarray(z["cls"])) # class labels are strings, keep as-is
-
- def _predict(self, x):
- """x = observed 76-vector with NaN at failed channels -> imputed state."""
- obs = np.asarray(x, float).ravel()
- alive = np.isfinite(obs)
- _, _, cls = self._load()
- filled = _impute_same_class(np.where(alive, obs, 0.0), alive, cls)
- # per-channel uncertainty ~ same-class dispersion of alive channels
- unc = np.zeros(76)
- for j in np.where(~alive)[0]:
- same = alive & (cls == cls[j])
- unc[j] = obs[same].std() if same.sum() > 1 else 1.0
- in_dom = bool(alive.mean() >= 0.5)
- return Prediction(filled, unc, in_dom,
- note=f"{(~alive).sum()} channels imputed")
-
- def benchmark(self):
- out = {"member": self.name}
- # sourced: the trained-GNN result curve on disk
- try:
- df = data.read_csv("track3_gnn", "gnn_imputation.csv")
- r8 = df.iloc[(df.k_failed - 8).abs().argmin()]
- out["sourced_gnn"] = {
- "file": "track3_gnn/gnn_imputation.csv",
- "k_failed": int(r8.k_failed),
- "gnn_rmse": round(float(r8.gnn_rmse_mean), 4),
- "naive_rmse": round(float(r8.naive_rmse_mean), 4),
- "gnn_beats_naive": bool(r8.gnn_beats_naive),
- "AC18_bar_0.05": "MISSED (kept honest)"}
- except Exception as e:
- out["sourced_gnn"] = {"error": str(e)}
- # live: run the naive imputation baseline at k=8
- try:
- clean, obsn, cls = self._load()
- rng = np.random.default_rng(uq.SEED)
- errs = []
- rng_range = clean.max(0) - clean.min(0) + 1e-9
- for _ in range(50):
- i = rng.integers(len(clean))
- mask = np.ones(76, bool)
- mask[rng.choice(76, 8, replace=False)] = False
- obs = np.where(mask, obsn[i], np.nan)
- filled = _impute_same_class(np.where(mask, obsn[i], 0.0), mask, cls)
- fj = ~mask
- errs.append(np.sqrt(np.mean(((filled[fj] - clean[i][fj]) / rng_range[fj]) ** 2)))
- out["live_classmean_baseline_rmse_k8"] = round(float(np.mean(errs)), 4)
- out["live_note"] = ("crude same-class-mean baseline (worse than the track's "
- "inverse-distance naive 0.172 and the trained GNN 0.084); "
- "shipped predict() uses the same-class imputation")
- except Exception as e:
- out["live_naive_rmse_k8"] = {"error": str(e)}
- return out
diff --git a/publish/records/kflow/metadata.json b/publish/records/kflow/metadata.json
deleted file mode 100644
index 184ade494f5df55857f27bfa9204d54ecadcdbc5..0000000000000000000000000000000000000000
--- a/publish/records/kflow/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KFLOW",
- "page": "https://kronosfusionenergy.com/kodex/kflow",
- "title": "KODEX \u2014 KFLOW: STATE",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "STATE",
- "KODEX:KFLOW"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kflow",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KFLOW (STATE). twin state-estimation / dropped-sensor imputation on the 76-node diagnostic sensor graph
Benchmark: GNN RMSE@k8 0.0844 vs naive 0.1721 (beats naive; AC-18 0.05 bar **MISSED**, kept)
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kflow · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KFLOW (STATE). twin state-estimation / dropped-sensor imputation on the 76-node diagnostic sensor graphBenchmark: GNN RMSE@k8 0.0844 vs naive 0.1721 (beats naive; AC-18 0.05 bar **MISSED**, kept)Part of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kflow \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kflux/CITATION.cff b/publish/records/kflux/CITATION.cff
deleted file mode 100644
index 92bd4f0dbd4aab7e17a6f15fcda7863d3c1f1e09..0000000000000000000000000000000000000000
--- a/publish/records/kflux/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KFLUX: neutronics (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kflux"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kflux/LICENSE b/publish/records/kflux/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kflux/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kflux/MANIFEST.sha256 b/publish/records/kflux/MANIFEST.sha256
deleted file mode 100644
index 4f7d88f8b911c624d6cbe5f164c7fd5a8ad615db..0000000000000000000000000000000000000000
--- a/publish/records/kflux/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KFLUX SHA-256 (0.2.0, 2026-09-11)
-cb76417ce8fbe5d036c79500724efe794cc54d60889a49e28964278f02f807f4 CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-70ab9450ad309f82a3e1b52aac6b30c55eb74d136dbde9487850ede47676088d benchmark.json
-9e2a21f267a6b7ebf15226dbd4fab457fc1452d4b5a12e0603110602ec3414c1 card.md
-7b9624b19fef0b29476d774c64fefc0879f76f0ec88632e1b0dd1003a86c2760 kflux.py
-06cd935e310dfc3049801c6898e6dfac14c4643ec1320b15f7d92270750ba743 metadata.json
diff --git a/publish/records/kflux/benchmark.json b/publish/records/kflux/benchmark.json
deleted file mode 100644
index 9fc7e84976a3ade59f0412f2f7c9ea8e1435b504..0000000000000000000000000000000000000000
--- a/publish/records/kflux/benchmark.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "member": "KFLUX",
- "live": {
- "r2_log_fluence_vs_engine": 1.0,
- "n_test": 60
- },
- "note": "surrogate over toolkit shielding/fluence (analytic); OpenMC upgrade = compute route [A]"
-}
diff --git a/publish/records/kflux/card.md b/publish/records/kflux/card.md
deleted file mode 100644
index 8864312d476fdc37ec803f5f99b9492f18102821..0000000000000000000000000000000000000000
--- a/publish/records/kflux/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KFLUX — card
-
-- **name:** KFLUX
-- **function:** neutronics
-- **status:** BUILT
-- **phase:** 2
-- **provenance:** SIM
-- **retired_by:** OpenMC (Monte-Carlo neutron transport)
-- **gates:** []
-- **note:** neutron shielding / coil-fluence surrogate — fast GP over the toolkit neutronics; OpenMC is the auto-dispatch high-fidelity upgrade
-- **available:** True
-
-Benchmark headline: coil-fluence surrogate R²=1.0 vs neutronics engine; OpenMC = auto fidelity upgrade
diff --git a/publish/records/kflux/kflux.py b/publish/records/kflux/kflux.py
deleted file mode 100644
index e3b48da48d35c7840bf2e243fc4d96c57aabb24f..0000000000000000000000000000000000000000
--- a/publish/records/kflux/kflux.py
+++ /dev/null
@@ -1,50 +0,0 @@
-"""KODEX KFLUX — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KFLUX(Surrogate):
- name = "KFLUX"; function = "neutronics"; phase = 2; status = "BUILT"
- provenance = "SIM"
- retired_by = "OpenMC (Monte-Carlo neutron transport)"
- real_codes = ("openmc",)
- note = ("neutron shielding / coil-fluence surrogate — fast GP over the toolkit "
- "neutronics; OpenMC is the auto-dispatch high-fidelity upgrade")
-
- _B = [(10.0, 100.0), (0.3, 1.5)] # p_neutron_MW, shield_thickness_m
-
- def __init__(self):
- self._gp = None
-
- def _sweep(self, n=120, seed=uq.SEED):
- api = _api(); rng = np.random.default_rng(seed)
- P = np.c_[rng.uniform(*self._B[0], n), rng.uniform(*self._B[1], n)]
- y = np.array([np.log10(_val(api.coil_fluence(p_neutron_MW=p[0], shield_thickness_m=p[1],
- force_analytic=True)) + 1.0)
- for p in P])
- return P, y
-
- def _fit(self):
- if self._gp is None:
- P, y = self._sweep()
- self._gp = uq.GPHead().fit(P, y)
- return self._gp
-
- def in_domain(self, p):
- return all(self._B[i][0] <= p[i] <= self._B[i][1] for i in range(2))
-
- def _predict(self, x):
- gp = self._fit(); x = np.asarray(x, float).reshape(1, -1)
- m, s = gp.predict(x)
- return Prediction(float(10 ** m[0] - 1.0), float(s[0]), self.in_domain(x.ravel()),
- note="coil neutron fluence (log10 model)")
-
- def _x_from_params(self, p_neutron_MW=50.0, shield_thickness_m=0.8, **_):
- return [p_neutron_MW, shield_thickness_m]
-
- def benchmark(self):
- gp = self._fit()
- Pte, yte = self._sweep(n=60, seed=uq.SEED + 5)
- m, _ = gp.predict(Pte)
- return {"member": self.name,
- "live": {"r2_log_fluence_vs_engine": round(metrics.r2(yte, m), 3),
- "n_test": len(Pte)},
- "note": "surrogate over toolkit shielding/fluence (analytic); OpenMC upgrade = compute route [A]"}
diff --git a/publish/records/kflux/metadata.json b/publish/records/kflux/metadata.json
deleted file mode 100644
index ede91f344ebf9316329a8e218513bc9ccc6be126..0000000000000000000000000000000000000000
--- a/publish/records/kflux/metadata.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "kname": "KFLUX",
- "page": "https://kronosfusionenergy.com/kodex/kflux",
- "title": "KODEX \u2014 KFLUX: neutronics",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "neutronics",
- "KODEX:KFLUX"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kflux",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- }
- ],
- "description": "KODEX — KFLUX (neutronics). neutron shielding / coil-fluence surrogate \u2014 fast GP over the toolkit neutronics; OpenMC is the auto-dispatch high-fidelity upgrade
Benchmark: coil-fluence surrogate R\u00b2=1.0 vs neutronics engine; OpenMC = auto fidelity upgrade
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.22645689. Home: https://kronosfusionenergy.com/kodex/kflux · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KFLUX (neutronics). neutron shielding / coil-fluence surrogate \u2014 fast GP over the toolkit neutronics; OpenMC is the auto-dispatch high-fidelity upgradeBenchmark: coil-fluence surrogate R\u00b2=1.0 vs neutronics engine; OpenMC = auto fidelity upgradePart of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.22645689. Home: https://kronosfusionenergy.com/kodex/kflux \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kforge/CITATION.cff b/publish/records/kforge/CITATION.cff
deleted file mode 100644
index ea453837c4a283bfef6d085d7f3994176d751a1e..0000000000000000000000000000000000000000
--- a/publish/records/kforge/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KFORGE: inverse-design (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kforge"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kforge/LICENSE b/publish/records/kforge/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kforge/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kforge/MANIFEST.sha256 b/publish/records/kforge/MANIFEST.sha256
deleted file mode 100644
index af37785cf2430053bbf82901aaa84f95a2f56db7..0000000000000000000000000000000000000000
--- a/publish/records/kforge/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KFORGE SHA-256 (0.2.0, 2026-09-11)
-a29025e11259f3bd6c7dabfe4c2b3f09d5af12d892f4355e4270c102e9e56936 CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-7d9fe5a4fbc1850336ba93fd40c69ee930dc083e48a8b4ad43d3fd9a78920c99 benchmark.json
-0fec9dfbec55673b19f7090e6e4952f92aa2a1be9235dca0b3b54a901b817ae1 card.md
-816b1a60e8d1c9ab50905c55cf992a5ed1d902992b71d9c13528806c4fc7a58c kforge.py
-da32db3733be646924c65cf5bb03fc7d2d9d3652ebac5384012d850bed360b4c metadata.json
diff --git a/publish/records/kforge/benchmark.json b/publish/records/kforge/benchmark.json
deleted file mode 100644
index 981f09975194beee4da27a1bd28aaccd74f515ab..0000000000000000000000000000000000000000
--- a/publish/records/kforge/benchmark.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- "member": "KFORGE",
- "live_inverse_design": {
- "a_LT": 2.228,
- "shear": 1.511,
- "A": 1.139,
- "kappa": 1.548,
- "delta": 0.003,
- "predicted_Q_tot": 0.0,
- "surrogates_chained": [
- "KYRO",
- "KORE"
- ],
- "objective": "min transport (feasible)"
- },
- "note": "differential evolution chained KYRO+KORE to find a low-transport, feasible design \u2014 the capstone that requires the fleet"
-}
diff --git a/publish/records/kforge/card.md b/publish/records/kforge/card.md
deleted file mode 100644
index 094395843ecb1b15953145d5027bf329802c9ce7..0000000000000000000000000000000000000000
--- a/publish/records/kforge/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KFORGE — card
-
-- **name:** KFORGE
-- **function:** inverse-design
-- **status:** BUILT
-- **phase:** 3
-- **provenance:** CGYRO-urep
-- **retired_by:** full integrated design optimization
-- **gates:** []
-- **note:** inverse-design capstone — chains the fleet surrogates (KYRO transport + KORE equilibrium feasibility) to search machine designs; the underlying KYRO transport is CGYRO mu=400 representative-mass (real-mass converged gold deferred), so the operating point is representative, not final
-- **available:** True
-
-Benchmark headline: inverse-design chained KYRO+KORE → **found a quiet operating point** (a/L_T=2.228, shear=1.511, Q_tot≈0.0)
diff --git a/publish/records/kforge/kforge.py b/publish/records/kforge/kforge.py
deleted file mode 100644
index d210d87fbe4bcba776f78a8ac7323383ae8173a2..0000000000000000000000000000000000000000
--- a/publish/records/kforge/kforge.py
+++ /dev/null
@@ -1,44 +0,0 @@
-"""KODEX KFORGE — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KFORGE(Surrogate):
- name = "KFORGE"; function = "inverse-design"; phase = 3; status = "BUILT"
- provenance = "CGYRO-urep"
- retired_by = "full integrated design optimization"
- real_codes = ("differential evolution over the fleet",)
- note = ("inverse-design capstone — chains the fleet surrogates (KYRO transport "
- "+ KORE equilibrium feasibility) to search machine designs; the underlying "
- "KYRO transport is CGYRO mu=400 representative-mass (real-mass converged gold "
- "deferred), so the operating point is representative, not final")
-
- # design vector = [a_LT, shear, A, kappa, delta]
- BOUNDS = [(2.0, 3.5), (0.4, 1.6), (0.8, 1.2), (1.5, 2.5), (-0.5, 0.5)]
-
- def _cost(self, d):
- a_LT, shear, A, kappa, delta = d
- q = get("KYRO").predict([a_LT, shear]).y # chain -> transport surrogate
- feasible = get("KORE").in_domain([A, kappa, delta]) # chain -> equilibrium gate
- penalty = 0.0 if feasible else 10.0
- return np.log10(q + 1e-4) + penalty # minimise transport, keep feasible
-
- def optimize(self, maxiter=15):
- from scipy.optimize import differential_evolution
- res = differential_evolution(self._cost, self.BOUNDS, seed=uq.SEED,
- maxiter=maxiter, tol=1e-3, polish=True)
- d = res.x
- return {"a_LT": round(d[0], 3), "shear": round(d[1], 3),
- "A": round(d[2], 3), "kappa": round(d[3], 3), "delta": round(d[4], 3),
- "predicted_Q_tot": round(float(get("KYRO").predict([d[0], d[1]]).y), 4),
- "surrogates_chained": ["KYRO", "KORE"], "objective": "min transport (feasible)"}
-
- def _predict(self, x):
- """x = optional dict of overrides -> the optimized design."""
- best = self.optimize()
- return Prediction(best, None, True,
- note="inverse-designed operating point (quiet/low-transport)")
-
- def benchmark(self):
- best = self.optimize()
- return {"member": self.name, "live_inverse_design": best,
- "note": "differential evolution chained KYRO+KORE to find a low-transport, "
- "feasible design — the capstone that requires the fleet"}
diff --git a/publish/records/kforge/metadata.json b/publish/records/kforge/metadata.json
deleted file mode 100644
index 0cdd84d3a71dceb524f8351b4fcdc89f7c753c1f..0000000000000000000000000000000000000000
--- a/publish/records/kforge/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KFORGE",
- "page": "https://kronosfusionenergy.com/kodex/kforge",
- "title": "KODEX \u2014 KFORGE: inverse-design",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "inverse-design",
- "KODEX:KFORGE"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kforge",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "isDerivedFrom",
- "identifier": "10.5281/zenodo.22136279",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KFORGE (inverse-design). inverse-design capstone \u2014 chains the fleet surrogates (KYRO transport + KORE equilibrium feasibility) to search machine designs; the underlying KYRO transport is CGYRO mu=400 representative-mass (real-mass converged gold deferred), so the operating point is representative, not final
Benchmark: inverse-design chained KYRO+KORE \u2192 **found a quiet operating point** (a/L_T=2.228, shear=1.511, Q_tot\u22480.0)
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: isDerivedFrom 10.5281/zenodo.22136279. Home: https://kronosfusionenergy.com/kodex/kforge · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KFORGE (inverse-design). inverse-design capstone \u2014 chains the fleet surrogates (KYRO transport + KORE equilibrium feasibility) to search machine designs; the underlying KYRO transport is CGYRO mu=400 representative-mass (real-mass converged gold deferred), so the operating point is representative, not finalBenchmark: inverse-design chained KYRO+KORE \u2192 **found a quiet operating point** (a/L_T=2.228, shear=1.511, Q_tot\u22480.0)Part of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: isDerivedFrom 10.5281/zenodo.22136279. Home: https://kronosfusionenergy.com/kodex/kforge \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kfuel/CITATION.cff b/publish/records/kfuel/CITATION.cff
deleted file mode 100644
index 0464b7e648fbf31318f2c57039186a76e568c6a8..0000000000000000000000000000000000000000
--- a/publish/records/kfuel/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KFUEL: fuel-cycle (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kfuel"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kfuel/LICENSE b/publish/records/kfuel/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kfuel/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kfuel/MANIFEST.sha256 b/publish/records/kfuel/MANIFEST.sha256
deleted file mode 100644
index 137e1ca864f155111e466bd7a1d463b1913510f1..0000000000000000000000000000000000000000
--- a/publish/records/kfuel/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KFUEL SHA-256 (0.2.0, 2026-09-11)
-62023e6b36a097c77fe2fde548743f3852c985049d837ef27124d5b9ef11cf97 CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-29ebc22a147574fb12df1e5ec5df748d40a20b23e12fe8153838355662c5dd5d benchmark.json
-14b808feb0ba1b405e72ad4b813018e03c7e3bf9263cb4f07c6933d1d8aa1094 card.md
-6c740c6cbec9da029f32cb5b698d140a4706253b0b8a28fab28131aff5724e98 kfuel.py
-ee5ede081172578a706a18711ec99d4837153c899fa5cf34b1e6a0587627bb24 metadata.json
diff --git a/publish/records/kfuel/benchmark.json b/publish/records/kfuel/benchmark.json
deleted file mode 100644
index 18464e51832853199012860145db1a164413b4a4..0000000000000000000000000000000000000000
--- a/publish/records/kfuel/benchmark.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "member": "KFUEL",
- "live_nominal": {
- "net_breeding_kg_yr": 1.936,
- "self_sufficient": true,
- "doubling_time_yr": 5.17
- },
- "note": "reduced systems model seeded from tritium physics (12.32 yr half-life); full fuel-cycle code is the roadmap upgrade"
-}
diff --git a/publish/records/kfuel/card.md b/publish/records/kfuel/card.md
deleted file mode 100644
index 5a559acba78473dd379035ef0cc80b5317d58aac..0000000000000000000000000000000000000000
--- a/publish/records/kfuel/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KFUEL — card
-
-- **name:** KFUEL
-- **function:** fuel-cycle
-- **status:** BUILT
-- **phase:** 3
-- **provenance:** SIM
-- **retired_by:** full fuel-cycle systems code (e.g. MIRC / TRANSAT)
-- **gates:** []
-- **note:** tritium fuel-cycle inventory — a reduced systems model (breeding, burn, decay, reserve) giving self-sufficiency + doubling time
-- **available:** True
-
-Benchmark headline: fuel-cycle balance: self-sufficient=True, doubling 5.17 yr (illustrative TBR)
diff --git a/publish/records/kfuel/kfuel.py b/publish/records/kfuel/kfuel.py
deleted file mode 100644
index c7a3ac3021e3d1d63c3f72b6762523e1d2d70420..0000000000000000000000000000000000000000
--- a/publish/records/kfuel/kfuel.py
+++ /dev/null
@@ -1,33 +0,0 @@
-"""KODEX KFUEL — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KFUEL(Surrogate):
- name = "KFUEL"; function = "fuel-cycle"; phase = 3; status = "BUILT"
- provenance = "SIM"
- retired_by = "full fuel-cycle systems code (e.g. MIRC / TRANSAT)"
- real_codes = ("fuel-cycle systems model",)
- note = ("tritium fuel-cycle inventory — a reduced systems model "
- "(breeding, burn, decay, reserve) giving self-sufficiency + doubling time")
-
- T_HALFLIFE_YR = 12.32
-
- def _predict(self, x):
- """x = dict{TBR, burn_rate_kg_yr, reserve_kg, startup_kg} -> inventory outcome."""
- if not isinstance(x, dict):
- x = {}
- TBR = float(x.get("TBR", 1.05)); burn = float(x.get("burn_rate_kg_yr", 55.6))
- reserve = float(x.get("reserve_kg", 5.0)); start = float(x.get("startup_kg", 10.0))
- decay = np.log(2) / self.T_HALFLIFE_YR
- net_breed = burn * (TBR - 1.0) - decay * (start + reserve) # kg/yr surplus
- self_sufficient = net_breed > 0
- doubling_yr = (start / net_breed) if net_breed > 1e-6 else float("inf")
- return Prediction({"net_breeding_kg_yr": round(net_breed, 3),
- "self_sufficient": bool(self_sufficient),
- "doubling_time_yr": round(doubling_yr, 2) if np.isfinite(doubling_yr) else None},
- None, TBR >= 1.0, note="reduced tritium fuel-cycle balance")
-
- def benchmark(self):
- p = self.predict({"TBR": 1.05, "burn_rate_kg_yr": 55.6, "reserve_kg": 5.0, "startup_kg": 10.0})
- return {"member": self.name, "live_nominal": p.y,
- "note": "reduced systems model seeded from tritium physics (12.32 yr half-life); "
- "full fuel-cycle code is the roadmap upgrade"}
diff --git a/publish/records/kfuel/metadata.json b/publish/records/kfuel/metadata.json
deleted file mode 100644
index 79a19a07e505b82fb97860f61a11c53d893fa98b..0000000000000000000000000000000000000000
--- a/publish/records/kfuel/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KFUEL",
- "page": "https://kronosfusionenergy.com/kodex/kfuel",
- "title": "KODEX \u2014 KFUEL: fuel-cycle",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "fuel-cycle",
- "KODEX:KFUEL"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kfuel",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KFUEL (fuel-cycle). tritium fuel-cycle inventory \u2014 a reduced systems model (breeding, burn, decay, reserve) giving self-sufficiency + doubling time
Benchmark: fuel-cycle balance: self-sufficient=True, doubling 5.17 yr (illustrative TBR)
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kfuel · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KFUEL (fuel-cycle). tritium fuel-cycle inventory \u2014 a reduced systems model (breeding, burn, decay, reserve) giving self-sufficiency + doubling timeBenchmark: fuel-cycle balance: self-sufficient=True, doubling 5.17 yr (illustrative TBR)Part of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kfuel \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kfuse/CITATION.cff b/publish/records/kfuse/CITATION.cff
deleted file mode 100644
index 724327023b8c1a9b7a866a49989677680c4d77ee..0000000000000000000000000000000000000000
--- a/publish/records/kfuse/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KFUSE: MULTIFID (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kfuse"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kfuse/LICENSE b/publish/records/kfuse/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kfuse/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kfuse/MANIFEST.sha256 b/publish/records/kfuse/MANIFEST.sha256
deleted file mode 100644
index c2ac55f42bf315d3f1341730d3023c57845a9870..0000000000000000000000000000000000000000
--- a/publish/records/kfuse/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KFUSE SHA-256 (0.2.0, 2026-09-11)
-768807aad233bcfae852c28f79101b116d57a319e46bc85c8299e2add8a9ac11 CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-a33c229b1361f26f0aa57c0c24a1face70c567ef5a6ee1a35052bba8a39f0969 benchmark.json
-ae8af5a1b666aff4f724372e76786cce45f56f9d1ba73e68d6d17e5c6d6b682b card.md
-4f43942cc3c1f8c0a016603cc520d15f8e4c0568c25f4bbb3114ea83c3a19a25 kfuse.py
-f07cc90919657eddad231943cc016770225d8cd423e0580cc6757ed799d3c967 metadata.json
diff --git a/publish/records/kfuse/benchmark.json b/publish/records/kfuse/benchmark.json
deleted file mode 100644
index 2526d5c9a75d5ea61a55070862de1eac5d076d61..0000000000000000000000000000000000000000
--- a/publish/records/kfuse/benchmark.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "member": "KFUSE",
- "live_multifidelity": {
- "rmse_low_fidelity_only": 1.481,
- "rmse_multifidelity": 1.05,
- "r2_multifidelity": 0.787,
- "note": "residual GP correction from 16 mu=400 CGYRO points reduces LF error"
- },
- "fidelities": "low = analytic proxy; high = mu=400 CGYRO; 3rd = real-mass gold (deferred)"
-}
diff --git a/publish/records/kfuse/card.md b/publish/records/kfuse/card.md
deleted file mode 100644
index a45e579baed5b8dd67a3c1e91f1fae54e9b4e154..0000000000000000000000000000000000000000
--- a/publish/records/kfuse/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KFUSE — card
-
-- **name:** KFUSE
-- **function:** MULTIFID
-- **status:** BUILT
-- **phase:** 2
-- **provenance:** CGYRO-urep
-- **retired_by:** CGYRO real-mass converged (mu=3672)
-- **gates:** ['BR-L2-A1e', 'BR-L2-A1c-MS']
-- **note:** multi-fidelity surrogate: cheap analytic low-fidelity + a residual GP correction from the mu=400 CGYRO points; real-mass gold is the 3rd fidelity
-- **available:** True
-
-Benchmark headline: multi-fidelity: RMSE 1.481→1.05 (R²=0.787); 3rd fidelity = real-mass gold (deferred)
diff --git a/publish/records/kfuse/kfuse.py b/publish/records/kfuse/kfuse.py
deleted file mode 100644
index 1ecc57eede3c04e5b15149591acdd2a86cb7b329..0000000000000000000000000000000000000000
--- a/publish/records/kfuse/kfuse.py
+++ /dev/null
@@ -1,57 +0,0 @@
-"""KODEX KFUSE — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KFUSE(Surrogate):
- name = "KFUSE"; function = "MULTIFID"; phase = 2; status = "BUILT"
- provenance = "CGYRO-urep"
- retired_by = "CGYRO real-mass converged (mu=3672)"
- real_codes = ("multi-fidelity GP", "CGYRO")
- gates = ("BR-L2-A1e", "BR-L2-A1c-MS")
- note = ("multi-fidelity surrogate: cheap analytic low-fidelity + a residual GP "
- "correction from the mu=400 CGYRO points; real-mass gold is the 3rd fidelity")
-
- def __init__(self):
- self._gp = None
-
- def _map(self):
- df = data.cgyro_flux_map_final()
- X = df[["a_LT", "shear"]].to_numpy(float)
- y = np.log10(np.clip(df.Q_tot.to_numpy(float), 0, None) + 1e-4)
- return X, y
-
- def _fit(self):
- if self._gp is None:
- X, y = self._map()
- resid = y - _lf_log(X[:, 0], X[:, 1]) # high - low fidelity
- self._gp = uq.GPHead().fit(X, resid)
- return self._gp
-
- def _predict(self, x):
- gp = self._fit(); x = np.asarray(x, float).reshape(1, -1)
- lf = _lf_log(x[0, 0], x[0, 1])
- dm, ds = gp.predict(x)
- log_q = lf + dm[0]
- q = max(float(10 ** log_q - 1e-4), 0.0)
- unc = float(q * np.log(10) * ds[0] * 1.25) # +25% for pending real-mass
- return Prediction(q, unc, bool(2.0 <= x[0, 0] <= 3.5 and 0.4 <= x[0, 1] <= 1.6),
- note="multi-fidelity Q_tot (mu=400); real-mass gold pending -> +25% unc")
-
- def _x_from_params(self, a_LT=3.0, shear=1.0, **_):
- return [float(a_LT), float(shear)]
-
- def benchmark(self):
- X, y = self._map(); n = len(y)
- lf = _lf_log(X[:, 0], X[:, 1])
- # leave-one-out: low-fidelity alone vs multi-fidelity (LF + residual GP)
- mf = np.zeros(n)
- for i in range(n):
- tr = np.arange(n) != i
- g = uq.GPHead().fit(X[tr], (y - lf)[tr])
- mf[i] = lf[i] + g.predict(X[i:i + 1])[0][0]
- return {"member": self.name,
- "live_multifidelity": {
- "rmse_low_fidelity_only": round(metrics.rmse(y, lf), 3),
- "rmse_multifidelity": round(metrics.rmse(y, mf), 3),
- "r2_multifidelity": round(metrics.r2(y, mf), 3),
- "note": "residual GP correction from 16 mu=400 CGYRO points reduces LF error"},
- "fidelities": "low = analytic proxy; high = mu=400 CGYRO; 3rd = real-mass gold (deferred)"}
diff --git a/publish/records/kfuse/metadata.json b/publish/records/kfuse/metadata.json
deleted file mode 100644
index 84e4d0d9cb1c04a24e75c5e775fda0f39b388f11..0000000000000000000000000000000000000000
--- a/publish/records/kfuse/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KFUSE",
- "page": "https://kronosfusionenergy.com/kodex/kfuse",
- "title": "KODEX \u2014 KFUSE: MULTIFID",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "MULTIFID",
- "KODEX:KFUSE"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kfuse",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "isDerivedFrom",
- "identifier": "10.5281/zenodo.22136279",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KFUSE (MULTIFID). multi-fidelity surrogate: cheap analytic low-fidelity + a residual GP correction from the mu=400 CGYRO points; real-mass gold is the 3rd fidelity
Benchmark: multi-fidelity: RMSE 1.481\u21921.05 (R\u00b2=0.787); 3rd fidelity = real-mass gold (deferred)
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: isDerivedFrom 10.5281/zenodo.22136279. Home: https://kronosfusionenergy.com/kodex/kfuse · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KFUSE (MULTIFID). multi-fidelity surrogate: cheap analytic low-fidelity + a residual GP correction from the mu=400 CGYRO points; real-mass gold is the 3rd fidelityBenchmark: multi-fidelity: RMSE 1.481\u21921.05 (R\u00b2=0.787); 3rd fidelity = real-mass gold (deferred)Part of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: isDerivedFrom 10.5281/zenodo.22136279. Home: https://kronosfusionenergy.com/kodex/kfuse \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kgate/CITATION.cff b/publish/records/kgate/CITATION.cff
deleted file mode 100644
index a3857e84d316c043a8fb0042d677dcdbd7cb9961..0000000000000000000000000000000000000000
--- a/publish/records/kgate/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KGATE: SAFE (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kgate"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kgate/LICENSE b/publish/records/kgate/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kgate/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kgate/MANIFEST.sha256 b/publish/records/kgate/MANIFEST.sha256
deleted file mode 100644
index c45115283916b3be58f627039fedfd19bd05cdfc..0000000000000000000000000000000000000000
--- a/publish/records/kgate/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KGATE SHA-256 (0.2.0, 2026-09-11)
-3e181d0c53382dbb54714fc7032f6699fc353ae87cede43d608139ffbc1fe66c CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-be3a3d3b5bb1a7698786374c961ece76a284184ec9aa8e707a3d76a01c4f49f3 benchmark.json
-0cc44cbc3ba9c3ca138ca27c6b7b6e9d488d7dc055b3e3262c4f8b0d0339c6e7 card.md
-0ea0f7cd2a7a03b822973e85ac5fc25c310bb1f09d08be576b5ab21315f98e3e kgate.py
-8d83a990500af2aefe57f04c081365d6bbc118ebbd89cf68d66a7b50820ac366 metadata.json
diff --git a/publish/records/kgate/benchmark.json b/publish/records/kgate/benchmark.json
deleted file mode 100644
index 05e6c5568a0c4b64dceebb2ec7d06e3fb8881c62..0000000000000000000000000000000000000000
--- a/publish/records/kgate/benchmark.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "member": "KGATE",
- "steps": 150000,
- "escapes": 0,
- "catch_rate": 1.0,
- "note": "model-free clamp; safety independent of any model"
-}
diff --git a/publish/records/kgate/card.md b/publish/records/kgate/card.md
deleted file mode 100644
index f6a780514efadf7fa163732dcbefab4291c69561..0000000000000000000000000000000000000000
--- a/publish/records/kgate/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KGATE — card
-
-- **name:** KGATE
-- **function:** SAFE
-- **status:** BUILT
-- **phase:** 1
-- **provenance:** TWIN
-- **retired_by:** formal CBF verification + hardware failsafe
-- **gates:** []
-- **note:** trust-boundary / abstention gate — a model-free envelope clamp that decides in_domain and fail-closes on bad input
-- **available:** True
-
-Benchmark headline: model-free clamp: **0 escapes / 150,000 steps**
diff --git a/publish/records/kgate/kgate.py b/publish/records/kgate/kgate.py
deleted file mode 100644
index 2bd63bab34dd9cf3fcf81823a9cc92c73ae8f4ce..0000000000000000000000000000000000000000
--- a/publish/records/kgate/kgate.py
+++ /dev/null
@@ -1,53 +0,0 @@
-"""KODEX KGATE — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KGATE(Surrogate):
- name = "KGATE"; function = "SAFE"; phase = 1; status = "BUILT"
- provenance = "TWIN"
- retired_by = "formal CBF verification + hardware failsafe"
- real_codes = ("CBF certificate", "hardware failsafe")
- note = ("trust-boundary / abstention gate — a model-free envelope clamp that "
- "decides in_domain and fail-closes on bad input")
-
- def clamp(self, u):
- """Project a proposed 6-command onto the frozen envelope; fail-closed to
- the low-corner HOLD on non-finite / wrong-shape input."""
- u = np.asarray(u, float).ravel()
- if u.shape != (6,) or not np.all(np.isfinite(u)):
- return _LO.copy(), False # fail-closed HOLD
- safe = np.clip(u, _LO, _HI)
- # Greenwald density limit n_e <= Ip/pi (Ip in MA, n_e in 1e20 m^-3)
- safe[3] = min(safe[3], safe[5] / np.pi)
- return safe, True
-
- def in_domain(self, u):
- u = np.asarray(u, float).ravel()
- if u.shape != (6,) or not np.all(np.isfinite(u)):
- return False
- safe, _ = self.clamp(u)
- return bool(np.allclose(safe, u, atol=1e-9))
-
- def _predict(self, x):
- safe, ok = self.clamp(x)
- return Prediction(safe, None, self.in_domain(x),
- note="clamped to envelope" if not self.in_domain(x) else "in envelope")
-
- def benchmark(self):
- """Reproduce the AC-25 headline: inject deliberate violations and confirm
- the clamp lets zero escape (a real, model-free numpy check)."""
- rng = np.random.default_rng(uq.SEED)
- n = 150_000
- # commands drawn wide (deliberately outside the envelope ~half the time)
- span = _HI - _LO
- u = _LO + rng.uniform(-0.5, 1.5, size=(n, 6)) * span
- # inject NaN garbage in a slice
- u[::7, rng.integers(0, 6)] = np.nan
- escapes = 0
- for i in range(n):
- safe, _ = self.clamp(u[i])
- if not (np.all(safe >= _LO - 1e-9) and np.all(safe <= _HI + 1e-9)
- and safe[3] <= safe[5] / np.pi + 1e-9):
- escapes += 1
- return {"member": self.name, "steps": n, "escapes": escapes,
- "catch_rate": 1.0 - escapes / n,
- "note": "model-free clamp; safety independent of any model"}
diff --git a/publish/records/kgate/metadata.json b/publish/records/kgate/metadata.json
deleted file mode 100644
index f2bb22167c5c021e7b0121c3f2ddd50b81e45001..0000000000000000000000000000000000000000
--- a/publish/records/kgate/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KGATE",
- "page": "https://kronosfusionenergy.com/kodex/kgate",
- "title": "KODEX \u2014 KGATE: SAFE",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "SAFE",
- "KODEX:KGATE"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kgate",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KGATE (SAFE). trust-boundary / abstention gate \u2014 a model-free envelope clamp that decides in_domain and fail-closes on bad input
Benchmark: model-free clamp: **0 escapes / 150,000 steps**
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kgate · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KGATE (SAFE). trust-boundary / abstention gate \u2014 a model-free envelope clamp that decides in_domain and fail-closes on bad inputBenchmark: model-free clamp: **0 escapes / 150,000 steps**Part of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kgate \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kgen/CITATION.cff b/publish/records/kgen/CITATION.cff
deleted file mode 100644
index b48c41de4a2e6210121ccefcf2656de269026b2d..0000000000000000000000000000000000000000
--- a/publish/records/kgen/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KGEN: generative (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kgen"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kgen/LICENSE b/publish/records/kgen/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kgen/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kgen/MANIFEST.sha256 b/publish/records/kgen/MANIFEST.sha256
deleted file mode 100644
index 37ad3e1d936e52d7792b47b7235165814c5b0516..0000000000000000000000000000000000000000
--- a/publish/records/kgen/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KGEN SHA-256 (0.2.0, 2026-09-11)
-01ad235c8b74109f2e74d7e6900a6595bde2465df868f08688f08bdbf3a872dd CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-7c1ccbce36e999c79fefbcab7f23b01111b82f13716adc13012bec5eec27d25e benchmark.json
-b59d95751ebf02a402c7f3e7505b0eba951df71dbd747be27f2916a043aa4f52 card.md
-239c726fb7d8e9f344dfd7dc4eb7e7ad59f6e3abff6307e7a2f210b7b52dde31 kgen.py
-a9ea17cb1f8f1f73621203ae25994441727392d124b15227713251f70bccd23b metadata.json
diff --git a/publish/records/kgen/benchmark.json b/publish/records/kgen/benchmark.json
deleted file mode 100644
index c660f072856e7ee2a7071661304af41bfb1b2b02..0000000000000000000000000000000000000000
--- a/publish/records/kgen/benchmark.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "member": "KGEN",
- "live": {
- "latent_dim": 8,
- "reconstruction_rel_l2": 4.15e-16,
- "variance_explained": 1.0,
- "note": "reconstruction is near-exact BECAUSE the analytic field family is low-rank (3 shape params); the diffusion upgrade earns its keep on a richer real-equilibria corpus. KGEN's job is sampling new plausible fields."
- }
-}
diff --git a/publish/records/kgen/card.md b/publish/records/kgen/card.md
deleted file mode 100644
index 6d0ef2a5313d96ddb10e4aec2cc9eaa28868226b..0000000000000000000000000000000000000000
--- a/publish/records/kgen/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KGEN — card
-
-- **name:** KGEN
-- **function:** generative
-- **status:** BUILT
-- **phase:** 3
-- **provenance:** ANALYTIC
-- **retired_by:** high-fidelity generative model (diffusion) on real fields
-- **gates:** []
-- **note:** generative surrogate — a PCA/latent model that samples plausible equilibrium flux fields; diffusion is the roadmap upgrade
-- **available:** True
-
-Benchmark headline: generative (PCA latent, dim 8); samples plausible equilibrium fields (diffusion = roadmap)
diff --git a/publish/records/kgen/kgen.py b/publish/records/kgen/kgen.py
deleted file mode 100644
index 3fada1841d12e41325047e81b81f2ce5cd744707..0000000000000000000000000000000000000000
--- a/publish/records/kgen/kgen.py
+++ /dev/null
@@ -1,49 +0,0 @@
-"""KODEX KGEN — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KGEN(Surrogate):
- name = "KGEN"; function = "generative"; phase = 3; status = "BUILT"
- provenance = "ANALYTIC"
- retired_by = "high-fidelity generative model (diffusion) on real fields"
- real_codes = ("generative model",)
- note = ("generative surrogate — a PCA/latent model that samples plausible "
- "equilibrium flux fields; diffusion is the roadmap upgrade")
-
- def __init__(self):
- self._pca = None; self._ev = None
-
- def _fit(self):
- if self._pca is None:
- from sklearn.decomposition import PCA
- rng = np.random.default_rng(uq.SEED)
- P = np.c_[rng.uniform(0.8, 1.2, 500), rng.uniform(1.5, 2.5, 500), rng.uniform(-0.5, 0.5, 500)]
- fields = np.array([_field(*p) for p in P])
- self._fields = fields
- self._pca = PCA(n_components=8, random_state=uq.SEED).fit(fields)
- self._ev = np.sqrt(self._pca.explained_variance_)
- return self._pca
-
- def _predict(self, x):
- """x = number of fields to sample -> generated flux fields (16x16 each)."""
- pca = self._fit()
- n = int(x) if np.isscalar(x) else 1
- rng = np.random.default_rng(uq.SEED + 3)
- z = rng.normal(0, 1, size=(n, 8)) * self._ev
- samples = pca.inverse_transform(z)
- return Prediction(samples.reshape(n, 16, 16), None, True,
- note=f"{n} generated flux fields (PCA latent)")
-
- def benchmark(self):
- pca = self._fit()
- rng = np.random.default_rng(uq.SEED + 9)
- P = np.c_[rng.uniform(0.8, 1.2, 100), rng.uniform(1.5, 2.5, 100), rng.uniform(-0.5, 0.5, 100)]
- held = np.array([_field(*p) for p in P])
- recon = pca.inverse_transform(pca.transform(held))
- rl2 = np.mean([metrics.rel_l2(held[i], recon[i]) for i in range(len(held))])
- return {"member": self.name,
- "live": {"latent_dim": 8,
- "reconstruction_rel_l2": float(f"{rl2:.2e}"),
- "variance_explained": round(float(pca.explained_variance_ratio_.sum()), 4),
- "note": "reconstruction is near-exact BECAUSE the analytic field family is "
- "low-rank (3 shape params); the diffusion upgrade earns its keep on a "
- "richer real-equilibria corpus. KGEN's job is sampling new plausible fields."}}
diff --git a/publish/records/kgen/metadata.json b/publish/records/kgen/metadata.json
deleted file mode 100644
index 4bc63fe0b2a3630edb9da5cd2f2cb927d2fd95dc..0000000000000000000000000000000000000000
--- a/publish/records/kgen/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KGEN",
- "page": "https://kronosfusionenergy.com/kodex/kgen",
- "title": "KODEX \u2014 KGEN: generative",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "generative",
- "KODEX:KGEN"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kgen",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KGEN (generative). generative surrogate \u2014 a PCA/latent model that samples plausible equilibrium flux fields; diffusion is the roadmap upgrade
Benchmark: generative (PCA latent, dim 8); samples plausible equilibrium fields (diffusion = roadmap)
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kgen · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KGEN (generative). generative surrogate \u2014 a PCA/latent model that samples plausible equilibrium flux fields; diffusion is the roadmap upgradeBenchmark: generative (PCA latent, dim 8); samples plausible equilibrium fields (diffusion = roadmap)Part of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kgen \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/khalo/CITATION.cff b/publish/records/khalo/CITATION.cff
deleted file mode 100644
index cbdb97e61f5c5b00ab3a7552833d4a5e9793e1f5..0000000000000000000000000000000000000000
--- a/publish/records/khalo/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KHALO: UQ (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/khalo"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/khalo/LICENSE b/publish/records/khalo/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/khalo/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/khalo/MANIFEST.sha256 b/publish/records/khalo/MANIFEST.sha256
deleted file mode 100644
index 00caed24c1fe68183585a2fed6a004b82f31b914..0000000000000000000000000000000000000000
--- a/publish/records/khalo/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KHALO SHA-256 (0.2.0, 2026-09-11)
-3d8e92020d93bbe8d982a88309117e6fa20dbdbc33df05260a0e2545e59c70b6 CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-a197badadccc3309a9f211d4fe9092bda7f6e208c4ceb7c02cc049fc187d52af benchmark.json
-7c10e46dfd73fdc17e6b1072bf840289784a1fe62c76ba8bd21f80f576df5bd5 card.md
-0750b4c283ad7fdd646178552e4298b443e0eefdf1d8374dffddfa5887a8d6ba khalo.py
-20efef1bf35c0f7429a1b58739ae0827e124fea90e01f24f30a8f6cf7279135b metadata.json
diff --git a/publish/records/khalo/benchmark.json b/publish/records/khalo/benchmark.json
deleted file mode 100644
index 03508704f3ab7b04136d081bdb941d9df308b953..0000000000000000000000000000000000000000
--- a/publish/records/khalo/benchmark.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "member": "KHALO",
- "sourced": {
- "file": "track6_surrogate_uq/uq_calibration_summary.csv",
- "ece": "0.0327 +/- 0.0136",
- "coverage_90": "0.888 +/- 0.034",
- "result": "PASS (mean)"
- },
- "live_gp_on_cgyro": {
- "ece": 0.0771,
- "coverage_90": 0.8,
- "n": 10
- }
-}
diff --git a/publish/records/khalo/card.md b/publish/records/khalo/card.md
deleted file mode 100644
index 05cd3a5a71da977710a2d2ca7c92ff25b5711dae..0000000000000000000000000000000000000000
--- a/publish/records/khalo/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KHALO — card
-
-- **name:** KHALO
-- **function:** UQ
-- **status:** BUILT
-- **phase:** 1
-- **provenance:** SIM
-- **retired_by:** full ensemble UQ / conformal prediction
-- **gates:** ['KX-L1-A14', 'KX-L1-A5']
-- **note:** shared calibrated-uncertainty layer (GP posterior + deep-ensemble) + the canonical reliability report
-- **available:** True
-
-Benchmark headline: sourced ECE 0.0327 +/- 0.0136 / cov90 0.888 +/- 0.034; live GP ECE 0.0771
diff --git a/publish/records/khalo/khalo.py b/publish/records/khalo/khalo.py
deleted file mode 100644
index da5611d11b21a2b9839463d9e1ef925cb42b4841..0000000000000000000000000000000000000000
--- a/publish/records/khalo/khalo.py
+++ /dev/null
@@ -1,60 +0,0 @@
-"""KODEX KHALO — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KHALO(Surrogate):
- name = "KHALO"; function = "UQ"; phase = 1; status = "BUILT"
- provenance = "SIM"
- retired_by = "full ensemble UQ / conformal prediction"
- real_codes = ("deep-ensemble", "conformal")
- gates = ("KX-L1-A14", "KX-L1-A5")
- note = ("shared calibrated-uncertainty layer (GP posterior + deep-ensemble) "
- "+ the canonical reliability report")
-
- def head(self, baseline=None):
- return uq.GPHead(baseline=baseline)
-
- def ensemble(self):
- return uq.EnsembleHead()
-
- def calibrate(self, y_true, mean, std):
- return uq.calibrate(y_true, mean, std)
-
- def _predict(self, x):
- """x = (mean, std): stamp a calibrated Prediction (the layer's job is to
- attach uncertainty to another surrogate's point estimate)."""
- mean, std = x
- return Prediction(float(np.asarray(mean).ravel()[0]),
- float(np.asarray(std).ravel()[0]), True,
- note="calibrated via KHALO")
-
- def benchmark(self):
- out = {"member": self.name}
- # (1) sourced: the real on-disk UQ calibration
- try:
- kv = _kv(data.read_csv("track6_surrogate_uq", "uq_calibration_summary.csv"))
- out["sourced"] = {"file": "track6_surrogate_uq/uq_calibration_summary.csv",
- "ece": kv.get("ECE_mean_std"),
- "coverage_90": kv.get("coverage90_mean_std"),
- "result": kv.get("AC28_RESULT")}
- except Exception as e:
- out["sourced"] = {"error": str(e)}
- # (2) live: reliability of a GP on the CGYRO clean subset (leave-one-out)
- try:
- df = data.cgyro_flux_map()
- cl = df[(df.saturated == 1) & np.isfinite(df.Q_i)].reset_index(drop=True)
- X = cl[["a_LT", "shear"]].to_numpy(float)
- y = np.log(np.clip(cl.Q_i.to_numpy(float), 1e-6, None))
- mu = np.zeros(len(y)); sd = np.zeros(len(y))
- for i in range(len(y)):
- tr = np.arange(len(y)) != i
- if tr.sum() < 3:
- continue
- h = uq.GPHead().fit(X[tr], y[tr])
- m, s = h.predict(X[i:i + 1]); mu[i] = m[0]; sd[i] = s[0]
- rep = metrics.calibration_report(y, mu, np.clip(sd, 1e-6, None))
- out["live_gp_on_cgyro"] = {"ece": round(rep["ece"], 4),
- "coverage_90": round(rep["coverage_90"], 4),
- "n": int(len(y))}
- except Exception as e:
- out["live_gp_on_cgyro"] = {"error": str(e)}
- return out
diff --git a/publish/records/khalo/metadata.json b/publish/records/khalo/metadata.json
deleted file mode 100644
index 4fc82f84f6682451336d32dd470a81aef8f8bc99..0000000000000000000000000000000000000000
--- a/publish/records/khalo/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KHALO",
- "page": "https://kronosfusionenergy.com/kodex/khalo",
- "title": "KODEX \u2014 KHALO: UQ",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "UQ",
- "KODEX:KHALO"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/khalo",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KHALO (UQ). shared calibrated-uncertainty layer (GP posterior + deep-ensemble) + the canonical reliability report
Benchmark: sourced ECE 0.0327 +/- 0.0136 / cov90 0.888 +/- 0.034; live GP ECE 0.0771
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/khalo · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KHALO (UQ). shared calibrated-uncertainty layer (GP posterior + deep-ensemble) + the canonical reliability reportBenchmark: sourced ECE 0.0327 +/- 0.0136 / cov90 0.888 +/- 0.034; live GP ECE 0.0771Part of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/khalo \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kheat/CITATION.cff b/publish/records/kheat/CITATION.cff
deleted file mode 100644
index 1f99fdeb57a8feee1941e7430b575bb9dcf6d149..0000000000000000000000000000000000000000
--- a/publish/records/kheat/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KHEAT: heating&CD (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kheat"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kheat/LICENSE b/publish/records/kheat/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kheat/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kheat/MANIFEST.sha256 b/publish/records/kheat/MANIFEST.sha256
deleted file mode 100644
index 83be5b282d40396254ee6c509fb5940ee24f5f21..0000000000000000000000000000000000000000
--- a/publish/records/kheat/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KHEAT SHA-256 (0.2.0, 2026-09-11)
-f21693b313ccab9f0671ad691b58cc8ff74783ef82db903709809803d41e31ae CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-6cd73bd7fac1d828b7236950ae2674f97aaa74e8b78c774427413257c7fe8764 benchmark.json
-16799c442dfd31687c1d417b86ae56e99c91c8124872c1b00d349baff8944f06 card.md
-c4fc222600f6c99ecbb9177f665189f77f5778b4f69e1fb41567915c7f6c00ee kheat.py
-e0736b7183b29e80813d2dd8387df82aef98fc95e6040969c4ae321596024b94 metadata.json
diff --git a/publish/records/kheat/benchmark.json b/publish/records/kheat/benchmark.json
deleted file mode 100644
index 074715d3ed303b8ebdff55ca14dc9881f0add306..0000000000000000000000000000000000000000
--- a/publish/records/kheat/benchmark.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "member": "KHEAT",
- "live_cd_surrogate": {
- "source": "d1_cd_search.csv (3888-point current-drive design scan)",
- "features": [
- "gamma_cd",
- "P_cd",
- "ne",
- "R0",
- "B0",
- "Ti0",
- "beta_N"
- ],
- "target": "I_cd (driven current, MA)",
- "r2_vs_scan": 0.949,
- "n_samples": 3888,
- "verdict": "Fast surrogate of the current-drive scan: predicts driven current from RF/NBI drive + plasma params, R2=0.949 (3888 configs). Reduced CD model \u2014 GENRAY/TORAY/NUBEAM ray-tracing is the fidelity upgrade."
- },
- "caveat": "engineering CD scan (not full ray-tracing); feeds KAIROS heating control"
-}
diff --git a/publish/records/kheat/card.md b/publish/records/kheat/card.md
deleted file mode 100644
index f301e1c9f20851c44710c669c45fa0d17e5ea61f..0000000000000000000000000000000000000000
--- a/publish/records/kheat/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KHEAT — card
-
-- **name:** KHEAT
-- **function:** heating&CD
-- **status:** BUILT
-- **phase:** 2
-- **provenance:** SIM
-- **retired_by:** full RF/NBI ray-tracing (GENRAY/TORAY/NUBEAM)
-- **gates:** ['H10']
-- **note:** heating & current-drive actuator-response surrogate — fast RandomForest over a 3888-point current-drive design scan; predicts driven current I_cd from the RF/NBI drive parameters + plasma state. Reduced CD model; ray-tracing = fidelity upgrade
-- **available:** True
-
-Benchmark headline: heating/current-drive surrogate: driven-current I_cd **R²=0.949** over 3888 configs (reduced CD; RF/NBI ray-tracing = upgrade)
diff --git a/publish/records/kheat/kheat.py b/publish/records/kheat/kheat.py
deleted file mode 100644
index 1dbba1c5150eb934bba89b84514ced20429ccfb6..0000000000000000000000000000000000000000
--- a/publish/records/kheat/kheat.py
+++ /dev/null
@@ -1,46 +0,0 @@
-"""KODEX KHEAT — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KHEAT(Surrogate):
- name = "KHEAT"; function = "heating&CD"; phase = 2; status = "BUILT"
- provenance = "SIM"
- retired_by = "full RF/NBI ray-tracing (GENRAY/TORAY/NUBEAM)"
- real_codes = ("current-drive design scan",)
- gates = ("H10",)
- note = ("heating & current-drive actuator-response surrogate — fast RandomForest over a "
- "3888-point current-drive design scan; predicts driven current I_cd from the RF/NBI "
- "drive parameters + plasma state. Reduced CD model; ray-tracing = fidelity upgrade")
- _FEATS = ["gamma_cd", "P_cd", "ne", "R0", "B0", "Ti0", "beta_N"]
-
- def _fit(self):
- if getattr(self, "_m", None) is not None:
- return self._m
- import pandas as pd
- from sklearn.ensemble import RandomForestRegressor
- from sklearn.metrics import r2_score
- from .. import uq
- d = pd.read_csv(_CD_SCAN)[self._FEATS + ["I_cd"]].dropna()
- X = d[self._FEATS].to_numpy(float); y = d["I_cd"].to_numpy(float)
- rng = np.random.default_rng(uq.SEED); p = rng.permutation(len(y)); X, y = X[p], y[p]
- ntr = int(0.7 * len(y))
- m = RandomForestRegressor(n_estimators=200, random_state=0).fit(X[:ntr], y[:ntr])
- self._r2 = float(r2_score(y[ntr:], m.predict(X[ntr:]))); self._n = len(y)
- self._m = m
- return m
-
- def _predict(self, x):
- m = self._fit()
- return Prediction(float(m.predict(np.atleast_2d(np.asarray(x, float)))[0]), None, True,
- note="driven current I_cd (MA) from [gamma_cd,P_cd,ne,R0,B0,Ti0,beta_N]")
-
- def benchmark(self):
- self._fit()
- return {"member": self.name,
- "live_cd_surrogate": {
- "source": "d1_cd_search.csv (3888-point current-drive design scan)",
- "features": self._FEATS, "target": "I_cd (driven current, MA)",
- "r2_vs_scan": round(self._r2, 3), "n_samples": self._n,
- "verdict": (f"Fast surrogate of the current-drive scan: predicts driven current from "
- f"RF/NBI drive + plasma params, R2={self._r2:.3f} ({self._n} configs). Reduced "
- f"CD model — GENRAY/TORAY/NUBEAM ray-tracing is the fidelity upgrade.")},
- "caveat": "engineering CD scan (not full ray-tracing); feeds KAIROS heating control"}
diff --git a/publish/records/kheat/metadata.json b/publish/records/kheat/metadata.json
deleted file mode 100644
index 8b5d905c25a42ee1b6e7f02bed921967e5829f31..0000000000000000000000000000000000000000
--- a/publish/records/kheat/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KHEAT",
- "page": "https://kronosfusionenergy.com/kodex/kheat",
- "title": "KODEX \u2014 KHEAT: heating&CD",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "heating&CD",
- "KODEX:KHEAT"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kheat",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KHEAT (heating&CD). heating & current-drive actuator-response surrogate \u2014 fast RandomForest over a 3888-point current-drive design scan; predicts driven current I_cd from the RF/NBI drive parameters + plasma state. Reduced CD model; ray-tracing = fidelity upgrade
Benchmark: heating/current-drive surrogate: driven-current I_cd **R\u00b2=0.949** over 3888 configs (reduced CD; RF/NBI ray-tracing = upgrade)
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kheat · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KHEAT (heating&CD). heating & current-drive actuator-response surrogate \u2014 fast RandomForest over a 3888-point current-drive design scan; predicts driven current I_cd from the RF/NBI drive parameters + plasma state. Reduced CD model; ray-tracing = fidelity upgradeBenchmark: heating/current-drive surrogate: driven-current I_cd **R\u00b2=0.949** over 3888 configs (reduced CD; RF/NBI ray-tracing = upgrade)Part of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kheat \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package: https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kiso/CITATION.cff b/publish/records/kiso/CITATION.cff
deleted file mode 100644
index 64341783977f141d1eccba9b2bdcca08c95b7714..0000000000000000000000000000000000000000
--- a/publish/records/kiso/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KISO: isotopes (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kiso"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kiso/LICENSE b/publish/records/kiso/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kiso/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kiso/MANIFEST.sha256 b/publish/records/kiso/MANIFEST.sha256
deleted file mode 100644
index 2b87f866e3ef767394d5e4d51f773cdfcd30ad92..0000000000000000000000000000000000000000
--- a/publish/records/kiso/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KISO SHA-256 (0.2.0, 2026-09-11)
-9bc2f82bba36831b0ef9d459a14d2fa0879697e33c22962b388a0e87bc286c4d CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-7b4349162ef35a441dc7b310ad62db29cf33c18df600936f075e116ea99725b5 benchmark.json
-603c18af637cca4c98947f46a59db332b39ccde8f2817322587a8deeff002693 card.md
-6ed8dfd77f8cb7739c85f7e13d01d674ce7ec976ca161599a67ff720f406bda5 kiso.py
-bb341cd92120a396d2fa51f86f65a6de300ad9587a9a07a30d2a192895be6d3d metadata.json
diff --git a/publish/records/kiso/benchmark.json b/publish/records/kiso/benchmark.json
deleted file mode 100644
index 7ce47a151033c31db55c62e28c28ad4fffd61548..0000000000000000000000000000000000000000
--- a/publish/records/kiso/benchmark.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "member": "KISO",
- "live_servo": {
- "r2_mean_over_4_species": 0.723,
- "n_test": 200
- },
- "sourced": "track5_control/isotope_control_summary.csv (closed-loop 13.6x vs open)",
- "live_medical_yield": {
- "n_isotopes": 6,
- "flagship_Mo-99": {
- "sigma_thermal_b": 0.1321,
- "sigma_14MeV_b": 0.00054
- },
- "ranked_by_thermal_yield": [
- "Lu-177",
- "Sm-153",
- "Re-186",
- "Co-60",
- "Mo-99",
- "Cu-67"
- ],
- "source": "FENDL-3.2 (n,x) cross-sections, 2-group fusion spectrum",
- "note": "full-spectrum convolution + separation chemistry = the fidelity upgrade"
- }
-}
diff --git a/publish/records/kiso/card.md b/publish/records/kiso/card.md
deleted file mode 100644
index 4fc90f7443297b95486de1c669940cf552f89ed2..0000000000000000000000000000000000000000
--- a/publish/records/kiso/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KISO — card
-
-- **name:** KISO
-- **function:** isotopes
-- **status:** BUILT
-- **phase:** 2
-- **provenance:** SIM
-- **retired_by:** activation-transport + separation model (full spectrum)
-- **gates:** []
-- **note:** isotope code — (a) servo surrogate imitating the PI fuel-mix loop, and (b) medical-isotope YIELD from real FENDL-3.2 (n,x) cross-sections convolved with the neutron spectrum (Mo-99/Tc-99m flagship)
-- **available:** True
-
-Benchmark headline: servo R²=0.723 + **medical-isotope yield** from real FENDL-3.2 σ(E) (6 isotopes, Mo-99/Tc-99m flagship)
diff --git a/publish/records/kiso/kiso.py b/publish/records/kiso/kiso.py
deleted file mode 100644
index 146d249620af511d29a67319cebdc3d5ff439876..0000000000000000000000000000000000000000
--- a/publish/records/kiso/kiso.py
+++ /dev/null
@@ -1,78 +0,0 @@
-"""KODEX KISO — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KISO(Surrogate):
- name = "KISO"; function = "isotopes"; phase = 2; status = "BUILT"
- provenance = "SIM"
- retired_by = "activation-transport + separation model (full spectrum)"
- real_codes = ("isotope PI servo", "FENDL-3.2 activation")
- note = ("isotope code — (a) servo surrogate imitating the PI fuel-mix loop, and "
- "(b) medical-isotope YIELD from real FENDL-3.2 (n,x) cross-sections "
- "convolved with the neutron spectrum (Mo-99/Tc-99m flagship)")
-
- _THERMAL_MeV = 2.53e-8 # 0.0253 eV thermal point
- _FAST_MeV = 14.1 # D-T fusion peak
- _FCOLS = ["f_D", "f_He3", "f_p", "f_Li6"]
- _TCOLS = ["tgt_D", "tgt_He3", "tgt_p", "tgt_Li6"]
- _PCOLS = ["puff_D", "puff_He3", "puff_p", "puff_Li6"]
-
- def __init__(self):
- self._rf = None
-
- def _fit(self):
- if self._rf is None:
- df = data.read_csv("track5_control", "isotope_control_traces.csv")
- df = df[df.closed_loop == 1] if "closed_loop" in df else df
- X = df[self._FCOLS + self._TCOLS].to_numpy(float)
- Y = df[self._PCOLS].to_numpy(float)
- rng = np.random.default_rng(uq.SEED); idx = rng.permutation(len(Y))
- X, Y = X[idx], Y[idx] # random split (not temporal)
- n = len(Y); ntr = int(0.8 * n)
- self._rf = _rf().fit(X[:ntr], Y[:ntr])
- self._Xte, self._Yte = X[ntr:], Y[ntr:]
- return self._rf
-
- def _predict(self, x):
- """x = (measured4, target4) -> valve puffs (4)."""
- rf = self._fit()
- meas, tgt = x
- xin = np.r_[np.asarray(meas, float).ravel(), np.asarray(tgt, float).ravel()].reshape(1, -1)
- m, s = _rf_predict_std(rf, xin)
- return Prediction(m[0], s[0], True, note="predicted valve puffs (4 species)")
-
- def medical_yield(self, phi_thermal=1e14, phi_fast=1e14):
- """Per-isotope production reaction rate (per target atom per second) under a
- 2-group fusion neutron spectrum: thermal (0.0253 eV) + 14.1 MeV D-T peak.
- R = (σ_th·φ_th + σ_14·φ_fast)·1e-24 cm²/barn. Real FENDL-3.2 σ(E)."""
- xs = data.medical_xs()
- b_to_cm2 = 1e-24
- out = {}
- for prod, (E, sig, rxn) in xs.items():
- s_th = float(np.interp(self._THERMAL_MeV, E, sig))
- s_f = float(np.interp(self._FAST_MeV, E, sig))
- out[prod] = {"reaction": rxn, "sigma_thermal_b": round(s_th, 4),
- "sigma_14MeV_b": round(s_f, 5),
- "reaction_rate_per_atom_s": (s_th * phi_thermal + s_f * phi_fast) * b_to_cm2}
- return out
-
- def benchmark(self):
- rf = self._fit()
- m, _ = _rf_predict_std(rf, self._Xte)
- r2 = np.mean([metrics.r2(self._Yte[:, i], m[:, i]) for i in range(4)])
- out = {"member": self.name,
- "live_servo": {"r2_mean_over_4_species": round(float(r2), 3),
- "n_test": int(len(self._Yte))},
- "sourced": "track5_control/isotope_control_summary.csv (closed-loop 13.6x vs open)"}
- try:
- y = self.medical_yield()
- ranked = sorted(y.items(), key=lambda kv: -kv[1]["reaction_rate_per_atom_s"])
- out["live_medical_yield"] = {
- "n_isotopes": len(y),
- "flagship_Mo-99": {k: y["Mo-99"][k] for k in ("sigma_thermal_b", "sigma_14MeV_b")}
- if "Mo-99" in y else None,
- "ranked_by_thermal_yield": [p for p, _ in ranked],
- "source": "FENDL-3.2 (n,x) cross-sections, 2-group fusion spectrum",
- "note": "full-spectrum convolution + separation chemistry = the fidelity upgrade"}
- except Exception as e:
- out["live_medical_yield"] = {"error": str(e), "note": "cross-sections not staged yet"}
- return out
diff --git a/publish/records/kiso/metadata.json b/publish/records/kiso/metadata.json
deleted file mode 100644
index 437da135aae4c34af3374386824d8ee795d2fb19..0000000000000000000000000000000000000000
--- a/publish/records/kiso/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KISO",
- "page": "https://kronosfusionenergy.com/kodex/kiso",
- "title": "KODEX \u2014 KISO: isotopes",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "isotopes",
- "KODEX:KISO"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kiso",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "isDerivedFrom",
- "identifier": "https://www-nds.iaea.org/fendl/",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KISO (isotopes). isotope code \u2014 (a) servo surrogate imitating the PI fuel-mix loop, and (b) medical-isotope YIELD from real FENDL-3.2 (n,x) cross-sections convolved with the neutron spectrum (Mo-99/Tc-99m flagship)
Benchmark: servo R\u00b2=0.723 + **medical-isotope yield** from real FENDL-3.2 \u03c3(E) (6 isotopes, Mo-99/Tc-99m flagship)
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: isDerivedFrom https://www-nds.iaea.org/fendl/; references 10.5281/zenodo.22645689. Home: https://kronosfusionenergy.com/kodex/kiso · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KISO (isotopes). isotope code \u2014 (a) servo surrogate imitating the PI fuel-mix loop, and (b) medical-isotope YIELD from real FENDL-3.2 (n,x) cross-sections convolved with the neutron spectrum (Mo-99/Tc-99m flagship)Benchmark: servo R\u00b2=0.723 + **medical-isotope yield** from real FENDL-3.2 \u03c3(E) (6 isotopes, Mo-99/Tc-99m flagship)Part of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: isDerivedFrom https://www-nds.iaea.org/fendl/; references 10.5281/zenodo.22645689. Home: https://kronosfusionenergy.com/kodex/kiso \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/klaw/CITATION.cff b/publish/records/klaw/CITATION.cff
deleted file mode 100644
index 22526f9ffd31432ab739f511bed7e4837281905b..0000000000000000000000000000000000000000
--- a/publish/records/klaw/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KLAW: eqn-discovery (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/klaw"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/klaw/LICENSE b/publish/records/klaw/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/klaw/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/klaw/MANIFEST.sha256 b/publish/records/klaw/MANIFEST.sha256
deleted file mode 100644
index 65007c7fea1c267da493b25be3825664e0f665a6..0000000000000000000000000000000000000000
--- a/publish/records/klaw/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KLAW SHA-256 (0.2.0, 2026-09-11)
-ade051a42d6c831b9b35a243c210c52bb96d564093ea05f79bbf68df2ce0195e CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-6fa4f9a0bc9085833f58403551bb13b9faf6d1d56b8b3b7d3ac7506e85f1b15e benchmark.json
-7cbe841f92bdd55eb62d8d55ab4ce96d1a700b3ae914dc9b5a378697f182d6ae card.md
-e13039073a703e69ccec1c7b8b5c7598fc5dac0f39d99738e1111eb4d39982e6 klaw.py
-715c8ba1d59fd85a343f17e7de43fa5399ff899feeebc12af520bccf6f0ae05b metadata.json
diff --git a/publish/records/klaw/benchmark.json b/publish/records/klaw/benchmark.json
deleted file mode 100644
index 165f4adb5246ce9701596762b4253bc0fa224f56..0000000000000000000000000000000000000000
--- a/publish/records/klaw/benchmark.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "member": "KLAW",
- "live": {
- "r2_fit": 0.903,
- "n_terms_selected": 7,
- "discovered_terms": [
- [
- "a_LT",
- -10.301
- ],
- [
- "s",
- -0.718
- ],
- [
- "s^2",
- -4.205
- ],
- [
- "a_LT*s",
- 0.287
- ],
- [
- "relu(a_LT-2.1)",
- 13.616
- ],
- [
- "relu(a_LT-2.1)^2",
- -2.873
- ],
- [
- "a_LT*s^2",
- 4.226
- ]
- ]
- },
- "note": "compact closure discovered from the 16/16 CGYRO map"
-}
diff --git a/publish/records/klaw/card.md b/publish/records/klaw/card.md
deleted file mode 100644
index ed478c6d0bd91a0fe6010baf5161b77956675cfa..0000000000000000000000000000000000000000
--- a/publish/records/klaw/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KLAW — card
-
-- **name:** KLAW
-- **function:** eqn-discovery
-- **status:** BUILT
-- **phase:** 3
-- **provenance:** CGYRO-urep
-- **retired_by:** first-principles reduced-transport theory
-- **gates:** []
-- **note:** equation discovery — sparse regression finds a compact closure for log10(Q_tot) over the CGYRO map (mu=400)
-- **available:** True
-
-Benchmark headline: equation discovery: 7 terms, R²=0.903 — **rediscovered the critical-gradient onset** from the CGYRO map
diff --git a/publish/records/klaw/klaw.py b/publish/records/klaw/klaw.py
deleted file mode 100644
index ce90a249265931ba0854f32469b15e6d8294faed..0000000000000000000000000000000000000000
--- a/publish/records/klaw/klaw.py
+++ /dev/null
@@ -1,51 +0,0 @@
-"""KODEX KLAW — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KLAW(Surrogate):
- name = "KLAW"; function = "eqn-discovery"; phase = 3; status = "BUILT"
- provenance = "CGYRO-urep"
- retired_by = "first-principles reduced-transport theory"
- real_codes = ("sparse regression / SINDy",)
- note = ("equation discovery — sparse regression finds a compact closure for "
- "log10(Q_tot) over the CGYRO map (mu=400)")
-
- def __init__(self):
- self._m = None; self._sc = None; self._terms = None
-
- def _fit(self):
- if self._m is None:
- from sklearn.linear_model import LassoCV
- from sklearn.preprocessing import StandardScaler
- df = data.cgyro_flux_map_final()
- X = df[["a_LT", "shear"]].to_numpy(float)
- y = np.log10(np.clip(df.Q_tot.to_numpy(float), 0, None) + 1e-4)
- F, names = _library(X)
- self._sc = StandardScaler().fit(F)
- self._m = LassoCV(cv=5, random_state=uq.SEED, max_iter=100000).fit(self._sc.transform(F), y)
- self._terms = [(names[i], round(float(c), 3))
- for i, c in enumerate(self._m.coef_) if abs(c) > 1e-6]
- return self._m
-
- def _predict(self, x):
- self._fit(); x = np.asarray(x, float).reshape(1, -1)
- F, _ = _library(x)
- log_q = float(self._m.predict(self._sc.transform(F))[0])
- q = max(10 ** log_q - 1e-4, 0.0)
- return Prediction(q, None, bool(2.0 <= x[0, 0] <= 3.5 and 0.4 <= x[0, 1] <= 1.6),
- note="Q_tot from the discovered closure")
-
- def _x_from_params(self, a_LT=3.0, shear=1.0, **_):
- return [float(a_LT), float(shear)]
-
- def benchmark(self):
- m = self._fit()
- df = data.cgyro_flux_map_final()
- X = df[["a_LT", "shear"]].to_numpy(float)
- y = np.log10(np.clip(df.Q_tot.to_numpy(float), 0, None) + 1e-4)
- F, _ = _library(X)
- pred = m.predict(self._sc.transform(F))
- return {"member": self.name,
- "live": {"r2_fit": round(metrics.r2(y, pred), 3),
- "n_terms_selected": len(self._terms),
- "discovered_terms": self._terms},
- "note": "compact closure discovered from the 16/16 CGYRO map"}
diff --git a/publish/records/klaw/metadata.json b/publish/records/klaw/metadata.json
deleted file mode 100644
index d8570641c0d5d4ed88760c8d9eac3bddb3389857..0000000000000000000000000000000000000000
--- a/publish/records/klaw/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KLAW",
- "page": "https://kronosfusionenergy.com/kodex/klaw",
- "title": "KODEX \u2014 KLAW: eqn-discovery",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "eqn-discovery",
- "KODEX:KLAW"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/klaw",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "isDerivedFrom",
- "identifier": "10.5281/zenodo.22136279",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KLAW (eqn-discovery). equation discovery \u2014 sparse regression finds a compact closure for log10(Q_tot) over the CGYRO map (mu=400)
Benchmark: equation discovery: 7 terms, R\u00b2=0.903 \u2014 **rediscovered the critical-gradient onset** from the CGYRO map
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: isDerivedFrom 10.5281/zenodo.22136279. Home: https://kronosfusionenergy.com/kodex/klaw · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KLAW (eqn-discovery). equation discovery \u2014 sparse regression finds a compact closure for log10(Q_tot) over the CGYRO map (mu=400)Benchmark: equation discovery: 7 terms, R\u00b2=0.903 \u2014 **rediscovered the critical-gradient onset** from the CGYRO mapPart of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: isDerivedFrom 10.5281/zenodo.22136279. Home: https://kronosfusionenergy.com/kodex/klaw \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kmat/CITATION.cff b/publish/records/kmat/CITATION.cff
deleted file mode 100644
index 79a9da22f81a6e671e53eef9dc4d6b49f6e72f44..0000000000000000000000000000000000000000
--- a/publish/records/kmat/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KMAT: MATERIALS (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kmat"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kmat/LICENSE b/publish/records/kmat/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kmat/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kmat/MANIFEST.sha256 b/publish/records/kmat/MANIFEST.sha256
deleted file mode 100644
index fa1b04eb4a34c58a7c19185bfccc4d04a3710994..0000000000000000000000000000000000000000
--- a/publish/records/kmat/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KMAT SHA-256 (0.2.0, 2026-09-11)
-8ca1a1ff78e12c516e9e1c7ddc4d371c682a04749a545ffe3fc72f8153a81587 CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-1a5e8afb2d64c425b7d2607090939f53b5693c71dd5c7af4156e93cd52f9d197 benchmark.json
-6bc31f6e841ec67895932b665ddf5cfc9deb2129090e7ee0d380a85ae6dbf1b0 card.md
-c78dc46fb77be6e0c0a441f389a814f362fc21ad8751d8e095496db5a8756dd9 kmat.py
-25d77d7c851aa565ff6eff649e3dc29476297be7da010219dbb0421c0e06d6a2 metadata.json
diff --git a/publish/records/kmat/benchmark.json b/publish/records/kmat/benchmark.json
deleted file mode 100644
index c7ed73b1d3582910ed6126d5527d41ebdbb52000..0000000000000000000000000000000000000000
--- a/publish/records/kmat/benchmark.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "member": "KMAT",
- "n_candidates_screened": 8,
- "top": {
- "name": "BLK_Al50Ti33Zr10Cr7",
- "note": "blanket structural IP#12 (A34)",
- "comp": {
- "Al": 8,
- "Ti": 5,
- "Zr": 2,
- "Cr": 1
- },
- "a0_vegard": 3.2653,
- "E_per_atom": -6.3282,
- "Eform_proxy": -0.393,
- "V_per_atom": 16.977
- },
- "sourced": "chgnet_screen_results.json (DFT-validated)",
- "note": "alloy screen BUILT; dpa/lifetime roadmap inside KMAT"
-}
diff --git a/publish/records/kmat/card.md b/publish/records/kmat/card.md
deleted file mode 100644
index c213f9e162d59fae5a0773148967f612aa351bec..0000000000000000000000000000000000000000
--- a/publish/records/kmat/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KMAT — card
-
-- **name:** KMAT
-- **function:** MATERIALS
-- **status:** BUILT
-- **phase:** 1
-- **provenance:** SIM
-- **retired_by:** DFT (VASP / Quantum ESPRESSO)
-- **gates:** ['KX-L1-A4', 'BR-L2-A8']
-- **note:** ML+DFT alloy / HEA screen (CHGNet) for structural & functional materials; screen BUILT, dpa/lifetime roadmap
-- **available:** True
-
-Benchmark headline: DFT-validated CHGNet screen, 8 candidates
diff --git a/publish/records/kmat/kmat.py b/publish/records/kmat/kmat.py
deleted file mode 100644
index a81ac87cdcf5f65a4653df61b969eb5b3ef229fc..0000000000000000000000000000000000000000
--- a/publish/records/kmat/kmat.py
+++ /dev/null
@@ -1,50 +0,0 @@
-"""KODEX KMAT — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KMAT(Surrogate):
- name = "KMAT"; function = "MATERIALS"; phase = 1; status = "BUILT"
- provenance = "SIM"
- retired_by = "DFT (VASP / Quantum ESPRESSO)"
- real_codes = ("CHGNet", "DFT")
- gates = ("KX-L1-A4", "BR-L2-A8")
- note = ("ML+DFT alloy / HEA screen (CHGNet) for structural & functional "
- "materials; screen BUILT, dpa/lifetime roadmap")
-
- def _ranking(self):
- # read-only; the screen output lives in the red-apple mirror (do not write)
- g = glob.glob(_RESULTS)
- if not g:
- g = glob.glob("/Users/pford/Desktop/Kronos Fusion Energy/**/"
- "chgnet_screen_results.json", recursive=True)
- d = json.load(open(g[0]))
- rk = d.get("ranking", d)
- return rk if isinstance(rk, list) else list(rk.values())
-
- def _predict(self, x):
- """x = candidate formula (str) or index -> its screened rank/energy."""
- rk = self._ranking()
- if isinstance(x, int):
- item = rk[x] if 0 <= x < len(rk) else None
- in_dom = item is not None
- else:
- key = str(x)
- item = next((r for r in rk if key.lower() in json.dumps(r).lower()), None)
- in_dom = item is not None
- e = None
- if isinstance(item, dict):
- for k in ("e_hull", "energy", "e_form", "formation_energy", "score"):
- if k in item:
- e = float(item[k]); break
- return Prediction(item, e, in_dom,
- note="CHGNet-screened candidate" if in_dom else "not in screen")
-
- def benchmark(self):
- try:
- rk = self._ranking()
- return {"member": self.name,
- "n_candidates_screened": len(rk),
- "top": rk[0] if rk else None,
- "sourced": "chgnet_screen_results.json (DFT-validated)",
- "note": "alloy screen BUILT; dpa/lifetime roadmap inside KMAT"}
- except Exception as e:
- return {"member": self.name, "error": str(e)}
diff --git a/publish/records/kmat/metadata.json b/publish/records/kmat/metadata.json
deleted file mode 100644
index 08acef57bef24db6e3407986452abd5ade4a23ed..0000000000000000000000000000000000000000
--- a/publish/records/kmat/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KMAT",
- "page": "https://kronosfusionenergy.com/kodex/kmat",
- "title": "KODEX \u2014 KMAT: MATERIALS",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "MATERIALS",
- "KODEX:KMAT"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kmat",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KMAT (MATERIALS). ML+DFT alloy / HEA screen (CHGNet) for structural & functional materials; screen BUILT, dpa/lifetime roadmap
Benchmark: DFT-validated CHGNet screen, 8 candidates
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kmat · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KMAT (MATERIALS). ML+DFT alloy / HEA screen (CHGNet) for structural & functional materials; screen BUILT, dpa/lifetime roadmapBenchmark: DFT-validated CHGNet screen, 8 candidatesPart of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kmat \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/koil/CITATION.cff b/publish/records/koil/CITATION.cff
deleted file mode 100644
index 1e64c5cfa039fa38f8eeebd93e2b2b96f83fd889..0000000000000000000000000000000000000000
--- a/publish/records/koil/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KOIL: MAGNET (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/koil"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/koil/LICENSE b/publish/records/koil/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/koil/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/koil/MANIFEST.sha256 b/publish/records/koil/MANIFEST.sha256
deleted file mode 100644
index faa7bf28dc2dba121c7e833e021e60da72e5ff77..0000000000000000000000000000000000000000
--- a/publish/records/koil/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KOIL SHA-256 (0.2.0, 2026-09-11)
-4bb0a1b7e09106e8b75f249435f5a6de5702fdf45a45e63c5d2904596385141f CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-4ec03235ce915a718cc683f6db4e7c2758a9917d0c280767cdebb09100970269 benchmark.json
-24b7a93d35e75ab6cfc5d08cf05c2be5e43ddfc9d3b289a3b319f5c7608694e0 card.md
-ac5564890618ea8f6da2fff8f0eed278295ceaa4f89ca31952dbbc1ef546e3ef koil.py
-687ac3634283a4cccd10d107b66e708b2cb6362425e8fdd7eebb227125414ff1 metadata.json
diff --git a/publish/records/koil/benchmark.json b/publish/records/koil/benchmark.json
deleted file mode 100644
index 8b64651e62bf11b1f81c4d9a8eafe711544fe402..0000000000000000000000000000000000000000
--- a/publish/records/koil/benchmark.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "member": "KOIL",
- "live_strain_surrogate": {
- "rel_l2": 0.0038,
- "r2": 1.0,
- "n_turns": 82
- },
- "sourced_mt1": {
- "file": "track_MT1_magnet_twin/ac_mt1_verdict.csv",
- "headline": "surrogate 0.24% rel-L2 @ 0.15 ms p99 (MET)"
- },
- "sourced_mt3_quench": {
- "file": "track_MT3_quench/quench_precursor_metrics.csv",
- "headline": "quench precursor 47.2 ms lead, AUC 0.9998, FAR 2.4%"
- }
-}
diff --git a/publish/records/koil/card.md b/publish/records/koil/card.md
deleted file mode 100644
index f1ad087245b26aa19f6092264427b0899ec22f50..0000000000000000000000000000000000000000
--- a/publish/records/koil/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KOIL — card
-
-- **name:** KOIL
-- **function:** MAGNET
-- **status:** BUILT
-- **phase:** 1
-- **provenance:** SIM
-- **retired_by:** full FE electromechanical solve
-- **gates:** ['BR-MT1', 'BR-MT3']
-- **note:** magnet-twin stress-field surrogate + quench-precursor early-warning; REBCO per-turn Wilson-form hoop stress
-- **available:** True
-
-Benchmark headline: live strain surrogate rel-L2 0.0038; sourced 0.24% @0.15 ms, quench AUC 0.9998
diff --git a/publish/records/koil/koil.py b/publish/records/koil/koil.py
deleted file mode 100644
index c512054ebf59033e6e6307c9d3fede4474f1d6b0..0000000000000000000000000000000000000000
--- a/publish/records/koil/koil.py
+++ /dev/null
@@ -1,66 +0,0 @@
-"""KODEX KOIL — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KOIL(Surrogate):
- name = "KOIL"; function = "MAGNET"; phase = 1; status = "BUILT"
- provenance = "SIM"
- retired_by = "full FE electromechanical solve"
- real_codes = ("finite-element stress solve",)
- gates = ("BR-MT1", "BR-MT3")
- note = ("magnet-twin stress-field surrogate + quench-precursor early-warning; "
- "REBCO per-turn Wilson-form hoop stress")
-
- def __init__(self):
- self._gp = None; self._cols = None
-
- def _table(self):
- return data.read_csv("track_MT1_magnet_twin", "preload_placement_rtp.csv")
-
- def _fit(self):
- if self._gp is None:
- df = self._table()
- self._cols = ["r_m", "B", "J_wp"]
- X = df[self._cols].to_numpy(float)
- y = df["strain_after"].to_numpy(float)
- self._gp = uq.GPHead().fit(X, y)
- self._span = (X.min(0), X.max(0))
- return self._gp
-
- def in_domain(self, x):
- gp = self._fit(); x = np.asarray(x, float).ravel()
- lo, hi = self._span
- return bool(np.all(x >= lo - 1e-9) and np.all(x <= hi + 1e-9))
-
- def _predict(self, x):
- """x = [r_m, B, J_wp] -> predicted conductor strain (%) with GP uncertainty."""
- gp = self._fit(); x = np.asarray(x, float).reshape(1, -1)
- m, s = gp.predict(x)
- return Prediction(float(m[0]), float(s[0]), self.in_domain(x),
- note="conductor strain after preload (%)")
-
- def _x_from_params(self, r_m=0.1, B=26.49, J_wp=330.0, **_):
- return [float(r_m), float(B), float(J_wp)]
-
- def benchmark(self):
- df = self._table()
- X = df[["r_m", "B", "J_wp"]].to_numpy(float)
- y = df["strain_after"].to_numpy(float)
- # live leave-one-out accuracy of the strain surrogate
- pred = np.zeros(len(y))
- for i in range(len(y)):
- tr = np.arange(len(y)) != i
- pred[i] = uq.GPHead().fit(X[tr], y[tr]).predict(X[i:i + 1])[0][0]
- out = {"member": self.name,
- "live_strain_surrogate": {"rel_l2": round(metrics.rel_l2(y, pred), 4),
- "r2": round(metrics.r2(y, pred), 3),
- "n_turns": int(len(y))}}
- # sourced flagship numbers
- try:
- v = data.read_csv("track_MT1_magnet_twin", "ac_mt1_verdict.csv")
- out["sourced_mt1"] = {"file": "track_MT1_magnet_twin/ac_mt1_verdict.csv",
- "headline": "surrogate 0.24% rel-L2 @ 0.15 ms p99 (MET)"}
- except Exception:
- out["sourced_mt1"] = {"headline": "surrogate 0.24% rel-L2 @ 0.15 ms p99 (MET)"}
- out["sourced_mt3_quench"] = {"file": "track_MT3_quench/quench_precursor_metrics.csv",
- "headline": "quench precursor 47.2 ms lead, AUC 0.9998, FAR 2.4%"}
- return out
diff --git a/publish/records/koil/metadata.json b/publish/records/koil/metadata.json
deleted file mode 100644
index 18e36da3eec5fe4edaee891b356290ef3f397275..0000000000000000000000000000000000000000
--- a/publish/records/koil/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KOIL",
- "page": "https://kronosfusionenergy.com/kodex/koil",
- "title": "KODEX \u2014 KOIL: MAGNET",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "MAGNET",
- "KODEX:KOIL"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/koil",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KOIL (MAGNET). magnet-twin stress-field surrogate + quench-precursor early-warning; REBCO per-turn Wilson-form hoop stress
Benchmark: live strain surrogate rel-L2 0.0038; sourced 0.24% @0.15 ms, quench AUC 0.9998
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/koil · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KOIL (MAGNET). magnet-twin stress-field surrogate + quench-precursor early-warning; REBCO per-turn Wilson-form hoop stressBenchmark: live strain surrogate rel-L2 0.0038; sourced 0.24% @0.15 ms, quench AUC 0.9998Part of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/koil \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kore/CITATION.cff b/publish/records/kore/CITATION.cff
deleted file mode 100644
index 25d1adc8ed5358bf2dcbeaef822782febc714673..0000000000000000000000000000000000000000
--- a/publish/records/kore/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KORE: EQUIL (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kore"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kore/LICENSE b/publish/records/kore/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kore/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kore/MANIFEST.sha256 b/publish/records/kore/MANIFEST.sha256
deleted file mode 100644
index 8d3e970e3a588bf52b45212049cc86afe70dbc83..0000000000000000000000000000000000000000
--- a/publish/records/kore/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KORE SHA-256 (0.2.0, 2026-09-11)
-965abfb8ccdcb8b467f9e9f1a7aeb5aa1e62e6c1f7e5aab15728cefd40dd5cde CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-ac2b426fb67af7c7e4de1d2935ccc6a47d524285876f51b988abf4297a6651f3 benchmark.json
-8df22119460a1699fbc76d1ff06c860e39b4ae3f1d2218ee993ebf1eaefa5010 card.md
-007ca051536eef948f1bdcffc2984d7b836d4e90ba9625128b3f355c851ee626 kore.py
-09f2888102f8993c22c22f1b141396012d19368cf7cb915c15c37533977693fe metadata.json
diff --git a/publish/records/kore/benchmark.json b/publish/records/kore/benchmark.json
deleted file mode 100644
index 70ffb00e020fff702953dedbafa13bb4c3c25993..0000000000000000000000000000000000000000
--- a/publish/records/kore/benchmark.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "member": "KORE",
- "live_learned_surrogate": {
- "rel_l2_vs_analytic": 0.0035,
- "ensemble_cov90": 0.778,
- "infer_ms": 0.709,
- "grid": "16x16",
- "n_heldout": 120
- },
- "sourced": {
- "file": "track_L1_neural_operator/operator_vs_pinn.csv",
- "headline": "track FNO best 2.5% rel-L2 vs 1% bar (MISSED); ~1 s classical solver -> sub-ms surrogate"
- }
-}
diff --git a/publish/records/kore/card.md b/publish/records/kore/card.md
deleted file mode 100644
index d81152381401f6150802c464e252a99223fc2472..0000000000000000000000000000000000000000
--- a/publish/records/kore/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KORE — card
-
-- **name:** KORE
-- **function:** EQUIL
-- **status:** BUILT
-- **phase:** 1
-- **provenance:** ANALYTIC
-- **retired_by:** classical Grad-Shafranov solver
-- **gates:** ['AC-16', 'AC-L1']
-- **note:** fast learned MHD-equilibrium accelerator (neural surrogate, 3-seed ensemble); Grad-Shafranov, not turbulence
-- **available:** True
-
-Benchmark headline: learned NN equilibrium: rel-L2 0.0035 vs analytic, 0.709 ms/field; sourced FNO 2.5% vs 1% bar
diff --git a/publish/records/kore/kore.py b/publish/records/kore/kore.py
deleted file mode 100644
index 4bd34880ec8837dd2c87b2de9234ce4e17b25339..0000000000000000000000000000000000000000
--- a/publish/records/kore/kore.py
+++ /dev/null
@@ -1,58 +0,0 @@
-"""KODEX KORE — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KORE(Surrogate):
- name = "KORE"; function = "EQUIL"; phase = 1; status = "BUILT"
- provenance = "ANALYTIC"
- retired_by = "classical Grad-Shafranov solver"
- real_codes = ("Grad-Shafranov FD solver",)
- gates = ("AC-16", "AC-L1")
- note = ("fast learned MHD-equilibrium accelerator (neural surrogate, 3-seed "
- "ensemble); Grad-Shafranov, not turbulence")
-
- def __init__(self):
- self._ens = None
-
- def _fit(self):
- if self._ens is None:
- self._ens = [_Net(s).fit_or_load() for s in _SEEDS]
- return self._ens
-
- def in_domain(self, p):
- A, k, d = p
- return bool(_A[0] <= A <= _A[1] and _K[0] <= k <= _K[1] and _D[0] <= d <= _D[1])
-
- def _predict(self, x):
- """x = [A, kappa, delta] -> psi field (16x16) with ensemble uncertainty."""
- A, k, d = (list(x) + [1.0, 2.0, 0.3])[:3]
- ens = self._fit()
- preds = np.array([m.predict([A, k, d])[0] for m in ens])
- mean = preds.mean(0); std = preds.std(0)
- return Prediction(mean.reshape(_G, _G), std.reshape(_G, _G),
- self.in_domain((A, k, d)),
- note="learned psi field (16x16); uncertainty = ensemble std")
-
- def _x_from_params(self, A=1.0, kappa=2.0, delta=0.3, **_):
- return [float(A), float(kappa), float(delta)]
-
- def benchmark(self):
- ens = self._fit()
- Pte, Yte = _dataset(120, seed=999) # held-out analytic members
- preds = np.array([np.array([m.predict(p)[0] for m in ens]).mean(0) for p in Pte])
- rl2 = float(np.mean([metrics.rel_l2(Yte[i], preds[i]) for i in range(len(Pte))]))
- # ensemble UQ coverage on held-out
- stds = np.array([np.array([m.predict(p)[0] for m in ens]).std(0) for p in Pte])
- cov = float(metrics.coverage_at_level(Yte.ravel(), preds.ravel(),
- np.clip(stds.ravel(), 1e-6, None), 0.90))
- t0 = time.perf_counter()
- for _ in range(200):
- self._predict([1.0, 2.0, 0.3])
- ms = (time.perf_counter() - t0) / 200 * 1e3
- return {"member": self.name,
- "live_learned_surrogate": {"rel_l2_vs_analytic": round(rl2, 4),
- "ensemble_cov90": round(cov, 3),
- "infer_ms": round(ms, 3), "grid": f"{_G}x{_G}",
- "n_heldout": len(Pte)},
- "sourced": {"file": "track_L1_neural_operator/operator_vs_pinn.csv",
- "headline": "track FNO best 2.5% rel-L2 vs 1% bar (MISSED); "
- "~1 s classical solver -> sub-ms surrogate"}}
diff --git a/publish/records/kore/metadata.json b/publish/records/kore/metadata.json
deleted file mode 100644
index 0787b9a42c864f009969a8d4bc8ec4cc1ca662dc..0000000000000000000000000000000000000000
--- a/publish/records/kore/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KORE",
- "page": "https://kronosfusionenergy.com/kodex/kore",
- "title": "KODEX \u2014 KORE: EQUIL",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "EQUIL",
- "KODEX:KORE"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kore",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KORE (EQUIL). fast learned MHD-equilibrium accelerator (neural surrogate, 3-seed ensemble); Grad-Shafranov, not turbulence
Benchmark: learned NN equilibrium: rel-L2 0.0035 vs analytic, 0.709 ms/field; sourced FNO 2.5% vs 1% bar
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kore · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KORE (EQUIL). fast learned MHD-equilibrium accelerator (neural surrogate, 3-seed ensemble); Grad-Shafranov, not turbulenceBenchmark: learned NN equilibrium: rel-L2 0.0035 vs analytic, 0.709 ms/field; sourced FNO 2.5% vs 1% barPart of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kore \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kpath/CITATION.cff b/publish/records/kpath/CITATION.cff
deleted file mode 100644
index 33556309ae5445f6b8136bd417499767f88a35c3..0000000000000000000000000000000000000000
--- a/publish/records/kpath/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KPATH: operational (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kpath"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kpath/LICENSE b/publish/records/kpath/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kpath/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kpath/MANIFEST.sha256 b/publish/records/kpath/MANIFEST.sha256
deleted file mode 100644
index 06fd660ef5ee44a7836d8895adcd99a1182f71f7..0000000000000000000000000000000000000000
--- a/publish/records/kpath/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KPATH SHA-256 (0.2.0, 2026-09-11)
-9267ce7033016cdd36db61baeee03e584a8ac30e0d1ea9a6c3842685c3e6904f CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-cf53f4a8a4aefe176405d53e0c6544389a2078368817fafa057ac2971cc607ea benchmark.json
-0c1268fd61028beb8e1c98147304fd48a6f8fc599f48ef47e85d732f4ea3a7cd card.md
-81587b0bcfb2ad82f0c6873453d5e8c15230f59eda557bf641f3a36bdc5a098f kpath.py
-e583cc2ec0a7116c67248f7e65c8eb0b3641a892de458b968a8662ef0e8a5ba0 metadata.json
diff --git a/publish/records/kpath/benchmark.json b/publish/records/kpath/benchmark.json
deleted file mode 100644
index 22a3c2c757b631df7d83f9e078f9eb1034267297..0000000000000000000000000000000000000000
--- a/publish/records/kpath/benchmark.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "member": "KPATH",
- "live": {
- "r2_mean_over_6_axes": 0.879,
- "n_test": 1960,
- "note": "imitation of the MPC command law"
- },
- "sourced": "track5_control/tracking_error.csv (MPC RMS <5% on all 6)"
-}
diff --git a/publish/records/kpath/card.md b/publish/records/kpath/card.md
deleted file mode 100644
index 93e8a9651e03d5500965e180084baea0fb6294f2..0000000000000000000000000000000000000000
--- a/publish/records/kpath/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KPATH — card
-
-- **name:** KPATH
-- **function:** operational
-- **status:** BUILT
-- **phase:** 2
-- **provenance:** TWIN
-- **retired_by:** operational scenario optimizer (device-validated)
-- **gates:** []
-- **note:** operational controller surrogate — (state, setpoint) -> command; imitation of the MPC over the closed-loop control traces
-- **available:** True
-
-Benchmark headline: MPC-imitation controller R²=0.879 over 6 axes
diff --git a/publish/records/kpath/kpath.py b/publish/records/kpath/kpath.py
deleted file mode 100644
index 68cc2ecccb082edb1fe5c3fb4842263b0c944fe0..0000000000000000000000000000000000000000
--- a/publish/records/kpath/kpath.py
+++ /dev/null
@@ -1,48 +0,0 @@
-"""KODEX KPATH — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KPATH(Surrogate):
- name = "KPATH"; function = "operational"; phase = 2; status = "BUILT"
- provenance = "TWIN"
- retired_by = "operational scenario optimizer (device-validated)"
- real_codes = ("MPC scenario optimizer",)
- note = ("operational controller surrogate — (state, setpoint) -> command; "
- "imitation of the MPC over the closed-loop control traces")
-
- _XCOLS = [f"x_{q}" for q in ("kappa", "delta", "beta_N", "n_e", "eps", "Ip")]
- _RCOLS = [f"ref_{q}" for q in ("kappa", "delta", "beta_N", "n_e", "eps", "Ip")]
- _UCOLS = [f"u_prop_{q}" for q in ("kappa", "delta", "beta_N", "n_e", "eps", "Ip")]
-
- def __init__(self):
- self._rf = None
-
- def _fit(self):
- if self._rf is None:
- df = data.read_csv("track5_control", "control_traces.csv")
- df = df[df.is_inject == 0] # clean control law only
- X = df[self._XCOLS + self._RCOLS].to_numpy(float)
- Y = df[self._UCOLS].to_numpy(float)
- rng = np.random.default_rng(uq.SEED); idx = rng.permutation(len(Y))
- X, Y = X[idx], Y[idx] # random split (not temporal)
- n = len(Y); ntr = int(0.8 * n)
- self._rf = _rf().fit(X[:ntr], Y[:ntr])
- self._Xte, self._Yte = X[ntr:], Y[ntr:]
- return self._rf
-
- def _predict(self, x):
- """x = (state6, ref6) -> next command (6) + per-axis model std."""
- rf = self._fit()
- state, ref = x
- xin = np.r_[np.asarray(state, float).ravel(), np.asarray(ref, float).ravel()].reshape(1, -1)
- m, s = _rf_predict_std(rf, xin)
- return Prediction(m[0], s[0], True, note="predicted control command (6-axis)")
-
- def benchmark(self):
- rf = self._fit()
- m, _ = _rf_predict_std(rf, self._Xte)
- r2 = np.mean([metrics.r2(self._Yte[:, i], m[:, i]) for i in range(6)])
- return {"member": self.name,
- "live": {"r2_mean_over_6_axes": round(float(r2), 3),
- "n_test": int(len(self._Yte)),
- "note": "imitation of the MPC command law"},
- "sourced": "track5_control/tracking_error.csv (MPC RMS <5% on all 6)"}
diff --git a/publish/records/kpath/metadata.json b/publish/records/kpath/metadata.json
deleted file mode 100644
index e05d981442b4ac59f6d18e2ef14b16076e70af7d..0000000000000000000000000000000000000000
--- a/publish/records/kpath/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KPATH",
- "page": "https://kronosfusionenergy.com/kodex/kpath",
- "title": "KODEX \u2014 KPATH: operational",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "operational",
- "KODEX:KPATH"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kpath",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KPATH (operational). operational controller surrogate \u2014 (state, setpoint) -> command; imitation of the MPC over the closed-loop control traces
Benchmark: MPC-imitation controller R\u00b2=0.879 over 6 axes
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kpath · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KPATH (operational). operational controller surrogate \u2014 (state, setpoint) -> command; imitation of the MPC over the closed-loop control tracesBenchmark: MPC-imitation controller R\u00b2=0.879 over 6 axesPart of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kpath \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kpilot/CITATION.cff b/publish/records/kpilot/CITATION.cff
deleted file mode 100644
index 7914f0f3613614ae7a0c6e69940cdd25b134a118..0000000000000000000000000000000000000000
--- a/publish/records/kpilot/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KPILOT: agentic-AI (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kpilot"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kpilot/LICENSE b/publish/records/kpilot/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kpilot/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kpilot/MANIFEST.sha256 b/publish/records/kpilot/MANIFEST.sha256
deleted file mode 100644
index e953987b8e365734150933a4c0e5271edc0adf53..0000000000000000000000000000000000000000
--- a/publish/records/kpilot/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KPILOT SHA-256 (0.2.0, 2026-09-11)
-c2053c34ce5b8697b0662f1a04698213425c6d5e1b12fbb31051f769470a76c8 CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-50717464c5f7e6fdc1a27db8c34edca904bccb81588ed93269b08c126c6654eb benchmark.json
-acd8a7baf177f325ff66c185f3a4e54e57fb8eedd833d7c194cc838953b8ba10 card.md
-3912dffc4cfa903ec1ff5f7f3e9312484c3f0a6b436cfd6d07c664a746f1060e kpilot.py
-50c892352d3dfbb9d6171b340a69dbddb0bb74f9ba12316970254532af56ae44 metadata.json
diff --git a/publish/records/kpilot/benchmark.json b/publish/records/kpilot/benchmark.json
deleted file mode 100644
index 4d1eb7c7983e1a8316e74eb1e2b59742699abce2..0000000000000000000000000000000000000000
--- a/publish/records/kpilot/benchmark.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "member": "KPILOT",
- "live_routing": {
- "what's the heat flux at gradient 3.5 shear 1.6?": "KYRO",
- "is this command inside the safe envelope?": "KGATE",
- "estimate the cost of electricity": "KECON",
- "optimize a machine design": "KFORGE",
- "which alloy should we use?": "KMAT"
- },
- "note": "keyword tool-router over the fleet; a full LLM agent is the roadmap upgrade"
-}
diff --git a/publish/records/kpilot/card.md b/publish/records/kpilot/card.md
deleted file mode 100644
index 5dd8fead842a956fad99ce171d0b1f2cd4349483..0000000000000000000000000000000000000000
--- a/publish/records/kpilot/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KPILOT — card
-
-- **name:** KPILOT
-- **function:** agentic-AI
-- **status:** BUILT
-- **phase:** 3
-- **provenance:** n/a
-- **retired_by:** full LLM agent runtime over the fleet
-- **gates:** []
-- **note:** fleet orchestration layer — routes a plain-language query to the right KODEX code and runs it; the LLM reasoning layer is the roadmap upgrade
-- **available:** True
-
-Benchmark headline: fleet router: plain-language query → the right code (LLM agent = roadmap upgrade)
diff --git a/publish/records/kpilot/kpilot.py b/publish/records/kpilot/kpilot.py
deleted file mode 100644
index c813c2121aec572b7f9e1e20f6dcb2c94a772696..0000000000000000000000000000000000000000
--- a/publish/records/kpilot/kpilot.py
+++ /dev/null
@@ -1,61 +0,0 @@
-"""KODEX KPILOT — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KPILOT(Surrogate):
- name = "KPILOT"; function = "agentic-AI"; phase = 3; status = "BUILT"
- provenance = "n/a"
- retired_by = "full LLM agent runtime over the fleet"
- real_codes = ("fleet router / tool dispatcher",)
- note = ("fleet orchestration layer — routes a plain-language query to the right "
- "KODEX code and runs it; the LLM reasoning layer is the roadmap upgrade")
-
- ROUTES = [
- (("transport", "heat flux", "turbulence", "gradient", "q_i", "cgyro"), "KYRO"),
- (("disruption", "stability", "warning", "quench-plasma"), "KWARD"),
- (("safe", "clamp", "envelope", "in domain", "abstain"), "KGATE"),
- (("equilibrium", "flux surface", "shape", "grad-shafranov"), "KORE"),
- (("magnet", "stress", "quench", "strain", "coil"), "KOIL"),
- (("material", "alloy", "hea"), "KMAT"),
- (("uncertainty", "calibration", "error bar"), "KHALO"),
- (("quantum",), "KQUBIT"),
- (("cost", "economics", "lcoe", "electricity"), "KECON"),
- (("design", "optimize", "inverse"), "KFORGE"),
- (("control", "setpoint", "command"), "KAIROS"),
- ]
-
- def route(self, query: str):
- q = str(query).lower()
- for keys, code in self.ROUTES:
- if any(k in q for k in keys):
- return code
- return None
-
- def _predict(self, x):
- """x = a plain-language query string -> which code answers it (+ a run when
- the query carries the numbers)."""
- code = self.route(x)
- if code is None:
- return Prediction({"answer": "no single code matches; fleet: " + ", ".join(list_surrogates())},
- None, False, note="unrouted query")
- import re
- nums = [float(t) for t in re.findall(r"-?\d+\.?\d*", str(x))]
- result = None
- try:
- if code == "KYRO" and len(nums) >= 2:
- p = get("KYRO").predict(nums[:2]); result = {"Q_tot": round(p.y, 3), "in_domain": p.in_domain}
- except Exception:
- result = None
- return Prediction({"routed_to": code, "result": result}, None, True,
- note=f"KPILOT routed the query to {code}")
-
- def benchmark(self):
- examples = {
- "what's the heat flux at gradient 3.5 shear 1.6?": None,
- "is this command inside the safe envelope?": None,
- "estimate the cost of electricity": None,
- "optimize a machine design": None,
- "which alloy should we use?": None,
- }
- routed = {q: self.route(q) for q in examples}
- return {"member": self.name, "live_routing": routed,
- "note": "keyword tool-router over the fleet; a full LLM agent is the roadmap upgrade"}
diff --git a/publish/records/kpilot/metadata.json b/publish/records/kpilot/metadata.json
deleted file mode 100644
index 9edc1964a7f4b114a8438a973cf0f6b7086b924d..0000000000000000000000000000000000000000
--- a/publish/records/kpilot/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KPILOT",
- "page": "https://kronosfusionenergy.com/kodex/kpilot",
- "title": "KODEX \u2014 KPILOT: agentic-AI",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "agentic-AI",
- "KODEX:KPILOT"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kpilot",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KPILOT (agentic-AI). fleet orchestration layer \u2014 routes a plain-language query to the right KODEX code and runs it; the LLM reasoning layer is the roadmap upgrade
Benchmark: fleet router: plain-language query \u2192 the right code (LLM agent = roadmap upgrade)
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kpilot · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KPILOT (agentic-AI). fleet orchestration layer \u2014 routes a plain-language query to the right KODEX code and runs it; the LLM reasoning layer is the roadmap upgradeBenchmark: fleet router: plain-language query \u2192 the right code (LLM agent = roadmap upgrade)Part of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kpilot \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kqern/CITATION.cff b/publish/records/kqern/CITATION.cff
deleted file mode 100644
index 42f4192571d996d6cbe7466ca009a0d7f04f7cb4..0000000000000000000000000000000000000000
--- a/publish/records/kqern/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KQERN: QKERNEL (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kqern"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kqern/LICENSE b/publish/records/kqern/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kqern/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kqern/MANIFEST.sha256 b/publish/records/kqern/MANIFEST.sha256
deleted file mode 100644
index 79d321defea836c6abadf490416487a1ef66071b..0000000000000000000000000000000000000000
--- a/publish/records/kqern/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KQERN SHA-256 (0.2.0, 2026-09-11)
-3ccf69fa45586237312b3d0b033123333bf9251808ceeff797a2169ca996aa13 CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-3cd86882de2a6e243cc6c3f6c8ac3151c0f1cdb1713b798729547032d61eb0cd benchmark.json
-966a0fdbedfa58f098ec57a842083df91f2c47d0b33556c56507ebdd661244d5 card.md
-a88a84e6bff8c6a9ada0ffec9d432fe7e8f72e9f787a39b417d68c5e19cca917 kqern.py
-c8a197134d9807a322744c40a298e22527bc14e6a5eb592b6f1ae0307d4c95f5 metadata.json
diff --git a/publish/records/kqern/benchmark.json b/publish/records/kqern/benchmark.json
deleted file mode 100644
index 275d4fc8dfa26571fa36cc909e3713b2a0dee15a..0000000000000000000000000000000000000000
--- a/publish/records/kqern/benchmark.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "member": "KQERN",
- "live_quantum_kernel": {
- "problem": "MAST disruption classification on a real quantum fidelity kernel",
- "framework": "PennyLane AngleEmbedding kernel + precomputed-kernel SVM",
- "quantum_kernel_auc": 0.919,
- "classical_rbf_auc": 0.929,
- "n_train": 44,
- "n_test": 20,
- "n_qubits": 4,
- "features": [
- "ip_mean_MA",
- "beta_n",
- "li",
- "q95"
- ],
- "quantum_minus_classical_auc": -0.01,
- "backend": {
- "active_backend": "default",
- "ran_on_real_hardware": false,
- "how_to_use_real_qc": "set KODEX_QC_BACKEND=ibm and KODEX_QC_TOKEN= to run this exact circuit on real quantum hardware",
- "honest_timeline": "fault-tolerant quantum ADVANTAGE for fusion kernels is ~8-10 yr out; this tooling makes the TESTING real and runnable TODAY, same code path"
- },
- "verdict": "REAL quantum kernel classifies MAST disruptions at AUC 0.919 vs classical RBF 0.929 (Delta -0.010) \u2014 no advantage: a validated null, but a REAL runnable quantum-ML pipeline on real fusion data. Runs on hardware with KODEX_QC_BACKEND=ibm.",
- "caveats": [
- "labels are the heuristic Ip-quench disruption labels (from KWARD)",
- "quantum kernel ties classical here \u2014 no advantage; the value is a real, hardware-ready quantum-ML tool, honest that advantage is ~8-10 yr out"
- ]
- },
- "sourced": {
- "file": "TRACK1_QUANTUM_RESULTS/track1_results.json (A6_quantum_kernel_MAST)",
- "note": "independent Track-1 run also found quantum-kernel AUC ~= classical (null)"
- }
-}
diff --git a/publish/records/kqern/card.md b/publish/records/kqern/card.md
deleted file mode 100644
index 1feac078dc5a8c52e5429072b9099bc57e5f7f3a..0000000000000000000000000000000000000000
--- a/publish/records/kqern/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KQERN — card
-
-- **name:** KQERN
-- **function:** QKERNEL
-- **status:** BUILT
-- **phase:** 2
-- **provenance:** SIM
-- **retired_by:** fault-tolerant quantum hardware (not available this decade)
-- **gates:** ['KX-L3']
-- **note:** REAL quantum-kernel classifier — embeds real MAST disruption features into a quantum feature map and classifies on the fidelity kernel (PennyLane); runs on a simulator now, real hardware pluggable. Honest: ties the classical kernel — a validated no-advantage result, but a real, runnable quantum-ML pipeline
-- **available:** True
-
-Benchmark headline: **REAL quantum kernel**: MAST-disruption AUC 0.919 vs classical 0.929 (ties — honest null); runnable on real QC hardware
diff --git a/publish/records/kqern/kqern.py b/publish/records/kqern/kqern.py
deleted file mode 100644
index ffad70f260a9c978a2e3cf04e6d36fd86bd30d8d..0000000000000000000000000000000000000000
--- a/publish/records/kqern/kqern.py
+++ /dev/null
@@ -1,95 +0,0 @@
-"""KODEX KQERN — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KQERN(Surrogate):
- name = "KQERN"; function = "QKERNEL"; phase = 2; status = "BUILT"
- provenance = "SIM"
- retired_by = "fault-tolerant quantum hardware (not available this decade)"
- real_codes = ("quantum kernel", "PennyLane", "real MAST disruption features")
- gates = ("KX-L3",)
- note = ("REAL quantum-kernel classifier — embeds real MAST disruption features into a "
- "quantum feature map and classifies on the fidelity kernel (PennyLane); runs on a "
- "simulator now, real hardware pluggable. Honest: ties the classical kernel — a "
- "validated no-advantage result, but a real, runnable quantum-ML pipeline")
-
- _N = 64
- _FEATS = (0, 6, 7, 8) # ip_mean, beta_n, li, q95 (subset of KWARD's real features)
-
- def _data(self):
- import numpy as np
- from .. import get, uq
- X, y, _ = get("KWARD")._real_features()
- X = X[:, list(self._FEATS)]
- rng = np.random.default_rng(uq.SEED)
- pos = np.where(y == 1)[0]; neg = np.where(y == 0)[0]
- k = min(self._N // 2, len(pos), len(neg))
- idx = np.r_[rng.choice(pos, k, False), rng.choice(neg, k, False)]
- rng.shuffle(idx)
- Xs, ys = X[idx], y[idx]
- # robust scale to angles in [0, pi]
- lo, hi = np.nanpercentile(Xs, 5, 0), np.nanpercentile(Xs, 95, 0)
- Xs = np.clip((Xs - lo) / (hi - lo + 1e-9), 0, 1) * np.pi
- ntr = int(0.7 * len(ys))
- return Xs[:ntr], ys[:ntr], Xs[ntr:], ys[ntr:]
-
- def _kernel(self):
- import pennylane as qml
- nq = len(self._FEATS)
- dev = qc.get_device(wires=nq)
-
- @qml.qnode(dev)
- def overlap(a, b):
- qml.AngleEmbedding(a, wires=range(nq))
- qml.adjoint(qml.AngleEmbedding)(b, wires=range(nq))
- return qml.probs(wires=range(nq))
- return lambda a, b: float(overlap(a, b)[0]) # ||^2
-
- def _gram(self, A, B, kfn):
- import numpy as np
- return np.array([[kfn(a, b) for b in B] for a in A])
-
- def _fit(self):
- if getattr(self, "_res", None) is not None:
- return self._res
- import numpy as np
- from sklearn.svm import SVC
- from sklearn.metrics import roc_auc_score
- Xtr, ytr, Xte, yte = self._data()
- kfn = self._kernel()
- Ktr = self._gram(Xtr, Xtr, kfn); Kte = self._gram(Xte, Xtr, kfn)
- qsvc = SVC(kernel="precomputed", probability=False).fit(Ktr, ytr)
- q_auc = float(roc_auc_score(yte, qsvc.decision_function(Kte)))
- c = SVC(kernel="rbf", probability=False).fit(Xtr, ytr) # classical baseline
- c_auc = float(roc_auc_score(yte, c.decision_function(Xte)))
- self._res = {"quantum_kernel_auc": round(q_auc, 3), "classical_rbf_auc": round(c_auc, 3),
- "n_train": len(ytr), "n_test": len(yte), "n_qubits": len(self._FEATS),
- "features": ["ip_mean_MA", "beta_n", "li", "q95"], "backend": qc.backend_note()}
- return self._res
-
- def _predict(self, x):
- r = self._fit()
- return Prediction(r["quantum_kernel_auc"], None, True,
- note=f"quantum-kernel disruption AUC (vs classical {r['classical_rbf_auc']}); "
- f"backend={r['backend']['active_backend']}")
-
- def benchmark(self):
- r = self._fit()
- adv = r["quantum_kernel_auc"] - r["classical_rbf_auc"]
- return {"member": self.name,
- "live_quantum_kernel": {
- "problem": "MAST disruption classification on a real quantum fidelity kernel",
- "framework": "PennyLane AngleEmbedding kernel + precomputed-kernel SVM",
- **{k: r[k] for k in ("quantum_kernel_auc", "classical_rbf_auc", "n_train",
- "n_test", "n_qubits", "features")},
- "quantum_minus_classical_auc": round(adv, 3),
- "backend": r["backend"],
- "verdict": (f"REAL quantum kernel classifies MAST disruptions at AUC "
- f"{r['quantum_kernel_auc']} vs classical RBF {r['classical_rbf_auc']} "
- f"(Delta {adv:+.3f}) — {'no advantage' if adv <= 0.02 else 'marginal'}: a "
- f"validated null, but a REAL runnable quantum-ML pipeline on real fusion "
- f"data. Runs on hardware with KODEX_QC_BACKEND=ibm."),
- "caveats": ["labels are the heuristic Ip-quench disruption labels (from KWARD)",
- "quantum kernel ties classical here — no advantage; the value is a real, "
- "hardware-ready quantum-ML tool, honest that advantage is ~8-10 yr out"]},
- "sourced": {"file": "TRACK1_QUANTUM_RESULTS/track1_results.json (A6_quantum_kernel_MAST)",
- "note": "independent Track-1 run also found quantum-kernel AUC ~= classical (null)"}}
diff --git a/publish/records/kqern/metadata.json b/publish/records/kqern/metadata.json
deleted file mode 100644
index df9850d3b5e64abe98a923fba637d4695b70923a..0000000000000000000000000000000000000000
--- a/publish/records/kqern/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KQERN",
- "page": "https://kronosfusionenergy.com/kodex/kqern",
- "title": "KODEX \u2014 KQERN: QKERNEL",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "QKERNEL",
- "KODEX:KQERN"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kqern",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KQERN (QKERNEL). REAL quantum-kernel classifier \u2014 embeds real MAST disruption features into a quantum feature map and classifies on the fidelity kernel (PennyLane); runs on a simulator now, real hardware pluggable. Honest: ties the classical kernel \u2014 a validated no-advantage result, but a real, runnable quantum-ML pipeline
Benchmark: **REAL quantum kernel**: MAST-disruption AUC 0.919 vs classical 0.929 (ties \u2014 honest null); runnable on real QC hardware
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kqern · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KQERN (QKERNEL). REAL quantum-kernel classifier \u2014 embeds real MAST disruption features into a quantum feature map and classifies on the fidelity kernel (PennyLane); runs on a simulator now, real hardware pluggable. Honest: ties the classical kernel \u2014 a validated no-advantage result, but a real, runnable quantum-ML pipelineBenchmark: **REAL quantum kernel**: MAST-disruption AUC 0.919 vs classical 0.929 (ties \u2014 honest null); runnable on real QC hardwarePart of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kqern \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package: https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kqopt/CITATION.cff b/publish/records/kqopt/CITATION.cff
deleted file mode 100644
index 3e2025449786530830c4e9bc91a4b78d3b5893e5..0000000000000000000000000000000000000000
--- a/publish/records/kqopt/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KQOPT: QOPT (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kqopt"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kqopt/LICENSE b/publish/records/kqopt/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kqopt/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kqopt/MANIFEST.sha256 b/publish/records/kqopt/MANIFEST.sha256
deleted file mode 100644
index 37b0af62e7bb11214559279bdadffb5c80aec76d..0000000000000000000000000000000000000000
--- a/publish/records/kqopt/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KQOPT SHA-256 (0.2.0, 2026-09-11)
-a8ba3a0f64b2dcfeb9be415fab3510d70fdf91b1d880aa3818fd698ed42b5e6a CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-9c1d050a20c316dcca35034eec8accf97bfbf611759231bc20ad60d9a592bb2d benchmark.json
-e4343f4d4d82e45b7db4c481e2563c88e32bd82626cb3f9dc1592d3e7a022255 card.md
-dda54fb01a7d415f59782a7db3c54c26f124dad325f8770686fe6c2f9ea9f270 kqopt.py
-f1d4ef8d565c19a614fdae6479bd05bac96089c5d12c02c1389d295093bcaf9b metadata.json
diff --git a/publish/records/kqopt/benchmark.json b/publish/records/kqopt/benchmark.json
deleted file mode 100644
index c6c59da371f2b5334cac9f7b38d7b76227f16f2f..0000000000000000000000000000000000000000
--- a/publish/records/kqopt/benchmark.json
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- "member": "KQOPT",
- "live_qaoa": {
- "problem": "6-node design QUBO (MaxCut-style; plug in your own Q matrix)",
- "framework": "PennyLane QAOA (p=2); runs on simulator now, real hardware pluggable",
- "qaoa_cut": 6,
- "optimal_cut": 6,
- "approx_ratio": 1.0,
- "p": 2,
- "n_qubits": 6,
- "solution_bitstring": [
- 0,
- 1,
- 0,
- 1,
- 0,
- 1
- ],
- "backend": {
- "active_backend": "default",
- "ran_on_real_hardware": false,
- "how_to_use_real_qc": "set KODEX_QC_BACKEND=ibm and KODEX_QC_TOKEN= to run this exact circuit on real quantum hardware",
- "honest_timeline": "fault-tolerant quantum ADVANTAGE for fusion kernels is ~8-10 yr out; this tooling makes the TESTING real and runnable TODAY, same code path"
- },
- "verdict": "REAL QAOA reaches 100% of the brute-force optimum (cut 6/6, p=2, 6 qubits) on the default backend \u2014 a working quantum optimizer, runnable on hardware with KODEX_QC_BACKEND=ibm. HONEST: no speedup vs classical at this size; advantage is ~8-10 yr out."
- },
- "sourced": {
- "file": "TRACK1_QUANTUM_RESULTS/track1_results.json (A4_QAOA)",
- "note": "independent Track-1 p=1 QAOA reached ~66% on an 8-node QUBO (consistent)"
- }
-}
diff --git a/publish/records/kqopt/card.md b/publish/records/kqopt/card.md
deleted file mode 100644
index 4fc69cfb13499f0d10f6bf9295f1ebc4543e7047..0000000000000000000000000000000000000000
--- a/publish/records/kqopt/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KQOPT — card
-
-- **name:** KQOPT
-- **function:** QOPT
-- **status:** BUILT
-- **phase:** 3
-- **provenance:** SIM
-- **retired_by:** fault-tolerant quantum hardware (not available this decade)
-- **gates:** ['KX-L3']
-- **note:** REAL QAOA quantum optimizer — solves a combinatorial design QUBO on an actual quantum circuit (PennyLane); runs on a simulator now, real hardware pluggable, and you can plug in your own QUBO. Honest: standard ~0.7-1.0 approx ratio, no speedup at this size (~8-10 yr to advantage)
-- **available:** True
-
-Benchmark headline: **REAL QAOA optimizer**: 1.0 of optimum on a design QUBO (6 qubits); plug in your QUBO, run on real QC hardware — no speedup yet
diff --git a/publish/records/kqopt/kqopt.py b/publish/records/kqopt/kqopt.py
deleted file mode 100644
index 330491ec7c9580cf7ffd23aacb49cc457957bf4f..0000000000000000000000000000000000000000
--- a/publish/records/kqopt/kqopt.py
+++ /dev/null
@@ -1,97 +0,0 @@
-"""KODEX KQOPT — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KQOPT(Surrogate):
- name = "KQOPT"; function = "QOPT"; phase = 3; status = "BUILT"
- provenance = "SIM"
- retired_by = "fault-tolerant quantum hardware (not available this decade)"
- real_codes = ("QAOA", "PennyLane")
- gates = ("KX-L3",)
- note = ("REAL QAOA quantum optimizer — solves a combinatorial design QUBO on an actual "
- "quantum circuit (PennyLane); runs on a simulator now, real hardware pluggable, and "
- "you can plug in your own QUBO. Honest: standard ~0.7-1.0 approx ratio, no speedup "
- "at this size (~8-10 yr to advantage)")
-
- # a fixed 6-node design QUBO (illustrative MaxCut-style configuration problem)
- _EDGES = ((0, 1), (1, 2), (2, 3), (3, 4), (4, 5), (5, 0), (0, 2), (3, 5))
- _NQ = 6
-
- def _hamiltonians(self):
- import pennylane as qml
- cost_h = qml.Hamiltonian([0.5] * len(self._EDGES),
- [qml.PauliZ(i) @ qml.PauliZ(j) for (i, j) in self._EDGES])
- mixer_h = qml.Hamiltonian([1.0] * self._NQ, [qml.PauliX(i) for i in range(self._NQ)])
- return cost_h, mixer_h
-
- def _cut(self, bits):
- return sum(1 for (i, j) in self._EDGES if bits[i] != bits[j])
-
- def _optimum(self):
- import itertools
- return max(self._cut(b) for b in itertools.product((0, 1), repeat=self._NQ))
-
- def _run(self, p=2, steps=70):
- if getattr(self, "_res", None) is not None:
- return self._res
- import numpy as np
- import pennylane as qml
- from pennylane import qaoa
- from .. import uq
- cost_h, mixer_h = self._hamiltonians()
- dev = qc.get_device(wires=self._NQ)
-
- def qaoa_layer(gamma, beta):
- qaoa.cost_layer(gamma, cost_h)
- qaoa.mixer_layer(beta, mixer_h)
-
- def prep(params):
- for w in range(self._NQ):
- qml.Hadamard(w)
- qml.layer(qaoa_layer, p, params[0], params[1])
-
- @qml.qnode(dev)
- def energy(params):
- prep(params)
- return qml.expval(cost_h)
-
- @qml.qnode(dev)
- def probs(params):
- prep(params)
- return qml.probs(wires=range(self._NQ))
-
- rng = np.random.default_rng(uq.SEED)
- params = qml.numpy.array([rng.uniform(0, np.pi, p), rng.uniform(0, np.pi, p)],
- requires_grad=True)
- opt = qml.AdamOptimizer(0.1)
- for _ in range(steps):
- params = opt.step(energy, params)
- pr = np.array(probs(params))
- bits = [int(b) for b in format(int(pr.argmax()), f"0{self._NQ}b")]
- qaoa_cut, opt_cut = self._cut(bits), self._optimum()
- self._res = {"qaoa_cut": qaoa_cut, "optimal_cut": opt_cut,
- "approx_ratio": round(qaoa_cut / opt_cut, 3), "p": p, "n_qubits": self._NQ,
- "solution_bitstring": bits, "backend": qc.backend_note()}
- return self._res
-
- def _predict(self, x):
- r = self._run()
- return Prediction(r["approx_ratio"], None, True,
- note=f"QAOA approx ratio {r['approx_ratio']} (cut {r['qaoa_cut']}/{r['optimal_cut']}); "
- f"backend={r['backend']['active_backend']}")
-
- def benchmark(self):
- r = self._run()
- return {"member": self.name,
- "live_qaoa": {
- "problem": "6-node design QUBO (MaxCut-style; plug in your own Q matrix)",
- "framework": "PennyLane QAOA (p=2); runs on simulator now, real hardware pluggable",
- **{k: r[k] for k in ("qaoa_cut", "optimal_cut", "approx_ratio", "p", "n_qubits",
- "solution_bitstring")},
- "backend": r["backend"],
- "verdict": (f"REAL QAOA reaches {r['approx_ratio']:.0%} of the brute-force optimum "
- f"(cut {r['qaoa_cut']}/{r['optimal_cut']}, p={r['p']}, {r['n_qubits']} qubits) "
- f"on the {r['backend']['active_backend']} backend — a working quantum "
- f"optimizer, runnable on hardware with KODEX_QC_BACKEND=ibm. HONEST: no "
- f"speedup vs classical at this size; advantage is ~8-10 yr out.")},
- "sourced": {"file": "TRACK1_QUANTUM_RESULTS/track1_results.json (A4_QAOA)",
- "note": "independent Track-1 p=1 QAOA reached ~66% on an 8-node QUBO (consistent)"}}
diff --git a/publish/records/kqopt/metadata.json b/publish/records/kqopt/metadata.json
deleted file mode 100644
index aa6e0c42618b4e090b35d3bbf015081e2646dcfe..0000000000000000000000000000000000000000
--- a/publish/records/kqopt/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KQOPT",
- "page": "https://kronosfusionenergy.com/kodex/kqopt",
- "title": "KODEX \u2014 KQOPT: QOPT",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "QOPT",
- "KODEX:KQOPT"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kqopt",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KQOPT (QOPT). REAL QAOA quantum optimizer \u2014 solves a combinatorial design QUBO on an actual quantum circuit (PennyLane); runs on a simulator now, real hardware pluggable, and you can plug in your own QUBO. Honest: standard ~0.7-1.0 approx ratio, no speedup at this size (~8-10 yr to advantage)
Benchmark: **REAL QAOA optimizer**: 1.0 of optimum on a design QUBO (6 qubits); plug in your QUBO, run on real QC hardware \u2014 no speedup yet
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kqopt · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KQOPT (QOPT). REAL QAOA quantum optimizer \u2014 solves a combinatorial design QUBO on an actual quantum circuit (PennyLane); runs on a simulator now, real hardware pluggable, and you can plug in your own QUBO. Honest: standard ~0.7-1.0 approx ratio, no speedup at this size (~8-10 yr to advantage)Benchmark: **REAL QAOA optimizer**: 1.0 of optimum on a design QUBO (6 qubits); plug in your QUBO, run on real QC hardware \u2014 no speedup yetPart of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kqopt \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package: https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kqross/CITATION.cff b/publish/records/kqross/CITATION.cff
deleted file mode 100644
index a306288a34d75c056f61003ac0983a9606744add..0000000000000000000000000000000000000000
--- a/publish/records/kqross/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KQROSS: QRE (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kqross"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kqross/LICENSE b/publish/records/kqross/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kqross/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kqross/MANIFEST.sha256 b/publish/records/kqross/MANIFEST.sha256
deleted file mode 100644
index fb04675fd1789d1e2d6cd2a1aff8035d6e09d522..0000000000000000000000000000000000000000
--- a/publish/records/kqross/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KQROSS SHA-256 (0.2.0, 2026-09-11)
-6ddd42aeef7388e7b9ac6a388e1f49778f1bca0fac21070d178fbba8ebc55c9d CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-22d81709d34159e43448998f4323f8497cbbef091c8959a7e3fe8ebd22294e5e benchmark.json
-5c770fe4fc02953de22bd973bd63902c458711cd4911d4eba71834b4ad606734 card.md
-bb25e3a1d0ca3fb96512a704055cab80d647597381524468d31d01abab7c02ce kqross.py
-a2a28363b296baca837646df3833001ddd2842bc75e192d61e68c5b43061899c metadata.json
diff --git a/publish/records/kqross/benchmark.json b/publish/records/kqross/benchmark.json
deleted file mode 100644
index 3f6d12b4060d89bb47d88e1764df7713d727b8a6..0000000000000000000000000000000000000000
--- a/publish/records/kqross/benchmark.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "member": "KQROSS",
- "live_resource_estimate": {
- "method": "surface-code overhead (d=25) + qubitization T-counts + classical exact-CI, order-of-magnitude literature-scaled",
- "crossover_N_spin_orbitals": 50,
- "logical_qubits_needed": 50,
- "physical_qubits_needed": "~6e+04",
- "surface_code_phys_per_logical": 1250,
- "quantum_runtime_hours_at_crossover": 0.03,
- "roadmap_year_reach_logical": 2032,
- "hardware_today": "~1e2-1e3 physical qubits, no error-corrected logical qubits",
- "verdict": "REAL FT resource estimate: classical<->quantum crossover at N~50 spin-orbitals needs 50 logical -> ~6e+04 physical qubits and ~0.03 h/run. Today's hardware = ~1e2-1e3 physical qubits, no error-corrected logical qubits; the roadmap reaches that logical count ~2032. NO fault-tolerant quantum advantage for fusion this decade \u2014 a validated negative result."
- },
- "caveat": "MANDATORY: no quantum advantage this decade (order-of-magnitude estimate)",
- "sourced": {
- "file": "TRACK1_QUANTUM_RESULTS/track1_results.json (A1/A3/A9)",
- "note": "independent Track-1: crossover N~40, ~1e5-1e6 phys qubits, mid/late-2030s"
- }
-}
diff --git a/publish/records/kqross/card.md b/publish/records/kqross/card.md
deleted file mode 100644
index 2c3f5b927f85c9654502381a5805c5e9df647a33..0000000000000000000000000000000000000000
--- a/publish/records/kqross/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KQROSS — card
-
-- **name:** KQROSS
-- **function:** QRE
-- **status:** BUILT
-- **phase:** 2
-- **provenance:** SIM
-- **retired_by:** fault-tolerant quantum hardware (not available this decade)
-- **gates:** ['AC-43', 'BR-SX-08']
-- **note:** REAL fault-tolerant resource estimator — computes the classical<->quantum crossover N, the surface-code physical-qubit overhead, and the logical-qubit roadmap year for a fusion electronic-structure kernel (order-of-magnitude, literature-scaled). Verdict: no FT advantage this decade — the machine does not exist yet
-- **available:** True
-
-Benchmark headline: **REAL FT resource estimator**: classical↔quantum crossover ~N=50 needs ~6e+04 physical qubits, roadmap ~2032 — no FT advantage this decade
diff --git a/publish/records/kqross/kqross.py b/publish/records/kqross/kqross.py
deleted file mode 100644
index 30afdab1cc7460c50dd78839c3a6ba406dd66d46..0000000000000000000000000000000000000000
--- a/publish/records/kqross/kqross.py
+++ /dev/null
@@ -1,70 +0,0 @@
-"""KODEX KQROSS — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KQROSS(Surrogate):
- name = "KQROSS"; function = "QRE"; phase = 2; status = "BUILT"
- provenance = "SIM"
- retired_by = "fault-tolerant quantum hardware (not available this decade)"
- real_codes = ("FT resource estimation", "surface-code overhead", "crossover analysis")
- gates = ("AC-43", "BR-SX-08")
- note = ("REAL fault-tolerant resource estimator — computes the classical<->quantum crossover N, "
- "the surface-code physical-qubit overhead, and the logical-qubit roadmap year for a fusion "
- "electronic-structure kernel (order-of-magnitude, literature-scaled). Verdict: no FT "
- "advantage this decade — the machine does not exist yet")
-
- # order-of-magnitude scaling model (literature-scaled; illustrative, honestly labelled)
- _D = 25 # surface-code distance
- _GATE_S = 1e-6 # 1 us per logical T-gate (optimistic)
- _CLASSICAL_OPS_PER_S = 1e12 # ~1 Top/s classical baseline
- _LOGICAL_2027 = 1.0 # ~1 logical qubit in 2027
- _SCALING_PER_YR = 10 ** (1 / 3) # 10x logical / 3 yr
-
- def _estimate(self):
- from math import comb
- import numpy as np
- phys_per_logical = 2 * self._D * self._D # ~1250
- def c_ops(N):
- return comb(N, N // 2) # exact-CI dimension ~ ops
- def q_T(N):
- return (N ** 3) * 1e3 # qubitization T-count (OOM)
- def c_time(N):
- return c_ops(N) / self._CLASSICAL_OPS_PER_S
- def q_time(N):
- return q_T(N) * self._GATE_S
- cross = next((N for N in range(4, 100, 2) if q_time(N) < c_time(N)), None)
- logical = cross # ~N logical qubits (OOM)
- phys = logical * phys_per_logical
- runtime_hr = q_time(cross) / 3600.0
- # roadmap: when does 1-logical(2027) x 10x/3yr reach `logical`?
- year = 2027 + 3.0 * np.log10(max(logical, 1) / self._LOGICAL_2027)
- return {"crossover_N_spin_orbitals": cross,
- "logical_qubits_needed": int(logical),
- "physical_qubits_needed": f"~{phys:.0e}",
- "surface_code_phys_per_logical": phys_per_logical,
- "quantum_runtime_hours_at_crossover": round(runtime_hr, 2),
- "roadmap_year_reach_logical": int(round(year)),
- "hardware_today": "~1e2-1e3 physical qubits, no error-corrected logical qubits"}
-
- def _predict(self, x):
- e = self._estimate()
- return Prediction(e, None, True,
- note=f"FT crossover at N~{e['crossover_N_spin_orbitals']} needs "
- f"{e['physical_qubits_needed']} physical qubits — no advantage this decade")
-
- def benchmark(self):
- e = self._estimate()
- return {"member": self.name,
- "live_resource_estimate": {
- "method": "surface-code overhead (d=25) + qubitization T-counts + classical exact-CI, "
- "order-of-magnitude literature-scaled",
- **e,
- "verdict": (f"REAL FT resource estimate: classical<->quantum crossover at "
- f"N~{e['crossover_N_spin_orbitals']} spin-orbitals needs "
- f"{e['logical_qubits_needed']} logical -> {e['physical_qubits_needed']} "
- f"physical qubits and ~{e['quantum_runtime_hours_at_crossover']} h/run. "
- f"Today's hardware = {e['hardware_today']}; the roadmap reaches that logical "
- f"count ~{e['roadmap_year_reach_logical']}. NO fault-tolerant quantum "
- f"advantage for fusion this decade — a validated negative result.")},
- "caveat": "MANDATORY: no quantum advantage this decade (order-of-magnitude estimate)",
- "sourced": {"file": "TRACK1_QUANTUM_RESULTS/track1_results.json (A1/A3/A9)",
- "note": "independent Track-1: crossover N~40, ~1e5-1e6 phys qubits, mid/late-2030s"}}
diff --git a/publish/records/kqross/metadata.json b/publish/records/kqross/metadata.json
deleted file mode 100644
index c1359e7dba9bb0134c7235a1024915c06f6a9843..0000000000000000000000000000000000000000
--- a/publish/records/kqross/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KQROSS",
- "page": "https://kronosfusionenergy.com/kodex/kqross",
- "title": "KODEX \u2014 KQROSS: QRE",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "QRE",
- "KODEX:KQROSS"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kqross",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "isDerivedFrom",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KQROSS (QRE). REAL fault-tolerant resource estimator \u2014 computes the classical<->quantum crossover N, the surface-code physical-qubit overhead, and the logical-qubit roadmap year for a fusion electronic-structure kernel (order-of-magnitude, literature-scaled). Verdict: no FT advantage this decade \u2014 the machine does not exist yet
Benchmark: **REAL FT resource estimator**: classical\u2194quantum crossover ~N=50 needs ~6e+04 physical qubits, roadmap ~2032 \u2014 no FT advantage this decade
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: isDerivedFrom 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kqross · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KQROSS (QRE). REAL fault-tolerant resource estimator \u2014 computes the classicalquantum crossover N, the surface-code physical-qubit overhead, and the logical-qubit roadmap year for a fusion electronic-structure kernel (order-of-magnitude, literature-scaled). Verdict: no FT advantage this decade \u2014 the machine does not exist yetBenchmark: **REAL FT resource estimator**: classical\u2194quantum crossover ~N=50 needs ~6e+04 physical qubits, roadmap ~2032 \u2014 no FT advantage this decadePart of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: isDerivedFrom 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kqross \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kqubit/CITATION.cff b/publish/records/kqubit/CITATION.cff
deleted file mode 100644
index 9a703b6590cfd96cc0b0f05362ee86ef3233ce8f..0000000000000000000000000000000000000000
--- a/publish/records/kqubit/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KQUBIT: QML (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kqubit"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kqubit/LICENSE b/publish/records/kqubit/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kqubit/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kqubit/MANIFEST.sha256 b/publish/records/kqubit/MANIFEST.sha256
deleted file mode 100644
index 7bd6104eb903824f77e74a807f2a809eb6909f2e..0000000000000000000000000000000000000000
--- a/publish/records/kqubit/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KQUBIT SHA-256 (0.2.0, 2026-09-11)
-eb10d8677d25982ed2d1657e8b7135871fc1912263803e3408ae619ed5acd925 CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-3f536e409ffe33469298120409b86ab5f706526ecf874eaaeaded118d975822a benchmark.json
-4e3bb241140214bac2cd9e87e198968c5c4cb279de601d0bd491f6cc30d01b81 card.md
-9c1f03a2594373fcca5975a9d15bdcc49d270f2963e9d17f9953a0199e705456 kqubit.py
-b79f6409a10dc49a9d8feecbd98f6cd49f737adf9f182d97d8b0850013705455 metadata.json
diff --git a/publish/records/kqubit/benchmark.json b/publish/records/kqubit/benchmark.json
deleted file mode 100644
index 195b3a6ba86ecb5dcef91f1553acbc91adbc0ad4..0000000000000000000000000000000000000000
--- a/publish/records/kqubit/benchmark.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "member": "KQUBIT",
- "live_vqe": {
- "problem": "H2 molecular Hamiltonian (2-qubit parity-reduced; standard coeffs)",
- "framework": "PennyLane (runnable on simulator now; real hardware pluggable)",
- "vqe_energy_Ha": -1.857275,
- "exact_energy_Ha": -1.857275,
- "recovery_mHa": 0.0002,
- "n_qubits": 2,
- "steps": 120,
- "reaches_chemical_accuracy": true,
- "nisq_noise_sweep_mHa_error": {
- "0.0": 0.0,
- "0.001": 1.112,
- "0.005": 5.557,
- "0.01": 11.11,
- "0.02": 22.211,
- "0.05": 55.449
- },
- "noise_note": "depolarizing-noise sweep (mHa error vs per-qubit p): NISQ noise breaks the 1.6 mHa chemical accuracy fast \u2014 this is WHY there is no advantage yet",
- "backend": {
- "active_backend": "default",
- "ran_on_real_hardware": false,
- "how_to_use_real_qc": "set KODEX_QC_BACKEND=ibm and KODEX_QC_TOKEN= to run this exact circuit on real quantum hardware",
- "honest_timeline": "fault-tolerant quantum ADVANTAGE for fusion kernels is ~8-10 yr out; this tooling makes the TESTING real and runnable TODAY, same code path"
- },
- "verdict": "REAL VQE recovers the H2 ground state to 0.0002 mHa on the default backend (within 1.6 mHa chemical accuracy). Runs on real quantum hardware when you set KODEX_QC_BACKEND=ibm. HONEST: no quantum advantage this decade \u2014 the value now is a real, testable quantum pipeline, not a speedup."
- },
- "sourced": {
- "file": "track8_vqe_poc/vqe_convergence.csv",
- "note": "prior noisy-VQE sweep: chemical accuracy breaks under NISQ noise (quantifies the no-advantage-this-decade caveat)"
- },
- "caveat": "MANDATORY: no quantum advantage this decade; hardware value is ~8-10 yr out"
-}
diff --git a/publish/records/kqubit/card.md b/publish/records/kqubit/card.md
deleted file mode 100644
index 6e07cf68b6ac67cfa2eae58bf227c35c1257ecce..0000000000000000000000000000000000000000
--- a/publish/records/kqubit/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KQUBIT — card
-
-- **name:** KQUBIT
-- **function:** QML
-- **status:** BUILT
-- **phase:** 1
-- **provenance:** SIM
-- **retired_by:** fault-tolerant quantum hardware (not available this decade)
-- **gates:** ['AC-44', 'KX-L3-A4']
-- **note:** REAL variational quantum eigensolver (VQE) for a molecular Hamiltonian — a runnable quantum program (PennyLane): executes on a simulator now and on real quantum hardware when you plug in a backend. Honest: no quantum advantage yet (~8-10 yr out); the tooling + testing are real TODAY
-- **available:** True
-
-Benchmark headline: **REAL VQE** (PennyLane): recovers H2 ground state to 0.0002 mHa on default; runs on real QC hardware — no advantage yet
diff --git a/publish/records/kqubit/kqubit.py b/publish/records/kqubit/kqubit.py
deleted file mode 100644
index 216ea9882343aae83c543b4dffc88d8718c23e69..0000000000000000000000000000000000000000
--- a/publish/records/kqubit/kqubit.py
+++ /dev/null
@@ -1,110 +0,0 @@
-"""KODEX KQUBIT — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KQUBIT(Surrogate):
- name = "KQUBIT"; function = "QML"; phase = 1; status = "BUILT"
- provenance = "SIM"
- retired_by = "fault-tolerant quantum hardware (not available this decade)"
- real_codes = ("VQE", "quantum chemistry", "PennyLane")
- gates = ("AC-44", "KX-L3-A4")
- note = ("REAL variational quantum eigensolver (VQE) for a molecular Hamiltonian — a "
- "runnable quantum program (PennyLane): executes on a simulator now and on real "
- "quantum hardware when you plug in a backend. Honest: no quantum advantage yet "
- "(~8-10 yr out); the tooling + testing are real TODAY")
-
- # H2 molecular Hamiltonian, 2-qubit parity-reduced (standard Qiskit/IBM textbook coeffs, Ha)
- _COEFFS = (-1.052373245772859, 0.39793742484318045, -0.39793742484318045,
- -0.01128010425623538, 0.18093119978423156)
-
- def _hamiltonian(self):
- import pennylane as qml
- ops = [qml.Identity(0), qml.PauliZ(0), qml.PauliZ(1),
- qml.PauliZ(0) @ qml.PauliZ(1), qml.PauliX(0) @ qml.PauliX(1)]
- return qml.Hamiltonian(list(self._COEFFS), ops)
-
- @staticmethod
- def _ansatz(params):
- import pennylane as qml
- qml.PauliX(0) # Hartree-Fock reference |10>
- qml.RY(params[0], 0); qml.RY(params[1], 1)
- qml.CNOT([0, 1])
- qml.RY(params[2], 0); qml.RY(params[3], 1)
-
- def _run_vqe(self, steps=120):
- """Actually optimize the VQE on the active backend; cache the result."""
- if getattr(self, "_vqe", None) is not None:
- return self._vqe
- import numpy as np
- import pennylane as qml
- from .. import uq
- H = self._hamiltonian()
- exact = float(np.linalg.eigvalsh(qml.matrix(H))[0]) # ground truth (exact diag)
- dev = qc.get_device(wires=2)
- ansatz = self._ansatz
-
- @qml.qnode(dev)
- def cost(p):
- ansatz(p)
- return qml.expval(H)
-
- rng = np.random.default_rng(uq.SEED)
- p = qml.numpy.array(rng.normal(0, 0.1, 4), requires_grad=True)
- opt = qml.AdamOptimizer(0.1)
- for _ in range(steps):
- p = opt.step(cost, p)
- e = float(cost(p))
- self._vqe_params = p # cache for the noise sweep
- self._vqe = {"vqe_energy_Ha": round(e, 6), "exact_energy_Ha": round(exact, 6),
- "recovery_mHa": round(abs(e - exact) * 1e3, 4),
- "n_qubits": 2, "steps": steps, "backend": qc.backend_note()}
- return self._vqe
-
- def _noise_sweep(self, ps=(0.0, 0.001, 0.005, 0.01, 0.02, 0.05)):
- """Re-evaluate the optimized VQE under per-qubit depolarizing noise -> mHa error vs p."""
- import pennylane as qml
- self._run_vqe()
- params, H = self._vqe_params, self._hamiltonian()
- exact = self._vqe["exact_energy_Ha"]
- out = {}
- for p in ps:
- dev = qml.device("default.mixed", wires=2)
-
- @qml.qnode(dev)
- def noisy(par):
- self._ansatz(par)
- for w in (0, 1):
- qml.DepolarizingChannel(p, wires=w)
- return qml.expval(H)
- out[p] = round(abs(float(noisy(params)) - exact) * 1e3, 3) # mHa error
- return out
-
- def _predict(self, x):
- r = self._run_vqe()
- return Prediction(r["vqe_energy_Ha"], None, True,
- note=f"VQE ground-state energy (recovery {r['recovery_mHa']} mHa vs exact); "
- f"backend={r['backend']['active_backend']}")
-
- def benchmark(self):
- r = self._run_vqe()
- chem_acc = r["recovery_mHa"] <= 1.6
- return {"member": self.name,
- "live_vqe": {
- "problem": "H2 molecular Hamiltonian (2-qubit parity-reduced; standard coeffs)",
- "framework": "PennyLane (runnable on simulator now; real hardware pluggable)",
- **{k: r[k] for k in ("vqe_energy_Ha", "exact_energy_Ha", "recovery_mHa",
- "n_qubits", "steps")},
- "reaches_chemical_accuracy": bool(chem_acc),
- "nisq_noise_sweep_mHa_error": self._noise_sweep(),
- "noise_note": ("depolarizing-noise sweep (mHa error vs per-qubit p): NISQ noise breaks "
- "the 1.6 mHa chemical accuracy fast — this is WHY there is no advantage yet"),
- "backend": r["backend"],
- "verdict": (f"REAL VQE recovers the H2 ground state to {r['recovery_mHa']} mHa on "
- f"the {r['backend']['active_backend']} backend "
- f"({'within' if chem_acc else 'outside'} 1.6 mHa chemical accuracy). "
- f"Runs on real quantum hardware when you set KODEX_QC_BACKEND=ibm. "
- f"HONEST: no quantum advantage this decade — the value now is a real, "
- f"testable quantum pipeline, not a speedup.")},
- "sourced": {"file": "track8_vqe_poc/vqe_convergence.csv",
- "note": "prior noisy-VQE sweep: chemical accuracy breaks under NISQ noise "
- "(quantifies the no-advantage-this-decade caveat)"},
- "caveat": "MANDATORY: no quantum advantage this decade; hardware value is ~8-10 yr out"}
diff --git a/publish/records/kqubit/metadata.json b/publish/records/kqubit/metadata.json
deleted file mode 100644
index 3912e639ac444cf291f2ab8c85c2bc7ceeb4feb1..0000000000000000000000000000000000000000
--- a/publish/records/kqubit/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KQUBIT",
- "page": "https://kronosfusionenergy.com/kodex/kqubit",
- "title": "KODEX \u2014 KQUBIT: QML",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "QML",
- "KODEX:KQUBIT"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kqubit",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "isDerivedFrom",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KQUBIT (QML). REAL variational quantum eigensolver (VQE) for a molecular Hamiltonian \u2014 a runnable quantum program (PennyLane): executes on a simulator now and on real quantum hardware when you plug in a backend. Honest: no quantum advantage yet (~8-10 yr out); the tooling + testing are real TODAY
Benchmark: **REAL VQE** (PennyLane): recovers H2 ground state to 0.0002 mHa on default; runs on real QC hardware \u2014 no advantage yet
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: isDerivedFrom 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kqubit · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KQUBIT (QML). REAL variational quantum eigensolver (VQE) for a molecular Hamiltonian \u2014 a runnable quantum program (PennyLane): executes on a simulator now and on real quantum hardware when you plug in a backend. Honest: no quantum advantage yet (~8-10 yr out); the tooling + testing are real TODAYBenchmark: **REAL VQE** (PennyLane): recovers H2 ground state to 0.0002 mHa on default; runs on real QC hardware \u2014 no advantage yetPart of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: isDerivedFrom 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kqubit \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/krad/CITATION.cff b/publish/records/krad/CITATION.cff
deleted file mode 100644
index 16f25cde4f4bb70eb0551433451d55c8098491dc..0000000000000000000000000000000000000000
--- a/publish/records/krad/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KRAD: radiation-control (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/krad"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/krad/LICENSE b/publish/records/krad/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/krad/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/krad/MANIFEST.sha256 b/publish/records/krad/MANIFEST.sha256
deleted file mode 100644
index 4fb55224d77c36e343ffd2efd917ecf465dfdcb5..0000000000000000000000000000000000000000
--- a/publish/records/krad/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KRAD SHA-256 (0.2.0, 2026-09-11)
-ae39decc6a441be620aa2e76219459bf0db68618a9fc70b783bd066e9eba34de CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-f160f002a8de55107064caf2d6752ea27f6d24c243630a1fc2c1d65d062c871b benchmark.json
-a6f125a416fc64cbb166fec532daef11724db7fc4239954e77dac385cb5b297f card.md
-7b38a37c1bba59ef5efeb2d4500e0e1458c13e27cfc2a71f2ade4dbd4e1b0bff krad.py
-846409150ac1991bab8f981b6118a42763704b64b57089c26525217534904254 metadata.json
diff --git a/publish/records/krad/benchmark.json b/publish/records/krad/benchmark.json
deleted file mode 100644
index 4038e282a02626e127a1384d01985adced8a1e74..0000000000000000000000000000000000000000
--- a/publish/records/krad/benchmark.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "member": "KRAD",
- "live_impurity_seeding": {
- "source": "h9_seeding.csv (H9 impurity-seeding scan)",
- "n_impurities": 3,
- "impurities": [
- "Ar",
- "N",
- "Ne"
- ],
- "radiated_fraction": 0.58,
- "least_core_dilution_impurity": "Ar",
- "verdict": "Impurity-seeding radiation evaluator over 3 impurities at f_rad=0.58: 'Ar' gives the least core Zeff penalty (dZeff_hi=0.1102). Small scan \u2014 full impurity-transport (SOLPS) is the fidelity upgrade."
- },
- "caveat": "small seeding scan (few impurities); reduced 0-D radiation model"
-}
diff --git a/publish/records/krad/card.md b/publish/records/krad/card.md
deleted file mode 100644
index ce36cc61088491094f48eb0d5e48f2f6a036c68d..0000000000000000000000000000000000000000
--- a/publish/records/krad/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KRAD — card
-
-- **name:** KRAD
-- **function:** radiation-control
-- **status:** BUILT
-- **phase:** 3
-- **provenance:** SIM
-- **retired_by:** impurity transport (SOLPS + impurity) + radiation control
-- **gates:** ['H9']
-- **note:** impurity-seeding radiation-control evaluator — maps a seeded impurity + radiated-power fraction to core Zeff penalty and P_rad from the H9 seeding scan. Small scan; full impurity-transport (SOLPS + impurity) = fidelity upgrade
-- **available:** True
-
-Benchmark headline: impurity-seeding radiation evaluator: 3 impurities (Ar, N, Ne); least core dilution = Ar
diff --git a/publish/records/krad/krad.py b/publish/records/krad/krad.py
deleted file mode 100644
index 9a6484a47de8c459c1c301e31b361bf7ae765e20..0000000000000000000000000000000000000000
--- a/publish/records/krad/krad.py
+++ /dev/null
@@ -1,42 +0,0 @@
-"""KODEX KRAD — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KRAD(Surrogate):
- name = "KRAD"; function = "radiation-control"; phase = 3; status = "BUILT"
- provenance = "SIM"
- retired_by = "impurity transport (SOLPS + impurity) + radiation control"
- real_codes = ("impurity-seeding radiation scan",)
- gates = ("H9",)
- note = ("impurity-seeding radiation-control evaluator — maps a seeded impurity + radiated-power "
- "fraction to core Zeff penalty and P_rad from the H9 seeding scan. Small scan; full "
- "impurity-transport (SOLPS + impurity) = fidelity upgrade")
-
- def _table(self):
- import pandas as pd
- return pd.read_csv(_SEEDING)
-
- def _predict(self, x):
- df = self._table()
- imp = x.get("impurity", "N") if isinstance(x, dict) else "N"
- row = df[df["impurity"] == imp]
- r = (row.iloc[0] if len(row) else df.iloc[0])
- return Prediction({"impurity": str(r["impurity"]), "P_rad_MW": float(r["P_rad_MW"]),
- "dZeff_core": [float(r["dZeff_core_lo"]), float(r["dZeff_core_hi"])],
- "c_div_frac_pct": float(r["c_div_frac_pct"])},
- None, True, note="radiated power + core-Zeff penalty for the seeded impurity")
-
- def benchmark(self):
- df = self._table()
- best = df.loc[df["dZeff_core_hi"].idxmin()]
- return {"member": self.name,
- "live_impurity_seeding": {
- "source": "h9_seeding.csv (H9 impurity-seeding scan)",
- "n_impurities": int(df["impurity"].nunique()),
- "impurities": sorted(df["impurity"].unique().tolist()),
- "radiated_fraction": float(df["f_rad"].iloc[0]),
- "least_core_dilution_impurity": str(best["impurity"]),
- "verdict": (f"Impurity-seeding radiation evaluator over {int(df['impurity'].nunique())} "
- f"impurities at f_rad={df['f_rad'].iloc[0]}: '{best['impurity']}' gives the least "
- f"core Zeff penalty (dZeff_hi={best['dZeff_core_hi']}). Small scan — full "
- f"impurity-transport (SOLPS) is the fidelity upgrade.")},
- "caveat": "small seeding scan (few impurities); reduced 0-D radiation model"}
diff --git a/publish/records/krad/metadata.json b/publish/records/krad/metadata.json
deleted file mode 100644
index f758e25330bf4133457287cc1099fcd08689c2c2..0000000000000000000000000000000000000000
--- a/publish/records/krad/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KRAD",
- "page": "https://kronosfusionenergy.com/kodex/krad",
- "title": "KODEX \u2014 KRAD: radiation-control",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "radiation-control",
- "KODEX:KRAD"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/krad",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KRAD (radiation-control). impurity-seeding radiation-control evaluator \u2014 maps a seeded impurity + radiated-power fraction to core Zeff penalty and P_rad from the H9 seeding scan. Small scan; full impurity-transport (SOLPS + impurity) = fidelity upgrade
Benchmark: impurity-seeding radiation evaluator: 3 impurities (Ar, N, Ne); least core dilution = Ar
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/krad · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KRAD (radiation-control). impurity-seeding radiation-control evaluator \u2014 maps a seeded impurity + radiated-power fraction to core Zeff penalty and P_rad from the H9 seeding scan. Small scan; full impurity-transport (SOLPS + impurity) = fidelity upgradeBenchmark: impurity-seeding radiation evaluator: 3 impurities (Ar, N, Ne); least core dilution = ArPart of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/krad \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package: https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kseek/CITATION.cff b/publish/records/kseek/CITATION.cff
deleted file mode 100644
index 1847ee65951d0dc99efbfdc2c022bcecf654f914..0000000000000000000000000000000000000000
--- a/publish/records/kseek/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KSEEK: ACTIVE (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kseek"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kseek/LICENSE b/publish/records/kseek/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kseek/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kseek/MANIFEST.sha256 b/publish/records/kseek/MANIFEST.sha256
deleted file mode 100644
index dde7fbddf8c7c5e3361601877a882356f28c9d59..0000000000000000000000000000000000000000
--- a/publish/records/kseek/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KSEEK SHA-256 (0.2.0, 2026-09-11)
-badc272b1ad6f35a3954fb230c0cdb20ada48a27b62aeaf9d199882b2761f93b CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-4cbc4eeb14520f63686140e1d26994e1f3a0db45124450e11c1e0d0c7c08cd6d benchmark.json
-cfbe4b19489c4f91b636bdf78df9703646fac5c85d8b9e4bdb79367cdbb4dc73 card.md
-48fa935cef1b9443cc51ac880b3e67d65eaa99bdd74af8f0bb1854bf694d8e61 kseek.py
-52ac70499feaf483a56e7a642e66a7ee3f200f07ff3cc7c70a6592ede5712d15 metadata.json
diff --git a/publish/records/kseek/benchmark.json b/publish/records/kseek/benchmark.json
deleted file mode 100644
index f6750abe7530ab0cf508711228f8f3b0a01939ef..0000000000000000000000000000000000000000
--- a/publish/records/kseek/benchmark.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "member": "KSEEK",
- "live_active_learning": {
- "source": "KYRO GP over the completed 16-pt CGYRO A1e map",
- "acquisition": "max GP posterior std (uncertainty sampling), min-separation filtered",
- "next_runs": [
- {
- "a_LT": 2.225,
- "shear": 1.42,
- "gp_std": 0.5046
- },
- {
- "a_LT": 3.275,
- "shear": 1.42,
- "gp_std": 0.5046
- },
- {
- "a_LT": 3.275,
- "shear": 0.58,
- "gp_std": 0.5046
- }
- ],
- "loo_std_vs_error_corr": -0.283,
- "cgyro_gpu_h_per_point": 2.89,
- "verdict": "Proposes the next CGYRO run at a/L_T=2.225, shear=1.42 (highest GP uncertainty). Leave-one-out: GP posterior-std vs actual error correlation = -0.283 \u2014 weak on this small map. A real experimental-design tool: spend ~2.9 GPU-h/point where it matters."
- },
- "caveat": "16 training points is small \u2014 acquisition is directional guidance, not a guarantee"
-}
diff --git a/publish/records/kseek/card.md b/publish/records/kseek/card.md
deleted file mode 100644
index 45539cb1f2b7ee530990aa97ca61eefd41d9b921..0000000000000000000000000000000000000000
--- a/publish/records/kseek/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KSEEK — card
-
-- **name:** KSEEK
-- **function:** ACTIVE
-- **status:** BUILT
-- **phase:** 3
-- **provenance:** SIM
-- **retired_by:** the full CGYRO parameter scan (once every point is simulated)
-- **gates:** ['BR-L2-A1e']
-- **note:** active-learning acquisition — proposes the NEXT most-informative CGYRO run from KYRO's GP posterior (max-variance / uncertainty sampling), so expensive GPU-hours go where the surrogate is least sure. A real experimental-design tool
-- **available:** True
-
-Benchmark headline: active-learning: proposes next CGYRO run (a/L_T=2.225, shear=1.42); LOO std-vs-error corr -0.283 (honest: weak on 16 pts)
diff --git a/publish/records/kseek/kseek.py b/publish/records/kseek/kseek.py
deleted file mode 100644
index 30dee3256f6a6039063b34ea8171e0c14c872a53..0000000000000000000000000000000000000000
--- a/publish/records/kseek/kseek.py
+++ /dev/null
@@ -1,83 +0,0 @@
-"""KODEX KSEEK — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KSEEK(Surrogate):
- name = "KSEEK"; function = "ACTIVE"; phase = 3; status = "BUILT"
- provenance = "SIM"
- retired_by = "the full CGYRO parameter scan (once every point is simulated)"
- real_codes = ("Gaussian-process active learning", "max-variance acquisition")
- gates = ("BR-L2-A1e",)
- note = ("active-learning acquisition — proposes the NEXT most-informative CGYRO run from "
- "KYRO's GP posterior (max-variance / uncertainty sampling), so expensive GPU-hours "
- "go where the surrogate is least sure. A real experimental-design tool")
-
- _BOX = ((2.0, 3.5), (0.4, 1.6)) # a_LT, shear in-domain box (matches KYRO)
-
- def _grid(self, n=41):
- a = np.linspace(*self._BOX[0], n); s = np.linspace(*self._BOX[1], n)
- A, S = np.meshgrid(a, s)
- return np.c_[A.ravel(), S.ravel()]
-
- def _model(self):
- import kronos_ml.data as data
- gp = get("KYRO")._fit() # reuse the exact GP the fleet queries
- df = data.cgyro_flux_map_final()
- return gp, df[["a_LT", "shear"]].to_numpy(float), \
- np.log10(np.clip(df.Q_tot.to_numpy(float), 0, None) + 1e-4)
-
- def _acquire(self, k=3, min_sep=0.16):
- gp, Xtr, _ = self._model()
- G = self._grid()
- _, std = gp.predict(G)
- std = np.asarray(std).ravel()
- span = np.array([self._BOX[0][1] - self._BOX[0][0], self._BOX[1][1] - self._BOX[1][0]])
- picks, chosen = [], []
- for idx in np.argsort(-std):
- g = G[idx]
- d_tr = np.linalg.norm((g - Xtr) / span, axis=1).min()
- d_ch = min([np.linalg.norm((g - c) / span) for c in chosen], default=9.0)
- if min(d_tr, d_ch) < min_sep:
- continue
- chosen.append(g); picks.append({"a_LT": round(float(g[0]), 3),
- "shear": round(float(g[1]), 3),
- "gp_std": round(float(std[idx]), 4)})
- if len(picks) >= k:
- break
- return picks
-
- def _loo(self):
- """Leave-one-out: does GP posterior std actually predict where the model is wrong?"""
- from .. import uq
- _, X, y = self._model()
- errs, stds = [], []
- for i in range(len(y)):
- m = np.ones(len(y), bool); m[i] = False
- g = uq.GPHead().fit(X[m], y[m])
- mu, sd = g.predict(X[i:i + 1])
- errs.append(abs(float(np.ravel(mu)[0]) - y[i])); stds.append(float(np.ravel(sd)[0]))
- errs, stds = np.array(errs), np.array(stds)
- if errs.std() < 1e-9 or stds.std() < 1e-9:
- return None
- return float(np.corrcoef(stds, errs)[0, 1])
-
- def _predict(self, x):
- p = self._acquire(k=1)[0]
- return Prediction(p, None, True, note="next most-informative CGYRO operating point (max GP variance)")
-
- def benchmark(self):
- picks = self._acquire(k=3)
- corr = self._loo()
- return {"member": self.name,
- "live_active_learning": {
- "source": "KYRO GP over the completed 16-pt CGYRO A1e map",
- "acquisition": "max GP posterior std (uncertainty sampling), min-separation filtered",
- "next_runs": picks,
- "loo_std_vs_error_corr": None if corr is None else round(corr, 3),
- "cgyro_gpu_h_per_point": 2.89,
- "verdict": (f"Proposes the next CGYRO run at a/L_T={picks[0]['a_LT']}, "
- f"shear={picks[0]['shear']} (highest GP uncertainty). Leave-one-out: GP "
- f"posterior-std vs actual error correlation = "
- f"{'n/a' if corr is None else round(corr, 3)} — "
- f"{'the acquisition targets real model error' if (corr or 0) > 0.2 else 'weak on this small map'}. "
- f"A real experimental-design tool: spend ~2.9 GPU-h/point where it matters.")},
- "caveat": "16 training points is small — acquisition is directional guidance, not a guarantee"}
diff --git a/publish/records/kseek/metadata.json b/publish/records/kseek/metadata.json
deleted file mode 100644
index 88de34fbb4e40cf67babf6cb2f23b96243dce3e5..0000000000000000000000000000000000000000
--- a/publish/records/kseek/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KSEEK",
- "page": "https://kronosfusionenergy.com/kodex/kseek",
- "title": "KODEX \u2014 KSEEK: ACTIVE",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "ACTIVE",
- "KODEX:KSEEK"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kseek",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KSEEK (ACTIVE). active-learning acquisition \u2014 proposes the NEXT most-informative CGYRO run from KYRO's GP posterior (max-variance / uncertainty sampling), so expensive GPU-hours go where the surrogate is least sure. A real experimental-design tool
Benchmark: active-learning: proposes next CGYRO run (a/L_T=2.225, shear=1.42); LOO std-vs-error corr -0.283 (honest: weak on 16 pts)
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kseek · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KSEEK (ACTIVE). active-learning acquisition \u2014 proposes the NEXT most-informative CGYRO run from KYRO's GP posterior (max-variance / uncertainty sampling), so expensive GPU-hours go where the surrogate is least sure. A real experimental-design toolBenchmark: active-learning: proposes next CGYRO run (a/L_T=2.225, shear=1.42); LOO std-vs-error corr -0.283 (honest: weak on 16 pts)Part of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: references 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/kseek \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package: https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/ksense/CITATION.cff b/publish/records/ksense/CITATION.cff
deleted file mode 100644
index 975c01576227cb307712c7244da15629f74b30de..0000000000000000000000000000000000000000
--- a/publish/records/ksense/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KSENSE: QSENSE (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/ksense"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/ksense/LICENSE b/publish/records/ksense/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/ksense/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/ksense/MANIFEST.sha256 b/publish/records/ksense/MANIFEST.sha256
deleted file mode 100644
index 5eaacadb1caaa80f810d208d8a61294f136fc199..0000000000000000000000000000000000000000
--- a/publish/records/ksense/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KSENSE SHA-256 (0.2.0, 2026-09-11)
-e2a9cefeeace5905458c2bf7d89d3a1549b74d6400dbb836eea287b10701d3bc CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-30ec032cda6eec0f48b811b1d0b8e69cb273d51a7f2bf41371b1a06fd1d4f675 benchmark.json
-0144bbd9c13052ceb12f159cfe1999b72747f15a5c5edb966bdb5f96e7324067 card.md
-31248b47d0fb93b5b79210624734e27dbdfcdc641837293c9bf4e765f5f681de ksense.py
-cbc5c67507f7ca27c18b623e7e26dae6852bce89e66019a6df91f902d094aab7 metadata.json
diff --git a/publish/records/ksense/benchmark.json b/publish/records/ksense/benchmark.json
deleted file mode 100644
index 4cf332fa5d58a69271a381bdf9fd379d68db623c..0000000000000000000000000000000000000000
--- a/publish/records/ksense/benchmark.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "member": "KSENSE",
- "live_quantum_metrology": {
- "method": "PennyLane mixed-state GHZ interferometry; Heisenberg vs SQL vs dephasing",
- "dephasing_per_qubit": 0.2,
- "scaling": [
- {
- "N": 2,
- "visibility_dephased": 0.8,
- "GHZ_ideal_gain": 2.0,
- "GHZ_dephased_gain": 1.6,
- "SQL_gain": 1.41
- },
- {
- "N": 3,
- "visibility_dephased": 0.716,
- "GHZ_ideal_gain": 3.0,
- "GHZ_dephased_gain": 2.15,
- "SQL_gain": 1.73
- },
- {
- "N": 4,
- "visibility_dephased": 0.64,
- "GHZ_ideal_gain": 4.0,
- "GHZ_dephased_gain": 2.56,
- "SQL_gain": 2.0
- },
- {
- "N": 5,
- "visibility_dephased": 0.572,
- "GHZ_ideal_gain": 5.0,
- "GHZ_dephased_gain": 2.86,
- "SQL_gain": 2.24
- },
- {
- "N": 6,
- "visibility_dephased": 0.512,
- "GHZ_ideal_gain": 6.0,
- "GHZ_dephased_gain": 3.07,
- "SQL_gain": 2.45
- },
- {
- "N": 7,
- "visibility_dephased": 0.458,
- "GHZ_ideal_gain": 7.0,
- "GHZ_dephased_gain": 3.21,
- "SQL_gain": 2.65
- },
- {
- "N": 8,
- "visibility_dephased": 0.41,
- "GHZ_ideal_gain": 8.0,
- "GHZ_dephased_gain": 3.28,
- "SQL_gain": 2.83
- }
- ],
- "gain_growth_N2_to_N8": {
- "GHZ_ideal": 4.0,
- "GHZ_dephased": 2.05,
- "SQL": 2.01
- },
- "analytic_turnover_N": 8,
- "backend": {
- "active_backend": "default",
- "ran_on_real_hardware": false,
- "how_to_use_real_qc": "set KODEX_QC_BACKEND=ibm and KODEX_QC_TOKEN= to run this exact circuit on real quantum hardware",
- "honest_timeline": "fault-tolerant quantum ADVANTAGE for fusion kernels is ~8-10 yr out; this tooling makes the TESTING real and runnable TODAY, same code path"
- },
- "verdict": "REAL quantum-metrology computation: over N=2->8 the ideal GHZ gain grows 4.0x (Heisenberg ~ N), but with per-qubit dephasing (p=0.2) the dephased GHZ grows only 2.05x \u2014 essentially the SQL rate (2.01x, ~sqrt(N)). Dephasing ERASES the Heisenberg *scaling* to a bounded constant (gain turns over near N~9). HONEST NULL: no quantum-sensing advantage for fusion disruptions this decade \u2014 but a real, runnable metrology tool."
- },
- "sourced": {
- "file": "TRACK1_QUANTUM_RESULTS/track1_results.json (A7_metrology)",
- "note": "independent Track-1: correlated dephasing erases GHZ Heisenberg back to SQL"
- }
-}
diff --git a/publish/records/ksense/card.md b/publish/records/ksense/card.md
deleted file mode 100644
index ee53955684ece86415646467c415f50442a76161..0000000000000000000000000000000000000000
--- a/publish/records/ksense/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KSENSE — card
-
-- **name:** KSENSE
-- **function:** QSENSE
-- **status:** BUILT
-- **phase:** 2
-- **provenance:** SIM
-- **retired_by:** deployed physical diagnostic hardware
-- **gates:** ['HX-29']
-- **note:** REAL quantum-metrology evaluation (PennyLane mixed-state) — GHZ interferometry: ideal gives Heisenberg (gain ~ N) scaling, but realistic dephasing (NV/SQUID/SERF reality) collapses it back to the standard quantum limit (~sqrt(N)). Honest null where fusion disruptions live
-- **available:** True
-
-Benchmark headline: **REAL quantum metrology** (GHZ, PennyLane): ideal Heisenberg 4.0× vs dephased 2.05× ≈ SQL 2.01× — dephasing erases the advantage (honest null)
diff --git a/publish/records/ksense/ksense.py b/publish/records/ksense/ksense.py
deleted file mode 100644
index d63a3b3f77d5020890456d80462533a6a8afcbb8..0000000000000000000000000000000000000000
--- a/publish/records/ksense/ksense.py
+++ /dev/null
@@ -1,78 +0,0 @@
-"""KODEX KSENSE — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KSENSE(Surrogate):
- name = "KSENSE"; function = "QSENSE"; phase = 2; status = "BUILT"
- provenance = "SIM"
- retired_by = "deployed physical diagnostic hardware"
- real_codes = ("quantum Fisher information", "GHZ metrology", "PennyLane")
- gates = ("HX-29",)
- note = ("REAL quantum-metrology evaluation (PennyLane mixed-state) — GHZ interferometry: ideal "
- "gives Heisenberg (gain ~ N) scaling, but realistic dephasing (NV/SQUID/SERF reality) "
- "collapses it back to the standard quantum limit (~sqrt(N)). Honest null where fusion "
- "disruptions live")
-
- _P = 0.2 # per-qubit dephasing (realistic sensor decoherence)
-
- def _visibility(self, N, p):
- """GHZ interferometric visibility (X-parity contrast) under per-qubit dephasing."""
- import pennylane as qml
- dev = qml.device("default.mixed", wires=N)
- obs = qml.PauliX(0)
- for i in range(1, N):
- obs = obs @ qml.PauliX(i)
-
- @qml.qnode(dev)
- def sig():
- qml.Hadamard(0)
- for i in range(N - 1):
- qml.CNOT([0, i + 1]) # GHZ_N
- for i in range(N):
- qml.PhaseDamping(p, wires=i) # dephasing channel
- return qml.expval(obs)
- return abs(float(sig()))
-
- def _scaling(self, Ns=(2, 3, 4, 5, 6, 7, 8)):
- import numpy as np
- rows, peak_N, peak_gain = [], None, -1.0
- for N in Ns:
- Vd = self._visibility(N, self._P)
- gain_ideal, gain_deph, gain_sql = float(N), N * Vd, float(np.sqrt(N))
- if gain_deph > peak_gain:
- peak_gain, peak_N = gain_deph, N
- rows.append({"N": N, "visibility_dephased": round(Vd, 3),
- "GHZ_ideal_gain": round(gain_ideal, 2),
- "GHZ_dephased_gain": round(gain_deph, 2),
- "SQL_gain": round(gain_sql, 2)})
- return rows, peak_N
-
- def _predict(self, x):
- import numpy as np
- N = int(np.ravel(np.asarray(x, float))[0]) if x is not None else 4
- Vd = self._visibility(max(2, N), self._P)
- return Prediction(round(max(2, N) * Vd, 3), None, True,
- note=f"GHZ dephased metrological gain at N={max(2,N)} (SQL={np.sqrt(N):.2f})")
-
- def benchmark(self):
- rows, peak_N = self._scaling()
- a, b = rows[0], rows[-1]
- g_ideal = round(b["GHZ_ideal_gain"] / a["GHZ_ideal_gain"], 2) # ~ N growth (Heisenberg)
- g_deph = round(b["GHZ_dephased_gain"] / a["GHZ_dephased_gain"], 2)
- g_sql = round(b["SQL_gain"] / a["SQL_gain"], 2) # ~ sqrt(N)
- return {"member": self.name,
- "live_quantum_metrology": {
- "method": "PennyLane mixed-state GHZ interferometry; Heisenberg vs SQL vs dephasing",
- "dephasing_per_qubit": self._P,
- "scaling": rows,
- "gain_growth_N2_to_N8": {"GHZ_ideal": g_ideal, "GHZ_dephased": g_deph, "SQL": g_sql},
- "analytic_turnover_N": peak_N,
- "backend": qc.backend_note(),
- "verdict": (f"REAL quantum-metrology computation: over N=2->8 the ideal GHZ gain grows "
- f"{g_ideal}x (Heisenberg ~ N), but with per-qubit dephasing (p={self._P}) the "
- f"dephased GHZ grows only {g_deph}x — essentially the SQL rate ({g_sql}x, "
- f"~sqrt(N)). Dephasing ERASES the Heisenberg *scaling* to a bounded constant "
- f"(gain turns over near N~{peak_N + 1}). HONEST NULL: no quantum-sensing "
- f"advantage for fusion disruptions this decade — but a real, runnable "
- f"metrology tool.")},
- "sourced": {"file": "TRACK1_QUANTUM_RESULTS/track1_results.json (A7_metrology)",
- "note": "independent Track-1: correlated dephasing erases GHZ Heisenberg back to SQL"}}
diff --git a/publish/records/ksense/metadata.json b/publish/records/ksense/metadata.json
deleted file mode 100644
index 55c9240dbcad9c7b9b103875112377bbfaf9091e..0000000000000000000000000000000000000000
--- a/publish/records/ksense/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KSENSE",
- "page": "https://kronosfusionenergy.com/kodex/ksense",
- "title": "KODEX \u2014 KSENSE: QSENSE",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "QSENSE",
- "KODEX:KSENSE"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/ksense",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "isDerivedFrom",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KSENSE (QSENSE). REAL quantum-metrology evaluation (PennyLane mixed-state) \u2014 GHZ interferometry: ideal gives Heisenberg (gain ~ N) scaling, but realistic dephasing (NV/SQUID/SERF reality) collapses it back to the standard quantum limit (~sqrt(N)). Honest null where fusion disruptions live
Benchmark: **REAL quantum metrology** (GHZ, PennyLane): ideal Heisenberg 4.0\u00d7 vs dephased 2.05\u00d7 \u2248 SQL 2.01\u00d7 \u2014 dephasing erases the advantage (honest null)
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: isDerivedFrom 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/ksense · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KSENSE (QSENSE). REAL quantum-metrology evaluation (PennyLane mixed-state) \u2014 GHZ interferometry: ideal gives Heisenberg (gain ~ N) scaling, but realistic dephasing (NV/SQUID/SERF reality) collapses it back to the standard quantum limit (~sqrt(N)). Honest null where fusion disruptions liveBenchmark: **REAL quantum metrology** (GHZ, PennyLane): ideal Heisenberg 4.0\u00d7 vs dephased 2.05\u00d7 \u2248 SQL 2.01\u00d7 \u2014 dephasing erases the advantage (honest null)Part of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: isDerivedFrom 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/ksense \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/ktensor/CITATION.cff b/publish/records/ktensor/CITATION.cff
deleted file mode 100644
index f22ccdc7c70742912a7a19f86ec85eeb021e54e5..0000000000000000000000000000000000000000
--- a/publish/records/ktensor/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KTENSOR: TN (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/ktensor"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/ktensor/LICENSE b/publish/records/ktensor/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/ktensor/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/ktensor/MANIFEST.sha256 b/publish/records/ktensor/MANIFEST.sha256
deleted file mode 100644
index 4c09ed1cafc6b5a450e3c203079db90af6668946..0000000000000000000000000000000000000000
--- a/publish/records/ktensor/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KTENSOR SHA-256 (0.2.0, 2026-09-11)
-b90aa795b4f56bcfda80cb3d97cf3f277f1c2f48470548ec6764164e5fe6804b CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-b19fdb1269ffc82ba70203b24ed5e3b049acb0a3c3aa9cf0213d3d3d646dc9d3 benchmark.json
-26ac18f3970f88e8e6650a846ea103c307510e08cb8d4cb3defe65dd75a9bc00 card.md
-4f1461cb343c9877bb5b84f997d10b707daf326c5c5be05d2d876765dbf78f56 ktensor.py
-13c4678351a6290fda33a6c73cf5b4c54e22007d88889e99b2f35c26cc31a3f7 metadata.json
diff --git a/publish/records/ktensor/benchmark.json b/publish/records/ktensor/benchmark.json
deleted file mode 100644
index 2e7332f45fd88847c2a4e9cbb651ccc88e94bfda..0000000000000000000000000000000000000000
--- a/publish/records/ktensor/benchmark.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "member": "KTENSOR",
- "live_low_rank_rom": {
- "source": "real CGYRO A1e flux database (data.cgyro_flux_map_final)",
- "columns": [
- "a_LT",
- "shear",
- "Q_i",
- "Q_e"
- ],
- "full_16pt_map": {
- "shape": [
- 16,
- 4
- ],
- "rel_error_vs_bond_dim": {
- "1": 0.5903,
- "2": 0.3009,
- "3": 0.1214,
- "4": 0.0
- },
- "cumulative_variance": {
- "1": 0.6515,
- "2": 0.9094,
- "3": 0.9853,
- "4": 1.0
- },
- "effective_rank": 2.93
- },
- "turbulent_branch": {
- "shape": [
- 12,
- 4
- ],
- "rel_error_vs_bond_dim": {
- "1": 0.4964,
- "2": 0.2879,
- "3": 0.1304,
- "4": 0.0
- },
- "cumulative_variance": {
- "1": 0.7535,
- "2": 0.9171,
- "3": 0.983,
- "4": 1.0
- },
- "effective_rank": 2.75
- },
- "verdict": "MEASURED ROM characterization: the CGYRO flux database is only MODESTLY compressible \u2014 effective rank ~2.93 of 4; a bond-dim-2 MPS keeps 91% of the variance but 30% rel-L2 error (bond-dim 3 -> 12%). The turbulent flux spans 3+ orders of magnitude with a sharp turbulent<->quiet transition, so it RESISTS dramatic low-rank compression. An honest counter to the naive 'flux is trivially low-rank' expectation. Classical SVD/MPS; NO quantum-advantage claim.",
- "caveats": [
- "NOT a dramatic low-rank collapse: bond-dim-2 keeps ~91% variance but ~30% rel-L2 error",
- "classical SVD/MPS ROM of real CGYRO data \u2014 a many-body / quantum-bridge method, NOT a quantum-advantage claim",
- "the 9-pt regen flux DB is mostly NaN (a sparse linear scan); the completed 16-pt map is the honest dataset used here"
- ]
- },
- "method": "SVD low-rank / MPS bond-dimension compression (deterministic, CPU)",
- "sourced": {
- "file": "TRACK1_QUANTUM_RESULTS/track1_results.json (A5_MPS_flux)",
- "note": "the Track-1 'rank-2 ~1%' figure was on the sparse 9x4 regen table; on the complete map the flux is not strongly low-rank (this card)"
- }
-}
diff --git a/publish/records/ktensor/card.md b/publish/records/ktensor/card.md
deleted file mode 100644
index 9847b190c765ce7b80bb9889a213ae78832a8685..0000000000000000000000000000000000000000
--- a/publish/records/ktensor/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KTENSOR — card
-
-- **name:** KTENSOR
-- **function:** TN
-- **status:** BUILT
-- **phase:** 2
-- **provenance:** SIM
-- **retired_by:** exact many-body / quantum simulation
-- **gates:** ['KX-L3']
-- **note:** tensor-network / low-rank ROM compression of the real CGYRO A1e flux database (classical MPS-style SVD; a many-body method and bridge to quantum kernels — NO quantum-advantage claim)
-- **available:** True
-
-Benchmark headline: SVD/MPS ROM of the real CGYRO flux DB: **effective rank ~2.93 of 4 — modestly compressible, NOT strongly low-rank** (honest characterization; classical, no quantum advantage)
diff --git a/publish/records/ktensor/ktensor.py b/publish/records/ktensor/ktensor.py
deleted file mode 100644
index bc5f68529c693340050cdd0fd5d4fdb8b05bfc15..0000000000000000000000000000000000000000
--- a/publish/records/ktensor/ktensor.py
+++ /dev/null
@@ -1,110 +0,0 @@
-"""KODEX KTENSOR — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KTENSOR(Surrogate):
- name = "KTENSOR"; function = "TN"; phase = 2; status = "BUILT"
- provenance = "SIM"
- retired_by = "exact many-body / quantum simulation"
- real_codes = ("tensor-network / low-rank SVD (MPS-style) ROM",)
- gates = ("KX-L3",)
- note = ("tensor-network / low-rank ROM compression of the real CGYRO A1e flux "
- "database (classical MPS-style SVD; a many-body method and bridge to "
- "quantum kernels — NO quantum-advantage claim)")
-
- _COLS = ("a_LT", "shear", "Q_i", "Q_e") # operating grid + saturated fluxes
-
- def _load(self, turbulent_only=False):
- """Real CGYRO A1e flux database (the COMPLETE 16-pt map; NaN-free) as a
- (points x cols) matrix. The regen 9-pt DB is mostly NaN (a sparse linear scan),
- so we use the completed map, which is the honest, physically-complete dataset."""
- import numpy as np
- df = data.cgyro_flux_map_final()
- if turbulent_only:
- df = df[df["verdict"] == "turbulent"]
- A = df[list(self._COLS)].to_numpy(float)
- A = A[np.isfinite(A).all(1)] # drop any non-finite row (safety)
- src = "cgyro_flux_map_final" + (" (turbulent rows)" if turbulent_only else " (16 pts)")
- return A, list(self._COLS), src
-
- def _matrix(self, turbulent_only=False):
- """Per-column z-scored flux matrix so mixed-scale columns are comparable."""
- import numpy as np
- A, _, _ = self._load(turbulent_only)
- mu, sd = A.mean(0), A.std(0)
- sd = np.where(sd == 0, 1.0, sd)
- return (A - mu) / sd
-
- @staticmethod
- def _eff_rank(A):
- """Participation ratio of the singular-value spectrum (effective rank)."""
- import numpy as np
- s = np.linalg.svd(A, compute_uv=False)
- return float((s.sum() ** 2) / ((s ** 2).sum() + 1e-30))
-
- def _svd(self):
- import numpy as np
- A = self._matrix()
- U, s, Vt = np.linalg.svd(A, full_matrices=False)
- return A, U, s, Vt
-
- def _rel_error(self, rank):
- """rel-L2 (Frobenius) reconstruction error keeping `rank` singular values
- (= MPS bond dimension)."""
- import numpy as np
- A, U, s, Vt = self._svd()
- r = int(max(1, min(int(rank), len(s))))
- Ar = (U[:, :r] * s[:r]) @ Vt[:r]
- return float(np.linalg.norm(A - Ar) / (np.linalg.norm(A) + 1e-12))
-
- def _predict(self, x):
- """x = target bond dimension (retained rank) -> achievable reconstruction rel-error."""
- import numpy as np
- rank = int(np.ravel(np.asarray(x, dtype=float))[0])
- rmax = len(self._svd()[2])
- return Prediction(self._rel_error(rank), None, 1 <= rank <= rmax,
- note=f"rel-L2 reconstruction of the CGYRO flux DB at bond-dim "
- f"{rank} (of {rmax})")
-
- def benchmark(self):
- import numpy as np
-
- def curve_for(turb):
- A = self._matrix(turb)
- U, s, Vt = np.linalg.svd(A, full_matrices=False)
-
- def rel(r):
- r = int(max(1, min(r, len(s))))
- return float(np.linalg.norm(A - (U[:, :r] * s[:r]) @ Vt[:r]) / np.linalg.norm(A))
- var = (s ** 2) / (s ** 2).sum()
- return {"shape": list(A.shape),
- "rel_error_vs_bond_dim": {r: round(rel(r), 4) for r in range(1, len(s) + 1)},
- "cumulative_variance": {r: round(float(var[:r].sum()), 4)
- for r in range(1, len(s) + 1)},
- "effective_rank": round(self._eff_rank(A), 2)}
-
- full = curve_for(False)
- turb = curve_for(True)
- v2 = full["cumulative_variance"][2]
- e2, e3 = full["rel_error_vs_bond_dim"][2], full["rel_error_vs_bond_dim"][3]
- return {"member": self.name,
- "live_low_rank_rom": {
- "source": "real CGYRO A1e flux database (data.cgyro_flux_map_final)",
- "columns": list(self._COLS),
- "full_16pt_map": full, "turbulent_branch": turb,
- "verdict": (f"MEASURED ROM characterization: the CGYRO flux database is only MODESTLY "
- f"compressible — effective rank ~{full['effective_rank']} of 4; a bond-dim-2 "
- f"MPS keeps {v2:.0%} of the variance but {e2:.0%} rel-L2 error (bond-dim 3 -> "
- f"{e3:.0%}). The turbulent flux spans 3+ orders of magnitude with a sharp "
- f"turbulent<->quiet transition, so it RESISTS dramatic low-rank compression. "
- f"An honest counter to the naive 'flux is trivially low-rank' expectation. "
- f"Classical SVD/MPS; NO quantum-advantage claim."),
- "caveats": ["NOT a dramatic low-rank collapse: bond-dim-2 keeps ~91% variance but "
- "~30% rel-L2 error",
- "classical SVD/MPS ROM of real CGYRO data — a many-body / quantum-bridge "
- "method, NOT a quantum-advantage claim",
- "the 9-pt regen flux DB is mostly NaN (a sparse linear scan); the completed "
- "16-pt map is the honest dataset used here"]},
- "method": "SVD low-rank / MPS bond-dimension compression (deterministic, CPU)",
- "sourced": {"file": "TRACK1_QUANTUM_RESULTS/track1_results.json (A5_MPS_flux)",
- "note": "the Track-1 'rank-2 ~1%' figure was on the sparse 9x4 regen table; on "
- "the complete map the flux is not strongly low-rank (this card)"}}
diff --git a/publish/records/ktensor/metadata.json b/publish/records/ktensor/metadata.json
deleted file mode 100644
index 2dfb306502470bd4478f7ec4bbbfe4f695c5b4b8..0000000000000000000000000000000000000000
--- a/publish/records/ktensor/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KTENSOR",
- "page": "https://kronosfusionenergy.com/kodex/ktensor",
- "title": "KODEX \u2014 KTENSOR: TN",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "TN",
- "KODEX:KTENSOR"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/ktensor",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "isDerivedFrom",
- "identifier": "10.5281/zenodo.21842371",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KTENSOR (TN). tensor-network / low-rank ROM compression of the real CGYRO A1e flux database (classical MPS-style SVD; a many-body method and bridge to quantum kernels \u2014 NO quantum-advantage claim)
Benchmark: SVD/MPS ROM of the real CGYRO flux DB: **effective rank ~2.93 of 4 \u2014 modestly compressible, NOT strongly low-rank** (honest characterization; classical, no quantum advantage)
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: isDerivedFrom 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/ktensor · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KTENSOR (TN). tensor-network / low-rank ROM compression of the real CGYRO A1e flux database (classical MPS-style SVD; a many-body method and bridge to quantum kernels \u2014 NO quantum-advantage claim)Benchmark: SVD/MPS ROM of the real CGYRO flux DB: **effective rank ~2.93 of 4 \u2014 modestly compressible, NOT strongly low-rank** (honest characterization; classical, no quantum advantage)Part of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: isDerivedFrom 10.5281/zenodo.21842371. Home: https://kronosfusionenergy.com/kodex/ktensor \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package: https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kward/CITATION.cff b/publish/records/kward/CITATION.cff
deleted file mode 100644
index f1467777aa4d91d694e585ec6d5002146b3914ba..0000000000000000000000000000000000000000
--- a/publish/records/kward/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KWARD: DISRUPT (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kward"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kward/LICENSE b/publish/records/kward/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kward/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kward/MANIFEST.sha256 b/publish/records/kward/MANIFEST.sha256
deleted file mode 100644
index fd4973963a9a5c44f160e5b33a9f7cf709d902eb..0000000000000000000000000000000000000000
--- a/publish/records/kward/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KWARD SHA-256 (0.2.0, 2026-09-11)
-ea7eaf5d498132c6d913f161e0a52ec41d4d81e1f0165901da79e22530a19dcf CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-990f99052c6705b956f2e9c73e8cf1f18305d3b82f502c39cecaa966af5b5ef5 benchmark.json
-41bde0fc5234ded342503905745beeaef66506ed4792a88a0931cc1c9274635a card.md
-9f90607739a0b632bf94e82381173a4531a3784af7946829fa8e19d869bb9256 kward.py
-481557cb3ec5ad099bf00413de6ac5db58378b5c4eef08a883b794f6d095be78 metadata.json
diff --git a/publish/records/kward/benchmark.json b/publish/records/kward/benchmark.json
deleted file mode 100644
index 04b574cf19bbf00a1a2414a0758c7e9679bfacb0..0000000000000000000000000000000000000000
--- a/publish/records/kward/benchmark.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "member": "KWARD",
- "live_real_device": {
- "source": "592 real MAST shots (FAIR-MAST), fixed 50 ms window",
- "auc": 0.98,
- "auc_precursor_only_no_Ip_variability": 0.984,
- "ece": 0.0349,
- "n_shots": 591,
- "n_disruptive": 276,
- "n_test_shots": 178,
- "features": [
- "ip_mean_MA",
- "ip_std",
- "ip_slope",
- "ip_range",
- "ne_mean",
- "greenwald_proxy",
- "beta_n",
- "li",
- "q95",
- "n1_rms_mean",
- "n1_rms_slope",
- "prad_mean",
- "prad_slope"
- ],
- "caveats": [
- "labels DERIVED from Ip current-quench (heuristic, not physicist-verified)",
- "fixed-window physics features only (no duration leakage)",
- "Ip-variability features SHARE information with the Ip-derived label; the independent_precursor_only_auc below (n=1 Mirnov + P_rad ONLY) is the label-independent number and is the one to cite",
- "'n1_rms' is a broadband Mirnov fluctuation RMS (low-n MHD-activity proxy), NOT a toroidal-n=1 Fourier decomposition (array geometry on disk lacks toroidal-angle metadata)",
- "EFIT kinetics sparse (~16%); n=1 Mirnov ~99% / P_rad ~78% shot coverage (FAIR-MAST, pulled 2026-09-10)"
- ],
- "independent_precursors_present": true,
- "independent_precursor_only_auc": 0.975,
- "note_independent": "n=1 Mirnov + P_rad present -> this AUC uses ONLY diagnostics independent of Ip and the Ip-derived label"
- },
- "machinery_check_synth": {
- "auc": 0.916
- },
- "sourced_twin": {
- "file": "track4_disruption/disruption_metrics.csv",
- "note": "prior twin-synthetic result AUC 0.990 (superseded by real-device above)"
- }
-}
diff --git a/publish/records/kward/card.md b/publish/records/kward/card.md
deleted file mode 100644
index 00bed28f2ed25408568507f0cf441e80860af5da..0000000000000000000000000000000000000000
--- a/publish/records/kward/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KWARD — card
-
-- **name:** KWARD
-- **function:** DISRUPT
-- **status:** BUILT
-- **phase:** 1
-- **provenance:** REAL-ANCHOR
-- **retired_by:** physicist-verified disruption labels + full precursor diagnostics
-- **gates:** ['AC-20', 'AC-21']
-- **note:** disruption early-warning — real-device (592 MAST shots), calibrated ensemble + per-shot OOD gate; advisory, downstream of the KGATE clamp
-- **available:** True
-
-Benchmark headline: real-device AUC 0.98 (591 MAST shots), ECE 0.0349; **independent-precursor AUC 0.975** (n=1 Mirnov + P_rad ONLY, label-independent); labels heuristic (Ip-quench)
diff --git a/publish/records/kward/kward.py b/publish/records/kward/kward.py
deleted file mode 100644
index 424943e6df564a3c3028c8f73a2e1291fb5810c6..0000000000000000000000000000000000000000
--- a/publish/records/kward/kward.py
+++ /dev/null
@@ -1,150 +0,0 @@
-"""KODEX KWARD — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KWARD(Surrogate):
- name = "KWARD"; function = "DISRUPT"; phase = 1; status = "BUILT"
- provenance = "REAL-ANCHOR"
- retired_by = "physicist-verified disruption labels + full precursor diagnostics"
- real_codes = ("real MAST shots (FAIR-MAST)",)
- gates = ("AC-20", "AC-21")
- note = ("disruption early-warning — real-device (592 MAST shots), calibrated "
- "ensemble + per-shot OOD gate; advisory, downstream of the KGATE clamp")
-
- def __init__(self):
- self._clf = None; self._gate = None; self._auc = None; self._n = None
-
- # -- feature extraction (physics only; no duration) ------------------
- @staticmethod
- def _mean_slope(a, t):
- """NaN-safe mean + linear slope of a channel over the window."""
- g = np.isfinite(a)
- if g.sum() < 3:
- return (np.nan, np.nan)
- return (float(np.mean(a[g])),
- float(np.polyfit(t[g] - t[g][0], a[g], 1)[0]))
-
- def _winfeat(self, w):
- ip = w["Ip"].to_numpy(float) / 1e6 # MA
- t = w["time_s"].to_numpy(float)
- good = np.isfinite(ip)
- if good.sum() < 3:
- return None
- ipg, tg = np.abs(ip[good]), t[good]
- slope = np.polyfit(tg - tg[0], ipg, 1)[0] if len(tg) > 2 else 0.0
- ne = float(np.nanmean(w["ne"].to_numpy(float)))
- gw = ne / (np.mean(ipg) + 1e-6) if np.isfinite(ne) else np.nan
- base = [float(np.mean(ipg)), float(np.std(ipg)), float(slope), float(np.ptp(ipg)),
- ne, gw, float(np.nanmean(w["beta_n"])), float(np.nanmean(w["li"])),
- float(np.nanmean(w["q95"]))]
- # INDEPENDENT precursors — used automatically once f7 stages these columns
- def _col(c):
- return w[c].to_numpy(float) if c in w.columns else np.full(len(w), np.nan)
- n1m, n1s = self._mean_slope(_col("n1_rms"), t)
- prm, prs = self._mean_slope(_col("prad"), t)
- return base + [n1m, n1s, prm, prs]
-
- def _real_features(self):
- sh, lab = data.kward_real()
- labmap = {int(r.shot_id): (int(r.disruptive), r.t_disr_s) for r in lab.itertuples()}
- X, y, ids = [], [], []
- for sid, g in sh.groupby("shot_id"):
- if int(sid) not in labmap:
- continue
- disr, tdis = labmap[int(sid)]
- g = g.sort_values("time_s"); t = g["time_s"].to_numpy(float)
- ip = g["Ip"].to_numpy(float)
- if np.isfinite(ip).sum() < 10:
- continue
- if disr == 1 and np.isfinite(tdis):
- mask = (t >= tdis - _WINDOW_S) & (t < tdis) # pre-quench precursor
- else:
- tc = t[np.nanargmax(np.where(np.isfinite(ip), np.abs(ip), -np.inf))]
- mask = (t >= tc - _WINDOW_S / 2) & (t < tc + _WINDOW_S / 2) # flat-top
- if mask.sum() < 5:
- continue
- f = self._winfeat(g[mask])
- if f is None:
- continue
- X.append(f); y.append(disr); ids.append(int(sid))
- X = np.array(X, float); y = np.array(y, int)
- med = np.nanmedian(X, axis=0)
- bad = np.where(~np.isfinite(X)); X[bad] = np.take(med, bad[1])
- X[~np.isfinite(X)] = 0.0 # all-NaN optional columns (channels not staged yet)
- return X, y, np.array(ids)
-
- def _fit(self):
- if self._clf is None:
- X, y, ids = self._real_features()
- rng = np.random.default_rng(uq.SEED)
- perm = rng.permutation(len(y)); X, y = X[perm], y[perm] # shot-level shuffle
- ntr = int(0.7 * len(y))
- self._clf = uq.CalibratedClassifier().fit(X[:ntr], y[:ntr])
- self._gate = uq.MahalanobisGate(0.05).fit(X[:ntr])
- from sklearn.metrics import roc_auc_score
- p = self._clf.predict_proba(X[ntr:])
- self._auc = float(roc_auc_score(y[ntr:], p))
- self._ece = metrics.ece_classification(y[ntr:], p)
- self._n = {"total": len(y), "disruptive": int(y.sum()), "test": len(y) - ntr}
- self._Xall, self._yall = X, y
- # honesty check: AUC WITHOUT the Ip-variability features (ip_std, ip_range),
- # which share information with the Ip-derived labels
- keep = [i for i in range(len(_FEATURES)) if i not in (1, 3)]
- c2 = uq.CalibratedClassifier().fit(X[:ntr][:, keep], y[:ntr])
- self._auc_precursor = float(roc_auc_score(y[ntr:], c2.predict_proba(X[ntr:][:, keep])))
- return self._clf
-
- def _predict(self, x):
- """x = 9-feature vector (see _FEATURES) -> calibrated disruption probability."""
- self._fit()
- x = np.asarray(x, float).reshape(1, -1)
- p = float(self._clf.predict_proba(x)[0])
- return Prediction(p, None, self._gate.in_domain(x),
- note="calibrated disruption probability (real-device); "
- "abstains -> hardware failsafe when out-of-domain")
-
- def benchmark(self):
- self._fit()
- out = {"member": self.name,
- "live_real_device": {
- "source": "592 real MAST shots (FAIR-MAST), fixed 50 ms window",
- "auc": round(self._auc, 3),
- "auc_precursor_only_no_Ip_variability": round(self._auc_precursor, 3),
- "ece": round(self._ece, 4),
- "n_shots": self._n["total"], "n_disruptive": self._n["disruptive"],
- "n_test_shots": self._n["test"],
- "features": _FEATURES,
- "caveats": ["labels DERIVED from Ip current-quench (heuristic, not "
- "physicist-verified)",
- "fixed-window physics features only (no duration leakage)",
- "Ip-variability features SHARE information with the Ip-derived "
- "label; the independent_precursor_only_auc below (n=1 Mirnov + "
- "P_rad ONLY) is the label-independent number and is the one to cite",
- "'n1_rms' is a broadband Mirnov fluctuation RMS (low-n MHD-activity "
- "proxy), NOT a toroidal-n=1 Fourier decomposition (array geometry "
- "on disk lacks toroidal-angle metadata)",
- "EFIT kinetics sparse (~16%); n=1 Mirnov ~99% / P_rad ~78% shot "
- "coverage (FAIR-MAST, pulled 2026-09-10)"]}}
- # independent-precursor validation: activates automatically once f7 stages the
- # n=1 Mirnov + P_rad channels (different diagnostics from Ip -> fully label-independent)
- from sklearn.metrics import roc_auc_score
- indep_present = bool(np.isfinite(self._Xall[:, _INDEP_IDX]).any()
- and np.ptp(self._Xall[:, _INDEP_IDX]) > 0)
- out["live_real_device"]["independent_precursors_present"] = indep_present
- if indep_present:
- Xi = self._Xall[:, _INDEP_IDX]; ntr = int(0.7 * len(self._yall))
- ci = uq.CalibratedClassifier().fit(Xi[:ntr], self._yall[:ntr])
- out["live_real_device"]["independent_precursor_only_auc"] = round(
- float(roc_auc_score(self._yall[ntr:], ci.predict_proba(Xi[ntr:]))), 3)
- out["live_real_device"]["note_independent"] = ("n=1 Mirnov + P_rad present -> "
- "this AUC uses ONLY diagnostics independent of Ip and the Ip-derived label")
- else:
- out["live_real_device"]["note_independent"] = ("n=1 Mirnov + P_rad not staged yet; "
- "extractor is wired to use them automatically once present")
- # secondary: the calibration+OOD machinery on the self-contained synthetic set
- Xs, ys = _synth(600, seed=uq.SEED + 7)
- clf = uq.CalibratedClassifier().fit(*_synth(1200))
- from sklearn.metrics import roc_auc_score
- out["machinery_check_synth"] = {"auc": round(float(roc_auc_score(ys, clf.predict_proba(Xs))), 3)}
- out["sourced_twin"] = {"file": "track4_disruption/disruption_metrics.csv",
- "note": "prior twin-synthetic result AUC 0.990 (superseded by real-device above)"}
- return out
diff --git a/publish/records/kward/metadata.json b/publish/records/kward/metadata.json
deleted file mode 100644
index c2b048f1d5d207b2eef20a5efc19c53a5f59b798..0000000000000000000000000000000000000000
--- a/publish/records/kward/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KWARD",
- "page": "https://kronosfusionenergy.com/kodex/kward",
- "title": "KODEX \u2014 KWARD: DISRUPT",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "DISRUPT",
- "KODEX:KWARD"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kward",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "isDerivedFrom",
- "identifier": "https://mastapp.site",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KWARD (DISRUPT). disruption early-warning \u2014 real-device (592 MAST shots), calibrated ensemble + per-shot OOD gate; advisory, downstream of the KGATE clamp
Benchmark: real-device AUC 0.98 (591 MAST shots), ECE 0.0349; **independent-precursor AUC 0.975** (n=1 Mirnov + P_rad ONLY, label-independent); labels heuristic (Ip-quench)
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: isDerivedFrom https://mastapp.site. Home: https://kronosfusionenergy.com/kodex/kward · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KWARD (DISRUPT). disruption early-warning \u2014 real-device (592 MAST shots), calibrated ensemble + per-shot OOD gate; advisory, downstream of the KGATE clampBenchmark: real-device AUC 0.98 (591 MAST shots), ECE 0.0349; **independent-precursor AUC 0.975** (n=1 Mirnov + P_rad ONLY, label-independent); labels heuristic (Ip-quench)Part of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: isDerivedFrom https://mastapp.site. Home: https://kronosfusionenergy.com/kodex/kward \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/records/kyro/CITATION.cff b/publish/records/kyro/CITATION.cff
deleted file mode 100644
index 9a935f12cc31f53e889dae69213ab11255e46bc0..0000000000000000000000000000000000000000
--- a/publish/records/kyro/CITATION.cff
+++ /dev/null
@@ -1,13 +0,0 @@
-cff-version: 1.2.0
-title: "KODEX — KYRO: TRANSPORT (Kronos Family of Codes)"
-version: "0.2.0"
-date-released: "2026-09-11"
-license: Apache-2.0
-url: "https://kronosfusionenergy.com/kodex/kyro"
-repository-code: "https://github.com/KronosFE/kronos-ml"
-type: software
-authors:
- - family-names: Ford
- given-names: "P. I."
- orcid: "https://orcid.org/0000-0003-0395-1752"
- affiliation: "Kronos Fusion Energy"
diff --git a/publish/records/kyro/LICENSE b/publish/records/kyro/LICENSE
deleted file mode 100644
index 55cfd0dceda56d691bf4d43655d847a9be9f4b7d..0000000000000000000000000000000000000000
--- a/publish/records/kyro/LICENSE
+++ /dev/null
@@ -1,189 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but not
- limited to compiled object code, generated documentation, and
- conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work.
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including the
- original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or Derivative
- Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "[]"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright 2026 Kronos Fusion Energy
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
diff --git a/publish/records/kyro/MANIFEST.sha256 b/publish/records/kyro/MANIFEST.sha256
deleted file mode 100644
index d78d26077884a72d248620e85b80b89bb3b47937..0000000000000000000000000000000000000000
--- a/publish/records/kyro/MANIFEST.sha256
+++ /dev/null
@@ -1,7 +0,0 @@
-# KODEX KYRO SHA-256 (0.2.0, 2026-09-11)
-285a2d883fed385680c50a86f798fa285b153ce1c95a23de8c4f0f67765dbca6 CITATION.cff
-ae87ebecd1f321a19799e21f6fe25e4a74261f16c91e6cb6cc248e6197dcf838 LICENSE
-a6a7ab230b48169c0540cfdddba0e895c781490b488f83ccf7b52164bc6ab85c benchmark.json
-2b64dcb6289ba82e360e6f76ab548cfdeba3de188daf0bbbafd06083015fc8fb card.md
-76f5aeac91ca7d1c06c5373e7b888ff09c8ec3a35af087ecdd9e51d0b9549dc2 kyro.py
-70617e1b3b12c27b9572cef5bd15350805b4806bacecaeec85e11c097bb2abee metadata.json
diff --git a/publish/records/kyro/benchmark.json b/publish/records/kyro/benchmark.json
deleted file mode 100644
index 32747ce23b3df692892cd4565ada9d2f050ea450..0000000000000000000000000000000000000000
--- a/publish/records/kyro/benchmark.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "member": "KYRO",
- "accuracy": {
- "r2_log_Qtot": 0.858,
- "rmse_log_Qtot": 0.857,
- "coverage_90": 0.875,
- "turbulent_quiet_LOO": "16/16 correct",
- "map": "12 turbulent / 4 quiet (16/16 complete)"
- },
- "speed": {
- "surrogate_ms_per_point": 0.329,
- "cgyro_gpu_h_per_point_measured": 2.89,
- "speedup_x_vs_cgyro": "3.2e+07",
- "speedup_note": "ms inference vs GPU-hours for the CONVERGED flux value",
- "fidelity": "representative mu=400; real-mass gold deferred"
- },
- "provenance": "COMPLETE 16/16 CGYRO A1e map (mu=400); operating point subcritical"
-}
diff --git a/publish/records/kyro/card.md b/publish/records/kyro/card.md
deleted file mode 100644
index 7cd1cf750ac0bebd460883603c6f372517942c77..0000000000000000000000000000000000000000
--- a/publish/records/kyro/card.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# KODEX KYRO — card
-
-- **name:** KYRO
-- **function:** TRANSPORT
-- **status:** BUILT
-- **phase:** 1
-- **provenance:** CGYRO-urep
-- **retired_by:** CGYRO (nonlinear gyrokinetic)
-- **gates:** ['BR-L2-A12', 'BR-L2-A1e', 'BR-L2-A1c']
-- **note:** CGYRO turbulence-transport surrogate over the complete 16/16 A1e map (total heat flux Q_tot + turbulent/quiet); mu=400 rep, real-mass gold deferred
-- **available:** True
-
-Benchmark headline: complete 16/16 map (12 turbulent / 4 quiet (16/16 complete)); turbulent/quiet **16/16 correct**, R²=0.858 / cov90=0.875; **0.329 ms vs 2.89 GPU-h/pt** (μ=400)
diff --git a/publish/records/kyro/kyro.py b/publish/records/kyro/kyro.py
deleted file mode 100644
index c8007eded32a18aa2067b573e40ffbc3840fa3ef..0000000000000000000000000000000000000000
--- a/publish/records/kyro/kyro.py
+++ /dev/null
@@ -1,77 +0,0 @@
-"""KODEX KYRO — source excerpt (class). Full runnable package: https://github.com/KronosFE/kronos-ml"""
-
-@register
-class KYRO(Surrogate):
- name = "KYRO"; function = "TRANSPORT"; phase = 1; status = "BUILT"
- provenance = "CGYRO-urep"
- retired_by = "CGYRO (nonlinear gyrokinetic)"
- real_codes = ("cgyro", "gene", "gs2", "tglf")
- gates = ("BR-L2-A12", "BR-L2-A1e", "BR-L2-A1c")
- note = ("CGYRO turbulence-transport surrogate over the complete 16/16 A1e map "
- "(total heat flux Q_tot + turbulent/quiet); mu=400 rep, real-mass gold deferred")
-
- def __init__(self):
- self._gp = None
-
- def _map(self):
- df = data.cgyro_flux_map_final()
- X = df[["a_LT", "shear"]].to_numpy(float)
- y = np.log10(np.clip(df.Q_tot.to_numpy(float), 0, None) + 1e-4)
- return X, y, df
-
- def _fit(self):
- if self._gp is None:
- X, y, _ = self._map()
- self._gp = uq.GPHead().fit(X, y)
- return self._gp
-
- def in_domain(self, x):
- x = np.asarray(x, float).ravel()
- return bool(_ALT[0] <= x[0] <= _ALT[1] and _SHEAR[0] <= x[1] <= _SHEAR[1])
-
- def _predict(self, x):
- """x = [a_LT, shear] -> total gyro-Bohm heat flux Q_tot, with GP band and
- a turbulent/quiet verdict."""
- gp = self._fit()
- x = np.asarray(x, float).reshape(1, -1)
- m, s = gp.predict(x)
- qtot = max(float(10 ** m[0] - 1e-4), 0.0)
- unc = float(qtot * np.log(10) * s[0]) # propagate log10 std
- verdict = "turbulent" if qtot > _QUIET_THRESHOLD else "quiet"
- return Prediction(qtot, unc, self.in_domain(x),
- note=f"Q_tot={qtot:.3g} gyroBohm ({verdict})")
-
- def _x_from_params(self, a_LT=3.0, shear=1.0, **_):
- return [float(a_LT), float(shear)]
-
- def benchmark(self):
- X, y, df = self._map()
- n = len(y)
- mu = np.zeros(n); sd = np.zeros(n)
- for i in range(n):
- tr = np.arange(n) != i
- h = uq.GPHead().fit(X[tr], y[tr])
- m, s = h.predict(X[i:i + 1]); mu[i], sd[i] = m[0], s[0]
- # turbulent/quiet classification from the leave-one-out prediction
- pred_qtot = np.clip(10 ** mu - 1e-4, 0, None)
- pred_verd = np.where(pred_qtot > _QUIET_THRESHOLD, "turbulent", "quiet")
- class_ok = int(np.sum(pred_verd == df.verdict.to_numpy()))
- acc = {"r2_log_Qtot": round(metrics.r2(y, mu), 3),
- "rmse_log_Qtot": round(metrics.rmse(y, mu), 3),
- "coverage_90": round(metrics.coverage_at_level(y, mu, np.clip(sd, 1e-6, None), 0.90), 3),
- "turbulent_quiet_LOO": f"{class_ok}/{n} correct",
- "map": f"{int((df.verdict=='turbulent').sum())} turbulent / "
- f"{int((df.verdict=='quiet').sum())} quiet (16/16 complete)"}
- gp = self._fit()
- t0 = time.perf_counter()
- for _ in range(200):
- gp.predict(np.array([[3.0, 1.0]]))
- ms = (time.perf_counter() - t0) / 200 * 1e3
- speedup = _CGYRO_GPU_H_PER_POINT * 3600.0 / (ms / 1e3)
- speed = {"surrogate_ms_per_point": round(ms, 3),
- "cgyro_gpu_h_per_point_measured": _CGYRO_GPU_H_PER_POINT,
- "speedup_x_vs_cgyro": f"{speedup:.1e}",
- "speedup_note": "ms inference vs GPU-hours for the CONVERGED flux value",
- "fidelity": "representative mu=400; real-mass gold deferred"}
- return {"member": self.name, "accuracy": acc, "speed": speed,
- "provenance": "COMPLETE 16/16 CGYRO A1e map (mu=400); operating point subcritical"}
diff --git a/publish/records/kyro/metadata.json b/publish/records/kyro/metadata.json
deleted file mode 100644
index dca2fe138cbaaf9a0215b7f3641f8cdd1be3da0b..0000000000000000000000000000000000000000
--- a/publish/records/kyro/metadata.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "kname": "KYRO",
- "page": "https://kronosfusionenergy.com/kodex/kyro",
- "title": "KODEX \u2014 KYRO: TRANSPORT",
- "version": "0.2.0",
- "publication_date": "2026-09-11",
- "language": "eng",
- "upload_type": "software",
- "creators": [
- {
- "name": "Ford, P. I.",
- "orcid": "0000-0003-0395-1752",
- "affiliation": "Kronos Fusion Energy"
- }
- ],
- "license": {
- "id": "Apache-2.0"
- },
- "keywords": [
- "fusion energy",
- "spherical tokamak",
- "D-3He",
- "AI/ML surrogate model",
- "uncertainty quantification",
- "digital twin",
- "Kronos Fusion Energy",
- "TRANSPORT",
- "KODEX:KYRO"
- ],
- "related_identifiers": [
- {
- "relation": "isDocumentedBy",
- "identifier": "https://kronosfusionenergy.com/kodex/kyro",
- "resource_type": "publication-other"
- },
- {
- "relation": "isPartOf",
- "identifier": "https://kronosfusionenergy.com/kodex",
- "resource_type": "publication-other"
- },
- {
- "relation": "isSupplementTo",
- "identifier": "https://github.com/KronosFE/kronos-ml",
- "resource_type": "software"
- },
- {
- "relation": "references",
- "identifier": "10.5281/zenodo.22645689",
- "resource_type": "publication"
- },
- {
- "relation": "isCompiledBy",
- "identifier": "https://github.com/KronosFE/kronos-toolkit",
- "resource_type": "software"
- },
- {
- "relation": "isDerivedFrom",
- "identifier": "10.5281/zenodo.22136279",
- "resource_type": "dataset"
- }
- ],
- "description": "KODEX — KYRO (TRANSPORT). CGYRO turbulence-transport surrogate over the complete 16/16 A1e map (total heat flux Q_tot + turbulent/quiet); mu=400 rep, real-mass gold deferred
Benchmark: complete 16/16 map (12 turbulent / 4 quiet (16/16 complete)); turbulent/quiet **16/16 correct**, R\u00b2=0.858 / cov90=0.875; **0.329 ms vs 2.89 GPU-h/pt** (\u03bc=400)
Part of KODEX, the Kronos Family of Codes — a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) → (y, uncertainty, in_domain)). Provenance: isDerivedFrom 10.5281/zenodo.22136279. Home: https://kronosfusionenergy.com/kodex/kyro · suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.
",
- "description_plain": "KODEX \u2014 KYRO (TRANSPORT). CGYRO turbulence-transport surrogate over the complete 16/16 A1e map (total heat flux Q_tot + turbulent/quiet); mu=400 rep, real-mass gold deferredBenchmark: complete 16/16 map (12 turbulent / 4 quiet (16/16 complete)); turbulent/quiet **16/16 correct**, R\u00b2=0.858 / cov90=0.875; **0.329 ms vs 2.89 GPU-h/pt** (\u03bc=400)Part of KODEX, the Kronos Family of Codes \u2014 a benchmarked AI/ML fusion surrogate suite with calibrated uncertainty and an abstention gate (predict(x) \u2192 (y, uncertainty, in_domain)). Provenance: isDerivedFrom 10.5281/zenodo.22136279. Home: https://kronosfusionenergy.com/kodex/kyro \u00b7 suite: https://github.com/KronosFE/kronos-ml. Licensed under Apache-2.0. Honest card preserved verbatim.",
- "notes": "Draft-first per-code deposit. Full package (all 26 codes): https://github.com/KronosFE/kronos-ml. Provenance chain in card.md + MANIFEST.sha256."
-}
diff --git a/publish/state/dataverse_drafts.json b/publish/state/dataverse_drafts.json
deleted file mode 100644
index c7867d50797747222b993056421c4914869a24ea..0000000000000000000000000000000000000000
--- a/publish/state/dataverse_drafts.json
+++ /dev/null
@@ -1,157 +0,0 @@
-{
- "KAIROS": {
- "pid": "doi:10.7910/DVN/GOZGCM",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/GOZGCM&version=DRAFT",
- "done": true,
- "review": true
- },
- "KBREED": {
- "pid": "doi:10.7910/DVN/OPJHP3",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/OPJHP3&version=DRAFT",
- "done": true,
- "review": true
- },
- "KBURN": {
- "pid": "doi:10.7910/DVN/ITN6JZ",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/ITN6JZ&version=DRAFT",
- "done": true,
- "review": true
- },
- "KDRIVE": {
- "pid": "doi:10.7910/DVN/YKKLQ7",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/YKKLQ7&version=DRAFT",
- "done": true,
- "review": true
- },
- "KECON": {
- "pid": "doi:10.7910/DVN/WBHQ7S",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/WBHQ7S&version=DRAFT",
- "done": true,
- "review": true
- },
- "KEYE": {
- "pid": "doi:10.7910/DVN/5UILC8",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/5UILC8&version=DRAFT",
- "done": true,
- "review": true
- },
- "KFLOW": {
- "pid": "doi:10.7910/DVN/XUXC7B",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/XUXC7B&version=DRAFT",
- "done": true,
- "review": true
- },
- "KFLUX": {
- "pid": "doi:10.7910/DVN/3F0NCW",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/3F0NCW&version=DRAFT",
- "done": true,
- "review": true
- },
- "KFORGE": {
- "pid": "doi:10.7910/DVN/OVOVVN",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/OVOVVN&version=DRAFT",
- "done": true,
- "review": true
- },
- "KFUEL": {
- "pid": "doi:10.7910/DVN/89A8GS",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/89A8GS&version=DRAFT",
- "done": true,
- "review": true
- },
- "KFUSE": {
- "pid": "doi:10.7910/DVN/SMA2OP",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/SMA2OP&version=DRAFT",
- "done": true,
- "review": true
- },
- "KGATE": {
- "pid": "doi:10.7910/DVN/2CKPZH",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/2CKPZH&version=DRAFT",
- "done": true,
- "review": true
- },
- "KGEN": {
- "pid": "doi:10.7910/DVN/OCTF8U",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/OCTF8U&version=DRAFT",
- "done": true,
- "review": true
- },
- "KHALO": {
- "pid": "doi:10.7910/DVN/V5YM23",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/V5YM23&version=DRAFT",
- "done": true,
- "review": true
- },
- "KISO": {
- "pid": "doi:10.7910/DVN/ELXAEY",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/ELXAEY&version=DRAFT",
- "done": true,
- "review": true
- },
- "KLAW": {
- "pid": "doi:10.7910/DVN/ANAFXK",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/ANAFXK&version=DRAFT",
- "done": true
- },
- "KMAT": {
- "pid": "doi:10.7910/DVN/IJG9FT",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/IJG9FT&version=DRAFT",
- "done": true,
- "review": true
- },
- "KOIL": {
- "pid": "doi:10.7910/DVN/N5WLNR",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/N5WLNR&version=DRAFT",
- "done": true,
- "review": true
- },
- "KORE": {
- "pid": "doi:10.7910/DVN/DCFLOI",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/DCFLOI&version=DRAFT",
- "done": true,
- "review": true
- },
- "KPATH": {
- "pid": "doi:10.7910/DVN/8QIUD4",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/8QIUD4&version=DRAFT",
- "done": true,
- "review": true
- },
- "KPILOT": {
- "pid": "doi:10.7910/DVN/EYD6FZ",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/EYD6FZ&version=DRAFT",
- "done": true,
- "review": true
- },
- "KQROSS": {
- "pid": "doi:10.7910/DVN/IIDBCF",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/IIDBCF&version=DRAFT",
- "done": true,
- "review": true
- },
- "KQUBIT": {
- "pid": "doi:10.7910/DVN/2BC8BL",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/2BC8BL&version=DRAFT",
- "done": true,
- "review": true
- },
- "KSENSE": {
- "pid": "doi:10.7910/DVN/5LQJAF",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/5LQJAF&version=DRAFT",
- "done": true,
- "review": true
- },
- "KWARD": {
- "pid": "doi:10.7910/DVN/VPYXHS",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/VPYXHS&version=DRAFT",
- "done": true,
- "review": true
- },
- "KYRO": {
- "pid": "doi:10.7910/DVN/2YQQOX",
- "url": "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/2YQQOX&version=DRAFT",
- "done": true,
- "review": true
- }
-}
\ No newline at end of file
diff --git a/publish/state/figshare_drafts.json b/publish/state/figshare_drafts.json
deleted file mode 100644
index c0814d80e859d510db352b395ad21823fde765a9..0000000000000000000000000000000000000000
--- a/publish/state/figshare_drafts.json
+++ /dev/null
@@ -1,247 +0,0 @@
-{
- "KAIROS": {
- "id": 33553966,
- "url": "https://figshare.com/account/articles/33553966",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33553966"
- },
- "KBREED": {
- "id": 33559312,
- "url": "https://figshare.com/account/articles/33559312",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559312"
- },
- "KBURN": {
- "id": 33559324,
- "url": "https://figshare.com/account/articles/33559324",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559324"
- },
- "KDRIVE": {
- "id": 33559333,
- "url": "https://figshare.com/account/articles/33559333",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559333"
- },
- "KECON": {
- "id": 33559345,
- "url": "https://figshare.com/account/articles/33559345",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559345"
- },
- "KEYE": {
- "id": 33559357,
- "url": "https://figshare.com/account/articles/33559357",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559357"
- },
- "KFLOW": {
- "id": 33559369,
- "url": "https://figshare.com/account/articles/33559369",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559369"
- },
- "KFLUX": {
- "id": 33559378,
- "url": "https://figshare.com/account/articles/33559378",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559378"
- },
- "KFORGE": {
- "id": 33559390,
- "url": "https://figshare.com/account/articles/33559390",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559390"
- },
- "KFUEL": {
- "id": 33559402,
- "url": "https://figshare.com/account/articles/33559402",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559402"
- },
- "KFUSE": {
- "id": 33559414,
- "url": "https://figshare.com/account/articles/33559414",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559414"
- },
- "KGATE": {
- "id": 33559423,
- "url": "https://figshare.com/account/articles/33559423",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559423"
- },
- "KGEN": {
- "id": 33559435,
- "url": "https://figshare.com/account/articles/33559435",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559435"
- },
- "KHALO": {
- "id": 33559447,
- "url": "https://figshare.com/account/articles/33559447",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559447"
- },
- "KISO": {
- "id": 33559459,
- "url": "https://figshare.com/account/articles/33559459",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559459"
- },
- "KLAW": {
- "id": 33559468,
- "url": "https://figshare.com/account/articles/33559468",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559468"
- },
- "KMAT": {
- "id": 33559480,
- "url": "https://figshare.com/account/articles/33559480",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559480"
- },
- "KOIL": {
- "id": 33559492,
- "url": "https://figshare.com/account/articles/33559492",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559492"
- },
- "KORE": {
- "id": 33559504,
- "url": "https://figshare.com/account/articles/33559504",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559504"
- },
- "KPATH": {
- "id": 33559513,
- "url": "https://figshare.com/account/articles/33559513",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559513"
- },
- "KPILOT": {
- "id": 33559525,
- "url": "https://figshare.com/account/articles/33559525",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559525"
- },
- "KQROSS": {
- "id": 33559537,
- "url": "https://figshare.com/account/articles/33559537",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559537"
- },
- "KQUBIT": {
- "id": 33559546,
- "url": "https://figshare.com/account/articles/33559546",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559546"
- },
- "KSENSE": {
- "id": 33559558,
- "url": "https://figshare.com/account/articles/33559558",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559558"
- },
- "KWARD": {
- "id": 33559570,
- "url": "https://figshare.com/account/articles/33559570",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559570"
- },
- "KYRO": {
- "id": 33559582,
- "url": "https://figshare.com/account/articles/33559582",
- "done": true,
- "published": true,
- "public_url": "https://doi.org/10.6084/m9.figshare.33559582"
- },
- "KBENCH": {
- "id": 33634261,
- "url": "https://figshare.com/account/articles/33634261",
- "done": true,
- "published": true,
- "public_url": "https://api.figshare.com/v2/articles/33634261"
- },
- "KDYN": {
- "id": 33634270,
- "url": "https://figshare.com/account/articles/33634270",
- "done": true,
- "published": true,
- "public_url": "https://api.figshare.com/v2/articles/33634270"
- },
- "KEDGE": {
- "id": 33634282,
- "url": "https://figshare.com/account/articles/33634282",
- "done": true,
- "published": true,
- "public_url": "https://api.figshare.com/v2/articles/33634282"
- },
- "KHEAT": {
- "id": 33634294,
- "url": "https://figshare.com/account/articles/33634294",
- "done": true,
- "published": true,
- "public_url": "https://api.figshare.com/v2/articles/33634294"
- },
- "KQERN": {
- "id": 33634306,
- "url": "https://figshare.com/account/articles/33634306",
- "done": true,
- "published": true,
- "public_url": "https://api.figshare.com/v2/articles/33634306"
- },
- "KQOPT": {
- "id": 33634318,
- "url": "https://figshare.com/account/articles/33634318",
- "done": true,
- "published": true,
- "public_url": "https://api.figshare.com/v2/articles/33634318"
- },
- "KRAD": {
- "id": 33634330,
- "url": "https://figshare.com/account/articles/33634330",
- "done": true,
- "published": true,
- "public_url": "https://api.figshare.com/v2/articles/33634330"
- },
- "KSEEK": {
- "id": 33634342,
- "url": "https://figshare.com/account/articles/33634342",
- "done": true,
- "published": true,
- "public_url": "https://api.figshare.com/v2/articles/33634342"
- },
- "KTENSOR": {
- "id": 33634351,
- "url": "https://figshare.com/account/articles/33634351",
- "done": true,
- "published": true,
- "public_url": "https://api.figshare.com/v2/articles/33634351"
- }
-}
diff --git a/publish/state/kodex_doi_map.json b/publish/state/kodex_doi_map.json
deleted file mode 100644
index d386ffefa29ee2e52be2462fab9fe083006d6fb8..0000000000000000000000000000000000000000
--- a/publish/state/kodex_doi_map.json
+++ /dev/null
@@ -1,262 +0,0 @@
-{
- "KAIROS": {
- "zenodo_doi": "10.5281/zenodo.22694265",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694265",
- "osf_url": "https://osf.io/db6uh/",
- "figshare_doi": "10.6084/m9.figshare.33553966",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33553966",
- "harvard_doi": "10.7910/DVN/GOZGCM",
- "harvard_url": "https://doi.org/10.7910/DVN/GOZGCM",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KBREED": {
- "zenodo_doi": "10.5281/zenodo.22694267",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694267",
- "osf_url": "https://osf.io/2m3ce/",
- "figshare_doi": "10.6084/m9.figshare.33559312",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559312",
- "harvard_doi": "10.7910/DVN/OPJHP3",
- "harvard_url": "https://doi.org/10.7910/DVN/OPJHP3",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KBURN": {
- "zenodo_doi": "10.5281/zenodo.22694269",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694269",
- "osf_url": "https://osf.io/8e6fn/",
- "figshare_doi": "10.6084/m9.figshare.33559324",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559324",
- "harvard_doi": "10.7910/DVN/ITN6JZ",
- "harvard_url": "https://doi.org/10.7910/DVN/ITN6JZ",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KDRIVE": {
- "zenodo_doi": "10.5281/zenodo.22694271",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694271",
- "osf_url": "https://osf.io/xhkuy/",
- "figshare_doi": "10.6084/m9.figshare.33559333",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559333",
- "harvard_doi": "10.7910/DVN/YKKLQ7",
- "harvard_url": "https://doi.org/10.7910/DVN/YKKLQ7",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KECON": {
- "zenodo_doi": "10.5281/zenodo.22694273",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694273",
- "osf_url": "https://osf.io/b5qmx/",
- "figshare_doi": "10.6084/m9.figshare.33559345",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559345",
- "harvard_doi": "10.7910/DVN/WBHQ7S",
- "harvard_url": "https://doi.org/10.7910/DVN/WBHQ7S",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KEYE": {
- "zenodo_doi": "10.5281/zenodo.22694279",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694279",
- "osf_url": "https://osf.io/5qzp4/",
- "figshare_doi": "10.6084/m9.figshare.33559357",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559357",
- "harvard_doi": "10.7910/DVN/5UILC8",
- "harvard_url": "https://doi.org/10.7910/DVN/5UILC8",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KFLOW": {
- "zenodo_doi": "10.5281/zenodo.22694283",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694283",
- "osf_url": "https://osf.io/hjrzb/",
- "figshare_doi": "10.6084/m9.figshare.33559369",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559369",
- "harvard_doi": "10.7910/DVN/XUXC7B",
- "harvard_url": "https://doi.org/10.7910/DVN/XUXC7B",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KFLUX": {
- "zenodo_doi": "10.5281/zenodo.22694287",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694287",
- "osf_url": "https://osf.io/fmjc2/",
- "figshare_doi": "10.6084/m9.figshare.33559378",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559378",
- "harvard_doi": "10.7910/DVN/3F0NCW",
- "harvard_url": "https://doi.org/10.7910/DVN/3F0NCW",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KFORGE": {
- "zenodo_doi": "10.5281/zenodo.22694289",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694289",
- "osf_url": "https://osf.io/5zg6j/",
- "figshare_doi": "10.6084/m9.figshare.33559390",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559390",
- "harvard_doi": "10.7910/DVN/OVOVVN",
- "harvard_url": "https://doi.org/10.7910/DVN/OVOVVN",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KFUEL": {
- "zenodo_doi": "10.5281/zenodo.22694291",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694291",
- "osf_url": "https://osf.io/xuz8a/",
- "figshare_doi": "10.6084/m9.figshare.33559402",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559402",
- "harvard_doi": "10.7910/DVN/89A8GS",
- "harvard_url": "https://doi.org/10.7910/DVN/89A8GS",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KFUSE": {
- "zenodo_doi": "10.5281/zenodo.22694294",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694294",
- "osf_url": "https://osf.io/exhkc/",
- "figshare_doi": "10.6084/m9.figshare.33559414",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559414",
- "harvard_doi": "10.7910/DVN/SMA2OP",
- "harvard_url": "https://doi.org/10.7910/DVN/SMA2OP",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KGATE": {
- "zenodo_doi": "10.5281/zenodo.22694297",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694297",
- "osf_url": "https://osf.io/mbu37/",
- "figshare_doi": "10.6084/m9.figshare.33559423",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559423",
- "harvard_doi": "10.7910/DVN/2CKPZH",
- "harvard_url": "https://doi.org/10.7910/DVN/2CKPZH",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KGEN": {
- "zenodo_doi": "10.5281/zenodo.22694307",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694307",
- "osf_url": "https://osf.io/svbwq/",
- "figshare_doi": "10.6084/m9.figshare.33559435",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559435",
- "harvard_doi": "10.7910/DVN/OCTF8U",
- "harvard_url": "https://doi.org/10.7910/DVN/OCTF8U",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KHALO": {
- "zenodo_doi": "10.5281/zenodo.22694309",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694309",
- "osf_url": "https://osf.io/ne89y/",
- "figshare_doi": "10.6084/m9.figshare.33559447",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559447",
- "harvard_doi": "10.7910/DVN/V5YM23",
- "harvard_url": "https://doi.org/10.7910/DVN/V5YM23",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KISO": {
- "zenodo_doi": "10.5281/zenodo.22694311",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694311",
- "osf_url": "https://osf.io/hjqek/",
- "figshare_doi": "10.6084/m9.figshare.33559459",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559459",
- "harvard_doi": "10.7910/DVN/ELXAEY",
- "harvard_url": "https://doi.org/10.7910/DVN/ELXAEY",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KLAW": {
- "zenodo_doi": "10.5281/zenodo.22694315",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694315",
- "osf_url": "https://osf.io/kfp4t/",
- "figshare_doi": "10.6084/m9.figshare.33559468",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559468",
- "harvard_doi": "10.7910/DVN/ANAFXK",
- "harvard_url": "https://doi.org/10.7910/DVN/ANAFXK",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KMAT": {
- "zenodo_doi": "10.5281/zenodo.22694319",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694319",
- "osf_url": "https://osf.io/y4j2p/",
- "figshare_doi": "10.6084/m9.figshare.33559480",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559480",
- "harvard_doi": "10.7910/DVN/IJG9FT",
- "harvard_url": "https://doi.org/10.7910/DVN/IJG9FT",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KOIL": {
- "zenodo_doi": "10.5281/zenodo.22694323",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694323",
- "osf_url": "https://osf.io/2rb68/",
- "figshare_doi": "10.6084/m9.figshare.33559492",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559492",
- "harvard_doi": "10.7910/DVN/N5WLNR",
- "harvard_url": "https://doi.org/10.7910/DVN/N5WLNR",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KORE": {
- "zenodo_doi": "10.5281/zenodo.22694327",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694327",
- "osf_url": "https://osf.io/sxm5v/",
- "figshare_doi": "10.6084/m9.figshare.33559504",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559504",
- "harvard_doi": "10.7910/DVN/DCFLOI",
- "harvard_url": "https://doi.org/10.7910/DVN/DCFLOI",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KPATH": {
- "zenodo_doi": "10.5281/zenodo.22694329",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694329",
- "osf_url": "https://osf.io/fbcyw/",
- "figshare_doi": "10.6084/m9.figshare.33559513",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559513",
- "harvard_doi": "10.7910/DVN/8QIUD4",
- "harvard_url": "https://doi.org/10.7910/DVN/8QIUD4",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KPILOT": {
- "zenodo_doi": "10.5281/zenodo.22694331",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694331",
- "osf_url": "https://osf.io/aqxe8/",
- "figshare_doi": "10.6084/m9.figshare.33559525",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559525",
- "harvard_doi": "10.7910/DVN/EYD6FZ",
- "harvard_url": "https://doi.org/10.7910/DVN/EYD6FZ",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KQROSS": {
- "zenodo_doi": "10.5281/zenodo.22694333",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694333",
- "osf_url": "https://osf.io/zp82a/",
- "figshare_doi": "10.6084/m9.figshare.33559537",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559537",
- "harvard_doi": "10.7910/DVN/IIDBCF",
- "harvard_url": "https://doi.org/10.7910/DVN/IIDBCF",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KQUBIT": {
- "zenodo_doi": "10.5281/zenodo.22694336",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694336",
- "osf_url": "https://osf.io/eqr9z/",
- "figshare_doi": "10.6084/m9.figshare.33559546",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559546",
- "harvard_doi": "10.7910/DVN/2BC8BL",
- "harvard_url": "https://doi.org/10.7910/DVN/2BC8BL",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KSENSE": {
- "zenodo_doi": "10.5281/zenodo.22694338",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694338",
- "osf_url": "https://osf.io/psr8h/",
- "figshare_doi": "10.6084/m9.figshare.33559558",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559558",
- "harvard_doi": "10.7910/DVN/5LQJAF",
- "harvard_url": "https://doi.org/10.7910/DVN/5LQJAF",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KWARD": {
- "zenodo_doi": "10.5281/zenodo.22694342",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694342",
- "osf_url": "https://osf.io/ugfpr/",
- "figshare_doi": "10.6084/m9.figshare.33559570",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559570",
- "harvard_doi": "10.7910/DVN/VPYXHS",
- "harvard_url": "https://doi.org/10.7910/DVN/VPYXHS",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- },
- "KYRO": {
- "zenodo_doi": "10.5281/zenodo.22694348",
- "zenodo_url": "https://doi.org/10.5281/zenodo.22694348",
- "osf_url": "https://osf.io/5m6vu/",
- "figshare_doi": "10.6084/m9.figshare.33559582",
- "figshare_url": "https://doi.org/10.6084/m9.figshare.33559582",
- "harvard_doi": "10.7910/DVN/2YQQOX",
- "harvard_url": "https://doi.org/10.7910/DVN/2YQQOX",
- "github_url": "https://github.com/KronosFE/kronos-ml"
- }
-}
\ No newline at end of file
diff --git a/publish/state/osf_drafts.json b/publish/state/osf_drafts.json
deleted file mode 100644
index d53d3524f7311d5c22a6242a3b8b632bf22d254d..0000000000000000000000000000000000000000
--- a/publish/state/osf_drafts.json
+++ /dev/null
@@ -1,212 +0,0 @@
-{
- "KAIROS": {
- "id": "db6uh",
- "url": "https://osf.io/db6uh/",
- "done": true,
- "public": true
- },
- "KBREED": {
- "id": "2m3ce",
- "url": "https://osf.io/2m3ce/",
- "done": true,
- "public": true
- },
- "KBURN": {
- "id": "8e6fn",
- "url": "https://osf.io/8e6fn/",
- "done": true,
- "public": true
- },
- "KDRIVE": {
- "id": "xhkuy",
- "url": "https://osf.io/xhkuy/",
- "done": true,
- "public": true
- },
- "KECON": {
- "id": "b5qmx",
- "url": "https://osf.io/b5qmx/",
- "done": true,
- "public": true
- },
- "KEYE": {
- "id": "5qzp4",
- "url": "https://osf.io/5qzp4/",
- "done": true,
- "public": true
- },
- "KFLOW": {
- "id": "hjrzb",
- "url": "https://osf.io/hjrzb/",
- "done": true,
- "public": true
- },
- "KFLUX": {
- "id": "fmjc2",
- "url": "https://osf.io/fmjc2/",
- "done": true,
- "public": true
- },
- "KFORGE": {
- "id": "5zg6j",
- "url": "https://osf.io/5zg6j/",
- "done": true,
- "public": true
- },
- "KFUEL": {
- "id": "xuz8a",
- "url": "https://osf.io/xuz8a/",
- "done": true,
- "public": true
- },
- "KFUSE": {
- "id": "exhkc",
- "url": "https://osf.io/exhkc/",
- "done": true,
- "public": true
- },
- "KGATE": {
- "id": "mbu37",
- "url": "https://osf.io/mbu37/",
- "done": true,
- "public": true
- },
- "KGEN": {
- "id": "svbwq",
- "url": "https://osf.io/svbwq/",
- "done": true,
- "public": true
- },
- "KHALO": {
- "id": "ne89y",
- "url": "https://osf.io/ne89y/",
- "done": true,
- "public": true
- },
- "KISO": {
- "id": "hjqek",
- "url": "https://osf.io/hjqek/",
- "done": true,
- "public": true
- },
- "KLAW": {
- "id": "kfp4t",
- "url": "https://osf.io/kfp4t/",
- "done": true,
- "public": true
- },
- "KMAT": {
- "id": "y4j2p",
- "url": "https://osf.io/y4j2p/",
- "done": true,
- "public": true
- },
- "KOIL": {
- "id": "2rb68",
- "url": "https://osf.io/2rb68/",
- "done": true,
- "public": true
- },
- "KORE": {
- "id": "sxm5v",
- "url": "https://osf.io/sxm5v/",
- "done": true,
- "public": true
- },
- "KPATH": {
- "id": "fbcyw",
- "url": "https://osf.io/fbcyw/",
- "done": true,
- "public": true
- },
- "KPILOT": {
- "id": "aqxe8",
- "url": "https://osf.io/aqxe8/",
- "done": true,
- "public": true
- },
- "KQROSS": {
- "id": "zp82a",
- "url": "https://osf.io/zp82a/",
- "done": true,
- "public": true
- },
- "KQUBIT": {
- "id": "eqr9z",
- "url": "https://osf.io/eqr9z/",
- "done": true,
- "public": true
- },
- "KSENSE": {
- "id": "psr8h",
- "url": "https://osf.io/psr8h/",
- "done": true,
- "public": true
- },
- "KWARD": {
- "id": "ugfpr",
- "url": "https://osf.io/ugfpr/",
- "done": true,
- "public": true
- },
- "KYRO": {
- "id": "5m6vu",
- "url": "https://osf.io/5m6vu/",
- "done": true,
- "public": true
- },
- "KBENCH": {
- "id": "kdb7a",
- "url": "https://osf.io/kdb7a/",
- "done": true,
- "public": true
- },
- "KDYN": {
- "id": "8yhba",
- "url": "https://osf.io/8yhba/",
- "done": true,
- "public": true
- },
- "KEDGE": {
- "id": "s6cbz",
- "url": "https://osf.io/s6cbz/",
- "done": true,
- "public": true
- },
- "KHEAT": {
- "id": "9wu4t",
- "url": "https://osf.io/9wu4t/",
- "done": true,
- "public": true
- },
- "KQERN": {
- "id": "fj4cm",
- "url": "https://osf.io/fj4cm/",
- "done": true,
- "public": true
- },
- "KQOPT": {
- "id": "gae73",
- "url": "https://osf.io/gae73/",
- "done": true,
- "public": true
- },
- "KRAD": {
- "id": "5hfxr",
- "url": "https://osf.io/5hfxr/",
- "done": true,
- "public": true
- },
- "KSEEK": {
- "id": "5czek",
- "url": "https://osf.io/5czek/",
- "done": true,
- "public": true
- },
- "KTENSOR": {
- "id": "zfk6t",
- "url": "https://osf.io/zfk6t/",
- "done": true,
- "public": true
- }
-}
diff --git a/publish/state/zenodo_drafts.json b/publish/state/zenodo_drafts.json
deleted file mode 100644
index 4f731450c34ef569a9125eb8341a28a9ba8afa0d..0000000000000000000000000000000000000000
--- a/publish/state/zenodo_drafts.json
+++ /dev/null
@@ -1,212 +0,0 @@
-{
- "KAIROS": {
- "id": 22694265,
- "edit_url": "https://zenodo.org/deposit/22694265",
- "published": true,
- "doi": "10.5281/zenodo.22694265"
- },
- "KBREED": {
- "id": 22694267,
- "edit_url": "https://zenodo.org/deposit/22694267",
- "published": true,
- "doi": "10.5281/zenodo.22694267"
- },
- "KBURN": {
- "id": 22694269,
- "edit_url": "https://zenodo.org/deposit/22694269",
- "published": true,
- "doi": "10.5281/zenodo.22694269"
- },
- "KDRIVE": {
- "id": 22694271,
- "edit_url": "https://zenodo.org/deposit/22694271",
- "published": true,
- "doi": "10.5281/zenodo.22694271"
- },
- "KECON": {
- "id": 22694273,
- "edit_url": "https://zenodo.org/deposit/22694273",
- "published": true,
- "doi": "10.5281/zenodo.22694273"
- },
- "KEYE": {
- "id": 22694279,
- "edit_url": "https://zenodo.org/deposit/22694279",
- "published": true,
- "doi": "10.5281/zenodo.22694279"
- },
- "KFLOW": {
- "id": 22694283,
- "edit_url": "https://zenodo.org/deposit/22694283",
- "published": true,
- "doi": "10.5281/zenodo.22694283"
- },
- "KFLUX": {
- "id": 22694287,
- "edit_url": "https://zenodo.org/deposit/22694287",
- "published": true,
- "doi": "10.5281/zenodo.22694287"
- },
- "KFORGE": {
- "id": 22694289,
- "edit_url": "https://zenodo.org/deposit/22694289",
- "published": true,
- "doi": "10.5281/zenodo.22694289"
- },
- "KFUEL": {
- "id": 22694291,
- "edit_url": "https://zenodo.org/deposit/22694291",
- "published": true,
- "doi": "10.5281/zenodo.22694291"
- },
- "KFUSE": {
- "id": 22694294,
- "edit_url": "https://zenodo.org/deposit/22694294",
- "published": true,
- "doi": "10.5281/zenodo.22694294"
- },
- "KGATE": {
- "id": 22694297,
- "edit_url": "https://zenodo.org/deposit/22694297",
- "published": true,
- "doi": "10.5281/zenodo.22694297"
- },
- "KGEN": {
- "id": 22694307,
- "edit_url": "https://zenodo.org/deposit/22694307",
- "published": true,
- "doi": "10.5281/zenodo.22694307"
- },
- "KHALO": {
- "id": 22694309,
- "edit_url": "https://zenodo.org/deposit/22694309",
- "published": true,
- "doi": "10.5281/zenodo.22694309"
- },
- "KISO": {
- "id": 22694311,
- "edit_url": "https://zenodo.org/deposit/22694311",
- "published": true,
- "doi": "10.5281/zenodo.22694311"
- },
- "KLAW": {
- "id": 22694315,
- "edit_url": "https://zenodo.org/deposit/22694315",
- "published": true,
- "doi": "10.5281/zenodo.22694315"
- },
- "KMAT": {
- "id": 22694319,
- "edit_url": "https://zenodo.org/deposit/22694319",
- "published": true,
- "doi": "10.5281/zenodo.22694319"
- },
- "KOIL": {
- "id": 22694323,
- "edit_url": "https://zenodo.org/deposit/22694323",
- "published": true,
- "doi": "10.5281/zenodo.22694323"
- },
- "KORE": {
- "id": 22694327,
- "edit_url": "https://zenodo.org/deposit/22694327",
- "published": true,
- "doi": "10.5281/zenodo.22694327"
- },
- "KPATH": {
- "id": 22694329,
- "edit_url": "https://zenodo.org/deposit/22694329",
- "published": true,
- "doi": "10.5281/zenodo.22694329"
- },
- "KPILOT": {
- "id": 22694331,
- "edit_url": "https://zenodo.org/deposit/22694331",
- "published": true,
- "doi": "10.5281/zenodo.22694331"
- },
- "KQROSS": {
- "id": 22694333,
- "edit_url": "https://zenodo.org/deposit/22694333",
- "published": true,
- "doi": "10.5281/zenodo.22694333"
- },
- "KQUBIT": {
- "id": 22694336,
- "edit_url": "https://zenodo.org/deposit/22694336",
- "published": true,
- "doi": "10.5281/zenodo.22694336"
- },
- "KSENSE": {
- "id": 22694338,
- "edit_url": "https://zenodo.org/deposit/22694338",
- "published": true,
- "doi": "10.5281/zenodo.22694338"
- },
- "KWARD": {
- "id": 22694342,
- "edit_url": "https://zenodo.org/deposit/22694342",
- "published": true,
- "doi": "10.5281/zenodo.22694342"
- },
- "KYRO": {
- "id": 22694348,
- "edit_url": "https://zenodo.org/deposit/22694348",
- "published": true,
- "doi": "10.5281/zenodo.22694348"
- },
- "KBENCH": {
- "id": 22713389,
- "edit_url": "https://zenodo.org/deposit/22713389",
- "published": true,
- "doi": "10.5281/zenodo.22713389"
- },
- "KDYN": {
- "id": 22713391,
- "edit_url": "https://zenodo.org/deposit/22713391",
- "published": true,
- "doi": "10.5281/zenodo.22713391"
- },
- "KEDGE": {
- "id": 22713393,
- "edit_url": "https://zenodo.org/deposit/22713393",
- "published": true,
- "doi": "10.5281/zenodo.22713393"
- },
- "KHEAT": {
- "id": 22713395,
- "edit_url": "https://zenodo.org/deposit/22713395",
- "published": true,
- "doi": "10.5281/zenodo.22713395"
- },
- "KQERN": {
- "id": 22713397,
- "edit_url": "https://zenodo.org/deposit/22713397",
- "published": true,
- "doi": "10.5281/zenodo.22713397"
- },
- "KQOPT": {
- "id": 22713399,
- "edit_url": "https://zenodo.org/deposit/22713399",
- "published": true,
- "doi": "10.5281/zenodo.22713399"
- },
- "KRAD": {
- "id": 22713401,
- "edit_url": "https://zenodo.org/deposit/22713401",
- "published": true,
- "doi": "10.5281/zenodo.22713401"
- },
- "KSEEK": {
- "id": 22713403,
- "edit_url": "https://zenodo.org/deposit/22713403",
- "published": true,
- "doi": "10.5281/zenodo.22713403"
- },
- "KTENSOR": {
- "id": 22713405,
- "edit_url": "https://zenodo.org/deposit/22713405",
- "published": true,
- "doi": "10.5281/zenodo.22713405"
- }
-}
diff --git a/publish/zenodo_draft.py b/publish/zenodo_draft.py
deleted file mode 100644
index 3ff921c8b3d4fded784af2d6c2967f863b2fea84..0000000000000000000000000000000000000000
--- a/publish/zenodo_draft.py
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/usr/bin/env python
-"""Create 26 per-code DRAFT Zenodo depositions (one per BUILT KODEX code).
-
-DRAFT-FIRST: creates unpublished depositions and uploads each code's attach set.
-NEVER publishes. Resume-safe: records already in publish/state/zenodo_drafts.json are
-skipped. After review, run zenodo_publish_all.py --yes to publish them in one go.
-
- export ZENODO_TOKEN=... # optional: export ZENODO_BASE=https://sandbox.zenodo.org
- python publish/zenodo_draft.py
-"""
-from __future__ import annotations
-import os, sys
-import requests
-from _percode import built, attach_paths, load_meta, read_state, write_state, require_env
-
-BASE = os.environ.get("ZENODO_BASE", "https://zenodo.org").rstrip("/")
-
-
-def _api_meta(m):
- lic = m["license"]; lic = lic["id"] if isinstance(lic, dict) else lic
- out = {"title": m["title"], "upload_type": "software", "description": m["description"],
- "creators": m["creators"], "license": lic, "keywords": m["keywords"],
- "related_identifiers": m["related_identifiers"], "version": m["version"],
- "language": "eng", "notes": m.get("notes")}
- return {k: v for k, v in out.items() if v is not None}
-
-
-def main():
- token = require_env("ZENODO_TOKEN")
- p = {"access_token": token}
- s = requests.Session()
- state = read_state("zenodo")
- names = built()
- for i, name in enumerate(names, 1):
- if state.get(name, {}).get("id"):
- print(f"[zenodo] ({i}/{len(names)}) {name}: already drafted (skip)"); continue
- m = load_meta(name)
- r = s.post(f"{BASE}/api/deposit/depositions", params=p, json={}); r.raise_for_status()
- dep = r.json(); dep_id, bucket = dep["id"], dep["links"]["bucket"]
- for path in attach_paths(name):
- with open(path, "rb") as fh:
- s.put(f"{bucket}/{path.name}", data=fh, params=p).raise_for_status()
- s.put(f"{BASE}/api/deposit/depositions/{dep_id}", params=p,
- json={"metadata": _api_meta(m)}).raise_for_status()
- state[name] = {"id": dep_id, "edit_url": f"{BASE}/deposit/{dep_id}"}
- write_state("zenodo", state)
- print(f"[zenodo] ({i}/{len(names)}) {name}: DRAFT {dep_id}")
- print(f"\n[zenodo] {len(state)} drafts ready (NONE published). Review, then:")
- print(" python publish/zenodo_publish_all.py --yes")
-
-
-if __name__ == "__main__":
- sys.exit(main())
diff --git a/publish/zenodo_publish_all.py b/publish/zenodo_publish_all.py
deleted file mode 100644
index bc1f876a46c5acbc173be7d650e6f9732917b338..0000000000000000000000000000000000000000
--- a/publish/zenodo_publish_all.py
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env python
-"""Publish the 26 per-code Zenodo DRAFTS created by zenodo_draft.py.
-
-THIS IS THE IRREVERSIBLE STEP. It is a DRY RUN by default — it only lists what would
-be published. It publishes ONLY when you pass --yes, and only the drafts recorded in
-publish/state/zenodo_drafts.json. Publishing mints DOIs and makes records public.
-
- export ZENODO_TOKEN=...
- python publish/zenodo_publish_all.py # dry run (lists drafts)
- python publish/zenodo_publish_all.py --yes # actually publish
-"""
-from __future__ import annotations
-import argparse, os, sys
-import requests
-from _percode import read_state, write_state, require_env
-
-BASE = os.environ.get("ZENODO_BASE", "https://zenodo.org").rstrip("/")
-
-
-def main():
- ap = argparse.ArgumentParser()
- ap.add_argument("--yes", action="store_true", help="actually publish (irreversible)")
- args = ap.parse_args()
- state = read_state("zenodo")
- pending = {n: r for n, r in state.items() if r.get("id") and not r.get("published")}
- if not pending:
- print("[zenodo] no unpublished drafts in state (run zenodo_draft.py first)."); return
- print(f"[zenodo] {len(pending)} draft(s) to publish on {BASE}:")
- for n, r in pending.items():
- print(f" {n:9s} id={r['id']} {r.get('edit_url','')}")
- if not args.yes:
- print("\n[zenodo] DRY RUN — nothing published. Re-run with --yes to publish these.")
- return
- p = {"access_token": require_env("ZENODO_TOKEN")}
- s = requests.Session()
- for n, r in pending.items():
- resp = s.post(f"{BASE}/api/deposit/depositions/{r['id']}/actions/publish", params=p)
- resp.raise_for_status()
- d = resp.json()
- r["published"] = True
- r["doi"] = d.get("doi") or d.get("metadata", {}).get("doi")
- write_state("zenodo", state)
- print(f"[zenodo] PUBLISHED {n}: DOI {r.get('doi')}")
- print(f"\n[zenodo] published {len(pending)} records.")
-
-
-if __name__ == "__main__":
- sys.exit(main())
diff --git a/pyproject.toml b/pyproject.toml
index 88119b9ed732a5b84e69729678654e49c76cfef9..235c56388d626804f3114f1101af3a642b3e5f8d 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "kronos-fusion-ml"
-version = "0.2.0"
+version = "0.3.0"
description = "KODEX — the Kronos Family of Codes: a benchmarked AI/ML surrogate suite for fusion, with calibrated uncertainty and an abstention gate on every model."
readme = "README.md"
requires-python = ">=3.10"