hypernix 0.71.1__tar.gz → 0.71.2__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 (240) hide show
  1. {hypernix-0.71.1 → hypernix-0.71.2}/PKG-INFO +1 -1
  2. {hypernix-0.71.1 → hypernix-0.71.2}/pyproject.toml +1 -1
  3. {hypernix-0.71.1 → hypernix-0.71.2}/setup.cfg +1 -1
  4. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/__init__.py +1 -1
  5. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/countertop.py +60 -1
  6. hypernix-0.71.2/src/hypernix/hyped.py +1588 -0
  7. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix.egg-info/SOURCES.txt +1 -0
  8. hypernix-0.71.2/tests/test_v0712_hyped_countertop.py +120 -0
  9. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Release-Timeline.md +12 -0
  10. hypernix-0.71.1/src/hypernix/hyped.py +0 -753
  11. {hypernix-0.71.1 → hypernix-0.71.2}/.github/workflows/build.yml +0 -0
  12. {hypernix-0.71.1 → hypernix-0.71.2}/.github/workflows/ci.yml +0 -0
  13. {hypernix-0.71.1 → hypernix-0.71.2}/.github/workflows/deploy-docs.yml +0 -0
  14. {hypernix-0.71.1 → hypernix-0.71.2}/.github/workflows/public-release.yml +0 -0
  15. {hypernix-0.71.1 → hypernix-0.71.2}/.github/workflows/release.yml +0 -0
  16. {hypernix-0.71.1 → hypernix-0.71.2}/.github/workflows/update-json-stats.yml +0 -0
  17. {hypernix-0.71.1 → hypernix-0.71.2}/LICENSE +0 -0
  18. {hypernix-0.71.1 → hypernix-0.71.2}/MANIFEST.in +0 -0
  19. {hypernix-0.71.1 → hypernix-0.71.2}/README.md +0 -0
  20. {hypernix-0.71.1 → hypernix-0.71.2}/assets/logo/Gemini_Generated_Image_nxfdm1nxfdm1nxfd-removebg-preview.png +0 -0
  21. {hypernix-0.71.1 → hypernix-0.71.2}/assets/logo/Gemini_Generated_Image_nxfdm1nxfdm1nxfd.png +0 -0
  22. {hypernix-0.71.1 → hypernix-0.71.2}/assets/logo.png +0 -0
  23. {hypernix-0.71.1 → hypernix-0.71.2}/assets/logo1.png +0 -0
  24. {hypernix-0.71.1 → hypernix-0.71.2}/examples/curriculum_eval_v0_70_4.py +0 -0
  25. {hypernix-0.71.1 → hypernix-0.71.2}/examples/custom_arch.py +0 -0
  26. {hypernix-0.71.1 → hypernix-0.71.2}/examples/quickstart.py +0 -0
  27. {hypernix-0.71.1 → hypernix-0.71.2}/examples/resilient_finetune_v0_70_4.py +0 -0
  28. {hypernix-0.71.1 → hypernix-0.71.2}/examples/run_hypernix.py +0 -0
  29. {hypernix-0.71.1 → hypernix-0.71.2}/examples/train hypernix 1 5 gtx1080.py +0 -0
  30. {hypernix-0.71.1 → hypernix-0.71.2}/examples/train_hypernix_0_1_5_evaluator.py +0 -0
  31. {hypernix-0.71.1 → hypernix-0.71.2}/examples/train_hypernix_1_5_gtx1080.py +0 -0
  32. {hypernix-0.71.1 → hypernix-0.71.2}/examples/upload_to_hub.py +0 -0
  33. {hypernix-0.71.1 → hypernix-0.71.2}/pytest.ini +0 -0
  34. {hypernix-0.71.1 → hypernix-0.71.2}/ruff.toml +0 -0
  35. {hypernix-0.71.1 → hypernix-0.71.2}/scripts/install_deps.sh +0 -0
  36. {hypernix-0.71.1 → hypernix-0.71.2}/scripts/install_macos_legacy.sh +0 -0
  37. {hypernix-0.71.1 → hypernix-0.71.2}/scripts/quantize_i7_7660u.sh +0 -0
  38. {hypernix-0.71.1 → hypernix-0.71.2}/setup.py +0 -0
  39. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/__main__.py +0 -0
  40. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/abbicus.py +0 -0
  41. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/apron.py +0 -0
  42. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/arch.py +0 -0
  43. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/assistant.py +0 -0
  44. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/bell.py +0 -0
  45. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/blender.py +0 -0
  46. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/brewer.py +0 -0
  47. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/cake_pan.py +0 -0
  48. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/camouflage.py +0 -0
  49. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/cardboard_box.py +0 -0
  50. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/cctvtop.py +0 -0
  51. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/cli.py +0 -0
  52. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/coffee_maker.py +0 -0
  53. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/compactor.py +0 -0
  54. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/compute_framework.py +0 -0
  55. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/config.py +0 -0
  56. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/convert.py +0 -0
  57. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/cookbook.py +0 -0
  58. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/cutting_board.py +0 -0
  59. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/deep_fryer.py +0 -0
  60. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/deps.py +0 -0
  61. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/dishwasher.py +0 -0
  62. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/doctor.py +0 -0
  63. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/download.py +0 -0
  64. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/espresso_maker.py +0 -0
  65. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/ethanol.py +0 -0
  66. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/fetcher.py +0 -0
  67. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/fizzle.py +0 -0
  68. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/flour.py +0 -0
  69. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/food_processor.py +0 -0
  70. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/freezer.py +0 -0
  71. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/gatekeeper.py +0 -0
  72. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/generate.py +0 -0
  73. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/gkey_cli.py +0 -0
  74. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/hyper_log.py +0 -0
  75. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/industrial_range.py +0 -0
  76. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/injection.py +0 -0
  77. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/instant_pot.py +0 -0
  78. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/keymaster.py +0 -0
  79. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/lazy_suzan.py +0 -0
  80. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/lunchbox.py +0 -0
  81. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/map.py +0 -0
  82. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/mediocre_fridge.py +0 -0
  83. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/menu.py +0 -0
  84. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/microwave.py +0 -0
  85. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/mtp.py +0 -0
  86. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/nano_nano.py +0 -0
  87. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/net.py +0 -0
  88. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/new_fridge.py +0 -0
  89. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/new_range.py +0 -0
  90. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/old_fridge.py +0 -0
  91. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/old_oven.py +0 -0
  92. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/old_range.py +0 -0
  93. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/optimizer_framework.py +0 -0
  94. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/outage.py +0 -0
  95. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/pans.py +0 -0
  96. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/pepper_shaker.py +0 -0
  97. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/plasma.py +0 -0
  98. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/pressure_cooker.py +0 -0
  99. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/pressure_cooker_v3.py +0 -0
  100. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/pressure_cooker_v4.py +0 -0
  101. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/pressure_cooker_v5.py +0 -0
  102. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/pressure_cooker_v5s.py +0 -0
  103. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/protect.py +0 -0
  104. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/py.typed +0 -0
  105. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/qa.py +0 -0
  106. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/quantize.py +0 -0
  107. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/recipe_book.py +0 -0
  108. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/salt_shaker.py +0 -0
  109. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/scavenger.py +0 -0
  110. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/sink.py +0 -0
  111. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/smoke_alarm.py +0 -0
  112. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/smoker.py +0 -0
  113. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/spinner.py +0 -0
  114. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/stml.py +0 -0
  115. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/strainer.py +0 -0
  116. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/table.py +0 -0
  117. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/thermometer.py +0 -0
  118. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/timer.py +0 -0
  119. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/toaster.py +0 -0
  120. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/torch_compat.py +0 -0
  121. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/train.py +0 -0
  122. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/tupperware.py +0 -0
  123. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/tv.py +0 -0
  124. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/tvtop.py +0 -0
  125. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/tvtop_plus_plus.py +0 -0
  126. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/upload.py +0 -0
  127. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/ups.py +0 -0
  128. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/utils.py +0 -0
  129. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/vera.py +0 -0
  130. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/version_launcher.py +0 -0
  131. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/webui.py +0 -0
  132. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/webui_static/app.js +0 -0
  133. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/webui_static/index.html +0 -0
  134. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/webui_static/style.css +0 -0
  135. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/whisk.py +0 -0
  136. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/wiki_cli.py +0 -0
  137. {hypernix-0.71.1 → hypernix-0.71.2}/src/hypernix/workshop.py +0 -0
  138. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_alarms_and_presets.py +0 -0
  139. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_arch_mapping.py +0 -0
  140. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_cli_integration.py +0 -0
  141. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_coverage_beef.py +0 -0
  142. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_deps_and_windows.py +0 -0
  143. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_fetcher.py +0 -0
  144. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_freezer.py +0 -0
  145. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_fridges.py +0 -0
  146. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_install_pin.py +0 -0
  147. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_kitchen_v044.py +0 -0
  148. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_kitchen_v045.py +0 -0
  149. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_lazy_suzan.py +0 -0
  150. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_lint_regressions.py +0 -0
  151. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_lunchbox.py +0 -0
  152. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_map.py +0 -0
  153. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_new_archs_v035.py +0 -0
  154. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_nix_fallback.py +0 -0
  155. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_old_oven.py +0 -0
  156. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_pressure_cooker_v048.py +0 -0
  157. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_pressure_cooker_v3.py +0 -0
  158. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_quantize_v0703.py +0 -0
  159. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_ranges.py +0 -0
  160. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_shakers_and_torchcompat.py +0 -0
  161. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_snapshot_roundtrip.py +0 -0
  162. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_tupperware.py +0 -0
  163. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_tvtop_plus_plus_comprehensive.py +0 -0
  164. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_v031_chat_and_archs.py +0 -0
  165. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_v047_deep_fryer_cake_pan_presets.py +0 -0
  166. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_v050.py +0 -0
  167. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_v051.py +0 -0
  168. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_v051_1.py +0 -0
  169. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_v051_3.py +0 -0
  170. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_v051_4.py +0 -0
  171. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_v052_5.py +0 -0
  172. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_v052_6.py +0 -0
  173. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_v060.py +0 -0
  174. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_v061_1.py +0 -0
  175. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_v061_2.py +0 -0
  176. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_v061_b1.py +0 -0
  177. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_v0703_additional.py +0 -0
  178. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_v0704_features.py +0 -0
  179. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_v0704_tvtop_plus_plus.py +0 -0
  180. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_v0704b11_features.py +0 -0
  181. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_v0704b12_cctvtop.py +0 -0
  182. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_v0705_all.py +0 -0
  183. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_v0710_gatekeeper_keymaster.py +0 -0
  184. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_v0711_border_fix.py +0 -0
  185. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_version_launcher.py +0 -0
  186. {hypernix-0.71.1 → hypernix-0.71.2}/tests/test_webui.py +0 -0
  187. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Abbicus.md +0 -0
  188. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Alarms.md +0 -0
  189. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Apron.md +0 -0
  190. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Architectures.md +0 -0
  191. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Bell.md +0 -0
  192. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Blender.md +0 -0
  193. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/CLI.md +0 -0
  194. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/CakePan.md +0 -0
  195. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Camouflage.md +0 -0
  196. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Changelog.md +0 -0
  197. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/CoffeeMaker.md +0 -0
  198. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Convert.md +0 -0
  199. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Cookbook.md +0 -0
  200. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Countertop.md +0 -0
  201. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/CuttingBoard.md +0 -0
  202. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Dashboards.md +0 -0
  203. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/DeepFryer.md +0 -0
  204. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Download.md +0 -0
  205. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/EspressoMaker.md +0 -0
  206. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Flour.md +0 -0
  207. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/FoodProcessor.md +0 -0
  208. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Frameworks.md +0 -0
  209. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Freezer.md +0 -0
  210. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Fridges.md +0 -0
  211. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Home.md +0 -0
  212. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/HyperLog.md +0 -0
  213. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Kitchen.md +0 -0
  214. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Lunchbox.md +0 -0
  215. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/MTP.md +0 -0
  216. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Menu.md +0 -0
  217. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Microwave.md +0 -0
  218. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Optimizers.md +0 -0
  219. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Ovens.md +0 -0
  220. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Pans.md +0 -0
  221. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Pascal.md +0 -0
  222. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/PipelineMechanics.md +0 -0
  223. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Pressure-Cooker-V3.md +0 -0
  224. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Pressure-Cooker-V4.md +0 -0
  225. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Pressure-Cooker-V5.md +0 -0
  226. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Quantization.md +0 -0
  227. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Ranges.md +0 -0
  228. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/RecipeBook.md +0 -0
  229. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Roadmap.md +0 -0
  230. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/STML.md +0 -0
  231. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Scavenger.md +0 -0
  232. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Shakers.md +0 -0
  233. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Smoker.md +0 -0
  234. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Toaster.md +0 -0
  235. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Training.md +0 -0
  236. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Tupperware.md +0 -0
  237. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Vera.md +0 -0
  238. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Whisk.md +0 -0
  239. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/Workshop.md +0 -0
  240. {hypernix-0.71.1 → hypernix-0.71.2}/wiki/macOS-legacy.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hypernix
