mcli-framework 7.8.4__tar.gz → 7.8.5__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.8.4 → mcli_framework-7.8.5}/PKG-INFO +1 -1
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/pyproject.toml +1 -1
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/app/main.py +5 -21
- mcli_framework-7.8.5/src/mcli/app/model_cmd.py +66 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli_framework.egg-info/PKG-INFO +1 -1
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli_framework.egg-info/SOURCES.txt +0 -3
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/e2e/test_new_user_workflow.py +15 -12
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_module_imports.py +4 -3
- mcli_framework-7.8.4/src/mcli/app/chat_cmd.py +0 -42
- mcli_framework-7.8.4/src/mcli/app/model_cmd.py +0 -481
- mcli_framework-7.8.4/src/mcli/test/test_cmd.py +0 -20
- mcli_framework-7.8.4/tests/cli/test_chat_cmd.py +0 -113
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/.github/dependabot.yml +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/.github/workflows/build.yml +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/.github/workflows/ci.yml +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/.github/workflows/ml-pipeline.yml +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/.github/workflows/publish-self-hosted.yml +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/.github/workflows/publish.yml +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/.github/workflows/release.yml +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/.github/workflows/security.yml +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/.github/workflows/test.yml +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/LICENSE +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/MANIFEST.in +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/README.md +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/mcli_rust/Cargo.toml +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/mcli_rust/src/command_parser.rs +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/mcli_rust/src/file_watcher.rs +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/mcli_rust/src/lib.rs +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/mcli_rust/src/process_manager.rs +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/mcli_rust/src/tfidf.rs +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/setup.cfg +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/app/commands_cmd.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/app/completion_helpers.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/app/model/model.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/app/video/video.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/chat/chat.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/chat/command_rag.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/chat/enhanced_chat.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/chat/system_controller.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/chat/system_integration.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/cli.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/config.toml +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/api/api.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/api/daemon_client.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/api/daemon_client_local.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/api/daemon_decorator.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/api/mcli_decorators.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/auth/auth.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/auth/aws_manager.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/auth/azure_manager.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/auth/credential_manager.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/auth/gcp_manager.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/auth/key_manager.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/auth/mcli_manager.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/auth/token_manager.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/auth/token_util.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/config/config.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/custom_commands.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/discovery/__init__.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/discovery/command_discovery.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/erd/erd.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/erd/generate_graph.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/files/files.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/fs/fs.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/lib.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/logger/logger.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/paths.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/performance/optimizer.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/performance/rust_bridge.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/performance/uvloop_config.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/pickles/pickles.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/search/cached_vectorizer.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/services/data_pipeline.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/services/lsh_client.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/services/redis_service.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/shell/shell.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/toml/toml.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/ui/styling.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/ui/visual_effects.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/lib/watcher/watcher.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/api/app.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/api/middleware.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/api/routers/admin_router.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/api/routers/auth_router.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/api/routers/backtest_router.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/api/routers/data_router.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/api/routers/model_router.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/api/routers/monitoring_router.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/api/routers/portfolio_router.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/api/routers/prediction_router.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/api/routers/trade_router.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/api/routers/websocket_router.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/api/schemas.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/auth/auth_manager.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/auth/models.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/auth/permissions.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/backtesting/backtest_engine.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/backtesting/performance_metrics.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/cache.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/cli/main.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/config/settings.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/configs/dvc_config.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/configs/mlflow_config.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/configs/mlops_manager.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/dashboard/app.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/dashboard/app_integrated.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/dashboard/app_supabase.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/dashboard/app_training.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/dashboard/cli.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/dashboard/common.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/dashboard/components/charts.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/dashboard/components/metrics.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/dashboard/components/tables.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/dashboard/overview.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/dashboard/pages/cicd.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/dashboard/pages/debug_dependencies.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/dashboard/pages/gravity_viz.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/dashboard/pages/monte_carlo_predictions.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/dashboard/pages/predictions_enhanced.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/dashboard/pages/scrapers_and_logs.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/dashboard/pages/test_portfolio.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/dashboard/pages/trading.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/dashboard/pages/workflows.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/dashboard/streamlit_extras_utils.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/dashboard/styles.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/dashboard/utils.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/dashboard/warning_suppression.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/data_ingestion/api_connectors.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/data_ingestion/data_pipeline.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/data_ingestion/stream_processor.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/database/migrations/env.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/database/models.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/database/session.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/experimentation/ab_testing.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/features/ensemble_features.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/features/political_features.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/features/recommendation_engine.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/features/stock_features.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/features/test_feature_engineering.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/logging.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/mlops/data_versioning.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/mlops/experiment_tracker.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/mlops/model_serving.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/mlops/pipeline_orchestrator.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/models/base_models.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/models/ensemble_models.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/models/recommendation_models.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/models/test_models.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/monitoring/drift_detection.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/monitoring/metrics.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/optimization/portfolio_optimizer.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/predictions/monte_carlo.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/predictions/prediction_engine.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/preprocessing/data_cleaners.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/preprocessing/feature_extractors.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/preprocessing/ml_pipeline.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/preprocessing/politician_trading_preprocessor.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/preprocessing/test_preprocessing.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/scripts/populate_sample_data.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/tasks.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/tests/test_integration.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/tests/test_training_dashboard.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/trading/alpaca_client.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/trading/migrations.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/trading/models.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/trading/paper_trading.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/trading/risk_management.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/trading/trading_service.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/ml/training/train_model.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/mygroup/test_cmd.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/public/oi/oi.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/public/public.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/self/completion_cmd.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/self/logs_cmd.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/self/redis_cmd.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/self/self_cmd.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/self/store_cmd.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/self/test_cmd.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/self/visual_cmd.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/daemon/async_command_database.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/daemon/async_process_manager.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/daemon/client.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/daemon/daemon.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/daemon/daemon_api.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/daemon/enhanced_daemon.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/daemon/process_cli.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/daemon/process_manager.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/daemon/test_daemon.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/dashboard/dashboard_cmd.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/docker/docker.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/gcloud/config.toml +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/gcloud/gcloud.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/git_commit/ai_service.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/lsh_integration.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/model_service/client.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/model_service/download_and_run_efficient_models.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/model_service/lightweight_embedder.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/model_service/lightweight_model_server.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/model_service/lightweight_test.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/model_service/model_service.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/model_service/ollama_efficient_runner.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/model_service/openai_adapter.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/model_service/pdf_processor.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/model_service/test_efficient_runner.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/model_service/test_example.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/model_service/test_integration.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/model_service/test_new_features.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/openai/openai.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/politician_trading/config.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/politician_trading/connectivity.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/politician_trading/data_sources.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/politician_trading/database.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/politician_trading/demo.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/politician_trading/models.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/politician_trading/monitoring.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/politician_trading/scrapers.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/politician_trading/scrapers_california.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/politician_trading/scrapers_corporate_registry.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/politician_trading/scrapers_eu.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/politician_trading/scrapers_free_sources.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/politician_trading/scrapers_third_party.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/politician_trading/scrapers_uk.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/politician_trading/scrapers_us_states.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/politician_trading/seed_database.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/politician_trading/supabase_functions.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/politician_trading/workflow.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/registry/registry.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/repo/repo.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/scheduler/cron_parser.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/scheduler/job.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/scheduler/monitor.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/scheduler/persistence.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/scheduler/scheduler.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/sync/test_cmd.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/wakatime/wakatime.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli/workflow/workflow.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli_framework.egg-info/dependency_links.txt +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli_framework.egg-info/entry_points.txt +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli_framework.egg-info/requires.txt +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/src/mcli_framework.egg-info/top_level.txt +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/cli/test_all_commands.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/cli/test_app_logs_cmd.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/cli/test_app_redis_cmd.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/cli/test_logs_cmd.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/cli/test_main_app.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/cli/test_model_cmd.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/cli/test_self_cmd.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/cli/test_self_cmd_commands.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/cli/test_self_cmd_plugins.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/cli/test_self_cmd_utilities.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/cli/test_workflow_file.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/cli/test_workflow_gcloud.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/cli/test_workflow_registry.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/conftest.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/demo_generate_graph.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/demo_hierarchical_transform.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/e2e/test_complete_workflows.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/e2e/test_model_workflow.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/e2e/test_update_workflow.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/fixtures/chat_fixtures.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/fixtures/cli_fixtures.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/fixtures/data_fixtures.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/fixtures/db_fixtures.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/fixtures/model_fixtures.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_agent.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_california_scraper.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_chat_client.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_chat_system.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_congress_scraper.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_daemon_client.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_daemon_server.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_e2e_dashboard_lsh_supabase.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_flask_webapp.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_gcloud_services.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_lsh_client.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_lsh_service.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_ml_auth.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_ml_data_pipeline.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_ml_models.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_ml_pipeline.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_oi_service.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_politician_trading.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_repo_operations.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_scheduler_integration.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_service_registry.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_supabase_live_connection.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_uk_scraper.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_us_states_scraper.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_video_processing.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_wakatime_api.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_webapp_full.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_workflow.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/integration/test_workflow_commands.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/run_tests.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/test_harness.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/test_openai_adapter.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_api_utils.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_async_process_manager.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_auth_modules.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_bug_fixes.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_config.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_custom_commands.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_daemon_api.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_dashboard_components.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_dashboard_functions.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_dashboard_pages.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_dependencies.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_emulator_workflow.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_erd_generation.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_erd_generic.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_erd_imports.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_git_commit_workflow.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_lib_auth.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_lib_files.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_lib_utils.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_logger.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_ml_preprocessing.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_paths.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_pdf_compress.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_prediction_engine.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_regression.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_scheduler.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_scheduler_cron_parser.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_scheduler_job.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_scheduler_monitor.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_scheduler_persistence.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_self_update.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_store_cmd.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_supabase_connection.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_supabase_pagination.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_toml_utils.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_trading_imports.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/tests/unit/test_ui_rich.py +0 -0
- {mcli_framework-7.8.4 → mcli_framework-7.8.5}/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.8.
|
|
3
|
+
Version: 7.8.5
|
|
4
4
|
Summary: Portable workflow framework - transform any script into a versioned, schedulable command. Store in ~/.mcli/commands/, version with lockfile, run as daemon or cron job.
|
|
5
5
|
Author-email: Luis Fernandez de la Vara <luis@lefv.io>
|
|
6
6
|
Maintainer-email: Luis Fernandez de la Vara <luis@lefv.io>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "mcli-framework"
|
|
3
|
-
version = "7.8.
|
|
3
|
+
version = "7.8.5"
|
|
4
4
|
description = "Portable workflow framework - transform any script into a versioned, schedulable command. Store in ~/.mcli/commands/, version with lockfile, run as daemon or cron job."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.9"
|
|
@@ -12,8 +12,6 @@ from typing import List, Optional
|
|
|
12
12
|
import click
|
|
13
13
|
import tomli
|
|
14
14
|
|
|
15
|
-
# Import chat command group
|
|
16
|
-
from mcli.app.chat_cmd import chat
|
|
17
15
|
from mcli.lib.logger.logger import disable_runtime_tracing, enable_runtime_tracing, get_logger
|
|
18
16
|
from mcli.lib.ui.styling import info, success
|
|
19
17
|
|
|
@@ -346,15 +344,6 @@ def _add_lazy_commands(app: click.Group):
|
|
|
346
344
|
except Exception as e:
|
|
347
345
|
logger.debug(f"Could not load self commands: {e}")
|
|
348
346
|
|
|
349
|
-
# Test group - load immediately for testing commands
|
|
350
|
-
try:
|
|
351
|
-
from mcli.test.test_cmd import test_group
|
|
352
|
-
|
|
353
|
-
app.add_command(test_group, name="test")
|
|
354
|
-
logger.debug("Added test group commands")
|
|
355
|
-
except Exception as e:
|
|
356
|
-
logger.debug(f"Could not load test commands: {e}")
|
|
357
|
-
|
|
358
347
|
# Add workflow with completion-aware lazy loading
|
|
359
348
|
try:
|
|
360
349
|
from mcli.app.completion_helpers import create_completion_aware_lazy_group
|
|
@@ -377,16 +366,11 @@ def _add_lazy_commands(app: click.Group):
|
|
|
377
366
|
app.add_command(workflow_group, name="workflow")
|
|
378
367
|
|
|
379
368
|
# Lazy load other heavy commands that are used less frequently
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
"model": {
|
|
386
|
-
"import_path": "mcli.app.model_cmd.model",
|
|
387
|
-
"help": "Model management commands for offline and online model usage",
|
|
388
|
-
},
|
|
389
|
-
}
|
|
369
|
+
# NOTE: chat and model commands have been removed
|
|
370
|
+
# - chat: removed from core commands
|
|
371
|
+
# - model: moved to ~/.mcli/commands workflow
|
|
372
|
+
# - test: removed from core commands
|
|
373
|
+
lazy_commands = {}
|
|
390
374
|
|
|
391
375
|
for cmd_name, cmd_info in lazy_commands.items():
|
|
392
376
|
# Skip workflow since we already added it with completion support
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Model command stub - redirects to workflow command in ~/.mcli/commands/model.json
|
|
3
|
+
|
|
4
|
+
This stub exists for backwards compatibility with tests and imports.
|
|
5
|
+
The actual model command implementation is now in ~/.mcli/commands/model.json
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
import sys
|
|
9
|
+
from pathlib import Path
|
|
10
|
+
|
|
11
|
+
# Try to load the model command from the workflow system
|
|
12
|
+
try:
|
|
13
|
+
from mcli.lib.custom_commands import load_command_from_file
|
|
14
|
+
|
|
15
|
+
# Load model command from ~/.mcli/commands/model.json
|
|
16
|
+
model_json_path = Path.home() / ".mcli" / "commands" / "model.json"
|
|
17
|
+
|
|
18
|
+
if model_json_path.exists():
|
|
19
|
+
# Load the command from the JSON file
|
|
20
|
+
import json
|
|
21
|
+
|
|
22
|
+
with open(model_json_path, "r") as f:
|
|
23
|
+
command_data = json.load(f)
|
|
24
|
+
|
|
25
|
+
# Execute the code to get the app (model command group)
|
|
26
|
+
code = command_data.get("code", "")
|
|
27
|
+
namespace = {}
|
|
28
|
+
exec(code, namespace)
|
|
29
|
+
|
|
30
|
+
# Extract the app (model command group) and individual commands
|
|
31
|
+
app = namespace.get("app")
|
|
32
|
+
if app:
|
|
33
|
+
# The model group command
|
|
34
|
+
model = app
|
|
35
|
+
|
|
36
|
+
# Extract individual subcommands from the model group
|
|
37
|
+
if hasattr(model, "commands"):
|
|
38
|
+
commands = model.commands
|
|
39
|
+
list = commands.get("list")
|
|
40
|
+
download = commands.get("download")
|
|
41
|
+
start = commands.get("start")
|
|
42
|
+
recommend = commands.get("recommend")
|
|
43
|
+
status = commands.get("status")
|
|
44
|
+
stop = commands.get("stop")
|
|
45
|
+
pull = commands.get("pull")
|
|
46
|
+
delete = commands.get("delete")
|
|
47
|
+
else:
|
|
48
|
+
# Fallback if commands aren't available
|
|
49
|
+
list = download = start = recommend = status = stop = pull = delete = None
|
|
50
|
+
else:
|
|
51
|
+
# If app is not found, create empty placeholders
|
|
52
|
+
model = list = download = start = recommend = status = stop = pull = delete = None
|
|
53
|
+
else:
|
|
54
|
+
# If the JSON file doesn't exist, create empty placeholders
|
|
55
|
+
print(f"Warning: {model_json_path} not found", file=sys.stderr)
|
|
56
|
+
model = list = download = start = recommend = status = stop = pull = delete = None
|
|
57
|
+
|
|
58
|
+
except Exception as e:
|
|
59
|
+
print(f"Error loading model command from workflow: {e}", file=sys.stderr)
|
|
60
|
+
import traceback
|
|
61
|
+
|
|
62
|
+
traceback.print_exc()
|
|
63
|
+
model = list = download = start = recommend = status = stop = pull = delete = None
|
|
64
|
+
|
|
65
|
+
# Export the commands for backwards compatibility
|
|
66
|
+
__all__ = ["model", "list", "download", "start", "recommend", "status", "stop", "pull", "delete"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mcli-framework
|
|
3
|
-
Version: 7.8.
|
|
3
|
+
Version: 7.8.5
|
|
4
4
|
Summary: Portable workflow framework - transform any script into a versioned, schedulable command. Store in ~/.mcli/commands/, version with lockfile, run as daemon or cron job.
|
|
5
5
|
Author-email: Luis Fernandez de la Vara <luis@lefv.io>
|
|
6
6
|
Maintainer-email: Luis Fernandez de la Vara <luis@lefv.io>
|
|
@@ -20,7 +20,6 @@ mcli_rust/src/process_manager.rs
|
|
|
20
20
|
mcli_rust/src/tfidf.rs
|
|
21
21
|
src/mcli/cli.py
|
|
22
22
|
src/mcli/config.toml
|
|
23
|
-
src/mcli/app/chat_cmd.py
|
|
24
23
|
src/mcli/app/commands_cmd.py
|
|
25
24
|
src/mcli/app/completion_helpers.py
|
|
26
25
|
src/mcli/app/main.py
|
|
@@ -169,7 +168,6 @@ src/mcli/self/self_cmd.py
|
|
|
169
168
|
src/mcli/self/store_cmd.py
|
|
170
169
|
src/mcli/self/test_cmd.py
|
|
171
170
|
src/mcli/self/visual_cmd.py
|
|
172
|
-
src/mcli/test/test_cmd.py
|
|
173
171
|
src/mcli/workflow/lsh_integration.py
|
|
174
172
|
src/mcli/workflow/workflow.py
|
|
175
173
|
src/mcli/workflow/daemon/async_command_database.py
|
|
@@ -242,7 +240,6 @@ tests/test_openai_adapter.py
|
|
|
242
240
|
tests/cli/test_all_commands.py
|
|
243
241
|
tests/cli/test_app_logs_cmd.py
|
|
244
242
|
tests/cli/test_app_redis_cmd.py
|
|
245
|
-
tests/cli/test_chat_cmd.py
|
|
246
243
|
tests/cli/test_logs_cmd.py
|
|
247
244
|
tests/cli/test_main_app.py
|
|
248
245
|
tests/cli/test_model_cmd.py
|
|
@@ -16,9 +16,9 @@ def test_new_user_complete_workflow():
|
|
|
16
16
|
1. Check available self commands
|
|
17
17
|
2. Run mcli self logs (should work even with no logs)
|
|
18
18
|
3. Check for updates
|
|
19
|
-
4. View help for model commands
|
|
19
|
+
4. View help for model commands (now a workflow command)
|
|
20
20
|
"""
|
|
21
|
-
from mcli.app.
|
|
21
|
+
from mcli.app.main import create_app
|
|
22
22
|
from mcli.self.self_cmd import self_app
|
|
23
23
|
|
|
24
24
|
runner = CliRunner()
|
|
@@ -39,8 +39,9 @@ def test_new_user_complete_workflow():
|
|
|
39
39
|
assert result.exit_code == 0
|
|
40
40
|
assert "--check" in result.output
|
|
41
41
|
|
|
42
|
-
# Step 4: View help for model command
|
|
43
|
-
|
|
42
|
+
# Step 4: View help for model command (now loaded as workflow command)
|
|
43
|
+
app = create_app()
|
|
44
|
+
result = runner.invoke(app, ["model", "--help"])
|
|
44
45
|
assert result.exit_code == 0
|
|
45
46
|
assert "list" in result.output or "start" in result.output
|
|
46
47
|
|
|
@@ -73,26 +74,27 @@ def test_new_user_discovers_features():
|
|
|
73
74
|
@pytest.mark.e2e
|
|
74
75
|
def test_new_user_model_exploration():
|
|
75
76
|
"""
|
|
76
|
-
Test new user exploring model commands
|
|
77
|
+
Test new user exploring model commands (now a workflow command)
|
|
77
78
|
"""
|
|
78
|
-
from mcli.app.
|
|
79
|
+
from mcli.app.main import create_app
|
|
79
80
|
|
|
80
81
|
runner = CliRunner()
|
|
82
|
+
app = create_app()
|
|
81
83
|
|
|
82
84
|
# View model help
|
|
83
|
-
result = runner.invoke(
|
|
85
|
+
result = runner.invoke(app, ["model", "--help"])
|
|
84
86
|
assert result.exit_code == 0
|
|
85
87
|
|
|
86
88
|
# View list help
|
|
87
|
-
result = runner.invoke(
|
|
89
|
+
result = runner.invoke(app, ["model", "list", "--help"])
|
|
88
90
|
assert result.exit_code == 0
|
|
89
91
|
|
|
90
92
|
# View recommend help
|
|
91
|
-
result = runner.invoke(
|
|
93
|
+
result = runner.invoke(app, ["model", "recommend", "--help"])
|
|
92
94
|
assert result.exit_code == 0
|
|
93
95
|
|
|
94
96
|
# View start help
|
|
95
|
-
result = runner.invoke(
|
|
97
|
+
result = runner.invoke(app, ["model", "start", "--help"])
|
|
96
98
|
assert result.exit_code == 0
|
|
97
99
|
assert "port" in result.output.lower()
|
|
98
100
|
|
|
@@ -122,13 +124,14 @@ def test_new_user_error_handling():
|
|
|
122
124
|
"""
|
|
123
125
|
Test that new users get helpful error messages
|
|
124
126
|
"""
|
|
125
|
-
from mcli.app.
|
|
127
|
+
from mcli.app.main import create_app
|
|
126
128
|
from mcli.self.self_cmd import self_app
|
|
127
129
|
|
|
128
130
|
runner = CliRunner()
|
|
131
|
+
app = create_app()
|
|
129
132
|
|
|
130
133
|
# Invalid command for model
|
|
131
|
-
result = runner.invoke(
|
|
134
|
+
result = runner.invoke(app, ["model", "nonexistent-command"])
|
|
132
135
|
# Should fail gracefully
|
|
133
136
|
assert result.exit_code != 0
|
|
134
137
|
|
|
@@ -41,10 +41,11 @@ class TestModuleImports:
|
|
|
41
41
|
|
|
42
42
|
def test_import_app_modules(self):
|
|
43
43
|
"""Test importing app modules"""
|
|
44
|
-
|
|
44
|
+
# Note: chat_cmd and model_cmd have been removed from core commands
|
|
45
|
+
# They are now available as workflow commands in ~/.mcli/commands/
|
|
46
|
+
from mcli.app import main
|
|
45
47
|
|
|
46
|
-
assert
|
|
47
|
-
assert model_cmd is not None
|
|
48
|
+
assert main is not None
|
|
48
49
|
|
|
49
50
|
@pytest.mark.skip(reason="Requires complex dependencies")
|
|
50
51
|
def test_import_ml_preprocessing(self):
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import click
|
|
2
|
-
|
|
3
|
-
from mcli.chat.chat import ChatClient
|
|
4
|
-
from mcli.chat.enhanced_chat import EnhancedChatClient
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
@click.command()
|
|
8
|
-
@click.option(
|
|
9
|
-
"--remote", is_flag=True, help="Use remote online models instead of local lightweight models"
|
|
10
|
-
)
|
|
11
|
-
@click.option("--model", "-m", help="Specific model to use (overrides default behavior)")
|
|
12
|
-
@click.option(
|
|
13
|
-
"--enhanced",
|
|
14
|
-
is_flag=True,
|
|
15
|
-
default=True,
|
|
16
|
-
help="Use enhanced chat with RAG-based command search (default: enabled)",
|
|
17
|
-
)
|
|
18
|
-
@click.option("--classic", is_flag=True, help="Use classic chat interface without command search")
|
|
19
|
-
def chat(remote: bool, model: str, enhanced: bool, classic: bool):
|
|
20
|
-
"""Start an interactive chat session with the MCLI Chat Assistant.
|
|
21
|
-
|
|
22
|
-
🤖 Enhanced Mode (Default):
|
|
23
|
-
- Self-referential command discovery and suggestions
|
|
24
|
-
- RAG-based semantic search of available MCLI commands
|
|
25
|
-
- Intelligent intent analysis and contextual recommendations
|
|
26
|
-
- Real-time system status awareness
|
|
27
|
-
|
|
28
|
-
💬 Classic Mode:
|
|
29
|
-
- Traditional chat interface
|
|
30
|
-
- Basic system integration
|
|
31
|
-
|
|
32
|
-
By default, uses lightweight local models for privacy and speed.
|
|
33
|
-
Use --remote to connect to online models like OpenAI or Anthropic.
|
|
34
|
-
"""
|
|
35
|
-
# Choose chat client based on options
|
|
36
|
-
if classic:
|
|
37
|
-
client = ChatClient(use_remote=remote, model_override=model)
|
|
38
|
-
client.start_interactive_session()
|
|
39
|
-
else:
|
|
40
|
-
# Use enhanced client by default
|
|
41
|
-
client = EnhancedChatClient(use_remote=remote, model_override=model)
|
|
42
|
-
client.start_interactive_session()
|