mcli-framework 7.9.5__tar.gz → 7.9.7__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 (341) hide show
  1. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/PKG-INFO +1 -1
  2. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/pyproject.toml +1 -1
  3. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/app/model_cmd.py +0 -2
  4. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/doc_convert.py +133 -5
  5. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli_framework.egg-info/PKG-INFO +1 -1
  6. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/.github/dependabot.yml +0 -0
  7. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/.github/workflows/build.yml +0 -0
  8. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/.github/workflows/ci.yml +0 -0
  9. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/.github/workflows/ml-pipeline.yml +0 -0
  10. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/.github/workflows/publish-self-hosted.yml +0 -0
  11. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/.github/workflows/publish.yml +0 -0
  12. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/.github/workflows/release.yml +0 -0
  13. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/.github/workflows/security.yml +0 -0
  14. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/.github/workflows/test.yml +0 -0
  15. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/LICENSE +0 -0
  16. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/MANIFEST.in +0 -0
  17. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/README.md +0 -0
  18. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/mcli_rust/Cargo.toml +0 -0
  19. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/mcli_rust/src/command_parser.rs +0 -0
  20. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/mcli_rust/src/file_watcher.rs +0 -0
  21. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/mcli_rust/src/lib.rs +0 -0
  22. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/mcli_rust/src/process_manager.rs +0 -0
  23. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/mcli_rust/src/tfidf.rs +0 -0
  24. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/setup.cfg +0 -0
  25. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/app/commands_cmd.py +0 -0
  26. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/app/completion_helpers.py +0 -0
  27. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/app/main.py +0 -0
  28. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/app/model/model.py +0 -0
  29. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/app/video/video.py +0 -0
  30. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/chat/chat.py +0 -0
  31. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/chat/command_rag.py +0 -0
  32. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/chat/enhanced_chat.py +0 -0
  33. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/chat/system_controller.py +0 -0
  34. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/chat/system_integration.py +0 -0
  35. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/cli.py +0 -0
  36. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/config.toml +0 -0
  37. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/api/api.py +0 -0
  38. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/api/daemon_client.py +0 -0
  39. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/api/daemon_client_local.py +0 -0
  40. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/api/daemon_decorator.py +0 -0
  41. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/api/mcli_decorators.py +0 -0
  42. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/auth/auth.py +0 -0
  43. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/auth/aws_manager.py +0 -0
  44. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/auth/azure_manager.py +0 -0
  45. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/auth/credential_manager.py +0 -0
  46. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/auth/gcp_manager.py +0 -0
  47. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/auth/key_manager.py +0 -0
  48. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/auth/mcli_manager.py +0 -0
  49. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/auth/token_manager.py +0 -0
  50. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/auth/token_util.py +0 -0
  51. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/config/config.py +0 -0
  52. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/custom_commands.py +0 -0
  53. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/discovery/__init__.py +0 -0
  54. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/discovery/command_discovery.py +0 -0
  55. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/erd/erd.py +0 -0
  56. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/erd/generate_graph.py +0 -0
  57. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/files/files.py +0 -0
  58. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/fs/fs.py +0 -0
  59. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/lib.py +0 -0
  60. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/logger/logger.py +0 -0
  61. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/paths.py +0 -0
  62. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/performance/optimizer.py +0 -0
  63. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/performance/rust_bridge.py +0 -0
  64. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/performance/uvloop_config.py +0 -0
  65. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/pickles/pickles.py +0 -0
  66. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/search/cached_vectorizer.py +0 -0
  67. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/secrets/commands.py +0 -0
  68. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/secrets/manager.py +0 -0
  69. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/secrets/repl.py +0 -0
  70. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/secrets/store.py +0 -0
  71. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/services/data_pipeline.py +0 -0
  72. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/services/lsh_client.py +0 -0
  73. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/services/redis_service.py +0 -0
  74. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/shell/shell.py +0 -0
  75. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/toml/toml.py +0 -0
  76. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/ui/styling.py +0 -0
  77. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/ui/visual_effects.py +0 -0
  78. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/lib/watcher/watcher.py +0 -0
  79. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/api/app.py +0 -0
  80. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/api/middleware.py +0 -0
  81. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/api/routers/admin_router.py +0 -0
  82. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/api/routers/auth_router.py +0 -0
  83. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/api/routers/backtest_router.py +0 -0
  84. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/api/routers/data_router.py +0 -0
  85. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/api/routers/model_router.py +0 -0
  86. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/api/routers/monitoring_router.py +0 -0
  87. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/api/routers/portfolio_router.py +0 -0
  88. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/api/routers/prediction_router.py +0 -0
  89. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/api/routers/trade_router.py +0 -0
  90. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/api/routers/websocket_router.py +0 -0
  91. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/api/schemas.py +0 -0
  92. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/auth/auth_manager.py +0 -0
  93. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/auth/models.py +0 -0
  94. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/auth/permissions.py +0 -0
  95. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/backtesting/backtest_engine.py +0 -0
  96. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/backtesting/performance_metrics.py +0 -0
  97. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/backtesting/run.py +0 -0
  98. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/cache.py +0 -0
  99. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/cli/main.py +0 -0
  100. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/config/settings.py +0 -0
  101. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/configs/dvc_config.py +0 -0
  102. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/configs/mlflow_config.py +0 -0
  103. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/configs/mlops_manager.py +0 -0
  104. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/dashboard/app.py +0 -0
  105. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/dashboard/app_integrated.py +0 -0
  106. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/dashboard/app_supabase.py +0 -0
  107. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/dashboard/app_training.py +0 -0
  108. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/dashboard/cli.py +0 -0
  109. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/dashboard/common.py +0 -0
  110. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/dashboard/components/charts.py +0 -0
  111. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/dashboard/components/metrics.py +0 -0
  112. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/dashboard/components/tables.py +0 -0
  113. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/dashboard/overview.py +0 -0
  114. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/dashboard/pages/cicd.py +0 -0
  115. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/dashboard/pages/debug_dependencies.py +0 -0
  116. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/dashboard/pages/gravity_viz.py +0 -0
  117. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/dashboard/pages/monte_carlo_predictions.py +0 -0
  118. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/dashboard/pages/predictions_enhanced.py +0 -0
  119. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/dashboard/pages/scrapers_and_logs.py +0 -0
  120. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/dashboard/pages/test_portfolio.py +0 -0
  121. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/dashboard/pages/trading.py +0 -0
  122. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/dashboard/pages/workflows.py +0 -0
  123. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/dashboard/streamlit_extras_utils.py +0 -0
  124. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/dashboard/styles.py +0 -0
  125. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/dashboard/utils.py +0 -0
  126. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/dashboard/warning_suppression.py +0 -0
  127. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/data_ingestion/api_connectors.py +0 -0
  128. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/data_ingestion/data_pipeline.py +0 -0
  129. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/data_ingestion/stream_processor.py +0 -0
  130. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/database/migrations/env.py +0 -0
  131. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/database/models.py +0 -0
  132. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/database/session.py +0 -0
  133. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/experimentation/ab_testing.py +0 -0
  134. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/features/ensemble_features.py +0 -0
  135. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/features/political_features.py +0 -0
  136. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/features/recommendation_engine.py +0 -0
  137. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/features/stock_features.py +0 -0
  138. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/features/test_feature_engineering.py +0 -0
  139. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/logging.py +0 -0
  140. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/mlops/data_versioning.py +0 -0
  141. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/mlops/experiment_tracker.py +0 -0
  142. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/mlops/model_serving.py +0 -0
  143. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/mlops/pipeline_orchestrator.py +0 -0
  144. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/models/base_models.py +0 -0
  145. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/models/ensemble_models.py +0 -0
  146. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/models/recommendation_models.py +0 -0
  147. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/models/test_models.py +0 -0
  148. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/monitoring/drift_detection.py +0 -0
  149. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/monitoring/metrics.py +0 -0
  150. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/optimization/optimize.py +0 -0
  151. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/optimization/portfolio_optimizer.py +0 -0
  152. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/predictions/monte_carlo.py +0 -0
  153. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/predictions/prediction_engine.py +0 -0
  154. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/preprocessing/data_cleaners.py +0 -0
  155. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/preprocessing/feature_extractors.py +0 -0
  156. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/preprocessing/ml_pipeline.py +0 -0
  157. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/preprocessing/politician_trading_preprocessor.py +0 -0
  158. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/preprocessing/test_preprocessing.py +0 -0
  159. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/scripts/populate_sample_data.py +0 -0
  160. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/serving/serve.py +0 -0
  161. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/tasks.py +0 -0
  162. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/tests/test_integration.py +0 -0
  163. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/tests/test_training_dashboard.py +0 -0
  164. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/trading/alpaca_client.py +0 -0
  165. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/trading/migrations.py +0 -0
  166. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/trading/models.py +0 -0
  167. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/trading/paper_trading.py +0 -0
  168. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/trading/risk_management.py +0 -0
  169. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/trading/trading_service.py +0 -0
  170. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/training/train.py +0 -0
  171. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/ml/training/train_model.py +0 -0
  172. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/mygroup/test_cmd.py +0 -0
  173. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/public/oi/oi.py +0 -0
  174. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/public/public.py +0 -0
  175. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/self/completion_cmd.py +0 -0
  176. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/self/logs_cmd.py +0 -0
  177. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/self/redis_cmd.py +0 -0
  178. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/self/self_cmd.py +0 -0
  179. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/self/store_cmd.py +0 -0
  180. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/self/test_cmd.py +0 -0
  181. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/self/visual_cmd.py +0 -0
  182. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/self/zsh_cmd.py +0 -0
  183. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/daemon/async_command_database.py +0 -0
  184. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/daemon/async_process_manager.py +0 -0
  185. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/daemon/client.py +0 -0
  186. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/daemon/daemon.py +0 -0
  187. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/daemon/daemon_api.py +0 -0
  188. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/daemon/enhanced_daemon.py +0 -0
  189. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/daemon/process_cli.py +0 -0
  190. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/daemon/process_manager.py +0 -0
  191. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/daemon/test_daemon.py +0 -0
  192. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/dashboard/dashboard_cmd.py +0 -0
  193. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/docker/docker.py +0 -0
  194. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/gcloud/config.toml +0 -0
  195. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/gcloud/gcloud.py +0 -0
  196. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/git_commit/ai_service.py +0 -0
  197. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/lsh_integration.py +0 -0
  198. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/model_service/client.py +0 -0
  199. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/model_service/download_and_run_efficient_models.py +0 -0
  200. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/model_service/lightweight_embedder.py +0 -0
  201. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/model_service/lightweight_model_server.py +0 -0
  202. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/model_service/lightweight_test.py +0 -0
  203. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/model_service/model_service.py +0 -0
  204. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/model_service/ollama_efficient_runner.py +0 -0
  205. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/model_service/openai_adapter.py +0 -0
  206. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/model_service/pdf_processor.py +0 -0
  207. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/model_service/test_efficient_runner.py +0 -0
  208. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/model_service/test_example.py +0 -0
  209. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/model_service/test_integration.py +0 -0
  210. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/model_service/test_new_features.py +0 -0
  211. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/openai/openai.py +0 -0
  212. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/politician_trading/config.py +0 -0
  213. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/politician_trading/connectivity.py +0 -0
  214. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/politician_trading/data_sources.py +0 -0
  215. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/politician_trading/database.py +0 -0
  216. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/politician_trading/demo.py +0 -0
  217. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/politician_trading/models.py +0 -0
  218. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/politician_trading/monitoring.py +0 -0
  219. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/politician_trading/scrapers.py +0 -0
  220. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/politician_trading/scrapers_california.py +0 -0
  221. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/politician_trading/scrapers_corporate_registry.py +0 -0
  222. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/politician_trading/scrapers_eu.py +0 -0
  223. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/politician_trading/scrapers_free_sources.py +0 -0
  224. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/politician_trading/scrapers_third_party.py +0 -0
  225. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/politician_trading/scrapers_uk.py +0 -0
  226. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/politician_trading/scrapers_us_states.py +0 -0
  227. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/politician_trading/seed_database.py +0 -0
  228. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/politician_trading/supabase_functions.py +0 -0
  229. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/politician_trading/workflow.py +0 -0
  230. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/registry/registry.py +0 -0
  231. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/repo/repo.py +0 -0
  232. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/scheduler/cron_parser.py +0 -0
  233. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/scheduler/job.py +0 -0
  234. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/scheduler/monitor.py +0 -0
  235. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/scheduler/persistence.py +0 -0
  236. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/scheduler/scheduler.py +0 -0
  237. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/sync/test_cmd.py +0 -0
  238. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/wakatime/wakatime.py +0 -0
  239. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli/workflow/workflow.py +0 -0
  240. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli_framework.egg-info/SOURCES.txt +0 -0
  241. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli_framework.egg-info/dependency_links.txt +0 -0
  242. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli_framework.egg-info/entry_points.txt +0 -0
  243. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli_framework.egg-info/requires.txt +0 -0
  244. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/src/mcli_framework.egg-info/top_level.txt +0 -0
  245. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/cli/test_all_commands.py +0 -0
  246. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/cli/test_app_logs_cmd.py +0 -0
  247. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/cli/test_app_redis_cmd.py +0 -0
  248. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/cli/test_logs_cmd.py +0 -0
  249. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/cli/test_main_app.py +0 -0
  250. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/cli/test_model_cmd.py +0 -0
  251. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/cli/test_self_cmd.py +0 -0
  252. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/cli/test_self_cmd_commands.py +0 -0
  253. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/cli/test_self_cmd_plugins.py +0 -0
  254. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/cli/test_self_cmd_utilities.py +0 -0
  255. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/cli/test_workflow_file.py +0 -0
  256. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/cli/test_workflow_gcloud.py +0 -0
  257. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/cli/test_workflow_registry.py +0 -0
  258. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/conftest.py +0 -0
  259. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/demo_generate_graph.py +0 -0
  260. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/demo_hierarchical_transform.py +0 -0
  261. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/e2e/test_complete_workflows.py +0 -0
  262. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/e2e/test_model_workflow.py +0 -0
  263. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/e2e/test_new_user_workflow.py +0 -0
  264. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/e2e/test_update_workflow.py +0 -0
  265. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/fixtures/chat_fixtures.py +0 -0
  266. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/fixtures/cli_fixtures.py +0 -0
  267. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/fixtures/data_fixtures.py +0 -0
  268. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/fixtures/db_fixtures.py +0 -0
  269. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/fixtures/model_fixtures.py +0 -0
  270. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_agent.py +0 -0
  271. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_california_scraper.py +0 -0
  272. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_chat_client.py +0 -0
  273. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_chat_system.py +0 -0
  274. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_congress_scraper.py +0 -0
  275. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_daemon_client.py +0 -0
  276. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_daemon_server.py +0 -0
  277. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_e2e_dashboard_lsh_supabase.py +0 -0
  278. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_flask_webapp.py +0 -0
  279. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_gcloud_services.py +0 -0
  280. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_lsh_client.py +0 -0
  281. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_lsh_service.py +0 -0
  282. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_ml_auth.py +0 -0
  283. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_ml_data_pipeline.py +0 -0
  284. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_ml_models.py +0 -0
  285. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_ml_pipeline.py +0 -0
  286. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_module_imports.py +0 -0
  287. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_oi_service.py +0 -0
  288. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_politician_trading.py +0 -0
  289. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_repo_operations.py +0 -0
  290. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_scheduler_integration.py +0 -0
  291. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_service_registry.py +0 -0
  292. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_supabase_live_connection.py +0 -0
  293. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_uk_scraper.py +0 -0
  294. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_us_states_scraper.py +0 -0
  295. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_video_processing.py +0 -0
  296. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_wakatime_api.py +0 -0
  297. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_webapp_full.py +0 -0
  298. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_workflow.py +0 -0
  299. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/integration/test_workflow_commands.py +0 -0
  300. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/run_tests.py +0 -0
  301. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/test_harness.py +0 -0
  302. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/test_openai_adapter.py +0 -0
  303. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_api_utils.py +0 -0
  304. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_async_process_manager.py +0 -0
  305. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_auth_modules.py +0 -0
  306. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_bug_fixes.py +0 -0
  307. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_config.py +0 -0
  308. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_custom_commands.py +0 -0
  309. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_daemon_api.py +0 -0
  310. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_dashboard_components.py +0 -0
  311. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_dashboard_functions.py +0 -0
  312. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_dashboard_pages.py +0 -0
  313. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_dependencies.py +0 -0
  314. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_doc_convert_workflow.py +0 -0
  315. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_emulator_workflow.py +0 -0
  316. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_erd_generation.py +0 -0
  317. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_erd_generic.py +0 -0
  318. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_erd_imports.py +0 -0
  319. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_git_commit_workflow.py +0 -0
  320. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_lib_auth.py +0 -0
  321. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_lib_files.py +0 -0
  322. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_lib_utils.py +0 -0
  323. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_logger.py +0 -0
  324. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_ml_preprocessing.py +0 -0
  325. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_paths.py +0 -0
  326. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_pdf_compress.py +0 -0
  327. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_prediction_engine.py +0 -0
  328. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_regression.py +0 -0
  329. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_scheduler.py +0 -0
  330. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_scheduler_cron_parser.py +0 -0
  331. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_scheduler_job.py +0 -0
  332. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_scheduler_monitor.py +0 -0
  333. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_scheduler_persistence.py +0 -0
  334. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_self_update.py +0 -0
  335. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_store_cmd.py +0 -0
  336. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_supabase_connection.py +0 -0
  337. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_supabase_pagination.py +0 -0
  338. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_toml_utils.py +0 -0
  339. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_trading_imports.py +0 -0
  340. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_ui_rich.py +0 -0
  341. {mcli_framework-7.9.5 → mcli_framework-7.9.7}/tests/unit/test_uv_compat.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcli-framework
