mcli-framework 8.0.49__tar.gz → 8.0.50__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 (241) hide show
  1. {mcli_framework-8.0.49/src/mcli_framework.egg-info → mcli_framework-8.0.50}/PKG-INFO +1 -1
  2. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/pyproject.toml +1 -1
  3. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/ipfs_sync.py +14 -2
  4. {mcli_framework-8.0.49 → mcli_framework-8.0.50/src/mcli_framework.egg-info}/PKG-INFO +1 -1
  5. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/LICENSE +0 -0
  6. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/MANIFEST.in +0 -0
  7. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/README.md +0 -0
  8. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/llms-full.txt +0 -0
  9. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/llms.txt +0 -0
  10. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/mcli_rust/Cargo.toml +0 -0
  11. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/mcli_rust/src/command_parser.rs +0 -0
  12. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/mcli_rust/src/file_watcher.rs +0 -0
  13. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/mcli_rust/src/lib.rs +0 -0
  14. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/mcli_rust/src/process_manager.rs +0 -0
  15. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/mcli_rust/src/tfidf.rs +0 -0
  16. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/setup.cfg +0 -0
  17. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/__init__.py +0 -0
  18. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/__init__.py +0 -0
  19. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/commands_cmd.py +0 -0
  20. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/completion_helpers.py +0 -0
  21. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/context_cmd.py +0 -0
  22. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/create_cmd.py +0 -0
  23. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/delete_cmd.py +0 -0
  24. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/edit_cmd.py +0 -0
  25. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/import_cmd.py +0 -0
  26. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/init_cmd.py +0 -0
  27. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/list_cmd.py +0 -0
  28. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/main.py +0 -0
  29. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/migrate_cmd.py +0 -0
  30. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/model/__init__.py +0 -0
  31. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/model/model.py +0 -0
  32. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/model_cmd.py +0 -0
  33. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/mv_cmd.py +0 -0
  34. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/new_cmd.py +0 -0
  35. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/remove_cmd.py +0 -0
  36. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/rm_cmd.py +0 -0
  37. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/search_cmd.py +0 -0
  38. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/services_cmd.py +0 -0
  39. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/setup_cmd.py +0 -0
  40. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/source_sync_cmd.py +0 -0
  41. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/sync_cmd.py +0 -0
  42. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/video/__init__.py +0 -0
  43. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/app/video/video.py +0 -0
  44. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/config.toml +0 -0
  45. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/__init__.py +0 -0
  46. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/api/__init__.py +0 -0
  47. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/api/api.py +0 -0
  48. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/api/daemon_client.py +0 -0
  49. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/api/daemon_client_local.py +0 -0
  50. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/api/daemon_decorator.py +0 -0
  51. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/api/mcli_decorators.py +0 -0
  52. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/auth/__init__.py +0 -0
  53. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/auth/auth.py +0 -0
  54. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/auth/aws_manager.py +0 -0
  55. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/auth/azure_manager.py +0 -0
  56. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/auth/credential_manager.py +0 -0
  57. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/auth/gcp_manager.py +0 -0
  58. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/auth/key_manager.py +0 -0
  59. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/auth/mcli_manager.py +0 -0
  60. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/auth/token_manager.py +0 -0
  61. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/auth/token_util.py +0 -0
  62. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/config/__init__.py +0 -0
  63. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/config/config.py +0 -0
  64. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/config/settings.py +0 -0
  65. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/constants/__init__.py +0 -0
  66. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/constants/commands.py +0 -0
  67. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/constants/defaults.py +0 -0
  68. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/constants/env.py +0 -0
  69. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/constants/messages.py +0 -0
  70. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/constants/paths.py +0 -0
  71. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/constants/scripts.py +0 -0
  72. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/constants/storage.py +0 -0
  73. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/custom_commands.py +0 -0
  74. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/discovery/__init__.py +0 -0
  75. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/discovery/command_discovery.py +0 -0
  76. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/erd/__init__.py +0 -0
  77. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/erd/erd.py +0 -0
  78. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/erd/generate_graph.py +0 -0
  79. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/errors.py +0 -0
  80. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/feature_detection.py +0 -0
  81. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/files/__init__.py +0 -0
  82. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/files/files.py +0 -0
  83. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/folder_workflows.py +0 -0
  84. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/fs/__init__.py +0 -0
  85. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/fs/fs.py +0 -0
  86. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/ipfs_utils.py +0 -0
  87. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/ipns_manager.py +0 -0
  88. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/lib.py +0 -0
  89. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/logger/__init__.py +0 -0
  90. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/logger/correlation.py +0 -0
  91. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/logger/logger.py +0 -0
  92. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/logger/structured.py +0 -0
  93. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/optional_deps.py +0 -0
  94. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/paths.py +0 -0
  95. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/performance/__init__.py +0 -0
  96. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/performance/optimizer.py +0 -0
  97. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/performance/rust_bridge.py +0 -0
  98. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/performance/uvloop_config.py +0 -0
  99. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/pickles/__init__.py +0 -0
  100. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/pickles/pickles.py +0 -0
  101. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/pyenv/__init__.py +0 -0
  102. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/pyenv/deps.py +0 -0
  103. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/pyenv/manager.py +0 -0
  104. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/pyenv/venv.py +0 -0
  105. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/script_loader.py +0 -0
  106. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/script_sync.py +0 -0
  107. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/script_watcher.py +0 -0
  108. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/search/cached_vectorizer.py +0 -0
  109. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/secrets/__init__.py +0 -0
  110. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/secrets/commands.py +0 -0
  111. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/secrets/manager.py +0 -0
  112. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/secrets/repl.py +0 -0
  113. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/secrets/store.py +0 -0
  114. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/services/__init__.py +0 -0
  115. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/services/config.py +0 -0
  116. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/services/data_pipeline.py +0 -0
  117. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/services/health.py +0 -0
  118. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/services/lsh_client.py +0 -0
  119. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/services/manager.py +0 -0
  120. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/services/redis_service.py +0 -0
  121. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/services/registry.py +0 -0
  122. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/services/state.py +0 -0
  123. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/services/supervisor.py +0 -0
  124. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/shell/__init__.py +0 -0
  125. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/shell/exceptions.py +0 -0
  126. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/shell/shell.py +0 -0
  127. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/sync_key_store.py +0 -0
  128. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/templates/__init__.py +0 -0
  129. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/templates/command_templates.py +0 -0
  130. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/toml/__init__.py +0 -0
  131. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/toml/toml.py +0 -0
  132. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/types.py +0 -0
  133. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/ui/styling.py +0 -0
  134. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/ui/visual_effects.py +0 -0
  135. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/watcher/__init__.py +0 -0
  136. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/watcher/watcher.py +0 -0
  137. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/workflow_models.py +0 -0
  138. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/lib/workspace_registry.py +0 -0
  139. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/mygroup/__init__.py +0 -0
  140. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/mygroup/test_cmd.py +0 -0
  141. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/public/__init__.py +0 -0
  142. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/public/commands/__init__.py +0 -0
  143. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/public/oi/oi.py +0 -0
  144. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/public/public.py +0 -0
  145. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/self/__init__.py +0 -0
  146. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/self/completion_cmd.py +0 -0
  147. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/self/env_cmd.py +0 -0
  148. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/self/health_cmd.py +0 -0
  149. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/self/ipfs_cmd.py +0 -0
  150. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/self/logs_cmd.py +0 -0
  151. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/self/migrate_cmd.py +0 -0
  152. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/self/release_notes_cmd.py +0 -0
  153. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/self/self_cmd.py +0 -0
  154. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/self/store_cmd.py +0 -0
  155. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/self/test_cmd.py +0 -0
  156. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/self/workflows_cmd.py +0 -0
  157. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/storage/__init__.py +0 -0
  158. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/storage/backends/__init__.py +0 -0
  159. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/storage/backends/ipfs_backend.py +0 -0
  160. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/storage/base.py +0 -0
  161. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/storage/cache.py +0 -0
  162. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/storage/encryption.py +0 -0
  163. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/storage/factory.py +0 -0
  164. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/storage/registry.py +0 -0
  165. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/storage/storacha_cli.py +0 -0
  166. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/__init__.py +0 -0
  167. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/ci/__init__.py +0 -0
  168. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/ci/act_runner.py +0 -0
  169. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/ci/ci.py +0 -0
  170. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/ci/runner_status.py +0 -0
  171. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/ci/workflow_transform.py +0 -0
  172. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/daemon/__init__.py +0 -0
  173. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/daemon/async_command_database.py +0 -0
  174. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/daemon/async_process_manager.py +0 -0
  175. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/daemon/client.py +0 -0
  176. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/daemon/daemon.py +0 -0
  177. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/daemon/daemon_api.py +0 -0
  178. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/daemon/enhanced_daemon.py +0 -0
  179. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/daemon/process_cli.py +0 -0
  180. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/daemon/process_manager.py +0 -0
  181. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/daemon/test_daemon.py +0 -0
  182. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/doc_convert.py +0 -0
  183. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/docker/__init__.py +0 -0
  184. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/docker/docker.py +0 -0
  185. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/file/__init__.py +0 -0
  186. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/gcloud/__init__.py +0 -0
  187. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/gcloud/config.toml +0 -0
  188. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/gcloud/gcloud.py +0 -0
  189. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/git_commit/__init__.py +0 -0
  190. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/git_commit/ai_service.py +0 -0
  191. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/interview/__init__.py +0 -0
  192. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/lsh_integration.py +0 -0
  193. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/model_service/client.py +0 -0
  194. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/model_service/download_and_run_efficient_models.py +0 -0
  195. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/model_service/lightweight_embedder.py +0 -0
  196. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/model_service/lightweight_model_server.py +0 -0
  197. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/model_service/lightweight_test.py +0 -0
  198. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/model_service/model_service.py +0 -0
  199. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/model_service/ollama_efficient_runner.py +0 -0
  200. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/model_service/openai_adapter.py +0 -0
  201. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/model_service/pdf_processor.py +0 -0
  202. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/model_service/test_efficient_runner.py +0 -0
  203. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/model_service/test_example.py +0 -0
  204. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/model_service/test_integration.py +0 -0
  205. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/model_service/test_new_features.py +0 -0
  206. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/notebook/__init__.py +0 -0
  207. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/notebook/command_loader.py +0 -0
  208. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/notebook/converter.py +0 -0
  209. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/notebook/executor.py +0 -0
  210. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/notebook/notebook_cmd.py +0 -0
  211. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/notebook/schema.py +0 -0
  212. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/notebook/validator.py +0 -0
  213. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/openai/openai.py +0 -0
  214. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/registry/__init__.py +0 -0
  215. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/registry/registry.py +0 -0
  216. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/repo/__init__.py +0 -0
  217. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/repo/repo.py +0 -0
  218. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/scheduler/__init__.py +0 -0
  219. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/scheduler/cron_parser.py +0 -0
  220. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/scheduler/job.py +0 -0
  221. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/scheduler/models.py +0 -0
  222. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/scheduler/monitor.py +0 -0
  223. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/scheduler/persistence.py +0 -0
  224. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/scheduler/scheduler.py +0 -0
  225. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/scheduler/validation.py +0 -0
  226. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/search/__init__.py +0 -0
  227. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/secrets/__init__.py +0 -0
  228. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/secrets/secrets_cmd.py +0 -0
  229. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/storage/__init__.py +0 -0
  230. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/storage/storage_cmd.py +0 -0
  231. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/sync/__init__.py +0 -0
  232. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/sync/test_cmd.py +0 -0
  233. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/videos/__init__.py +0 -0
  234. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/wakatime/__init__.py +0 -0
  235. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/wakatime/wakatime.py +0 -0
  236. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli/workflow/workflow.py +0 -0
  237. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli_framework.egg-info/SOURCES.txt +0 -0
  238. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli_framework.egg-info/dependency_links.txt +0 -0
  239. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli_framework.egg-info/entry_points.txt +0 -0
  240. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/src/mcli_framework.egg-info/requires.txt +0 -0
  241. {mcli_framework-8.0.49 → mcli_framework-8.0.50}/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.49
