mcli-framework 7.12.1__tar.gz → 7.12.2__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 (330) hide show
  1. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/PKG-INFO +1 -1
  2. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/pyproject.toml +1 -1
  3. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/app/lock_cmd.py +81 -23
  4. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli_framework.egg-info/PKG-INFO +1 -1
  5. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/.github/dependabot.yml +0 -0
  6. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/.github/workflows/build.yml +0 -0
  7. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/.github/workflows/ci.yml +0 -0
  8. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/.github/workflows/codeql.yml +0 -0
  9. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/.github/workflows/main_mcli.yml +0 -0
  10. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/.github/workflows/ml-pipeline.yml +0 -0
  11. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/.github/workflows/publish-self-hosted.yml +0 -0
  12. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/.github/workflows/publish.yml +0 -0
  13. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/.github/workflows/release.yml +0 -0
  14. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/.github/workflows/security.yml +0 -0
  15. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/.github/workflows/test.yml +0 -0
  16. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/LICENSE +0 -0
  17. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/MANIFEST.in +0 -0
  18. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/README.md +0 -0
  19. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/mcli_rust/Cargo.toml +0 -0
  20. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/mcli_rust/src/command_parser.rs +0 -0
  21. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/mcli_rust/src/file_watcher.rs +0 -0
  22. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/mcli_rust/src/lib.rs +0 -0
  23. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/mcli_rust/src/process_manager.rs +0 -0
  24. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/mcli_rust/src/tfidf.rs +0 -0
  25. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/setup.cfg +0 -0
  26. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/app/commands_cmd.py +0 -0
  27. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/app/completion_helpers.py +0 -0
  28. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/app/init_cmd.py +0 -0
  29. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/app/main.py +0 -0
  30. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/app/model/model.py +0 -0
  31. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/app/model_cmd.py +0 -0
  32. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/app/store_cmd.py +0 -0
  33. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/app/video/video.py +0 -0
  34. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/chat/chat.py +0 -0
  35. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/chat/command_rag.py +0 -0
  36. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/chat/enhanced_chat.py +0 -0
  37. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/chat/system_controller.py +0 -0
  38. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/chat/system_integration.py +0 -0
  39. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/cli.py +0 -0
  40. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/config.toml +0 -0
  41. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/api/api.py +0 -0
  42. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/api/daemon_client.py +0 -0
  43. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/api/daemon_client_local.py +0 -0
  44. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/api/daemon_decorator.py +0 -0
  45. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/api/mcli_decorators.py +0 -0
  46. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/auth/auth.py +0 -0
  47. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/auth/aws_manager.py +0 -0
  48. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/auth/azure_manager.py +0 -0
  49. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/auth/credential_manager.py +0 -0
  50. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/auth/gcp_manager.py +0 -0
  51. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/auth/key_manager.py +0 -0
  52. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/auth/mcli_manager.py +0 -0
  53. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/auth/token_manager.py +0 -0
  54. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/auth/token_util.py +0 -0
  55. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/config/config.py +0 -0
  56. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/custom_commands.py +0 -0
  57. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/discovery/__init__.py +0 -0
  58. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/discovery/command_discovery.py +0 -0
  59. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/erd/erd.py +0 -0
  60. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/erd/generate_graph.py +0 -0
  61. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/files/files.py +0 -0
  62. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/fs/fs.py +0 -0
  63. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/lib.py +0 -0
  64. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/logger/logger.py +0 -0
  65. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/optional_deps.py +0 -0
  66. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/paths.py +0 -0
  67. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/performance/optimizer.py +0 -0
  68. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/performance/rust_bridge.py +0 -0
  69. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/performance/uvloop_config.py +0 -0
  70. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/pickles/pickles.py +0 -0
  71. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/search/cached_vectorizer.py +0 -0
  72. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/secrets/commands.py +0 -0
  73. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/secrets/manager.py +0 -0
  74. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/secrets/repl.py +0 -0
  75. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/secrets/store.py +0 -0
  76. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/services/data_pipeline.py +0 -0
  77. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/services/lsh_client.py +0 -0
  78. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/services/redis_service.py +0 -0
  79. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/shell/shell.py +0 -0
  80. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/toml/toml.py +0 -0
  81. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/ui/styling.py +0 -0
  82. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/ui/visual_effects.py +0 -0
  83. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/lib/watcher/watcher.py +0 -0
  84. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/api/app.py +0 -0
  85. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/api/middleware.py +0 -0
  86. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/api/routers/admin_router.py +0 -0
  87. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/api/routers/auth_router.py +0 -0
  88. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/api/routers/backtest_router.py +0 -0
  89. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/api/routers/data_router.py +0 -0
  90. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/api/routers/model_router.py +0 -0
  91. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/api/routers/monitoring_router.py +0 -0
  92. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/api/routers/portfolio_router.py +0 -0
  93. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/api/routers/prediction_router.py +0 -0
  94. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/api/routers/trade_router.py +0 -0
  95. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/api/routers/websocket_router.py +0 -0
  96. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/api/schemas.py +0 -0
  97. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/auth/auth_manager.py +0 -0
  98. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/auth/models.py +0 -0
  99. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/auth/permissions.py +0 -0
  100. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/backtesting/backtest_engine.py +0 -0
  101. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/backtesting/performance_metrics.py +0 -0
  102. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/backtesting/run.py +0 -0
  103. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/cache.py +0 -0
  104. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/cli/main.py +0 -0
  105. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/config/settings.py +0 -0
  106. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/configs/dvc_config.py +0 -0
  107. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/configs/mlflow_config.py +0 -0
  108. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/configs/mlops_manager.py +0 -0
  109. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/dashboard/app.py +0 -0
  110. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/dashboard/app_integrated.py +0 -0
  111. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/dashboard/app_supabase.py +0 -0
  112. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/dashboard/app_training.py +0 -0
  113. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/dashboard/cli.py +0 -0
  114. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/dashboard/common.py +0 -0
  115. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/dashboard/components/charts.py +0 -0
  116. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/dashboard/components/metrics.py +0 -0
  117. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/dashboard/components/tables.py +0 -0
  118. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/dashboard/overview.py +0 -0
  119. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/dashboard/pages/cicd.py +0 -0
  120. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/dashboard/pages/debug_dependencies.py +0 -0
  121. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/dashboard/pages/gravity_viz.py +0 -0
  122. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/dashboard/pages/monte_carlo_predictions.py +0 -0
  123. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/dashboard/pages/predictions_enhanced.py +0 -0
  124. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/dashboard/pages/scrapers_and_logs.py +0 -0
  125. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/dashboard/pages/test_portfolio.py +0 -0
  126. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/dashboard/pages/trading.py +0 -0
  127. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/dashboard/pages/workflows.py +0 -0
  128. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/dashboard/streamlit_extras_utils.py +0 -0
  129. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/dashboard/styles.py +0 -0
  130. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/dashboard/utils.py +0 -0
  131. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/dashboard/warning_suppression.py +0 -0
  132. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/data_ingestion/api_connectors.py +0 -0
  133. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/data_ingestion/data_pipeline.py +0 -0
  134. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/data_ingestion/stream_processor.py +0 -0
  135. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/database/migrations/env.py +0 -0
  136. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/database/models.py +0 -0
  137. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/database/session.py +0 -0
  138. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/experimentation/ab_testing.py +0 -0
  139. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/features/ensemble_features.py +0 -0
  140. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/features/recommendation_engine.py +0 -0
  141. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/features/stock_features.py +0 -0
  142. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/features/test_feature_engineering.py +0 -0
  143. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/logging.py +0 -0
  144. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/mlops/data_versioning.py +0 -0
  145. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/mlops/experiment_tracker.py +0 -0
  146. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/mlops/model_serving.py +0 -0
  147. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/mlops/pipeline_orchestrator.py +0 -0
  148. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/models/base_models.py +0 -0
  149. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/models/ensemble_models.py +0 -0
  150. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/models/recommendation_models.py +0 -0
  151. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/models/test_models.py +0 -0
  152. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/monitoring/drift_detection.py +0 -0
  153. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/monitoring/metrics.py +0 -0
  154. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/optimization/optimize.py +0 -0
  155. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/optimization/portfolio_optimizer.py +0 -0
  156. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/predictions/monte_carlo.py +0 -0
  157. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/predictions/prediction_engine.py +0 -0
  158. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/preprocessing/data_cleaners.py +0 -0
  159. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/preprocessing/feature_extractors.py +0 -0
  160. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/preprocessing/ml_pipeline.py +0 -0
  161. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/preprocessing/test_preprocessing.py +0 -0
  162. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/scripts/populate_sample_data.py +0 -0
  163. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/serving/serve.py +0 -0
  164. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/tasks.py +0 -0
  165. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/tests/test_integration.py +0 -0
  166. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/tests/test_training_dashboard.py +0 -0
  167. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/trading/alpaca_client.py +0 -0
  168. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/trading/migrations.py +0 -0
  169. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/trading/models.py +0 -0
  170. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/trading/paper_trading.py +0 -0
  171. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/trading/risk_management.py +0 -0
  172. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/trading/trading_service.py +0 -0
  173. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/training/train.py +0 -0
  174. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/ml/training/train_model.py +0 -0
  175. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/mygroup/test_cmd.py +0 -0
  176. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/public/oi/oi.py +0 -0
  177. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/public/public.py +0 -0
  178. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/self/completion_cmd.py +0 -0
  179. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/self/logs_cmd.py +0 -0
  180. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/self/migrate_cmd.py +0 -0
  181. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/self/redis_cmd.py +0 -0
  182. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/self/self_cmd.py +0 -0
  183. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/self/store_cmd.py +0 -0
  184. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/self/test_cmd.py +0 -0
  185. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/self/visual_cmd.py +0 -0
  186. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/self/zsh_cmd.py +0 -0
  187. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/daemon/async_command_database.py +0 -0
  188. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/daemon/async_process_manager.py +0 -0
  189. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/daemon/client.py +0 -0
  190. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/daemon/daemon.py +0 -0
  191. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/daemon/daemon_api.py +0 -0
  192. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/daemon/enhanced_daemon.py +0 -0
  193. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/daemon/process_cli.py +0 -0
  194. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/daemon/process_manager.py +0 -0
  195. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/daemon/test_daemon.py +0 -0
  196. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/dashboard/dashboard_cmd.py +0 -0
  197. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/doc_convert.py +0 -0
  198. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/docker/docker.py +0 -0
  199. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/gcloud/config.toml +0 -0
  200. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/gcloud/gcloud.py +0 -0
  201. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/git_commit/ai_service.py +0 -0
  202. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/lsh_integration.py +0 -0
  203. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/model_service/client.py +0 -0
  204. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/model_service/download_and_run_efficient_models.py +0 -0
  205. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/model_service/lightweight_embedder.py +0 -0
  206. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/model_service/lightweight_model_server.py +0 -0
  207. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/model_service/lightweight_test.py +0 -0
  208. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/model_service/model_service.py +0 -0
  209. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/model_service/ollama_efficient_runner.py +0 -0
  210. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/model_service/openai_adapter.py +0 -0
  211. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/model_service/pdf_processor.py +0 -0
  212. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/model_service/test_efficient_runner.py +0 -0
  213. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/model_service/test_example.py +0 -0
  214. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/model_service/test_integration.py +0 -0
  215. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/model_service/test_new_features.py +0 -0
  216. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/notebook/converter.py +0 -0
  217. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/notebook/notebook_cmd.py +0 -0
  218. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/notebook/schema.py +0 -0
  219. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/notebook/validator.py +0 -0
  220. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/openai/openai.py +0 -0
  221. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/registry/registry.py +0 -0
  222. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/repo/repo.py +0 -0
  223. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/scheduler/cron_parser.py +0 -0
  224. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/scheduler/job.py +0 -0
  225. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/scheduler/monitor.py +0 -0
  226. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/scheduler/persistence.py +0 -0
  227. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/scheduler/scheduler.py +0 -0
  228. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/secrets/secrets_cmd.py +0 -0
  229. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/sync/test_cmd.py +0 -0
  230. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/wakatime/wakatime.py +0 -0
  231. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli/workflow/workflow.py +0 -0
  232. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli_framework.egg-info/SOURCES.txt +0 -0
  233. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli_framework.egg-info/dependency_links.txt +0 -0
  234. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli_framework.egg-info/entry_points.txt +0 -0
  235. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli_framework.egg-info/requires.txt +0 -0
  236. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/src/mcli_framework.egg-info/top_level.txt +0 -0
  237. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/cli/test_all_commands.py +0 -0
  238. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/cli/test_app_logs_cmd.py +0 -0
  239. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/cli/test_app_redis_cmd.py +0 -0
  240. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/cli/test_logs_cmd.py +0 -0
  241. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/cli/test_main_app.py +0 -0
  242. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/cli/test_model_cmd.py +0 -0
  243. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/cli/test_self_cmd.py +0 -0
  244. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/cli/test_self_cmd_commands.py +0 -0
  245. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/cli/test_self_cmd_plugins.py +0 -0
  246. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/cli/test_self_cmd_utilities.py +0 -0
  247. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/cli/test_workflow_file.py +0 -0
  248. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/cli/test_workflow_gcloud.py +0 -0
  249. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/cli/test_workflow_registry.py +0 -0
  250. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/conftest.py +0 -0
  251. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/demo_generate_graph.py +0 -0
  252. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/demo_hierarchical_transform.py +0 -0
  253. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/e2e/test_complete_workflows.py +0 -0
  254. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/e2e/test_model_workflow.py +0 -0
  255. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/e2e/test_new_user_workflow.py +0 -0
  256. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/e2e/test_update_workflow.py +0 -0
  257. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/fixtures/chat_fixtures.py +0 -0
  258. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/fixtures/cli_fixtures.py +0 -0
  259. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/fixtures/data_fixtures.py +0 -0
  260. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/fixtures/db_fixtures.py +0 -0
  261. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/fixtures/model_fixtures.py +0 -0
  262. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_agent.py +0 -0
  263. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_chat_client.py +0 -0
  264. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_chat_system.py +0 -0
  265. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_daemon_server.py +0 -0
  266. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_e2e_dashboard_lsh_supabase.py +0 -0
  267. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_flask_webapp.py +0 -0
  268. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_gcloud_services.py +0 -0
  269. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_lsh_client.py +0 -0
  270. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_lsh_service.py +0 -0
  271. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_ml_auth.py +0 -0
  272. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_ml_data_pipeline.py +0 -0
  273. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_ml_models.py +0 -0
  274. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_ml_pipeline.py +0 -0
  275. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_module_imports.py +0 -0
  276. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_oi_service.py +0 -0
  277. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_repo_operations.py +0 -0
  278. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_scheduler_integration.py +0 -0
  279. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_service_registry.py +0 -0
  280. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_supabase_live_connection.py +0 -0
  281. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_video_processing.py +0 -0
  282. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_wakatime_api.py +0 -0
  283. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_webapp_full.py +0 -0
  284. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_workflow.py +0 -0
  285. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/integration/test_workflow_commands.py +0 -0
  286. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/run_tests.py +0 -0
  287. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/test_harness.py +0 -0
  288. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/test_openai_adapter.py +0 -0
  289. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_api_utils.py +0 -0
  290. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_async_process_manager.py +0 -0
  291. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_auth_modules.py +0 -0
  292. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_bug_fixes.py +0 -0
  293. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_config.py +0 -0
  294. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_custom_commands.py +0 -0
  295. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_custom_commands_filtering.py +0 -0
  296. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_daemon_api.py +0 -0
  297. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_dashboard_components.py +0 -0
  298. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_dashboard_functions.py +0 -0
  299. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_dashboard_pages.py +0 -0
  300. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_dependencies.py +0 -0
  301. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_doc_convert_workflow.py +0 -0
  302. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_emulator_workflow.py +0 -0
  303. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_erd_generation.py +0 -0
  304. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_erd_generic.py +0 -0
  305. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_erd_imports.py +0 -0
  306. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_git_commit_workflow.py +0 -0
  307. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_lib_auth.py +0 -0
  308. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_lib_files.py +0 -0
  309. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_lib_utils.py +0 -0
  310. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_logger.py +0 -0
  311. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_ml_preprocessing.py +0 -0
  312. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_optional_deps.py +0 -0
  313. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_paths.py +0 -0
  314. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_pdf_compress.py +0 -0
  315. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_prediction_engine.py +0 -0
  316. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_regression.py +0 -0
  317. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_scheduler.py +0 -0
  318. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_scheduler_cron_parser.py +0 -0
  319. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_scheduler_job.py +0 -0
  320. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_scheduler_monitor.py +0 -0
  321. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_scheduler_persistence.py +0 -0
  322. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_self_update.py +0 -0
  323. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_store_cmd.py +0 -0
  324. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_supabase_connection.py +0 -0
  325. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_supabase_pagination.py +0 -0
  326. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_toml_utils.py +0 -0
  327. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_trading_imports.py +0 -0
  328. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_ui_rich.py +0 -0
  329. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/test_uv_compat.py +0 -0
  330. {mcli_framework-7.12.1 → mcli_framework-7.12.2}/tests/unit/workflow/test_notebook.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcli-framework
