hypernix 0.72.5.dev2__tar.gz → 0.72.5.post1__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 (662) hide show
  1. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/.github/workflows/ios.yml +100 -4
  2. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/.github/workflows/public-release.yml +15 -0
  3. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/.github/workflows/release.yml +8 -0
  4. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/PKG-INFO +2 -2
  5. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/README.md +1 -1
  6. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/bin/hypernix-t1 +49 -1
  7. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/install-t1.sh +135 -4
  8. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/pyproject.toml +1 -1
  9. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/setup.cfg +1 -1
  10. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/__init__.py +1 -1
  11. hypernix-0.72.5.post1/src/hypernix/hyperlink/catalogue.py +426 -0
  12. hypernix-0.72.5.post1/src/hypernix/hyperlink/compaction.py +295 -0
  13. hypernix-0.72.5.post1/src/hypernix/hyperlink/generation.py +193 -0
  14. hypernix-0.72.5.post1/src/hypernix/hyperlink/inference.py +176 -0
  15. hypernix-0.72.5.post1/src/hypernix/hyperlink/managed.py +548 -0
  16. hypernix-0.72.5.post1/src/hypernix/hyperlink/memory.py +413 -0
  17. hypernix-0.72.5.post1/src/hypernix/hyperlink/preferences.py +392 -0
  18. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/hyperlink/sessions.py +171 -0
  19. hypernix-0.72.5.post1/src/hypernix/hyperlink/toolloop.py +276 -0
  20. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/interfaces/noodle/tools.py +225 -0
  21. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/hyprslug.py +148 -7
  22. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/multiquant.py +19 -1
  23. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/__init__.py +5 -4
  24. hypernix-0.72.5.post1/src/hypernix/system/blanking.py +300 -0
  25. hypernix-0.72.5.post1/src/hypernix/system/hardware.py +360 -0
  26. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/nettrust.py +30 -3
  27. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/outage.py +77 -49
  28. hypernix-0.72.5.post1/src/hypernix/system/protect.py +284 -0
  29. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/app.py +14 -0
  30. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/config.py +59 -0
  31. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/deps.py +87 -1
  32. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/modelindex.py +39 -0
  33. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/modelindex_cli.py +43 -8
  34. hypernix-0.72.5.post1/src/hypernix/t1api/pricing.py +270 -0
  35. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/routers/__init__.py +15 -0
  36. hypernix-0.72.5.post1/src/hypernix/t1api/routers/compact.py +214 -0
  37. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/routers/hyperlink.py +691 -24
  38. hypernix-0.72.5.post1/src/hypernix/t1api/routers/memory.py +150 -0
  39. hypernix-0.72.5.post1/src/hypernix/t1api/routers/noodle.py +224 -0
  40. hypernix-0.72.5.post1/src/hypernix/t1api/routers/runner.py +257 -0
  41. hypernix-0.72.5.post1/src/hypernix/t1api/runner_cli.py +261 -0
  42. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/schemas.py +273 -0
  43. hypernix-0.72.5.post1/src/hypernix/t1api/upgrade.py +248 -0
  44. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix.egg-info/SOURCES.txt +37 -0
  45. hypernix-0.72.5.post1/tests/conftest.py +152 -0
  46. hypernix-0.72.5.post1/tests/test_chat_compaction.py +346 -0
  47. hypernix-0.72.5.post1/tests/test_conftest_rails.py +182 -0
  48. hypernix-0.72.5.post1/tests/test_generation_stop.py +357 -0
  49. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_hyperlink_ios_wiring.py +275 -1
  50. hypernix-0.72.5.post1/tests/test_hyperlink_keyless.py +216 -0
  51. hypernix-0.72.5.post1/tests/test_hyperlink_pt3_wiring.py +735 -0
  52. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_hypernix_t1_service.py +79 -0
  53. hypernix-0.72.5.post1/tests/test_hyprslug_protected_tensors.py +269 -0
  54. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_hyprslug_row_blocks.py +27 -4
  55. hypernix-0.72.5.post1/tests/test_inference_backend.py +272 -0
  56. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_install_script.py +280 -0
  57. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_ios_llama_link.py +201 -0
  58. hypernix-0.72.5.post1/tests/test_managed_runner.py +327 -0
  59. hypernix-0.72.5.post1/tests/test_memory.py +395 -0
  60. hypernix-0.72.5.post1/tests/test_message_editing.py +294 -0
  61. hypernix-0.72.5.post1/tests/test_model_catalogue.py +281 -0
  62. hypernix-0.72.5.post1/tests/test_model_pricing.py +261 -0
  63. hypernix-0.72.5.post1/tests/test_noodle_api.py +301 -0
  64. hypernix-0.72.5.post1/tests/test_preferences.py +304 -0
  65. hypernix-0.72.5.post1/tests/test_protect_blanking.py +310 -0
  66. hypernix-0.72.5.post1/tests/test_runner_cli.py +276 -0
  67. hypernix-0.72.5.post1/tests/test_server_hardware.py +221 -0
  68. hypernix-0.72.5.post1/tests/test_server_upgrade.py +203 -0
  69. hypernix-0.72.5.post1/tests/test_tool_loop.py +361 -0
  70. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/CLI.md +80 -5
  71. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Changelog.md +587 -0
  72. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/HyprSlug.md +50 -7
  73. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Release-Timeline.md +46 -0
  74. hypernix-0.72.5.dev2/src/hypernix/system/protect.py +0 -178
  75. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/.github/workflows/build.yml +0 -0
  76. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/.github/workflows/ci.yml +0 -0
  77. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/.github/workflows/codacy.yml +0 -0
  78. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/.github/workflows/codeql.yml +0 -0
  79. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/.github/workflows/deploy-docs.yml +0 -0
  80. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/.github/workflows/update-json-stats.yml +0 -0
  81. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/.github/workflows/update-readme.yml +0 -0
  82. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/LICENSE +0 -0
  83. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/MANIFEST.in +0 -0
  84. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/assets/banner-hero.svg +0 -0
  85. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/assets/logo/Gemini_Generated_Image_nxfdm1nxfdm1nxfd-removebg-preview.png +0 -0
  86. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/assets/logo/Gemini_Generated_Image_nxfdm1nxfdm1nxfd.png +0 -0
  87. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/assets/logo-new/apple-touch-icon.png +0 -0
  88. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/assets/logo-new/favicon-16.png +0 -0
  89. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/assets/logo-new/favicon-32.png +0 -0
  90. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/assets/logo-new/favicon-48.png +0 -0
  91. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/assets/logo-new/hypernix-favicon.svg +0 -0
  92. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/assets/logo-new/hypernix-icon-dark.svg +0 -0
  93. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/assets/logo-new/hypernix-icon-mono.svg +0 -0
  94. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/assets/logo-new/hypernix-icon-ondark.svg +0 -0
  95. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/assets/logo-new/hypernix-icon-white.svg +0 -0
  96. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/assets/logo-new/hypernix-icon.svg +0 -0
  97. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/assets/logo-new/hypernix-lockup-dark.svg +0 -0
  98. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/assets/logo-new/hypernix-lockup-light.svg +0 -0
  99. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/assets/logo-new/icon-192.png +0 -0
  100. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/assets/logo-new/icon-512.png +0 -0
  101. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/assets/logo.png +0 -0
  102. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/assets/logo1.png +0 -0
  103. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/bin/_hypernix_python.sh +0 -0
  104. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/bin/hyped+ +0 -0
  105. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/bin/hyped-pro +0 -0
  106. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/bin/hyped-pro-gui +0 -0
  107. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/curriculum_eval_v0_70_4.py +0 -0
  108. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/custom_arch.py +0 -0
  109. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/hypernix_run.json +0 -0
  110. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/hyprslug-headers/README.md +0 -0
  111. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/hyprslug-headers/serve.sh +0 -0
  112. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/hyprslug-headers/wrap-for-lmstudio.sh +0 -0
  113. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/quickstart.py +0 -0
  114. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/resilient_finetune_v0_70_4.py +0 -0
  115. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/run_hypernix.py +0 -0
  116. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/t1api/.env.example +0 -0
  117. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/t1api/API-EXAMPLES.md +0 -0
  118. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/t1api/Dockerfile +0 -0
  119. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/t1api/README.md +0 -0
  120. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/t1api/config/.gitkeep +0 -0
  121. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/t1api/docker-compose.yml +0 -0
  122. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/t1api/hypernix-t1api.service +0 -0
  123. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/t1api/nginx.conf +0 -0
  124. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/t1api/openapi.json +0 -0
  125. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/t1api/run_local.sh +0 -0
  126. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/t1api/run_tailscale.sh +0 -0
  127. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/train hypernix 1 5 gtx1080.py +0 -0
  128. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/train_hypernix_0_1_5_evaluator.py +0 -0
  129. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/train_hypernix_1_5_gtx1080.py +0 -0
  130. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/tvtoppro/README.md +0 -0
  131. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/tvtoppro/dracula.theme +0 -0
  132. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/tvtoppro/gruvbox-dark.theme +0 -0
  133. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/tvtoppro/hypernix.theme +0 -0
  134. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/tvtoppro/mono.theme +0 -0
  135. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/tvtoppro/monokai.theme +0 -0
  136. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/tvtoppro/nord.theme +0 -0
  137. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/tvtoppro/tokyo-night.theme +0 -0
  138. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/examples/upload_to_hub.py +0 -0
  139. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/pytest.ini +0 -0
  140. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/ruff.toml +0 -0
  141. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/scripts/README.md +0 -0
  142. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/scripts/apply_hypernix_fixes.py +0 -0
  143. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/scripts/autofix +0 -0
  144. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/scripts/autofix-B +0 -0
  145. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/scripts/autofix-E +0 -0
  146. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/scripts/autofix-F +0 -0
  147. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/scripts/autofix_scope.py +0 -0
  148. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/scripts/benchmark_v5.py +0 -0
  149. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/scripts/benchmark_v5s.py +0 -0
  150. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/scripts/benchmark_v6.py +0 -0
  151. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/scripts/ci/fake_model_server.py +0 -0
  152. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/scripts/ci/integration_probe.py +0 -0
  153. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/scripts/ci/wait_for_http.py +0 -0
  154. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/scripts/install_deps.sh +0 -0
  155. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/scripts/install_macos_legacy.sh +0 -0
  156. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/scripts/measure_optimizer_memory.py +0 -0
  157. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/scripts/quantize_i7_7660u.sh +0 -0
  158. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/scripts/t1api_examples.py +0 -0
  159. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/scripts/update_json_stats.py +0 -0
  160. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/setup.py +0 -0
  161. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/__main__.py +0 -0
  162. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/audio/__init__.py +0 -0
  163. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/audio/audiofile.py +0 -0
  164. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/audio/features.py +0 -0
  165. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/audio/wakeup.py +0 -0
  166. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/audio/wakeup_cli.py +0 -0
  167. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/bridge/__init__.py +0 -0
  168. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/bridge/lmstudio.py +0 -0
  169. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/chat/__init__.py +0 -0
  170. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/chat/cookbook.py +0 -0
  171. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/chat/countertop.py +0 -0
  172. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/chat/flour.py +0 -0
  173. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/chat/injection.py +0 -0
  174. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/chat/menu.py +0 -0
  175. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/data/__init__.py +0 -0
  176. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/data/blender.py +0 -0
  177. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/data/cardboard_box.py +0 -0
  178. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/data/cutting_board.py +0 -0
  179. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/data/food_processor.py +0 -0
  180. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/data/gather.py +0 -0
  181. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/data/gather_cli.py +0 -0
  182. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/data/lunchbox.py +0 -0
  183. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/data/mediocre_fridge.py +0 -0
  184. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/data/pans.py +0 -0
  185. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/data/pepper_shaker.py +0 -0
  186. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/data/qa.py +0 -0
  187. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/data/salt_shaker.py +0 -0
  188. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/data/scavenger.py +0 -0
  189. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/data/sink.py +0 -0
  190. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/data/strainer.py +0 -0
  191. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/data/toaster.py +0 -0
  192. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/data/tupperware.py +0 -0
  193. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/evaluation/__init__.py +0 -0
  194. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/evaluation/espresso_maker.py +0 -0
  195. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/evaluation/industrial_range.py +0 -0
  196. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/evaluation/new_fridge.py +0 -0
  197. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/evaluation/new_range.py +0 -0
  198. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/evaluation/old_range.py +0 -0
  199. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/evaluation/vera.py +0 -0
  200. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/hyped_pro.js +0 -0
  201. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/hyperlink/__init__.py +0 -0
  202. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/hyperlink/discovery.py +0 -0
  203. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/hyperlink/files.py +0 -0
  204. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/hyperlink/hfdownload.py +0 -0
  205. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/hyperlink/hfmerge.py +0 -0
  206. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/hyperlink/identity.py +0 -0
  207. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/hyperlink/notify.py +0 -0
  208. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/hyperlink/ondevice.py +0 -0
  209. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/hyperlink/pairing.py +0 -0
  210. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/hyperlink/peers.py +0 -0
  211. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/hyperlink/search.py +0 -0
  212. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/hyperlink/sync.py +0 -0
  213. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/interfaces/__init__.py +0 -0
  214. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/interfaces/assistant.py +0 -0
  215. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/interfaces/cli.py +0 -0
  216. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/interfaces/hyped.py +0 -0
  217. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/interfaces/hyped_pro.py +0 -0
  218. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/interfaces/hyped_pro_bridge.py +0 -0
  219. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/interfaces/hyped_pro_core.py +0 -0
  220. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/interfaces/hyped_pro_gui.py +0 -0
  221. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/interfaces/hyped_pro_tools.py +0 -0
  222. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/interfaces/noodle/__init__.py +0 -0
  223. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/interfaces/noodle/agent.py +0 -0
  224. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/interfaces/noodle/cli.py +0 -0
  225. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/interfaces/noodle/hpo.py +0 -0
  226. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/interfaces/noodle/hyped.py +0 -0
  227. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/interfaces/noodle/providers.py +0 -0
  228. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/interfaces/noodle/swarm.py +0 -0
  229. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/interfaces/noodle/validate.py +0 -0
  230. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/interfaces/version_launcher.py +0 -0
  231. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/interfaces/websearch.py +0 -0
  232. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/interfaces/wiki_cli.py +0 -0
  233. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/models/__init__.py +0 -0
  234. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/models/arch.py +0 -0
  235. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/models/brewer_adapter.py +0 -0
  236. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/models/download.py +0 -0
  237. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/models/generate.py +0 -0
  238. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/models/ggufrun.py +0 -0
  239. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/models/hnxdevice.py +0 -0
  240. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/models/hnxrun.py +0 -0
  241. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/models/hnxtokenizer.py +0 -0
  242. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/models/hnxtorch.py +0 -0
  243. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/models/microwave.py +0 -0
  244. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/models/multilama.py +0 -0
  245. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/models/nano_nano.py +0 -0
  246. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/models/neo_oven.py +0 -0
  247. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/models/old_oven.py +0 -0
  248. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/models/stml.py +0 -0
  249. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/models/whisk.py +0 -0
  250. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/models/workshop.py +0 -0
  251. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/monitoring/__init__.py +0 -0
  252. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/monitoring/cctvtop.py +0 -0
  253. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/monitoring/hyper_log.py +0 -0
  254. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/monitoring/livestream.py +0 -0
  255. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/monitoring/map.py +0 -0
  256. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/monitoring/plasma.py +0 -0
  257. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/monitoring/remote_desktop.py +0 -0
  258. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/monitoring/stale_log.py +0 -0
  259. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/monitoring/table.py +0 -0
  260. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/monitoring/thermometer.py +0 -0
  261. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/monitoring/tv.py +0 -0
  262. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/monitoring/tvtop.py +0 -0
  263. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/monitoring/tvtop_plus_plus.py +0 -0
  264. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/monitoring/tvtoppro.py +0 -0
  265. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/monitoring/tvtoppro_modules.py +0 -0
  266. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/optimizers/__init__.py +0 -0
  267. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/optimizers/optimizer_framework.py +0 -0
  268. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/optimizers/pressure_cooker.py +0 -0
  269. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/optimizers/pressure_cooker_v3.py +0 -0
  270. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/optimizers/pressure_cooker_v4.py +0 -0
  271. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/optimizers/pressure_cooker_v5.py +0 -0
  272. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/optimizers/pressure_cooker_v5s.py +0 -0
  273. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/optimizers/pressure_cooker_v6.py +0 -0
  274. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/optimizers/pressure_cooker_v6v.py +0 -0
  275. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/optimizers/sixbit.py +0 -0
  276. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/package-lock.json +0 -0
  277. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/package.json +0 -0
  278. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/py.typed +0 -0
  279. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/__init__.py +0 -0
  280. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/convert.py +0 -0
  281. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/dflash1.py +0 -0
  282. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/dflash1_cli.py +0 -0
  283. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/dflash2.py +0 -0
  284. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/dflash2_cli.py +0 -0
  285. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/fetcher.py +0 -0
  286. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/formats.py +0 -0
  287. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/gguf.py +0 -0
  288. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/ggufcheck.py +0 -0
  289. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/hyprslug_cli.py +0 -0
  290. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/hyprslug_headers.py +0 -0
  291. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/hyprslug_headers_cli.py +0 -0
  292. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/hyprslug_server.py +0 -0
  293. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/imatrix.py +0 -0
  294. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/imatrix_cli.py +0 -0
  295. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/llamaquants.py +0 -0
  296. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/lowbit.py +0 -0
  297. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/multiquant_cli.py +0 -0
  298. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/qat.py +0 -0
  299. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/quantize.py +0 -0
  300. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/runtime_bridge.py +0 -0
  301. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/runtime_bridge_cli.py +0 -0
  302. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/steamroller.py +0 -0
  303. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/steamroller_cli.py +0 -0
  304. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/subbit.py +0 -0
  305. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/quant/upload.py +0 -0
  306. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/scriptgen/__init__.py +0 -0
  307. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/scriptgen/app.py +0 -0
  308. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/scriptgen/cli.py +0 -0
  309. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/scriptgen/params.py +0 -0
  310. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/scriptgen/templates.py +0 -0
  311. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/scriptgen/theme.py +0 -0
  312. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/scriptgen/widgets.py +0 -0
  313. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/security/__init__.py +0 -0
  314. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/security/gatekeeper.py +0 -0
  315. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/security/gkey_cli.py +0 -0
  316. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/security/keyconfig.py +0 -0
  317. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/security/keymaster.py +0 -0
  318. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/security/keyversions.py +0 -0
  319. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/security/t2keys.py +0 -0
  320. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/compactor.py +0 -0
  321. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/config.py +0 -0
  322. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/deprecation.py +0 -0
  323. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/deps.py +0 -0
  324. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/dishwasher.py +0 -0
  325. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/doctor.py +0 -0
  326. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/ethanol.py +0 -0
  327. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/freezer.py +0 -0
  328. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/fusebox.py +0 -0
  329. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/fusebox_cli.py +0 -0
  330. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/gpus.py +0 -0
  331. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/launcher.py +0 -0
  332. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/net.py +0 -0
  333. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/old_fridge.py +0 -0
  334. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/pascal.py +0 -0
  335. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/pathfix.py +0 -0
  336. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/release.py +0 -0
  337. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/torch_compat.py +0 -0
  338. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/ups.py +0 -0
  339. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/utils.py +0 -0
  340. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/system/vram.py +0 -0
  341. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/__init__.py +0 -0
  342. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/accounts.py +0 -0
  343. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/accounts_cli.py +0 -0
  344. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/audit.py +0 -0
  345. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/auth.py +0 -0
  346. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/authhistory.py +0 -0
  347. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/backup.py +0 -0
  348. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/billing.py +0 -0
  349. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/billingkeys.py +0 -0
  350. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/bootstrap.py +0 -0
  351. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/cost.py +0 -0
  352. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/data/model_registry.example.json +0 -0
  353. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/data/routing_policies.example.json +0 -0
  354. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/db.py +0 -0
  355. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/deploy.py +0 -0
  356. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/errors.py +0 -0
  357. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/events.py +0 -0
  358. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/jobs.py +0 -0
  359. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/keys.py +0 -0
  360. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/launchscript_cli.py +0 -0
  361. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/modules.py +0 -0
  362. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/mtls.py +0 -0
  363. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/netpolicy.py +0 -0
  364. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/ratelimit.py +0 -0
  365. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/registry.py +0 -0
  366. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/routers/accounts.py +0 -0
  367. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/routers/audit.py +0 -0
  368. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/routers/auth.py +0 -0
  369. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/routers/authundo.py +0 -0
  370. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/routers/backup.py +0 -0
  371. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/routers/billing.py +0 -0
  372. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/routers/bridge.py +0 -0
  373. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/routers/config.py +0 -0
  374. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/routers/events.py +0 -0
  375. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/routers/health.py +0 -0
  376. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/routers/inference.py +0 -0
  377. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/routers/jobs.py +0 -0
  378. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/routers/keys.py +0 -0
  379. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/routers/models.py +0 -0
  380. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/routers/modules.py +0 -0
  381. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/routers/security.py +0 -0
  382. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/routers/servers.py +0 -0
  383. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/routers/training.py +0 -0
  384. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/routers/usage.py +0 -0
  385. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/routing.py +0 -0
  386. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/security.py +0 -0
  387. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/servers.py +0 -0
  388. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/storage.py +0 -0
  389. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/training_cli.py +0 -0
  390. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/transport.py +0 -0
  391. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/usage.py +0 -0
  392. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/version.py +0 -0
  393. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1api/webauth.py +0 -0
  394. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1sdk/__init__.py +0 -0
  395. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1sdk/client.py +0 -0
  396. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1sdk/errors.py +0 -0
  397. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1sdk/models.py +0 -0
  398. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/t1sdk/transport.py +0 -0
  399. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/timing/__init__.py +0 -0
  400. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/timing/bell.py +0 -0
  401. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/timing/coffee_maker.py +0 -0
  402. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/timing/smoke_alarm.py +0 -0
  403. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/timing/spinner.py +0 -0
  404. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/timing/timer.py +0 -0
  405. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/training/__init__.py +0 -0
  406. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/training/abbicus.py +0 -0
  407. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/training/apron.py +0 -0
  408. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/training/brewer.py +0 -0
  409. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/training/cake_pan.py +0 -0
  410. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/training/camouflage.py +0 -0
  411. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/training/compute_framework.py +0 -0
  412. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/training/deep_fryer.py +0 -0
  413. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/training/fizzle.py +0 -0
  414. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/training/instant_pot.py +0 -0
  415. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/training/lazy_suzan.py +0 -0
  416. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/training/monitor.py +0 -0
  417. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/training/mtp.py +0 -0
  418. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/training/recipe_book.py +0 -0
  419. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/training/smoker.py +0 -0
  420. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/training/train.py +0 -0
  421. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/tsconfig.json +0 -0
  422. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/waiter/__init__.py +0 -0
  423. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/waiter/cli.py +0 -0
  424. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/waiter/client.py +0 -0
  425. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/waiter/diagnose.py +0 -0
  426. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/waiter/discovery.py +0 -0
  427. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/waiter/local_config.py +0 -0
  428. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/waiter/smoke.py +0 -0
  429. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/src/hypernix/waiter/tui.py +0 -0
  430. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/shell_support.py +0 -0
  431. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_alarms_and_presets.py +0 -0
  432. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_arch_mapping.py +0 -0
  433. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_assistant.py +0 -0
  434. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_autofix_scripts.py +0 -0
  435. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_billing_keys.py +0 -0
  436. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_bootstrap_key.py +0 -0
  437. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_brewer_adapter.py +0 -0
  438. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_brewer_causality.py +0 -0
  439. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_ci_integration_jobs.py +0 -0
  440. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_cli_integration.py +0 -0
  441. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_cli_json_output.py +0 -0
  442. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_cli_unknown_command.py +0 -0
  443. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_coverage_beef.py +0 -0
  444. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_decoder_agreement.py +0 -0
  445. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_deprecation.py +0 -0
  446. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_deps_and_windows.py +0 -0
  447. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_dflash2.py +0 -0
  448. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_effective_bitrate.py +0 -0
  449. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_ethanol.py +0 -0
  450. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_fetcher.py +0 -0
  451. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_freezer.py +0 -0
  452. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_fridges.py +0 -0
  453. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_fusebox.py +0 -0
  454. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_gather.py +0 -0
  455. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_ggml_hnx.py +0 -0
  456. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_gguf_inference.py +0 -0
  457. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_ggufcheck.py +0 -0
  458. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_gkey_key_versions.py +0 -0
  459. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_gpu_migration.py +0 -0
  460. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_gpus.py +0 -0
  461. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_hnx_device_placement.py +0 -0
  462. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_hnx_devices.py +0 -0
  463. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_hnxrun.py +0 -0
  464. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_hyped_pro_bridge_cancel.py +0 -0
  465. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_hyped_pro_t1api.py +0 -0
  466. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_hyperlink_api_post9.py +0 -0
  467. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_hyperlink_discovery.py +0 -0
  468. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_hyperlink_notify.py +0 -0
  469. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_hyperlink_ondevice.py +0 -0
  470. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_hyperlink_ondevice_mirror.py +0 -0
  471. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_hyperlink_reachability.py +0 -0
  472. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_hyperlink_search.py +0 -0
  473. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_hyperlink_sync.py +0 -0
  474. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_hyprslug_field_reports.py +0 -0
  475. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_hyprslug_headers.py +0 -0
  476. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_hyprslug_recipes.py +0 -0
  477. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_imatrix.py +0 -0
  478. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_inference_endpoints.py +0 -0
  479. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_install_pin.py +0 -0
  480. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_ios_appicon.py +0 -0
  481. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_ios_concurrency.py +0 -0
  482. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_ios_version_wiring.py +0 -0
  483. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_kitchen_v044.py +0 -0
  484. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_kitchen_v045.py +0 -0
  485. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_launch_script.py +0 -0
  486. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_lazy_suzan.py +0 -0
  487. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_lint_regressions.py +0 -0
  488. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_llama_quants.py +0 -0
  489. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_low_bit_types.py +0 -0
  490. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_lunchbox.py +0 -0
  491. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_map.py +0 -0
  492. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_model_registry_discovery.py +0 -0
  493. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_module_layout.py +0 -0
  494. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_multiquant.py +0 -0
  495. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_neo_oven.py +0 -0
  496. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_neo_oven_generation.py +0 -0
  497. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_nettrust.py +0 -0
  498. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_new_archs_v035.py +0 -0
  499. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_nix_fallback.py +0 -0
  500. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_noodle_hyped.py +0 -0
  501. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_old_oven.py +0 -0
  502. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_pathfix.py +0 -0
  503. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_pressure_cooker_v048.py +0 -0
  504. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_pressure_cooker_v3.py +0 -0
  505. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_pressure_cooker_v6.py +0 -0
  506. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_qat.py +0 -0
  507. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_quantize_v0703.py +0 -0
  508. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_ranges.py +0 -0
  509. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_remote_desktop.py +0 -0
  510. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_runtime_bridge.py +0 -0
  511. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_security_fixes.py +0 -0
  512. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_shakers_and_torchcompat.py +0 -0
  513. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_snapshot_roundtrip.py +0 -0
  514. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_sspkid_and_key_config.py +0 -0
  515. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_studio_core.py +0 -0
  516. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_studio_local.py +0 -0
  517. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_subbit_quantization.py +0 -0
  518. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_subsystem_map.py +0 -0
  519. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_t1_accounts.py +0 -0
  520. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_t1_model_index.py +0 -0
  521. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_t1_v1_0_26_8_1_1.py +0 -0
  522. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_t1_v1_0_26_core.py +0 -0
  523. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_t1_v1_0_26_http.py +0 -0
  524. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_t1api_auth.py +0 -0
  525. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_t1api_beta3_core.py +0 -0
  526. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_t1api_beta3_http.py +0 -0
  527. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_t1api_beta3_security.py +0 -0
  528. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_t1api_beta4_usage_report.py +0 -0
  529. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_t1api_billing.py +0 -0
  530. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_t1api_core.py +0 -0
  531. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_t1api_events.py +0 -0
  532. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_t1api_example_scripts.py +0 -0
  533. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_t1api_http.py +0 -0
  534. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_t1api_http_beta2.py +0 -0
  535. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_t1api_jobs.py +0 -0
  536. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_t1api_modules.py +0 -0
  537. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_t1api_routing.py +0 -0
  538. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_t1api_security.py +0 -0
  539. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_t1api_servers.py +0 -0
  540. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_t2s_errors.py +0 -0
  541. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_tool_consent_gate.py +0 -0
  542. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_training_admin.py +0 -0
  543. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_trusted_network.py +0 -0
  544. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_tupperware.py +0 -0
  545. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_tvtop_plus_plus_comprehensive.py +0 -0
  546. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_tvtoppro.py +0 -0
  547. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_tvtoppro_features.py +0 -0
  548. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_ups.py +0 -0
  549. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v031_chat_and_archs.py +0 -0
  550. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v047_deep_fryer_cake_pan_presets.py +0 -0
  551. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v050.py +0 -0
  552. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v051.py +0 -0
  553. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v051_1.py +0 -0
  554. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v051_3.py +0 -0
  555. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v051_4.py +0 -0
  556. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v052_5.py +0 -0
  557. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v052_6.py +0 -0
  558. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v060.py +0 -0
  559. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v061_1.py +0 -0
  560. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v061_2.py +0 -0
  561. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v061_b1.py +0 -0
  562. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v0703_additional.py +0 -0
  563. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v0704_features.py +0 -0
  564. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v0704_tvtop_plus_plus.py +0 -0
  565. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v0704b11_features.py +0 -0
  566. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v0704b12_cctvtop.py +0 -0
  567. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v0705_all.py +0 -0
  568. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v0710_gatekeeper_keymaster.py +0 -0
  569. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v0711_border_fix.py +0 -0
  570. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v0712_hyped_countertop.py +0 -0
  571. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v0714_config_provider_keys.py +0 -0
  572. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v0714_cpu_presets.py +0 -0
  573. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v0714_hyped_pro_bridge.py +0 -0
  574. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v0714_hyped_pro_core.py +0 -0
  575. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v0714_hyped_pro_launcher.py +0 -0
  576. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v0714_hyped_pro_tools.py +0 -0
  577. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v0714_multilama.py +0 -0
  578. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v0721_api_waiter.py +0 -0
  579. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v0721_modules.py +0 -0
  580. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_v0721_t2_keys.py +0 -0
  581. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_vera.py +0 -0
  582. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_version_guard.py +0 -0
  583. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_version_launcher.py +0 -0
  584. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_vram_optimizations.py +0 -0
  585. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_waiter.py +0 -0
  586. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_waiter_diagnose.py +0 -0
  587. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_wakeup.py +0 -0
  588. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/tests/test_website_mobile.py +0 -0
  589. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Abbicus.md +0 -0
  590. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Alarms.md +0 -0
  591. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Apron.md +0 -0
  592. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Architectures.md +0 -0
  593. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Bell.md +0 -0
  594. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Blender.md +0 -0
  595. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/CakePan.md +0 -0
  596. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Camouflage.md +0 -0
  597. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Changelog-guide.md +0 -0
  598. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/CoffeeMaker.md +0 -0
  599. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Convert.md +0 -0
  600. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Cookbook.md +0 -0
  601. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Countertop.md +0 -0
  602. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/CuttingBoard.md +0 -0
  603. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Dashboards.md +0 -0
  604. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/DeepFryer.md +0 -0
  605. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Devices.md +0 -0
  606. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Dflash2.md +0 -0
  607. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Download.md +0 -0
  608. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/EspressoMaker.md +0 -0
  609. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Flour.md +0 -0
  610. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/FoodProcessor.md +0 -0
  611. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Frameworks.md +0 -0
  612. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Freezer.md +0 -0
  613. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Fridges.md +0 -0
  614. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/FuseBox.md +0 -0
  615. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Gather.md +0 -0
  616. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/HnxRun.md +0 -0
  617. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Home.md +0 -0
  618. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/HuggingFace-Models.md +0 -0
  619. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/HyperLink-OnDevice.md +0 -0
  620. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/HyperLink-Sync.md +0 -0
  621. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/HyperLog.md +0 -0
  622. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/HyprSlug-Headers.md +0 -0
  623. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Imatrix.md +0 -0
  624. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Kitchen.md +0 -0
  625. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/LowBit.md +0 -0
  626. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Lunchbox.md +0 -0
  627. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/MTP.md +0 -0
  628. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Menu.md +0 -0
  629. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Microwave.md +0 -0
  630. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Model-Training-Guide.md +0 -0
  631. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/ModelIndex.md +0 -0
  632. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Optimizers.md +0 -0
  633. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Ovens.md +0 -0
  634. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Pans.md +0 -0
  635. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Pascal.md +0 -0
  636. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/PipelineMechanics.md +0 -0
  637. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Pressure-Cooker-V3.md +0 -0
  638. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Pressure-Cooker-V4.md +0 -0
  639. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Pressure-Cooker-V5.md +0 -0
  640. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Pressure-Cooker-V6.md +0 -0
  641. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Quantization.md +0 -0
  642. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Ranges.md +0 -0
  643. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/RecipeBook.md +0 -0
  644. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Roadmap.md +0 -0
  645. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Runtime.md +0 -0
  646. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/STML.md +0 -0
  647. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Scavenger.md +0 -0
  648. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Shakers.md +0 -0
  649. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Smoker.md +0 -0
  650. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/T1-API-Security-Checklist.md +0 -0
  651. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/T1-API.md +0 -0
  652. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Toaster.md +0 -0
  653. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Training.md +0 -0
  654. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Tupperware.md +0 -0
  655. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/TvTopPro.md +0 -0
  656. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/VRAM.md +0 -0
  657. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Vera.md +0 -0
  658. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Waiter-TUI.md +0 -0
  659. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/WakeUp.md +0 -0
  660. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Whisk.md +0 -0
  661. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/Workshop.md +0 -0
  662. {hypernix-0.72.5.dev2 → hypernix-0.72.5.post1}/wiki/macOS-legacy.md +0 -0
