mcli-framework 7.10.1__tar.gz → 7.11.0__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.

Files changed (355) hide show
  1. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/.github/dependabot.yml +20 -22
  2. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/.github/workflows/ci.yml +48 -6
  3. mcli_framework-7.11.0/.github/workflows/codeql.yml +43 -0
  4. mcli_framework-7.11.0/.github/workflows/main_mcli.yml +76 -0
  5. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/PKG-INFO +86 -55
  6. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/README.md +85 -54
  7. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/pyproject.toml +37 -1
  8. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/app/commands_cmd.py +150 -58
  9. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/app/main.py +21 -27
  10. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/custom_commands.py +62 -12
  11. mcli_framework-7.11.0/src/mcli/lib/optional_deps.py +240 -0
  12. mcli_framework-7.11.0/src/mcli/lib/paths.py +218 -0
  13. mcli_framework-7.11.0/src/mcli/self/migrate_cmd.py +261 -0
  14. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/self/self_cmd.py +8 -0
  15. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/git_commit/ai_service.py +13 -2
  16. mcli_framework-7.11.0/src/mcli/workflow/notebook/converter.py +375 -0
  17. mcli_framework-7.11.0/src/mcli/workflow/notebook/notebook_cmd.py +441 -0
  18. mcli_framework-7.11.0/src/mcli/workflow/notebook/schema.py +402 -0
  19. mcli_framework-7.11.0/src/mcli/workflow/notebook/validator.py +313 -0
  20. mcli_framework-7.11.0/src/mcli/workflow/secrets/secrets_cmd.py +192 -0
  21. mcli_framework-7.11.0/src/mcli/workflow/workflow.py +48 -0
  22. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli_framework.egg-info/PKG-INFO +86 -55
  23. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli_framework.egg-info/SOURCES.txt +13 -27
  24. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/cli/test_app_redis_cmd.py +1 -0
  25. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/cli/test_model_cmd.py +3 -0
  26. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/cli/test_workflow_file.py +3 -0
  27. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/cli/test_workflow_registry.py +3 -0
  28. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/e2e/test_model_workflow.py +3 -0
  29. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/e2e/test_new_user_workflow.py +3 -0
  30. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_chat_client.py +3 -0
  31. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_lsh_client.py +3 -0
  32. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_ml_auth.py +3 -0
  33. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_ml_models.py +4 -0
  34. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_module_imports.py +3 -3
  35. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_async_process_manager.py +5 -0
  36. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_custom_commands.py +6 -0
  37. mcli_framework-7.11.0/tests/unit/test_custom_commands_filtering.py +164 -0
  38. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_dashboard_functions.py +5 -0
  39. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_dashboard_pages.py +1 -0
  40. mcli_framework-7.11.0/tests/unit/test_optional_deps.py +211 -0
  41. mcli_framework-7.11.0/tests/unit/workflow/test_notebook.py +443 -0
  42. mcli_framework-7.10.1/src/mcli/lib/paths.py +0 -94
  43. mcli_framework-7.10.1/src/mcli/ml/features/political_features.py +0 -677
  44. mcli_framework-7.10.1/src/mcli/ml/preprocessing/politician_trading_preprocessor.py +0 -570
  45. mcli_framework-7.10.1/src/mcli/workflow/politician_trading/config.py +0 -134
  46. mcli_framework-7.10.1/src/mcli/workflow/politician_trading/connectivity.py +0 -492
  47. mcli_framework-7.10.1/src/mcli/workflow/politician_trading/data_sources.py +0 -654
  48. mcli_framework-7.10.1/src/mcli/workflow/politician_trading/database.py +0 -412
  49. mcli_framework-7.10.1/src/mcli/workflow/politician_trading/demo.py +0 -249
  50. mcli_framework-7.10.1/src/mcli/workflow/politician_trading/models.py +0 -327
  51. mcli_framework-7.10.1/src/mcli/workflow/politician_trading/monitoring.py +0 -413
  52. mcli_framework-7.10.1/src/mcli/workflow/politician_trading/scrapers.py +0 -1074
  53. mcli_framework-7.10.1/src/mcli/workflow/politician_trading/scrapers_california.py +0 -434
  54. mcli_framework-7.10.1/src/mcli/workflow/politician_trading/scrapers_corporate_registry.py +0 -797
  55. mcli_framework-7.10.1/src/mcli/workflow/politician_trading/scrapers_eu.py +0 -376
  56. mcli_framework-7.10.1/src/mcli/workflow/politician_trading/scrapers_free_sources.py +0 -509
  57. mcli_framework-7.10.1/src/mcli/workflow/politician_trading/scrapers_third_party.py +0 -373
  58. mcli_framework-7.10.1/src/mcli/workflow/politician_trading/scrapers_uk.py +0 -378
  59. mcli_framework-7.10.1/src/mcli/workflow/politician_trading/scrapers_us_states.py +0 -471
  60. mcli_framework-7.10.1/src/mcli/workflow/politician_trading/seed_database.py +0 -520
  61. mcli_framework-7.10.1/src/mcli/workflow/politician_trading/supabase_functions.py +0 -354
  62. mcli_framework-7.10.1/src/mcli/workflow/politician_trading/workflow.py +0 -879
  63. mcli_framework-7.10.1/src/mcli/workflow/workflow.py +0 -18
  64. mcli_framework-7.10.1/tests/integration/test_california_scraper.py +0 -86
  65. mcli_framework-7.10.1/tests/integration/test_congress_scraper.py +0 -90
  66. mcli_framework-7.10.1/tests/integration/test_daemon_client.py +0 -356
  67. mcli_framework-7.10.1/tests/integration/test_politician_trading.py +0 -358
  68. mcli_framework-7.10.1/tests/integration/test_uk_scraper.py +0 -86
  69. mcli_framework-7.10.1/tests/integration/test_us_states_scraper.py +0 -95
  70. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/.github/workflows/build.yml +0 -0
  71. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/.github/workflows/ml-pipeline.yml +0 -0
  72. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/.github/workflows/publish-self-hosted.yml +0 -0
  73. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/.github/workflows/publish.yml +0 -0
  74. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/.github/workflows/release.yml +0 -0
  75. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/.github/workflows/security.yml +0 -0
  76. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/.github/workflows/test.yml +0 -0
  77. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/LICENSE +0 -0
  78. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/MANIFEST.in +0 -0
  79. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/mcli_rust/Cargo.toml +0 -0
  80. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/mcli_rust/src/command_parser.rs +0 -0
  81. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/mcli_rust/src/file_watcher.rs +0 -0
  82. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/mcli_rust/src/lib.rs +0 -0
  83. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/mcli_rust/src/process_manager.rs +0 -0
  84. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/mcli_rust/src/tfidf.rs +0 -0
  85. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/setup.cfg +0 -0
  86. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/app/completion_helpers.py +0 -0
  87. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/app/model/model.py +0 -0
  88. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/app/model_cmd.py +0 -0
  89. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/app/video/video.py +0 -0
  90. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/chat/chat.py +0 -0
  91. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/chat/command_rag.py +0 -0
  92. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/chat/enhanced_chat.py +0 -0
  93. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/chat/system_controller.py +0 -0
  94. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/chat/system_integration.py +0 -0
  95. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/cli.py +0 -0
  96. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/config.toml +0 -0
  97. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/api/api.py +0 -0
  98. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/api/daemon_client.py +0 -0
  99. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/api/daemon_client_local.py +0 -0
  100. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/api/daemon_decorator.py +0 -0
  101. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/api/mcli_decorators.py +0 -0
  102. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/auth/auth.py +0 -0
  103. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/auth/aws_manager.py +0 -0
  104. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/auth/azure_manager.py +0 -0
  105. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/auth/credential_manager.py +0 -0
  106. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/auth/gcp_manager.py +0 -0
  107. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/auth/key_manager.py +0 -0
  108. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/auth/mcli_manager.py +0 -0
  109. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/auth/token_manager.py +0 -0
  110. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/auth/token_util.py +0 -0
  111. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/config/config.py +0 -0
  112. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/discovery/__init__.py +0 -0
  113. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/discovery/command_discovery.py +0 -0
  114. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/erd/erd.py +0 -0
  115. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/erd/generate_graph.py +0 -0
  116. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/files/files.py +0 -0
  117. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/fs/fs.py +0 -0
  118. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/lib.py +0 -0
  119. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/logger/logger.py +0 -0
  120. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/performance/optimizer.py +0 -0
  121. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/performance/rust_bridge.py +0 -0
  122. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/performance/uvloop_config.py +0 -0
  123. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/pickles/pickles.py +0 -0
  124. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/search/cached_vectorizer.py +0 -0
  125. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/secrets/commands.py +0 -0
  126. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/secrets/manager.py +0 -0
  127. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/secrets/repl.py +0 -0
  128. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/secrets/store.py +0 -0
  129. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/services/data_pipeline.py +0 -0
  130. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/services/lsh_client.py +0 -0
  131. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/services/redis_service.py +0 -0
  132. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/shell/shell.py +0 -0
  133. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/toml/toml.py +0 -0
  134. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/ui/styling.py +0 -0
  135. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/ui/visual_effects.py +0 -0
  136. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/lib/watcher/watcher.py +0 -0
  137. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/api/app.py +0 -0
  138. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/api/middleware.py +0 -0
  139. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/api/routers/admin_router.py +0 -0
  140. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/api/routers/auth_router.py +0 -0
  141. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/api/routers/backtest_router.py +0 -0
  142. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/api/routers/data_router.py +0 -0
  143. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/api/routers/model_router.py +0 -0
  144. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/api/routers/monitoring_router.py +0 -0
  145. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/api/routers/portfolio_router.py +0 -0
  146. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/api/routers/prediction_router.py +0 -0
  147. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/api/routers/trade_router.py +0 -0
  148. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/api/routers/websocket_router.py +0 -0
  149. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/api/schemas.py +0 -0
  150. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/auth/auth_manager.py +0 -0
  151. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/auth/models.py +0 -0
  152. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/auth/permissions.py +0 -0
  153. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/backtesting/backtest_engine.py +0 -0
  154. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/backtesting/performance_metrics.py +0 -0
  155. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/backtesting/run.py +0 -0
  156. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/cache.py +0 -0
  157. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/cli/main.py +0 -0
  158. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/config/settings.py +0 -0
  159. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/configs/dvc_config.py +0 -0
  160. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/configs/mlflow_config.py +0 -0
  161. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/configs/mlops_manager.py +0 -0
  162. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/dashboard/app.py +0 -0
  163. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/dashboard/app_integrated.py +0 -0
  164. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/dashboard/app_supabase.py +0 -0
  165. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/dashboard/app_training.py +0 -0
  166. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/dashboard/cli.py +0 -0
  167. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/dashboard/common.py +0 -0
  168. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/dashboard/components/charts.py +0 -0
  169. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/dashboard/components/metrics.py +0 -0
  170. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/dashboard/components/tables.py +0 -0
  171. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/dashboard/overview.py +0 -0
  172. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/dashboard/pages/cicd.py +0 -0
  173. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/dashboard/pages/debug_dependencies.py +0 -0
  174. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/dashboard/pages/gravity_viz.py +0 -0
  175. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/dashboard/pages/monte_carlo_predictions.py +0 -0
  176. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/dashboard/pages/predictions_enhanced.py +0 -0
  177. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/dashboard/pages/scrapers_and_logs.py +0 -0
  178. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/dashboard/pages/test_portfolio.py +0 -0
  179. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/dashboard/pages/trading.py +0 -0
  180. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/dashboard/pages/workflows.py +0 -0
  181. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/dashboard/streamlit_extras_utils.py +0 -0
  182. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/dashboard/styles.py +0 -0
  183. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/dashboard/utils.py +0 -0
  184. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/dashboard/warning_suppression.py +0 -0
  185. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/data_ingestion/api_connectors.py +0 -0
  186. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/data_ingestion/data_pipeline.py +0 -0
  187. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/data_ingestion/stream_processor.py +0 -0
  188. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/database/migrations/env.py +0 -0
  189. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/database/models.py +0 -0
  190. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/database/session.py +0 -0
  191. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/experimentation/ab_testing.py +0 -0
  192. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/features/ensemble_features.py +0 -0
  193. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/features/recommendation_engine.py +0 -0
  194. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/features/stock_features.py +0 -0
  195. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/features/test_feature_engineering.py +0 -0
  196. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/logging.py +0 -0
  197. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/mlops/data_versioning.py +0 -0
  198. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/mlops/experiment_tracker.py +0 -0
  199. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/mlops/model_serving.py +0 -0
  200. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/mlops/pipeline_orchestrator.py +0 -0
  201. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/models/base_models.py +0 -0
  202. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/models/ensemble_models.py +0 -0
  203. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/models/recommendation_models.py +0 -0
  204. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/models/test_models.py +0 -0
  205. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/monitoring/drift_detection.py +0 -0
  206. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/monitoring/metrics.py +0 -0
  207. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/optimization/optimize.py +0 -0
  208. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/optimization/portfolio_optimizer.py +0 -0
  209. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/predictions/monte_carlo.py +0 -0
  210. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/predictions/prediction_engine.py +0 -0
  211. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/preprocessing/data_cleaners.py +0 -0
  212. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/preprocessing/feature_extractors.py +0 -0
  213. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/preprocessing/ml_pipeline.py +0 -0
  214. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/preprocessing/test_preprocessing.py +0 -0
  215. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/scripts/populate_sample_data.py +0 -0
  216. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/serving/serve.py +0 -0
  217. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/tasks.py +0 -0
  218. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/tests/test_integration.py +0 -0
  219. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/tests/test_training_dashboard.py +0 -0
  220. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/trading/alpaca_client.py +0 -0
  221. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/trading/migrations.py +0 -0
  222. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/trading/models.py +0 -0
  223. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/trading/paper_trading.py +0 -0
  224. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/trading/risk_management.py +0 -0
  225. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/trading/trading_service.py +0 -0
  226. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/training/train.py +0 -0
  227. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/ml/training/train_model.py +0 -0
  228. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/mygroup/test_cmd.py +0 -0
  229. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/public/oi/oi.py +0 -0
  230. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/public/public.py +0 -0
  231. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/self/completion_cmd.py +0 -0
  232. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/self/logs_cmd.py +0 -0
  233. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/self/redis_cmd.py +0 -0
  234. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/self/store_cmd.py +0 -0
  235. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/self/test_cmd.py +0 -0
  236. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/self/visual_cmd.py +0 -0
  237. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/self/zsh_cmd.py +0 -0
  238. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/daemon/async_command_database.py +0 -0
  239. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/daemon/async_process_manager.py +0 -0
  240. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/daemon/client.py +0 -0
  241. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/daemon/daemon.py +0 -0
  242. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/daemon/daemon_api.py +0 -0
  243. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/daemon/enhanced_daemon.py +0 -0
  244. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/daemon/process_cli.py +0 -0
  245. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/daemon/process_manager.py +0 -0
  246. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/daemon/test_daemon.py +0 -0
  247. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/dashboard/dashboard_cmd.py +0 -0
  248. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/doc_convert.py +0 -0
  249. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/docker/docker.py +0 -0
  250. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/gcloud/config.toml +0 -0
  251. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/gcloud/gcloud.py +0 -0
  252. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/lsh_integration.py +0 -0
  253. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/model_service/client.py +0 -0
  254. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/model_service/download_and_run_efficient_models.py +0 -0
  255. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/model_service/lightweight_embedder.py +0 -0
  256. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/model_service/lightweight_model_server.py +0 -0
  257. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/model_service/lightweight_test.py +0 -0
  258. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/model_service/model_service.py +0 -0
  259. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/model_service/ollama_efficient_runner.py +0 -0
  260. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/model_service/openai_adapter.py +0 -0
  261. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/model_service/pdf_processor.py +0 -0
  262. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/model_service/test_efficient_runner.py +0 -0
  263. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/model_service/test_example.py +0 -0
  264. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/model_service/test_integration.py +0 -0
  265. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/model_service/test_new_features.py +0 -0
  266. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/openai/openai.py +0 -0
  267. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/registry/registry.py +0 -0
  268. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/repo/repo.py +0 -0
  269. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/scheduler/cron_parser.py +0 -0
  270. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/scheduler/job.py +0 -0
  271. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/scheduler/monitor.py +0 -0
  272. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/scheduler/persistence.py +0 -0
  273. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/scheduler/scheduler.py +0 -0
  274. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/sync/test_cmd.py +0 -0
  275. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli/workflow/wakatime/wakatime.py +0 -0
  276. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli_framework.egg-info/dependency_links.txt +0 -0
  277. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli_framework.egg-info/entry_points.txt +0 -0
  278. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli_framework.egg-info/requires.txt +0 -0
  279. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/src/mcli_framework.egg-info/top_level.txt +0 -0
  280. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/cli/test_all_commands.py +0 -0
  281. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/cli/test_app_logs_cmd.py +0 -0
  282. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/cli/test_logs_cmd.py +0 -0
  283. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/cli/test_main_app.py +0 -0
  284. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/cli/test_self_cmd.py +0 -0
  285. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/cli/test_self_cmd_commands.py +0 -0
  286. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/cli/test_self_cmd_plugins.py +0 -0
  287. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/cli/test_self_cmd_utilities.py +0 -0
  288. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/cli/test_workflow_gcloud.py +0 -0
  289. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/conftest.py +0 -0
  290. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/demo_generate_graph.py +0 -0
  291. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/demo_hierarchical_transform.py +0 -0
  292. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/e2e/test_complete_workflows.py +0 -0
  293. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/e2e/test_update_workflow.py +0 -0
  294. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/fixtures/chat_fixtures.py +0 -0
  295. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/fixtures/cli_fixtures.py +0 -0
  296. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/fixtures/data_fixtures.py +0 -0
  297. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/fixtures/db_fixtures.py +0 -0
  298. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/fixtures/model_fixtures.py +0 -0
  299. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_agent.py +0 -0
  300. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_chat_system.py +0 -0
  301. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_daemon_server.py +0 -0
  302. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_e2e_dashboard_lsh_supabase.py +0 -0
  303. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_flask_webapp.py +0 -0
  304. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_gcloud_services.py +0 -0
  305. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_lsh_service.py +0 -0
  306. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_ml_data_pipeline.py +0 -0
  307. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_ml_pipeline.py +0 -0
  308. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_oi_service.py +0 -0
  309. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_repo_operations.py +0 -0
  310. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_scheduler_integration.py +0 -0
  311. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_service_registry.py +0 -0
  312. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_supabase_live_connection.py +0 -0
  313. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_video_processing.py +0 -0
  314. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_wakatime_api.py +0 -0
  315. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_webapp_full.py +0 -0
  316. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_workflow.py +0 -0
  317. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/integration/test_workflow_commands.py +0 -0
  318. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/run_tests.py +0 -0
  319. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/test_harness.py +0 -0
  320. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/test_openai_adapter.py +0 -0
  321. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_api_utils.py +0 -0
  322. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_auth_modules.py +0 -0
  323. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_bug_fixes.py +0 -0
  324. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_config.py +0 -0
  325. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_daemon_api.py +0 -0
  326. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_dashboard_components.py +0 -0
  327. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_dependencies.py +0 -0
  328. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_doc_convert_workflow.py +0 -0
  329. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_emulator_workflow.py +0 -0
  330. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_erd_generation.py +0 -0
  331. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_erd_generic.py +0 -0
  332. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_erd_imports.py +0 -0
  333. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_git_commit_workflow.py +0 -0
  334. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_lib_auth.py +0 -0
  335. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_lib_files.py +0 -0
  336. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_lib_utils.py +0 -0
  337. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_logger.py +0 -0
  338. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_ml_preprocessing.py +0 -0
  339. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_paths.py +0 -0
  340. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_pdf_compress.py +0 -0
  341. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_prediction_engine.py +0 -0
  342. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_regression.py +0 -0
  343. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_scheduler.py +0 -0
  344. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_scheduler_cron_parser.py +0 -0
  345. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_scheduler_job.py +0 -0
  346. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_scheduler_monitor.py +0 -0
  347. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_scheduler_persistence.py +0 -0
  348. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_self_update.py +0 -0
  349. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_store_cmd.py +0 -0
  350. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_supabase_connection.py +0 -0
  351. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_supabase_pagination.py +0 -0
  352. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_toml_utils.py +0 -0
  353. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_trading_imports.py +0 -0
  354. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_ui_rich.py +0 -0
  355. {mcli_framework-7.10.1 → mcli_framework-7.11.0}/tests/unit/test_uv_compat.py +0 -0