3
- Version: 0.71.1
3
+ Version: 0.71.2
4
4
  Summary: Download and quantize the HyperNix PyTorch model to GGUF (fp32/fp16/Q8_0/Q6_K/Q4_K_M).
5
5
  Home-page: https://github.com/minerofthesoal/hypernix-pip
6
6
  Author: HyperNix contributors
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "hypernix"
7
- version = "0.71.1"
7
+ version = "0.71.2"
8
8
  description = "Download and quantize the HyperNix PyTorch model to GGUF (fp32/fp16/Q8_0/Q6_K/Q4_K_M)."
9
9
  readme = { file = "README.md", content-type = "text/markdown" }
10
10
  license = { text = "Apache-2.0" }
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = hypernix
3
- version = 0.71.1
3
+ version = 0.71.2
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
@@ -61,7 +61,7 @@ from __future__ import annotations
61
61
  import importlib
62
62
  from typing import TYPE_CHECKING, Any
63
63
 
64
- __version__ = "0.71.1"
64
+ __version__ = "0.71.2"
65
65
  DEFAULT_REPO_ID = "ray0rf1re/hyper-Nix.2"
66
66
  DEFAULT_MODEL = "qwen3.5-4b" # New default model
67
67
 
@@ -196,6 +196,9 @@ class Countertop:
196
196
  max_history_tokens: int | None = None