3
- Version: 7.12.1
3
+ Version: 7.12.2
4
4
  Summary: Portable workflow framework - transform any script into a versioned, schedulable command. Store in ~/.mcli/workflows/, version with lockfile, run as daemon or cron job.
5
5
  Author-email: Luis Fernandez de la Vara <luis@lefv.io>
6
6
  Maintainer-email: Luis Fernandez de la Vara <luis@lefv.io>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mcli-framework"
3
- version = "7.12.1"
3
+ version = "7.12.2"
4
4
  description = "Portable workflow framework - transform any script into a versioned, schedulable command. Store in ~/.mcli/workflows/, version with lockfile, run as daemon or cron job."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.9"
@@ -229,11 +229,15 @@ def write_state(json_file):
229
229
  @click.option(
230
230
  "--global", "-g", "is_global", is_flag=True, help="Verify global commands instead of local"
231
231
  )
232
- def verify_commands(is_global):
232
+ @click.option(
233
+ "--code", "-c", is_flag=True, help="Also validate that workflow code is executable"
234
+ )
235
+ def verify_commands(is_global, code):
233
236
  """
234
- Verify that custom commands match the lockfile.
237
+ Verify that custom commands match the lockfile and optionally validate code.
235
238
 
236
239
  By default verifies local commands (if in git repo), use --global/-g for global commands.
240
+ Use --code/-c to also validate that workflow code is valid and executable.
237
241
  """