@@ -1,6 +1,3 @@
1
- # Dependabot configuration for automated dependency updates
2
- # https://docs.github.com/en/code-security/dependabot
3
-
4
1
  version: 2
5
2
  updates:
6
3
  # Python dependencies
@@ -16,31 +13,15 @@ updates:
16
13
  - "dependencies"
17
14
  - "python"
18
15
  commit-message:
19
- prefix: "chore(deps)"
16
+ prefix: "chore"
20
17
  include: "scope"
21
- # Group minor and patch updates
22
- groups:
23
- development-dependencies:
24
- patterns:
25
- - "pytest*"
26
- - "black"
27
- - "isort"
28
- - "mypy"
29
- - "flake8*"
30
- update-types:
31
- - "minor"
32
- - "patch"
33
- production-dependencies:
34
- patterns:
35
- - "*"
36
- update-types:
37
- - "patch"
38
18
 
39
19
  # GitHub Actions
40
20
  - package-ecosystem: "github-actions"
41
21
  directory: "/"
42
22
  schedule:
43
23
  interval: "weekly"
24
+ day: "monday"
44
25
  open-pull-requests-limit: 5
45
26
  reviewers:
46
27
  - "gwicho38"
@@ -48,4 +29,21 @@ updates:
48
29
  - "dependencies"