3
- Version: 7.9.5
3
+ Version: 7.9.7
4
4
  Summary: Portable workflow framework - transform any script into a versioned, schedulable command. Store in ~/.mcli/commands/, version with lockfile, run as daemon or cron job.
5
5
  Author-email: Luis Fernandez de la Vara <luis@lefv.io>
6
6
  Maintainer-email: Luis Fernandez de la Vara <luis@lefv.io>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mcli-framework"
3
- version = "7.9.5"
3
+ version = "7.9.7"
4
4
  description = "Portable workflow framework - transform any script into a versioned, schedulable command. Store in ~/.mcli/commands/, version with lockfile, run as daemon or cron job."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.9"
@@ -10,8 +10,6 @@ from pathlib import Path
10
10
 
11
11
  # Try to load the model command from the workflow system
12
12
  try:
13
- from mcli.lib.custom_commands import load_command_from_file
14
-
15
13
  # Load model command from ~/.mcli/commands/model.json
16
14
  model_json_path = Path.home() / ".mcli" / "commands" / "model.json"
17
15
 
@@ -257,14 +257,13 @@ def execute_conversion_strategy(
257
257
  )
258
258
 
259
259
  elif strategy.method == ConversionMethod.PANDOC_LATEX:
260
- # Pandoc with explicit LaTeX engine
260
+ # Pandoc with explicit LaTeX engine (xelatex for better Unicode support)
261
261
  cmd = [
262
262
  "pandoc",
263
263
  str(temp_input),
264
264
  "-f", from_format,
265
- "-t", "latex" if to_format == "pdf" else to_format,
266
265
  "-o", str(temp_output),
267
- "--pdf-engine=pdflatex"
266
+ "--pdf-engine=xelatex"
268
267
  ]
