featrixsphere 0.2.3737__tar.gz → 0.2.4983__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 (245) hide show
  1. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/PKG-INFO +1 -1
  2. featrixsphere-0.2.4983/VERSION +1 -0
  3. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/featrix-update.py +38 -8
  4. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/featrixsphere/__init__.py +1 -1
  5. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/featrixsphere/client.py +426 -123
  6. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/featrixsphere.egg-info/PKG-INFO +1 -1
  7. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/featrixsphere.egg-info/SOURCES.txt +16 -0
  8. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/requirements.txt +1 -0
  9. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/api.py +1229 -1283
  10. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/celery_app.py +1628 -328
  11. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/config.py +0 -1
  12. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/event_log.py +36 -70
  13. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/featrix_watchdog.py +313 -9
  14. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/celery_job_recovery.py +388 -23
  15. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/distribution_shift_detector.py +61 -19
  16. featrixsphere-0.2.4983/src/lib/embedding_space_io.py +24 -0
  17. featrixsphere-0.2.4983/src/lib/es_projections.py +186 -0
  18. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/es_training.py +534 -55
  19. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/es_training_wrapper.py +29 -28
  20. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/dataloader_utils.py +304 -27
  21. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/detect.py +1 -0
  22. featrixsphere-0.2.4983/src/lib/featrix/neural/dynamic_relationship_extractor.py +1984 -0
  23. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/embedded_space.py +6981 -3939
  24. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/embedding_quality.py +1 -0
  25. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/embedding_space_utils.py +113 -2
  26. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/encoders.py +586 -52
  27. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/exceptions.py +27 -0
  28. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/featrix_csv.py +2 -2
  29. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/featrix_token.py +6 -1
  30. featrixsphere-0.2.4983/src/lib/featrix/neural/feature_effectiveness_tracker.py +350 -0
  31. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/gpu_utils.py +573 -0
  32. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/guardrails.py +10 -1
  33. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/hybrid_column_detector.py +68 -28
  34. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/input_data_set.py +25 -14
  35. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/io_utils.py +156 -33
  36. featrixsphere-0.2.4983/src/lib/featrix/neural/llm/schema_analyzer.py +923 -0
  37. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/local_string_cache.py +9 -5
  38. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/logging_config.py +91 -13
  39. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/model_config.py +45 -15
  40. featrixsphere-0.2.4983/src/lib/featrix/neural/multi_table_dataset.py +336 -0
  41. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/network_viz.py +1 -2
  42. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/model_advisor.py +106 -36
  43. featrixsphere-0.2.4983/src/lib/featrix/neural/qa/test_adaptive_loss_benchmark.py +385 -0
  44. featrixsphere-0.2.4983/src/lib/featrix/neural/qa/test_extend_embedding_space.py +392 -0
  45. featrixsphere-0.2.4983/src/lib/featrix/neural/qa/test_feature_engineering_prediction.py +398 -0
  46. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_monitor_integration.py +13 -0
  47. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_predict_during_training.py +6 -7
  48. featrixsphere-0.2.4983/src/lib/featrix/neural/qa/test_relationship_extractor_integration.py +485 -0
  49. featrixsphere-0.2.4983/src/lib/featrix/neural/qa/test_relationship_extractor_mixed_types.py +619 -0
  50. featrixsphere-0.2.4983/src/lib/featrix/neural/qa/test_set_encoder_strategies.py +415 -0
  51. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_training_monitor.py +13 -0
  52. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/relationship_estimator.py +238 -3
  53. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/relationship_performance.py +4 -3
  54. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/scalar_codec.py +332 -66
  55. featrixsphere-0.2.4983/src/lib/featrix/neural/set_codec.py +1615 -0
  56. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/setlist_codec.py +8 -2
  57. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/simple_mlp.py +12 -0
  58. featrixsphere-0.2.4983/src/lib/featrix/neural/simple_string_cache.py +1028 -0
  59. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/single_predictor.py +6144 -2096
  60. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/sphere_config.py +60 -0
  61. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/string_analysis.py +235 -0
  62. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/string_cache.py +141 -11
  63. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/string_codec.py +618 -354
  64. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/training_banner.py +37 -0
  65. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/training_exceptions.py +24 -0
  66. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/training_logger.py +207 -19
  67. featrixsphere-0.2.4983/src/lib/featrix/neural/training_timeline.py +664 -0
  68. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/transformer_encoder.py +129 -71
  69. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/utils.py +167 -12
  70. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/vector_codec.py +8 -2
  71. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/job_manager.py +353 -2
  72. featrixsphere-0.2.4983/src/lib/knn_training.py +241 -0
  73. featrixsphere-0.2.4983/src/lib/meta_learning_client.py +882 -0
  74. featrixsphere-0.2.4983/src/lib/model_card_repair.py +178 -0
  75. featrixsphere-0.2.4983/src/lib/model_repair.py +318 -0
  76. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/pre_analysis_wrapper.py +3 -1
  77. featrixsphere-0.2.4983/src/lib/quick_architecture_search.py +423 -0
  78. featrixsphere-0.2.4983/src/lib/session_chains.py +1336 -0
  79. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/session_manager.py +735 -263
  80. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/single_predictor_cv.py +43 -11
  81. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/single_predictor_training.py +1074 -167
  82. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/sp_training_wrapper.py +1 -0
  83. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/structureddata.py +16 -61
  84. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/system_health_monitor.py +216 -12
  85. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/training_monitor.py +500 -83
  86. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/utils.py +1 -3
  87. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/vector_db.py +36 -4
  88. featrixsphere-0.2.4983/src/load_and_test_model.py +397 -0
  89. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/node-install.sh +458 -68
  90. featrixsphere-0.2.4983/src/prediction_client.py +147 -0
  91. featrixsphere-0.2.4983/src/prediction_server.py +337 -0
  92. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/query_schema_worker.py +14 -52
  93. featrixsphere-0.2.4983/src/regenerate_training_movie.py +460 -0
  94. featrixsphere-0.2.4983/src/repair_model.py +89 -0
  95. featrixsphere-0.2.4983/src/resubmit_es_completion.py +682 -0
  96. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/run_api_server.sh +41 -17
  97. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/slack.py +14 -5
  98. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/start_celery_gpu_worker.sh +30 -12
  99. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/system_monitor.py +35 -3
  100. featrixsphere-0.2.4983/tests/test_client_sessions.py +665 -0
  101. featrixsphere-0.2.3737/VERSION +0 -1
  102. featrixsphere-0.2.3737/src/lib/es_projections.py +0 -124
  103. featrixsphere-0.2.3737/src/lib/featrix/neural/llm/schema_analyzer.py +0 -143
  104. featrixsphere-0.2.3737/src/lib/featrix/neural/multi_table_dataset.py +0 -222
  105. featrixsphere-0.2.3737/src/lib/featrix/neural/qa/test_extend_embedding_space.py +0 -420
  106. featrixsphere-0.2.3737/src/lib/featrix/neural/set_codec.py +0 -895
  107. featrixsphere-0.2.3737/src/lib/featrix/neural/simple_string_cache.py +0 -503
  108. featrixsphere-0.2.3737/src/lib/knn_training.py +0 -114
  109. featrixsphere-0.2.3737/src/lib/meta_learning_client.py +0 -339
  110. featrixsphere-0.2.3737/src/lib/quick_architecture_search.py +0 -428
  111. featrixsphere-0.2.3737/src/lib/session_chains.py +0 -783
  112. featrixsphere-0.2.3737/src/regenerate_training_movie.py +0 -268
  113. featrixsphere-0.2.3737/tests/test_client_sessions.py +0 -268
  114. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/MANIFEST.in +0 -0
  115. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/README.md +0 -0
  116. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/featrixsphere/test_client.py +0 -0
  117. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/featrixsphere.egg-info/dependency_links.txt +0 -0
  118. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/featrixsphere.egg-info/entry_points.txt +0 -0
  119. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/featrixsphere.egg-info/not-zip-safe +0 -0
  120. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/featrixsphere.egg-info/requires.txt +0 -0
  121. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/featrixsphere.egg-info/top_level.txt +0 -0
  122. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/nv-install.sh +0 -0
  123. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/setup.cfg +0 -0
  124. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/setup.py +0 -0
  125. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/auto_upgrade_monitor.py +0 -0
  126. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/build_version.py +0 -0
  127. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/demo_existing_model.py +0 -0
  128. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/demo_label_updates.py +0 -0
  129. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/deploy.py +0 -0
  130. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/deploy_cache_debug.sh +0 -0
  131. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/ensure_watchdog_running.sh +0 -0
  132. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/error_tracker.py +0 -0
  133. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/example_api_usage.py +0 -0
  134. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/example_prediction_feedback.py +0 -0
  135. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/example_train_predictor.py +0 -0
  136. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/gc_cleanup.py +0 -0
  137. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/api_event_retry.py +0 -0
  138. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/convergence_monitor.py +0 -0
  139. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/crash_tracker.py +0 -0
  140. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/epoch_projections.py +0 -0
  141. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/__init__.py +0 -0
  142. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/__init__.py +0 -0
  143. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/calibration_utils.py +0 -0
  144. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/classification_metrics.py +0 -0
  145. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/config.py +0 -0
  146. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/data_frame_data_set.py +0 -0
  147. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/domain_codec.py +0 -0
  148. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/dropout_scheduler.py +0 -0
  149. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/embedding_lr_scheduler.py +0 -0
  150. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/embedding_utils.py +0 -0
  151. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/enrich.py +0 -0
  152. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/es_projection.py +0 -0
  153. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/featrix_json.py +0 -0
  154. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/featrix_module_dict.py +0 -0
  155. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/feature_engineer.py +0 -0
  156. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/feature_suggestion_tracker.py +0 -0
  157. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/graph_encoder.py +0 -0
  158. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/graph_encoder_training.py +0 -0
  159. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/hubspot_free_domains_list_may_2025.py +0 -0
  160. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/hybrid_encoders.py +0 -0
  161. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/input_data_file.py +0 -0
  162. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/integrity.py +0 -0
  163. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/json_cache.py +0 -0
  164. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/json_codec.py +0 -0
  165. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/llm/__init__.py +0 -0
  166. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/mask_tracker.py +0 -0
  167. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/model_hash.py +0 -0
  168. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/movie_frame_task.py +0 -0
  169. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/multi_table_embedding_space.py +0 -0
  170. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/platform_utils.py +0 -0
  171. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/prng_control.py +0 -0
  172. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/demo_advisor_decisions.py +0 -0
  173. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/example_complete_workflow.py +0 -0
  174. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/generate_focal_report.py +0 -0
  175. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/show_results.py +0 -0
  176. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_adaptive_training.py +0 -0
  177. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_checkpoint_dict_reconstruction.py +0 -0
  178. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_confusion_matrix_metadata.py +0 -0
  179. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_embedding_quality.py +0 -0
  180. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_embedding_space.py +0 -0
  181. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_focal_comparison.py +0 -0
  182. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_focal_comparison_enhanced.py +0 -0
  183. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_focal_loss_single_predictor.py +0 -0
  184. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_hybrid_columns.py +0 -0
  185. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_label_smoothing.py +0 -0
  186. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_piecewise_epochs.py +0 -0
  187. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_timeline_quick.py +0 -0
  188. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_warning_tracking.py +0 -0
  189. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/visualize_training_timeline.py +0 -0
  190. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/relationship_complexity.py +0 -0
  191. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/relationship_extractor.py +0 -0
  192. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/relationship_preanalysis.py +0 -0
  193. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/relationship_search.py +0 -0
  194. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/schema_history.py +0 -0
  195. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/single_predictor_mlp.py +0 -0
  196. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/sqlite_utils.py +0 -0
  197. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/stopwatch.py +0 -0
  198. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/string_list_codec.py +0 -0
  199. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/test_graph_encoder.py +0 -0
  200. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/timestamp_codec.py +0 -0
  201. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/training_context_manager.py +0 -0
  202. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/training_event.py +0 -0
  203. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/training_history_db.py +0 -0
  204. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/url_codec.py +0 -0
  205. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/url_parser.py +0 -0
  206. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/world_data.py +0 -0
  207. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix_debug.py +0 -0
  208. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/json_encoder_cache.py +0 -0
  209. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/queue_manager.py +0 -0
  210. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/sphere_config.py +0 -0
  211. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/webhook_helpers.py +0 -0
  212. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/weightwatcher_tracking.py +0 -0
  213. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/llm_client.py +0 -0
  214. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/manage_churro.sh +0 -0
  215. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/migrate_string_cache_naming.py +0 -0
  216. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/neural.py +0 -0
  217. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/prediction_drift_monitor.py +0 -0
  218. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/prediction_persistence_worker.py +0 -0
  219. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/quick_test_deployment.sh +0 -0
  220. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/recreate_session.py +0 -0
  221. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/redis_job_progress.py +0 -0
  222. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/redis_prediction_cli.py +0 -0
  223. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/redis_prediction_store.py +0 -0
  224. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/render_sphere.py +0 -0
  225. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/repair_checkpoint.py +0 -0
  226. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/send_email.py +0 -0
  227. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/standalone_prediction.py +0 -0
  228. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/start_celery_cpu_worker.sh +0 -0
  229. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/start_celery_movie_worker.sh +0 -0
  230. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/tail-watch.py +0 -0
  231. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/test_api_client.py +0 -0
  232. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/test_complete_workflow.py +0 -0
  233. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/test_json_tables_prediction.py +0 -0
  234. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/test_redis_predictions.py +0 -0
  235. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/test_server_connection.py +0 -0
  236. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/test_session_models.py +0 -0
  237. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/test_single_predictor_api.py +0 -0
  238. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/test_upload_endpoint.py +0 -0
  239. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/tree.py +0 -0
  240. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/utils.py +0 -0
  241. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/version.py +0 -0
  242. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/tests/test_client_data.py +0 -0
  243. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/tests/test_client_predictions.py +0 -0
  244. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/tests/test_client_training.py +0 -0
  245. {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/tests/test_local_integration.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: featrixsphere
3
- Version: 0.2.3737
3
+ Version: 0.2.4983
4
4
  Summary: Transform any CSV into a production-ready ML model in minutes, not months.
5
5
  Home-page: https://github.com/Featrix/sphere
6
6
  Author: Featrix
@@ -0,0 +1 @@
1
+ 0.2.4983
@@ -221,6 +221,21 @@ def find_newest_version(index: Dict[str, Any]) -> Optional[Dict[str, Any]]:
221
221
  return versioned_files[0]
222
222
 
223
223
 
224
+ def check_sbit_available() -> bool:
225
+ """Check if sbit exists and has setuid bit."""
226
+ sbit_path = Path("/sphere/app/sbit")
227
+ if not sbit_path.exists():
228
+ return False
229
+
230
+ # Check if file has setuid bit (stat.S_ISUID)
231
+ try:
232
+ stat_info = sbit_path.stat()
233
+ # Check if setuid bit is set (mode & 0o4000)
234
+ return (stat_info.st_mode & 0o4000) != 0
235
+ except Exception:
236
+ return False
237
+
238
+
224
239
  def install_package(package_file: Path, force: bool = False) -> bool:
225
240
  """
226
241
  Install a sphere-app package tarball.
@@ -368,9 +383,27 @@ def install_package(package_file: Path, force: bool = False) -> bool:
368
383
  package_hash = hash_match.group(1) if hash_match else None
369
384
 
370
385
  # node-install.sh REQUIRES root
371
- # Run directly with sudo bash to avoid version compatibility issues
372
- # Old versions of ffsh/sbit might not support the newer arguments
373
- cmd = ["sudo", "bash", str(install_script), "--force"]
386
+ # Must use sbit node-install (no password needed)
387
+ # Make script executable first
388
+ install_script.chmod(0o755)
389
+
390
+ # Check if sbit is available with setuid bit
391
+ if not check_sbit_available():
392
+ print()
393
+ print("\033[1;31m" + "=" * 80 + "\033[0m")
394
+ print("\033[1;31m" + "❌ ERROR: sbit not available or missing setuid bit" + "\033[0m")
395
+ print("\033[1;31m" + "=" * 80 + "\033[0m")
396
+ print()
397
+ print("Package installation requires sbit with setuid bit.")
398
+ print()
399
+ print("To fix:")
400
+ print(" sudo chown root:root /sphere/app/sbit")
401
+ print(" sudo chmod 4755 /sphere/app/sbit")
402
+ print()
403
+ return False
404
+
405
+ # Use sbit node-install (runs as root, no password needed)
406
+ cmd = ["/sphere/app/sbit", "node-install", str(install_script), "--force"]
374
407
 
375
408
  # Pass package version and hash to install script for accurate logging
376
409
  if package_version:
@@ -378,18 +411,15 @@ def install_package(package_file: Path, force: bool = False) -> bool:
378
411
  if package_hash:
379
412
  cmd.extend(["--package-hash", package_hash])
380
413
 
381
- # Make script executable
382
- install_script.chmod(0o755)
383
-
384
414
  print(f" Using --force flag (installing from package)")
385
415
  if package_version:
386
416
  print(f" Package version: {package_version}")
387
417
  if package_hash:
388
418
  print(f" Package hash: {package_hash}")
419
+ print(f" Using sbit node-install (no password required)")
389
420
 
390
421
  # Run the install script
391
- # CRITICAL: stdin=subprocess.DEVNULL prevents sudo from prompting for password
392
- # If sbit doesn't have setuid bit, deployment should fail fast instead of hanging
422
+ # sbit node-install runs as root (no password needed)
393
423
  # Don't capture output - let it stream to console in real-time
394
424
  result = subprocess.run(
395
425
  cmd,
@@ -38,7 +38,7 @@ Example:
38
38
  ... labels=['Experiment A', 'Experiment B'])
39
39
  """
40
40
 
41
- __version__ = "0.2.3737"
41
+ __version__ = "0.2.4983"
42
42
  __author__ = "Featrix"
43
43
  __email__ = "support@featrix.com"
44
44
  __license__ = "MIT"