49
30
  - "github-actions"
50
31
  commit-message:
51
- prefix: "chore(ci)"
32
+ prefix: "chore"
33
+ include: "scope"
34
+
35
+ # Docker
36
+ - package-ecosystem: "docker"
37
+ directory: "/"
38
+ schedule:
39
+ interval: "weekly"
40
+ day: "monday"
41
+ open-pull-requests-limit: 5
42
+ reviewers:
43
+ - "gwicho38"
44
+ labels:
45
+ - "dependencies"
46
+ - "docker"
47
+ commit-message:
48
+ prefix: "chore"
49
+ include: "scope"
@@ -113,10 +113,19 @@ jobs:
113
113
  cd mcli_rust
114
114
  maturin develop
115
115
 
116
- - name: Run Python tests
116
+ - name: Run Python tests with coverage
117
117
  run: |
118
- pytest tests/ -v --tb=short
119
-
118
+ pytest tests/ -v --tb=short --cov=src/mcli --cov-report=xml --cov-report=term-missing
119
+
120
+ - name: Upload coverage to Codecov
121
+ uses: codecov/codecov-action@v4
122
+ if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11'
123
+ with:
124
+ file: ./coverage.xml
125
+ flags: unittests
126
+ name: codecov-umbrella
127
+ fail_ci_if_error: false
128
+
120
129
  - name: Test CLI functionality
