mcli-framework 7.0.6__tar.gz → 7.1.1__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.
Potentially problematic release.
This version of mcli-framework might be problematic. Click here for more details.
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/.github/workflows/security.yml +2 -2
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/PKG-INFO +14 -3
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/pyproject.toml +21 -6
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/app/logs_cmd.py +42 -13
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/app/model_cmd.py +33 -6
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/services/lsh_client.py +1 -1
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/dashboard/app_integrated.py +173 -65
- mcli_framework-7.1.1/src/mcli/ml/predictions/prediction_engine.py +223 -0
- mcli_framework-7.1.1/src/mcli/mygroup/test_cmd.py +1 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/self/self_cmd.py +10 -5
- mcli_framework-7.1.1/src/mcli/self/test_cmd.py +1 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli_framework.egg-info/PKG-INFO +14 -3
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli_framework.egg-info/SOURCES.txt +66 -52
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli_framework.egg-info/requires.txt +13 -2
- mcli_framework-7.1.1/tests/cli/test_logs_cmd.py +284 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.1/tests/cli}/test_model_cmd.py +252 -1
- mcli_framework-7.1.1/tests/cli/test_self_cmd.py +1061 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/tests/conftest.py +14 -0
- mcli_framework-7.1.1/tests/e2e/test_model_workflow.py +145 -0
- mcli_framework-7.1.1/tests/e2e/test_new_user_workflow.py +141 -0
- mcli_framework-7.1.1/tests/e2e/test_update_workflow.py +194 -0
- mcli_framework-7.1.1/tests/fixtures/chat_fixtures.py +84 -0
- mcli_framework-7.1.1/tests/fixtures/cli_fixtures.py +91 -0
- mcli_framework-7.1.1/tests/fixtures/data_fixtures.py +100 -0
- mcli_framework-7.1.1/tests/fixtures/db_fixtures.py +95 -0
- mcli_framework-7.1.1/tests/fixtures/model_fixtures.py +69 -0
- mcli_framework-7.1.1/tests/integration/test_module_imports.py +160 -0
- mcli_framework-7.1.1/tests/unit/test_api_utils.py +116 -0
- mcli_framework-7.1.1/tests/unit/test_config.py +104 -0
- mcli_framework-7.1.1/tests/unit/test_dashboard_functions.py +266 -0
- mcli_framework-7.1.1/tests/unit/test_logger.py +218 -0
- mcli_framework-7.1.1/tests/unit/test_paths.py +197 -0
- mcli_framework-7.1.1/tests/unit/test_prediction_engine.py +490 -0
- mcli_framework-7.1.1/tests/unit/test_self_update.py +183 -0
- mcli_framework-7.1.1/tests/unit/test_toml_utils.py +194 -0
- mcli_framework-7.0.6/tests/pytest.ini +0 -9
- mcli_framework-7.0.6/tests/simple_integration_test.py +0 -163
- mcli_framework-7.0.6/tests/test_command_discovery.py +0 -295
- mcli_framework-7.0.6/tests/test_enhanced_chat.py +0 -276
- mcli_framework-7.0.6/tests/test_main_app_functions.py +0 -144
- mcli_framework-7.0.6/tests/test_self.py +0 -469
- mcli_framework-7.0.6/tests/test_utility_functions.py +0 -343
- mcli_framework-7.0.6/tests/test_utility_functions_simple.py +0 -107
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/.github/dependabot.yml +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/.github/workflows/build.yml +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/.github/workflows/ci.yml +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/.github/workflows/ml-pipeline.yml +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/.github/workflows/publish-self-hosted.yml +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/.github/workflows/publish.yml +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/.github/workflows/release.yml +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/.github/workflows/test.yml +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/LICENSE +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/MANIFEST.in +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/PERFORMANCE_OPTIMIZATIONS.md +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/README.md +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/mcli_rust/Cargo.toml +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/mcli_rust/src/command_parser.rs +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/mcli_rust/src/file_watcher.rs +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/mcli_rust/src/lib.rs +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/mcli_rust/src/process_manager.rs +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/mcli_rust/src/tfidf.rs +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/setup.cfg +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/app/chat_cmd.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/app/commands_cmd.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/app/completion_cmd.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/app/completion_helpers.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/app/cron_test_cmd.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/app/main.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/app/model/model.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/app/redis_cmd.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/app/video/video.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/app/visual_cmd.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/chat/chat.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/chat/command_rag.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/chat/enhanced_chat.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/chat/system_controller.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/chat/system_integration.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/cli.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/config.toml +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/api/api.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/api/daemon_client.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/api/daemon_client_local.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/api/daemon_decorator.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/api/mcli_decorators.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/auth/auth.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/auth/aws_manager.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/auth/azure_manager.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/auth/credential_manager.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/auth/gcp_manager.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/auth/key_manager.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/auth/mcli_manager.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/auth/token_manager.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/auth/token_util.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/config/config.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/discovery/__init__.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/discovery/command_discovery.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/erd/erd.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/erd/generate_graph.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/files/files.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/fs/fs.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/lib.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/logger/logger.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/paths.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/performance/optimizer.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/performance/rust_bridge.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/performance/uvloop_config.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/pickles/pickles.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/search/cached_vectorizer.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/services/data_pipeline.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/services/redis_service.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/shell/shell.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/toml/toml.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/ui/styling.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/ui/visual_effects.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/lib/watcher/watcher.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/api/app.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/api/middleware.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/api/routers/admin_router.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/api/routers/auth_router.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/api/routers/backtest_router.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/api/routers/data_router.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/api/routers/model_router.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/api/routers/monitoring_router.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/api/routers/portfolio_router.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/api/routers/prediction_router.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/api/routers/trade_router.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/api/routers/websocket_router.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/api/schemas.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/auth/auth_manager.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/auth/models.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/auth/permissions.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/backtesting/backtest_engine.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/backtesting/performance_metrics.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/cache.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/cli/main.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/config/settings.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/configs/dvc_config.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/configs/mlflow_config.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/configs/mlops_manager.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/dashboard/app.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/dashboard/app_supabase.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/dashboard/app_training.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/dashboard/cli.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/data_ingestion/api_connectors.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/data_ingestion/data_pipeline.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/data_ingestion/stream_processor.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/database/migrations/env.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/database/models.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/database/session.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/experimentation/ab_testing.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/features/ensemble_features.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/features/political_features.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/features/recommendation_engine.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/features/stock_features.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/features/test_feature_engineering.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/logging.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/mlops/data_versioning.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/mlops/experiment_tracker.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/mlops/model_serving.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/mlops/pipeline_orchestrator.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/models/base_models.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/models/ensemble_models.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/models/recommendation_models.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/models/test_models.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/monitoring/drift_detection.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/monitoring/metrics.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/optimization/portfolio_optimizer.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/preprocessing/data_cleaners.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/preprocessing/feature_extractors.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/preprocessing/ml_pipeline.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/preprocessing/politician_trading_preprocessor.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/preprocessing/test_preprocessing.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/scripts/populate_sample_data.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/tasks.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/tests/test_integration.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/ml/tests/test_training_dashboard.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/public/oi/oi.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/public/public.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/daemon/api_daemon.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/daemon/async_command_database.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/daemon/async_process_manager.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/daemon/client.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/daemon/commands.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/daemon/daemon.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/daemon/daemon_api.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/daemon/enhanced_daemon.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/daemon/process_cli.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/daemon/process_manager.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/daemon/test_daemon.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/dashboard/dashboard_cmd.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/docker/docker.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/file/file.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/gcloud/config.toml +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/gcloud/gcloud.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/git_commit/ai_service.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/git_commit/commands.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/lsh_integration.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/model_service/client.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/model_service/download_and_run_efficient_models.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/model_service/lightweight_embedder.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/model_service/lightweight_model_server.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/model_service/lightweight_test.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/model_service/model_service.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/model_service/ollama_efficient_runner.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/model_service/pdf_processor.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/model_service/test_efficient_runner.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/model_service/test_example.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/model_service/test_integration.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/model_service/test_new_features.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/openai/openai.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/politician_trading/commands.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/politician_trading/config.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/politician_trading/connectivity.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/politician_trading/data_sources.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/politician_trading/database.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/politician_trading/demo.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/politician_trading/models.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/politician_trading/monitoring.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/politician_trading/scrapers.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/politician_trading/scrapers_california.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/politician_trading/scrapers_eu.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/politician_trading/scrapers_uk.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/politician_trading/scrapers_us_states.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/politician_trading/supabase_functions.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/politician_trading/workflow.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/registry/registry.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/repo/repo.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/scheduler/commands.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/scheduler/cron_parser.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/scheduler/job.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/scheduler/monitor.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/scheduler/persistence.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/scheduler/scheduler.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/sync/sync_cmd.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/sync/test_cmd.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/videos/videos.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/wakatime/wakatime.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli/workflow/workflow.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli_framework.egg-info/dependency_links.txt +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli_framework.egg-info/entry_points.txt +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/src/mcli_framework.egg-info/top_level.txt +0 -0
- /mcli_framework-7.0.6/tests/test_all_cli.py → /mcli_framework-7.1.1/tests/cli/test_all_commands.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.1/tests/cli}/test_chat_cmd.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.1/tests/cli}/test_main_app.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/tests/demo_generate_graph.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/tests/demo_hierarchical_transform.py +0 -0
- /mcli_framework-7.0.6/tests/end_to_end_integration_test.py → /mcli_framework-7.1.1/tests/e2e/test_complete_workflows.py +0 -0
- /mcli_framework-7.0.6/tests/test_agent_functionality.py → /mcli_framework-7.1.1/tests/integration/test_agent.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.1/tests/integration}/test_california_scraper.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.1/tests/integration}/test_chat_client.py +0 -0
- /mcli_framework-7.0.6/tests/test_chat_system_control.py → /mcli_framework-7.1.1/tests/integration/test_chat_system.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.1/tests/integration}/test_congress_scraper.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.1/tests/integration}/test_daemon_client.py +0 -0
- /mcli_framework-7.0.6/tests/test_daemon.py → /mcli_framework-7.1.1/tests/integration/test_daemon_server.py +0 -0
- /mcli_framework-7.0.6/tests/test_webapp.py → /mcli_framework-7.1.1/tests/integration/test_flask_webapp.py +0 -0
- /mcli_framework-7.0.6/tests/test_gcloud.py → /mcli_framework-7.1.1/tests/integration/test_gcloud_services.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.1/tests/integration}/test_lsh_client.py +0 -0
- /mcli_framework-7.0.6/tests/test_lsh_integration.py → /mcli_framework-7.1.1/tests/integration/test_lsh_service.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.1/tests/integration}/test_ml_auth.py +0 -0
- /mcli_framework-7.0.6/tests/test_data_pipeline.py → /mcli_framework-7.1.1/tests/integration/test_ml_data_pipeline.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.1/tests/integration}/test_ml_models.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.1/tests/integration}/test_ml_pipeline.py +0 -0
- /mcli_framework-7.0.6/tests/test_oi.py → /mcli_framework-7.1.1/tests/integration/test_oi_service.py +0 -0
- /mcli_framework-7.0.6/tests/test_politician_trading_integration.py → /mcli_framework-7.1.1/tests/integration/test_politician_trading.py +0 -0
- /mcli_framework-7.0.6/tests/test_repo.py → /mcli_framework-7.1.1/tests/integration/test_repo_operations.py +0 -0
- /mcli_framework-7.0.6/tests/test_registry.py → /mcli_framework-7.1.1/tests/integration/test_service_registry.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.1/tests/integration}/test_uk_scraper.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.1/tests/integration}/test_us_states_scraper.py +0 -0
- /mcli_framework-7.0.6/tests/test_videos.py → /mcli_framework-7.1.1/tests/integration/test_video_processing.py +0 -0
- /mcli_framework-7.0.6/tests/test_wakatime.py → /mcli_framework-7.1.1/tests/integration/test_wakatime_api.py +0 -0
- /mcli_framework-7.0.6/tests/test_webapp_comprehensive.py → /mcli_framework-7.1.1/tests/integration/test_webapp_full.py +0 -0
- {mcli_framework-7.0.6/tests → mcli_framework-7.1.1/tests/integration}/test_workflow.py +0 -0
- /mcli_framework-7.0.6/tests/test_workflow_integration.py → /mcli_framework-7.1.1/tests/integration/test_workflow_commands.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/tests/run_tests.py +0 -0
- {mcli_framework-7.0.6 → mcli_framework-7.1.1}/tests/test_harness.py +0 -0
- /mcli_framework-7.0.6/tests/test_fix.py → /mcli_framework-7.1.1/tests/unit/test_bug_fixes.py +0 -0
- /mcli_framework-7.0.6/tests/test_optional_dependencies.py → /mcli_framework-7.1.1/tests/unit/test_dependencies.py +0 -0
- /mcli_framework-7.0.6/tests/test_erd.py → /mcli_framework-7.1.1/tests/unit/test_erd_generation.py +0 -0
- /mcli_framework-7.0.6/tests/test_generic_erd.py → /mcli_framework-7.1.1/tests/unit/test_erd_generic.py +0 -0
- /mcli_framework-7.0.6/tests/test_erd_import.py → /mcli_framework-7.1.1/tests/unit/test_erd_imports.py +0 -0
- /mcli_framework-7.0.6/tests/test_generate_graph.py → /mcli_framework-7.1.1/tests/unit/test_graph_generation.py +0 -0
- /mcli_framework-7.0.6/tests/test_auth.py → /mcli_framework-7.1.1/tests/unit/test_lib_auth.py +0 -0
- /mcli_framework-7.0.6/tests/test_file.py → /mcli_framework-7.1.1/tests/unit/test_lib_files.py +0 -0
- /mcli_framework-7.0.6/tests/test_lib.py → /mcli_framework-7.1.1/tests/unit/test_lib_utils.py +0 -0
- /mcli_framework-7.0.6/tests/test_preprocessing_simple.py → /mcli_framework-7.1.1/tests/unit/test_ml_preprocessing.py +0 -0
- /mcli_framework-7.0.6/tests/test_fixed_issues.py → /mcli_framework-7.1.1/tests/unit/test_regression.py +0 -0
- /mcli_framework-7.0.6/tests/test_rich.py → /mcli_framework-7.1.1/tests/unit/test_ui_rich.py +0 -0
- /mcli_framework-7.0.6/tests/test_uv_compatibility.py → /mcli_framework-7.1.1/tests/unit/test_uv_compat.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mcli-framework
|
|
3
|
-
Version: 7.
|
|
3
|
+
Version: 7.1.1
|
|
4
4
|
Summary: 🚀 High-performance CLI framework with Rust extensions, AI chat, and stunning visuals
|
|
5
5
|
Author-email: Luis Fernandez de la Vara <luis@lefv.io>
|
|
6
6
|
Maintainer-email: Luis Fernandez de la Vara <luis@lefv.io>
|
|
@@ -63,7 +63,7 @@ Requires-Dist: uvloop>=0.19.0
|
|
|
63
63
|
Requires-Dist: aiosqlite>=0.20.0
|
|
64
64
|
Requires-Dist: redis>=5.0.0
|
|
65
65
|
Requires-Dist: aiohttp-sse-client>=0.2.1
|
|
66
|
-
Requires-Dist:
|
|
66
|
+
Requires-Dist: aiomqtt>=2.0.0
|
|
67
67
|
Requires-Dist: opencv-python>=4.11.0.86
|
|
68
68
|
Requires-Dist: pillow>=11.2.1
|
|
69
69
|
Requires-Dist: numpy<2.0.0,>=1.24.0
|
|
@@ -136,13 +136,24 @@ Requires-Dist: pytest>=8.4.1; extra == "dev"
|
|
|
136
136
|
Requires-Dist: pytest-cov<5.0.0,>=4.1.0; extra == "dev"
|
|
137
137
|
Requires-Dist: pytest-mock>=3.14.1; extra == "dev"
|
|
138
138
|
Requires-Dist: pytest-asyncio>=1.1.0; extra == "dev"
|
|
139
|
+
Requires-Dist: pytest-benchmark>=4.0.0; extra == "dev"
|
|
140
|
+
Requires-Dist: pytest-timeout>=2.2.0; extra == "dev"
|
|
141
|
+
Requires-Dist: pytest-xdist>=3.5.0; extra == "dev"
|
|
142
|
+
Requires-Dist: hypothesis>=6.92.0; extra == "dev"
|
|
143
|
+
Requires-Dist: faker>=22.0.0; extra == "dev"
|
|
144
|
+
Requires-Dist: responses>=0.24.0; extra == "dev"
|
|
145
|
+
Requires-Dist: freezegun>=1.4.0; extra == "dev"
|
|
146
|
+
Requires-Dist: pytest-html>=4.1.0; extra == "dev"
|
|
147
|
+
Requires-Dist: pytest-json-report>=1.5.0; extra == "dev"
|
|
139
148
|
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
140
149
|
Requires-Dist: isort<6.0.0,>=5.12.0; extra == "dev"
|
|
141
150
|
Requires-Dist: mypy<2.0.0,>=1.7.1; extra == "dev"
|
|
151
|
+
Requires-Dist: ruff>=0.1.0; extra == "dev"
|
|
152
|
+
Requires-Dist: pre-commit>=3.6.0; extra == "dev"
|
|
142
153
|
Requires-Dist: build>=1.2.2.post1; extra == "dev"
|
|
143
154
|
Requires-Dist: maturin>=1.9.3; extra == "dev"
|
|
155
|
+
Requires-Dist: twine>=4.0.0; extra == "dev"
|
|
144
156
|
Provides-Extra: all
|
|
145
|
-
Requires-Dist: mcli[async-extras,chat,dashboard,database,documents,gpu,ml,monitoring,streaming,video,viz,web]; extra == "all"
|
|
146
157
|
Dynamic: license-file
|
|
147
158
|
|
|
148
159
|
# MCLI
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "mcli-framework"
|
|
3
|
-
version = "7.
|
|
3
|
+
version = "7.1.1"
|
|
4
4
|
description = "🚀 High-performance CLI framework with Rust extensions, AI chat, and stunning visuals"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.9"
|
|
@@ -73,7 +73,7 @@ dependencies = [
|
|
|
73
73
|
"aiosqlite>=0.20.0",
|
|
74
74
|
"redis>=5.0.0",
|
|
75
75
|
"aiohttp-sse-client>=0.2.1",
|
|
76
|
-
"
|
|
76
|
+
"aiomqtt>=2.0.0",
|
|
77
77
|
|
|
78
78
|
# Video processing
|
|
79
79
|
"opencv-python>=4.11.0.86",
|
|
@@ -177,21 +177,36 @@ web = []
|
|
|
177
177
|
|
|
178
178
|
# Development tools
|
|
179
179
|
dev = [
|
|
180
|
+
# Testing framework
|
|
180
181
|
"pytest>=8.4.1",
|
|
181
182
|
"pytest-cov>=4.1.0,<5.0.0",
|
|
182
183
|
"pytest-mock>=3.14.1",
|
|
183
184
|
"pytest-asyncio>=1.1.0",
|
|
185
|
+
"pytest-benchmark>=4.0.0", # Performance testing
|
|
186
|
+
"pytest-timeout>=2.2.0", # Timeout control
|
|
187
|
+
"pytest-xdist>=3.5.0", # Parallel testing
|
|
188
|
+
"hypothesis>=6.92.0", # Property-based testing
|
|
189
|
+
"faker>=22.0.0", # Test data generation
|
|
190
|
+
"responses>=0.24.0", # HTTP mocking
|
|
191
|
+
"freezegun>=1.4.0", # Time mocking
|
|
192
|
+
"pytest-html>=4.1.0", # HTML reports
|
|
193
|
+
"pytest-json-report>=1.5.0", # JSON reports
|
|
194
|
+
|
|
195
|
+
# Code quality
|
|
184
196
|
"black>=23.0.0",
|
|
185
197
|
"isort>=5.12.0,<6.0.0",
|
|
186
198
|
"mypy>=1.7.1,<2.0.0",
|
|
199
|
+
"ruff>=0.1.0", # Fast linter
|
|
200
|
+
"pre-commit>=3.6.0", # Git hooks
|
|
201
|
+
|
|
202
|
+
# Build tools
|
|
187
203
|
"build>=1.2.2.post1",
|
|
188
204
|
"maturin>=1.9.3",
|
|
205
|
+
"twine>=4.0.0", # Package upload
|
|
189
206
|
]
|
|
190
207
|
|
|
191
|
-
# All optional features
|
|
192
|
-
all = [
|
|
193
|
-
"mcli[chat,async-extras,video,documents,viz,database,ml,gpu,monitoring,streaming,dashboard,web]",
|
|
194
|
-
]
|
|
208
|
+
# All optional features (all features now included by default)
|
|
209
|
+
all = []
|
|
195
210
|
|
|
196
211
|
[tool.black]
|
|
197
212
|
line-length = 100
|
|
@@ -120,8 +120,18 @@ def list_logs(date: Optional[str]):
|
|
|
120
120
|
@click.argument("log_type", type=click.Choice(["main", "trace", "system"]))
|
|
121
121
|
@click.option("--lines", "-n", type=int, default=20, help="Number of lines to show (default: 20)")
|
|
122
122
|
@click.option("--date", "-d", help="Date for log file (YYYYMMDD format, default: today)")
|
|
123
|
-
|
|
124
|
-
""
|
|
123
|
+
@click.option(
|
|
124
|
+
"--follow",
|
|
125
|
+
"-f",
|
|
126
|
+
is_flag=True,
|
|
127
|
+
help="Follow log output in real-time (like tail -f)",
|
|
128
|
+
)
|
|
129
|
+
def tail_logs(log_type: str, lines: int, date: Optional[str], follow: bool):
|
|
130
|
+
"""Show the last N lines of a specific log file
|
|
131
|
+
|
|
132
|
+
By default, shows the last N lines and exits. Use --follow/-f to
|
|
133
|
+
continuously monitor the log file for new entries (similar to tail -f).
|
|
134
|
+
"""
|
|
125
135
|
logs_dir = get_logs_dir()
|
|
126
136
|
|
|
127
137
|
# Note: get_logs_dir() creates the directory automatically
|
|
@@ -144,17 +154,36 @@ def tail_logs(log_type: str, lines: int, date: Optional[str]):
|
|
|
144
154
|
return
|
|
145
155
|
|
|
146
156
|
try:
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
157
|
+
if follow:
|
|
158
|
+
# Follow mode: continuously stream new lines
|
|
159
|
+
console.print(f"\n📡 **Following {log_file.name}** (last {lines} lines)", style="cyan")
|
|
160
|
+
console.print("Press Ctrl+C to stop\n")
|
|
161
|
+
|
|
162
|
+
# Use tail -f for real-time following
|
|
163
|
+
cmd = ["tail", f"-n{lines}", "-f", str(log_file)]
|
|
164
|
+
process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
|
|
165
|
+
|
|
166
|
+
try:
|
|
167
|
+
for line in iter(process.stdout.readline, ""):
|
|
168
|
+
if line:
|
|
169
|
+
formatted_line = _format_log_line(line.rstrip())
|
|
170
|
+
console.print(formatted_line)
|
|
171
|
+
except KeyboardInterrupt:
|
|
172
|
+
process.terminate()
|
|
173
|
+
console.print("\n👋 Log following stopped", style="cyan")
|
|
174
|
+
else:
|
|
175
|
+
# Standard mode: just show last N lines
|
|
176
|
+
# Read last N lines
|
|
177
|
+
with open(log_file, "r") as f:
|
|
178
|
+
all_lines = f.readlines()
|
|
179
|
+
tail_lines = all_lines[-lines:] if len(all_lines) > lines else all_lines
|
|
180
|
+
|
|
181
|
+
# Display with formatting
|
|
182
|
+
console.print(f"\n📋 **Last {len(tail_lines)} lines from {log_file.name}**\n", style="cyan")
|
|
183
|
+
|
|
184
|
+
for line in tail_lines:
|
|
185
|
+
formatted_line = _format_log_line(line.rstrip())
|
|
186
|
+
console.print(formatted_line)
|
|
158
187
|
|
|
159
188
|
except Exception as e:
|
|
160
189
|
console.print(f"❌ Error reading log file: {e}", style="red")
|
|
@@ -100,15 +100,24 @@ def download(model_name: str):
|
|
|
100
100
|
|
|
101
101
|
@model.command()
|
|
102
102
|
@click.option("--model", "-m", help="Specific model to use")
|
|
103
|
-
@click.option("--port", "-p", default=
|
|
103
|
+
@click.option("--port", "-p", default=None, help="Port to run server on (default: from config or 51234)")
|
|
104
104
|
@click.option(
|
|
105
105
|
"--auto-download",
|
|
106
106
|
is_flag=True,
|
|
107
107
|
default=True,
|
|
108
108
|
help="Automatically download model if not available",
|
|
109
109
|
)
|
|
110
|
-
def start(model: Optional[str], port: int, auto_download: bool):
|
|
110
|
+
def start(model: Optional[str], port: Optional[int], auto_download: bool):
|
|
111
111
|
"""Start the lightweight model server."""
|
|
112
|
+
# Load port from config if not specified
|
|
113
|
+
if port is None:
|
|
114
|
+
try:
|
|
115
|
+
from mcli.lib.config.config import load_config
|
|
116
|
+
config = load_config()
|
|
117
|
+
port = config.get("model", {}).get("server_port", 51234)
|
|
118
|
+
except Exception:
|
|
119
|
+
port = 51234 # Default ephemeral port
|
|
120
|
+
|
|
112
121
|
server = LightweightModelServer(port=port)
|
|
113
122
|
|
|
114
123
|
# Determine which model to use
|
|
@@ -192,9 +201,18 @@ def recommend():
|
|
|
192
201
|
|
|
193
202
|
|
|
194
203
|
@model.command()
|
|
195
|
-
@click.option("--port", "-p", default=
|
|
196
|
-
def status(port: int):
|
|
204
|
+
@click.option("--port", "-p", default=None, help="Port where server is running (default: from config or 51234)")
|
|
205
|
+
def status(port: Optional[int]):
|
|
197
206
|
"""Check status of the lightweight model server."""
|
|
207
|
+
# Load port from config if not specified
|
|
208
|
+
if port is None:
|
|
209
|
+
try:
|
|
210
|
+
from mcli.lib.config.config import load_config
|
|
211
|
+
config = load_config()
|
|
212
|
+
port = config.get("model", {}).get("server_port", 51234)
|
|
213
|
+
except Exception:
|
|
214
|
+
port = 51234 # Default ephemeral port
|
|
215
|
+
|
|
198
216
|
import requests
|
|
199
217
|
|
|
200
218
|
try:
|
|
@@ -225,9 +243,18 @@ def status(port: int):
|
|
|
225
243
|
|
|
226
244
|
|
|
227
245
|
@model.command()
|
|
228
|
-
@click.option("--port", "-p", default=
|
|
229
|
-
def stop(port: int):
|
|
246
|
+
@click.option("--port", "-p", default=None, help="Port where server is running (default: from config or 51234)")
|
|
247
|
+
def stop(port: Optional[int]):
|
|
230
248
|
"""Stop the lightweight model server."""
|
|
249
|
+
# Load port from config if not specified
|
|
250
|
+
if port is None:
|
|
251
|
+
try:
|
|
252
|
+
from mcli.lib.config.config import load_config
|
|
253
|
+
config = load_config()
|
|
254
|
+
port = config.get("model", {}).get("server_port", 51234)
|
|
255
|
+
except Exception:
|
|
256
|
+
port = 51234 # Default ephemeral port
|
|
257
|
+
|
|
231
258
|
import requests
|
|
232
259
|
import psutil
|
|
233
260
|
|