@@ -49,7 +49,12 @@ on:
49
49
  local_engine:
50
50
  description: "Build llama.cpp into the app so it can run models on-device."
51
51
  type: boolean
52
- default: false
52
+ # True for a *called* build, unlike the dispatch default below.
53
+ # The only reason to call this workflow is to ship the result,
54
+ # and an IPA that cannot run a model is not worth shipping. The
55
+ # expensive default is the safe one here; the cheap default
56
+ # belongs on the PR path, where it is.
57
+ default: true
53
58
  version:
54
59
  description: "Marketing version to stamp into the build"
55
60
  type: string
@@ -131,8 +136,50 @@ jobs:
131
136
  # macOS runner and is not worth paying on a PR that touched a
132
137
  # view. Without it the app builds and ships with EchoRunner,
133
138
  # which tells the user this build has no local engine.
139
+ # Every trigger gets a stated answer, because the obvious
140
+ # expression does not have one.
141
+ #
142
+ # `if: ${{ inputs.local_engine }}` was the whole engine-skipping
143
+ # bug, and it looks correct. The `inputs` context exists *only*
144
+ # for `workflow_dispatch` and `workflow_call`; on a `push` or a
145
+ # `pull_request` it is not populated at all, so
146
+ # `inputs.local_engine` is null, null is falsy, and the step was
147
+ # skipped on every single commit to main -- silently, with a grey
148
+ # "skipped" in the log that looks exactly like a deliberate one.
149
+ # `--require-engine` was gated on the same expression, so the
150
+ # guard that exists to catch this was switched off by it too.
151
+ #
152
+ # Every commit to main therefore shipped an app whose on-device
153
+ # inference was EchoRunner. That is the "it always skips the
154
+ # inference engine build" report, and setting the workflow_call
155
+ # default to true (which fixed the release path) could not have
156
+ # fixed it: the release path was never the one skipping.
157
+ - name: Decide whether to build the engine
158
+ id: engine
159
+ env:
160
+ REQUESTED: ${{ inputs.local_engine }}
161
+ EVENT: ${{ github.event_name }}
162
+ run: |
163
+ set -euo pipefail
164
+ # REQUESTED is "true", "false", or empty when there is no
165
+ # `inputs` context to read. Empty is the case that has to be
166
+ # decided here rather than defaulted to false by accident.
167
+ case "$REQUESTED" in
168
+ true) want=true ;;
169
+ false) want=false ;;
170
+ *)
171
+ # No input: the trigger decides. main is what people
172
+ # install from and it gets a real engine; a pull request
173
+ # does not, because 15-25 minutes on every push is what
174
+ # makes somebody turn this off permanently.
175
+ if [ "$EVENT" = "push" ]; then want=true; else want=false; fi
176
+ ;;
177
+ esac
178
+ echo "Engine requested: '${REQUESTED:-<no inputs context>}' on $EVENT -> $want"
179
+ echo "build=$want" >> "$GITHUB_OUTPUT"
180
+
134
181
  - name: Build the inference engine