121
130
  run: |
122
131
  mcli version
@@ -191,11 +200,33 @@ jobs:
191
200
  security-scan:
192
201
  name: Security Scan
193
202
  runs-on: ubuntu-latest
194
-
203
+
195
204
  steps:
196
205
  - name: Checkout code
197
206
  uses: actions/checkout@v4
198
-
207
+
208
+ - name: Set up Python
209
+ uses: actions/setup-python@v4
210
+ with:
211
+ python-version: ${{ env.PYTHON_VERSION }}
212
+
213
+ - name: Install security tools
214
+ run: |
215
+ python -m pip install --upgrade pip
216
+ pip install bandit safety
217
+
218
+ - name: Run Bandit security linter
219
+ run: |
220
+ bandit -r src/ -f json -o bandit-report.json || true
221
+ bandit -r src/ -ll
222
+ continue-on-error: true
223
+
224
+ - name: Run Safety dependency check
225
+ run: |
226
+ safety check --json > safety-report.json || true
227
+ safety check
228
+ continue-on-error: true
229
+
199
230
  - name: Run Trivy vulnerability scanner
200
231
  uses: aquasecurity/trivy-action@master
201
232
  with:
@@ -203,7 +234,8 @@ jobs:
203
234
  scan-ref: '.'
204
235
  format: 'sarif'
