nextmv 1.2.3.dev1__tar.gz → 1.2.3.dev3__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.2.3.dev1 → nextmv-1.2.3.dev3}/PKG-INFO +1 -1
- nextmv-1.2.3.dev3/nextmv/__about__.py +1 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/mcp/tools/local.py +14 -120
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/local/executor.py +5 -1
- nextmv-1.2.3.dev1/nextmv/__about__.py +0 -1
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/.gitignore +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/.python-version +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/CONTRIBUTING.md +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/LICENSE +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/README.md +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/__entrypoint__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/_serialization.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/base_model.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/acceptance/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/acceptance/create.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/acceptance/delete.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/acceptance/get.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/acceptance/list.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/acceptance/update.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/account/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/account/create.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/account/delete.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/account/get.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/account/update.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/app/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/app/create.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/app/delete.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/app/exists.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/app/get.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/app/list.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/app/push.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/app/update.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/batch/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/batch/create.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/batch/delete.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/batch/get.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/batch/list.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/batch/metadata.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/batch/update.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/data/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/data/upload.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/ensemble/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/ensemble/create.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/ensemble/delete.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/ensemble/get.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/ensemble/list.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/ensemble/update.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/input_set/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/input_set/create.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/input_set/delete.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/input_set/get.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/input_set/list.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/input_set/update.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/instance/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/instance/create.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/instance/delete.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/instance/exists.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/instance/get.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/instance/list.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/instance/update.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/managed_input/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/managed_input/create.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/managed_input/delete.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/managed_input/get.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/managed_input/list.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/managed_input/update.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/marketplace/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/marketplace/app/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/marketplace/app/create.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/marketplace/app/get.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/marketplace/app/list.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/marketplace/app/update.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/marketplace/subscription/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/marketplace/subscription/create.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/marketplace/subscription/delete.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/marketplace/subscription/get.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/marketplace/subscription/list.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/marketplace/version/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/marketplace/version/create.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/marketplace/version/get.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/marketplace/version/list.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/marketplace/version/update.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/run/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/run/cancel.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/run/create.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/run/get.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/run/input.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/run/list.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/run/logs.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/run/metadata.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/run/track.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/scenario/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/scenario/create.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/scenario/delete.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/scenario/get.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/scenario/list.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/scenario/metadata.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/scenario/update.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/secrets/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/secrets/create.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/secrets/delete.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/secrets/get.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/secrets/list.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/secrets/update.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/shadow/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/shadow/create.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/shadow/delete.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/shadow/get.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/shadow/list.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/shadow/metadata.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/shadow/start.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/shadow/stop.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/shadow/update.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/sso/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/sso/create.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/sso/delete.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/sso/disable.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/sso/domain/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/sso/domain/delete.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/sso/enable.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/sso/get.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/sso/update.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/switchback/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/switchback/create.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/switchback/delete.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/switchback/get.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/switchback/list.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/switchback/metadata.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/switchback/start.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/switchback/stop.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/switchback/update.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/upload/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/upload/create.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/version/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/version/create.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/version/delete.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/version/exists.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/version/get.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/version/list.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/version/update.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/community/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/community/clone.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/community/list.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/configuration/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/configuration/config.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/configuration/create.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/configuration/delete.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/configuration/list.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/init.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/local/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/local/app/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/local/app/delete.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/local/app/get.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/local/app/list.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/local/app/register.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/local/app/registered.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/local/app/sync.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/local/app/update.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/local/run/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/local/run/create.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/local/run/get.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/local/run/input.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/local/run/list.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/local/run/logs.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/local/run/metadata.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/local/run/visuals.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/main.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/manifest/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/manifest/init.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/manifest/validate.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/mcp/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/mcp/serve.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/mcp/server.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/mcp/tools/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/mcp/tools/_helpers.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/mcp/tools/acceptance.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/mcp/tools/account.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/mcp/tools/app.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/mcp/tools/batch.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/mcp/tools/community.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/mcp/tools/ensemble.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/mcp/tools/input_set.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/mcp/tools/instance.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/mcp/tools/managed_input.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/mcp/tools/profile.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/mcp/tools/run.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/mcp/tools/scenario.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/mcp/tools/secrets.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/mcp/tools/shadow.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/mcp/tools/sso.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/mcp/tools/switchback.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/mcp/tools/version.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/message.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/options.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/version.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/acceptance_test.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/account.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/application/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/application/_acceptance.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/application/_batch_scenario.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/application/_ensemble.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/application/_input_set.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/application/_instance.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/application/_managed_input.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/application/_run.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/application/_secrets.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/application/_shadow.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/application/_switchback.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/application/_utils.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/application/_version.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/assets.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/batch_experiment.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/client.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/community.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/ensemble.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/input_set.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/instance.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/integration.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/marketplace.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/package.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/scenario.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/secrets.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/shadow.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/sso.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/switchback.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/url.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cloud/version.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/content_format.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/default_app/.gitignore +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/default_app/README.md +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/default_app/app.yaml +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/default_app/input.json +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/default_app/main.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/default_app/requirements.txt +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/default_app/src/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/default_app/src/visuals.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/deprecated.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/input.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/local/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/local/application.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/local/geojson_handler.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/local/local.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/local/plotly_handler.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/local/registry.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/local/runner.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/logger.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/manifest.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/model.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/options.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/output.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/polling.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/run.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/safe.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/status.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/binary_json_app.yaml +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/binary_multi-file_app.yaml +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/go_json_app.yaml +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/go_json_template/.gitignore +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/go_json_template/README.md +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/go_json_template/app.yaml +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/go_json_template/go.mod +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/go_json_template/input.json +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/go_json_template/main.go +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/go_multi-file_app.yaml +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/go_multi-file_template/.gitignore +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/go_multi-file_template/README.md +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/go_multi-file_template/app.yaml +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/go_multi-file_template/go.mod +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/go_multi-file_template/inputs/input.json +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/go_multi-file_template/main.go +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/java_json_app.yaml +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/java_json_template/.gitignore +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/java_json_template/Main.java +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/java_json_template/README.md +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/java_json_template/app.yaml +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/java_json_template/input.json +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/java_json_template/pom.xml +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/java_multi-file_app.yaml +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/java_multi-file_template/.gitignore +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/java_multi-file_template/Main.java +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/java_multi-file_template/README.md +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/java_multi-file_template/app.yaml +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/java_multi-file_template/inputs/input.json +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/java_multi-file_template/pom.xml +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/python_json_app.yaml +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/python_json_template/.gitignore +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/python_json_template/README.md +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/python_json_template/app.yaml +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/python_json_template/input.json +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/python_json_template/main.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/python_json_template/requirements.txt +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/python_multi-file_app.yaml +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/python_multi-file_template/.gitignore +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/python_multi-file_template/README.md +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/python_multi-file_template/app.yaml +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/python_multi-file_template/inputs/input.json +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/python_multi-file_template/main.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/templates/python_multi-file_template/requirements.txt +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/pyproject.toml +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/cli/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/cli/test_configuration.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/cli/test_main.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/cli/test_mcp.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/cli/test_version.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/cloud/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/cloud/app.yaml +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/cloud/test_client.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/cloud/test_instance.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/cloud/test_package.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/cloud/test_scenario.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/integration/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/integration/cloud/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/integration/cloud/test_integration_cloud.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/integration/cloud/test_integration_marketplace.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/local/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/local/test_application.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/local/test_executor.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/local/test_registry.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/local/test_runner.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/scripts/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/scripts/options1.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/scripts/options2.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/scripts/options3.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/scripts/options4.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/scripts/options5.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/scripts/options6.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/scripts/options7.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/test_base_model.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/test_entrypoint/__init__.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/test_entrypoint/test_entrypoint.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/test_input.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/test_inputs/test_data.csv +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/test_inputs/test_data.json +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/test_inputs/test_data.txt +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/test_logger.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/test_manifest.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/test_model.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/test_options.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/test_output.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/test_polling.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/test_run.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/test_safe.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/test_serialization.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/tests/test_version.py +0 -0
- {nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/uv.lock +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "v1.2.3.dev3"
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
"""MCP tools for local application management."""
|
|
2
2
|
|
|
3
|
-
import json
|
|
4
3
|
import os
|
|
5
|
-
import subprocess
|
|
6
|
-
import tempfile
|
|
7
4
|
from typing import Any
|
|
8
5
|
|
|
9
6
|
from mcp.server.fastmcp import FastMCP
|
|
@@ -20,103 +17,6 @@ def _local_run_dir(app_dir: str, run_id: str) -> str:
|
|
|
20
17
|
return os.path.join(app_dir, NEXTMV_DIR, RUNS_KEY, run_id)
|
|
21
18
|
|
|
22
19
|
|
|
23
|
-
def _run_via_cli(
|
|
24
|
-
app_dir: str,
|
|
25
|
-
input_data: dict[str, Any],
|
|
26
|
-
run_options: dict[str, str] | None = None,
|
|
27
|
-
wait: bool = False,
|
|
28
|
-
) -> str:
|
|
29
|
-
"""Execute a local run via ``uv run nextmv local run create``.
|
|
30
|
-
|
|
31
|
-
This invokes the Nextmv CLI through ``uv``, which ensures that
|
|
32
|
-
the application's ``requirements.txt`` dependencies are installed
|
|
33
|
-
and available at runtime (unlike calling the SDK directly with
|
|
34
|
-
``sys.executable``).
|
|
35
|
-
|
|
36
|
-
Args:
|
|
37
|
-
app_dir: Absolute path to the local application directory.
|
|
38
|
-
input_data: The input data (JSON object) for the run.
|
|
39
|
-
run_options: Optional solver options passed as ``--options key=value``.
|
|
40
|
-
wait: If True, blocks until the run completes (``--wait``).
|
|
41
|
-
|
|
42
|
-
Returns:
|
|
43
|
-
The run ID (parsed from the CLI's JSON stdout output).
|
|
44
|
-
|
|
45
|
-
Raises:
|
|
46
|
-
RuntimeError: If the CLI process exits with a non-zero return code.
|
|
47
|
-
"""
|
|
48
|
-
|
|
49
|
-
# Write input to a temp file so the CLI can read it via --input.
|
|
50
|
-
fd, input_path = tempfile.mkstemp(suffix=".json", prefix="mcp_local_input_")
|
|
51
|
-
try:
|
|
52
|
-
with os.fdopen(fd, "w") as fh:
|
|
53
|
-
json.dump(input_data, fh)
|
|
54
|
-
|
|
55
|
-
cmd: list[str] = [
|
|
56
|
-
"uv", "run", "nextmv",
|
|
57
|
-
"local", "run", "create",
|
|
58
|
-
"--app-src", os.path.abspath(app_dir),
|
|
59
|
-
"--input", input_path,
|
|
60
|
-
]
|
|
61
|
-
|
|
62
|
-
if run_options:
|
|
63
|
-
for key, value in run_options.items():
|
|
64
|
-
cmd.extend(["--options", f"{key}={value}"])
|
|
65
|
-
|
|
66
|
-
if wait:
|
|
67
|
-
cmd.append("--wait")
|
|
68
|
-
|
|
69
|
-
result = subprocess.run(
|
|
70
|
-
cmd,
|
|
71
|
-
capture_output=True,
|
|
72
|
-
text=True,
|
|
73
|
-
check=False,
|
|
74
|
-
env=os.environ,
|
|
75
|
-
)
|
|
76
|
-
|
|
77
|
-
if result.returncode != 0:
|
|
78
|
-
stderr = result.stderr.strip()
|
|
79
|
-
raise RuntimeError(
|
|
80
|
-
f"nextmv local run create failed (exit {result.returncode}): {stderr}"
|
|
81
|
-
)
|
|
82
|
-
|
|
83
|
-
# The CLI prints JSON with a "run_id" key to stdout when not
|
|
84
|
-
# waiting, or the full result when waiting.
|
|
85
|
-
stdout = result.stdout.strip()
|
|
86
|
-
try:
|
|
87
|
-
parsed = json.loads(stdout)
|
|
88
|
-
if isinstance(parsed, dict) and "run_id" in parsed:
|
|
89
|
-
return parsed["run_id"]
|
|
90
|
-
except json.JSONDecodeError:
|
|
91
|
-
pass
|
|
92
|
-
|
|
93
|
-
# When --wait is used the CLI may print the run_id via a
|
|
94
|
-
# success message to stderr. Fall back to extracting the
|
|
95
|
-
# run_id from the run directory listing.
|
|
96
|
-
from nextmv.local.local import NEXTMV_DIR, RUNS_KEY
|
|
97
|
-
|
|
98
|
-
runs_dir = os.path.join(
|
|
99
|
-
os.path.abspath(app_dir), NEXTMV_DIR, RUNS_KEY,
|
|
100
|
-
)
|
|
101
|
-
if os.path.isdir(runs_dir):
|
|
102
|
-
entries = sorted(
|
|
103
|
-
os.listdir(runs_dir),
|
|
104
|
-
key=lambda d: os.path.getmtime(
|
|
105
|
-
os.path.join(runs_dir, d)
|
|
106
|
-
),
|
|
107
|
-
)
|
|
108
|
-
if entries:
|
|
109
|
-
return entries[-1]
|
|
110
|
-
|
|
111
|
-
raise RuntimeError(
|
|
112
|
-
f"Could not determine run_id from CLI output: {stdout}"
|
|
113
|
-
)
|
|
114
|
-
finally:
|
|
115
|
-
# Clean up the temp input file.
|
|
116
|
-
if os.path.exists(input_path):
|
|
117
|
-
os.unlink(input_path)
|
|
118
|
-
|
|
119
|
-
|
|
120
20
|
def _local_run_input_impl(
|
|
121
21
|
app_dir: str,
|
|
122
22
|
run_id: str,
|
|
@@ -160,11 +60,10 @@ def local_run(
|
|
|
160
60
|
) -> str:
|
|
161
61
|
"""Run a local Nextmv application and wait for the result.
|
|
162
62
|
|
|
163
|
-
Executes the application
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
Use file-reading tools to inspect the result file.
|
|
63
|
+
Executes the application using the Nextmv SDK and polls until the
|
|
64
|
+
run completes. The result is stored in the local run directory at
|
|
65
|
+
``{app_dir}/.nextmv/runs/{run_id}/``. Use file-reading tools to
|
|
66
|
+
inspect the result file.
|
|
168
67
|
|
|
169
68
|
Args:
|
|
170
69
|
app_dir: Absolute path to the local application directory
|
|
@@ -174,11 +73,11 @@ def local_run(
|
|
|
174
73
|
e.g. ``{"solve.duration": "10s"}``.
|
|
175
74
|
"""
|
|
176
75
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
76
|
+
app = _helpers._get_local_app(app_dir=app_dir)
|
|
77
|
+
run_id = app.new_run(input=input, options=run_options)
|
|
78
|
+
app.run_result_with_polling(
|
|
79
|
+
run_id=run_id,
|
|
80
|
+
polling_options=default_polling_options(),
|
|
182
81
|
)
|
|
183
82
|
run_dir = _local_run_dir(app_dir, run_id)
|
|
184
83
|
result_path = os.path.join(run_dir, f"{run_id}.json")
|
|
@@ -195,10 +94,9 @@ def local_run_submit(
|
|
|
195
94
|
) -> str:
|
|
196
95
|
"""Submit a local run without waiting for completion.
|
|
197
96
|
|
|
198
|
-
Executes the application
|
|
199
|
-
|
|
200
|
-
``
|
|
201
|
-
the run later.
|
|
97
|
+
Executes the application using the Nextmv SDK and returns the run
|
|
98
|
+
ID immediately. Use ``local_run_poll_result`` or
|
|
99
|
+
``local_run_status`` to check on the run later.
|
|
202
100
|
|
|
203
101
|
Args:
|
|
204
102
|
app_dir: Absolute path to the local application directory
|
|
@@ -208,12 +106,8 @@ def local_run_submit(
|
|
|
208
106
|
e.g. ``{"solve.duration": "10s"}``.
|
|
209
107
|
"""
|
|
210
108
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
input_data=input,
|
|
214
|
-
run_options=run_options,
|
|
215
|
-
wait=False,
|
|
216
|
-
)
|
|
109
|
+
app = _helpers._get_local_app(app_dir=app_dir)
|
|
110
|
+
return app.new_run(input=input, options=run_options)
|
|
217
111
|
|
|
218
112
|
|
|
219
113
|
def local_run_status(
|
|
@@ -50,7 +50,7 @@ from nextmv.input import INPUTS_KEY, InputFormat, load
|
|
|
50
50
|
from nextmv.local.geojson_handler import handle_geojson_visual
|
|
51
51
|
from nextmv.local.local import DEFAULT_OUTPUT_JSON_FILE, LOGS_FILE, LOGS_KEY, OUTPUT_KEY, calculate_files_size
|
|
52
52
|
from nextmv.local.plotly_handler import handle_plotly_visual
|
|
53
|
-
from nextmv.manifest import Manifest, ManifestType, find_files
|
|
53
|
+
from nextmv.manifest import MANIFEST_FILE_NAME, Manifest, ManifestType, find_files
|
|
54
54
|
from nextmv.output import (
|
|
55
55
|
ASSETS_KEY,
|
|
56
56
|
METRICS_KEY,
|
|
@@ -948,6 +948,10 @@ def _copy_new_or_modified_files( # noqa: C901
|
|
|
948
948
|
if rel_file.endswith(".pyc"):
|
|
949
949
|
continue
|
|
950
950
|
|
|
951
|
+
# Skip the manifest file itself
|
|
952
|
+
if rel_file == MANIFEST_FILE_NAME:
|
|
953
|
+
continue
|
|
954
|
+
|
|
951
955
|
file_path = os.path.join(root, rel_file)
|
|
952
956
|
# Normalize to forward slashes for cross-platform comparison
|
|
953
957
|
runtime_files_rel.append(os.path.relpath(file_path, runtime_dir).replace("\\", "/"))
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "v1.2.3.dev1"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{nextmv-1.2.3.dev1 → nextmv-1.2.3.dev3}/nextmv/cli/cloud/marketplace/subscription/__init__.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|