nextmv 1.1.2.dev0__tar.gz → 1.1.3.dev1__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.
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/PKG-INFO +7 -1
- nextmv-1.1.3.dev1/nextmv/__about__.py +1 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/main.py +3 -1
- nextmv-1.1.3.dev1/nextmv/cli/mcp/__init__.py +26 -0
- nextmv-1.1.3.dev1/nextmv/cli/mcp/serve.py +76 -0
- nextmv-1.1.3.dev1/nextmv/cli/mcp/server.py +1819 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/sso.py +35 -35
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/default_app/app.yaml +9 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/default_app/main.py +3 -3
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/pyproject.toml +9 -0
- nextmv-1.1.3.dev1/tests/cli/test_mcp.py +512 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/local/test_application.py +85 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/uv.lock +305 -7
- nextmv-1.1.2.dev0/nextmv/__about__.py +0 -1
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/.gitignore +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/.python-version +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/LICENSE +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/README.md +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/__entrypoint__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/_serialization.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/base_model.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/CONTRIBUTING.md +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/acceptance/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/acceptance/create.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/acceptance/delete.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/acceptance/get.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/acceptance/list.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/acceptance/update.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/account/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/account/create.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/account/delete.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/account/get.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/account/update.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/app/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/app/create.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/app/delete.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/app/exists.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/app/get.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/app/list.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/app/push.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/app/update.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/batch/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/batch/create.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/batch/delete.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/batch/get.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/batch/list.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/batch/metadata.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/batch/update.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/data/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/data/upload.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/ensemble/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/ensemble/create.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/ensemble/delete.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/ensemble/get.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/ensemble/list.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/ensemble/update.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/input_set/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/input_set/create.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/input_set/delete.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/input_set/get.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/input_set/list.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/input_set/update.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/instance/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/instance/create.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/instance/delete.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/instance/exists.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/instance/get.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/instance/list.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/instance/update.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/managed_input/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/managed_input/create.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/managed_input/delete.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/managed_input/get.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/managed_input/list.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/managed_input/update.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/app/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/app/create.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/app/get.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/app/list.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/app/update.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/subscription/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/subscription/create.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/subscription/delete.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/subscription/get.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/subscription/list.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/version/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/version/create.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/version/get.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/version/list.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/version/update.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/run/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/run/cancel.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/run/create.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/run/get.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/run/input.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/run/list.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/run/logs.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/run/metadata.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/run/track.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/scenario/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/scenario/create.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/scenario/delete.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/scenario/get.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/scenario/list.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/scenario/metadata.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/scenario/update.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/secrets/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/secrets/create.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/secrets/delete.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/secrets/get.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/secrets/list.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/secrets/update.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/shadow/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/shadow/create.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/shadow/delete.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/shadow/get.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/shadow/list.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/shadow/metadata.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/shadow/start.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/shadow/stop.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/shadow/update.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/sso/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/sso/create.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/sso/delete.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/sso/disable.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/sso/enable.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/sso/get.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/sso/update.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/switchback/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/switchback/create.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/switchback/delete.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/switchback/get.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/switchback/list.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/switchback/metadata.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/switchback/start.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/switchback/stop.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/switchback/update.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/upload/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/upload/create.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/version/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/version/create.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/version/delete.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/version/exists.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/version/get.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/version/list.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/version/update.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/community/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/community/clone.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/community/list.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/configuration/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/configuration/config.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/configuration/create.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/configuration/delete.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/configuration/list.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/confirm.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/app/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/app/delete.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/app/get.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/app/list.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/app/register.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/app/registered.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/app/sync.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/app/update.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/run/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/run/create.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/run/get.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/run/input.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/run/list.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/run/logs.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/run/metadata.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/run/visuals.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/message.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/options.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/version.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/acceptance_test.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/account.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_acceptance.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_batch_scenario.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_ensemble.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_input_set.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_instance.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_managed_input.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_run.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_secrets.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_shadow.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_switchback.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_utils.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_version.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/assets.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/batch_experiment.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/client.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/community.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/ensemble.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/input_set.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/instance.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/integration.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/marketplace.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/package.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/scenario.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/secrets.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/shadow.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/switchback.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/url.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/version.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/default_app/.gitignore +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/default_app/README.md +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/default_app/input.json +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/default_app/requirements.txt +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/default_app/src/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/default_app/src/visuals.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/deprecated.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/input.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/local/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/local/application.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/local/executor.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/local/geojson_handler.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/local/local.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/local/plotly_handler.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/local/registry.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/local/runner.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/logger.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/manifest.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/model.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/options.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/output.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/polling.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/run.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/safe.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/status.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/README.md +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/cli/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/cli/test_configuration.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/cli/test_main.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/cli/test_version.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/cloud/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/cloud/app.yaml +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/cloud/test_client.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/cloud/test_instance.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/cloud/test_package.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/cloud/test_scenario.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/integration/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/integration/cloud/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/integration/cloud/test_integration_cloud.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/integration/cloud/test_integration_marketplace.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/local/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/local/test_executor.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/local/test_registry.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/local/test_runner.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/scripts/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/scripts/options1.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/scripts/options2.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/scripts/options3.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/scripts/options4.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/scripts/options5.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/scripts/options6.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/scripts/options7.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_base_model.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_entrypoint/__init__.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_entrypoint/test_entrypoint.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_input.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_inputs/test_data.csv +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_inputs/test_data.json +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_inputs/test_data.txt +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_logger.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_manifest.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_model.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_options.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_output.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_polling.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_run.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_safe.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_serialization.py +0 -0
- {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nextmv
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.3.dev1
|
|
4
4
|
Summary: The all-purpose Python SDK for Nextmv
|
|
5
5
|
Project-URL: Homepage, https://www.nextmv.io
|
|
6
6
|
Project-URL: Documentation, https://nextmv-py.docs.nextmv.io/en/latest/nextmv/
|
|
@@ -226,6 +226,12 @@ Requires-Dist: pyyaml>=6.0.1
|
|
|
226
226
|
Requires-Dist: requests>=2.31.0
|
|
227
227
|
Requires-Dist: typer>=0.20.1
|
|
228
228
|
Requires-Dist: urllib3>=2.1.0
|
|
229
|
+
Provides-Extra: all
|
|
230
|
+
Requires-Dist: folium>=0.20.0; extra == 'all'
|
|
231
|
+
Requires-Dist: mcp[cli]>=1.0; extra == 'all'
|
|
232
|
+
Requires-Dist: plotly>=6.0.1; extra == 'all'
|
|
233
|
+
Provides-Extra: mcp
|
|
234
|
+
Requires-Dist: mcp[cli]>=1.0; extra == 'mcp'
|
|
229
235
|
Provides-Extra: notebook
|
|
230
236
|
Requires-Dist: mlflow>=3.9.0; extra == 'notebook'
|
|
231
237
|
Description-Content-Type: text/markdown
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "v1.1.3.dev1"
|
|
@@ -26,6 +26,7 @@ from nextmv.cli.configuration import app as configuration_app
|
|
|
26
26
|
from nextmv.cli.configuration.config import CONFIG_DIR, GO_CLI_PATH, load_config
|
|
27
27
|
from nextmv.cli.confirm import get_confirmation
|
|
28
28
|
from nextmv.cli.local import app as local_app
|
|
29
|
+
from nextmv.cli.mcp import app as mcp_app
|
|
29
30
|
from nextmv.cli.message import error, info, success, warning
|
|
30
31
|
from nextmv.cli.version import app as version_app
|
|
31
32
|
from nextmv.cli.version import version_callback
|
|
@@ -50,6 +51,7 @@ app.add_typer(cloud_app, name="cloud")
|
|
|
50
51
|
app.add_typer(community_app, name="community")
|
|
51
52
|
app.add_typer(configuration_app, name="configuration")
|
|
52
53
|
app.add_typer(local_app, name="local")
|
|
54
|
+
app.add_typer(mcp_app, name="mcp")
|
|
53
55
|
app.add_typer(version_app)
|
|
54
56
|
|
|
55
57
|
|
|
@@ -76,7 +78,7 @@ def callback(
|
|
|
76
78
|
return
|
|
77
79
|
|
|
78
80
|
# Skip checks for certain commands.
|
|
79
|
-
ignored_commands = {"configuration", "version"}
|
|
81
|
+
ignored_commands = {"configuration", "mcp", "version"}
|
|
80
82
|
if ctx.invoked_subcommand in ignored_commands:
|
|
81
83
|
return
|
|
82
84
|
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"""MCP (Model Context Protocol) server for the Nextmv CLI."""
|
|
2
|
+
|
|
3
|
+
import typer
|
|
4
|
+
|
|
5
|
+
from nextmv.cli.mcp.serve import app as serve_app
|
|
6
|
+
|
|
7
|
+
# Set up subcommand application.
|
|
8
|
+
app = typer.Typer()
|
|
9
|
+
app.add_typer(serve_app)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@app.callback()
|
|
13
|
+
def callback() -> None:
|
|
14
|
+
"""
|
|
15
|
+
Model Context Protocol (MCP) server for LLM integrations.
|
|
16
|
+
|
|
17
|
+
Start an MCP server so that any MCP-compatible client (Claude Code,
|
|
18
|
+
Cursor, VS Code, etc.) can interact with Nextmv Cloud through natural
|
|
19
|
+
language.
|
|
20
|
+
|
|
21
|
+
[bold][underline]Quick start[/underline][/bold]
|
|
22
|
+
|
|
23
|
+
- Register with Claude Code.
|
|
24
|
+
$ [dim]claude mcp add nextmv -- nextmv mcp serve[/dim]
|
|
25
|
+
"""
|
|
26
|
+
pass
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"""MCP server command for the Nextmv CLI."""
|
|
2
|
+
|
|
3
|
+
from typing import Annotated
|
|
4
|
+
|
|
5
|
+
import typer
|
|
6
|
+
|
|
7
|
+
from nextmv.cli.message import error
|
|
8
|
+
|
|
9
|
+
# Set up subcommand application.
|
|
10
|
+
app = typer.Typer()
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@app.command()
|
|
14
|
+
def serve(
|
|
15
|
+
port: Annotated[
|
|
16
|
+
int,
|
|
17
|
+
typer.Option(
|
|
18
|
+
"--port",
|
|
19
|
+
help="Port for the HTTP transport.",
|
|
20
|
+
metavar="PORT",
|
|
21
|
+
),
|
|
22
|
+
] = 8080,
|
|
23
|
+
transport: Annotated[
|
|
24
|
+
str,
|
|
25
|
+
typer.Option(
|
|
26
|
+
"--transport",
|
|
27
|
+
"-t",
|
|
28
|
+
help="Transport protocol. "
|
|
29
|
+
"Allowed values: [magenta]stdio[/magenta], [magenta]streamable-http[/magenta].",
|
|
30
|
+
metavar="TRANSPORT",
|
|
31
|
+
),
|
|
32
|
+
] = "stdio",
|
|
33
|
+
) -> None:
|
|
34
|
+
"""
|
|
35
|
+
Start the Nextmv MCP server.
|
|
36
|
+
|
|
37
|
+
The MCP server exposes Nextmv Cloud functionality as tools that any
|
|
38
|
+
MCP-compatible client can use. The default transport is
|
|
39
|
+
[magenta]stdio[/magenta], which is what Claude Code, Cursor, and most
|
|
40
|
+
local clients expect.
|
|
41
|
+
|
|
42
|
+
Requires the [magenta]mcp[/magenta] optional dependency. Install with:
|
|
43
|
+
[code]pip install 'nextmv[mcp]'[/code]
|
|
44
|
+
|
|
45
|
+
[bold][underline]Examples[/underline][/bold]
|
|
46
|
+
|
|
47
|
+
- Start the MCP server with stdio transport (default).
|
|
48
|
+
$ [dim]nextmv mcp serve[/dim]
|
|
49
|
+
|
|
50
|
+
- Start the MCP server with HTTP transport on port 9090.
|
|
51
|
+
$ [dim]nextmv mcp serve --transport streamable-http --port 9090[/dim]
|
|
52
|
+
|
|
53
|
+
- Register with Claude Code.
|
|
54
|
+
$ [dim]claude mcp add nextmv -- nextmv mcp serve[/dim]
|
|
55
|
+
"""
|
|
56
|
+
|
|
57
|
+
try:
|
|
58
|
+
from nextmv.cli.mcp.server import create_server
|
|
59
|
+
except ImportError:
|
|
60
|
+
error(
|
|
61
|
+
"MCP support requires the [magenta]mcp[/magenta] package. "
|
|
62
|
+
"Install with: [code]pip install 'nextmv[mcp]'[/code]"
|
|
63
|
+
)
|
|
64
|
+
return # unreachable, error() raises
|
|
65
|
+
|
|
66
|
+
server = create_server()
|
|
67
|
+
|
|
68
|
+
if transport == "stdio":
|
|
69
|
+
server.run(transport="stdio")
|
|
70
|
+
elif transport in ("http", "streamable-http"):
|
|
71
|
+
server.run(transport="streamable-http", port=port)
|
|
72
|
+
else:
|
|
73
|
+
error(
|
|
74
|
+
f"Unknown transport [magenta]{transport}[/magenta]. "
|
|
75
|
+
"Allowed values are: [magenta]stdio[/magenta], [magenta]streamable-http[/magenta]."
|
|
76
|
+
)
|