mcli-framework 8.0.59__tar.gz → 8.0.60__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.
Files changed (237) hide show
  1. {mcli_framework-8.0.59/src/mcli_framework.egg-info → mcli_framework-8.0.60}/PKG-INFO +1 -1
  2. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/pyproject.toml +1 -1
  3. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/constants/paths.py +6 -0
  4. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/pyenv/deps.py +20 -0
  5. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/pyenv/manager.py +11 -7
  6. {mcli_framework-8.0.59 → mcli_framework-8.0.60/src/mcli_framework.egg-info}/PKG-INFO +1 -1
  7. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/LICENSE +0 -0
  8. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/MANIFEST.in +0 -0
  9. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/README.md +0 -0
  10. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/llms-full.txt +0 -0
  11. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/llms.txt +0 -0
  12. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/mcli_rust/Cargo.toml +0 -0
  13. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/mcli_rust/src/command_parser.rs +0 -0
  14. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/mcli_rust/src/file_watcher.rs +0 -0
  15. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/mcli_rust/src/lib.rs +0 -0
  16. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/mcli_rust/src/process_manager.rs +0 -0
  17. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/mcli_rust/src/tfidf.rs +0 -0
  18. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/setup.cfg +0 -0
  19. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/__init__.py +0 -0
  20. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/__main__.py +0 -0
  21. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/__init__.py +0 -0
  22. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/completion_helpers.py +0 -0
  23. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/context_cmd.py +0 -0
  24. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/delete_cmd.py +0 -0
  25. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/edit_cmd.py +0 -0
  26. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/import_cmd.py +0 -0
  27. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/init_cmd.py +0 -0
  28. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/list_cmd.py +0 -0
  29. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/main.py +0 -0
  30. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/model/__init__.py +0 -0
  31. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/model/model.py +0 -0
  32. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/model_cmd.py +0 -0
  33. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/mv_cmd.py +0 -0
  34. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/new_cmd.py +0 -0
  35. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/search_cmd.py +0 -0
  36. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/services_cmd.py +0 -0
  37. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/setup_cmd.py +0 -0
  38. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/source_sync_cmd.py +0 -0
  39. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/sync_cmd.py +0 -0
  40. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/video/__init__.py +0 -0
  41. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/video/video.py +0 -0
  42. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/config.toml +0 -0
  43. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/__init__.py +0 -0
  44. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/api/__init__.py +0 -0
  45. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/api/api.py +0 -0
  46. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/api/daemon_client.py +0 -0
  47. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/api/daemon_client_local.py +0 -0
  48. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/api/daemon_decorator.py +0 -0
  49. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/api/mcli_decorators.py +0 -0
  50. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/auth/__init__.py +0 -0
  51. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/auth/auth.py +0 -0
  52. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/auth/aws_manager.py +0 -0
  53. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/auth/azure_manager.py +0 -0
  54. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/auth/credential_manager.py +0 -0
  55. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/auth/gcp_manager.py +0 -0
  56. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/auth/key_manager.py +0 -0
  57. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/auth/mcli_manager.py +0 -0
  58. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/auth/token_manager.py +0 -0
  59. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/auth/token_util.py +0 -0
  60. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/config/__init__.py +0 -0
  61. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/config/config.py +0 -0
  62. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/config/settings.py +0 -0
  63. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/constants/__init__.py +0 -0
  64. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/constants/commands.py +0 -0
  65. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/constants/defaults.py +0 -0
  66. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/constants/env.py +0 -0
  67. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/constants/messages.py +0 -0
  68. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/constants/scripts.py +0 -0
  69. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/constants/storage.py +0 -0
  70. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/custom_commands.py +0 -0
  71. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/discovery/__init__.py +0 -0
  72. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/discovery/command_discovery.py +0 -0
  73. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/erd/__init__.py +0 -0
  74. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/erd/erd.py +0 -0
  75. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/erd/generate_graph.py +0 -0
  76. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/errors.py +0 -0
  77. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/feature_detection.py +0 -0
  78. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/files/__init__.py +0 -0
  79. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/files/files.py +0 -0
  80. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/folder_workflows.py +0 -0
  81. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/fs/__init__.py +0 -0
  82. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/fs/fs.py +0 -0
  83. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/ipfs_sync.py +0 -0
  84. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/ipfs_utils.py +0 -0
  85. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/ipns_manager.py +0 -0
  86. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/lib.py +0 -0
  87. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/logger/__init__.py +0 -0
  88. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/logger/correlation.py +0 -0
  89. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/logger/logger.py +0 -0
  90. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/logger/structured.py +0 -0
  91. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/optional_deps.py +0 -0
  92. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/paths.py +0 -0
  93. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/performance/__init__.py +0 -0
  94. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/performance/optimizer.py +0 -0
  95. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/performance/rust_bridge.py +0 -0
  96. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/performance/uvloop_config.py +0 -0
  97. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/pickles/__init__.py +0 -0
  98. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/pickles/pickles.py +0 -0
  99. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/pyenv/__init__.py +0 -0
  100. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/pyenv/venv.py +0 -0
  101. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/script_loader.py +0 -0
  102. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/script_sync.py +0 -0
  103. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/script_watcher.py +0 -0
  104. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/search/cached_vectorizer.py +0 -0
  105. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/secrets/__init__.py +0 -0
  106. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/secrets/commands.py +0 -0
  107. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/secrets/manager.py +0 -0
  108. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/secrets/repl.py +0 -0
  109. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/secrets/store.py +0 -0
  110. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/services/__init__.py +0 -0
  111. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/services/config.py +0 -0
  112. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/services/data_pipeline.py +0 -0
  113. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/services/health.py +0 -0
  114. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/services/lsh_client.py +0 -0
  115. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/services/manager.py +0 -0
  116. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/services/redis_service.py +0 -0
  117. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/services/registry.py +0 -0
  118. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/services/state.py +0 -0
  119. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/services/supervisor.py +0 -0
  120. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/shell/__init__.py +0 -0
  121. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/shell/exceptions.py +0 -0
  122. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/shell/shell.py +0 -0
  123. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/sync_key_store.py +0 -0
  124. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/templates/__init__.py +0 -0
  125. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/templates/command_templates.py +0 -0
  126. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/toml/__init__.py +0 -0
  127. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/toml/toml.py +0 -0
  128. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/types.py +0 -0
  129. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/ui/styling.py +0 -0
  130. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/ui/visual_effects.py +0 -0
  131. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/watcher/__init__.py +0 -0
  132. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/watcher/watcher.py +0 -0
  133. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/workflow_models.py +0 -0
  134. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/workspace_registry.py +0 -0
  135. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/mygroup/__init__.py +0 -0
  136. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/mygroup/test_cmd.py +0 -0
  137. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/public/__init__.py +0 -0
  138. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/public/commands/__init__.py +0 -0
  139. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/public/oi/oi.py +0 -0
  140. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/public/public.py +0 -0
  141. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/__init__.py +0 -0
  142. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/completion_cmd.py +0 -0
  143. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/env_cmd.py +0 -0
  144. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/health_cmd.py +0 -0
  145. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/ipfs_cmd.py +0 -0
  146. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/logs_cmd.py +0 -0
  147. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/migrate_cmd.py +0 -0
  148. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/release_notes_cmd.py +0 -0
  149. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/self_cmd.py +0 -0
  150. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/store_cmd.py +0 -0
  151. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/test_cmd.py +0 -0
  152. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/workflows_cmd.py +0 -0
  153. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/storage/__init__.py +0 -0
  154. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/storage/backends/__init__.py +0 -0
  155. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/storage/backends/ipfs_backend.py +0 -0
  156. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/storage/base.py +0 -0
  157. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/storage/cache.py +0 -0
  158. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/storage/encryption.py +0 -0
  159. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/storage/factory.py +0 -0
  160. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/storage/registry.py +0 -0
  161. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/storage/storacha_cli.py +0 -0
  162. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/__init__.py +0 -0
  163. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/ci/__init__.py +0 -0
  164. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/ci/act_runner.py +0 -0
  165. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/ci/ci.py +0 -0
  166. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/ci/runner_status.py +0 -0
  167. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/ci/workflow_transform.py +0 -0
  168. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/daemon/__init__.py +0 -0
  169. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/daemon/async_command_database.py +0 -0
  170. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/daemon/async_process_manager.py +0 -0
  171. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/daemon/client.py +0 -0
  172. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/daemon/daemon.py +0 -0
  173. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/daemon/daemon_api.py +0 -0
  174. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/daemon/enhanced_daemon.py +0 -0
  175. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/daemon/process_cli.py +0 -0
  176. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/daemon/process_manager.py +0 -0
  177. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/daemon/test_daemon.py +0 -0
  178. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/doc_convert.py +0 -0
  179. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/docker/__init__.py +0 -0
  180. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/docker/docker.py +0 -0
  181. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/file/__init__.py +0 -0
  182. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/gcloud/__init__.py +0 -0
  183. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/gcloud/config.toml +0 -0
  184. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/gcloud/gcloud.py +0 -0
  185. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/git_commit/__init__.py +0 -0
  186. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/git_commit/ai_service.py +0 -0
  187. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/interview/__init__.py +0 -0
  188. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/lsh_integration.py +0 -0
  189. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/client.py +0 -0
  190. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/download_and_run_efficient_models.py +0 -0
  191. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/lightweight_embedder.py +0 -0
  192. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/lightweight_model_server.py +0 -0
  193. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/lightweight_test.py +0 -0
  194. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/model_service.py +0 -0
  195. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/ollama_efficient_runner.py +0 -0
  196. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/openai_adapter.py +0 -0
  197. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/pdf_processor.py +0 -0
  198. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/test_efficient_runner.py +0 -0
  199. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/test_example.py +0 -0
  200. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/test_integration.py +0 -0
  201. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/test_new_features.py +0 -0
  202. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/notebook/__init__.py +0 -0
  203. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/notebook/command_loader.py +0 -0
  204. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/notebook/converter.py +0 -0
  205. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/notebook/executor.py +0 -0
  206. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/notebook/notebook_cmd.py +0 -0
  207. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/notebook/schema.py +0 -0
  208. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/notebook/validator.py +0 -0
  209. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/openai/openai.py +0 -0
  210. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/registry/__init__.py +0 -0
  211. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/registry/registry.py +0 -0
  212. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/repo/__init__.py +0 -0
  213. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/repo/repo.py +0 -0
  214. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/scheduler/__init__.py +0 -0
  215. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/scheduler/cron_parser.py +0 -0
  216. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/scheduler/job.py +0 -0
  217. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/scheduler/models.py +0 -0
  218. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/scheduler/monitor.py +0 -0
  219. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/scheduler/persistence.py +0 -0
  220. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/scheduler/scheduler.py +0 -0
  221. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/scheduler/validation.py +0 -0
  222. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/search/__init__.py +0 -0
  223. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/secrets/__init__.py +0 -0
  224. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/secrets/secrets_cmd.py +0 -0
  225. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/storage/__init__.py +0 -0
  226. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/storage/storage_cmd.py +0 -0
  227. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/sync/__init__.py +0 -0
  228. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/sync/test_cmd.py +0 -0
  229. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/videos/__init__.py +0 -0
  230. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/wakatime/__init__.py +0 -0
  231. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/wakatime/wakatime.py +0 -0
  232. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/workflow.py +0 -0
  233. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli_framework.egg-info/SOURCES.txt +0 -0
  234. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli_framework.egg-info/dependency_links.txt +0 -0
  235. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli_framework.egg-info/entry_points.txt +0 -0
  236. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli_framework.egg-info/requires.txt +0 -0
  237. {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli_framework.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcli-framework
3
- Version: 8.0.59
3
+ Version: 8.0.60
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 = "8.0.59"
3
+ version = "8.0.60"
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.10"
@@ -101,5 +101,11 @@ class VenvPaths:
101
101
  PYTHON_UNIX = "python"
102
102
  PYTHON_WINDOWS = "python.exe"
103
103
 
104
+ # Framework runtime primitives that mcli python workflows assume are
105
+ # importable. The generated script templates `import click` unconditionally,
106
+ # so an isolated (bare) global venv must be seeded with these even when a
107
+ # script omits them from its @requires metadata.
108
+ BASE_RUNTIME_PACKAGES = ["click"]
109
+
104
110
 
105
111
  __all__ = ["DirNames", "FileNames", "PathPatterns", "GitIgnorePatterns", "VenvPaths"]
@@ -75,6 +75,26 @@ class DependencyChecker:
75
75
 
76
76
  return installed, missing
77
77
 
78
+ def merge_base_runtime(self, packages: List[str], base: List[str]) -> List[str]:
79
+ """Append base runtime packages that are not already declared.
80
+
81
+ Comparison is by normalized package name, so a declared spec like
82
+ ``click>=8.0`` or ``Click`` suppresses adding the bare ``click`` base.
83
+
84
+ Args:
85
+ packages: Packages already requested (from @requires).
86
+ base: Base runtime packages to ensure are present.
87
+
88
+ Returns:
89
+ ``packages`` plus any base package whose normalized name is absent.
90
+ """
91
+ have = {self._normalize_package_name(self._extract_package_name(p)) for p in packages}
92
+ merged = list(packages)
93
+ for pkg in base:
94
+ if self._normalize_package_name(self._extract_package_name(pkg)) not in have:
95
+ merged.append(pkg)
96
+ return merged
97
+
78
98
  def install_packages(self, packages: List[str], venv_path: Path) -> bool:
79
99
  """Install packages using uv pip install.
80
100
 
@@ -12,7 +12,7 @@ from typing import Dict, List, Optional, Tuple
12
12
 
13
13
  import click
14
14
 
15
- from mcli.lib.constants import EnvVars, VenvMessages
15
+ from mcli.lib.constants import EnvVars, VenvMessages, VenvPaths
16
16
  from mcli.lib.logger import get_logger
17
17
 
18
18
  from .deps import DependencyChecker
@@ -119,10 +119,6 @@ class PyEnvManager:
119
119
  Returns:
120
120
  True if all dependencies are satisfied or installed.
121
121
  """
122
- if not requires:
123
- logger.debug(VenvMessages.NO_DEPS_SPECIFIED)
124
- return True
125
-
126
122
  venv_path, source = self.resolve_environment()
127
123
 
128
124
  # Ensure the venv exists (create global venv if needed)
@@ -132,8 +128,16 @@ class PyEnvManager:
132
128
  python_exe = self.get_python_executable()
133
129
  checker = DependencyChecker(python_exe)
134
130
 
135
- # Parse and check dependencies
136
- packages = checker.parse_requires(requires)
131
+ # Parse declared dependencies, then ensure framework runtime primitives
132
+ # (e.g. click) are present even when @requires is empty — an isolated
133
+ # global venv is created bare and mcli workflow scripts import click.
134
+ packages = checker.parse_requires(requires) if requires else []
135
+ packages = checker.merge_base_runtime(packages, VenvPaths.BASE_RUNTIME_PACKAGES)
136
+
137
+ if not packages:
138
+ logger.debug(VenvMessages.NO_DEPS_SPECIFIED)
139
+ return True
140
+
137
141
  logger.debug(VenvMessages.CHECKING_DEPS.format(script=script_name))
138
142
 
139
143
  installed, missing = checker.check_installed(packages)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcli-framework
3
- Version: 8.0.59
3
+ Version: 8.0.60
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