mcli-framework 7.19.8__tar.gz → 8.0.15__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.
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/.github/dependency-review-config.yml +2 -2
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/.github/workflows/ci.yml +44 -19
- mcli_framework-8.0.15/.github/workflows/docs-links.yml +48 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/.github/workflows/publish.yml +2 -2
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/.github/workflows/security.yml +17 -4
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/.github/workflows/test.yml +1 -1
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/MANIFEST.in +4 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/PKG-INFO +144 -167
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/README.md +136 -155
- mcli_framework-8.0.15/llms-full.txt +801 -0
- mcli_framework-8.0.15/llms.txt +35 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/pyproject.toml +72 -27
- mcli_framework-8.0.15/src/mcli/__init__.py +160 -0
- mcli_framework-8.0.15/src/mcli/app/__init__.py +21 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/app/commands_cmd.py +249 -90
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/app/completion_helpers.py +12 -12
- mcli_framework-8.0.15/src/mcli/app/context_cmd.py +158 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/app/create_cmd.py +5 -4
- mcli_framework-8.0.15/src/mcli/app/delete_cmd.py +65 -0
- mcli_framework-8.0.15/src/mcli/app/edit_cmd.py +156 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/app/init_cmd.py +10 -131
- mcli_framework-8.0.15/src/mcli/app/list_cmd.py +247 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/app/main.py +115 -108
- mcli_framework-8.0.15/src/mcli/app/migrate_cmd.py +396 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/app/model/model.py +35 -20
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/app/model_cmd.py +8 -4
- mcli_framework-8.0.15/src/mcli/app/new_cmd.py +1012 -0
- mcli_framework-8.0.15/src/mcli/app/search_cmd.py +175 -0
- mcli_framework-8.0.15/src/mcli/app/sync_cmd.py +787 -0
- mcli_framework-8.0.15/src/mcli/app/video/__init__.py +3 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/app/video/video.py +49 -23
- mcli_framework-8.0.15/src/mcli/lib/__init__.py +0 -0
- mcli_framework-8.0.15/src/mcli/lib/api/__init__.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/api/api.py +74 -57
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/api/mcli_decorators.py +76 -52
- mcli_framework-8.0.15/src/mcli/lib/auth/__init__.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/auth/token_util.py +23 -10
- mcli_framework-8.0.15/src/mcli/lib/config/__init__.py +29 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/constants/__init__.py +57 -2
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/constants/commands.py +4 -4
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/constants/env.py +6 -0
- mcli_framework-8.0.15/src/mcli/lib/constants/messages.py +988 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/constants/paths.py +20 -1
- mcli_framework-8.0.15/src/mcli/lib/constants/scripts.py +172 -0
- mcli_framework-8.0.15/src/mcli/lib/constants/storage.py +175 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/custom_commands.py +123 -51
- mcli_framework-8.0.15/src/mcli/lib/erd/__init__.py +25 -0
- mcli_framework-8.0.15/src/mcli/lib/errors.py +297 -0
- mcli_framework-8.0.15/src/mcli/lib/feature_detection.py +78 -0
- mcli_framework-8.0.15/src/mcli/lib/files/__init__.py +0 -0
- mcli_framework-8.0.15/src/mcli/lib/fs/__init__.py +31 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/ipfs_sync.py +64 -29
- mcli_framework-8.0.15/src/mcli/lib/logger/__init__.py +3 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/logger/logger.py +16 -13
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/paths.py +94 -2
- mcli_framework-8.0.15/src/mcli/lib/performance/__init__.py +17 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/performance/rust_bridge.py +33 -33
- mcli_framework-8.0.15/src/mcli/lib/pickles/__init__.py +0 -0
- mcli_framework-8.0.15/src/mcli/lib/pyenv/__init__.py +24 -0
- mcli_framework-8.0.15/src/mcli/lib/pyenv/deps.py +193 -0
- mcli_framework-8.0.15/src/mcli/lib/pyenv/manager.py +231 -0
- mcli_framework-8.0.15/src/mcli/lib/pyenv/venv.py +173 -0
- mcli_framework-8.0.15/src/mcli/lib/script_loader.py +865 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/script_sync.py +22 -5
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/script_watcher.py +10 -7
- mcli_framework-8.0.15/src/mcli/lib/secrets/__init__.py +10 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/secrets/manager.py +4 -3
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/secrets/repl.py +15 -14
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/secrets/store.py +3 -2
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/services/redis_service.py +5 -4
- mcli_framework-8.0.15/src/mcli/lib/shell/__init__.py +0 -0
- mcli_framework-8.0.15/src/mcli/lib/templates/__init__.py +15 -0
- mcli_framework-8.0.15/src/mcli/lib/templates/command_templates.py +121 -0
- mcli_framework-8.0.15/src/mcli/lib/toml/__init__.py +0 -0
- mcli_framework-8.0.15/src/mcli/lib/types.py +275 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/ui/visual_effects.py +41 -29
- mcli_framework-8.0.15/src/mcli/lib/watcher/__init__.py +0 -0
- mcli_framework-8.0.15/src/mcli/lib/workspace_registry.py +300 -0
- mcli_framework-8.0.15/src/mcli/ml/__init__.py +16 -0
- mcli_framework-8.0.15/src/mcli/ml/api/__init__.py +30 -0
- mcli_framework-8.0.15/src/mcli/ml/api/routers/__init__.py +27 -0
- mcli_framework-8.0.15/src/mcli/ml/auth/__init__.py +41 -0
- mcli_framework-8.0.15/src/mcli/ml/backtesting/__init__.py +33 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/backtesting/run.py +40 -5
- mcli_framework-8.0.15/src/mcli/ml/cli/__init__.py +5 -0
- mcli_framework-8.0.15/src/mcli/ml/config/__init__.py +33 -0
- mcli_framework-8.0.15/src/mcli/ml/configs/__init__.py +16 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/configs/mlflow_config.py +2 -2
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/configs/mlops_manager.py +3 -3
- mcli_framework-8.0.15/src/mcli/ml/dashboard/__init__.py +12 -0
- mcli_framework-8.0.15/src/mcli/ml/dashboard/components/__init__.py +7 -0
- mcli_framework-8.0.15/src/mcli/ml/dashboard/pages/__init__.py +6 -0
- mcli_framework-8.0.15/src/mcli/ml/data_ingestion/__init__.py +29 -0
- mcli_framework-8.0.15/src/mcli/ml/database/__init__.py +40 -0
- mcli_framework-8.0.15/src/mcli/ml/experimentation/__init__.py +29 -0
- mcli_framework-8.0.15/src/mcli/ml/features/__init__.py +39 -0
- mcli_framework-8.0.15/src/mcli/ml/mlops/__init__.py +19 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/mlops/experiment_tracker.py +5 -5
- mcli_framework-8.0.15/src/mcli/ml/models/__init__.py +89 -0
- mcli_framework-8.0.15/src/mcli/ml/monitoring/__init__.py +25 -0
- mcli_framework-8.0.15/src/mcli/ml/optimization/__init__.py +27 -0
- mcli_framework-8.0.15/src/mcli/ml/predictions/__init__.py +5 -0
- mcli_framework-8.0.15/src/mcli/ml/preprocessing/__init__.py +24 -0
- mcli_framework-8.0.15/src/mcli/ml/scripts/__init__.py +1 -0
- mcli_framework-8.0.15/src/mcli/ml/serving/__init__.py +1 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/serving/serve.py +22 -5
- mcli_framework-8.0.15/src/mcli/ml/trading/__init__.py +63 -0
- mcli_framework-8.0.15/src/mcli/ml/training/__init__.py +7 -0
- mcli_framework-8.0.15/src/mcli/mygroup/__init__.py +3 -0
- mcli_framework-8.0.15/src/mcli/public/__init__.py +1 -0
- mcli_framework-8.0.15/src/mcli/public/commands/__init__.py +2 -0
- mcli_framework-8.0.15/src/mcli/public/public.py +3 -0
- mcli_framework-8.0.15/src/mcli/self/__init__.py +3 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/self/completion_cmd.py +8 -8
- mcli_framework-8.0.15/src/mcli/self/health_cmd.py +1326 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/self/logs_cmd.py +19 -16
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/self/migrate_cmd.py +261 -53
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/self/redis_cmd.py +16 -13
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/self/self_cmd.py +173 -33
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/self/store_cmd.py +5 -4
- mcli_framework-8.0.15/src/mcli/self/workflows_cmd.py +304 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/self/zsh_cmd.py +10 -10
- mcli_framework-8.0.15/src/mcli/storage/__init__.py +30 -0
- mcli_framework-8.0.15/src/mcli/storage/backends/__init__.py +5 -0
- mcli_framework-8.0.15/src/mcli/storage/backends/ipfs_backend.py +543 -0
- mcli_framework-8.0.15/src/mcli/storage/base.py +247 -0
- mcli_framework-8.0.15/src/mcli/storage/cache.py +332 -0
- mcli_framework-8.0.15/src/mcli/storage/encryption.py +163 -0
- mcli_framework-8.0.15/src/mcli/storage/factory.py +122 -0
- mcli_framework-8.0.15/src/mcli/storage/registry.py +240 -0
- mcli_framework-8.0.15/src/mcli/storage/storacha_cli.py +534 -0
- mcli_framework-8.0.15/src/mcli/workflow/__init__.py +0 -0
- mcli_framework-8.0.15/src/mcli/workflow/daemon/__init__.py +15 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/daemon/daemon.py +20 -6
- mcli_framework-8.0.15/src/mcli/workflow/dashboard/__init__.py +5 -0
- mcli_framework-8.0.15/src/mcli/workflow/docker/__init__.py +0 -0
- mcli_framework-8.0.15/src/mcli/workflow/docker/docker.py +0 -0
- mcli_framework-8.0.15/src/mcli/workflow/file/__init__.py +0 -0
- mcli_framework-8.0.15/src/mcli/workflow/gcloud/__init__.py +0 -0
- mcli_framework-8.0.15/src/mcli/workflow/git_commit/__init__.py +0 -0
- mcli_framework-8.0.15/src/mcli/workflow/interview/__init__.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/lsh_integration.py +5 -4
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/model_service/model_service.py +57 -46
- mcli_framework-8.0.15/src/mcli/workflow/notebook/__init__.py +18 -0
- mcli_framework-8.0.15/src/mcli/workflow/notebook/command_loader.py +518 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/notebook/notebook_cmd.py +8 -15
- mcli_framework-8.0.15/src/mcli/workflow/registry/__init__.py +0 -0
- mcli_framework-8.0.15/src/mcli/workflow/repo/__init__.py +0 -0
- mcli_framework-8.0.15/src/mcli/workflow/scheduler/__init__.py +25 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/scheduler/persistence.py +7 -6
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/scheduler/scheduler.py +11 -2
- mcli_framework-8.0.15/src/mcli/workflow/search/__init__.py +0 -0
- mcli_framework-8.0.15/src/mcli/workflow/secrets/__init__.py +5 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/secrets/secrets_cmd.py +1 -1
- mcli_framework-8.0.15/src/mcli/workflow/storage/__init__.py +5 -0
- mcli_framework-8.0.15/src/mcli/workflow/storage/storage_cmd.py +469 -0
- mcli_framework-8.0.15/src/mcli/workflow/sync/__init__.py +5 -0
- mcli_framework-8.0.15/src/mcli/workflow/videos/__init__.py +1 -0
- mcli_framework-8.0.15/src/mcli/workflow/wakatime/__init__.py +76 -0
- mcli_framework-8.0.15/src/mcli/workflow/workflow.py +247 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli_framework.egg-info/PKG-INFO +144 -167
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli_framework.egg-info/SOURCES.txt +113 -20
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli_framework.egg-info/requires.txt +4 -8
- mcli_framework-8.0.15/tests/cli/__init__.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/cli/test_workflow_creation_commands.py +20 -44
- mcli_framework-8.0.15/tests/e2e/__init__.py +0 -0
- mcli_framework-8.0.15/tests/fixtures/__init__.py +59 -0
- mcli_framework-8.0.15/tests/integration/__init__.py +0 -0
- mcli_framework-8.0.15/tests/integration/test_all_commands_comprehensive.py +941 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/integration/test_direct_file_execution.py +8 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/integration/test_folder_workflows_integration.py +0 -51
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/integration/test_notebook_workflows.py +5 -0
- mcli_framework-8.0.15/tests/performance/__init__.py +0 -0
- mcli_framework-8.0.15/tests/property/__init__.py +0 -0
- mcli_framework-8.0.15/tests/unit/__init__.py +0 -0
- mcli_framework-8.0.15/tests/unit/storage/__init__.py +1 -0
- mcli_framework-8.0.15/tests/unit/storage/test_cache.py +244 -0
- mcli_framework-8.0.15/tests/unit/storage/test_encryption.py +118 -0
- mcli_framework-8.0.15/tests/unit/storage/test_storacha_cli.py +286 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_dependencies.py +1 -46
- mcli_framework-8.0.15/tests/unit/test_health_cmd.py +610 -0
- mcli_framework-8.0.15/tests/unit/test_new_cmd.py +765 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_notebook_command_loader.py +146 -0
- mcli_framework-8.0.15/tests/unit/test_pyenv.py +365 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_store_cmd.py +3 -1
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_workflow_file_completion.py +13 -5
- mcli_framework-7.19.8/.github/workflows/main_mcli.yml +0 -76
- mcli_framework-7.19.8/src/mcli/app/edit_cmd.py +0 -118
- mcli_framework-7.19.8/src/mcli/app/lock_cmd.py +0 -428
- mcli_framework-7.19.8/src/mcli/app/new_cmd.py +0 -438
- mcli_framework-7.19.8/src/mcli/app/sync_cmd.py +0 -87
- mcli_framework-7.19.8/src/mcli/chat/chat.py +0 -2392
- mcli_framework-7.19.8/src/mcli/chat/command_rag.py +0 -510
- mcli_framework-7.19.8/src/mcli/chat/enhanced_chat.py +0 -643
- mcli_framework-7.19.8/src/mcli/chat/system_controller.py +0 -1010
- mcli_framework-7.19.8/src/mcli/chat/system_integration.py +0 -1015
- mcli_framework-7.19.8/src/mcli/cli.py +0 -24
- mcli_framework-7.19.8/src/mcli/lib/constants/messages.py +0 -96
- mcli_framework-7.19.8/src/mcli/lib/makefile_workflows.py +0 -249
- mcli_framework-7.19.8/src/mcli/lib/packagejson_workflows.py +0 -206
- mcli_framework-7.19.8/src/mcli/public/public.py +0 -4
- mcli_framework-7.19.8/src/mcli/workflow/notebook/command_loader.py +0 -248
- mcli_framework-7.19.8/src/mcli/workflow/sync_cmd.py +0 -446
- mcli_framework-7.19.8/src/mcli/workflow/workflow.py +0 -473
- mcli_framework-7.19.8/tests/demo_generate_graph.py +0 -79
- mcli_framework-7.19.8/tests/demo_hierarchical_transform.py +0 -412
- mcli_framework-7.19.8/tests/fixtures/chat_fixtures.py +0 -83
- mcli_framework-7.19.8/tests/integration/test_agent.py +0 -113
- mcli_framework-7.19.8/tests/integration/test_chat_client.py +0 -310
- mcli_framework-7.19.8/tests/integration/test_chat_system.py +0 -144
- mcli_framework-7.19.8/tests/run_tests.py +0 -84
- mcli_framework-7.19.8/tests/test_harness.py +0 -186
- mcli_framework-7.19.8/tests/test_openai_adapter.py +0 -242
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/.github/dependabot.yml +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/.github/workflows/build.yml +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/.github/workflows/codeql.yml +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/.github/workflows/publish-self-hosted.yml +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/.github/workflows/release.yml +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/LICENSE +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/mcli_rust/Cargo.toml +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/mcli_rust/src/command_parser.rs +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/mcli_rust/src/file_watcher.rs +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/mcli_rust/src/lib.rs +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/mcli_rust/src/process_manager.rs +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/mcli_rust/src/tfidf.rs +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/setup.cfg +0 -0
- /mcli_framework-7.19.8/src/mcli/workflow/docker/docker.py → /mcli_framework-8.0.15/src/mcli/app/model/__init__.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/app/remove_cmd.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/app/rm_cmd.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/config.toml +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/api/daemon_client.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/api/daemon_client_local.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/api/daemon_decorator.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/auth/auth.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/auth/aws_manager.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/auth/azure_manager.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/auth/credential_manager.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/auth/gcp_manager.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/auth/key_manager.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/auth/mcli_manager.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/auth/token_manager.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/config/config.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/constants/defaults.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/discovery/__init__.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/discovery/command_discovery.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/erd/erd.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/erd/generate_graph.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/files/files.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/folder_workflows.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/fs/fs.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/lib.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/optional_deps.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/performance/optimizer.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/performance/uvloop_config.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/pickles/pickles.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/search/cached_vectorizer.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/secrets/commands.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/services/data_pipeline.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/services/lsh_client.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/shell/shell.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/toml/toml.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/ui/styling.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/lib/watcher/watcher.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/api/app.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/api/middleware.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/api/routers/admin_router.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/api/routers/auth_router.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/api/routers/backtest_router.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/api/routers/data_router.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/api/routers/model_router.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/api/routers/monitoring_router.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/api/routers/portfolio_router.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/api/routers/prediction_router.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/api/routers/trade_router.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/api/routers/websocket_router.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/api/schemas.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/auth/auth_manager.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/auth/models.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/auth/permissions.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/backtesting/backtest_engine.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/backtesting/performance_metrics.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/cache.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/cli/main.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/config/settings.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/configs/dvc_config.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/dashboard/app.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/dashboard/app_integrated.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/dashboard/app_supabase.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/dashboard/app_training.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/dashboard/cli.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/dashboard/common.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/dashboard/components/charts.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/dashboard/components/metrics.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/dashboard/components/tables.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/dashboard/overview.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/dashboard/pages/cicd.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/dashboard/pages/debug_dependencies.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/dashboard/pages/gravity_viz.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/dashboard/pages/monte_carlo_predictions.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/dashboard/pages/predictions_enhanced.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/dashboard/pages/scrapers_and_logs.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/dashboard/pages/test_portfolio.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/dashboard/pages/trading.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/dashboard/pages/workflows.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/dashboard/streamlit_extras_utils.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/dashboard/styles.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/dashboard/utils.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/dashboard/warning_suppression.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/data_ingestion/api_connectors.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/data_ingestion/data_pipeline.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/data_ingestion/stream_processor.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/database/migrations/env.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/database/models.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/database/session.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/experimentation/ab_testing.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/features/ensemble_features.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/features/recommendation_engine.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/features/stock_features.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/features/test_feature_engineering.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/logging.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/mlops/data_versioning.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/mlops/model_serving.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/mlops/pipeline_orchestrator.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/models/base_models.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/models/ensemble_models.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/models/recommendation_models.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/models/test_models.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/monitoring/drift_detection.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/monitoring/metrics.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/optimization/optimize.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/optimization/portfolio_optimizer.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/predictions/monte_carlo.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/predictions/prediction_engine.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/preprocessing/data_cleaners.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/preprocessing/feature_extractors.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/preprocessing/ml_pipeline.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/preprocessing/test_preprocessing.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/scripts/populate_sample_data.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/tasks.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/tests/test_integration.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/tests/test_training_dashboard.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/trading/alpaca_client.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/trading/migrations.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/trading/models.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/trading/paper_trading.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/trading/risk_management.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/trading/trading_service.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/training/train.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/ml/training/train_model.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/mygroup/test_cmd.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/public/oi/oi.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/self/test_cmd.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/self/visual_cmd.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/daemon/async_command_database.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/daemon/async_process_manager.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/daemon/client.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/daemon/daemon_api.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/daemon/enhanced_daemon.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/daemon/process_cli.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/daemon/process_manager.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/daemon/test_daemon.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/dashboard/dashboard_cmd.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/doc_convert.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/gcloud/config.toml +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/gcloud/gcloud.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/git_commit/ai_service.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/model_service/client.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/model_service/download_and_run_efficient_models.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/model_service/lightweight_embedder.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/model_service/lightweight_model_server.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/model_service/lightweight_test.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/model_service/ollama_efficient_runner.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/model_service/openai_adapter.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/model_service/pdf_processor.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/model_service/test_efficient_runner.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/model_service/test_example.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/model_service/test_integration.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/model_service/test_new_features.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/notebook/converter.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/notebook/executor.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/notebook/schema.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/notebook/validator.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/openai/openai.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/registry/registry.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/repo/repo.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/scheduler/cron_parser.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/scheduler/job.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/scheduler/monitor.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/sync/test_cmd.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli/workflow/wakatime/wakatime.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli_framework.egg-info/dependency_links.txt +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli_framework.egg-info/entry_points.txt +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/src/mcli_framework.egg-info/top_level.txt +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/cli/test_all_commands.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/cli/test_app_logs_cmd.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/cli/test_app_redis_cmd.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/cli/test_logs_cmd.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/cli/test_main_app.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/cli/test_model_cmd.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/cli/test_self_cmd.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/cli/test_self_cmd_plugins.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/cli/test_self_cmd_utilities.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/cli/test_workflow_file.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/cli/test_workflow_gcloud.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/cli/test_workflow_registry.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/conftest.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/e2e/test_complete_workflows.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/e2e/test_model_workflow.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/e2e/test_new_user_workflow.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/e2e/test_update_workflow.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/fixtures/cli_fixtures.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/fixtures/data_fixtures.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/fixtures/db_fixtures.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/fixtures/model_fixtures.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/integration/test_daemon_server.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/integration/test_e2e_dashboard_lsh_supabase.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/integration/test_flask_webapp.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/integration/test_gcloud_services.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/integration/test_ml_auth.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/integration/test_ml_data_pipeline.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/integration/test_ml_models.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/integration/test_ml_pipeline.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/integration/test_module_imports.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/integration/test_oi_service.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/integration/test_repo_operations.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/integration/test_scheduler_integration.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/integration/test_service_registry.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/integration/test_supabase_live_connection.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/integration/test_video_processing.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/integration/test_wakatime_api.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/integration/test_webapp_full.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/integration/test_workflow.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/integration/test_workflow_commands.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_api_utils.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_async_process_manager.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_auth_modules.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_bug_fixes.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_config.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_custom_commands.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_custom_commands_filtering.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_daemon_api.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_dashboard_components.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_dashboard_functions.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_dashboard_pages.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_doc_convert_workflow.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_emulator_workflow.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_erd_generation.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_erd_generic.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_erd_imports.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_folder_workflows.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_git_commit_workflow.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_lib_auth.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_lib_files.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_lib_utils.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_logger.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_ml_preprocessing.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_notebook_executor.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_optional_deps.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_paths.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_pdf_compress.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_prediction_engine.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_regression.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_scheduler.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_scheduler_cron_parser.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_scheduler_job.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_scheduler_monitor.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_scheduler_persistence.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_self_update.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_supabase_connection.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_supabase_pagination.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_toml_utils.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_trading_imports.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_ui_rich.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/test_uv_compat.py +0 -0
- {mcli_framework-7.19.8 → mcli_framework-8.0.15}/tests/unit/workflow/test_notebook.py +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Dependency Review configuration
|
|
2
2
|
# https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review
|
|
3
3
|
|
|
4
|
-
# Fail
|
|
5
|
-
fail-on-severity:
|
|
4
|
+
# Fail on moderate and above vulnerabilities
|
|
5
|
+
fail-on-severity: moderate
|
|
6
6
|
|
|
7
7
|
# Allow specific licenses commonly used in npm packages
|
|
8
8
|
allow-licenses:
|
|
@@ -14,6 +14,7 @@ jobs:
|
|
|
14
14
|
lint-and-format:
|
|
15
15
|
name: Lint and Format Check
|
|
16
16
|
runs-on: ubuntu-latest
|
|
17
|
+
continue-on-error: true # Non-blocking: ML modules have pre-existing formatting issues
|
|
17
18
|
|
|
18
19
|
steps:
|
|
19
20
|
- name: Checkout code
|
|
@@ -40,9 +41,16 @@ jobs:
|
|
|
40
41
|
run: python tools/lint_hardcoded_strings.py --check-all --json
|
|
41
42
|
continue-on-error: true # Non-blocking until codebase refactoring is complete (13k+ violations)
|
|
42
43
|
|
|
43
|
-
- name: Type checking with mypy
|
|
44
|
+
- name: Type checking with mypy (full codebase)
|
|
44
45
|
run: mypy src/ --ignore-missing-imports
|
|
45
|
-
continue-on-error: true # Non-blocking due to type errors in
|
|
46
|
+
continue-on-error: true # Non-blocking due to type errors in remaining modules
|
|
47
|
+
|
|
48
|
+
- name: Type checking with mypy (priority modules)
|
|
49
|
+
run: |
|
|
50
|
+
# Check priority modules that have improved type annotations (issue #40)
|
|
51
|
+
# These modules have fewer errors and are gradually being fully typed
|
|
52
|
+
mypy src/mcli/lib/logger/logger.py src/mcli/lib/custom_commands.py --ignore-missing-imports
|
|
53
|
+
continue-on-error: true # Non-blocking until all function signatures are typed
|
|
46
54
|
|
|
47
55
|
test-rust:
|
|
48
56
|
name: Test Rust Extensions
|
|
@@ -86,7 +94,7 @@ jobs:
|
|
|
86
94
|
fail-fast: false
|
|
87
95
|
matrix:
|
|
88
96
|
os: [ubuntu-latest, macos-latest]
|
|
89
|
-
python-version: ["3.
|
|
97
|
+
python-version: ["3.10", "3.11", "3.12"]
|
|
90
98
|
|
|
91
99
|
steps:
|
|
92
100
|
- name: Checkout code
|
|
@@ -121,7 +129,7 @@ jobs:
|
|
|
121
129
|
run: |
|
|
122
130
|
cd mcli_rust
|
|
123
131
|
maturin develop --release || maturin develop || echo "Warning: Rust extension build failed, continuing without extensions"
|
|
124
|
-
continue-on-error: ${{ matrix.python-version == '3.12'
|
|
132
|
+
continue-on-error: ${{ matrix.python-version == '3.12' }}
|
|
125
133
|
|
|
126
134
|
- name: Run Python tests with coverage
|
|
127
135
|
run: |
|
|
@@ -162,21 +170,36 @@ jobs:
|
|
|
162
170
|
- name: Set up Rust
|
|
163
171
|
uses: dtolnay/rust-toolchain@stable
|
|
164
172
|
|
|
173
|
+
- name: Create virtual environment
|
|
174
|
+
run: |
|
|
175
|
+
python -m venv .venv
|
|
176
|
+
echo "VIRTUAL_ENV=${{ github.workspace }}/.venv" >> $GITHUB_ENV
|
|
177
|
+
echo "${{ github.workspace }}/.venv/bin" >> $GITHUB_PATH
|
|
178
|
+
|
|
165
179
|
- name: Install dependencies
|
|
166
180
|
run: |
|
|
167
|
-
python -m pip install --upgrade pip
|
|
168
|
-
pip install maturin
|
|
169
|
-
pip install -e .[dev]
|
|
181
|
+
.venv/bin/python -m pip install --upgrade pip
|
|
182
|
+
.venv/bin/pip install maturin
|
|
183
|
+
.venv/bin/pip install -e .[dev]
|
|
170
184
|
|
|
171
185
|
- name: Build Rust extensions
|
|
186
|
+
id: rust_build
|
|
172
187
|
run: |
|
|
173
188
|
cd mcli_rust
|
|
174
|
-
maturin develop --release
|
|
189
|
+
if maturin develop --release; then
|
|
190
|
+
echo "rust_available=true" >> $GITHUB_OUTPUT
|
|
191
|
+
elif maturin develop; then
|
|
192
|
+
echo "rust_available=true" >> $GITHUB_OUTPUT
|
|
193
|
+
else
|
|
194
|
+
echo "rust_available=false" >> $GITHUB_OUTPUT
|
|
195
|
+
echo "Warning: Rust extension build failed"
|
|
196
|
+
fi
|
|
175
197
|
continue-on-error: true
|
|
176
198
|
|
|
177
199
|
- name: Test Rust-Python integration
|
|
200
|
+
if: steps.rust_build.outputs.rust_available == 'true'
|
|
178
201
|
run: |
|
|
179
|
-
python -c "
|
|
202
|
+
.venv/bin/python -c "
|
|
180
203
|
import mcli_rust
|
|
181
204
|
print('✅ Rust extensions imported successfully')
|
|
182
205
|
|
|
@@ -203,17 +226,17 @@ jobs:
|
|
|
203
226
|
|
|
204
227
|
- name: Test performance monitoring
|
|
205
228
|
run: |
|
|
206
|
-
mcli self performance --detailed
|
|
229
|
+
.venv/bin/mcli self performance --detailed
|
|
207
230
|
|
|
208
231
|
- name: Test visual effects
|
|
209
232
|
run: |
|
|
210
|
-
mcli visual message --style success "Integration tests passed!"
|
|
211
|
-
mcli visual spinner --spinner-type rust --duration 2 --message "Testing spinner..."
|
|
233
|
+
.venv/bin/mcli self visual message --style success "Integration tests passed!"
|
|
234
|
+
.venv/bin/mcli self visual spinner --spinner-type rust --duration 2 --message "Testing spinner..."
|
|
212
235
|
|
|
213
236
|
security-scan:
|
|
214
237
|
name: Security Scan
|
|
215
238
|
runs-on: ubuntu-latest
|
|
216
|
-
continue-on-error: true # Non-blocking
|
|
239
|
+
continue-on-error: true # Non-blocking: CodeQL permissions and Trivy issues on this repo
|
|
217
240
|
|
|
218
241
|
steps:
|
|
219
242
|
- name: Checkout code
|
|
@@ -231,15 +254,18 @@ jobs:
|
|
|
231
254
|
|
|
232
255
|
- name: Run Bandit security linter
|
|
233
256
|
run: |
|
|
234
|
-
|
|
235
|
-
bandit -r src/
|
|
236
|
-
|
|
257
|
+
# Run with skip list for CLI tool false positives
|
|
258
|
+
bandit -r src/ \
|
|
259
|
+
--severity-level high \
|
|
260
|
+
--skip B101,B102,B104,B108,B113,B301,B306,B310,B324,B404,B602,B603,B604,B605,B607 \
|
|
261
|
+
-f json -o bandit-report.json || true
|
|
262
|
+
# Also run a summary check (non-blocking)
|
|
263
|
+
bandit -r src/ -ll || true
|
|
237
264
|
|
|
238
265
|
- name: Run Safety dependency check
|
|
239
266
|
run: |
|
|
240
267
|
safety check --json > safety-report.json || true
|
|
241
|
-
safety check
|
|
242
|
-
continue-on-error: true
|
|
268
|
+
safety check --ignore 59234,71691,71584,71578,71577,71692,71579,71587,71693,64459,64396
|
|
243
269
|
|
|
244
270
|
- name: Run Trivy vulnerability scanner
|
|
245
271
|
uses: aquasecurity/trivy-action@master
|
|
@@ -253,7 +279,6 @@ jobs:
|
|
|
253
279
|
- name: Upload Trivy scan results
|
|
254
280
|
uses: github/codeql-action/upload-sarif@v3
|
|
255
281
|
if: always()
|
|
256
|
-
continue-on-error: true
|
|
257
282
|
with:
|
|
258
283
|
sarif_file: 'trivy-results.sarif'
|
|
259
284
|
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
name: Validate Documentation Links
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main, develop]
|
|
6
|
+
paths:
|
|
7
|
+
- 'docs/**'
|
|
8
|
+
- 'README.md'
|
|
9
|
+
- 'CONTRIBUTING.md'
|
|
10
|
+
- 'tools/validate_doc_links.py'
|
|
11
|
+
pull_request:
|
|
12
|
+
branches: [main]
|
|
13
|
+
paths:
|
|
14
|
+
- 'docs/**'
|
|
15
|
+
- 'README.md'
|
|
16
|
+
- 'CONTRIBUTING.md'
|
|
17
|
+
- 'tools/validate_doc_links.py'
|
|
18
|
+
workflow_dispatch:
|
|
19
|
+
|
|
20
|
+
env:
|
|
21
|
+
PYTHON_VERSION: "3.11"
|
|
22
|
+
|
|
23
|
+
jobs:
|
|
24
|
+
validate-links:
|
|
25
|
+
name: Validate Documentation Links
|
|
26
|
+
runs-on: ubuntu-latest
|
|
27
|
+
|
|
28
|
+
steps:
|
|
29
|
+
- name: Checkout code
|
|
30
|
+
uses: actions/checkout@v4
|
|
31
|
+
|
|
32
|
+
- name: Set up Python
|
|
33
|
+
uses: actions/setup-python@v4
|
|
34
|
+
with:
|
|
35
|
+
python-version: ${{ env.PYTHON_VERSION }}
|
|
36
|
+
|
|
37
|
+
- name: Install dependencies
|
|
38
|
+
run: |
|
|
39
|
+
python -m pip install --upgrade pip
|
|
40
|
+
pip install requests
|
|
41
|
+
|
|
42
|
+
- name: Validate internal links
|
|
43
|
+
run: python tools/validate_doc_links.py README.md docs/
|
|
44
|
+
continue-on-error: true # Non-blocking until broken links are fixed
|
|
45
|
+
|
|
46
|
+
- name: Validate external links (optional)
|
|
47
|
+
run: python tools/validate_doc_links.py --external --timeout 15 README.md docs/
|
|
48
|
+
continue-on-error: true # External links may timeout or be temporarily unavailable
|
|
@@ -135,10 +135,10 @@ jobs:
|
|
|
135
135
|
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
|
|
136
136
|
skip-existing: true
|
|
137
137
|
|
|
138
|
-
# Job 4: Publish to Production PyPI (main branch or
|
|
138
|
+
# Job 4: Publish to Production PyPI (main branch, release, or manual dispatch)
|
|
139
139
|
publish-pypi:
|
|
140
140
|
name: Publish to PyPI
|
|
141
|
-
if: (github.event_name == 'push' && github.ref == 'refs/heads/main') || github.event_name == 'release'
|
|
141
|
+
if: (github.event_name == 'push' && github.ref == 'refs/heads/main') || github.event_name == 'release' || github.event_name == 'workflow_dispatch'
|
|
142
142
|
needs: build
|
|
143
143
|
runs-on: ubuntu-latest
|
|
144
144
|
environment:
|
|
@@ -25,7 +25,7 @@ jobs:
|
|
|
25
25
|
- name: Dependency Review
|
|
26
26
|
uses: actions/dependency-review-action@v4
|
|
27
27
|
with:
|
|
28
|
-
fail-on-severity:
|
|
28
|
+
fail-on-severity: moderate
|
|
29
29
|
config-file: './.github/dependency-review-config.yml'
|
|
30
30
|
|
|
31
31
|
bandit:
|
|
@@ -44,13 +44,24 @@ jobs:
|
|
|
44
44
|
run: pip install bandit[toml]
|
|
45
45
|
|
|
46
46
|
- name: Run Bandit
|
|
47
|
-
run:
|
|
47
|
+
run: |
|
|
48
|
+
# Run bandit with severity filter (only fail on HIGH severity issues)
|
|
49
|
+
# Skip common false positives for CLI tools
|
|
50
|
+
bandit -r src/ \
|
|
51
|
+
--severity-level high \
|
|
52
|
+
--skip B101,B102,B104,B108,B113,B301,B306,B310,B324,B404,B602,B603,B604,B605,B607 \
|
|
53
|
+
-f json -o bandit-report.json || true
|
|
54
|
+
|
|
55
|
+
# Also generate a full report for review (non-blocking)
|
|
56
|
+
bandit -r src/ -f txt -o bandit-full-report.txt || true
|
|
48
57
|
|
|
49
58
|
- name: Upload Bandit results
|
|
50
59
|
uses: actions/upload-artifact@v4
|
|
51
60
|
with:
|
|
52
61
|
name: bandit-results
|
|
53
|
-
path:
|
|
62
|
+
path: |
|
|
63
|
+
bandit-report.json
|
|
64
|
+
bandit-full-report.txt
|
|
54
65
|
|
|
55
66
|
safety:
|
|
56
67
|
name: Safety Check
|
|
@@ -68,7 +79,7 @@ jobs:
|
|
|
68
79
|
run: pip install safety
|
|
69
80
|
|
|
70
81
|
- name: Run Safety Check
|
|
71
|
-
run: safety check --json > safety-report.json ||
|
|
82
|
+
run: safety check --json > safety-report.json || safety check --ignore 59234,71691,71584,71578,71577,71692,71579,71587,71693,64459,64396
|
|
72
83
|
|
|
73
84
|
- name: Upload Safety results
|
|
74
85
|
uses: actions/upload-artifact@v4
|
|
@@ -100,6 +111,8 @@ jobs:
|
|
|
100
111
|
secret-scan:
|
|
101
112
|
name: Secret Scanning
|
|
102
113
|
runs-on: ubuntu-latest
|
|
114
|
+
# Skip on schedule - TruffleHog requires different base/head commits for diff scanning
|
|
115
|
+
if: github.event_name != 'schedule'
|
|
103
116
|
steps:
|
|
104
117
|
- name: Checkout code
|
|
105
118
|
uses: actions/checkout@v4
|