197
197
  bell: Bell | None = None
198
198
  flour: Flour | None = None
199
+ t1_key: str | None = None
200
+ keymaster: Any = None
201
+ gatekeeper: Any = None
199
202
  sampling: dict[str, Any] = field(default_factory=dict)
200
203
  history: list[dict[str, str]] = field(default_factory=list)
201
204
 
@@ -207,6 +210,35 @@ class Countertop:
207
210
  # streamed generation too.
208
211
  if self.flour is not None and self.bell is not None and self.bell.flour is None:
209
212
  self.bell.flour = self.flour
213
+ self._t1_meta = None
214
+ if self.t1_key:
215
+ self.authenticate_t1(self.t1_key)
216
+
217
+ def authenticate_t1(self, t1_key: str) -> Any:
218
+ """Authenticate and bind a T1 API key to this Countertop session."""
219
+ from .gatekeeper import Gatekeeper
220
+ from .keymaster import Keymaster
221
+
222
+ if self.keymaster is None:
223
+ self.keymaster = Keymaster()
224
+ if self.gatekeeper is None:
225
+ self.gatekeeper = Gatekeeper(keymaster=self.keymaster)
226
+
227
+ self.t1_key = t1_key
228
+ self._t1_meta = self.gatekeeper.authenticate(t1_key)
229
+ return self._t1_meta
230
+
231
+ @property
232
+ def t1_meta(self) -> Any | None:
233
+ """Return the authenticated T1 key metadata, if bound."""
234
+ return getattr(self, "_t1_meta", None)
235
+
236
+ def t1_stats(self) -> dict[str, Any]:
237
+ """Return Gatekeeper usage statistics for the bound T1 key."""
238
+ meta = self.t1_meta
239
+ if meta and self.gatekeeper:
240
+ return self.gatekeeper.get_stats(meta.key_id)
241
+ return {}
210
242
 
