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.
Files changed (281) hide show
  1. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/PKG-INFO +7 -1
  2. nextmv-1.1.3.dev1/nextmv/__about__.py +1 -0
  3. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/main.py +3 -1
  4. nextmv-1.1.3.dev1/nextmv/cli/mcp/__init__.py +26 -0
  5. nextmv-1.1.3.dev1/nextmv/cli/mcp/serve.py +76 -0
  6. nextmv-1.1.3.dev1/nextmv/cli/mcp/server.py +1819 -0
  7. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/sso.py +35 -35
  8. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/default_app/app.yaml +9 -0
  9. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/default_app/main.py +3 -3
  10. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/pyproject.toml +9 -0
  11. nextmv-1.1.3.dev1/tests/cli/test_mcp.py +512 -0
  12. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/local/test_application.py +85 -0
  13. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/uv.lock +305 -7
  14. nextmv-1.1.2.dev0/nextmv/__about__.py +0 -1
  15. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/.gitignore +0 -0
  16. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/.python-version +0 -0
  17. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/LICENSE +0 -0
  18. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/README.md +0 -0
  19. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/__entrypoint__.py +0 -0
  20. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/__init__.py +0 -0
  21. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/_serialization.py +0 -0
  22. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/base_model.py +0 -0
  23. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/CONTRIBUTING.md +0 -0
  24. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/__init__.py +0 -0
  25. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/__init__.py +0 -0
  26. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/acceptance/__init__.py +0 -0
  27. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/acceptance/create.py +0 -0
  28. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/acceptance/delete.py +0 -0
  29. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/acceptance/get.py +0 -0
  30. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/acceptance/list.py +0 -0
  31. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/acceptance/update.py +0 -0
  32. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/account/__init__.py +0 -0
  33. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/account/create.py +0 -0
  34. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/account/delete.py +0 -0
  35. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/account/get.py +0 -0
  36. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/account/update.py +0 -0
  37. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/app/__init__.py +0 -0
  38. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/app/create.py +0 -0
  39. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/app/delete.py +0 -0
  40. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/app/exists.py +0 -0
  41. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/app/get.py +0 -0
  42. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/app/list.py +0 -0
  43. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/app/push.py +0 -0
  44. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/app/update.py +0 -0
  45. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/batch/__init__.py +0 -0
  46. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/batch/create.py +0 -0
  47. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/batch/delete.py +0 -0
  48. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/batch/get.py +0 -0
  49. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/batch/list.py +0 -0
  50. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/batch/metadata.py +0 -0
  51. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/batch/update.py +0 -0
  52. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/data/__init__.py +0 -0
  53. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/data/upload.py +0 -0
  54. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/ensemble/__init__.py +0 -0
  55. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/ensemble/create.py +0 -0
  56. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/ensemble/delete.py +0 -0
  57. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/ensemble/get.py +0 -0
  58. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/ensemble/list.py +0 -0
  59. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/ensemble/update.py +0 -0
  60. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/input_set/__init__.py +0 -0
  61. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/input_set/create.py +0 -0
  62. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/input_set/delete.py +0 -0
  63. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/input_set/get.py +0 -0
  64. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/input_set/list.py +0 -0
  65. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/input_set/update.py +0 -0
  66. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/instance/__init__.py +0 -0
  67. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/instance/create.py +0 -0
  68. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/instance/delete.py +0 -0
  69. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/instance/exists.py +0 -0
  70. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/instance/get.py +0 -0
  71. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/instance/list.py +0 -0
  72. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/instance/update.py +0 -0
  73. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/managed_input/__init__.py +0 -0
  74. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/managed_input/create.py +0 -0
  75. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/managed_input/delete.py +0 -0
  76. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/managed_input/get.py +0 -0
  77. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/managed_input/list.py +0 -0
  78. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/managed_input/update.py +0 -0
  79. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/__init__.py +0 -0
  80. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/app/__init__.py +0 -0
  81. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/app/create.py +0 -0
  82. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/app/get.py +0 -0
  83. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/app/list.py +0 -0
  84. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/app/update.py +0 -0
  85. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/subscription/__init__.py +0 -0
  86. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/subscription/create.py +0 -0
  87. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/subscription/delete.py +0 -0
  88. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/subscription/get.py +0 -0
  89. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/subscription/list.py +0 -0
  90. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/version/__init__.py +0 -0
  91. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/version/create.py +0 -0
  92. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/version/get.py +0 -0
  93. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/version/list.py +0 -0
  94. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/marketplace/version/update.py +0 -0
  95. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/run/__init__.py +0 -0
  96. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/run/cancel.py +0 -0
  97. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/run/create.py +0 -0
  98. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/run/get.py +0 -0
  99. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/run/input.py +0 -0
  100. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/run/list.py +0 -0
  101. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/run/logs.py +0 -0
  102. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/run/metadata.py +0 -0
  103. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/run/track.py +0 -0
  104. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/scenario/__init__.py +0 -0
  105. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/scenario/create.py +0 -0
  106. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/scenario/delete.py +0 -0
  107. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/scenario/get.py +0 -0
  108. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/scenario/list.py +0 -0
  109. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/scenario/metadata.py +0 -0
  110. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/scenario/update.py +0 -0
  111. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/secrets/__init__.py +0 -0
  112. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/secrets/create.py +0 -0
  113. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/secrets/delete.py +0 -0
  114. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/secrets/get.py +0 -0
  115. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/secrets/list.py +0 -0
  116. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/secrets/update.py +0 -0
  117. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/shadow/__init__.py +0 -0
  118. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/shadow/create.py +0 -0
  119. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/shadow/delete.py +0 -0
  120. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/shadow/get.py +0 -0
  121. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/shadow/list.py +0 -0
  122. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/shadow/metadata.py +0 -0
  123. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/shadow/start.py +0 -0
  124. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/shadow/stop.py +0 -0
  125. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/shadow/update.py +0 -0
  126. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/sso/__init__.py +0 -0
  127. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/sso/create.py +0 -0
  128. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/sso/delete.py +0 -0
  129. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/sso/disable.py +0 -0
  130. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/sso/enable.py +0 -0
  131. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/sso/get.py +0 -0
  132. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/sso/update.py +0 -0
  133. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/switchback/__init__.py +0 -0
  134. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/switchback/create.py +0 -0
  135. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/switchback/delete.py +0 -0
  136. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/switchback/get.py +0 -0
  137. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/switchback/list.py +0 -0
  138. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/switchback/metadata.py +0 -0
  139. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/switchback/start.py +0 -0
  140. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/switchback/stop.py +0 -0
  141. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/switchback/update.py +0 -0
  142. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/upload/__init__.py +0 -0
  143. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/upload/create.py +0 -0
  144. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/version/__init__.py +0 -0
  145. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/version/create.py +0 -0
  146. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/version/delete.py +0 -0
  147. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/version/exists.py +0 -0
  148. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/version/get.py +0 -0
  149. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/version/list.py +0 -0
  150. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/cloud/version/update.py +0 -0
  151. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/community/__init__.py +0 -0
  152. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/community/clone.py +0 -0
  153. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/community/list.py +0 -0
  154. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/configuration/__init__.py +0 -0
  155. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/configuration/config.py +0 -0
  156. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/configuration/create.py +0 -0
  157. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/configuration/delete.py +0 -0
  158. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/configuration/list.py +0 -0
  159. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/confirm.py +0 -0
  160. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/__init__.py +0 -0
  161. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/app/__init__.py +0 -0
  162. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/app/delete.py +0 -0
  163. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/app/get.py +0 -0
  164. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/app/list.py +0 -0
  165. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/app/register.py +0 -0
  166. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/app/registered.py +0 -0
  167. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/app/sync.py +0 -0
  168. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/app/update.py +0 -0
  169. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/run/__init__.py +0 -0
  170. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/run/create.py +0 -0
  171. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/run/get.py +0 -0
  172. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/run/input.py +0 -0
  173. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/run/list.py +0 -0
  174. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/run/logs.py +0 -0
  175. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/run/metadata.py +0 -0
  176. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/local/run/visuals.py +0 -0
  177. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/message.py +0 -0
  178. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/options.py +0 -0
  179. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cli/version.py +0 -0
  180. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/__init__.py +0 -0
  181. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/acceptance_test.py +0 -0
  182. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/account.py +0 -0
  183. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/__init__.py +0 -0
  184. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_acceptance.py +0 -0
  185. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_batch_scenario.py +0 -0
  186. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_ensemble.py +0 -0
  187. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_input_set.py +0 -0
  188. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_instance.py +0 -0
  189. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_managed_input.py +0 -0
  190. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_run.py +0 -0
  191. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_secrets.py +0 -0
  192. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_shadow.py +0 -0
  193. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_switchback.py +0 -0
  194. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_utils.py +0 -0
  195. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/application/_version.py +0 -0
  196. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/assets.py +0 -0
  197. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/batch_experiment.py +0 -0
  198. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/client.py +0 -0
  199. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/community.py +0 -0
  200. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/ensemble.py +0 -0
  201. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/input_set.py +0 -0
  202. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/instance.py +0 -0
  203. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/integration.py +0 -0
  204. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/marketplace.py +0 -0
  205. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/package.py +0 -0
  206. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/scenario.py +0 -0
  207. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/secrets.py +0 -0
  208. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/shadow.py +0 -0
  209. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/switchback.py +0 -0
  210. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/url.py +0 -0
  211. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/cloud/version.py +0 -0
  212. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/default_app/.gitignore +0 -0
  213. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/default_app/README.md +0 -0
  214. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/default_app/input.json +0 -0
  215. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/default_app/requirements.txt +0 -0
  216. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/default_app/src/__init__.py +0 -0
  217. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/default_app/src/visuals.py +0 -0
  218. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/deprecated.py +0 -0
  219. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/input.py +0 -0
  220. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/local/__init__.py +0 -0
  221. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/local/application.py +0 -0
  222. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/local/executor.py +0 -0
  223. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/local/geojson_handler.py +0 -0
  224. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/local/local.py +0 -0
  225. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/local/plotly_handler.py +0 -0
  226. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/local/registry.py +0 -0
  227. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/local/runner.py +0 -0
  228. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/logger.py +0 -0
  229. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/manifest.py +0 -0
  230. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/model.py +0 -0
  231. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/options.py +0 -0
  232. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/output.py +0 -0
  233. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/polling.py +0 -0
  234. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/run.py +0 -0
  235. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/safe.py +0 -0
  236. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/nextmv/status.py +0 -0
  237. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/README.md +0 -0
  238. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/__init__.py +0 -0
  239. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/cli/__init__.py +0 -0
  240. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/cli/test_configuration.py +0 -0
  241. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/cli/test_main.py +0 -0
  242. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/cli/test_version.py +0 -0
  243. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/cloud/__init__.py +0 -0
  244. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/cloud/app.yaml +0 -0
  245. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/cloud/test_client.py +0 -0
  246. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/cloud/test_instance.py +0 -0
  247. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/cloud/test_package.py +0 -0
  248. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/cloud/test_scenario.py +0 -0
  249. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/integration/__init__.py +0 -0
  250. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/integration/cloud/__init__.py +0 -0
  251. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/integration/cloud/test_integration_cloud.py +0 -0
  252. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/integration/cloud/test_integration_marketplace.py +0 -0
  253. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/local/__init__.py +0 -0
  254. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/local/test_executor.py +0 -0
  255. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/local/test_registry.py +0 -0
  256. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/local/test_runner.py +0 -0
  257. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/scripts/__init__.py +0 -0
  258. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/scripts/options1.py +0 -0
  259. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/scripts/options2.py +0 -0
  260. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/scripts/options3.py +0 -0
  261. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/scripts/options4.py +0 -0
  262. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/scripts/options5.py +0 -0
  263. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/scripts/options6.py +0 -0
  264. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/scripts/options7.py +0 -0
  265. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_base_model.py +0 -0
  266. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_entrypoint/__init__.py +0 -0
  267. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_entrypoint/test_entrypoint.py +0 -0
  268. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_input.py +0 -0
  269. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_inputs/test_data.csv +0 -0
  270. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_inputs/test_data.json +0 -0
  271. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_inputs/test_data.txt +0 -0
  272. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_logger.py +0 -0
  273. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_manifest.py +0 -0
  274. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_model.py +0 -0
  275. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_options.py +0 -0
  276. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_output.py +0 -0
  277. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_polling.py +0 -0
  278. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_run.py +0 -0
  279. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_safe.py +0 -0
  280. {nextmv-1.1.2.dev0 → nextmv-1.1.3.dev1}/tests/test_serialization.py +0 -0
  281. {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.2.dev0
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
+ )