135
- if: ${{ inputs.local_engine }}
182
+ if: steps.engine.outputs.build == 'true'
136
183
  working-directory: ios
137
184
  run: |
138
185
  set -euo pipefail
@@ -151,7 +198,11 @@ jobs:
151
198
  # XcodeGen cannot make that call: its `optional: true` means
152
199
  # weak linking, not "skip when absent", so a spec that always
153
200
  # names the framework fails to build on a checkout without it.
154
- python3 scripts/prepare_project.py
201
+ # --require-engine when the build asked for one, so a failed
202
+ # or skipped engine step fails here instead of shipping an IPA
203
+ # in which every on-device feature quietly does nothing.
204
+ python3 scripts/prepare_project.py \
205
+ ${{ steps.engine.outputs.build == 'true' && '--require-engine' || '' }}
155
206
  xcodegen generate --spec project.generated.yml
156
207
  ls -la HyperLink.xcodeproj
157
208
 
@@ -186,6 +237,21 @@ jobs:
186
237
  fi
187
238
  echo "Testing on simulator $device"
188
239
  set -o pipefail
240
+ # The whole log to a file, and only a summary to the console.
241
+ #
242
+ # This used to be `| tail -60`, which discards exactly what is
243
+ # needed when the build fails: xcodebuild prints a short
244
+ # "Testing failed:" summary of *deduplicated* messages and
245
+ # then the per-file errors with their line numbers, and the
246
+ # tail keeps the wrong end. A compile failure would report six
247
+ # unique messages and one file:line, so fixing it took a round
248
+ # trip per error.
249
+ #
250
+ # Now every `error:` line is echoed first, in full, and the
251
+ # complete log is uploaded as an artifact.
252
+ # The redirect below needs the directory to exist first.
253
+ mkdir -p build
254
+ set +e
189
255
  xcodebuild test \