211
243
  # ------------------------------------------------------------------
212
244
  # Public API
@@ -224,6 +256,15 @@ class Countertop:
224
256
  ) -> str:
225
257
  """Append ``user`` to the transcript, generate a reply, append
226
258
  the reply, return it."""
259
+ meta = getattr(self, "_t1_meta", None)
260
+ if meta and self.gatekeeper:
261
+ est_tokens = len(user) // 4 + 10
262
+ self.gatekeeper.check_quota(
263
+ meta.key_id,
264
+ endpoint="/chat",
265
+ tokens_requested=est_tokens,
266
+ )
267
+
227
268
  self.history.append({"role": "user", "content": user})
228
269
  self._trim()
229
270
  kwargs: dict[str, Any] = dict(self.sampling)
@@ -247,6 +288,17 @@ class Countertop:
247
288
  if self.flour is not None:
248
289
  reply = self.flour.clean_reply(reply)
249
290
  self.history.append({"role": "assistant", "content": reply})
291
+
292
+ if meta and self.gatekeeper:
293
+ used_tokens = (len(user) + len(reply)) // 4 + 1
294
+ model_name = str(getattr(self.oven, "repo_id", "hypernix-t1"))
295
+ self.gatekeeper.record_usage(
296
+ meta.key_id,
297
+ endpoint="/chat",
298
+ model=model_name,
299
+ tokens_used=used_tokens,
300
+ )
301
+
250
302
  return reply