269
268
  if pandoc_args:
270
269
  cmd.extend(pandoc_args.split())
@@ -325,9 +324,11 @@ def execute_conversion_strategy(
325
324
  "pandoc",
326
325
  str(temp_input),
327
326
  "-f", from_format,
328
- "-t", to_format,
329
327
  "-o", str(temp_output)
330
328
  ]
329
+ # Use xelatex for PDF conversions (better Unicode support)
330
+ if to_format == "pdf":
331
+ cmd.append("--pdf-engine=xelatex")
331
332
  if pandoc_args:
332
333
  cmd.extend(pandoc_args.split())
333
334
 
@@ -475,7 +476,7 @@ def init():
475
476
  info("=" * 60)
476
477
  info("")
477
478
  info("Installed tools:")
478
- info(" • pandoc - Universal document converter")
479
+ info(" • pandoc - Universal document converter (with XeLaTeX for Unicode support)")
479
480
  info(" • jupyter nbconvert - Best for Jupyter notebooks")
480
481
  info(" • basictex - LaTeX for PDF generation")
481
482
  info("")
@@ -494,9 +495,15 @@ def init():
494
495
  info(" sudo tlmgr install collection-fontsrecommended")
495
496
  info(" sudo mktexlsr")
496
497
  info("")
498
+ info("💡 NOTE: The converter uses XeLaTeX for better Unicode/emoji support")
499
+ info(" in documents. Fallback strategies handle most edge cases.")
500
+ info("")
497
501
  info("You can now use: mcli workflow doc-convert convert <from> <to> <file>")