3
+ Version: 8.0.50
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.49"
3
+ version = "8.0.50"
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"
@@ -28,7 +28,7 @@ import hashlib
28
28
  import json
29
29
  import time
30
30
  from datetime import datetime
31
- from pathlib import Path
31
+ from pathlib import Path, PurePosixPath
32
32
  from typing import Optional
33
33
 
34
34
  import requests
@@ -535,7 +535,19 @@ class IPFSSync:
535
535
  f"hash mismatch for '{name}': expected {expected_value}, got {actual}"
536
536
  )
537
537
 
538
- target = workflows_dir / script_filename
538
+ # SECURITY: `script_filename` comes from a remote, untrusted manifest.
539
+ # Contain it inside workflows_dir so a crafted manifest cannot write
540
+ # outside the directory via '..' segments or an absolute path.
541
+ rel = PurePosixPath(script_filename)
542
+ if rel.is_absolute() or any(part == ".." for part in rel.parts):
543
+ raise ValueError(f"unsafe script path in manifest: {script_filename}")
544
+ base = Path(workflows_dir).resolve()
545
+ target = (base / Path(*rel.parts)).resolve()
546
+ if base != target and base not in target.parents:
547
+ raise ValueError(f"script path escapes workflows dir: {script_filename}")
548
+
549
+ # Recreate group subdirectories (e.g. "demo/hello.py") on pull.
550
+ target.parent.mkdir(parents=True, exist_ok=True)
539
551
  target.write_bytes(payload)
540
552
  written.append(target)
541
553
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcli-framework
3
- Version: 8.0.49
3
+ Version: 8.0.50
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