251
303
 
252
304
  def reset(self) -> None:
@@ -365,6 +417,9 @@ def countertop(
365
417
  max_history_tokens: int | None = None,
366
418
  bell: Bell | None = None,
367
419
  flour: Flour | None = None,
420
+ t1_key: str | None = None,
421
+ keymaster: Any = None,
422
+ gatekeeper: Any = None,
368
423
  **sampling: Any,
369
424
  ) -> Countertop:
370
425
  """Build a :class:`Countertop`.
@@ -372,7 +427,8 @@ def countertop(
372
427
  ``persona`` is a shortcut for picking a system prompt by name from
373
428
  :data:`hypernix.menu.MENU` — equivalent to passing
374
429
  ``system=MENU.get(persona)`` but avoids the import dance at the
375
- call site.
430
+ call site. Pass ``t1_key`` to enforce Gatekeeper quotas and track
431
+ usage for T1 API keys.
376
432
  """
377
433
  if persona is not None:
378
434
  if system is not None:
@@ -386,6 +442,9 @@ def countertop(
386
442
  max_history_tokens=max_history_tokens,
387
443
  bell=bell,
388
444
  flour=flour,
445
+ t1_key=t1_key,
446
+ keymaster=keymaster,
447
+ gatekeeper=gatekeeper,
389
448
  sampling=sampling,
390
449
  )
391
450