190
256
  -project HyperLink.xcodeproj \
191
257
  -scheme HyperLink \
@@ -193,7 +259,28 @@ jobs:
193
259
  -destination "id=$device" \
194
260
  -resultBundlePath build/TestResults.xcresult \
195
261
  CODE_SIGNING_ALLOWED=NO \
196
- | tail -60
262
+ > build/xcodebuild.log 2>&1
263
+ status=$?
264
+ set -e
265
+
266
+ if [ "$status" -ne 0 ]; then
267
+ echo "::group::Every compiler error"
268
+ # Sorted and deduplicated: a batch build repeats the same
269
+ # error once per file that triggered it, and forty copies of
270
+ # one message buries the other five.
271
+ grep -E "(error|warning): " build/xcodebuild.log \
272
+ | sed 's|/Users/runner/work/HyperNix-pip/HyperNix-pip/||' \
273
+ | sort -u \
274
+ | head -200 || true
275
+ echo "::endgroup::"
276
+ echo "::group::The last 200 lines"
277
+ tail -200 build/xcodebuild.log
278
+ echo "::endgroup::"
279
+ echo "::error::xcodebuild failed — see the groups above, or the ios-build-log artifact"
280
+ else
281
+ tail -20 build/xcodebuild.log
282
+ fi
283
+ exit "$status"
197
284
 