498
502
  info("Example: mcli workflow doc-convert convert ipynb pdf notebook.ipynb")
499
503
  info("")
504
+ info("To uninstall dependencies later:")
505
+ info(" mcli workflow doc-convert cleanup")
506
+ info("")
500
507
 
501
508
 
502
509
  @doc_convert.command()
@@ -662,5 +669,126 @@ def convert(from_format, to_format, path, output_dir, pandoc_args, no_fallback):
662
669
  info("=" * 60)
663
670
 
664
671
 
672
+ @doc_convert.command()
673
+ def cleanup():
674
+ """
675
+ Generate a cleanup script to uninstall doc-convert dependencies.
676
+
677
+ This command creates a shell script that you can review and run to
678
+ uninstall all the dependencies installed by the init command.
679
+
680
+ The script will be created at: ~/.mcli/commands/doc-convert-cleanup.sh
681
+ """
682
+ import os
683
+
684
+ info("=" * 60)
685
+ info("📦 Generating cleanup script")
686
+ info("=" * 60)
687
+ info("")
688
+
689
+ cleanup_script = """#!/bin/bash
690
+ # doc-convert Cleanup Script
691
+ # This script uninstalls dependencies installed by 'mcli workflow doc-convert init'
692
+ #
693
+ # WARNING: Review this script before running it!
694
+ # Some of these tools may be used by other applications.
695
+
696
+ set -e
697
+
698
+ echo "================================"
699
+ echo "doc-convert Dependency Cleanup"
700
+ echo "================================"
701
+ echo ""
702
+ echo "This will uninstall the following:"
703
+ echo " • pandoc (universal document converter)"
704
+ echo " • basictex (LaTeX distribution)"
705
+ echo " • jupyter & nbconvert (Jupyter tools)"
706
+ echo " • LaTeX packages (collection-latexextra, collection-fontsrecommended)"
707
+ echo ""
708
+ read -p "Continue with uninstall? (y/N) " -n 1 -r
709
+ echo
710
+ if [[ ! $REPLY =~ ^[Yy]$ ]]; then
711
+ echo "Cancelled"
712
+ exit 0
713
+ fi
714
+
715
+ echo ""
716
+ echo "Uninstalling Homebrew packages..."
717
+
718
+ # Uninstall pandoc
719
+ if brew list pandoc &>/dev/null; then
720
+ echo " Uninstalling pandoc..."
721
+ brew uninstall pandoc
722
+ else
723
+ echo " pandoc not installed via Homebrew"
724
+ fi
725
+
726
+ # Uninstall BasicTeX
727
+ if brew list basictex &>/dev/null; then
728
+ echo " Uninstalling basictex..."
729
+ brew uninstall --cask basictex
730
+
731
+ # Remove LaTeX distribution directory
732
+ if [ -d "/usr/local/texlive/2025basic" ]; then
733
+ echo " Removing LaTeX directory..."
734
+ sudo rm -rf /usr/local/texlive/2025basic
735
+ fi
736
+ else
737
+ echo " basictex not installed via Homebrew"
738
+ fi
739
+
740
+ echo ""
741
+ echo "Uninstalling Python packages..."
742
+
743
+ # Uninstall jupyter and nbconvert from pyenv Python
744
+ PYENV_VERSION=$(pyenv version-name 2>/dev/null || echo "")
745
+ if [ -n "$PYENV_VERSION" ]; then
746
+ echo " Current pyenv version: $PYENV_VERSION"
747
+ if command -v pip &> /dev/null; then
748
+ echo " Uninstalling jupyter..."
749
+ pip uninstall -y jupyter jupyter-core jupyterlab nbconvert 2>/dev/null || true
750
+ fi
751
+ else
752
+ echo " pyenv not active or not installed"
753
+ fi
754
+
755
+ echo ""
756
+ echo "================================"
757
+ echo "Cleanup Complete!"
758
+ echo "================================"
759
+ echo ""
760
+ echo "The following may still exist:"
761
+ echo " • ~/.mcli/commands/temp/ (conversion temp directory)"
762
+ echo " • Other LaTeX installations (if installed separately)"
763
+ echo ""
764
+ echo "To remove the temp directory:"
765
+ echo " rm -rf ~/.mcli/commands/temp/"
766
+ echo ""
767
+ """
768
+
769
+ # Write cleanup script
770
+ commands_dir = get_custom_commands_dir()
771
+ cleanup_path = commands_dir / "doc-convert-cleanup.sh"
772
+
773
+ with open(cleanup_path, 'w') as f:
774
+ f.write(cleanup_script)
775
+
776
+ # Make it executable
777
+ os.chmod(cleanup_path, 0o755)
778
+
779
+ success(f"✅ Cleanup script created: {cleanup_path}")
780
+ info("")
781
+ info("To review the script:")
782
+ info(f" cat {cleanup_path}")
783
+ info("")
784
+ info("To run the cleanup:")
785
+ info(f" bash {cleanup_path}")
786
+ info("")
787
+ warning("⚠️ IMPORTANT: Review the script before running it!")
788
+ warning(" Some dependencies may be used by other applications.")
789
+ info("")
790
+ info("=" * 60)
791
+
792
+
665
793
  if __name__ == "__main__":
666
794
  doc_convert()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcli-framework
3
- Version: 7.9.5
3
+ Version: 7.9.7
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>
File without changes
File without changes
File without changes