205
236
  output: 'trivy-results.sarif'
206
-
237
+ severity: 'CRITICAL,HIGH'
238
+
207
239
  - name: Upload Trivy scan results
208
240
  uses: github/codeql-action/upload-sarif@v3
209
241
  if: always()
@@ -211,6 +243,16 @@ jobs:
211
243
  with:
212
244
  sarif_file: 'trivy-results.sarif'
213
245
 
246
+ - name: Upload security reports
247
+ uses: actions/upload-artifact@v3
248
+ if: always()
249
+ with:
250
+ name: security-reports
251
+ path: |
252
+ bandit-report.json
253
+ safety-report.json
254
+ retention-days: 30
255
+
214
256
  build-package:
215
257
  name: Build Distribution Package
216
258
  runs-on: ubuntu-latest
@@ -0,0 +1,43 @@
1
+ name: CodeQL Security Analysis
2
+
3
+ on:
4
+ push:
5
+ branches: [ main, develop ]
6
+ pull_request:
7
+ branches: [ main ]
8
+ schedule:
9
+ # Run at 00:00 every Sunday
10
+ - cron: '0 0 * * 0'
11
+ workflow_dispatch:
12
+
13
+ jobs:
14
+ analyze:
15
+ name: Analyze Code with CodeQL
16
+ runs-on: ubuntu-latest
17
+ permissions:
18
+ actions: read
19
+ contents: read
20
+ security-events: write
21
+
22
+ strategy:
23
+ fail-fast: false
24
+ matrix:
25
+ language: [ 'python' ]
26
+
27
+ steps:
28
+ - name: Checkout repository
29
+ uses: actions/checkout@v4
30
+
31
+ - name: Initialize CodeQL
32
+ uses: github/codeql-action/init@v3
33
+ with:
34
+ languages: ${{ matrix.language }}
35
+ queries: +security-and-quality
36
+
37
+ - name: Autobuild
38
+ uses: github/codeql-action/autobuild@v3
39
+
40
+ - name: Perform CodeQL Analysis
41
+ uses: github/codeql-action/analyze@v3
42
+ with:
43
+ category: "/language:${{ matrix.language }}"
@@ -0,0 +1,76 @@
1
+ # Docs for the Azure Web Apps Deploy action: https://github.com/Azure/webapps-deploy
2
+ # More GitHub Actions for Azure: https://github.com/Azure/actions
3
+ # More info on Python, GitHub Actions, and Azure App Service: https://aka.ms/python-webapps-actions
4
+
5
+ name: Build and deploy Python app to Azure Web App - mcli
6
+
7
+ on:
8
+ push:
9
+ branches:
10
+ - main
11
+ workflow_dispatch:
12
+
13
+ jobs:
14
+ build:
15
+ runs-on: ubuntu-latest
16
+ permissions:
17
+ contents: read #This is required for actions/checkout
18
+
19
+ steps:
20
+ - uses: actions/checkout@v4
21
+
22
+ - name: Set up Python version
23
+ uses: actions/setup-python@v5
24
+ with:
25
+ python-version: '3.x'
26
+
27
+ # 🛠️ Local Build Section (Optional)
28
+ # The following section in your workflow is designed to catch build issues early on the client side, before deployment. This can be helpful for debugging and validation. However, if this step significantly increases deployment time and early detection is not critical for your workflow, you may remove this section to streamline the deployment process.
29
+ - name: Create and Start virtual environment and Install dependencies
30
+ run: |
31
+ python -m venv antenv
32
+ source antenv/bin/activate
33
+ pip install -r requirements.txt
34
+
35
+ # By default, when you enable GitHub CI/CD integration through the Azure portal, the platform automatically sets the SCM_DO_BUILD_DURING_DEPLOYMENT application setting to true. This triggers the use of Oryx, a build engine that handles application compilation and dependency installation (e.g., pip install) directly on the platform during deployment. Hence, we exclude the antenv virtual environment directory from the deployment artifact to reduce the payload size.
36
+ - name: Upload artifact for deployment jobs
37
+ uses: actions/upload-artifact@v4
38
+ with:
39
+ name: python-app
40
+ path: |
41
+ .
42
+ !antenv/
43
+
44
+ # 🚫 Opting Out of Oryx Build
45
+ # If you prefer to disable the Oryx build process during deployment, follow these steps:
46
+ # 1. Remove the SCM_DO_BUILD_DURING_DEPLOYMENT app setting from your Azure App Service Environment variables.
47
+ # 2. Refer to sample workflows for alternative deployment strategies: https://github.com/Azure/actions-workflow-samples/tree/master/AppService
48
+
49
+
50
+ deploy:
51
+ runs-on: ubuntu-latest
52
+ needs: build
53
+ permissions:
54
+ id-token: write #This is required for requesting the JWT
55
+ contents: read #This is required for actions/checkout
56
+
57
+ steps:
58
+ - name: Download artifact from build job
59
+ uses: actions/download-artifact@v4
60
+ with:
61
+ name: python-app
62
+
63
+ - name: Login to Azure
64
+ uses: azure/login@v2
65
+ with:
66
+ client-id: ${{ secrets.AZUREAPPSERVICE_CLIENTID_83BA9E673F8446BE82F742FB6394A06F }}
67
+ tenant-id: ${{ secrets.AZUREAPPSERVICE_TENANTID_6D1336E8E2224AF899A4E08410F7A172 }}
68
+ subscription-id: ${{ secrets.AZUREAPPSERVICE_SUBSCRIPTIONID_921B80061CBE4DF0B9BCF8E87DA28876 }}
69
+
70
+ - name: 'Deploy to Azure Web App'
71
+ uses: azure/webapps-deploy@v3
72
+ id: deploy-to-webapp
73
+ with:
74
+ app-name: 'mcli'
75
+ slot-name: 'Production'
76
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcli-framework
3
- Version: 7.10.1
3
+ Version: 7.11.0
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>
@@ -160,6 +160,11 @@ Dynamic: license-file
160
160
 