198
285
  - name: Archive
199
286
  working-directory: ios
@@ -315,6 +402,15 @@ jobs:
315
402
  if-no-files-found: error
316
403
  retention-days: 90
317
404
 
405
+ - name: Upload the build log
406
+ if: always() && inputs.run_tests != false
407
+ uses: actions/upload-artifact@v4
408
+ with:
409
+ name: ios-build-log-${{ github.run_number }}
410
+ path: ios/build/xcodebuild.log
411
+ if-no-files-found: ignore
412
+ retention-days: 7
413
+
318
414
  - name: Upload the test results
319
415
  if: always() && inputs.run_tests != false
320
416
  uses: actions/upload-artifact@v4
@@ -184,6 +184,19 @@ jobs:
184
184
 
185
185
  init = Path("src/hypernix/__init__.py")
186
186
  init.write_text(re.sub(r'__version__ = "[^"]+"', f'__version__ = "{v}"', init.read_text(), count=1))
187
+
188
+ # The fourth place a version string lives. install-t1.sh bakes
189
+ # one as the `curl | bash` fallback, for the case where there
190
+ # is no checkout to read and no hypernix installed yet to ask
191
+ # -- and a release that bumped the other three without this one
192
+ # shipped an installer whose banner announced the previous
193
+ # version over a correct install. tests/test_install_script.py
194
+ # fails when they drift, which is how this came to be here.
195
+ installer = Path("install-t1.sh")
196
+ installer.write_text(
197
+ re.sub(r'^VERSION="[^"]+"$', f'VERSION="{v}"',
198
+ installer.read_text(), count=1, flags=re.M)
199
+ )
187
200
  PY
