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.
- {mcli_framework-8.0.59/src/mcli_framework.egg-info → mcli_framework-8.0.60}/PKG-INFO +1 -1
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/pyproject.toml +1 -1
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/constants/paths.py +6 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/pyenv/deps.py +20 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/pyenv/manager.py +11 -7
- {mcli_framework-8.0.59 → mcli_framework-8.0.60/src/mcli_framework.egg-info}/PKG-INFO +1 -1
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/LICENSE +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/MANIFEST.in +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/README.md +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/llms-full.txt +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/llms.txt +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/mcli_rust/Cargo.toml +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/mcli_rust/src/command_parser.rs +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/mcli_rust/src/file_watcher.rs +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/mcli_rust/src/lib.rs +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/mcli_rust/src/process_manager.rs +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/mcli_rust/src/tfidf.rs +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/setup.cfg +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/__main__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/completion_helpers.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/context_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/delete_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/edit_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/import_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/init_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/list_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/main.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/model/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/model/model.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/model_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/mv_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/new_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/search_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/services_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/setup_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/source_sync_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/sync_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/video/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/app/video/video.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/config.toml +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/api/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/api/api.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/api/daemon_client.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/api/daemon_client_local.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/api/daemon_decorator.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/api/mcli_decorators.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/auth/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/auth/auth.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/auth/aws_manager.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/auth/azure_manager.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/auth/credential_manager.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/auth/gcp_manager.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/auth/key_manager.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/auth/mcli_manager.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/auth/token_manager.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/auth/token_util.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/config/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/config/config.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/config/settings.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/constants/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/constants/commands.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/constants/defaults.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/constants/env.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/constants/messages.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/constants/scripts.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/constants/storage.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/custom_commands.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/discovery/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/discovery/command_discovery.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/erd/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/erd/erd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/erd/generate_graph.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/errors.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/feature_detection.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/files/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/files/files.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/folder_workflows.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/fs/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/fs/fs.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/ipfs_sync.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/ipfs_utils.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/ipns_manager.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/lib.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/logger/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/logger/correlation.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/logger/logger.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/logger/structured.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/optional_deps.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/paths.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/performance/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/performance/optimizer.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/performance/rust_bridge.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/performance/uvloop_config.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/pickles/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/pickles/pickles.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/pyenv/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/pyenv/venv.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/script_loader.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/script_sync.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/script_watcher.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/search/cached_vectorizer.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/secrets/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/secrets/commands.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/secrets/manager.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/secrets/repl.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/secrets/store.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/services/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/services/config.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/services/data_pipeline.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/services/health.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/services/lsh_client.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/services/manager.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/services/redis_service.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/services/registry.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/services/state.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/services/supervisor.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/shell/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/shell/exceptions.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/shell/shell.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/sync_key_store.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/templates/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/templates/command_templates.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/toml/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/toml/toml.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/types.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/ui/styling.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/ui/visual_effects.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/watcher/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/watcher/watcher.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/workflow_models.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/lib/workspace_registry.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/mygroup/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/mygroup/test_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/public/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/public/commands/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/public/oi/oi.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/public/public.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/completion_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/env_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/health_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/ipfs_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/logs_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/migrate_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/release_notes_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/self_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/store_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/test_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/self/workflows_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/storage/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/storage/backends/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/storage/backends/ipfs_backend.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/storage/base.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/storage/cache.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/storage/encryption.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/storage/factory.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/storage/registry.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/storage/storacha_cli.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/ci/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/ci/act_runner.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/ci/ci.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/ci/runner_status.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/ci/workflow_transform.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/daemon/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/daemon/async_command_database.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/daemon/async_process_manager.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/daemon/client.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/daemon/daemon.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/daemon/daemon_api.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/daemon/enhanced_daemon.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/daemon/process_cli.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/daemon/process_manager.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/daemon/test_daemon.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/doc_convert.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/docker/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/docker/docker.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/file/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/gcloud/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/gcloud/config.toml +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/gcloud/gcloud.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/git_commit/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/git_commit/ai_service.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/interview/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/lsh_integration.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/client.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/download_and_run_efficient_models.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/lightweight_embedder.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/lightweight_model_server.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/lightweight_test.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/model_service.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/ollama_efficient_runner.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/openai_adapter.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/pdf_processor.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/test_efficient_runner.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/test_example.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/test_integration.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/test_new_features.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/notebook/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/notebook/command_loader.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/notebook/converter.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/notebook/executor.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/notebook/notebook_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/notebook/schema.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/notebook/validator.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/openai/openai.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/registry/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/registry/registry.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/repo/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/repo/repo.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/scheduler/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/scheduler/cron_parser.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/scheduler/job.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/scheduler/models.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/scheduler/monitor.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/scheduler/persistence.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/scheduler/scheduler.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/scheduler/validation.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/search/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/secrets/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/secrets/secrets_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/storage/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/storage/storage_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/sync/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/sync/test_cmd.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/videos/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/wakatime/__init__.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/wakatime/wakatime.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/workflow.py +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli_framework.egg-info/SOURCES.txt +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli_framework.egg-info/dependency_links.txt +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli_framework.egg-info/entry_points.txt +0 -0
- {mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli_framework.egg-info/requires.txt +0 -0
- {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.
|
|
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.
|
|
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
|
|
136
|
-
|
|
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.
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/daemon/async_command_database.py
RENAMED
|
File without changes
|
{mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/daemon/async_process_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/lightweight_test.py
RENAMED
|
File without changes
|
{mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/model_service.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/openai_adapter.py
RENAMED
|
File without changes
|
{mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/pdf_processor.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/test_example.py
RENAMED
|
File without changes
|
{mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/test_integration.py
RENAMED
|
File without changes
|
{mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/model_service/test_new_features.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli/workflow/notebook/command_loader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli_framework.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{mcli_framework-8.0.59 → mcli_framework-8.0.60}/src/mcli_framework.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|