161
161
  # MCLI - Portable Workflow Framework
162
162
 
163
+ [![codecov](https://codecov.io/gh/gwicho38/mcli/branch/main/graph/badge.svg)](https://codecov.io/gh/gwicho38/mcli)
164
+ [![Tests](https://github.com/gwicho38/mcli/workflows/CI%2FCD%20Pipeline/badge.svg)](https://github.com/gwicho38/mcli/actions)
165
+ [![Python Version](https://img.shields.io/badge/python-3.9%20%7C%203.10%20%7C%203.11%20%7C%203.12-blue)](https://www.python.org/downloads/)
166
+ [![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
167
+
163
168
  **Transform any script into a versioned, portable, schedulable workflow command.**
164
169
 
165
170
  MCLI is a modular CLI framework that lets you write scripts once and run them anywhere - as interactive commands, scheduled jobs, or background daemons. Your workflows live in `~/.mcli/commands/`, are versioned via lockfile, and completely decoupled from the engine source code.
@@ -170,6 +175,35 @@ Write a script. Store it. Version it. Run it anywhere. Schedule it. Share it.
170
175
 
171
176
  No coupling to the engine. No vendor lock-in. Just portable workflows that work.
172
177
 
178
+ ## 🚀 Visual Workflow Editing
179
+
180
+ Edit your workflow JSON files like Jupyter notebooks with our VSCode extension!
181
+
182
+ [![VSCode Extension](https://img.shields.io/badge/VSCode-Extension-blue?logo=visualstudiocode)](vscode-extension/)
183
+ [![Visual Editing](https://img.shields.io/badge/workflows-visual%20editing-brightgreen)](vscode-extension/)
184
+
185
+ **Features:**
186
+ - 📝 Cell-based editing (Jupyter-like interface)
187
+ - ⚡ Live code execution (Python, Shell, Bash, Zsh, Fish)
188
+ - 🎯 Monaco editor with IntelliSense
189
+ - 📊 Rich markdown documentation cells
190
+ - 💾 Files stay as `.json` (git-friendly)
191
+
192
+ **Quick Install:**
193
+ ```bash
194
+ # From VSCode Marketplace (pending publication)
195
+ code --install-extension gwicho38.mcli-framework
196
+
197
+ # Or install from VSIX
198
+ code --install-extension vscode-extension/mcli-framework-1.0.0.vsix
199
+ ```
200
+
201
+ **Learn More:**
202
+ - [Extension README](vscode-extension/README.md) - Features and usage
203
+ - [Visual Editing Guide](README-VISUAL-EDITING.md) - Quick start
204
+ - [Installation Guide](vscode-extension/INSTALL.md) - Detailed setup
205
+ - [Workflow Notebooks Docs](docs/workflow-notebooks.md) - Complete guide
206
+
173
207
  ## ⚡ Quick Start
174
208
 
175
209
  ### Installation
@@ -199,20 +233,20 @@ def app(message):
199
233
  EOF
200
234
 
201
235
  # Import as workflow
202
- mcli commands import-script my_task.py --name my-task --group workflow
236
+ mcli workflow import-script my_task.py --name my-task
203
237
 
204
238
  # Run it
205
- mcli workflow my-task --message "Hi"
239
+ mcli workflowss my-task --message "Hi"
206
240
  ```
207
241
 
208
242
  #### Method 2: Interactive Creation
209
243
 
210
244
  ```bash
211
245
  # Create workflow interactively
212
- mcli commands add my-task --group workflow
246
+ mcli workflow add my-task
213
247
 
214
248
  # Edit in your $EDITOR, then run
215
- mcli workflow my-task
249
+ mcli workflowss my-task
216
250
  ```
217
251
 
218
252
  ## 📦 Workflow System Features
@@ -223,29 +257,28 @@ Multiple ways to create workflows:
223
257
 
224
258
  ```bash
225
259
  # Import from existing Python script
226
- mcli commands import-script script.py --name my-workflow --group workflow
227
-
260
+ mcli workflow import-script script.py --name my-workflow
228
261
  # Create new workflow interactively
229
- mcli commands add my-workflow --group workflow --description "Does something useful"
262
+ mcli workflow add my-workflow --group workflow --description "Does something useful"
230
263
 
231
264
  # List all workflows
232
- mcli commands list-custom
265
+ mcli workflow list-custom
233
266
  ```
234
267
 
235
268
  ### 2. **Edit & Manage Workflows**
236
269
 
237
270
  ```bash
238
271
  # Edit workflow in $EDITOR
239
- mcli commands edit my-workflow
272
+ mcli workflow edit my-workflow
240
273
 
241
274
  # Show workflow details
242
- mcli commands info my-workflow
275
+ mcli workflow info my-workflow
243
276
 
244
277
  # Search workflows
245
- mcli commands search "pdf"
278
+ mcli workflow search "pdf"
246
279
 
247
280
  # Remove workflow
248
- mcli commands remove my-workflow
281
+ mcli workflow remove my-workflow
249
282
  ```
250
283
 
251
284
  ### 3. **Export & Import (Portability)**
@@ -254,13 +287,13 @@ Share workflows across machines or with your team:
254
287
 
255
288
  ```bash
256
289
  # Export all workflows to JSON
257
- mcli commands export my-workflows.json
290
+ mcli workflow export my-workflows.json
258
291
 
259
292
  # Import on another machine
260
- mcli commands import my-workflows.json
293
+ mcli workflow import my-workflows.json
261
294
 
262
295
  # Export single workflow to Python script
263
- mcli commands export-script my-workflow --output my_workflow.py
296
+ mcli workflow export-script my-workflow --output my_workflow.py
264
297
  ```
265
298
 
266
299
  Your workflows are just JSON files in `~/.mcli/commands/`:
@@ -279,10 +312,10 @@ MCLI automatically maintains a lockfile for reproducibility:
279
312
 
280
313
  ```bash
281
314
  # Update lockfile with current workflow versions
282
- mcli commands update-lockfile
315
+ mcli workflow update-lockfile
283
316
 
284
317
  # Verify workflows match lockfile
285
- mcli commands verify
318
+ mcli workflow verify
286
319
  ```
287
320
 
288
321
  Example `commands.lock.json`:
@@ -312,7 +345,7 @@ git commit -m "Update workflows"
312
345
 
313
346
  # On another machine
314
347
  git pull
315
- mcli commands verify # Ensures consistency
348
+ mcli workflow verify # Ensures consistency
316
349
  ```
317
350
 
318
351
  ### 5. **Run as Daemon or Scheduled Task**
@@ -323,29 +356,29 @@ Workflows aren't coupled to the engine - run them however you want:
323
356
 
324
357
  ```bash
325
358
  # Start workflow as background daemon
326
- mcli workflow daemon start my-task-daemon --workflow my-task
359
+ mcli workflows daemon start my-task-daemon --workflow my-task
327
360
 
328
361
  # Check daemon status
329
- mcli workflow daemon status
362
+ mcli workflows daemon status
330
363
 
331
364
  # Stop daemon
332
- mcli workflow daemon stop my-task-daemon
365
+ mcli workflows daemon stop my-task-daemon
333
366
  ```
334
367
 
335
368
  #### As Scheduled Task:
336
369
 
337
370
  ```bash
338
371
  # Schedule workflow to run every hour
339
- mcli workflow scheduler add \
372
+ mcli workflows scheduler add \
340
373
  --name hourly-sync \
341
374
  --schedule "0 * * * *" \
342
375
  --workflow my-task
343
376
 
344
377
  # List scheduled workflows
345
- mcli workflow scheduler list
378
+ mcli workflows scheduler list
346
379
 
347
380
  # View logs
348
- mcli workflow scheduler logs hourly-sync
381
+ mcli workflows scheduler logs hourly-sync
349
382
  ```
350
383
 
351
384
  ## 🎨 Real-World Workflow Examples
@@ -354,12 +387,11 @@ mcli workflow scheduler logs hourly-sync
354
387
 
355
388
  ```bash
356
389
  # Create PDF processing workflow
357
- mcli commands import-script pdf_tool.py --name pdf --group workflow
358
-
390
+ mcli workflow import-script pdf_tool.py --name pdf
359
391
  # Use it
360
- mcli workflow pdf extract ~/Documents/report.pdf
361
- mcli workflow pdf compress ~/Documents/*.pdf --output compressed/
362
- mcli workflow pdf split large.pdf --pages 10
392
+ mcli workflows pdf extract ~/Documents/report.pdf
393
+ mcli workflows pdf compress ~/Documents/*.pdf --output compressed/
394
+ mcli workflows pdf split large.pdf --pages 10
363
395
  ```
364
396
 
365
397
  ### Example 2: Data Sync Workflow
@@ -389,13 +421,12 @@ def status():
389
421
  click.echo("Checking sync status...")
390
422
  EOF
391
423
 
392
- mcli commands import-script sync.py --name sync --group workflow
393
-
424
+ mcli workflow import-script sync.py --name sync
394
425
  # Run manually
395
- mcli workflow sync backup ~/data remote:backup
426
+ mcli workflows sync backup ~/data remote:backup
396
427
 
397
428
  # Or schedule it
398
- mcli workflow scheduler add \
429
+ mcli workflows scheduler add \
399
430
  --name nightly-backup \
400
431
  --schedule "0 2 * * *" \
401
432
  --workflow "sync backup ~/data remote:backup"
@@ -405,13 +436,12 @@ mcli workflow scheduler add \
405
436
 
406
437
  ```bash
407
438
  # Already included as built-in workflow
408
- mcli workflow git-commit
439
+ mcli workflows git-commit
409
440
 
410
441
  # Or create your own variant
411
- mcli commands export-script git-commit --output my_git_helper.py
442
+ mcli workflow export-script git-commit --output my_git_helper.py
412
443
  # Edit my_git_helper.py to customize
413
- mcli commands import-script my_git_helper.py --name my-git --group workflow
414
- ```
444
+ mcli workflow import-script my_git_helper.py --name my-git```
415
445
 
416
446
  ## 🔧 Workflow Structure
417
447
 
@@ -437,7 +467,7 @@ Each workflow is a JSON file with this structure:
437
467
  MCLI comes with powerful built-in workflows:
438
468
 
439
469
  ```bash
440
- mcli workflow --help
470
+ mcli workflows --help
441
471
  ```
442
472
 
443
473
  Available workflows:
@@ -450,7 +480,7 @@ Available workflows:
450
480
  - **redis** - Redis cache management
451
481
  - **videos** - Video processing and overlay removal
452
482
  - **sync** - Multi-cloud synchronization
453
- - **politician-trading** - Financial data collection (specialized)
483
+ - **politician-trading** - Now available as standalone package: [politician-trading-tracker](https://github.com/gwicho38/politician-trading-tracker)
454
484
 
455
485
  ## 💡 Why MCLI?
456
486
 
@@ -481,8 +511,8 @@ You write scripts. They work. Then:
481
511
  mcli self completion install
482
512
 
483
513
  # Now use tab completion
484
- mcli workflow <TAB> # Shows all workflows
485
- mcli workflow pdf <TAB> # Shows pdf subcommands
514
+ mcli workflows <TAB> # Shows all workflows
515
+ mcli workflows pdf <TAB> # Shows pdf subcommands
486
516
  ```
487
517
 
488
518
  ### AI Chat Integration
@@ -528,10 +558,13 @@ make wheel
528
558
 
529
559
  ## 📖 Documentation
530
560
 
531
- - **Installation**: See [Installation Guide](docs/setup/INSTALLATION.md)
561
+ - **📚 Documentation Index**: [Complete Documentation Index](docs/INDEX.md) - All docs organized by category
562
+ - **Installation**: See [Installation Guide](docs/setup/INSTALL.md)
532
563
  - **Workflows**: Full workflow documentation (this README)
533
564
  - **Shell Completion**: See [Shell Completion Guide](docs/features/SHELL_COMPLETION.md)
565
+ - **Testing**: See [Testing Guide](docs/development/TESTING.md)
534
566
  - **Contributing**: See [Contributing Guide](CONTRIBUTING.md)
567
+ - **Release Notes**: See [Latest Release (7.10.2)](docs/releases/7.10.2.md)
535
568
 
536
569
  ## 🎯 Common Use Cases
537
570
 
@@ -539,21 +572,20 @@ make wheel
539
572
 
540
573
  ```bash
541
574
  # Create your daily automation
542
- mcli commands add daily-tasks --group workflow
543
- # Add your tasks in $EDITOR
544
- mcli workflow scheduler add --name daily --schedule "0 9 * * *" --workflow daily-tasks
575
+ mcli workflow add daily-tasks# Add your tasks in $EDITOR
576
+ mcli workflows scheduler add --name daily --schedule "0 9 * * *" --workflow daily-tasks
545
577
  ```
546
578
 
547
579
  ### Use Case 2: Team Workflow Sharing
548
580
 
549
581
  ```bash
550
582
  # On your machine
551
- mcli commands export team-workflows.json
583
+ mcli workflow export team-workflows.json
552
584
 
553
585
  # Share file with team
554
586
  # On teammate's machine
555
- mcli commands import team-workflows.json
556
- mcli commands verify # Ensure consistency
587
+ mcli workflow import team-workflows.json
588
+ mcli workflow verify # Ensure consistency
557
589
  ```
558
590
 
559
591
  ### Use Case 3: CI/CD Integration
@@ -561,9 +593,9 @@ mcli commands verify # Ensure consistency
561
593
  ```bash
562
594
  # In your CI pipeline
563
595
  - pip install mcli-framework
564
- - mcli commands import ci-workflows.json
565
- - mcli workflow build-and-test
566
- - mcli workflow deploy --env production
596
+ - mcli workflow import ci-workflows.json
597
+ - mcli workflows build-and-test
598
+ - mcli workflows deploy --env production
567
599
  ```
568
600
 
569
601
  ## 📦 Dependencies
@@ -593,7 +625,7 @@ We welcome contributions! Especially workflow examples.
593
625
  1. Fork the repository
594
626
  2. Create feature branch: `git checkout -b feature/awesome-workflow`
595
627
  3. Create your workflow
596
- 4. Export it: `mcli commands export my-workflow.json`
628
+ 4. Export it: `mcli workflow export my-workflow.json`
597
629
  5. Submit PR with workflow JSON
598
630
 
599
631
  ## 📄 License
@@ -612,5 +644,4 @@ MIT License - see [LICENSE](LICENSE) for details.
612
644
 
613
645
  ```bash
614
646
  pip install mcli-framework
615
- mcli commands add my-first-workflow --group workflow
616
- ```
647
+ mcli workflow add my-first-workflow```