188
201
  echo "--- pyproject.toml version line"
189
202
  grep '^version' pyproject.toml
@@ -191,6 +204,8 @@ jobs:
191
204
  grep '^version' setup.cfg
192
205
  echo "--- __init__.py version line"
193
206
  grep __version__ src/hypernix/__init__.py
207
+ echo "--- install-t1.sh version line"
208
+ grep '^VERSION=' install-t1.sh
194
209
 
195
210
  - name: Lint
196
211
  run: ruff check src/hypernix
@@ -50,6 +50,14 @@ jobs:
50
50
  uses: ./.github/workflows/ios.yml
51
51
  with:
52
52
  run_tests: true
53
+ # A release IPA has to be able to run a model. Without this the
54
+ # build links no llama.cpp and ships EchoRunner, so every
55
+ # on-device feature is inert in the artifact people install --
56
+ # and nothing said so, because falling back is the correct
57
+ # behaviour for a PR build and the release used the same default.
58
+ # It costs 15-25 minutes and it is the difference between an app
59
+ # and a demo.
60
+ local_engine: true
53
61
  version: ""
54
62
  secrets: inherit
55
63
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hypernix
3
- Version: 0.72.5.dev2
3
+ Version: 0.72.5.post1
4
4
  Summary: Download and quantize the HyperNix PyTorch model to GGUF (fp32/fp16/Q8_0/Q6_K/Q4_K_M). and train models with a massive ai toolkit
5
5
  Home-page: https://github.com/trail-b1az3r/hypernix-pip
6
6
  Author: HyperNix contributors
@@ -78,7 +78,7 @@ Dynamic: license-file
78
78
  </p>
79
79
 
80
80
  <p align="center">
81
- <img alt="PyPI" src="https://img.shields.io/badge/PyPI-v0.72.4.post20-ff2d55?style=for-the-badge&logo=pypi&logoColor=white" />
81
+ <img alt="PyPI" src="https://img.shields.io/badge/PyPI-v0.72.5-ff2d55?style=for-the-badge&logo=pypi&logoColor=white" />
82
82
  <img alt="Python" src="https://img.shields.io/badge/Python-3.10--3.14-00c9ff?style=for-the-badge&logo=python&logoColor=white" />
83
83
  <img alt="License" src="https://img.shields.io/badge/License-HOS%20/%20LLU-00c853?style=for-the-badge" />
84
84
  </p>
@@ -4,7 +4,7 @@
4
4
  </p>
5
5
 
6
6
  <p align="center">
7
- <img alt="PyPI" src="https://img.shields.io/badge/PyPI-v0.72.4.post20-ff2d55?style=for-the-badge&logo=pypi&logoColor=white" />
7
+ <img alt="PyPI" src="https://img.shields.io/badge/PyPI-v0.72.5-ff2d55?style=for-the-badge&logo=pypi&logoColor=white" />
8
8
  <img alt="Python" src="https://img.shields.io/badge/Python-3.10--3.14-00c9ff?style=for-the-badge&logo=python&logoColor=white" />
9
9
  <img alt="License" src="https://img.shields.io/badge/License-HOS%20/%20LLU-00c853?style=for-the-badge" />
10
10
  </p>
@@ -19,8 +19,42 @@
19
19
 
20
20
  set -euo pipefail
21
21
 
