hypernix 0.72.6.post4__tar.gz → 0.72.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1044) hide show
  1. hypernix-0.72.7/.github/workflows/ci.yml +786 -0
  2. hypernix-0.72.7/PKG-INFO +1153 -0
  3. hypernix-0.72.7/README.md +1068 -0
  4. hypernix-0.72.7/bin/hypernix-t1 +1267 -0
  5. hypernix-0.72.7/examples/t1api/.env.example +406 -0
  6. hypernix-0.72.7/install-t1.sh +1662 -0
  7. hypernix-0.72.7/pyproject.toml +336 -0
  8. hypernix-0.72.7/ruff.toml +47 -0
  9. hypernix-0.72.7/scripts/apply_hypernix_fixes.py +84 -0
  10. hypernix-0.72.7/scripts/autofix-F +589 -0
  11. hypernix-0.72.7/scripts/ci/requirements_without_torch.py +29 -0
  12. hypernix-0.72.7/scripts/ci/wait_for_http.py +107 -0
  13. hypernix-0.72.7/scripts/generate_docs_data.py +911 -0
  14. hypernix-0.72.7/scripts/install_macos_legacy.sh +78 -0
  15. hypernix-0.72.7/setup.cfg +77 -0
  16. hypernix-0.72.7/setup.py +61 -0
  17. hypernix-0.72.7/src/hypernix/__init__.py +984 -0
  18. hypernix-0.72.7/src/hypernix/_compat/__init__.py +37 -0
  19. hypernix-0.72.7/src/hypernix/_compat/_iter_legacy.py +23 -0
  20. hypernix-0.72.7/src/hypernix/_compat/_iter_py315.py +24 -0
  21. hypernix-0.72.7/src/hypernix/_native_flags/__init__.py +112 -0
  22. hypernix-0.72.7/src/hypernix/_profiling/__init__.py +194 -0
  23. hypernix-0.72.7/src/hypernix/evaluation/new_fridge.py +164 -0
  24. hypernix-0.72.7/src/hypernix/hyperlink/brewed.py +239 -0
  25. hypernix-0.72.7/src/hypernix/hyperlink/files.py +432 -0
  26. hypernix-0.72.7/src/hypernix/hyperlink/identity.py +144 -0
  27. hypernix-0.72.7/src/hypernix/hyperlink/imagecodec.py +499 -0
  28. hypernix-0.72.7/src/hypernix/hyperlink/managed.py +916 -0
  29. hypernix-0.72.7/src/hypernix/hyperlink/runner_history.py +160 -0
  30. hypernix-0.72.7/src/hypernix/interfaces/cli.py +1731 -0
  31. hypernix-0.72.7/src/hypernix/interfaces/hyped.py +2380 -0
  32. hypernix-0.72.7/src/hypernix/interfaces/hyped_pro_app/package.json +25 -0
  33. hypernix-0.72.7/src/hypernix/interfaces/hyped_pro_app/src/app.ts +1149 -0
  34. hypernix-0.72.7/src/hypernix/interfaces/hyped_pro_otui.py +294 -0
  35. hypernix-0.72.7/src/hypernix/interfaces/version_launcher.py +207 -0
  36. hypernix-0.72.7/src/hypernix/models/download.py +740 -0
  37. hypernix-0.72.7/src/hypernix/models/nano_nano.py +216 -0
  38. hypernix-0.72.7/src/hypernix/models/neo_oven.py +1750 -0
  39. hypernix-0.72.7/src/hypernix/models/whisk.py +246 -0
  40. hypernix-0.72.7/src/hypernix/monitoring/hyper_log.py +185 -0
  41. hypernix-0.72.7/src/hypernix/monitoring/remote_desktop.py +666 -0
  42. hypernix-0.72.7/src/hypernix/monitoring/run_inspect.py +606 -0
  43. hypernix-0.72.7/src/hypernix/monitoring/thermometer.py +293 -0
  44. hypernix-0.72.7/src/hypernix/monitoring/tv.py +1555 -0
  45. hypernix-0.72.7/src/hypernix/monitoring/tvtop_max_app/package.json +25 -0
  46. hypernix-0.72.7/src/hypernix/monitoring/tvtop_max_app/src/app.ts +283 -0
  47. hypernix-0.72.7/src/hypernix/monitoring/tvtoppro_modules.py +729 -0
  48. hypernix-0.72.7/src/hypernix/optimizers/pressure_cooker.py +667 -0
  49. hypernix-0.72.7/src/hypernix/quant/convert.py +293 -0
  50. hypernix-0.72.7/src/hypernix/quant/hyprslug_headers.py +746 -0
  51. hypernix-0.72.7/src/hypernix/quant/hyprslug_headers_cli.py +352 -0
  52. hypernix-0.72.7/src/hypernix/quant/llamaquants.py +1024 -0
  53. hypernix-0.72.7/src/hypernix/quant/runtime_bridge.py +702 -0
  54. hypernix-0.72.7/src/hypernix/system/autoscan.py +712 -0
  55. hypernix-0.72.7/src/hypernix/system/blanking.py +300 -0
  56. hypernix-0.72.7/src/hypernix/system/doctor.py +362 -0
  57. hypernix-0.72.7/src/hypernix/system/launcher.py +716 -0
  58. hypernix-0.72.7/src/hypernix/system/net.py +245 -0
  59. hypernix-0.72.7/src/hypernix/system/pids.py +59 -0
  60. hypernix-0.72.7/src/hypernix/system/protect.py +284 -0
  61. hypernix-0.72.7/src/hypernix/t1api/codebox.py +661 -0
  62. hypernix-0.72.7/src/hypernix/t1api/config.py +743 -0
  63. hypernix-0.72.7/src/hypernix/t1api/routers/hyperlink.py +2689 -0
  64. hypernix-0.72.7/src/hypernix/t1api/routers/inference.py +696 -0
  65. hypernix-0.72.7/src/hypernix/t1api/routers/runner.py +547 -0
  66. hypernix-0.72.7/src/hypernix/t1api/runner_cli.py +513 -0
  67. hypernix-0.72.7/src/hypernix/t1api/schemas.py +2092 -0
  68. hypernix-0.72.7/src/hypernix/t1api/websearch.py +684 -0
  69. hypernix-0.72.7/src/hypernix/training/brewer.py +1480 -0
  70. hypernix-0.72.7/src/hypernix/training/fizzle.py +243 -0
  71. hypernix-0.72.7/src/hypernix/training/monitor.py +436 -0
  72. hypernix-0.72.7/src/hypernix/training/train.py +1105 -0
  73. hypernix-0.72.7/src/hypernix.egg-info/SOURCES.txt +865 -0
  74. hypernix-0.72.7/tests/audio/test_wakeup.py +562 -0
  75. hypernix-0.72.7/tests/conftest.py +233 -0
  76. hypernix-0.72.7/tests/data/test_coverage_beef.py +518 -0
  77. hypernix-0.72.7/tests/data/test_kitchen_v044.py +525 -0
  78. hypernix-0.72.7/tests/data/test_kitchen_v045.py +524 -0
  79. hypernix-0.72.7/tests/data/test_lunchbox.py +221 -0
  80. hypernix-0.72.7/tests/data/test_shakers_and_torchcompat.py +298 -0
  81. hypernix-0.72.7/tests/data/test_web_search.py +986 -0
  82. hypernix-0.72.7/tests/desktop/test_studio_core.py +370 -0
  83. hypernix-0.72.7/tests/desktop/test_studio_local.py +280 -0
  84. hypernix-0.72.7/tests/dilute/test_dilute.py +900 -0
  85. hypernix-0.72.7/tests/elements/test_elements.py +790 -0
  86. hypernix-0.72.7/tests/hyperlink/test_hyperlink_brewed.py +368 -0
  87. hypernix-0.72.7/tests/hyperlink/test_hyperlink_discovery.py +515 -0
  88. hypernix-0.72.7/tests/hyperlink/test_hyperlink_notify.py +522 -0
  89. hypernix-0.72.7/tests/hyperlink/test_hyperlink_pt3_wiring.py +1003 -0
  90. hypernix-0.72.7/tests/hyperlink/test_hyperlink_reachability.py +274 -0
  91. hypernix-0.72.7/tests/hyperlink/test_hyperlink_web.py +349 -0
  92. hypernix-0.72.7/tests/hyperlink/test_imagecodec.py +199 -0
  93. hypernix-0.72.7/tests/hyperlink/test_model_links.py +261 -0
  94. hypernix-0.72.7/tests/hyperlink/test_runner_adopt.py +210 -0
  95. hypernix-0.72.7/tests/hyperlink/test_runner_auto.py +212 -0
  96. hypernix-0.72.7/tests/hyperlink/test_runner_build_choice.py +203 -0
  97. hypernix-0.72.7/tests/hyperlink/test_runner_images.py +221 -0
  98. hypernix-0.72.7/tests/hyperlink/test_tool_loop.py +361 -0
  99. hypernix-0.72.7/tests/interfaces/test_assistant.py +350 -0
  100. hypernix-0.72.7/tests/interfaces/test_hyped_dots.py +350 -0
  101. hypernix-0.72.7/tests/interfaces/test_hyped_pro_git.py +561 -0
  102. hypernix-0.72.7/tests/interfaces/test_hyped_pro_otui.py +438 -0
  103. hypernix-0.72.7/tests/interfaces/test_hyped_unknown_models.py +204 -0
  104. hypernix-0.72.7/tests/interfaces/test_noodle_hyped.py +560 -0
  105. hypernix-0.72.7/tests/interfaces/test_runtime_bridge.py +458 -0
  106. hypernix-0.72.7/tests/interfaces/test_v0714_hyped_pro_core.py +349 -0
  107. hypernix-0.72.7/tests/interfaces/test_v0714_hyped_pro_launcher.py +91 -0
  108. hypernix-0.72.7/tests/interfaces/test_v0714_hyped_pro_tools.py +225 -0
  109. hypernix-0.72.7/tests/interfaces/test_version_launcher.py +256 -0
  110. hypernix-0.72.7/tests/ios/test_hyperlink_ios_wiring.py +1231 -0
  111. hypernix-0.72.7/tests/ios/test_ios_llama_link.py +681 -0
  112. hypernix-0.72.7/tests/models/test_brewer_gguf.py +527 -0
  113. hypernix-0.72.7/tests/models/test_dflash2.py +533 -0
  114. hypernix-0.72.7/tests/models/test_gguf_inference.py +364 -0
  115. hypernix-0.72.7/tests/models/test_hnx_device_placement.py +245 -0
  116. hypernix-0.72.7/tests/models/test_hnx_devices.py +357 -0
  117. hypernix-0.72.7/tests/models/test_neo_oven.py +294 -0
  118. hypernix-0.72.7/tests/models/test_nix_fallback.py +117 -0
  119. hypernix-0.72.7/tests/models/test_v031_chat_and_archs.py +285 -0
  120. hypernix-0.72.7/tests/monitoring/test_remote_desktop.py +430 -0
  121. hypernix-0.72.7/tests/monitoring/test_tvtop_max.py +569 -0
  122. hypernix-0.72.7/tests/monitoring/test_tvtoppro.py +427 -0
  123. hypernix-0.72.7/tests/monitoring/test_tvtoppro_features.py +505 -0
  124. hypernix-0.72.7/tests/optimizers/test_pressure_cooker_deprecation.py +232 -0
  125. hypernix-0.72.7/tests/optimizers/test_v0704_features.py +883 -0
  126. hypernix-0.72.7/tests/optimizers/test_v0705_all.py +613 -0
  127. hypernix-0.72.7/tests/python315/test_pep798.py +113 -0
  128. hypernix-0.72.7/tests/python315/test_pep799.py +109 -0
  129. hypernix-0.72.7/tests/python315/test_pep810.py +130 -0
  130. hypernix-0.72.7/tests/python315/test_pep831.py +146 -0
  131. hypernix-0.72.7/tests/quant/test_convert_pipeline.py +141 -0
  132. hypernix-0.72.7/tests/quant/test_decoder_agreement.py +154 -0
  133. hypernix-0.72.7/tests/quant/test_fetcher.py +102 -0
  134. hypernix-0.72.7/tests/quant/test_ggml_hnx.py +742 -0
  135. hypernix-0.72.7/tests/quant/test_ggufcheck.py +544 -0
  136. hypernix-0.72.7/tests/quant/test_hyprslug_headers.py +615 -0
  137. hypernix-0.72.7/tests/quant/test_hyprslug_hybrids.py +351 -0
  138. hypernix-0.72.7/tests/quant/test_hyprslug_recipes.py +386 -0
  139. hypernix-0.72.7/tests/quant/test_imatrix.py +429 -0
  140. hypernix-0.72.7/tests/quant/test_subbit_quantization.py +746 -0
  141. hypernix-0.72.7/tests/repo/test_autofix_scripts.py +548 -0
  142. hypernix-0.72.7/tests/repo/test_ci_integration_jobs.py +338 -0
  143. hypernix-0.72.7/tests/repo/test_codacy_sarif_filter.py +59 -0
  144. hypernix-0.72.7/tests/repo/test_conftest_rails.py +182 -0
  145. hypernix-0.72.7/tests/repo/test_install_script.py +1241 -0
  146. hypernix-0.72.7/tests/repo/test_lint_regressions.py +260 -0
  147. hypernix-0.72.7/tests/repo/test_module_layout.py +141 -0
  148. hypernix-0.72.7/tests/repo/test_release_plan.py +268 -0
  149. hypernix-0.72.7/tests/repo/test_release_push_retry.py +161 -0
  150. hypernix-0.72.7/tests/repo/test_version_guard.py +414 -0
  151. hypernix-0.72.7/tests/scriptgen/test_v0721_modules.py +696 -0
  152. hypernix-0.72.7/tests/security/test_safeurl.py +59 -0
  153. hypernix-0.72.7/tests/security/test_security_fixes.py +364 -0
  154. hypernix-0.72.7/tests/security/test_sspkid_and_key_config.py +373 -0
  155. hypernix-0.72.7/tests/security/test_t2s_errors.py +325 -0
  156. hypernix-0.72.7/tests/security/test_v0710_gatekeeper_keymaster.py +1066 -0
  157. hypernix-0.72.7/tests/shell_support.py +161 -0
  158. hypernix-0.72.7/tests/system/test_archmap.py +185 -0
  159. hypernix-0.72.7/tests/system/test_deprecation.py +334 -0
  160. hypernix-0.72.7/tests/system/test_doctor.py +128 -0
  161. hypernix-0.72.7/tests/system/test_fridges.py +228 -0
  162. hypernix-0.72.7/tests/system/test_launch_script.py +798 -0
  163. hypernix-0.72.7/tests/system/test_launch_shell.py +191 -0
  164. hypernix-0.72.7/tests/system/test_pathfix.py +551 -0
  165. hypernix-0.72.7/tests/system/test_pids.py +47 -0
  166. hypernix-0.72.7/tests/system/test_protect_blanking.py +330 -0
  167. hypernix-0.72.7/tests/system/test_v060.py +390 -0
  168. hypernix-0.72.7/tests/system/test_vram_optimizations.py +604 -0
  169. hypernix-0.72.7/tests/t1api/test_code_sandbox.py +427 -0
  170. hypernix-0.72.7/tests/t1api/test_hypernix_t1_service.py +1364 -0
  171. hypernix-0.72.7/tests/t1api/test_hypernix_t1_upgrade.py +243 -0
  172. hypernix-0.72.7/tests/t1api/test_lms_override.py +240 -0
  173. hypernix-0.72.7/tests/t1api/test_local_server_url.py +200 -0
  174. hypernix-0.72.7/tests/t1api/test_model_registry_discovery.py +438 -0
  175. hypernix-0.72.7/tests/t1api/test_modelsync.py +401 -0
  176. hypernix-0.72.7/tests/t1api/test_noodle_api.py +301 -0
  177. hypernix-0.72.7/tests/t1api/test_runner_cli.py +561 -0
  178. hypernix-0.72.7/tests/t1api/test_security_post1.py +237 -0
  179. hypernix-0.72.7/tests/t1api/test_t1_v1_0_26_8_1_1.py +403 -0
  180. hypernix-0.72.7/tests/t1api/test_t1api_beta3_core.py +1002 -0
  181. hypernix-0.72.7/tests/training/test_cli_integration.py +383 -0
  182. hypernix-0.72.7/tests/training/test_fusebox.py +1188 -0
  183. hypernix-0.72.7/tests/training/test_snapshot_roundtrip.py +128 -0
  184. hypernix-0.72.7/tests/training/test_v050.py +542 -0
  185. hypernix-0.72.7/tests/waiter/test_waiter.py +399 -0
  186. hypernix-0.72.7/tests/waiter/test_waiter_serv_0726.py +420 -0
  187. hypernix-0.72.7/wiki/CLI.md +1217 -0
  188. hypernix-0.72.7/wiki/Changelog.md +10323 -0
  189. hypernix-0.72.7/wiki/Home.md +409 -0
  190. hypernix-0.72.7/wiki/PipelineMechanics.md +171 -0
  191. hypernix-0.72.7/wiki/Python-3.15.md +243 -0
  192. hypernix-0.72.7/wiki/Release-Timeline.md +1051 -0
  193. hypernix-0.72.7/wiki/Roadmap.md +424 -0
  194. hypernix-0.72.7/wiki/T1-API.md +2659 -0
  195. hypernix-0.72.7/wiki/macOS-legacy.md +149 -0
  196. hypernix-0.72.6.post4/.github/workflows/ci.yml +0 -684
  197. hypernix-0.72.6.post4/PKG-INFO +0 -1135
  198. hypernix-0.72.6.post4/README.md +0 -1057
  199. hypernix-0.72.6.post4/bin/hypernix-t1 +0 -1234
  200. hypernix-0.72.6.post4/examples/t1api/.env.example +0 -402
  201. hypernix-0.72.6.post4/install-t1.sh +0 -1659
  202. hypernix-0.72.6.post4/pyproject.toml +0 -283
  203. hypernix-0.72.6.post4/ruff.toml +0 -42
  204. hypernix-0.72.6.post4/scripts/apply_hypernix_fixes.py +0 -84
  205. hypernix-0.72.6.post4/scripts/autofix-F +0 -566
  206. hypernix-0.72.6.post4/scripts/ci/wait_for_http.py +0 -107
  207. hypernix-0.72.6.post4/scripts/generate_docs_data.py +0 -906
  208. hypernix-0.72.6.post4/scripts/install_macos_legacy.sh +0 -76
  209. hypernix-0.72.6.post4/setup.cfg +0 -76
  210. hypernix-0.72.6.post4/setup.py +0 -31
  211. hypernix-0.72.6.post4/src/hypernix/__init__.py +0 -984
  212. hypernix-0.72.6.post4/src/hypernix/evaluation/new_fridge.py +0 -144
  213. hypernix-0.72.6.post4/src/hypernix/hyperlink/brewed.py +0 -224
  214. hypernix-0.72.6.post4/src/hypernix/hyperlink/files.py +0 -424
  215. hypernix-0.72.6.post4/src/hypernix/hyperlink/identity.py +0 -140
  216. hypernix-0.72.6.post4/src/hypernix/hyperlink/managed.py +0 -898
  217. hypernix-0.72.6.post4/src/hypernix/interfaces/cli.py +0 -1709
  218. hypernix-0.72.6.post4/src/hypernix/interfaces/hyped.py +0 -2380
  219. hypernix-0.72.6.post4/src/hypernix/interfaces/hyped_pro_app/package.json +0 -25
  220. hypernix-0.72.6.post4/src/hypernix/interfaces/hyped_pro_app/src/app.ts +0 -1149
  221. hypernix-0.72.6.post4/src/hypernix/interfaces/hyped_pro_otui.py +0 -294
  222. hypernix-0.72.6.post4/src/hypernix/interfaces/version_launcher.py +0 -205
  223. hypernix-0.72.6.post4/src/hypernix/models/download.py +0 -735
  224. hypernix-0.72.6.post4/src/hypernix/models/nano_nano.py +0 -216
  225. hypernix-0.72.6.post4/src/hypernix/models/neo_oven.py +0 -1730
  226. hypernix-0.72.6.post4/src/hypernix/models/whisk.py +0 -246
  227. hypernix-0.72.6.post4/src/hypernix/monitoring/hyper_log.py +0 -185
  228. hypernix-0.72.6.post4/src/hypernix/monitoring/remote_desktop.py +0 -666
  229. hypernix-0.72.6.post4/src/hypernix/monitoring/run_inspect.py +0 -592
  230. hypernix-0.72.6.post4/src/hypernix/monitoring/thermometer.py +0 -293
  231. hypernix-0.72.6.post4/src/hypernix/monitoring/tv.py +0 -1555
  232. hypernix-0.72.6.post4/src/hypernix/monitoring/tvtop_max_app/package.json +0 -25
  233. hypernix-0.72.6.post4/src/hypernix/monitoring/tvtop_max_app/src/app.ts +0 -283
  234. hypernix-0.72.6.post4/src/hypernix/monitoring/tvtoppro_modules.py +0 -729
  235. hypernix-0.72.6.post4/src/hypernix/optimizers/pressure_cooker.py +0 -670
  236. hypernix-0.72.6.post4/src/hypernix/quant/convert.py +0 -293
  237. hypernix-0.72.6.post4/src/hypernix/quant/hyprslug_headers.py +0 -746
  238. hypernix-0.72.6.post4/src/hypernix/quant/hyprslug_headers_cli.py +0 -353
  239. hypernix-0.72.6.post4/src/hypernix/quant/llamaquants.py +0 -1019
  240. hypernix-0.72.6.post4/src/hypernix/quant/runtime_bridge.py +0 -646
  241. hypernix-0.72.6.post4/src/hypernix/system/autoscan.py +0 -710
  242. hypernix-0.72.6.post4/src/hypernix/system/blanking.py +0 -300
  243. hypernix-0.72.6.post4/src/hypernix/system/doctor.py +0 -362
  244. hypernix-0.72.6.post4/src/hypernix/system/launcher.py +0 -721
  245. hypernix-0.72.6.post4/src/hypernix/system/net.py +0 -245
  246. hypernix-0.72.6.post4/src/hypernix/system/protect.py +0 -284
  247. hypernix-0.72.6.post4/src/hypernix/t1api/codebox.py +0 -635
  248. hypernix-0.72.6.post4/src/hypernix/t1api/config.py +0 -737
  249. hypernix-0.72.6.post4/src/hypernix/t1api/routers/hyperlink.py +0 -2647
  250. hypernix-0.72.6.post4/src/hypernix/t1api/routers/inference.py +0 -667
  251. hypernix-0.72.6.post4/src/hypernix/t1api/routers/runner.py +0 -471
  252. hypernix-0.72.6.post4/src/hypernix/t1api/runner_cli.py +0 -474
  253. hypernix-0.72.6.post4/src/hypernix/t1api/schemas.py +0 -2079
  254. hypernix-0.72.6.post4/src/hypernix/t1api/websearch.py +0 -681
  255. hypernix-0.72.6.post4/src/hypernix/training/brewer.py +0 -1480
  256. hypernix-0.72.6.post4/src/hypernix/training/fizzle.py +0 -243
  257. hypernix-0.72.6.post4/src/hypernix/training/monitor.py +0 -441
  258. hypernix-0.72.6.post4/src/hypernix/training/train.py +0 -1105
  259. hypernix-0.72.6.post4/src/hypernix.egg-info/SOURCES.txt +0 -847
  260. hypernix-0.72.6.post4/tests/audio/test_wakeup.py +0 -562
  261. hypernix-0.72.6.post4/tests/conftest.py +0 -175
  262. hypernix-0.72.6.post4/tests/data/test_coverage_beef.py +0 -518
  263. hypernix-0.72.6.post4/tests/data/test_kitchen_v044.py +0 -525
  264. hypernix-0.72.6.post4/tests/data/test_kitchen_v045.py +0 -524
  265. hypernix-0.72.6.post4/tests/data/test_lunchbox.py +0 -221
  266. hypernix-0.72.6.post4/tests/data/test_shakers_and_torchcompat.py +0 -298
  267. hypernix-0.72.6.post4/tests/data/test_web_search.py +0 -979
  268. hypernix-0.72.6.post4/tests/desktop/test_studio_core.py +0 -370
  269. hypernix-0.72.6.post4/tests/desktop/test_studio_local.py +0 -280
  270. hypernix-0.72.6.post4/tests/dilute/test_dilute.py +0 -900
  271. hypernix-0.72.6.post4/tests/elements/test_elements.py +0 -790
  272. hypernix-0.72.6.post4/tests/hyperlink/test_hyperlink_brewed.py +0 -368
  273. hypernix-0.72.6.post4/tests/hyperlink/test_hyperlink_discovery.py +0 -513
  274. hypernix-0.72.6.post4/tests/hyperlink/test_hyperlink_notify.py +0 -518
  275. hypernix-0.72.6.post4/tests/hyperlink/test_hyperlink_pt3_wiring.py +0 -1003
  276. hypernix-0.72.6.post4/tests/hyperlink/test_hyperlink_reachability.py +0 -274
  277. hypernix-0.72.6.post4/tests/hyperlink/test_hyperlink_web.py +0 -349
  278. hypernix-0.72.6.post4/tests/hyperlink/test_model_links.py +0 -261
  279. hypernix-0.72.6.post4/tests/hyperlink/test_runner_adopt.py +0 -209
  280. hypernix-0.72.6.post4/tests/hyperlink/test_runner_build_choice.py +0 -203
  281. hypernix-0.72.6.post4/tests/hyperlink/test_tool_loop.py +0 -361
  282. hypernix-0.72.6.post4/tests/interfaces/test_assistant.py +0 -347
  283. hypernix-0.72.6.post4/tests/interfaces/test_hyped_dots.py +0 -350
  284. hypernix-0.72.6.post4/tests/interfaces/test_hyped_pro_git.py +0 -561
  285. hypernix-0.72.6.post4/tests/interfaces/test_hyped_pro_otui.py +0 -438
  286. hypernix-0.72.6.post4/tests/interfaces/test_hyped_unknown_models.py +0 -204
  287. hypernix-0.72.6.post4/tests/interfaces/test_noodle_hyped.py +0 -560
  288. hypernix-0.72.6.post4/tests/interfaces/test_runtime_bridge.py +0 -442
  289. hypernix-0.72.6.post4/tests/interfaces/test_v0714_hyped_pro_core.py +0 -349
  290. hypernix-0.72.6.post4/tests/interfaces/test_v0714_hyped_pro_launcher.py +0 -91
  291. hypernix-0.72.6.post4/tests/interfaces/test_v0714_hyped_pro_tools.py +0 -225
  292. hypernix-0.72.6.post4/tests/interfaces/test_version_launcher.py +0 -258
  293. hypernix-0.72.6.post4/tests/ios/test_hyperlink_ios_wiring.py +0 -1231
  294. hypernix-0.72.6.post4/tests/ios/test_ios_llama_link.py +0 -678
  295. hypernix-0.72.6.post4/tests/models/test_brewer_gguf.py +0 -527
  296. hypernix-0.72.6.post4/tests/models/test_dflash2.py +0 -533
  297. hypernix-0.72.6.post4/tests/models/test_gguf_inference.py +0 -364
  298. hypernix-0.72.6.post4/tests/models/test_hnx_device_placement.py +0 -245
  299. hypernix-0.72.6.post4/tests/models/test_hnx_devices.py +0 -357
  300. hypernix-0.72.6.post4/tests/models/test_neo_oven.py +0 -294
  301. hypernix-0.72.6.post4/tests/models/test_nix_fallback.py +0 -117
  302. hypernix-0.72.6.post4/tests/models/test_v031_chat_and_archs.py +0 -285
  303. hypernix-0.72.6.post4/tests/monitoring/test_remote_desktop.py +0 -428
  304. hypernix-0.72.6.post4/tests/monitoring/test_tvtop_max.py +0 -552
  305. hypernix-0.72.6.post4/tests/monitoring/test_tvtoppro.py +0 -427
  306. hypernix-0.72.6.post4/tests/monitoring/test_tvtoppro_features.py +0 -505
  307. hypernix-0.72.6.post4/tests/optimizers/test_pressure_cooker_deprecation.py +0 -232
  308. hypernix-0.72.6.post4/tests/optimizers/test_v0704_features.py +0 -883
  309. hypernix-0.72.6.post4/tests/optimizers/test_v0705_all.py +0 -613
  310. hypernix-0.72.6.post4/tests/quant/test_convert_pipeline.py +0 -141
  311. hypernix-0.72.6.post4/tests/quant/test_decoder_agreement.py +0 -144
  312. hypernix-0.72.6.post4/tests/quant/test_fetcher.py +0 -102
  313. hypernix-0.72.6.post4/tests/quant/test_ggml_hnx.py +0 -740
  314. hypernix-0.72.6.post4/tests/quant/test_ggufcheck.py +0 -544
  315. hypernix-0.72.6.post4/tests/quant/test_hyprslug_headers.py +0 -615
  316. hypernix-0.72.6.post4/tests/quant/test_hyprslug_hybrids.py +0 -351
  317. hypernix-0.72.6.post4/tests/quant/test_hyprslug_recipes.py +0 -386
  318. hypernix-0.72.6.post4/tests/quant/test_imatrix.py +0 -429
  319. hypernix-0.72.6.post4/tests/quant/test_subbit_quantization.py +0 -746
  320. hypernix-0.72.6.post4/tests/repo/test_autofix_scripts.py +0 -542
  321. hypernix-0.72.6.post4/tests/repo/test_ci_integration_jobs.py +0 -338
  322. hypernix-0.72.6.post4/tests/repo/test_codacy_sarif_filter.py +0 -59
  323. hypernix-0.72.6.post4/tests/repo/test_conftest_rails.py +0 -182
  324. hypernix-0.72.6.post4/tests/repo/test_install_script.py +0 -1237
  325. hypernix-0.72.6.post4/tests/repo/test_lint_regressions.py +0 -260
  326. hypernix-0.72.6.post4/tests/repo/test_module_layout.py +0 -141
  327. hypernix-0.72.6.post4/tests/repo/test_release_plan.py +0 -268
  328. hypernix-0.72.6.post4/tests/repo/test_release_push_retry.py +0 -160
  329. hypernix-0.72.6.post4/tests/repo/test_version_guard.py +0 -414
  330. hypernix-0.72.6.post4/tests/scriptgen/test_v0721_modules.py +0 -696
  331. hypernix-0.72.6.post4/tests/security/test_safeurl.py +0 -59
  332. hypernix-0.72.6.post4/tests/security/test_security_fixes.py +0 -364
  333. hypernix-0.72.6.post4/tests/security/test_sspkid_and_key_config.py +0 -373
  334. hypernix-0.72.6.post4/tests/security/test_t2s_errors.py +0 -325
  335. hypernix-0.72.6.post4/tests/security/test_v0710_gatekeeper_keymaster.py +0 -1066
  336. hypernix-0.72.6.post4/tests/shell_support.py +0 -141
  337. hypernix-0.72.6.post4/tests/system/test_archmap.py +0 -185
  338. hypernix-0.72.6.post4/tests/system/test_deprecation.py +0 -320
  339. hypernix-0.72.6.post4/tests/system/test_doctor.py +0 -127
  340. hypernix-0.72.6.post4/tests/system/test_fridges.py +0 -228
  341. hypernix-0.72.6.post4/tests/system/test_launch_script.py +0 -798
  342. hypernix-0.72.6.post4/tests/system/test_launch_shell.py +0 -190
  343. hypernix-0.72.6.post4/tests/system/test_pathfix.py +0 -551
  344. hypernix-0.72.6.post4/tests/system/test_protect_blanking.py +0 -325
  345. hypernix-0.72.6.post4/tests/system/test_v060.py +0 -390
  346. hypernix-0.72.6.post4/tests/system/test_vram_optimizations.py +0 -604
  347. hypernix-0.72.6.post4/tests/t1api/test_code_sandbox.py +0 -420
  348. hypernix-0.72.6.post4/tests/t1api/test_hypernix_t1_service.py +0 -1308
  349. hypernix-0.72.6.post4/tests/t1api/test_hypernix_t1_upgrade.py +0 -243
  350. hypernix-0.72.6.post4/tests/t1api/test_lms_override.py +0 -240
  351. hypernix-0.72.6.post4/tests/t1api/test_local_server_url.py +0 -200
  352. hypernix-0.72.6.post4/tests/t1api/test_model_registry_discovery.py +0 -430
  353. hypernix-0.72.6.post4/tests/t1api/test_modelsync.py +0 -400
  354. hypernix-0.72.6.post4/tests/t1api/test_noodle_api.py +0 -301
  355. hypernix-0.72.6.post4/tests/t1api/test_runner_cli.py +0 -561
  356. hypernix-0.72.6.post4/tests/t1api/test_security_post1.py +0 -236
  357. hypernix-0.72.6.post4/tests/t1api/test_t1_v1_0_26_8_1_1.py +0 -403
  358. hypernix-0.72.6.post4/tests/t1api/test_t1api_beta3_core.py +0 -1002
  359. hypernix-0.72.6.post4/tests/training/test_cli_integration.py +0 -361
  360. hypernix-0.72.6.post4/tests/training/test_fusebox.py +0 -1188
  361. hypernix-0.72.6.post4/tests/training/test_snapshot_roundtrip.py +0 -128
  362. hypernix-0.72.6.post4/tests/training/test_v050.py +0 -542
  363. hypernix-0.72.6.post4/tests/waiter/test_waiter.py +0 -399
  364. hypernix-0.72.6.post4/tests/waiter/test_waiter_serv_0726.py +0 -420
  365. hypernix-0.72.6.post4/wiki/CLI.md +0 -1217
  366. hypernix-0.72.6.post4/wiki/Changelog.md +0 -10198
  367. hypernix-0.72.6.post4/wiki/Home.md +0 -408
  368. hypernix-0.72.6.post4/wiki/PipelineMechanics.md +0 -171
  369. hypernix-0.72.6.post4/wiki/Release-Timeline.md +0 -1033
  370. hypernix-0.72.6.post4/wiki/Roadmap.md +0 -421
  371. hypernix-0.72.6.post4/wiki/T1-API.md +0 -2634
  372. hypernix-0.72.6.post4/wiki/macOS-legacy.md +0 -145
  373. {hypernix-0.72.6.post4 → hypernix-0.72.7}/.github/workflows/arch-map.yml +0 -0
  374. {hypernix-0.72.6.post4 → hypernix-0.72.7}/.github/workflows/auto-scan.yml +0 -0
  375. {hypernix-0.72.6.post4 → hypernix-0.72.7}/.github/workflows/build.yml +0 -0
  376. {hypernix-0.72.6.post4 → hypernix-0.72.7}/.github/workflows/codacy.yml +0 -0
  377. {hypernix-0.72.6.post4 → hypernix-0.72.7}/.github/workflows/deploy-docs.yml +0 -0
  378. {hypernix-0.72.6.post4 → hypernix-0.72.7}/.github/workflows/hypernix-security-scan.yml +0 -0
  379. {hypernix-0.72.6.post4 → hypernix-0.72.7}/.github/workflows/ios.yml +0 -0
  380. {hypernix-0.72.6.post4 → hypernix-0.72.7}/.github/workflows/public-release.yml +0 -0
  381. {hypernix-0.72.6.post4 → hypernix-0.72.7}/.github/workflows/release.yml +0 -0
  382. {hypernix-0.72.6.post4 → hypernix-0.72.7}/.github/workflows/security-autofix.yml +0 -0
  383. {hypernix-0.72.6.post4 → hypernix-0.72.7}/.github/workflows/update-docs-data.yml +0 -0
  384. {hypernix-0.72.6.post4 → hypernix-0.72.7}/.github/workflows/update-json-stats.yml +0 -0
  385. {hypernix-0.72.6.post4 → hypernix-0.72.7}/.github/workflows/update-readme.yml +0 -0
  386. {hypernix-0.72.6.post4 → hypernix-0.72.7}/LICENSE +0 -0
  387. {hypernix-0.72.6.post4 → hypernix-0.72.7}/MANIFEST.in +0 -0
  388. {hypernix-0.72.6.post4 → hypernix-0.72.7}/assets/banner-hero.svg +0 -0
  389. {hypernix-0.72.6.post4 → hypernix-0.72.7}/assets/logo/Gemini_Generated_Image_nxfdm1nxfdm1nxfd-removebg-preview.png +0 -0
  390. {hypernix-0.72.6.post4 → hypernix-0.72.7}/assets/logo/Gemini_Generated_Image_nxfdm1nxfdm1nxfd.png +0 -0
  391. {hypernix-0.72.6.post4 → hypernix-0.72.7}/assets/logo-new/apple-touch-icon.png +0 -0
  392. {hypernix-0.72.6.post4 → hypernix-0.72.7}/assets/logo-new/favicon-16.png +0 -0
  393. {hypernix-0.72.6.post4 → hypernix-0.72.7}/assets/logo-new/favicon-32.png +0 -0
  394. {hypernix-0.72.6.post4 → hypernix-0.72.7}/assets/logo-new/favicon-48.png +0 -0
  395. {hypernix-0.72.6.post4 → hypernix-0.72.7}/assets/logo-new/hypernix-favicon.svg +0 -0
  396. {hypernix-0.72.6.post4 → hypernix-0.72.7}/assets/logo-new/hypernix-icon-dark.svg +0 -0
  397. {hypernix-0.72.6.post4 → hypernix-0.72.7}/assets/logo-new/hypernix-icon-mono.svg +0 -0
  398. {hypernix-0.72.6.post4 → hypernix-0.72.7}/assets/logo-new/hypernix-icon-ondark.svg +0 -0
  399. {hypernix-0.72.6.post4 → hypernix-0.72.7}/assets/logo-new/hypernix-icon-white.svg +0 -0
  400. {hypernix-0.72.6.post4 → hypernix-0.72.7}/assets/logo-new/hypernix-icon.svg +0 -0
  401. {hypernix-0.72.6.post4 → hypernix-0.72.7}/assets/logo-new/hypernix-lockup-dark.svg +0 -0
  402. {hypernix-0.72.6.post4 → hypernix-0.72.7}/assets/logo-new/hypernix-lockup-light.svg +0 -0
  403. {hypernix-0.72.6.post4 → hypernix-0.72.7}/assets/logo-new/icon-192.png +0 -0
  404. {hypernix-0.72.6.post4 → hypernix-0.72.7}/assets/logo-new/icon-512.png +0 -0
  405. {hypernix-0.72.6.post4 → hypernix-0.72.7}/assets/logo.png +0 -0
  406. {hypernix-0.72.6.post4 → hypernix-0.72.7}/assets/logo1.png +0 -0
  407. {hypernix-0.72.6.post4 → hypernix-0.72.7}/bin/_hypernix_python.sh +0 -0
  408. {hypernix-0.72.6.post4 → hypernix-0.72.7}/bin/hnx-t1 +0 -0
  409. {hypernix-0.72.6.post4 → hypernix-0.72.7}/bin/hyped+ +0 -0
  410. {hypernix-0.72.6.post4 → hypernix-0.72.7}/bin/hyped-pro +0 -0
  411. {hypernix-0.72.6.post4 → hypernix-0.72.7}/bin/hyped-pro-gui +0 -0
  412. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/audio/clean_up_a_recording.py +0 -0
  413. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/curriculum_eval_v0_70_4.py +0 -0
  414. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/custom_arch.py +0 -0
  415. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/dilute/best_of_n.py +0 -0
  416. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/hypernix_run.json +0 -0
  417. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/hyprslug-headers/README.md +0 -0
  418. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/hyprslug-headers/serve.sh +0 -0
  419. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/hyprslug-headers/wrap-for-lmstudio.sh +0 -0
  420. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/neuron/game_automation.py +0 -0
  421. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/neuron/image_recognition.py +0 -0
  422. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/quickstart.py +0 -0
  423. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/resilient_finetune_v0_70_4.py +0 -0
  424. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/run_hypernix.py +0 -0
  425. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/t1api/API-EXAMPLES.md +0 -0
  426. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/t1api/Dockerfile +0 -0
  427. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/t1api/README.md +0 -0
  428. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/t1api/config/.gitkeep +0 -0
  429. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/t1api/docker-compose.yml +0 -0
  430. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/t1api/hypernix-t1api.service +0 -0
  431. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/t1api/nginx.conf +0 -0
  432. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/t1api/openapi.json +0 -0
  433. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/t1api/run_local.sh +0 -0
  434. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/t1api/run_tailscale.sh +0 -0
  435. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/train hypernix 1 5 gtx1080.py +0 -0
  436. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/train_hypernix_0_1_5_evaluator.py +0 -0
  437. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/train_hypernix_1_5_gtx1080.py +0 -0
  438. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/tvtoppro/README.md +0 -0
  439. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/tvtoppro/dracula.theme +0 -0
  440. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/tvtoppro/gruvbox-dark.theme +0 -0
  441. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/tvtoppro/hypernix.theme +0 -0
  442. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/tvtoppro/mono.theme +0 -0
  443. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/tvtoppro/monokai.theme +0 -0
  444. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/tvtoppro/nord.theme +0 -0
  445. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/tvtoppro/tokyo-night.theme +0 -0
  446. {hypernix-0.72.6.post4 → hypernix-0.72.7}/examples/upload_to_hub.py +0 -0
  447. {hypernix-0.72.6.post4 → hypernix-0.72.7}/pytest.ini +0 -0
  448. {hypernix-0.72.6.post4 → hypernix-0.72.7}/scripts/README.md +0 -0
  449. {hypernix-0.72.6.post4 → hypernix-0.72.7}/scripts/autofix +0 -0
  450. {hypernix-0.72.6.post4 → hypernix-0.72.7}/scripts/autofix-B +0 -0
  451. {hypernix-0.72.6.post4 → hypernix-0.72.7}/scripts/autofix-E +0 -0
  452. {hypernix-0.72.6.post4 → hypernix-0.72.7}/scripts/autofix_scope.py +0 -0
  453. {hypernix-0.72.6.post4 → hypernix-0.72.7}/scripts/benchmark_v5.py +0 -0
  454. {hypernix-0.72.6.post4 → hypernix-0.72.7}/scripts/benchmark_v5s.py +0 -0
  455. {hypernix-0.72.6.post4 → hypernix-0.72.7}/scripts/benchmark_v6.py +0 -0
  456. {hypernix-0.72.6.post4 → hypernix-0.72.7}/scripts/ci/fake_model_server.py +0 -0
  457. {hypernix-0.72.6.post4 → hypernix-0.72.7}/scripts/ci/integration_probe.py +0 -0
  458. {hypernix-0.72.6.post4 → hypernix-0.72.7}/scripts/install_deps.sh +0 -0
  459. {hypernix-0.72.6.post4 → hypernix-0.72.7}/scripts/measure_optimizer_memory.py +0 -0
  460. {hypernix-0.72.6.post4 → hypernix-0.72.7}/scripts/quantize_i7_7660u.sh +0 -0
  461. {hypernix-0.72.6.post4 → hypernix-0.72.7}/scripts/t1api_examples.py +0 -0
  462. {hypernix-0.72.6.post4 → hypernix-0.72.7}/scripts/update_json_stats.py +0 -0
  463. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/__main__.py +0 -0
  464. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/audio/__init__.py +0 -0
  465. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/audio/audiofile.py +0 -0
  466. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/audio/features.py +0 -0
  467. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/audio/processor.py +0 -0
  468. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/audio/wakeup.py +0 -0
  469. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/audio/wakeup_cli.py +0 -0
  470. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/bridge/__init__.py +0 -0
  471. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/bridge/lmstudio.py +0 -0
  472. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/chat/__init__.py +0 -0
  473. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/chat/cookbook.py +0 -0
  474. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/chat/countertop.py +0 -0
  475. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/chat/flour.py +0 -0
  476. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/chat/injection.py +0 -0
  477. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/chat/menu.py +0 -0
  478. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/data/__init__.py +0 -0
  479. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/data/blender.py +0 -0
  480. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/data/cardboard_box.py +0 -0
  481. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/data/cutting_board.py +0 -0
  482. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/data/food_processor.py +0 -0
  483. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/data/gather.py +0 -0
  484. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/data/gather_cli.py +0 -0
  485. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/data/lunchbox.py +0 -0
  486. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/data/mediocre_fridge.py +0 -0
  487. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/data/pans.py +0 -0
  488. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/data/pepper_shaker.py +0 -0
  489. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/data/qa.py +0 -0
  490. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/data/salt_shaker.py +0 -0
  491. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/data/scavenger.py +0 -0
  492. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/data/sink.py +0 -0
  493. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/data/strainer.py +0 -0
  494. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/data/toaster.py +0 -0
  495. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/data/tupperware.py +0 -0
  496. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/dilute/__init__.py +0 -0
  497. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/dilute/backends.py +0 -0
  498. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/dilute/cli.py +0 -0
  499. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/dilute/core.py +0 -0
  500. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/dilute/evaluators.py +0 -0
  501. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/elements/__init__.py +0 -0
  502. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/elements/builtins.py +0 -0
  503. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/elements/carbon.py +0 -0
  504. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/elements/elements_cli.py +0 -0
  505. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/elements/hydrogen.py +0 -0
  506. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/elements/magnesium.py +0 -0
  507. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/elements/natural_gas.py +0 -0
  508. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/evaluation/__init__.py +0 -0
  509. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/evaluation/espresso_maker.py +0 -0
  510. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/evaluation/industrial_range.py +0 -0
  511. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/evaluation/new_range.py +0 -0
  512. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/evaluation/old_range.py +0 -0
  513. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/evaluation/vera.py +0 -0
  514. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyped_pro.js +0 -0
  515. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/__init__.py +0 -0
  516. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/brewed_server.py +0 -0
  517. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/capabilities.py +0 -0
  518. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/catalogue.py +0 -0
  519. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/compaction.py +0 -0
  520. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/default_prompt.py +0 -0
  521. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/discovery.py +0 -0
  522. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/generation.py +0 -0
  523. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/handover.py +0 -0
  524. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/hfdownload.py +0 -0
  525. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/hfmerge.py +0 -0
  526. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/hyperchat.py +0 -0
  527. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/inference.py +0 -0
  528. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/memory.py +0 -0
  529. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/modellinks.py +0 -0
  530. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/notify.py +0 -0
  531. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/ondevice.py +0 -0
  532. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/pairing.py +0 -0
  533. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/peers.py +0 -0
  534. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/preferences.py +0 -0
  535. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/search.py +0 -0
  536. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/sessions.py +0 -0
  537. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/shell.py +0 -0
  538. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/sync.py +0 -0
  539. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/titles.py +0 -0
  540. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/toolloop.py +0 -0
  541. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/web/app.css +0 -0
  542. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/web/app.js +0 -0
  543. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/web/icon.svg +0 -0
  544. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/hyperlink/web/index.html +0 -0
  545. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/__init__.py +0 -0
  546. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/assistant.py +0 -0
  547. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/dots.py +0 -0
  548. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_basic.py +0 -0
  549. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_pro.py +0 -0
  550. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_pro_app/bun.lock +0 -0
  551. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_pro_app/src/bridge.ts +0 -0
  552. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_pro_app/src/commands.ts +0 -0
  553. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_pro_app/src/files.ts +0 -0
  554. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_pro_app/src/git.ts +0 -0
  555. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_pro_app/src/index.ts +0 -0
  556. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_pro_app/src/prefs.ts +0 -0
  557. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_pro_app/src/session.ts +0 -0
  558. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_pro_app/src/theme.ts +0 -0
  559. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_pro_app/test/bridge.test.ts +0 -0
  560. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_pro_app/test/commands.test.ts +0 -0
  561. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_pro_app/test/files.test.ts +0 -0
  562. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_pro_app/test/git.test.ts +0 -0
  563. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_pro_app/test/index.test.ts +0 -0
  564. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_pro_app/test/prefs.test.ts +0 -0
  565. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_pro_app/test/session.test.ts +0 -0
  566. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_pro_app/tsconfig.json +0 -0
  567. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_pro_bridge.py +0 -0
  568. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_pro_core.py +0 -0
  569. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_pro_git.py +0 -0
  570. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_pro_gui.py +0 -0
  571. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/hyped_pro_tools.py +0 -0
  572. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/noodle/__init__.py +0 -0
  573. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/noodle/agent.py +0 -0
  574. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/noodle/cli.py +0 -0
  575. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/noodle/hpo.py +0 -0
  576. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/noodle/hyped.py +0 -0
  577. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/noodle/providers.py +0 -0
  578. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/noodle/swarm.py +0 -0
  579. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/noodle/tools.py +0 -0
  580. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/noodle/validate.py +0 -0
  581. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/websearch.py +0 -0
  582. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/interfaces/wiki_cli.py +0 -0
  583. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/models/__init__.py +0 -0
  584. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/models/arch.py +0 -0
  585. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/models/brewer_adapter.py +0 -0
  586. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/models/brewer_gguf.py +0 -0
  587. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/models/generate.py +0 -0
  588. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/models/ggufrun.py +0 -0
  589. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/models/hnxdevice.py +0 -0
  590. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/models/hnxrun.py +0 -0
  591. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/models/hnxtokenizer.py +0 -0
  592. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/models/hnxtorch.py +0 -0
  593. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/models/microwave.py +0 -0
  594. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/models/multilama.py +0 -0
  595. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/models/old_oven.py +0 -0
  596. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/models/stml.py +0 -0
  597. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/models/workshop.py +0 -0
  598. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/__init__.py +0 -0
  599. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/cctvtop.py +0 -0
  600. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/livestream.py +0 -0
  601. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/map.py +0 -0
  602. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/plasma.py +0 -0
  603. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/stale_log.py +0 -0
  604. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/table.py +0 -0
  605. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/tvtop.py +0 -0
  606. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/tvtop_max.py +0 -0
  607. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/tvtop_max_app/bun.lock +0 -0
  608. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/tvtop_max_app/src/bridge.ts +0 -0
  609. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/tvtop_max_app/src/format.ts +0 -0
  610. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/tvtop_max_app/src/index.ts +0 -0
  611. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/tvtop_max_app/src/layout.ts +0 -0
  612. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/tvtop_max_app/src/panels.ts +0 -0
  613. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/tvtop_max_app/src/theme.ts +0 -0
  614. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/tvtop_max_app/src/types.ts +0 -0
  615. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/tvtop_max_app/test/format.test.ts +0 -0
  616. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/tvtop_max_app/test/index.test.ts +0 -0
  617. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/tvtop_max_app/test/panels.test.ts +0 -0
  618. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/tvtop_max_app/tsconfig.json +0 -0
  619. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/tvtop_max_bridge.py +0 -0
  620. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/tvtop_plus_plus.py +0 -0
  621. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/monitoring/tvtoppro.py +0 -0
  622. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/neuron/__init__.py +0 -0
  623. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/neuron/cli.py +0 -0
  624. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/neuron/data.py +0 -0
  625. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/neuron/envs.py +0 -0
  626. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/neuron/evaluate.py +0 -0
  627. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/neuron/imitation.py +0 -0
  628. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/neuron/nets.py +0 -0
  629. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/neuron/rl.py +0 -0
  630. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/neuron/supervised.py +0 -0
  631. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/optimizers/__init__.py +0 -0
  632. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/optimizers/deprecation.py +0 -0
  633. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/optimizers/optimizer_framework.py +0 -0
  634. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/optimizers/pressure_cooker_v3.py +0 -0
  635. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/optimizers/pressure_cooker_v4.py +0 -0
  636. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/optimizers/pressure_cooker_v5.py +0 -0
  637. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/optimizers/pressure_cooker_v5s.py +0 -0
  638. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/optimizers/pressure_cooker_v6.py +0 -0
  639. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/optimizers/pressure_cooker_v6v.py +0 -0
  640. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/optimizers/sixbit.py +0 -0
  641. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/package-lock.json +0 -0
  642. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/package.json +0 -0
  643. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/py.typed +0 -0
  644. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/__init__.py +0 -0
  645. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/convertq.py +0 -0
  646. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/dflash1.py +0 -0
  647. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/dflash1_cli.py +0 -0
  648. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/dflash2.py +0 -0
  649. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/dflash2_cli.py +0 -0
  650. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/fetcher.py +0 -0
  651. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/formats.py +0 -0
  652. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/gguf.py +0 -0
  653. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/ggufcheck.py +0 -0
  654. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/hyprslug.py +0 -0
  655. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/hyprslug_cli.py +0 -0
  656. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/hyprslug_server.py +0 -0
  657. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/imatrix.py +0 -0
  658. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/imatrix_cli.py +0 -0
  659. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/lowbit.py +0 -0
  660. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/multiquant.py +0 -0
  661. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/multiquant_cli.py +0 -0
  662. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/qat.py +0 -0
  663. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/quantize.py +0 -0
  664. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/runtime_bridge_cli.py +0 -0
  665. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/steamroller.py +0 -0
  666. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/steamroller_cli.py +0 -0
  667. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/subbit.py +0 -0
  668. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/quant/upload.py +0 -0
  669. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/runtime/__init__.py +0 -0
  670. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/runtime/t1tools.py +0 -0
  671. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/runtime/toolcalls.py +0 -0
  672. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/scriptgen/__init__.py +0 -0
  673. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/scriptgen/app.py +0 -0
  674. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/scriptgen/cli.py +0 -0
  675. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/scriptgen/params.py +0 -0
  676. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/scriptgen/templates.py +0 -0
  677. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/scriptgen/theme.py +0 -0
  678. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/scriptgen/widgets.py +0 -0
  679. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/security/__init__.py +0 -0
  680. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/security/gatekeeper.py +0 -0
  681. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/security/gkey_cli.py +0 -0
  682. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/security/keyconfig.py +0 -0
  683. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/security/keymaster.py +0 -0
  684. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/security/keyversions.py +0 -0
  685. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/security/rotorvault.py +0 -0
  686. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/security/safeload.py +0 -0
  687. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/security/safeurl.py +0 -0
  688. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/security/t2c.py +0 -0
  689. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/security/t2keys.py +0 -0
  690. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/__init__.py +0 -0
  691. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/archmap.py +0 -0
  692. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/compactor.py +0 -0
  693. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/config.py +0 -0
  694. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/deprecation.py +0 -0
  695. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/deps.py +0 -0
  696. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/dishwasher.py +0 -0
  697. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/errorcatalogue.py +0 -0
  698. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/errorcodes.py +0 -0
  699. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/errors_cli.py +0 -0
  700. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/ethanol.py +0 -0
  701. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/freezer.py +0 -0
  702. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/fusebox.py +0 -0
  703. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/fusebox_cli.py +0 -0
  704. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/gpus.py +0 -0
  705. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/hardware.py +0 -0
  706. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/hubcompat.py +0 -0
  707. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/linkwalk.py +0 -0
  708. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/nettrust.py +0 -0
  709. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/old_fridge.py +0 -0
  710. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/outage.py +0 -0
  711. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/pascal.py +0 -0
  712. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/pathfix.py +0 -0
  713. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/release.py +0 -0
  714. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/torch_compat.py +0 -0
  715. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/ups.py +0 -0
  716. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/utils.py +0 -0
  717. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/system/vram.py +0 -0
  718. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/__init__.py +0 -0
  719. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/accounts.py +0 -0
  720. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/accounts_cli.py +0 -0
  721. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/app.py +0 -0
  722. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/audit.py +0 -0
  723. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/auth.py +0 -0
  724. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/authhistory.py +0 -0
  725. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/backup.py +0 -0
  726. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/billing.py +0 -0
  727. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/billingkeys.py +0 -0
  728. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/bootstrap.py +0 -0
  729. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/chat_cli.py +0 -0
  730. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/cost.py +0 -0
  731. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/data/model_registry.example.json +0 -0
  732. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/data/routing_policies.example.json +0 -0
  733. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/db.py +0 -0
  734. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/deploy.py +0 -0
  735. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/deps.py +0 -0
  736. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/errors.py +0 -0
  737. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/events.py +0 -0
  738. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/hyperlink_web.py +0 -0
  739. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/jobs.py +0 -0
  740. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/keys.py +0 -0
  741. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/launchscript_cli.py +0 -0
  742. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/lmsoverride.py +0 -0
  743. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/localserver.py +0 -0
  744. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/mcp.py +0 -0
  745. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/mcptools.py +0 -0
  746. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/modelindex.py +0 -0
  747. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/modelindex_cli.py +0 -0
  748. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/modelsync.py +0 -0
  749. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/modelsync_cli.py +0 -0
  750. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/modules.py +0 -0
  751. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/mtls.py +0 -0
  752. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/netpolicy.py +0 -0
  753. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/pricing.py +0 -0
  754. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/privacy.py +0 -0
  755. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/ratelimit.py +0 -0
  756. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/registry.py +0 -0
  757. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/__init__.py +0 -0
  758. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/accounts.py +0 -0
  759. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/audit.py +0 -0
  760. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/auth.py +0 -0
  761. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/authundo.py +0 -0
  762. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/backup.py +0 -0
  763. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/billing.py +0 -0
  764. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/bridge.py +0 -0
  765. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/code.py +0 -0
  766. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/compact.py +0 -0
  767. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/config.py +0 -0
  768. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/events.py +0 -0
  769. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/health.py +0 -0
  770. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/jobs.py +0 -0
  771. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/keys.py +0 -0
  772. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/mcp.py +0 -0
  773. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/memory.py +0 -0
  774. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/models.py +0 -0
  775. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/modules.py +0 -0
  776. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/noodle.py +0 -0
  777. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/privacy.py +0 -0
  778. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/security.py +0 -0
  779. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/servers.py +0 -0
  780. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/t2c.py +0 -0
  781. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/training.py +0 -0
  782. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/usage.py +0 -0
  783. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routers/web.py +0 -0
  784. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/routing.py +0 -0
  785. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/security.py +0 -0
  786. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/servers.py +0 -0
  787. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/storage.py +0 -0
  788. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/training_cli.py +0 -0
  789. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/transport.py +0 -0
  790. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/upgrade.py +0 -0
  791. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/usage.py +0 -0
  792. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/version.py +0 -0
  793. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1api/webauth.py +0 -0
  794. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1sdk/__init__.py +0 -0
  795. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1sdk/client.py +0 -0
  796. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1sdk/errors.py +0 -0
  797. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1sdk/models.py +0 -0
  798. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/t1sdk/transport.py +0 -0
  799. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/timing/__init__.py +0 -0
  800. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/timing/bell.py +0 -0
  801. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/timing/coffee_maker.py +0 -0
  802. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/timing/smoke_alarm.py +0 -0
  803. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/timing/spinner.py +0 -0
  804. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/timing/timer.py +0 -0
  805. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/training/__init__.py +0 -0
  806. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/training/abbicus.py +0 -0
  807. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/training/apron.py +0 -0
  808. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/training/cake_pan.py +0 -0
  809. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/training/camouflage.py +0 -0
  810. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/training/compute_framework.py +0 -0
  811. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/training/deep_fryer.py +0 -0
  812. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/training/instant_pot.py +0 -0
  813. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/training/lazy_suzan.py +0 -0
  814. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/training/mtp.py +0 -0
  815. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/training/recipe_book.py +0 -0
  816. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/training/smoker.py +0 -0
  817. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/tsconfig.json +0 -0
  818. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/waiter/__init__.py +0 -0
  819. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/waiter/cli.py +0 -0
  820. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/waiter/client.py +0 -0
  821. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/waiter/diagnose.py +0 -0
  822. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/waiter/discovery.py +0 -0
  823. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/waiter/kits.py +0 -0
  824. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/waiter/local_config.py +0 -0
  825. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/waiter/servargs.py +0 -0
  826. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/waiter/servops.py +0 -0
  827. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/waiter/smoke.py +0 -0
  828. {hypernix-0.72.6.post4 → hypernix-0.72.7}/src/hypernix/waiter/tui.py +0 -0
  829. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/audio/test_audio_processor.py +0 -0
  830. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/chat/test_v051.py +0 -0
  831. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/data/test_gather.py +0 -0
  832. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/data/test_gather_pt2.py +0 -0
  833. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/data/test_subsystem_map.py +0 -0
  834. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/data/test_tupperware.py +0 -0
  835. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/docs/test_changelog_format.py +0 -0
  836. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/docs/test_docs_changelog_data.py +0 -0
  837. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/docs/test_docs_current.py +0 -0
  838. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/docs/test_website_mobile.py +0 -0
  839. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/evaluation/test_ranges.py +0 -0
  840. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/evaluation/test_vera.py +0 -0
  841. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/hyperlink/test_chat_compaction.py +0 -0
  842. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/hyperlink/test_generation_stop.py +0 -0
  843. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/hyperlink/test_hyperchat.py +0 -0
  844. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/hyperlink/test_hyperlink_api_post9.py +0 -0
  845. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/hyperlink/test_hyperlink_default_prompt.py +0 -0
  846. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/hyperlink/test_hyperlink_keyless.py +0 -0
  847. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/hyperlink/test_hyperlink_memory_sync.py +0 -0
  848. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/hyperlink/test_hyperlink_ondevice.py +0 -0
  849. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/hyperlink/test_hyperlink_ondevice_mirror.py +0 -0
  850. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/hyperlink/test_hyperlink_pt3b.py +0 -0
  851. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/hyperlink/test_hyperlink_pt3c.py +0 -0
  852. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/hyperlink/test_hyperlink_reads_links.py +0 -0
  853. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/hyperlink/test_hyperlink_search.py +0 -0
  854. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/hyperlink/test_hyperlink_stream_tools.py +0 -0
  855. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/hyperlink/test_hyperlink_sync.py +0 -0
  856. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/hyperlink/test_hyperlink_t1_tools_e2e.py +0 -0
  857. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/hyperlink/test_hyperlink_tool_formats.py +0 -0
  858. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/hyperlink/test_hyperlink_updated_at.py +0 -0
  859. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/hyperlink/test_inference_backend.py +0 -0
  860. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/hyperlink/test_managed_runner.py +0 -0
  861. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/hyperlink/test_model_catalogue.py +0 -0
  862. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/interfaces/test_cli_unknown_command.py +0 -0
  863. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/interfaces/test_hyped_pro_bridge_cancel.py +0 -0
  864. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/interfaces/test_tool_consent_gate.py +0 -0
  865. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/interfaces/test_v0714_hyped_pro_bridge.py +0 -0
  866. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/ios/test_hyperlink_bubble_tail.py +0 -0
  867. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/ios/test_hyperlink_pt2b_wiring.py +0 -0
  868. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/ios/test_hyperlink_pt3b_ios_wiring.py +0 -0
  869. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/ios/test_hyperlink_pt3c_ios.py +0 -0
  870. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/ios/test_hyperlink_siri_0726.py +0 -0
  871. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/ios/test_hyperlink_siri_phrases.py +0 -0
  872. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/ios/test_ios_appicon.py +0 -0
  873. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/ios/test_ios_concurrency.py +0 -0
  874. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/ios/test_ios_version_wiring.py +0 -0
  875. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/models/test_arch_mapping.py +0 -0
  876. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/models/test_brewer_adapter.py +0 -0
  877. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/models/test_neo_oven_generation.py +0 -0
  878. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/models/test_new_archs_v035.py +0 -0
  879. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/models/test_old_oven.py +0 -0
  880. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/models/test_v051_4.py +0 -0
  881. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/models/test_v0704b11_features.py +0 -0
  882. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/models/test_v0714_multilama.py +0 -0
  883. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/monitoring/test_map.py +0 -0
  884. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/monitoring/test_tvtop_plus_plus_comprehensive.py +0 -0
  885. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/monitoring/test_v061_2.py +0 -0
  886. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/monitoring/test_v061_b1.py +0 -0
  887. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/monitoring/test_v0704_tvtop_plus_plus.py +0 -0
  888. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/monitoring/test_v0704b12_cctvtop.py +0 -0
  889. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/monitoring/test_v0711_border_fix.py +0 -0
  890. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/neuron/test_neuron.py +0 -0
  891. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/optimizers/test_pressure_cooker_v048.py +0 -0
  892. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/optimizers/test_pressure_cooker_v3.py +0 -0
  893. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/optimizers/test_pressure_cooker_v6.py +0 -0
  894. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/optimizers/test_v051_1.py +0 -0
  895. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/quant/test_cli_json_output.py +0 -0
  896. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/quant/test_deps_and_windows.py +0 -0
  897. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/quant/test_effective_bitrate.py +0 -0
  898. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/quant/test_hnxrun.py +0 -0
  899. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/quant/test_hyprslug_field_reports.py +0 -0
  900. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/quant/test_hyprslug_protected_tensors.py +0 -0
  901. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/quant/test_hyprslug_row_blocks.py +0 -0
  902. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/quant/test_llama_quants.py +0 -0
  903. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/quant/test_low_bit_types.py +0 -0
  904. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/quant/test_multiquant.py +0 -0
  905. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/quant/test_qat.py +0 -0
  906. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/quant/test_quantize_v0703.py +0 -0
  907. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/quant/test_t1_model_index.py +0 -0
  908. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/quant/test_v051_3.py +0 -0
  909. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/repo/test_install_pin.py +0 -0
  910. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/runtime/test_runtime_toolcalls.py +0 -0
  911. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/sdk_bridge.py +0 -0
  912. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/security/test_bootstrap_key.py +0 -0
  913. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/security/test_gkey_key_versions.py +0 -0
  914. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/security/test_rotorvault.py +0 -0
  915. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/security/test_safeload.py +0 -0
  916. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/security/test_t1api_auth.py +0 -0
  917. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/security/test_t2c_keys.py +0 -0
  918. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/security/test_v0712_hyped_countertop.py +0 -0
  919. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/security/test_v0721_t2_keys.py +0 -0
  920. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/system/test_autoscan.py +0 -0
  921. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/system/test_error_codes.py +0 -0
  922. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/system/test_ethanol.py +0 -0
  923. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/system/test_freezer.py +0 -0
  924. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/system/test_gpu_migration.py +0 -0
  925. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/system/test_gpus.py +0 -0
  926. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/system/test_hyped_pro_t1api.py +0 -0
  927. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/system/test_nettrust.py +0 -0
  928. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/system/test_server_hardware.py +0 -0
  929. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/system/test_ups.py +0 -0
  930. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/system/test_v052_5.py +0 -0
  931. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/system/test_v061_1.py +0 -0
  932. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/system/test_v0714_config_provider_keys.py +0 -0
  933. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_billing_keys.py +0 -0
  934. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_inference_endpoints.py +0 -0
  935. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_mcp.py +0 -0
  936. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_memory.py +0 -0
  937. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_message_editing.py +0 -0
  938. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_model_pricing.py +0 -0
  939. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_preferences.py +0 -0
  940. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_privacy_conceal.py +0 -0
  941. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_server_upgrade.py +0 -0
  942. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_t1_accounts.py +0 -0
  943. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_t1_v1_0_26_core.py +0 -0
  944. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_t1_v1_0_26_http.py +0 -0
  945. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_t1api_beta3_http.py +0 -0
  946. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_t1api_beta3_security.py +0 -0
  947. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_t1api_beta4_usage_report.py +0 -0
  948. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_t1api_billing.py +0 -0
  949. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_t1api_core.py +0 -0
  950. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_t1api_events.py +0 -0
  951. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_t1api_example_scripts.py +0 -0
  952. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_t1api_http.py +0 -0
  953. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_t1api_http_beta2.py +0 -0
  954. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_t1api_jobs.py +0 -0
  955. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_t1api_modules.py +0 -0
  956. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_t1api_routing.py +0 -0
  957. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_t1api_security.py +0 -0
  958. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_t1api_servers.py +0 -0
  959. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_trusted_network.py +0 -0
  960. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_v0721_api_waiter.py +0 -0
  961. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1api/test_version_endpoint.py +0 -0
  962. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/t1sdk/test_t1sdk_0726.py +0 -0
  963. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/timing/test_alarms_and_presets.py +0 -0
  964. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/timing/test_v052_6.py +0 -0
  965. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/training/test_brewer_causality.py +0 -0
  966. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/training/test_lazy_suzan.py +0 -0
  967. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/training/test_neo_oven_presets.py +0 -0
  968. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/training/test_training_admin.py +0 -0
  969. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/training/test_v047_deep_fryer_cake_pan_presets.py +0 -0
  970. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/training/test_v0703_additional.py +0 -0
  971. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/training/test_v0714_cpu_presets.py +0 -0
  972. {hypernix-0.72.6.post4 → hypernix-0.72.7}/tests/waiter/test_waiter_diagnose.py +0 -0
  973. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Abbicus.md +0 -0
  974. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Alarms.md +0 -0
  975. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Apron.md +0 -0
  976. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Architecture.md +0 -0
  977. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Architectures.md +0 -0
  978. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Bell.md +0 -0
  979. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Blender.md +0 -0
  980. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/CakePan.md +0 -0
  981. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Camouflage.md +0 -0
  982. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Changelog-guide.md +0 -0
  983. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/CoffeeMaker.md +0 -0
  984. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Convert.md +0 -0
  985. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Cookbook.md +0 -0
  986. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Countertop.md +0 -0
  987. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/CuttingBoard.md +0 -0
  988. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Dashboards.md +0 -0
  989. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/DeepFryer.md +0 -0
  990. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Devices.md +0 -0
  991. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Dflash2.md +0 -0
  992. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Download.md +0 -0
  993. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/EspressoMaker.md +0 -0
  994. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Flour.md +0 -0
  995. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/FoodProcessor.md +0 -0
  996. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Frameworks.md +0 -0
  997. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Freezer.md +0 -0
  998. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Fridges.md +0 -0
  999. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/FuseBox.md +0 -0
  1000. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Gather.md +0 -0
  1001. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/HnxRun.md +0 -0
  1002. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/HuggingFace-Models.md +0 -0
  1003. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/HyperLink-OnDevice.md +0 -0
  1004. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/HyperLink-Sync.md +0 -0
  1005. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/HyperLog.md +0 -0
  1006. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/HyprSlug-Headers.md +0 -0
  1007. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/HyprSlug.md +0 -0
  1008. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Imatrix.md +0 -0
  1009. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Kitchen.md +0 -0
  1010. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/LowBit.md +0 -0
  1011. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Lunchbox.md +0 -0
  1012. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/MTP.md +0 -0
  1013. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Menu.md +0 -0
  1014. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Microwave.md +0 -0
  1015. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Model-Training-Guide.md +0 -0
  1016. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/ModelIndex.md +0 -0
  1017. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Optimizers.md +0 -0
  1018. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Ovens.md +0 -0
  1019. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Pans.md +0 -0
  1020. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Pascal.md +0 -0
  1021. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Pressure-Cooker-V3.md +0 -0
  1022. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Pressure-Cooker-V4.md +0 -0
  1023. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Pressure-Cooker-V5.md +0 -0
  1024. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Pressure-Cooker-V6.md +0 -0
  1025. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Quantization.md +0 -0
  1026. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Ranges.md +0 -0
  1027. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/RecipeBook.md +0 -0
  1028. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Runtime.md +0 -0
  1029. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/STML.md +0 -0
  1030. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Scavenger.md +0 -0
  1031. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Shakers.md +0 -0
  1032. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Smoker.md +0 -0
  1033. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/T1-API-Security-Checklist.md +0 -0
  1034. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Toaster.md +0 -0
  1035. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Training.md +0 -0
  1036. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Tupperware.md +0 -0
  1037. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/TvTopMax.md +0 -0
  1038. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/TvTopPro.md +0 -0
  1039. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/VRAM.md +0 -0
  1040. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Vera.md +0 -0
  1041. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Waiter-TUI.md +0 -0
  1042. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/WakeUp.md +0 -0
  1043. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Whisk.md +0 -0
  1044. {hypernix-0.72.6.post4 → hypernix-0.72.7}/wiki/Workshop.md +0 -0
