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.
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/PKG-INFO +1 -1
- featrixsphere-0.2.4983/VERSION +1 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/featrix-update.py +38 -8
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/featrixsphere/__init__.py +1 -1
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/featrixsphere/client.py +426 -123
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/featrixsphere.egg-info/PKG-INFO +1 -1
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/featrixsphere.egg-info/SOURCES.txt +16 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/requirements.txt +1 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/api.py +1229 -1283
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/celery_app.py +1628 -328
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/config.py +0 -1
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/event_log.py +36 -70
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/featrix_watchdog.py +313 -9
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/celery_job_recovery.py +388 -23
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/distribution_shift_detector.py +61 -19
- featrixsphere-0.2.4983/src/lib/embedding_space_io.py +24 -0
- featrixsphere-0.2.4983/src/lib/es_projections.py +186 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/es_training.py +534 -55
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/es_training_wrapper.py +29 -28
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/dataloader_utils.py +304 -27
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/detect.py +1 -0
- featrixsphere-0.2.4983/src/lib/featrix/neural/dynamic_relationship_extractor.py +1984 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/embedded_space.py +6981 -3939
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/embedding_quality.py +1 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/embedding_space_utils.py +113 -2
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/encoders.py +586 -52
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/exceptions.py +27 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/featrix_csv.py +2 -2
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/featrix_token.py +6 -1
- featrixsphere-0.2.4983/src/lib/featrix/neural/feature_effectiveness_tracker.py +350 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/gpu_utils.py +573 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/guardrails.py +10 -1
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/hybrid_column_detector.py +68 -28
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/input_data_set.py +25 -14
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/io_utils.py +156 -33
- featrixsphere-0.2.4983/src/lib/featrix/neural/llm/schema_analyzer.py +923 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/local_string_cache.py +9 -5
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/logging_config.py +91 -13
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/model_config.py +45 -15
- featrixsphere-0.2.4983/src/lib/featrix/neural/multi_table_dataset.py +336 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/network_viz.py +1 -2
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/model_advisor.py +106 -36
- featrixsphere-0.2.4983/src/lib/featrix/neural/qa/test_adaptive_loss_benchmark.py +385 -0
- featrixsphere-0.2.4983/src/lib/featrix/neural/qa/test_extend_embedding_space.py +392 -0
- featrixsphere-0.2.4983/src/lib/featrix/neural/qa/test_feature_engineering_prediction.py +398 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_monitor_integration.py +13 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_predict_during_training.py +6 -7
- featrixsphere-0.2.4983/src/lib/featrix/neural/qa/test_relationship_extractor_integration.py +485 -0
- featrixsphere-0.2.4983/src/lib/featrix/neural/qa/test_relationship_extractor_mixed_types.py +619 -0
- featrixsphere-0.2.4983/src/lib/featrix/neural/qa/test_set_encoder_strategies.py +415 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_training_monitor.py +13 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/relationship_estimator.py +238 -3
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/relationship_performance.py +4 -3
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/scalar_codec.py +332 -66
- featrixsphere-0.2.4983/src/lib/featrix/neural/set_codec.py +1615 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/setlist_codec.py +8 -2
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/simple_mlp.py +12 -0
- featrixsphere-0.2.4983/src/lib/featrix/neural/simple_string_cache.py +1028 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/single_predictor.py +6144 -2096
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/sphere_config.py +60 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/string_analysis.py +235 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/string_cache.py +141 -11
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/string_codec.py +618 -354
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/training_banner.py +37 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/training_exceptions.py +24 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/training_logger.py +207 -19
- featrixsphere-0.2.4983/src/lib/featrix/neural/training_timeline.py +664 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/transformer_encoder.py +129 -71
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/utils.py +167 -12
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/vector_codec.py +8 -2
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/job_manager.py +353 -2
- featrixsphere-0.2.4983/src/lib/knn_training.py +241 -0
- featrixsphere-0.2.4983/src/lib/meta_learning_client.py +882 -0
- featrixsphere-0.2.4983/src/lib/model_card_repair.py +178 -0
- featrixsphere-0.2.4983/src/lib/model_repair.py +318 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/pre_analysis_wrapper.py +3 -1
- featrixsphere-0.2.4983/src/lib/quick_architecture_search.py +423 -0
- featrixsphere-0.2.4983/src/lib/session_chains.py +1336 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/session_manager.py +735 -263
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/single_predictor_cv.py +43 -11
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/single_predictor_training.py +1074 -167
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/sp_training_wrapper.py +1 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/structureddata.py +16 -61
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/system_health_monitor.py +216 -12
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/training_monitor.py +500 -83
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/utils.py +1 -3
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/vector_db.py +36 -4
- featrixsphere-0.2.4983/src/load_and_test_model.py +397 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/node-install.sh +458 -68
- featrixsphere-0.2.4983/src/prediction_client.py +147 -0
- featrixsphere-0.2.4983/src/prediction_server.py +337 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/query_schema_worker.py +14 -52
- featrixsphere-0.2.4983/src/regenerate_training_movie.py +460 -0
- featrixsphere-0.2.4983/src/repair_model.py +89 -0
- featrixsphere-0.2.4983/src/resubmit_es_completion.py +682 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/run_api_server.sh +41 -17
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/slack.py +14 -5
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/start_celery_gpu_worker.sh +30 -12
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/system_monitor.py +35 -3
- featrixsphere-0.2.4983/tests/test_client_sessions.py +665 -0
- featrixsphere-0.2.3737/VERSION +0 -1
- featrixsphere-0.2.3737/src/lib/es_projections.py +0 -124
- featrixsphere-0.2.3737/src/lib/featrix/neural/llm/schema_analyzer.py +0 -143
- featrixsphere-0.2.3737/src/lib/featrix/neural/multi_table_dataset.py +0 -222
- featrixsphere-0.2.3737/src/lib/featrix/neural/qa/test_extend_embedding_space.py +0 -420
- featrixsphere-0.2.3737/src/lib/featrix/neural/set_codec.py +0 -895
- featrixsphere-0.2.3737/src/lib/featrix/neural/simple_string_cache.py +0 -503
- featrixsphere-0.2.3737/src/lib/knn_training.py +0 -114
- featrixsphere-0.2.3737/src/lib/meta_learning_client.py +0 -339
- featrixsphere-0.2.3737/src/lib/quick_architecture_search.py +0 -428
- featrixsphere-0.2.3737/src/lib/session_chains.py +0 -783
- featrixsphere-0.2.3737/src/regenerate_training_movie.py +0 -268
- featrixsphere-0.2.3737/tests/test_client_sessions.py +0 -268
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/MANIFEST.in +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/README.md +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/featrixsphere/test_client.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/featrixsphere.egg-info/dependency_links.txt +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/featrixsphere.egg-info/entry_points.txt +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/featrixsphere.egg-info/not-zip-safe +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/featrixsphere.egg-info/requires.txt +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/featrixsphere.egg-info/top_level.txt +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/nv-install.sh +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/setup.cfg +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/setup.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/auto_upgrade_monitor.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/build_version.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/demo_existing_model.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/demo_label_updates.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/deploy.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/deploy_cache_debug.sh +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/ensure_watchdog_running.sh +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/error_tracker.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/example_api_usage.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/example_prediction_feedback.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/example_train_predictor.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/gc_cleanup.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/api_event_retry.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/convergence_monitor.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/crash_tracker.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/epoch_projections.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/__init__.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/__init__.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/calibration_utils.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/classification_metrics.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/config.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/data_frame_data_set.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/domain_codec.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/dropout_scheduler.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/embedding_lr_scheduler.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/embedding_utils.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/enrich.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/es_projection.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/featrix_json.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/featrix_module_dict.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/feature_engineer.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/feature_suggestion_tracker.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/graph_encoder.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/graph_encoder_training.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/hubspot_free_domains_list_may_2025.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/hybrid_encoders.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/input_data_file.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/integrity.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/json_cache.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/json_codec.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/llm/__init__.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/mask_tracker.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/model_hash.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/movie_frame_task.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/multi_table_embedding_space.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/platform_utils.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/prng_control.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/demo_advisor_decisions.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/example_complete_workflow.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/generate_focal_report.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/show_results.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_adaptive_training.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_checkpoint_dict_reconstruction.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_confusion_matrix_metadata.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_embedding_quality.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_embedding_space.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_focal_comparison.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_focal_comparison_enhanced.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_focal_loss_single_predictor.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_hybrid_columns.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_label_smoothing.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_piecewise_epochs.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_timeline_quick.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/test_warning_tracking.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/qa/visualize_training_timeline.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/relationship_complexity.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/relationship_extractor.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/relationship_preanalysis.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/relationship_search.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/schema_history.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/single_predictor_mlp.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/sqlite_utils.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/stopwatch.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/string_list_codec.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/test_graph_encoder.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/timestamp_codec.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/training_context_manager.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/training_event.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/training_history_db.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/url_codec.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/url_parser.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix/neural/world_data.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/featrix_debug.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/json_encoder_cache.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/queue_manager.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/sphere_config.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/webhook_helpers.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/lib/weightwatcher_tracking.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/llm_client.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/manage_churro.sh +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/migrate_string_cache_naming.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/neural.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/prediction_drift_monitor.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/prediction_persistence_worker.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/quick_test_deployment.sh +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/recreate_session.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/redis_job_progress.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/redis_prediction_cli.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/redis_prediction_store.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/render_sphere.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/repair_checkpoint.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/send_email.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/standalone_prediction.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/start_celery_cpu_worker.sh +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/start_celery_movie_worker.sh +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/tail-watch.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/test_api_client.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/test_complete_workflow.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/test_json_tables_prediction.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/test_redis_predictions.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/test_server_connection.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/test_session_models.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/test_single_predictor_api.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/test_upload_endpoint.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/tree.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/utils.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/src/version.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/tests/test_client_data.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/tests/test_client_predictions.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/tests/test_client_training.py +0 -0
- {featrixsphere-0.2.3737 → featrixsphere-0.2.4983}/tests/test_local_integration.py +0 -0
|
@@ -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
|
-
#
|
|
372
|
-
#
|
|
373
|
-
|
|
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
|
-
#
|
|
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,
|