22
+ # The version this script reports. A fallback, not the answer.
23
+ #
24
+ # It was a hand-maintained literal and it was stale, which is one third
25
+ # of "the installed T1 thinks it is running an older version" — the
26
+ # other two thirds were install-t1.sh's two constants. `hypernix-t1
27
+ # version` now asks the installed package, because by the time this
28
+ # script does anything useful the package is installed by definition,
29
+ # and a number derived from the thing it describes cannot drift from it.
22
30
  VERSION="0.72.5"
23
31
 
32
+ # The real versions, from the package this script drives.
33
+ #
34
+ # Deliberately not a `sed` of the source like install-t1.sh does: that
35
+ # script runs before anything is installed and has a checkout to read,
36
+ # and this one runs after and may have no checkout at all. Asking the
37
+ # interpreter is the accurate answer *here* and the impossible one
38
+ # there.
39
+ report_versions() {
40
+ local py
41
+ py="$(python_bin 2>/dev/null)" || { printf 'hypernix-t1 %s\n' "$VERSION"; return 0; }
42
+ "$py" - <<'PYEOF' 2>/dev/null || printf 'hypernix-t1 %s\n' "$VERSION"
43
+ import sys
44
+
45
+ try:
46
+ import hypernix
47
+ from hypernix.t1api.version import T1_VERSION
48
+ except Exception:
49
+ sys.exit(1)
50
+
51
+ print(f"hypernix-t1 (hypernix {hypernix.__version__})")
52
+ print(f"t1 api v{T1_VERSION.short}")
53
+ print(f"python {'.'.join(str(p) for p in sys.version_info[:3])}")
54
+ print(f"runs as {sys.executable}")
55
+ PYEOF
56
+ }
57
+
24
58
  CONFIG_DIR="${T1_CONFIG_DIR:-$HOME/.hypernix/t1api}"
25
59
  ENV_FILE="$CONFIG_DIR/.env"
26
60
  PID_FILE="$CONFIG_DIR/server.pid"
@@ -695,6 +729,19 @@ cmd_training() {
695
729
  exec "$py" -m hypernix.t1api.training_cli "$@"
696
730
  }
697
731
 
732
+ cmd_runner() {
733
+ # Talks to the running server over HTTP rather than loading a model
734
+ # here. The runner is a process the *server* owns — starting a second
735
+ # llama.cpp from this script would take the VRAM the server's own
736
+ # copy is using and the failure would land on the one that was
737
+ # working.
738
+ require_installed
739
+ load_env
740
+ local py; py="$(python_bin)"
741
+ T1_CONFIG_DIR="${T1_CONFIG_DIR:-$CONFIG_DIR}" \
742
+ exec "$py" -m hypernix.t1api.runner_cli "$@"
743
+ }
744
+
698
745
  cmd_index() {
699
746
  # No require_installed: indexing reads GGUF files and writes JSON, and
700
747
  # needs neither a configured server nor the [t1api] extra. Someone who
@@ -871,11 +918,12 @@ main() {
871
918
  test) cmd_test "$@" ;;
872
919
  key|keys) cmd_key "$@" ;;
873
920
  index) cmd_index "$@" ;;
921
+ runner) cmd_runner "$@" ;;
874
922
  launch-script) cmd_launch_script "$@" ;;
875
923
  training) cmd_training "$@" ;;
876
924
  autostart) cmd_autostart "$@" ;;
877
925
  remove|uninstall) cmd_remove "$@" ;;
878
- version|--version) printf 'hypernix-t1 %s\n' "$VERSION" ;;
926
+ version|--version) report_versions ;;
879
927
  help|-h|--help) usage ;;
880
928
  *) err "Unknown command: $cmd"; usage >&2; exit 2 ;;
881
929
  esac
@@ -28,8 +28,59 @@
28
28
 
29
29
  set -euo pipefail
30
30
 
31
- VERSION="0.72.2.post5"
32
- T1_API_VERSION="1.0.26.8.1.1"
31
+ # The version this installer announces, in the banner and in the config
32
+ # it writes.
33
+ #
34
+ # These two were maintained by hand and went stale, which is the whole
35
+ # of the "the installed T1 thinks it is running an older version"
36
+ # report: the banner said 0.72.2.post5 / t1 v1.0.26.8.1.1 while the
37
+ # package being installed was several releases past both. Nothing was
38
+ # wrong with the install — the only thing that was ever wrong was the
39
+ # number printed over it, and there is no way to tell those apart from
40
+ # the outside.
41
+ #
42
+ # They are still literals because this script has to work as
43
+ # `curl ... | bash`, where there is no checkout to read and no hypernix
44
+ # installed yet to ask. So they are a *fallback*, `derive_versions`
45
+ # below replaces them whenever the script is run from a clone, and
46
+ # tests/test_install_script.py fails if the fallback drifts from the
47
+ # package again.
48
+ VERSION="0.72.5.post1"
49
+ T1_API_VERSION="1.0.26.9.2.3"
50
+
51
+ # Replace the baked versions with the real ones, when they can be read.
52
+ #
53
+ # Reads the sources rather than importing them: this runs before
54
+ # anything is installed, and `python3 -c 'import hypernix'` at this
55
+ # point either fails or — worse — succeeds against some *other*
56
+ # hypernix that happens to be on the path and reports its version
57
+ # instead of the one about to be installed.
58
+ derive_versions() {
59
+ local here src package t1 year
60
+ here="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)" || return 0
61
+ src="$here/src/hypernix"
62
+ [ -f "$src/__init__.py" ] || return 0
63
+
64
+ package="$(sed -n 's/^__version__ = "\(.*\)"$/\1/p' "$src/__init__.py" | head -1)"
65
+ [ -n "$package" ] && VERSION="$package"
66
+
67
+ # T1Version(api=1, major=0, year=2026, month=9, feature=2, fix=3)
68
+ # becomes 1.0.26.9.2.3 — the short spelling, two-digit year, which is
69
+ # what /status and every wire response carry.
70
+ t1="$(sed -n \
71
+ 's/^T1_VERSION = T1Version(api=\([0-9][0-9]*\), *major=\([0-9][0-9]*\), *year=\([0-9][0-9]*\), *month=\([0-9][0-9]*\), *feature=\([0-9][0-9]*\), *fix=\([0-9][0-9]*\)).*$/\1 \2 \3 \4 \5 \6/p' \
72
+ "$src/t1api/version.py" | head -1)"
73
+ if [ -n "$t1" ]; then
74
+ # shellcheck disable=SC2086 # deliberate word splitting into $1..$6
75
+ set -- $t1
76
+ year="$3"
77
+ # 2026 -> 26. Left alone if it is already two digits.
78
+ [ ${#year} -gt 2 ] && year="${year#"${year%??}"}"
79
+ T1_API_VERSION="$1.$2.$year.$4.$5.$6"
80
+ fi
81
+ }
82
+
83
+ derive_versions
33
84
 
34
85
  # ---------------------------------------------------------------------------
35
86
  # Output
@@ -69,6 +120,13 @@ banner() {
69
120
 
70
121
  INTERACTIVE=1
71
122
  DRY_RUN=0
123
+ # Index ~/.hypernix/models into the registry after installing, so models
124
+ # already on this machine are servable — and visible in HyperLink —
125
+ # without anybody hand-writing models.json.
126
+ INDEX_MODELS=0
127
+ # The same, plus a price worked out per model. Separate because pricing
128
+ # is a policy decision and indexing is not.
129
+ ESTIMATE_PRICES=0
72
130
  CONFIG_DIR="${T1_CONFIG_DIR:-$HOME/.hypernix/t1api}"
73
131
  INSTALL_MODE="" # venv | user | system | skip
74
132
  ASSUME_YES=0
@@ -97,6 +155,18 @@ install-t1.sh — interactive installer and setup for the HyperNix T1 API.
97
155
  exposes it to every network this machine is on.
98
156
  --port N Port, answering the "Port" question up front.
99
157
  --force Overwrite an existing .env instead of stopping.
158
+ --index-models After installing, read every GGUF in
159
+ ~/.hypernix/models and write it into the model
160
+ registry. They become servable, switchable, and
161
+ visible in HyperLink without anybody editing
162
+ models.json by hand.
163
+ --estimate-prices Index, and work out what each model costs to
164
+ serve from its size, quantisation, parameter
165
+ count, this machine's GPU, and its active-vs-total
166
+ parameters if it is a mixture-of-experts. Implies
167
+ --index-models. A starting point, not a market
168
+ rate — and better than the zero that is otherwise
169
+ written, which bills you.
100
170
  --help This.
101
171
 
102
172
  `hypernix-t1 create` forwards its own --host/--port/--force here, so the
@@ -120,6 +190,8 @@ while [ $# -gt 0 ]; do
120
190
  --host) shift; [ $# -gt 0 ] || die "--host needs an address"; FORCED_HOST="$1" ;;
121
191
  --port) shift; [ $# -gt 0 ] || die "--port needs a number"; FORCED_PORT="$1" ;;
122
192
  --force) FORCE_OVERWRITE=1 ;;
193
+ --index-models) INDEX_MODELS=1 ;;
194
+ --estimate-prices) INDEX_MODELS=1; ESTIMATE_PRICES=1 ;;
123
195
  --trusted-network) TRUSTED_NETWORK=1; TRUSTED_NETWORK_SET=1 ;;
