mcli-framework 8.0.51__tar.gz → 8.0.52__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.51/src/mcli_framework.egg-info → mcli_framework-8.0.52}/PKG-INFO +1 -1
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/pyproject.toml +1 -1
- mcli_framework-8.0.52/src/mcli/__main__.py +14 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/sync_cmd.py +11 -5
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/constants/messages.py +1 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/ipfs_sync.py +7 -2
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/paths.py +3 -3
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/script_loader.py +15 -2
- {mcli_framework-8.0.51 → mcli_framework-8.0.52/src/mcli_framework.egg-info}/PKG-INFO +1 -1
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli_framework.egg-info/SOURCES.txt +1 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/LICENSE +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/MANIFEST.in +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/README.md +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/llms-full.txt +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/llms.txt +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/mcli_rust/Cargo.toml +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/mcli_rust/src/command_parser.rs +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/mcli_rust/src/file_watcher.rs +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/mcli_rust/src/lib.rs +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/mcli_rust/src/process_manager.rs +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/mcli_rust/src/tfidf.rs +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/setup.cfg +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/commands_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/completion_helpers.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/context_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/create_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/delete_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/edit_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/import_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/init_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/list_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/main.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/migrate_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/model/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/model/model.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/model_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/mv_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/new_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/remove_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/rm_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/search_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/services_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/setup_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/source_sync_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/video/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/app/video/video.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/config.toml +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/api/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/api/api.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/api/daemon_client.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/api/daemon_client_local.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/api/daemon_decorator.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/api/mcli_decorators.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/auth/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/auth/auth.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/auth/aws_manager.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/auth/azure_manager.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/auth/credential_manager.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/auth/gcp_manager.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/auth/key_manager.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/auth/mcli_manager.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/auth/token_manager.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/auth/token_util.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/config/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/config/config.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/config/settings.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/constants/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/constants/commands.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/constants/defaults.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/constants/env.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/constants/paths.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/constants/scripts.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/constants/storage.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/custom_commands.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/discovery/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/discovery/command_discovery.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/erd/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/erd/erd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/erd/generate_graph.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/errors.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/feature_detection.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/files/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/files/files.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/folder_workflows.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/fs/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/fs/fs.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/ipfs_utils.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/ipns_manager.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/lib.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/logger/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/logger/correlation.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/logger/logger.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/logger/structured.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/optional_deps.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/performance/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/performance/optimizer.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/performance/rust_bridge.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/performance/uvloop_config.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/pickles/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/pickles/pickles.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/pyenv/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/pyenv/deps.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/pyenv/manager.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/pyenv/venv.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/script_sync.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/script_watcher.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/search/cached_vectorizer.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/secrets/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/secrets/commands.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/secrets/manager.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/secrets/repl.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/secrets/store.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/services/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/services/config.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/services/data_pipeline.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/services/health.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/services/lsh_client.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/services/manager.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/services/redis_service.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/services/registry.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/services/state.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/services/supervisor.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/shell/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/shell/exceptions.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/shell/shell.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/sync_key_store.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/templates/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/templates/command_templates.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/toml/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/toml/toml.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/types.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/ui/styling.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/ui/visual_effects.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/watcher/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/watcher/watcher.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/workflow_models.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/lib/workspace_registry.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/mygroup/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/mygroup/test_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/public/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/public/commands/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/public/oi/oi.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/public/public.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/self/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/self/completion_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/self/env_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/self/health_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/self/ipfs_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/self/logs_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/self/migrate_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/self/release_notes_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/self/self_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/self/store_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/self/test_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/self/workflows_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/storage/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/storage/backends/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/storage/backends/ipfs_backend.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/storage/base.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/storage/cache.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/storage/encryption.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/storage/factory.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/storage/registry.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/storage/storacha_cli.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/ci/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/ci/act_runner.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/ci/ci.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/ci/runner_status.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/ci/workflow_transform.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/daemon/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/daemon/async_command_database.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/daemon/async_process_manager.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/daemon/client.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/daemon/daemon.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/daemon/daemon_api.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/daemon/enhanced_daemon.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/daemon/process_cli.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/daemon/process_manager.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/daemon/test_daemon.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/doc_convert.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/docker/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/docker/docker.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/file/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/gcloud/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/gcloud/config.toml +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/gcloud/gcloud.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/git_commit/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/git_commit/ai_service.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/interview/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/lsh_integration.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/model_service/client.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/model_service/download_and_run_efficient_models.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/model_service/lightweight_embedder.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/model_service/lightweight_model_server.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/model_service/lightweight_test.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/model_service/model_service.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/model_service/ollama_efficient_runner.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/model_service/openai_adapter.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/model_service/pdf_processor.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/model_service/test_efficient_runner.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/model_service/test_example.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/model_service/test_integration.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/model_service/test_new_features.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/notebook/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/notebook/command_loader.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/notebook/converter.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/notebook/executor.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/notebook/notebook_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/notebook/schema.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/notebook/validator.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/openai/openai.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/registry/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/registry/registry.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/repo/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/repo/repo.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/scheduler/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/scheduler/cron_parser.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/scheduler/job.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/scheduler/models.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/scheduler/monitor.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/scheduler/persistence.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/scheduler/scheduler.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/scheduler/validation.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/search/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/secrets/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/secrets/secrets_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/storage/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/storage/storage_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/sync/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/sync/test_cmd.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/videos/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/wakatime/__init__.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/wakatime/wakatime.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/workflow.py +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli_framework.egg-info/dependency_links.txt +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli_framework.egg-info/entry_points.txt +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli_framework.egg-info/requires.txt +0 -0
- {mcli_framework-8.0.51 → mcli_framework-8.0.52}/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.52
|
|
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.52"
|
|
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"
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# logger.info("I am in mcli.__init__.py")
|
|
2
|
+
|
|
3
|
+
try:
|
|
4
|
+
from mcli.app.main import main as main_func
|
|
5
|
+
|
|
6
|
+
# from mcli.public import *
|
|
7
|
+
# from mcli.private import *
|
|
8
|
+
except ImportError:
|
|
9
|
+
from .app.main import main as main_func
|
|
10
|
+
|
|
11
|
+
__all__ = ["main_func"]
|
|
12
|
+
|
|
13
|
+
if __name__ == "__main__":
|
|
14
|
+
main_func()
|
|
@@ -17,7 +17,7 @@ from typing import Optional
|
|
|
17
17
|
import click
|
|
18
18
|
from rich.table import Table
|
|
19
19
|
|
|
20
|
-
from mcli.lib.constants import IpfsMessages, SyncMessages
|
|
20
|
+
from mcli.lib.constants import FileNames, IpfsMessages, SyncMessages
|
|
21
21
|
from mcli.lib.ipfs_utils import ipfs_daemon_running as _ipfs_daemon_running
|
|
22
22
|
from mcli.lib.ipfs_utils import ipfs_initialized as _ipfs_initialized
|
|
23
23
|
from mcli.lib.ipfs_utils import ipfs_installed as _ipfs_installed
|
|
@@ -423,7 +423,7 @@ def sync_push_command(global_mode: bool, description: str):
|
|
|
423
423
|
from mcli.lib.ipns_manager import get_sync_key
|
|
424
424
|
|
|
425
425
|
workflows_dir = get_custom_commands_dir(global_mode=global_mode)
|
|
426
|
-
lockfile_path = workflows_dir /
|
|
426
|
+
lockfile_path = workflows_dir / FileNames.COMMANDS_LOCK_JSON
|
|
427
427
|
|
|
428
428
|
if not lockfile_path.exists():
|
|
429
429
|
error(SyncMessages.LOCKFILE_NOT_FOUND.format(path=lockfile_path))
|
|
@@ -448,10 +448,16 @@ def sync_push_command(global_mode: bool, description: str):
|
|
|
448
448
|
console.print(SyncMessages.VIEW_BROWSER_HINT)
|
|
449
449
|
console.print(SyncMessages.IPFS_GATEWAY_URL.format(cid=cid))
|
|
450
450
|
|
|
451
|
-
#
|
|
451
|
+
# Report IPNS status honestly: only claim teammates can auto-resolve
|
|
452
|
+
# when the publish actually succeeded.
|
|
452
453
|
if get_sync_key():
|
|
453
454
|
console.print()
|
|
454
|
-
|
|
455
|
+
if ipfs.last_ipns_name:
|
|
456
|
+
success(SyncMessages.IPNS_PUBLISHED.format(name=ipfs.last_ipns_name))
|
|
457
|
+
info(SyncMessages.IPNS_TEAMMATE_PULL_HINT)
|
|
458
|
+
else:
|
|
459
|
+
warning(SyncMessages.IPNS_PUBLISH_FAILED)
|
|
460
|
+
info(SyncMessages.RETRIEVE_COMMAND.format(cid=cid))
|
|
455
461
|
else:
|
|
456
462
|
error(SyncMessages.FAILED_PUSH_IPFS)
|
|
457
463
|
|
|
@@ -798,7 +804,7 @@ def sync_info(is_global: bool):
|
|
|
798
804
|
workflows_dir = get_custom_commands_dir(global_mode=is_global)
|
|
799
805
|
console.print(f" Workflows directory: {workflows_dir}")
|
|
800
806
|
|
|
801
|
-
lockfile = workflows_dir /
|
|
807
|
+
lockfile = workflows_dir / FileNames.COMMANDS_LOCK_JSON
|
|
802
808
|
console.print(f" Lockfile: {lockfile} ({'exists' if lockfile.exists() else 'missing'})")
|
|
803
809
|
console.print()
|
|
804
810
|
|
|
@@ -946,6 +946,7 @@ class SyncMessages:
|
|
|
946
946
|
IPNS_RESOLVING = "Resolving latest via IPNS..."
|
|
947
947
|
IPNS_RESOLVED = "Resolved IPNS to CID: {cid}"
|
|
948
948
|
IPNS_RESOLVE_FAILED = "Could not resolve via IPNS"
|
|
949
|
+
IPNS_TEAMMATE_PULL_HINT = "Teammates can pull latest with: mcli sync pull"
|
|
949
950
|
IPNS_NO_SYNC_KEY = "MCLI_SYNC_KEY not set — cannot use IPNS auto-resolve"
|
|
950
951
|
IPNS_SYNC_KEY_HINT = (
|
|
951
952
|
"[dim]Set MCLI_SYNC_KEY to enable IPNS. Share same key with teammates.[/dim]"
|
|
@@ -77,6 +77,8 @@ class IPFSSync:
|
|
|
77
77
|
self.sync_history_path = self.data_dir / FileNames.IPFS_SYNC_HISTORY_JSON
|
|
78
78
|
self.sync_history = self._load_sync_history()
|
|
79
79
|
self._local_ipfs_available: Optional[bool] = None
|
|
80
|
+
# Set by push() to the IPNS name if (and only if) publish succeeded.
|
|
81
|
+
self.last_ipns_name: Optional[str] = None
|
|
80
82
|
|
|
81
83
|
def _load_sync_history(self) -> list[dict]:
|
|
82
84
|
"""Load sync history from local storage."""
|
|
@@ -427,14 +429,17 @@ class IPFSSync:
|
|
|
427
429
|
self.sync_history = self.sync_history[-MAX_HISTORY:]
|
|
428
430
|
self._save_sync_history()
|
|
429
431
|
|
|
430
|
-
# Publish to IPNS if sync key is configured
|
|
432
|
+
# Publish to IPNS if sync key is configured. Record whether the
|
|
433
|
+
# publish actually succeeded so callers can report honestly
|
|
434
|
+
# instead of implying IPNS resolution works when it does not.
|
|
435
|
+
self.last_ipns_name = None
|
|
431
436
|
sync_key = get_sync_key()
|
|
432
437
|
if sync_key:
|
|
433
438
|
repo = get_repo_name()
|
|
434
439
|
key_info = derive_key_info(sync_key, repo, "global")
|
|
435
440
|
ipns_name = ensure_key_imported(key_info)
|
|
436
441
|
if ipns_name:
|
|
437
|
-
publish_to_ipns(cid, key_info.key_name)
|
|
442
|
+
self.last_ipns_name = publish_to_ipns(cid, key_info.key_name)
|
|
438
443
|
|
|
439
444
|
return cid
|
|
440
445
|
|
|
@@ -9,7 +9,7 @@ import os
|
|
|
9
9
|
from pathlib import Path
|
|
10
10
|
from typing import Optional
|
|
11
11
|
|
|
12
|
-
from mcli.lib.constants.paths import DirNames
|
|
12
|
+
from mcli.lib.constants.paths import DirNames, FileNames
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
def get_mcli_home() -> Path:
|
|
@@ -248,8 +248,8 @@ def get_lockfile_path(global_mode: bool = False) -> Path:
|
|
|
248
248
|
Path to the lockfile
|
|
249
249
|
"""
|
|
250
250
|
workflows_dir = get_custom_commands_dir(global_mode=global_mode)
|
|
251
|
-
#
|
|
252
|
-
return workflows_dir /
|
|
251
|
+
# Canonical lockfile name, shared with ScriptLoader and the IPFS sync path.
|
|
252
|
+
return workflows_dir / FileNames.COMMANDS_LOCK_JSON
|
|
253
253
|
|
|
254
254
|
|
|
255
255
|
def resolve_workspace(workspace_path: str) -> Optional[Path]:
|
|
@@ -28,6 +28,7 @@ from typing import Any, Optional
|
|
|
28
28
|
|
|
29
29
|
import click
|
|
30
30
|
|
|
31
|
+
from mcli.lib.constants import FileNames
|
|
31
32
|
from mcli.lib.logger.logger import get_logger, register_subprocess
|
|
32
33
|
from mcli.lib.pyenv import PyEnvManager
|
|
33
34
|
|
|
@@ -140,7 +141,10 @@ class ScriptLoader:
|
|
|
140
141
|
workflows_dir: Directory containing workflow scripts
|
|
141
142
|
"""
|
|
142
143
|
self.workflows_dir = Path(workflows_dir).expanduser()
|
|
143
|
-
|
|
144
|
+
# Canonical lockfile name shared with the IPFS sync path (push/pull) and
|
|
145
|
+
# the rest of the codebase. Must match FileNames.COMMANDS_LOCK_JSON,
|
|
146
|
+
# otherwise `sync update` writes a lockfile `sync push` cannot find.
|
|
147
|
+
self.lockfile_path = self.workflows_dir / FileNames.COMMANDS_LOCK_JSON
|
|
144
148
|
self.loaded_commands: dict[str, click.Command] = {}
|
|
145
149
|
|
|
146
150
|
def discover_scripts(self) -> list[Path]:
|
|
@@ -383,8 +387,17 @@ class ScriptLoader:
|
|
|
383
387
|
except Exception:
|
|
384
388
|
mtime = datetime.utcnow().isoformat() + "Z"
|
|
385
389
|
|
|
390
|
+
# Record the path relative to the workflows dir (POSIX, forward slashes)
|
|
391
|
+
# so the IPFS sync path can locate and reconstruct scripts living in
|
|
392
|
+
# group subdirectories. Falls back to the bare name if the script is
|
|
393
|
+
# somehow outside the workflows dir.
|
|
394
|
+
try:
|
|
395
|
+
relative_file = script_path.relative_to(self.workflows_dir).as_posix()
|
|
396
|
+
except ValueError:
|
|
397
|
+
relative_file = script_path.name
|
|
398
|
+
|
|
386
399
|
return {
|
|
387
|
-
"file":
|
|
400
|
+
"file": relative_file,
|
|
388
401
|
"language": language,
|
|
389
402
|
"content_hash": content_hash,
|
|
390
403
|
"version": metadata.get("version", "1.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.52
|
|
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
|
|
File without changes
|
|
File without changes
|
{mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/daemon/async_command_database.py
RENAMED
|
File without changes
|
{mcli_framework-8.0.51 → mcli_framework-8.0.52}/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.51 → mcli_framework-8.0.52}/src/mcli/workflow/model_service/lightweight_test.py
RENAMED
|
File without changes
|
{mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/model_service/model_service.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/model_service/openai_adapter.py
RENAMED
|
File without changes
|
{mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/model_service/pdf_processor.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/model_service/test_example.py
RENAMED
|
File without changes
|
{mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/model_service/test_integration.py
RENAMED
|
File without changes
|
{mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli/workflow/model_service/test_new_features.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcli_framework-8.0.51 → mcli_framework-8.0.52}/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
|
{mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli_framework.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{mcli_framework-8.0.51 → mcli_framework-8.0.52}/src/mcli_framework.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|