mcli-framework 7.9.5__tar.gz → 7.9.6__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.6}/PKG-INFO +1 -1
  2. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/pyproject.toml +1 -1
  3. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/doc_convert.py +133 -5
  4. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli_framework.egg-info/PKG-INFO +1 -1
  5. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/.github/dependabot.yml +0 -0
  6. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/.github/workflows/build.yml +0 -0
  7. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/.github/workflows/ci.yml +0 -0
  8. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/.github/workflows/ml-pipeline.yml +0 -0
  9. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/.github/workflows/publish-self-hosted.yml +0 -0
  10. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/.github/workflows/publish.yml +0 -0
  11. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/.github/workflows/release.yml +0 -0
  12. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/.github/workflows/security.yml +0 -0
  13. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/.github/workflows/test.yml +0 -0
  14. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/LICENSE +0 -0
  15. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/MANIFEST.in +0 -0
  16. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/README.md +0 -0
  17. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/mcli_rust/Cargo.toml +0 -0
  18. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/mcli_rust/src/command_parser.rs +0 -0
  19. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/mcli_rust/src/file_watcher.rs +0 -0
  20. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/mcli_rust/src/lib.rs +0 -0
  21. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/mcli_rust/src/process_manager.rs +0 -0
  22. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/mcli_rust/src/tfidf.rs +0 -0
  23. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/setup.cfg +0 -0
  24. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/app/commands_cmd.py +0 -0
  25. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/app/completion_helpers.py +0 -0
  26. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/app/main.py +0 -0
  27. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/app/model/model.py +0 -0
  28. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/app/model_cmd.py +0 -0
  29. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/app/video/video.py +0 -0
  30. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/chat/chat.py +0 -0
  31. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/chat/command_rag.py +0 -0
  32. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/chat/enhanced_chat.py +0 -0
  33. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/chat/system_controller.py +0 -0
  34. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/chat/system_integration.py +0 -0
  35. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/cli.py +0 -0
  36. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/config.toml +0 -0
  37. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/api/api.py +0 -0
  38. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/api/daemon_client.py +0 -0
  39. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/api/daemon_client_local.py +0 -0
  40. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/api/daemon_decorator.py +0 -0
  41. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/api/mcli_decorators.py +0 -0
  42. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/auth/auth.py +0 -0
  43. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/auth/aws_manager.py +0 -0
  44. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/auth/azure_manager.py +0 -0
  45. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/auth/credential_manager.py +0 -0
  46. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/auth/gcp_manager.py +0 -0
  47. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/auth/key_manager.py +0 -0
  48. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/auth/mcli_manager.py +0 -0
  49. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/auth/token_manager.py +0 -0
  50. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/auth/token_util.py +0 -0
  51. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/config/config.py +0 -0
  52. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/custom_commands.py +0 -0
  53. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/discovery/__init__.py +0 -0
  54. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/discovery/command_discovery.py +0 -0
  55. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/erd/erd.py +0 -0
  56. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/erd/generate_graph.py +0 -0
  57. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/files/files.py +0 -0
  58. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/fs/fs.py +0 -0
  59. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/lib.py +0 -0
  60. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/logger/logger.py +0 -0
  61. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/paths.py +0 -0
  62. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/performance/optimizer.py +0 -0
  63. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/performance/rust_bridge.py +0 -0
  64. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/performance/uvloop_config.py +0 -0
  65. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/pickles/pickles.py +0 -0
  66. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/search/cached_vectorizer.py +0 -0
  67. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/secrets/commands.py +0 -0
  68. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/secrets/manager.py +0 -0
  69. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/secrets/repl.py +0 -0
  70. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/secrets/store.py +0 -0
  71. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/services/data_pipeline.py +0 -0
  72. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/services/lsh_client.py +0 -0
  73. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/services/redis_service.py +0 -0
  74. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/shell/shell.py +0 -0
  75. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/toml/toml.py +0 -0
  76. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/ui/styling.py +0 -0
  77. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/ui/visual_effects.py +0 -0
  78. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/lib/watcher/watcher.py +0 -0
  79. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/api/app.py +0 -0
  80. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/api/middleware.py +0 -0
  81. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/api/routers/admin_router.py +0 -0
  82. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/api/routers/auth_router.py +0 -0
  83. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/api/routers/backtest_router.py +0 -0
  84. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/api/routers/data_router.py +0 -0
  85. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/api/routers/model_router.py +0 -0
  86. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/api/routers/monitoring_router.py +0 -0
  87. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/api/routers/portfolio_router.py +0 -0
  88. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/api/routers/prediction_router.py +0 -0
  89. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/api/routers/trade_router.py +0 -0
  90. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/api/routers/websocket_router.py +0 -0
  91. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/api/schemas.py +0 -0
  92. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/auth/auth_manager.py +0 -0
  93. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/auth/models.py +0 -0
  94. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/auth/permissions.py +0 -0
  95. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/backtesting/backtest_engine.py +0 -0
  96. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/backtesting/performance_metrics.py +0 -0
  97. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/backtesting/run.py +0 -0
  98. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/cache.py +0 -0
  99. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/cli/main.py +0 -0
  100. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/config/settings.py +0 -0
  101. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/configs/dvc_config.py +0 -0
  102. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/configs/mlflow_config.py +0 -0
  103. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/configs/mlops_manager.py +0 -0
  104. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/dashboard/app.py +0 -0
  105. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/dashboard/app_integrated.py +0 -0
  106. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/dashboard/app_supabase.py +0 -0
  107. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/dashboard/app_training.py +0 -0
  108. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/dashboard/cli.py +0 -0
  109. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/dashboard/common.py +0 -0
  110. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/dashboard/components/charts.py +0 -0
  111. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/dashboard/components/metrics.py +0 -0
  112. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/dashboard/components/tables.py +0 -0
  113. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/dashboard/overview.py +0 -0
  114. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/dashboard/pages/cicd.py +0 -0
  115. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/dashboard/pages/debug_dependencies.py +0 -0
  116. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/dashboard/pages/gravity_viz.py +0 -0
  117. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/dashboard/pages/monte_carlo_predictions.py +0 -0
  118. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/dashboard/pages/predictions_enhanced.py +0 -0
  119. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/dashboard/pages/scrapers_and_logs.py +0 -0
  120. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/dashboard/pages/test_portfolio.py +0 -0
  121. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/dashboard/pages/trading.py +0 -0
  122. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/dashboard/pages/workflows.py +0 -0
  123. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/dashboard/streamlit_extras_utils.py +0 -0
  124. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/dashboard/styles.py +0 -0
  125. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/dashboard/utils.py +0 -0
  126. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/dashboard/warning_suppression.py +0 -0
  127. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/data_ingestion/api_connectors.py +0 -0
  128. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/data_ingestion/data_pipeline.py +0 -0
  129. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/data_ingestion/stream_processor.py +0 -0
  130. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/database/migrations/env.py +0 -0
  131. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/database/models.py +0 -0
  132. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/database/session.py +0 -0
  133. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/experimentation/ab_testing.py +0 -0
  134. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/features/ensemble_features.py +0 -0
  135. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/features/political_features.py +0 -0
  136. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/features/recommendation_engine.py +0 -0
  137. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/features/stock_features.py +0 -0
  138. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/features/test_feature_engineering.py +0 -0
  139. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/logging.py +0 -0
  140. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/mlops/data_versioning.py +0 -0
  141. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/mlops/experiment_tracker.py +0 -0
  142. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/mlops/model_serving.py +0 -0
  143. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/mlops/pipeline_orchestrator.py +0 -0
  144. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/models/base_models.py +0 -0
  145. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/models/ensemble_models.py +0 -0
  146. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/models/recommendation_models.py +0 -0
  147. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/models/test_models.py +0 -0
  148. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/monitoring/drift_detection.py +0 -0
  149. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/monitoring/metrics.py +0 -0
  150. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/optimization/optimize.py +0 -0
  151. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/optimization/portfolio_optimizer.py +0 -0
  152. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/predictions/monte_carlo.py +0 -0
  153. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/predictions/prediction_engine.py +0 -0
  154. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/preprocessing/data_cleaners.py +0 -0
  155. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/preprocessing/feature_extractors.py +0 -0
  156. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/preprocessing/ml_pipeline.py +0 -0
  157. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/preprocessing/politician_trading_preprocessor.py +0 -0
  158. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/preprocessing/test_preprocessing.py +0 -0
  159. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/scripts/populate_sample_data.py +0 -0
  160. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/serving/serve.py +0 -0
  161. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/tasks.py +0 -0
  162. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/tests/test_integration.py +0 -0
  163. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/tests/test_training_dashboard.py +0 -0
  164. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/trading/alpaca_client.py +0 -0
  165. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/trading/migrations.py +0 -0
  166. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/trading/models.py +0 -0
  167. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/trading/paper_trading.py +0 -0
  168. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/trading/risk_management.py +0 -0
  169. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/trading/trading_service.py +0 -0
  170. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/training/train.py +0 -0
  171. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/ml/training/train_model.py +0 -0
  172. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/mygroup/test_cmd.py +0 -0
  173. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/public/oi/oi.py +0 -0
  174. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/public/public.py +0 -0
  175. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/self/completion_cmd.py +0 -0
  176. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/self/logs_cmd.py +0 -0
  177. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/self/redis_cmd.py +0 -0
  178. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/self/self_cmd.py +0 -0
  179. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/self/store_cmd.py +0 -0
  180. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/self/test_cmd.py +0 -0
  181. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/self/visual_cmd.py +0 -0
  182. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/self/zsh_cmd.py +0 -0
  183. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/daemon/async_command_database.py +0 -0
  184. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/daemon/async_process_manager.py +0 -0
  185. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/daemon/client.py +0 -0
  186. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/daemon/daemon.py +0 -0
  187. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/daemon/daemon_api.py +0 -0
  188. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/daemon/enhanced_daemon.py +0 -0
  189. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/daemon/process_cli.py +0 -0
  190. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/daemon/process_manager.py +0 -0
  191. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/daemon/test_daemon.py +0 -0
  192. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/dashboard/dashboard_cmd.py +0 -0
  193. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/docker/docker.py +0 -0
  194. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/gcloud/config.toml +0 -0
  195. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/gcloud/gcloud.py +0 -0
  196. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/git_commit/ai_service.py +0 -0
  197. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/lsh_integration.py +0 -0
  198. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/model_service/client.py +0 -0
  199. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/model_service/download_and_run_efficient_models.py +0 -0
  200. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/model_service/lightweight_embedder.py +0 -0
  201. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/model_service/lightweight_model_server.py +0 -0
  202. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/model_service/lightweight_test.py +0 -0
  203. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/model_service/model_service.py +0 -0
  204. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/model_service/ollama_efficient_runner.py +0 -0
  205. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/model_service/openai_adapter.py +0 -0
  206. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/model_service/pdf_processor.py +0 -0
  207. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/model_service/test_efficient_runner.py +0 -0
  208. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/model_service/test_example.py +0 -0
  209. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/model_service/test_integration.py +0 -0
  210. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/model_service/test_new_features.py +0 -0
  211. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/openai/openai.py +0 -0
  212. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/politician_trading/config.py +0 -0
  213. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/politician_trading/connectivity.py +0 -0
  214. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/politician_trading/data_sources.py +0 -0
  215. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/politician_trading/database.py +0 -0
  216. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/politician_trading/demo.py +0 -0
  217. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/politician_trading/models.py +0 -0
  218. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/politician_trading/monitoring.py +0 -0
  219. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/politician_trading/scrapers.py +0 -0
  220. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/politician_trading/scrapers_california.py +0 -0
  221. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/politician_trading/scrapers_corporate_registry.py +0 -0
  222. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/politician_trading/scrapers_eu.py +0 -0
  223. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/politician_trading/scrapers_free_sources.py +0 -0
  224. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/politician_trading/scrapers_third_party.py +0 -0
  225. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/politician_trading/scrapers_uk.py +0 -0
  226. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/politician_trading/scrapers_us_states.py +0 -0
  227. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/politician_trading/seed_database.py +0 -0
  228. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/politician_trading/supabase_functions.py +0 -0
  229. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/politician_trading/workflow.py +0 -0
  230. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/registry/registry.py +0 -0
  231. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/repo/repo.py +0 -0
  232. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/scheduler/cron_parser.py +0 -0
  233. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/scheduler/job.py +0 -0
  234. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/scheduler/monitor.py +0 -0
  235. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/scheduler/persistence.py +0 -0
  236. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/scheduler/scheduler.py +0 -0
  237. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/sync/test_cmd.py +0 -0
  238. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/wakatime/wakatime.py +0 -0
  239. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli/workflow/workflow.py +0 -0
  240. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli_framework.egg-info/SOURCES.txt +0 -0
  241. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli_framework.egg-info/dependency_links.txt +0 -0
  242. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli_framework.egg-info/entry_points.txt +0 -0
  243. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli_framework.egg-info/requires.txt +0 -0
  244. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/src/mcli_framework.egg-info/top_level.txt +0 -0
  245. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/cli/test_all_commands.py +0 -0
  246. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/cli/test_app_logs_cmd.py +0 -0
  247. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/cli/test_app_redis_cmd.py +0 -0
  248. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/cli/test_logs_cmd.py +0 -0
  249. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/cli/test_main_app.py +0 -0
  250. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/cli/test_model_cmd.py +0 -0
  251. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/cli/test_self_cmd.py +0 -0
  252. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/cli/test_self_cmd_commands.py +0 -0
  253. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/cli/test_self_cmd_plugins.py +0 -0
  254. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/cli/test_self_cmd_utilities.py +0 -0
  255. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/cli/test_workflow_file.py +0 -0
  256. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/cli/test_workflow_gcloud.py +0 -0
  257. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/cli/test_workflow_registry.py +0 -0
  258. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/conftest.py +0 -0
  259. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/demo_generate_graph.py +0 -0
  260. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/demo_hierarchical_transform.py +0 -0
  261. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/e2e/test_complete_workflows.py +0 -0
  262. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/e2e/test_model_workflow.py +0 -0
  263. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/e2e/test_new_user_workflow.py +0 -0
  264. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/e2e/test_update_workflow.py +0 -0
  265. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/fixtures/chat_fixtures.py +0 -0
  266. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/fixtures/cli_fixtures.py +0 -0
  267. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/fixtures/data_fixtures.py +0 -0
  268. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/fixtures/db_fixtures.py +0 -0
  269. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/fixtures/model_fixtures.py +0 -0
  270. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_agent.py +0 -0
  271. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_california_scraper.py +0 -0
  272. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_chat_client.py +0 -0
  273. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_chat_system.py +0 -0
  274. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_congress_scraper.py +0 -0
  275. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_daemon_client.py +0 -0
  276. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_daemon_server.py +0 -0
  277. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_e2e_dashboard_lsh_supabase.py +0 -0
  278. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_flask_webapp.py +0 -0
  279. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_gcloud_services.py +0 -0
  280. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_lsh_client.py +0 -0
  281. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_lsh_service.py +0 -0
  282. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_ml_auth.py +0 -0
  283. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_ml_data_pipeline.py +0 -0
  284. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_ml_models.py +0 -0
  285. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_ml_pipeline.py +0 -0
  286. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_module_imports.py +0 -0
  287. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_oi_service.py +0 -0
  288. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_politician_trading.py +0 -0
  289. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_repo_operations.py +0 -0
  290. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_scheduler_integration.py +0 -0
  291. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_service_registry.py +0 -0
  292. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_supabase_live_connection.py +0 -0
  293. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_uk_scraper.py +0 -0
  294. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_us_states_scraper.py +0 -0
  295. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_video_processing.py +0 -0
  296. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_wakatime_api.py +0 -0
  297. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_webapp_full.py +0 -0
  298. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_workflow.py +0 -0
  299. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/integration/test_workflow_commands.py +0 -0
  300. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/run_tests.py +0 -0
  301. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/test_harness.py +0 -0
  302. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/test_openai_adapter.py +0 -0
  303. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_api_utils.py +0 -0
  304. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_async_process_manager.py +0 -0
  305. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_auth_modules.py +0 -0
  306. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_bug_fixes.py +0 -0
  307. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_config.py +0 -0
  308. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_custom_commands.py +0 -0
  309. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_daemon_api.py +0 -0
  310. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_dashboard_components.py +0 -0
  311. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_dashboard_functions.py +0 -0
  312. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_dashboard_pages.py +0 -0
  313. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_dependencies.py +0 -0
  314. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_doc_convert_workflow.py +0 -0
  315. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_emulator_workflow.py +0 -0
  316. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_erd_generation.py +0 -0
  317. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_erd_generic.py +0 -0
  318. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_erd_imports.py +0 -0
  319. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_git_commit_workflow.py +0 -0
  320. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_lib_auth.py +0 -0
  321. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_lib_files.py +0 -0
  322. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_lib_utils.py +0 -0
  323. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_logger.py +0 -0
  324. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_ml_preprocessing.py +0 -0
  325. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_paths.py +0 -0
  326. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_pdf_compress.py +0 -0
  327. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_prediction_engine.py +0 -0
  328. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_regression.py +0 -0
  329. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_scheduler.py +0 -0
  330. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_scheduler_cron_parser.py +0 -0
  331. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_scheduler_job.py +0 -0
  332. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_scheduler_monitor.py +0 -0
  333. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_scheduler_persistence.py +0 -0
  334. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_self_update.py +0 -0
  335. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_store_cmd.py +0 -0
  336. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_supabase_connection.py +0 -0
  337. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_supabase_pagination.py +0 -0
  338. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_toml_utils.py +0 -0
  339. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_trading_imports.py +0 -0
  340. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/tests/unit/test_ui_rich.py +0 -0
  341. {mcli_framework-7.9.5 → mcli_framework-7.9.6}/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.6
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.6"
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"
@@ -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.6
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