124
196
  --no-trusted-network) TRUSTED_NETWORK=0; TRUSTED_NETWORK_SET=1 ;;
125
197
  --trusted-network-partial-admin)
@@ -393,8 +465,12 @@ install_package() {
393
465
  ;;
394
466
  user)
395
467
  PIP_TARGET_DESC="user site-packages"
396
- if [ "$DRY_RUN" = "1" ]; then dim " would run: $PYTHON -m pip install --user $spec"; return; fi
397
- "$PYTHON" -m pip install --quiet --user "$spec" || die "pip install --user $spec failed"
468
+ if [ "$DRY_RUN" = "1" ]; then
469
+ dim " would run: $PYTHON -m pip install --user --break-system-packages $spec"
470
+ return
471
+ fi
472
+ "$PYTHON" -m pip install --quiet --user --break-system-packages "$spec" \
473
+ || die "pip install --user --break-system-packages $spec failed"
398
474
  ;;
399
475
  system)
400
476
  PIP_TARGET_DESC="system site-packages"
@@ -1390,6 +1466,53 @@ CHECKEOF
1390
1466
  done
1391
1467
  }
1392
1468
 
1469
+ # Index the models this machine already has.
1470
+ #
1471
+ # After install_package, because it runs `hypernix-t1 index` -- which is
1472
+ # the shipped indexer rather than a second implementation here. An
1473
+ # installer that reimplemented GGUF parsing in shell would be a second
1474
+ # place for the context limit to be wrong, and the context limit is the
1475
+ # number the server then enforces.
1476
+ index_models() {
1477
+ [ "$INDEX_MODELS" = "1" ] || return 0
1478
+
1479
+ local models_dir="${HOME}/.hypernix/models"
1480
+ local registry="${MODEL_REGISTRY_PATH:-$CONFIG_DIR/models.json}"
1481
+
1482
+ head2 "Indexing models"
1483
+ if [ ! -d "$models_dir" ]; then
1484
+ dim " $models_dir does not exist yet — nothing to index."
1485
+ dim " Models downloaded through HyperLink land there; run"
1486
+ dim " 'hypernix-t1 index' once you have some."
1487
+ return 0
1488
+ fi
1489
+
1490
+ if [ "$DRY_RUN" = "1" ]; then
1491
+ dim " would index $models_dir into $registry"
1492
+ return 0
1493
+ fi
1494
+
1495
+ if ! py_available; then
1496
+ warn "hypernix is not importable yet, so the index was skipped."
1497
+ warn "Run 'hypernix-t1 index' by hand once the install settles."
1498
+ return 0
1499
+ fi
1500
+
1501
+ local args="--dir $models_dir -o $registry"
1502
+ [ "$ESTIMATE_PRICES" = "1" ] && args="$args --estimate-prices"
1503
+
1504
+ # Not fatal. A registry that could not be written is worth reporting
1505
+ # loudly and is not a reason to leave a working server uninstalled --
1506
+ # everything else has already been set up by this point.
1507
+ # shellcheck disable=SC2086
1508
+ if "$PYTHON" -m hypernix.t1api.modelindex_cli $args; then
1509
+ note_written "$registry"
1510
+ else
1511
+ warn "Indexing failed. The server is installed and will serve nothing"
1512
+ warn "until the registry has an entry; run 'hypernix-t1 index' to retry."
1513
+ fi
1514
+ }
1515
+
1393
1516
  summary() {
1394
1517
  head2 "Done"
1395
1518
  say ""
@@ -1422,6 +1545,13 @@ summary() {
1422
1545
  fi
1423
1546
  [ "$WANT_TUI" = "1" ] && say " waiter tui ${C_DIM}# the manager dashboard${C_OFF}"
1424
1547
  [ "$MODEL_SOURCE" = "lmstudio" ] && say " waiter lmstudio status ${C_DIM}# is a model loaded?${C_OFF}"
1548
+ # The runner is the answer to "I have models and no LM Studio", which
1549
+ # is the state this installer leaves a machine in when --index-models
1550
+ # found some. Worth naming here rather than leaving it to be found.
1551
+ if [ "$INDEX_MODELS" = "1" ]; then
1552
+ say " hypernix-t1 runner status ${C_DIM}# what is serving, and where its layers are${C_OFF}"
1553
+ say " hypernix-t1 runner load <model> ${C_DIM}# serve one without LM Studio${C_OFF}"
1554
+ fi
1425
1555
  [ "$WANT_HYPERLINK" = "1" ] && say " waiter hyperlink pair ${C_DIM}# connect the phone app${C_OFF}"
1426
1556
  [ "$WANT_SYSTEMD" = "1" ] && say " sudo cp $CONFIG_DIR/hypernix-t1api.service /etc/systemd/system/"
1427
1557
  say ""
@@ -1500,6 +1630,7 @@ main() {
1500
1630
 
1501
1631
  write_env
1502
1632
  write_registry_template
1633
+ index_models
1503
1634
  write_start_script
1504
1635
  write_systemd_unit
1505
1636
  mint_admin_key
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "hypernix"
7
- version = "0.72.5.dev2"
7
+ version = "0.72.5.post1"
8
8
  description = "Download and quantize the HyperNix PyTorch model to GGUF (fp32/fp16/Q8_0/Q6_K/Q4_K_M). and train models with a massive ai toolkit "
9
9
  readme = { file = "README.md", content-type = "text/markdown" }
10
10
  license = { text = "HOL-1.0" }
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = hypernix
3
- version = 0.72.5.dev2
3
+ version = 0.72.5.post1
4
4
  description = Download and quantize the HyperNix PyTorch model to GGUF (fp32/fp16/Q8_0/Q6_K/Q4_K_M).
5
5
  long_description = file: README.md
6
6
  long_description_content_type = text/markdown
@@ -63,7 +63,7 @@ import importlib.util
63
63
  import sys
64
64
  from typing import TYPE_CHECKING, Any
65
65
 
66
- __version__ = "0.72.5.dev2"
66
+ __version__ = "0.72.5.post1"
67
67
  DEFAULT_REPO_ID = "ray0rf1re/hyper-Nix.2"
68
68
  DEFAULT_MODEL = "qwen3.5-4b" # New default model
69
69