nextmv 1.4.0.dev0__tar.gz → 1.4.1.dev0__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.4.0.dev0 → nextmv-1.4.1.dev0}/.gitignore +5 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/PKG-INFO +3 -1
- nextmv-1.4.1.dev0/nextmv/__about__.py +1 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/__init__.py +1 -0
- nextmv-1.4.1.dev0/nextmv/account.py +51 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/init.py +4 -8
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/main.py +9 -1
- nextmv-1.4.1.dev0/nextmv/cli/mcp/__init__.py +38 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/serve.py +65 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/server.py +115 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/tools/WORKFLOW.md +373 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/tools/__init__.py +1 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/tools/_helpers.py +329 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/tools/acceptance.py +112 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/tools/account.py +47 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/tools/app.py +148 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/tools/batch.py +110 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/tools/community.py +45 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/tools/ensemble.py +338 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/tools/guide.py +25 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/tools/input_set.py +145 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/tools/instance.py +140 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/tools/local.py +425 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/tools/managed_input.py +108 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/tools/profile.py +89 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/tools/run.py +405 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/tools/scenario.py +227 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/tools/secrets.py +100 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/tools/shadow.py +149 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/tools/sso.py +28 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/tools/switchback.py +159 -0
- nextmv-1.4.1.dev0/nextmv/cli/mcp/tools/version.py +113 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/account.py +2 -3
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/application/_batch_scenario.py +15 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/batch_experiment.py +2 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/package.py +3 -2
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/local/application.py +11 -6
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/manifest.py +6 -2
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/options.py +3 -2
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/go_json_app.yaml +1 -1
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/go_json_hello-world/README.md +1 -1
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/go_json_hello-world/app.yaml +1 -1
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/go_multi-file_app.yaml +1 -1
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/go_multi-file_hello-world/README.md +1 -1
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/go_multi-file_hello-world/app.yaml +1 -1
- nextmv-1.4.1.dev0/nextmv/templates/java_json_hello-world/.gitignore +4 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/java_multi-file_hello-world/.gitignore +1 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_class-assign/app.yaml +0 -13
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_class-assign/main.py +1 -1
- {nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_demand-alloc → nextmv-1.4.1.dev0/nextmv/templates/python_json_demand-alloc}/allocation/README.md +0 -1
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_demand-alloc/allocation/app.yaml +0 -13
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_demand-alloc/allocation/main.py +4 -12
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_demand-alloc/workflow/app.yaml +0 -13
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_class-assign/app.yaml +0 -13
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_class-assign/main.py +1 -1
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_demand-alloc/allocation/app.yaml +0 -13
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_demand-alloc/allocation/main.py +4 -12
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_demand-alloc/workflow/app.yaml +0 -13
- nextmv-1.4.1.dev0/nextmv/templates/python_multi-file_hello-world/.gitignore +2 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/pyproject.toml +4 -0
- nextmv-1.4.1.dev0/tests/cli/test_mcp.py +2054 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/test_manifest.py +4 -2
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/uv.lock +570 -277
- nextmv-1.4.0.dev0/nextmv/__about__.py +0 -1
- nextmv-1.4.0.dev0/nextmv/templates/java_json_hello-world/.gitignore +0 -3
- nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_class-assign/.gitignore +0 -1
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/.python-version +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/CONTRIBUTING.md +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/LICENSE +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/README.md +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/__entrypoint__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/_serialization.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/base_model.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/acceptance/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/acceptance/create.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/acceptance/delete.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/acceptance/get.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/acceptance/list.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/acceptance/update.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/account/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/account/create.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/account/delete.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/account/get.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/account/update.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/app/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/app/create.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/app/delete.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/app/exists.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/app/get.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/app/list.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/app/push.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/app/update.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/batch/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/batch/create.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/batch/delete.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/batch/get.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/batch/list.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/batch/metadata.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/batch/update.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/data/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/data/upload.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/ensemble/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/ensemble/create.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/ensemble/delete.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/ensemble/get.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/ensemble/list.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/ensemble/update.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/input_set/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/input_set/create.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/input_set/delete.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/input_set/get.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/input_set/list.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/input_set/update.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/instance/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/instance/create.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/instance/delete.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/instance/exists.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/instance/get.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/instance/list.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/instance/update.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/managed_input/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/managed_input/create.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/managed_input/delete.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/managed_input/get.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/managed_input/list.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/managed_input/update.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/marketplace/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/marketplace/app/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/marketplace/app/create.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/marketplace/app/get.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/marketplace/app/list.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/marketplace/app/update.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/marketplace/subscription/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/marketplace/subscription/create.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/marketplace/subscription/delete.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/marketplace/subscription/get.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/marketplace/subscription/list.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/marketplace/version/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/marketplace/version/create.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/marketplace/version/get.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/marketplace/version/list.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/marketplace/version/update.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/run/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/run/cancel.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/run/create.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/run/delete.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/run/get.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/run/input.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/run/list.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/run/logs.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/run/metadata.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/run/track.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/scenario/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/scenario/create.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/scenario/delete.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/scenario/get.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/scenario/list.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/scenario/metadata.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/scenario/update.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/secrets/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/secrets/create.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/secrets/delete.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/secrets/get.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/secrets/list.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/secrets/update.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/shadow/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/shadow/create.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/shadow/delete.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/shadow/get.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/shadow/list.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/shadow/metadata.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/shadow/start.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/shadow/stop.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/shadow/update.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/sso/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/sso/create.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/sso/delete.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/sso/disable.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/sso/domain/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/sso/domain/delete.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/sso/enable.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/sso/get.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/sso/update.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/switchback/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/switchback/create.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/switchback/delete.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/switchback/get.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/switchback/list.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/switchback/metadata.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/switchback/start.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/switchback/stop.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/switchback/update.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/upload/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/upload/create.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/version/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/version/create.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/version/delete.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/version/exists.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/version/get.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/version/list.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/cloud/version/update.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/community/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/community/clone.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/community/list.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/configuration/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/configuration/config.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/configuration/create.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/configuration/delete.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/configuration/list.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/local/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/local/app/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/local/app/delete.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/local/app/get.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/local/app/list.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/local/app/register.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/local/app/registered.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/local/app/sync.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/local/app/update.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/local/run/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/local/run/create.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/local/run/get.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/local/run/input.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/local/run/list.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/local/run/logs.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/local/run/metadata.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/local/run/visuals.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/manifest/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/manifest/init.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/manifest/validate.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/message.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/options.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cli/version.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/acceptance_test.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/application/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/application/_acceptance.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/application/_ensemble.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/application/_input_set.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/application/_instance.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/application/_managed_input.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/application/_run.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/application/_secrets.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/application/_shadow.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/application/_switchback.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/application/_utils.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/application/_version.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/assets.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/client.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/community.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/ensemble.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/input_set.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/instance.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/integration.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/marketplace.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/scenario.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/secrets.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/shadow.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/sso.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/switchback.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/url.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/cloud/version.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/content_format.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/default_app/.gitignore +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/default_app/README.md +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/default_app/app.yaml +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/default_app/input.json +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/default_app/main.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/default_app/requirements.txt +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/default_app/src/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/default_app/src/visuals.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/deprecated.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/input.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/local/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/local/executor.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/local/geojson_handler.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/local/local.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/local/plotly_handler.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/local/registry.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/local/runner.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/logger.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/model.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/output.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/polling.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/run.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/safe.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/status.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/binary_json_app.yaml +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/binary_multi-file_app.yaml +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/go_json_hello-world/.gitignore +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/go_json_hello-world/go.mod +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/go_json_hello-world/input.json +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/go_json_hello-world/main.go +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/go_multi-file_hello-world/.gitignore +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/go_multi-file_hello-world/go.mod +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/go_multi-file_hello-world/inputs/input.json +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/go_multi-file_hello-world/main.go +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/java_json_app.yaml +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/java_json_hello-world/Main.java +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/java_json_hello-world/README.md +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/java_json_hello-world/app.yaml +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/java_json_hello-world/input.json +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/java_json_hello-world/pom.xml +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/java_multi-file_app.yaml +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/java_multi-file_hello-world/Main.java +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/java_multi-file_hello-world/README.md +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/java_multi-file_hello-world/app.yaml +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/java_multi-file_hello-world/inputs/input.json +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/java_multi-file_hello-world/pom.xml +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_app.yaml +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_class-assign/.gitignore +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_class-assign/README.md +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_class-assign/input.json +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_class-assign/requirements.txt +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_class-assign/visualizations.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_demand-alloc/.gitignore +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_demand-alloc/README.md +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_demand-alloc/allocation/input.json +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_demand-alloc/allocation/requirements.txt +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_demand-alloc/allocation/visuals.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_demand-alloc/workflow/README.md +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_demand-alloc/workflow/input.json +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_demand-alloc/workflow/main.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_demand-alloc/workflow/requirements.txt +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_demand-alloc/workflow/visuals.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_hello-world/.gitignore +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_hello-world/README.md +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_hello-world/app.yaml +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_hello-world/input.json +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_hello-world/main.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_json_hello-world/requirements.txt +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_app.yaml +0 -0
- {nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_demand-alloc/workflow → nextmv-1.4.1.dev0/nextmv/templates/python_multi-file_class-assign}/.gitignore +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_class-assign/README.md +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_class-assign/inputs/input.json +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_class-assign/requirements.txt +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_class-assign/visualizations.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_demand-alloc/README.md +0 -0
- {nextmv-1.4.0.dev0/nextmv/templates/python_json_demand-alloc → nextmv-1.4.1.dev0/nextmv/templates/python_multi-file_demand-alloc}/allocation/README.md +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_demand-alloc/allocation/input.json +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_demand-alloc/allocation/requirements.txt +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_demand-alloc/allocation/visuals.py +0 -0
- {nextmv-1.4.0.dev0/nextmv/templates/python_multi-file_hello-world → nextmv-1.4.1.dev0/nextmv/templates/python_multi-file_demand-alloc/workflow}/.gitignore +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_demand-alloc/workflow/README.md +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_demand-alloc/workflow/inputs/input.json +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_demand-alloc/workflow/main.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_demand-alloc/workflow/requirements.txt +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_demand-alloc/workflow/visuals.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_hello-world/README.md +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_hello-world/app.yaml +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_hello-world/inputs/input.json +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_hello-world/main.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/nextmv/templates/python_multi-file_hello-world/requirements.txt +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/cli/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/cli/test_configuration.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/cli/test_main.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/cli/test_version.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/cloud/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/cloud/app.yaml +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/cloud/test_client.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/cloud/test_instance.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/cloud/test_package.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/cloud/test_scenario.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/integration/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/integration/cloud/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/integration/cloud/test_integration_cloud.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/integration/cloud/test_integration_marketplace.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/local/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/local/test_application.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/local/test_executor.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/local/test_registry.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/local/test_runner.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/scripts/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/scripts/options1.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/scripts/options2.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/scripts/options3.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/scripts/options4.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/scripts/options5.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/scripts/options6.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/scripts/options7.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/test_base_model.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/test_entrypoint/__init__.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/test_entrypoint/test_entrypoint.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/test_input.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/test_inputs/test_data.csv +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/test_inputs/test_data.json +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/test_inputs/test_data.txt +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/test_logger.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/test_model.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/test_options.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/test_output.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/test_polling.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/test_run.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/test_safe.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/test_serialization.py +0 -0
- {nextmv-1.4.0.dev0 → nextmv-1.4.1.dev0}/tests/test_version.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nextmv
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.1.dev0
|
|
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/
|
|
@@ -227,6 +227,8 @@ Requires-Dist: questionary>=2.1.1
|
|
|
227
227
|
Requires-Dist: requests>=2.31.0
|
|
228
228
|
Requires-Dist: typer>=0.20.1
|
|
229
229
|
Requires-Dist: urllib3>=2.1.0
|
|
230
|
+
Provides-Extra: mcp
|
|
231
|
+
Requires-Dist: mcp[cli]>=1.0; extra == 'mcp'
|
|
230
232
|
Provides-Extra: notebook
|
|
231
233
|
Requires-Dist: mlflow>=3.9.0; extra == 'notebook'
|
|
232
234
|
Description-Content-Type: text/markdown
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "v1.4.1.dev0"
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"""Nextmv Python SDK."""
|
|
2
2
|
|
|
3
3
|
from .__about__ import __version__
|
|
4
|
+
from .account import AccountMemberRole as AccountMemberRole
|
|
4
5
|
from .base_model import BaseModel as BaseModel
|
|
5
6
|
from .base_model import from_dict as from_dict
|
|
6
7
|
from .content_format import ContentFormat as ContentFormat
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Provides role enum for Nextmv accounts.
|
|
3
|
+
|
|
4
|
+
This module defines enumerations for representing member roles within
|
|
5
|
+
a Nextmv account.
|
|
6
|
+
|
|
7
|
+
Classes
|
|
8
|
+
-------
|
|
9
|
+
AccountMemberRole
|
|
10
|
+
Represents the role of a member in a Nextmv account.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from enum import Enum
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class AccountMemberRole(str, Enum):
|
|
17
|
+
"""
|
|
18
|
+
The role type of an `AccountMember` represented as a string.
|
|
19
|
+
|
|
20
|
+
You can import the `AccountMemberRole` class directly from `nextmv`:
|
|
21
|
+
|
|
22
|
+
```python
|
|
23
|
+
from nextmv import AccountMemberRole
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
This enum specifies the supported roles for users in Nextmv accounts.
|
|
27
|
+
|
|
28
|
+
Attributes
|
|
29
|
+
----------
|
|
30
|
+
ROOT : str
|
|
31
|
+
The role of the owner of the account
|
|
32
|
+
ADMIN : str
|
|
33
|
+
The role of administrators of the account
|
|
34
|
+
DEVELOPER: str
|
|
35
|
+
The role of developers of the account
|
|
36
|
+
OPERATOR: str
|
|
37
|
+
The role of operators of the account
|
|
38
|
+
VIEWER: str
|
|
39
|
+
The role of viewers of the account
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
ROOT = "root"
|
|
43
|
+
"""The role of the owner of the account"""
|
|
44
|
+
ADMIN = "admin"
|
|
45
|
+
"""The role of administrators of the account"""
|
|
46
|
+
DEVELOPER = "developer"
|
|
47
|
+
"""The role of developers of the account"""
|
|
48
|
+
OPERATOR = "operator"
|
|
49
|
+
"""The role of operators of the account"""
|
|
50
|
+
VIEWER = "viewer"
|
|
51
|
+
"""The role of viewers of the account"""
|
|
@@ -170,11 +170,7 @@ def _manifest_type_question() -> ManifestType:
|
|
|
170
170
|
default=ManifestType.PYTHON.value,
|
|
171
171
|
)
|
|
172
172
|
|
|
173
|
-
|
|
174
|
-
if manifest_type == ManifestType.BINARY:
|
|
175
|
-
manifest_type = ManifestType.GO
|
|
176
|
-
|
|
177
|
-
return manifest_type
|
|
173
|
+
return ManifestType(manifest_type)
|
|
178
174
|
|
|
179
175
|
|
|
180
176
|
def _template_question(manifest_type: ManifestType) -> str:
|
|
@@ -339,12 +335,12 @@ def _handle_files_initialization(
|
|
|
339
335
|
)
|
|
340
336
|
|
|
341
337
|
else:
|
|
342
|
-
|
|
338
|
+
manifest_path = initialize_manifest(manifest_type=manifest_type, content_format=content_format, dirpath=dirpath)
|
|
343
339
|
success(
|
|
344
340
|
f"[magenta]{manifest_type.value}[/magenta], [magenta]{content_format.value}[/magenta] manifest "
|
|
345
|
-
f"initialized at [magenta]{
|
|
341
|
+
f"initialized at [magenta]{manifest_path}[/magenta]."
|
|
346
342
|
)
|
|
347
|
-
local_app = local.Application(src=
|
|
343
|
+
local_app = local.Application(src=os.path.dirname(manifest_path))
|
|
348
344
|
|
|
349
345
|
return local_app
|
|
350
346
|
|
|
@@ -55,6 +55,14 @@ app.add_typer(local_app, name="local")
|
|
|
55
55
|
app.add_typer(manifest_app, name="manifest")
|
|
56
56
|
app.add_typer(version_app)
|
|
57
57
|
|
|
58
|
+
# Register the MCP subcommand only if the mcp extra is installed.
|
|
59
|
+
try:
|
|
60
|
+
from nextmv.cli.mcp import app as mcp_app
|
|
61
|
+
|
|
62
|
+
app.add_typer(mcp_app, name="mcp")
|
|
63
|
+
except ImportError:
|
|
64
|
+
pass
|
|
65
|
+
|
|
58
66
|
|
|
59
67
|
@app.callback()
|
|
60
68
|
def callback(
|
|
@@ -79,7 +87,7 @@ def callback(
|
|
|
79
87
|
return
|
|
80
88
|
|
|
81
89
|
# Skip checks for certain commands.
|
|
82
|
-
ignored_commands = {"configuration", "local", "init", "manifest", "version"}
|
|
90
|
+
ignored_commands = {"configuration", "mcp", "local", "init", "manifest", "version"}
|
|
83
91
|
if ctx.invoked_subcommand in ignored_commands:
|
|
84
92
|
return
|
|
85
93
|
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"""MCP (Model Context Protocol) server for the Nextmv CLI.
|
|
2
|
+
|
|
3
|
+
Requires the ``mcp`` optional extra: ``pip install nextmv[mcp]``.
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
# Fail fast at import time so that main.py's try/except can gate the
|
|
7
|
+
# subcommand registration.
|
|
8
|
+
import importlib.util
|
|
9
|
+
|
|
10
|
+
if importlib.util.find_spec("mcp") is None:
|
|
11
|
+
raise ImportError(
|
|
12
|
+
"The mcp extra is not installed. Install it with: pip install nextmv[mcp]"
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
import typer
|
|
16
|
+
|
|
17
|
+
from nextmv.cli.mcp.serve import app as serve_app
|
|
18
|
+
|
|
19
|
+
# Set up subcommand application.
|
|
20
|
+
app = typer.Typer()
|
|
21
|
+
app.add_typer(serve_app)
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
@app.callback()
|
|
25
|
+
def callback() -> None:
|
|
26
|
+
"""
|
|
27
|
+
Model Context Protocol (MCP) server for LLM integrations.
|
|
28
|
+
|
|
29
|
+
Start an MCP server so that any MCP-compatible client (Claude Code,
|
|
30
|
+
Cursor, VS Code, etc.) can interact with Nextmv Cloud through natural
|
|
31
|
+
language.
|
|
32
|
+
|
|
33
|
+
[bold][underline]Quick start[/underline][/bold]
|
|
34
|
+
|
|
35
|
+
- Register with Claude Code.
|
|
36
|
+
$ [dim]claude mcp add nextmv -- nextmv mcp serve[/dim]
|
|
37
|
+
"""
|
|
38
|
+
pass
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"""MCP server command for the Nextmv CLI."""
|
|
2
|
+
|
|
3
|
+
from typing import Annotated
|
|
4
|
+
|
|
5
|
+
import typer
|
|
6
|
+
|
|
7
|
+
from nextmv.cli.mcp.server import create_server
|
|
8
|
+
from nextmv.cli.message import error
|
|
9
|
+
|
|
10
|
+
# Set up subcommand application.
|
|
11
|
+
app = typer.Typer()
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
@app.command()
|
|
15
|
+
def serve(
|
|
16
|
+
port: Annotated[
|
|
17
|
+
int,
|
|
18
|
+
typer.Option(
|
|
19
|
+
"--port",
|
|
20
|
+
help="Port for the HTTP transport.",
|
|
21
|
+
metavar="PORT",
|
|
22
|
+
),
|
|
23
|
+
] = 8080,
|
|
24
|
+
transport: Annotated[
|
|
25
|
+
str,
|
|
26
|
+
typer.Option(
|
|
27
|
+
"--transport",
|
|
28
|
+
"-t",
|
|
29
|
+
help="Transport protocol. "
|
|
30
|
+
"Allowed values: [magenta]stdio[/magenta], [magenta]streamable-http[/magenta].",
|
|
31
|
+
metavar="TRANSPORT",
|
|
32
|
+
),
|
|
33
|
+
] = "stdio",
|
|
34
|
+
) -> None:
|
|
35
|
+
"""
|
|
36
|
+
Start the Nextmv MCP server.
|
|
37
|
+
|
|
38
|
+
The MCP server exposes Nextmv Cloud functionality as tools that any
|
|
39
|
+
MCP-compatible client can use. The default transport is
|
|
40
|
+
[magenta]stdio[/magenta], which is what Claude Code, Cursor, and most
|
|
41
|
+
local clients expect.
|
|
42
|
+
|
|
43
|
+
[bold][underline]Examples[/underline][/bold]
|
|
44
|
+
|
|
45
|
+
- Start the MCP server with stdio transport (default).
|
|
46
|
+
$ [dim]nextmv mcp serve[/dim]
|
|
47
|
+
|
|
48
|
+
- Start the MCP server with HTTP transport on port 9090.
|
|
49
|
+
$ [dim]nextmv mcp serve --transport streamable-http --port 9090[/dim]
|
|
50
|
+
|
|
51
|
+
- Register with Claude Code.
|
|
52
|
+
$ [dim]claude mcp add nextmv -- nextmv mcp serve[/dim]
|
|
53
|
+
"""
|
|
54
|
+
|
|
55
|
+
server = create_server()
|
|
56
|
+
|
|
57
|
+
if transport == "stdio":
|
|
58
|
+
server.run(transport="stdio")
|
|
59
|
+
elif transport in ("http", "streamable-http"):
|
|
60
|
+
server.run(transport="streamable-http", port=port)
|
|
61
|
+
else:
|
|
62
|
+
error(
|
|
63
|
+
f"Unknown transport [magenta]{transport}[/magenta]. "
|
|
64
|
+
"Allowed values are: [magenta]stdio[/magenta], [magenta]streamable-http[/magenta]."
|
|
65
|
+
)
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"""Nextmv MCP server definition.
|
|
2
|
+
|
|
3
|
+
This module is the public entry point for the MCP server. It delegates
|
|
4
|
+
tool registration to domain-specific submodules under ``tools/`` and
|
|
5
|
+
re-exports shared helpers so that existing imports continue to work.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from mcp.server.fastmcp import FastMCP
|
|
9
|
+
|
|
10
|
+
# Import tool registration submodules.
|
|
11
|
+
from nextmv.cli.mcp.tools import (
|
|
12
|
+
acceptance,
|
|
13
|
+
account,
|
|
14
|
+
app,
|
|
15
|
+
batch,
|
|
16
|
+
community,
|
|
17
|
+
ensemble,
|
|
18
|
+
guide,
|
|
19
|
+
input_set,
|
|
20
|
+
instance,
|
|
21
|
+
local,
|
|
22
|
+
managed_input,
|
|
23
|
+
profile,
|
|
24
|
+
run,
|
|
25
|
+
scenario,
|
|
26
|
+
secrets,
|
|
27
|
+
shadow,
|
|
28
|
+
sso,
|
|
29
|
+
switchback,
|
|
30
|
+
version,
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
# Re-export helpers for backward compatibility — tests and external code
|
|
34
|
+
# may import these directly from ``nextmv.cli.mcp.server``.
|
|
35
|
+
from nextmv.cli.mcp.tools._helpers import ( # noqa: F401
|
|
36
|
+
_get_app,
|
|
37
|
+
_get_client,
|
|
38
|
+
_get_local_app,
|
|
39
|
+
_mask_key,
|
|
40
|
+
_save_to_file,
|
|
41
|
+
_save_to_json_file,
|
|
42
|
+
session,
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
# Re-export SDK names that tests patch on this module.
|
|
46
|
+
from nextmv.cloud import list_applications # noqa: F401
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def create_server() -> FastMCP:
|
|
50
|
+
"""Create and return the Nextmv MCP server."""
|
|
51
|
+
|
|
52
|
+
mcp = FastMCP(
|
|
53
|
+
"nextmv",
|
|
54
|
+
json_response=True,
|
|
55
|
+
instructions=(
|
|
56
|
+
"Nextmv is a platform for deploying and managing decision "
|
|
57
|
+
"models (optimization, routing, scheduling, etc.). Use these "
|
|
58
|
+
"tools to interact with Nextmv Cloud apps: list apps, submit "
|
|
59
|
+
"runs, check results, manage versions/instances, run experiments, "
|
|
60
|
+
"and work with local applications.\n\n"
|
|
61
|
+
"IMPORTANT: Always use these MCP tools instead of shelling out "
|
|
62
|
+
"to the `nextmv` CLI binary. Large responses (run results, "
|
|
63
|
+
"inputs, logs) are automatically saved to local temp files to "
|
|
64
|
+
"keep the context window small — the tool will return the file "
|
|
65
|
+
"path so you can selectively read what you need. Large inputs "
|
|
66
|
+
"can be passed directly as tool parameters without concern.\n\n"
|
|
67
|
+
"PROFILES: The server supports multiple profiles from "
|
|
68
|
+
"~/.nextmv/config.yaml. Use cloud_list_profiles to see "
|
|
69
|
+
"available profiles and cloud_set_profile to switch. The "
|
|
70
|
+
"default profile is used unless changed. When the user asks "
|
|
71
|
+
"to use a specific profile (e.g. \"list apps in my dev "
|
|
72
|
+
"profile\"), call cloud_set_profile first. Always state which "
|
|
73
|
+
"profile you are using when calling cloud tools, e.g. "
|
|
74
|
+
"(profile: \"default\").\n\n"
|
|
75
|
+
"CLOUD RUN CACHE: Cloud run data (results, inputs, logs) is "
|
|
76
|
+
"cached locally at ~/.nextmv/runs/{endpoint}/{run_id}/ using "
|
|
77
|
+
"the same directory layout as local runs. The {endpoint} is the "
|
|
78
|
+
"API endpoint (e.g. api.cloud.nextmv.io). If a file already "
|
|
79
|
+
"exists there, it will not be re-downloaded. You can read "
|
|
80
|
+
"cached cloud run data directly from these paths without "
|
|
81
|
+
"calling the cloud tools again.\n\n"
|
|
82
|
+
"WORKFLOW GUIDE: When creating a new app, deploying to Cloud, "
|
|
83
|
+
"or running experiments, call the nextmv_workflow_guide tool "
|
|
84
|
+
"first to get the step-by-step workflow and coding patterns."
|
|
85
|
+
),
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
# Cloud tools
|
|
89
|
+
profile.register(mcp)
|
|
90
|
+
app.register(mcp)
|
|
91
|
+
run.register(mcp)
|
|
92
|
+
version.register(mcp)
|
|
93
|
+
instance.register(mcp)
|
|
94
|
+
batch.register(mcp)
|
|
95
|
+
input_set.register(mcp)
|
|
96
|
+
acceptance.register(mcp)
|
|
97
|
+
scenario.register(mcp)
|
|
98
|
+
ensemble.register(mcp)
|
|
99
|
+
shadow.register(mcp)
|
|
100
|
+
switchback.register(mcp)
|
|
101
|
+
secrets.register(mcp)
|
|
102
|
+
sso.register(mcp)
|
|
103
|
+
account.register(mcp)
|
|
104
|
+
managed_input.register(mcp)
|
|
105
|
+
|
|
106
|
+
# Community tools
|
|
107
|
+
community.register(mcp)
|
|
108
|
+
|
|
109
|
+
# Local tools
|
|
110
|
+
local.register(mcp)
|
|
111
|
+
|
|
112
|
+
# Workflow guide
|
|
113
|
+
guide.register(mcp)
|
|
114
|
+
|
|
115
|
+
return mcp
|