@@ -0,0 +1,786 @@
1
+ name: ci
2
+
3
+ on:
4
+ push:
5
+ branches: [main, master]
6
+ pull_request:
7
+ workflow_dispatch:
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ concurrency:
13
+ group: ci-${{ github.ref }}
14
+ cancel-in-progress: true
15
+
16
+ jobs:
17
+ # An autofix commit says, in its trailers, exactly which tests its change
18
+ # can affect. When one is present there is nothing to learn from re-running
19
+ # the 16-way matrix over a scaled sleep constant, so the matrix is skipped
20
+ # and `autofix-verify` runs that named set instead. Only autofix-F writes
21
+ # these trailers: it edits the bodies of the tests it names and nothing
22
+ # else. autofix-B and autofix-E touch src/, so their commits carry no
23
+ # trailer and get the full matrix like any other change.
24
+ triage:
25
+ name: triage
26
+ runs-on: ubuntu-latest
27
+ outputs:
28
+ narrow: ${{ steps.scope.outputs.narrow }}
29
+ scope: ${{ steps.scope.outputs.scope }}
30
+ tests: ${{ steps.scope.outputs.tests }}
31
+ steps:
32
+ - uses: actions/checkout@v4
33
+ with:
34
+ ref: ${{ github.event.pull_request.head.sha || github.sha }}
35
+
36
+ - id: scope
37
+ name: Read the Autofix-Scope trailer, if any
38
+ shell: bash
39
+ run: |
40
+ message="$(git log -1 --pretty=%B)"
41
+ scope="$(printf '%s\n' "$message" | sed -n 's/^Autofix-Scope:[[:space:]]*//p' | tail -1)"
42
+ tests="$(printf '%s\n' "$message" | sed -n 's/^Autofix-Tests:[[:space:]]*//p' | tail -1)"
43
+ if [ -n "$scope" ]; then
44
+ echo "narrow=true" >> "$GITHUB_OUTPUT"
45
+ echo "::notice::autofix commit for scope '$scope' — verifying only its tests"
46
+ else
47
+ echo "narrow=false" >> "$GITHUB_OUTPUT"
48
+ fi
49
+ echo "scope=$scope" >> "$GITHUB_OUTPUT"
50
+ echo "tests=$tests" >> "$GITHUB_OUTPUT"
51
+
52
+ lint:
53
+ name: ruff lint
54
+ runs-on: ubuntu-latest
55
+ steps:
56
+ - uses: actions/checkout@v4
57
+ - uses: actions/setup-python@v5
58
+ with:
59
+ python-version: "3.12"
60
+ cache: pip
61
+ - run: pip install "ruff>=0.5"
62
+ - run: ruff check src tests
63
+
64
+ # Static types for the modules 0.72.7 adds or reworks ([tool.mypy] in
65
+ # pyproject.toml), checked against the oldest and the newest Python
66
+ # hyperNix-pip supports.
67
+ typecheck:
68
+ name: mypy (py${{ matrix.python-version }})
69
+ runs-on: ubuntu-latest
70
+ strategy:
71
+ fail-fast: false
72
+ matrix:
73
+ python-version: ["3.12", "3.15"]
74
+ steps:
75
+ - uses: actions/checkout@v4
76
+ - uses: actions/setup-python@v5
77
+ with:
78
+ python-version: ${{ matrix.python-version }}
79
+ allow-prereleases: true
80
+ - run: pip install "mypy>=1.11"
81
+ - run: mypy --python-version ${{ matrix.python-version }}
82
+
83
+ test:
84
+ name: test (py${{ matrix.python-version }} on ${{ matrix.os }})
85
+ needs: triage
86
+ if: needs.triage.outputs.narrow != 'true'
87
+ runs-on: ${{ matrix.os }}
88
+ strategy:
89
+ fail-fast: false
90
+ matrix:
91
+ os: [ubuntu-latest, ubuntu-22.04, macos-latest, windows-latest]
92
+ # hyperNix-pip requires Python 3.12 or newer and supports 3.12-3.15.
93
+ python-version: ["3.12", "3.13", "3.14", "3.15"]
94
+ steps:
95
+ - uses: actions/checkout@v4
96
+
97
+ - uses: actions/setup-python@v5
98
+ with:
99
+ python-version: ${{ matrix.python-version }}
100
+ allow-prereleases: true
101
+ cache: pip
102
+
103
+ # PyTorch publishes no CPython 3.15 wheels yet (torch 2.14.1 stops at
104
+ # cp314). On 3.15 everything else is installed and the package itself
105
+ # with --no-deps; the tests that need torch skip and say so. Remove
106
+ # this branch when torch ships cp315 wheels.
107
+ - name: Install torch (CPU wheels)
108
+ if: matrix.python-version != '3.15'
109
+ run: |
110
+ python -m pip install --upgrade pip
111
+ pip install --index-url https://download.pytorch.org/whl/cpu torch
112
+
113
+ - name: Install rich (required by tvtop / cli)
114
+ run: pip install "rich>=13"
115
+
116
+ - name: Editable install + dev extras
117
+ shell: bash
118
+ run: |
119
+ if [ "${{ matrix.python-version }}" = "3.15" ]; then
120
+ python -m pip install --upgrade pip
121
+ python scripts/ci/requirements_without_torch.py dev security t1api > reqs.txt
122
+ pip install -r reqs.txt
123
+ pip install --no-deps -e .
124
+ else
125
+ pip install -e ".[dev,security,t1api]"
126
+ fi
127
+
128
+ - name: pytest
129
+ run: pytest -q
130
+
131
+ - name: CLI smoke tests
132
+ run: |
133
+ hypernix --help
134
+ python -m hypernix --help
135
+ hypernix doctor || true
136
+
137
+ # cctvtop is a compiled C-extension (.so) — only available on Linux/macOS
138
+ - name: CLI smoke test — tvtop (Linux/macOS only)
139
+ if: runner.os != 'Windows'
140
+ run: tvtop --help
141
+
142
+ - name: New module import checks (v0.70.0)
143
+ if: matrix.python-version != '3.15' # these modules import torch
144
+ run: |
145
+ python -c "from hypernix.pressure_cooker_v3 import PressureCookerV3, PressureCookerV3Plus, PressureCookerV2Plus; print('pressure_cooker_v3 OK')"
146
+ python -c "from hypernix.compute_framework import ComputeFramework, ComputeArch; print('compute_framework OK')"
147
+ python -c "from hypernix.abbicus import Abbicus, AbbicusConfig; print('abbicus OK')"
148
+ python -c "from hypernix.tv import TVTop, Frame, LogTail, sparkline; print('tv OK')"
149
+ python -c "from hypernix.tvtop import TVTop, Frame, LogTail, cli_main; print('tvtop OK')"
150
+ python -c "from hypernix.ethanol import Ethanol, overclock; print('ethanol OK')"
151
+ python -c "from hypernix.ups import UPS, ThreatStatus; print('ups OK')"
152
+
153
+ - name: New module import checks (v0.71.0)
154
+ run: |
155
+ python -c "from hypernix.keymaster import Keymaster, T1KeyGenerator, KeyType, KeyScope, KeyMeta; print('keymaster OK')"
156
+ python -c "from hypernix.gatekeeper import Gatekeeper, Quota, QuotaViolation; print('gatekeeper OK')"
157
+ python -c "from hypernix.gkey_cli import main; print('gkey_cli OK')"
158
+ gkey --help
159
+
160
+ - name: setup.py compatibility
161
+ run: |
162
+ python setup.py --name
163
+ python setup.py --version
164
+
165
+ # The four Python 3.15 features hyperNix-pip uses (PEP 798, 799, 810,
166
+ # 831), verbosely, on 3.15 itself; the same suite also runs inside every
167
+ # `test` job, where on 3.12-3.14 it checks the compatibility boundary.
168
+ python315:
169
+ name: Python 3.15 features (PEP 798/799/810/831)
170
+ needs: triage
171
+ if: needs.triage.outputs.narrow != 'true'
172
+ runs-on: ubuntu-latest
173
+ steps:
174
+ - uses: actions/checkout@v4
175
+ - uses: actions/setup-python@v5
176
+ with:
177
+ python-version: "3.15"
178
+ allow-prereleases: true
179
+ - name: Install (no torch wheel for 3.15 yet)
180
+ run: |
181
+ python -m pip install --upgrade pip setuptools
182
+ python scripts/ci/requirements_without_torch.py dev security t1api > reqs.txt
183
+ pip install -r reqs.txt
184
+ pip install --no-deps -e .
185
+ - name: Interpreter facts the suite relies on
186
+ run: |
187
+ python -c "import sys, sysconfig; print(sys.version); print(sysconfig.get_config_var('CFLAGS'))"
188
+ - run: pytest -v tests/python315
189
+ - name: Native build keeps frame pointers (PEP 831)
190
+ run: |
191
+ cmake -S native/ggml-hnx -B build-fp -DCMAKE_BUILD_TYPE=Release
192
+ cmake --build build-fp -j
193
+ ctest --test-dir build-fp --output-on-failure
194
+ objdump -d build-fp/libggml-hnx.a | grep -A3 "<hnx_dequantize_rows>:" | grep -Eq "mov[q]?[[:space:]]+%rsp,[[:space:]]*%rbp"
195
+
196
+ # Startup, import, API, serialisation, native and profiling timings on
197
+ # every supported Python, saved as an artifact. Informational: shared
198
+ # runners are too noisy to gate on, so compare runs, not single numbers.
199
+ benchmarks:
200
+ name: benchmarks (py${{ matrix.python-version }})
201
+ needs: triage
202
+ if: needs.triage.outputs.narrow != 'true'
203
+ runs-on: ubuntu-latest
204
+ strategy:
205
+ fail-fast: false
206
+ matrix:
207
+ python-version: ["3.12", "3.13", "3.14", "3.15"]
208
+ steps:
209
+ - uses: actions/checkout@v4
210
+ - uses: actions/setup-python@v5
211
+ with:
212
+ python-version: ${{ matrix.python-version }}
213
+ allow-prereleases: true
214
+ cache: pip
215
+ - name: Install
216
+ shell: bash
217
+ run: |
218
+ python -m pip install --upgrade pip
219
+ if [ "${{ matrix.python-version }}" != "3.15" ]; then
220
+ pip install --index-url https://download.pytorch.org/whl/cpu torch
221
+ fi
222
+ python scripts/ci/requirements_without_torch.py security t1api > reqs.txt
223
+ pip install -r reqs.txt "httpx"
224
+ pip install --no-deps -e .
225
+ - run: python benchmarks/bench.py --repeat 7 --json bench-${{ matrix.python-version }}.json
226
+ - uses: actions/upload-artifact@v4
227
+ with:
228
+ name: bench-${{ matrix.python-version }}
229
+ path: bench-${{ matrix.python-version }}.json
230
+
231
+ # ---------------------------------------------------------------------
232
+ # Live integration: a real server, a real key, a fake model.
233
+ # ---------------------------------------------------------------------
234
+ #
235
+ # Two jobs run after the tests pass, each minting its own T2 key and
236
+ # tearing it down afterwards. One drives the API; the other drives the
237
+ # iPhone app.
238
+ #
239
+ # A note on the shape, because it is not the obvious one. Hosted runners
240
+ # cannot reach each other over the network, so "job A hosts the server,
241
+ # job B connects to it" is not expressible here — there is no route
242
+ # between two runners. Each job therefore brings up the server it needs
243
+ # on its own runner. The split that matters is preserved: one job proves
244
+ # the API works against a client that authenticates from outside the
245
+ # process, the other proves the app works against a real server, and the
246
+ # release waits on both.
247
+ #
248
+ # The model is a stub speaking the OpenAI shape rather than a mock
249
+ # patched into the bridge, so the bridge, the routing engine and the
250
+ # serialisation are all the real ones. A mock would prove the mock works.
251
+
252
+ integration-api:
253
+ name: integration — live API + fake model
254
+ needs: test
255
+ runs-on: ubuntu-latest
256
+ timeout-minutes: 15
257
+ env:
258
+ # Both halves must agree on where the keys live. The server reads
259
+ # T1_KEYMASTER_DIR and so does gkey; leaving either to infer it from
260
+ # $HOME is how a key gets minted into a store the server is not
261
+ # reading, which looks exactly like a rejected key.
262
+ T1_KEYMASTER_DIR: ${{ github.workspace }}/.ci-keys
263
+ T1_DB_PATH: ${{ github.workspace }}/.ci-t1.sqlite3
264
+ T1_HYPERLINK_ENABLED: "1"
265
+ T1_LMSTUDIO_ENABLED: "1"
266
+ T1_LMSTUDIO_URL: http://127.0.0.1:1234
267
+ T1_ENVIRONMENT: development
268
+ steps:
269
+ - uses: actions/checkout@v4
270
+ - uses: actions/setup-python@v5
271
+ with:
272
+ python-version: "3.12"
273
+ cache: pip
274
+
275
+ - name: Install with the server extra
276
+ run: |
277
+ python -m pip install --upgrade pip
278
+ pip install -e '.[t1api]'
279
+
280
+ - name: Start the fake model
281
+ run: |
282
+ nohup python scripts/ci/fake_model_server.py --port 1234 \
283
+ > fake-model.log 2>&1 &
284
+ python scripts/ci/wait_for_http.py http://127.0.0.1:1234/v1/models \
285
+ --timeout 60 --name "the fake model" --log fake-model.log
286
+
287
+ - name: Start the T1 API
288
+ run: |
289
+ export T1_TOKEN_SECRET="$(python -c 'import secrets;print(secrets.token_hex(32))')"
290
+ echo "T1_TOKEN_SECRET=$T1_TOKEN_SECRET" >> "$GITHUB_ENV"
291
+ nohup python -m uvicorn hypernix.t1api.app:create_app --factory \
292
+ --host 127.0.0.1 --port 8000 > t1api.log 2>&1 &
293
+ python scripts/ci/wait_for_http.py http://127.0.0.1:8000/health \
294
+ --timeout 90 --name "the T1 API" --log t1api.log
295
+
296
+ - name: Mint a key, authorise it, and chat through the fake model
297
+ run: python scripts/ci/integration_probe.py --url http://127.0.0.1:8000
298
+
299
+ - name: Shut it down and prove no keys are left behind
300
+ if: always()
301
+ run: |
302
+ pkill -f 'uvicorn hypernix.t1api' || true
303
+ pkill -f fake_model_server || true
304
+ remaining="$(ls -1 "$T1_KEYMASTER_DIR"/*.json 2>/dev/null | wc -l | tr -d ' ')"
305
+ echo "keys still in the store: $remaining"
306
+ # The bootstrap key is expected — it is loopback-only and expires
307
+ # in three days. Anything the probe minted must be gone.
308
+ if [ "$remaining" -gt 1 ]; then
309
+ echo "::error::the probe left ${remaining} keys behind"
310
+ ls -la "$T1_KEYMASTER_DIR" || true
311
+ exit 1
312
+ fi
313
+ rm -rf "$T1_KEYMASTER_DIR" "$T1_DB_PATH"
314
+
315
+ - name: Server logs (on failure)
316
+ if: failure()
317
+ run: |
318
+ echo '--- t1api ---'; tail -n 100 t1api.log || true
319
+ echo '--- fake model ---'; tail -n 40 fake-model.log || true
320
+
321
+ integration-ios:
322
+ name: integration — iPhone simulator + live API
323
+ needs: test
324
+ runs-on: macos-latest
325
+ timeout-minutes: 40
326
+ env:
327
+ T1_KEYMASTER_DIR: ${{ github.workspace }}/.ci-keys
328
+ T1_DB_PATH: ${{ github.workspace }}/.ci-t1.sqlite3
329
+ T1_HYPERLINK_ENABLED: "1"
330
+ T1_LMSTUDIO_ENABLED: "1"
331
+ T1_LMSTUDIO_URL: http://127.0.0.1:1234
332
+ T1_ENVIRONMENT: development
333
+ steps:
334
+ - uses: actions/checkout@v4
335
+ - uses: actions/setup-python@v5
336
+ with:
337
+ python-version: "3.12"
338
+
339
+ - name: Install with the server extra
340
+ run: |
341
+ python -m pip install --upgrade pip
342
+ pip install -e '.[t1api]'
343
+
344
+ - name: Start the fake model and the T1 API
345
+ run: |
346
+ nohup python scripts/ci/fake_model_server.py --port 1234 > fake-model.log 2>&1 &
347
+ export T1_TOKEN_SECRET="$(python -c 'import secrets;print(secrets.token_hex(32))')"
348
+ echo "T1_TOKEN_SECRET=$T1_TOKEN_SECRET" >> "$GITHUB_ENV"
349
+ nohup python -m uvicorn hypernix.t1api.app:create_app --factory \
350
+ --host 127.0.0.1 --port 8000 > t1api.log 2>&1 &
351
+ # Both, not just the API. This job used to wait only for port
352
+ # 8000, and a macOS runner is slow enough starting a Python
353
+ # process that the probe reached the bridge before the fake
354
+ # model was listening — which fails as MODEL_UNAVAILABLE and
355
+ # reads as a broken bridge rather than a race.
356
+ python scripts/ci/wait_for_http.py http://127.0.0.1:1234/v1/models \
357
+ --timeout 90 --name "the fake model" --log fake-model.log
358
+ python scripts/ci/wait_for_http.py http://127.0.0.1:8000/health \
359
+ --timeout 90 --name "the T1 API" --log t1api.log
360
+
361
+ - name: Mint this job's own key and check the API from outside
362
+ run: python scripts/ci/integration_probe.py --url http://127.0.0.1:8000
363
+
364
+ - name: Generate the Xcode project
365
+ run: |
366
+ brew install xcodegen
367
+ cd ios && xcodegen generate
368
+
369
+ - name: Boot an iPhone simulator
370
+ id: sim
371
+ run: |
372
+ device="$(python3 ios/scripts/pick_simulator.py)"
373
+ echo "device=$device" >> "$GITHUB_OUTPUT"
374
+ echo "picked: $device"
375
+ xcrun simctl boot "$device" || true
376
+ xcrun simctl bootstatus "$device" -b || true
377
+
378
+ - name: Build and test the app on the simulator
379
+ run: |
380
+ cd ios
381
+ xcodebuild test \
382
+ -project HyperLink.xcodeproj \
383
+ -scheme HyperLink \
384
+ -destination "id=${{ steps.sim.outputs.device }}" \
385
+ CODE_SIGNING_ALLOWED=NO \
386
+ | xcpretty || xcodebuild test \
387
+ -project HyperLink.xcodeproj \
388
+ -scheme HyperLink \
389
+ -destination "id=${{ steps.sim.outputs.device }}" \
390
+ CODE_SIGNING_ALLOWED=NO
391
+
392
+ - name: Shut it all down and delete the keys
393
+ if: always()
394
+ run: |
395
+ xcrun simctl shutdown all || true
396
+ pkill -f 'uvicorn hypernix.t1api' || true
397
+ pkill -f fake_model_server || true
398
+ remaining="$(ls -1 "$T1_KEYMASTER_DIR"/*.json 2>/dev/null | wc -l | tr -d ' ')"
399
+ echo "keys still in the store: $remaining"
400
+ if [ "$remaining" -gt 1 ]; then
401
+ echo "::error::the probe left ${remaining} keys behind"
402
+ exit 1
403
+ fi
404
+ rm -rf "$T1_KEYMASTER_DIR" "$T1_DB_PATH"
405
+
406
+ - name: Logs (on failure)
407
+ if: failure()
408
+ run: |
409
+ echo '--- t1api ---'; tail -n 100 t1api.log || true
410
+ echo '--- fake model ---'; tail -n 40 fake-model.log || true
411
+
412
+ # The two C/C++ pieces: the ggml sub-bit decoder and Studio's tool
413
+ # policy. Both are deliberately free of their heavy dependency -- the
414
+ # decoder needs no ggml, the policy needs no Qt -- precisely so they
415
+ # can be built and tested on a plain runner rather than only where a
416
+ # 200 MB checkout or a Qt install happens to exist.
417
+ #
418
+ # The Python suite compiles both too (tests/quant/test_ggml_hnx.py,
419
+ # tests/desktop/test_studio_core.py). This job runs them through their own
420
+ # CMake as well, because that is how a developer builds them and a
421
+ # build file that only works when driven from pytest is a build file
422
+ # that is about to stop working.
423
+ native:
424
+ name: native (ggml-hnx + studio core)
425
+ needs: triage
426
+ if: needs.triage.outputs.narrow != 'true'
427
+ runs-on: ubuntu-latest
428
+ steps:
429
+ - uses: actions/checkout@v4
430
+ - uses: actions/setup-python@v5
431
+ with:
432
+ python-version: "3.12"
433
+
434
+ - name: Install the package (for the cross-check vectors)
435
+ run: pip install -e .
436
+
437
+ - name: ggml-hnx — build and cross-check against Python
438
+ run: |
439
+ set -euo pipefail
440
+ cmake -S native/ggml-hnx -B build/ggml-hnx -DCMAKE_BUILD_TYPE=Release
441
+ cmake --build build/ggml-hnx -j"$(nproc)"
442
+ ctest --test-dir build/ggml-hnx --output-on-failure
443
+
444
+ - name: ggml-hnx — the patcher against a checkout it does not own
445
+ run: |
446
+ set -euo pipefail
447
+ # A real llama.cpp clone would be 200 MB for a test of four
448
+ # string edits; tests/quant/test_ggml_hnx.py builds a tree with the
449
+ # anchors instead. This step proves the CLI itself runs.
450
+ python native/ggml-hnx/tools/patch_llamacpp.py --help >/dev/null
451
+ if python native/ggml-hnx/tools/patch_llamacpp.py . --check; then
452
+ echo "::error::the patcher accepted a directory that is not llama.cpp"
453
+ exit 1
454
+ fi
455
+
456
+ - name: Studio core — build and test, with no Qt installed
457
+ run: |
458
+ set -euo pipefail
459
+ cmake -S desktop -B build/studio -DSTUDIO_CORE_ONLY=ON \
460
+ -DCMAKE_BUILD_TYPE=Release
461
+ cmake --build build/studio -j"$(nproc)"
462
+ ctest --test-dir build/studio --output-on-failure
463
+
464
+ # Qt as a separate step, after the core. The core is the part that
465
+ # must build anywhere; this is the part that needs 300 MB of Qt,
466
+ # and keeping them apart means a Qt packaging change cannot mask a
467
+ # failure in the security-critical half.
468
+ - name: Install Qt 6
469
+ run: |
470
+ sudo apt-get update -qq
471
+ sudo apt-get install -y --no-install-recommends \
472
+ qt6-base-dev qt6-declarative-dev \
473
+ qml6-module-qtquick-controls qml6-module-qtquick-layouts \
474
+ qml6-module-qtquick-templates qml6-module-qtquick-dialogs \
475
+ qml6-module-qtquick-window qml6-module-qtqml-workerscript
476
+
477
+ - name: Studio — compile the Qt application
478
+ run: |
479
+ set -euo pipefail
480
+ cmake -S desktop -B build/studio-qt -DCMAKE_BUILD_TYPE=Release
481
+ cmake --build build/studio-qt -j"$(nproc)"
482
+
483
+ # The compiler does not check QML. Running the binary offscreen
484
+ # instantiates every .qml file the engine reaches, which is the only
485
+ # way a typo in a binding is found before somebody launches it --
486
+ # and it is how five "Unable to assign [undefined] to QString"
487
+ # warnings in the approval dialog were found, each of which left a
488
+ # property showing the *previous* request's value.
489
+ - name: Studio — load every QML file
490
+ run: |
491
+ set -euo pipefail
492
+ output="$(QT_QPA_PLATFORM=offscreen timeout 20 \
493
+ ./build/studio-qt/hypernix-studio 2>&1 || true)"
494
+ echo "$output"
495
+ if echo "$output" | grep -qE "Unable to assign|is not a type|failed to load component|^(qrc|file):.*error"; then
496
+ echo "::error::QML errors on startup"
497
+ exit 1
498
+ fi
499
+
500
+ # The patcher against a real llama.cpp, which is the only thing that
501
+ # would have caught what shipped broken: the fake tree in
502
+ # tests/quant/test_ggml_hnx.py modelled one type_traits table, upstream has
503
+ # had two for a while, and every test passed while no real checkout
504
+ # compiled. A fake can only be as right as the person who wrote it.
505
+ #
506
+ # Separate job, and only ggml-base + ggml-cpu rather than all of
507
+ # llama.cpp: those two are where the registration lands, so they are
508
+ # where a bad patch fails, and stopping there is about two minutes
509
+ # instead of eight.
510
+ llamacpp:
511
+ name: patcher against real llama.cpp
512
+ needs: triage
513
+ if: needs.triage.outputs.narrow != 'true'
514
+ runs-on: ubuntu-latest
515
+ steps:
516
+ - uses: actions/checkout@v4
517
+ - uses: actions/setup-python@v5
518
+ with:
519
+ python-version: "3.12"
520
+
521
+ - name: Clone llama.cpp
522
+ run: git clone --depth 1 https://github.com/ggml-org/llama.cpp /tmp/llama.cpp
523
+
524
+ - name: Patch it
525
+ run: |
526
+ set -euo pipefail
527
+ python native/ggml-hnx/tools/patch_llamacpp.py /tmp/llama.cpp --check
528
+ python native/ggml-hnx/tools/patch_llamacpp.py /tmp/llama.cpp
529
+
530
+ - name: Build the parts the registration lands in
531
+ run: |
532
+ set -euo pipefail
533
+ cmake -S /tmp/llama.cpp -B /tmp/llama.cpp/build \
534
+ -DCMAKE_BUILD_TYPE=Release -DLLAMA_CURL=OFF -DGGML_CCACHE=OFF \
535
+ -DLLAMA_BUILD_TESTS=OFF -DLLAMA_BUILD_EXAMPLES=OFF \
536
+ -DLLAMA_BUILD_TOOLS=OFF
537
+ cmake --build /tmp/llama.cpp/build --target ggml-base ggml-cpu \
538
+ -j"$(nproc)"
539
+
540
+ # Compiling is not the same as registering. This asks the built
541
+ # ggml what it thinks the five types are, which is what a model
542
+ # loader will ask.
543
+ - name: Ask ggml about the types
544
+ run: |
545
+ set -euo pipefail
546
+ cat > /tmp/typecheck.c <<'EOF'
547
+ #include <stdio.h>
548
+ #include <string.h>
549
+ #include "ggml.h"
550
+ int main(void) {
551
+ struct { int id; const char *name; size_t size; } want[] = {
552
+ {200, "IQ0.9_L", 30}, {201, "IQ0.75_M", 26},
553
+ {202, "IQ0.5_XXXL", 18}, {203, "IQ0.25_UXL", 8},
554
+ {204, "INT1", 34},
555
+ };
556
+ int bad = 0;
557
+ for (unsigned i = 0; i < sizeof(want)/sizeof(want[0]); ++i) {
558
+ enum ggml_type t = (enum ggml_type) want[i].id;
559
+ const char *n = ggml_type_name(t);
560
+ int ok = n && !strcmp(n, want[i].name)
561
+ && ggml_type_size(t) == want[i].size
562
+ && ggml_blck_size(t) == 256 && ggml_is_quantized(t);
563
+ printf(" %-3d %-12s %s\n", want[i].id, n ? n : "(null)",
564
+ ok ? "ok" : "MISMATCH");
565
+ if (!ok) bad = 1;
566
+ }
567
+ if (strcmp(ggml_type_name(GGML_TYPE_Q4_0), "q4_0") != 0) {
568
+ printf(" upstream Q4_0 was disturbed\n");
569
+ bad = 1;
570
+ }
571
+ return bad;
572
+ }
573
+ EOF
574
+ cc -I/tmp/llama.cpp/ggml/include -o /tmp/typecheck /tmp/typecheck.c \
575
+ -L/tmp/llama.cpp/build/bin -lggml-base \
576
+ -Wl,-rpath,/tmp/llama.cpp/build/bin
577
+ /tmp/typecheck
578
+
579
+ # Studio's local engine, against the llama.cpp that is now here.
580
+ # The stub build is covered by ctest in the `native` job; this is
581
+ # the other configuration, and it is the one with a real API to
582
+ # drift against.
583
+ - name: Studio — compile the local engine against it
584
+ run: |
585
+ set -euo pipefail
586
+ c++ -std=c++17 -Wall -Wextra -Werror -DHNX_STUDIO_LOCAL_LLAMA \
587
+ -Idesktop/src -I/tmp/llama.cpp/include -I/tmp/llama.cpp/ggml/include \
588
+ -c desktop/src/LocalEngine.cpp -o /tmp/LocalEngine.o
589
+
590
+ - name: And revert cleanly
591
+ run: |
592
+ set -euo pipefail
593
+ python native/ggml-hnx/tools/patch_llamacpp.py /tmp/llama.cpp --revert
594
+ cd /tmp/llama.cpp
595
+ if [ -n "$(git status --porcelain)" ]; then
596
+ echo "::error::--revert did not restore the tree"
597
+ git status --porcelain
598
+ exit 1
599
+ fi
600
+
601
+ # The CUDA kernels, compiled. Separate from `native` on purpose: the
602
+ # toolkit is ~2 GB and `native` runs on every full pass, so folding it
603
+ # in would add minutes to every run for a file that changes rarely.
604
+ #
605
+ # The checks that catch the failure that *matters* -- a template
606
+ # constant drifting from hypernix.quant.gguf, which produces a model
607
+ # that runs on the GPU and talks nonsense -- are source-level and run
608
+ # in `native` without any toolkit. This job proves the thing compiles
609
+ # and that the templates instantiate with the constants the launchers
610
+ # pass, which only nvcc can say.
611
+ cuda:
612
+ name: cuda kernels
613
+ needs: triage
614
+ if: needs.triage.outputs.narrow != 'true'
615
+ runs-on: ubuntu-latest
616
+ steps:
617
+ - uses: actions/checkout@v4
618
+ - uses: actions/setup-python@v5
619
+ with:
620
+ python-version: "3.12"
621
+
622
+ - name: Install nvcc
623
+ run: |
624
+ sudo apt-get update -qq
625
+ sudo apt-get install -y --no-install-recommends nvidia-cuda-toolkit
626
+ nvcc --version
627
+
628
+ - name: Install the package (for the block-size registry)
629
+ run: pip install -e . && pip install pytest
630
+
631
+ - name: Build with the CUDA kernels
632
+ run: |
633
+ set -euo pipefail
634
+ # sm_61 only: Pascal is this project's floor and building every
635
+ # architecture would triple the time for no extra coverage of
636
+ # the thing being tested.
637
+ cmake -S native/ggml-hnx -B build/cuda \
638
+ -DGGML_HNX_CUDA=ON -DCMAKE_BUILD_TYPE=Release \
639
+ -DCMAKE_CUDA_ARCHITECTURES=61
640
+ cmake --build build/cuda -j"$(nproc)"
641
+ ctest --test-dir build/cuda --output-on-failure
642
+
643
+ - name: The kernels instantiate with the CPU's constants
644
+ run: python -m pytest tests/quant/test_ggml_hnx.py -q -k Cuda
645
+
646
+ build-check:
647
+ name: build sdist + wheel (smoke)
648
+ needs: triage
649
+ if: needs.triage.outputs.narrow != 'true'
650
+ runs-on: ubuntu-latest
651
+ steps:
652
+ - uses: actions/checkout@v4
653
+ - uses: actions/setup-python@v5
654
+ with:
655
+ python-version: "3.12"
656
+ cache: pip
657
+ - run: pip install --upgrade pip build twine
658
+ - run: python -m build
659
+ - run: twine check --strict dist/*
660
+ - name: Verify extras are present in sdist
661
+ run: |
662
+ tar tzf dist/*.tar.gz | tee /tmp/sdist-listing
663
+ for required in tests examples scripts .github/workflows MANIFEST.in setup.py setup.cfg; do
664
+ if ! grep -q "/$required" /tmp/sdist-listing; then
665
+ echo "::error::sdist missing $required"
666
+ exit 1
667
+ fi
668
+ done
669
+ - name: Verify the OpenTUI apps ship without node_modules
670
+ run: |
671
+ for archive in dist/*.tar.gz dist/*.whl; do
672
+ case "$archive" in
673
+ *.whl) python -m zipfile -l "$archive" > /tmp/listing ;;
674
+ *) tar tzf "$archive" > /tmp/listing ;;
675
+ esac
676
+ for app in hyped_pro_app tvtop_max_app; do
677
+ if ! grep -q "$app/src/index.ts" /tmp/listing; then
678
+ echo "::error::$archive is missing $app"
679
+ exit 1
680
+ fi
681
+ if grep -q "$app/node_modules" /tmp/listing; then
682
+ echo "::error::$archive ships $app/node_modules"
683
+ exit 1
684
+ fi
685
+ done
686
+ done
687
+
688
+ # hyped-pro is a TypeScript app on OpenTUI, which runs on Bun. Its own
689
+ # tests and the type check run here; tests/interfaces/test_hyped_pro_otui.py covers
690
+ # the Python launcher and the packaging in `test`, on every platform.
691
+ hyped-pro:
692
+ name: hyped-pro (bun test + tsc)
693
+ needs: triage
694
+ if: needs.triage.outputs.narrow != 'true'
695
+ runs-on: ubuntu-latest
696
+ defaults:
697
+ run:
698
+ working-directory: src/hypernix/interfaces/hyped_pro_app
699
+ steps:
700
+ - uses: actions/checkout@v4
701
+ - uses: oven-sh/setup-bun@v2
702
+ with:
703
+ bun-version: "1.3.11"
704
+ - run: bun install --frozen-lockfile
705
+ - run: bun x tsc --noEmit
706
+ - run: bun test
707
+
708
+ # tvtop-max is the same kind of app; tests/monitoring/test_tvtop_max.py covers its
709
+ # launcher, bridge and the script reading behind it.
710
+ tvtop-max:
711
+ name: tvtop-max (bun test + tsc)
712
+ needs: triage
713
+ if: needs.triage.outputs.narrow != 'true'
714
+ runs-on: ubuntu-latest
715
+ defaults:
716
+ run:
717
+ working-directory: src/hypernix/monitoring/tvtop_max_app
718
+ steps:
719
+ - uses: actions/checkout@v4
720
+ - uses: oven-sh/setup-bun@v2
721
+ with:
722
+ bun-version: "1.3.11"
723
+ - run: bun install --frozen-lockfile
724
+ - run: bun x tsc --noEmit
725
+ - run: bun test
726
+
727
+ # The narrow counterpart to `test`: one interpreter, one OS, and only the
728
+ # tests the autofix commit named. `scripts/autofix_scope.py --list` is the
729
+ # same discovery autofix-F used to pick them, so the fallback below selects
730
+ # the identical set if the Autofix-Tests trailer is ever absent.
731
+ autofix-verify:
732
+ name: verify autofix (${{ needs.triage.outputs.scope }})
733
+ needs: triage
734
+ if: needs.triage.outputs.narrow == 'true'
735
+ runs-on: ubuntu-latest
736
+ steps:
737
+ - uses: actions/checkout@v4
738
+ with:
739
+ ref: ${{ github.event.pull_request.head.sha || github.sha }}
740
+
741
+ - uses: actions/setup-python@v5
742
+ with:
743
+ python-version: "3.12"
744
+ cache: pip
745
+
746
+ - name: Install torch (CPU wheels)
747
+ run: |
748
+ python -m pip install --upgrade pip
749
+ pip install --index-url https://download.pytorch.org/whl/cpu torch
750
+
751
+ - name: Install rich (required by tvtop / cli)
752
+ run: pip install "rich>=13"
753
+
754
+ - name: Editable install + dev extras
755
+ run: pip install -e ".[dev,security]"
756
+
757
+ # The trailers come from a commit message, which on a pull request is
758
+ # attacker-controlled. They are passed through the environment rather
759
+ # than interpolated into the script, and every node id is checked
760
+ # against the category's own discovery before pytest sees it, so a
761
+ # crafted trailer can neither run a shell command nor widen the run.
762
+ - name: Run only the tests this autofix commit affects
763
+ shell: bash
764
+ env:
765
+ AUTOFIX_SCOPE: ${{ needs.triage.outputs.scope }}
766
+ AUTOFIX_TESTS: ${{ needs.triage.outputs.tests }}
767
+ run: |
768
+ set -euo pipefail
769
+ if [ -n "$AUTOFIX_TESTS" ]; then
770
+ python scripts/autofix_scope.py --category "$AUTOFIX_SCOPE" \
771
+ --validate "$AUTOFIX_TESTS" > selected-tests.txt
772
+ else
773
+ echo "No Autofix-Tests trailer; falling back to the whole scope."
774
+ python scripts/autofix_scope.py --category "$AUTOFIX_SCOPE" \
775
+ --list > selected-tests.txt
776
+ fi
777
+ if [ ! -s selected-tests.txt ]; then
778
+ echo "::error::nothing to verify for scope '$AUTOFIX_SCOPE'"
779
+ exit 1
780
+ fi
781
+ echo "Verifying $(wc -l < selected-tests.txt) test(s):"
782
+ cat selected-tests.txt
783
+ xargs -a selected-tests.txt -d '\n' pytest -q --
784
+
785
+ - name: Confirm the scope table still matches the tree
786
+ run: pytest -q tests/repo/test_module_layout.py tests/repo/test_autofix_scripts.py