238
242
  manager = get_command_manager(global_mode=is_global)
239
243
 
@@ -242,28 +246,82 @@ def verify_commands(is_global):
242
246
 
243
247
  verification = manager.verify_lockfile()
244
248
 
245
- if verification["valid"]:
246
- console.print("[green]All custom commands are in sync with the lockfile.[/green]")
247
- return 0
248
-
249
- console.print("[yellow]Commands are out of sync with the lockfile:[/yellow]\n")
250
-
251
- if verification["missing"]:
252
- console.print("Missing commands (in lockfile but not found):")
253
- for name in verification["missing"]:
254
- console.print(f" - {name}")
255
-
256
- if verification["extra"]:
257
- console.print("\nExtra commands (not in lockfile):")
258
- for name in verification["extra"]:
259
- console.print(f" - {name}")
260
-
261
- if verification["modified"]:
262
- console.print("\nModified commands:")
263
- for name in verification["modified"]:
264
- console.print(f" - {name}")
249
+ has_issues = False
250
+
251
+ if not verification["valid"]:
252
+ has_issues = True
253
+ console.print("[yellow]Commands are out of sync with the lockfile:[/yellow]\n")
254
+
255
+ if verification["missing"]:
256
+ console.print("Missing commands (in lockfile but not found):")
257
+ for name in verification["missing"]:
258
+ console.print(f" - {name}")
259
+
260
+ if verification["extra"]:
261
+ console.print("\nExtra commands (not in lockfile):")
262
+ for name in verification["extra"]:
263
+ console.print(f" - {name}")
264
+
265
+ if verification["modified"]:
266
+ console.print("\nModified commands:")
267
+ for name in verification["modified"]:
268
+ console.print(f" - {name}")
269
+
270
+ console.print("\n[dim]Run 'mcli lock update' to sync the lockfile[/dim]\n")
271
+
272
+ # Validate workflow code if requested
273
+ if code:
274
+ console.print("[cyan]Validating workflow code...[/cyan]\n")
275
+
276
+ commands = manager.load_all_commands()
277
+ invalid_workflows = []
278
+
279
+ for cmd_data in commands:
280
+ if cmd_data.get("group") != "workflow":
281
+ continue
282
+
283
+ cmd_name = cmd_data.get("name")
284
+ temp_group = click.Group()
285
+ language = cmd_data.get("language", "python")
286
+
287
+ try:
288
+ if language == "shell":
289
+ success = manager.register_shell_command_with_click(cmd_data, temp_group)
290
+ else:
291
+ success = manager.register_command_with_click(cmd_data, temp_group)
292
+
293
+ if not success or not temp_group.commands.get(cmd_name):
294
+ invalid_workflows.append({
295
+ "name": cmd_name,
296
+ "reason": "Code does not define a valid Click command"
297
+ })
298
+ except SyntaxError as e:
299
+ invalid_workflows.append({
300
+ "name": cmd_name,
301
+ "reason": f"Syntax error: {e}"
302
+ })
303
+ except Exception as e:
304
+ invalid_workflows.append({
305
+ "name": cmd_name,
306
+ "reason": f"Failed to load: {e}"
307
+ })
308
+
309
+ if invalid_workflows:
310
+ has_issues = True
311
+ console.print("[red]Invalid workflows found:[/red]\n")
312
+
313
+ for item in invalid_workflows:
314
+ console.print(f" [red]✗[/red] {item['name']}")
315
+ console.print(f" [dim]{item['reason']}[/dim]")
316
+
317
+ console.print(f"\n[yellow]Fix with:[/yellow] mcli workflow edit <workflow-name>")
318
+ console.print(f"[dim]Tip: Workflow code must define a Click command decorated with @click.command()[/dim]\n")
319
+ else:
320
+ console.print("[green]✓ All workflow code is valid[/green]\n")
265
321
 
266
- console.print("\n[dim]Run 'mcli lock update' to sync the lockfile[/dim]")
322
+ if not has_issues:
323
+ console.print("[green]✓ All custom commands are verified[/green]")
324
+ return 0
267
325
 
268
326
  return 1
269
327
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcli-framework
3
- Version: 7.12.1
3
+ Version: 7.12.2
4
4
  Summary: Portable workflow framework - transform any script into a versioned, schedulable command. Store in ~/.mcli/workflows/, 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>
File without changes