terradev-cli 5.6.0__tar.gz → 5.6.2__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 (542) hide show
  1. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/PKG-INFO +14 -2
  2. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/README.md +13 -1
  3. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/pyproject.toml +1 -1
  4. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/cli.py +216 -24
  5. terradev_cli-5.6.2/terradev_cli/core/database_connection.py +440 -0
  6. terradev_cli-5.6.2/terradev_cli/core/observe.py +321 -0
  7. terradev_cli-5.6.2/terradev_cli/core/schedule.py +414 -0
  8. terradev_cli-5.6.2/terradev_cli/mcp/new_feature_tools.py +291 -0
  9. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/mcp/server.py +31 -16
  10. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli.egg-info/PKG-INFO +14 -2
  11. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli.egg-info/SOURCES.txt +4 -0
  12. terradev_cli-5.6.2/test_database_connection.py +171 -0
  13. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_cli_smoke.py +23 -18
  14. terradev_cli-5.6.0/terradev_cli/mcp/new_feature_tools.py +0 -15
  15. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/.env.example +0 -0
  16. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/.github/workflows/action.yml +0 -0
  17. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/.github/workflows/ci-improved.yml +0 -0
  18. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/.github/workflows/ci.yml +0 -0
  19. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/.github/workflows/release.yml +0 -0
  20. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/.github/workflows/static.yml +0 -0
  21. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/.terradev/custom_providers.example.yaml +0 -0
  22. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/Deployment Package/BNF_GRAMMAR.md +0 -0
  23. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/Deployment Package/LIFECYCLES.md +0 -0
  24. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/Deployment Package/architecture.md +0 -0
  25. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/Deployment Package/overview.md +0 -0
  26. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/Deployment Package/security.md +0 -0
  27. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/Deployment Package/troubleshooting.md +0 -0
  28. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/Dockerfile +0 -0
  29. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/Dockerfile.test +0 -0
  30. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/LICENSE +0 -0
  31. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/MANIFEST.in +0 -0
  32. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/RELEASE_CHECKLIST.md +0 -0
  33. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/agentic-template/helm/values-agentic.yaml +0 -0
  34. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/agentic-template/k8s/fleet-manifests.yaml +0 -0
  35. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/glm-5/README.md +0 -0
  36. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/glm-5/helm/values-glm5.yaml +0 -0
  37. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/glm-5/k8s/hpa.yaml +0 -0
  38. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/glm-5/k8s/model-cache-pvc.yaml +0 -0
  39. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/glm-5/k8s/namespace.yaml +0 -0
  40. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/glm-5/k8s/pdb.yaml +0 -0
  41. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/glm-5/k8s/service.yaml +0 -0
  42. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/glm-5/k8s/sglang-deployment.yaml +0 -0
  43. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/glm-5/k8s/vllm-deployment.yaml +0 -0
  44. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/glm-5/task.yaml +0 -0
  45. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/glm-5/terraform/main.tf +0 -0
  46. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/glm-5/terraform/outputs.tf +0 -0
  47. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/glm-5/terraform/variables.tf +0 -0
  48. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/llmd-template/README.md +0 -0
  49. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/llmd-template/helm/values-llmd.yaml +0 -0
  50. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/llmd-template/k8s/gateway.yaml +0 -0
  51. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/llmd-template/k8s/leaderworkerset.yaml +0 -0
  52. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/llmd-template/k8s/llminferenceservice.yaml +0 -0
  53. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/llmd-template/task.yaml +0 -0
  54. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/lora-template/helm/Chart.yaml +0 -0
  55. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/lora-template/helm/templates/_helpers.tpl +0 -0
  56. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/lora-template/helm/templates/deployment.yaml +0 -0
  57. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/lora-template/helm/templates/pvc-adapter.yaml +0 -0
  58. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/lora-template/helm/templates/pvc-registry.yaml +0 -0
  59. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/lora-template/helm/templates/service.yaml +0 -0
  60. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/lora-template/helm/templates/serviceaccount.yaml +0 -0
  61. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/lora-template/helm/values-lora.yaml +0 -0
  62. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/lora-template/k8s/adapter-pvc.yaml +0 -0
  63. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/lora-template/k8s/deployment.yaml +0 -0
  64. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/lora-template/k8s/namespace.yaml +0 -0
  65. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/lora-template/k8s/registry-pvc.yaml +0 -0
  66. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/lora-template/k8s/service.yaml +0 -0
  67. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/lora-template/k8s/serviceaccount.yaml +0 -0
  68. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/lorax-template/helm/Chart.yaml +0 -0
  69. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/lorax-template/helm/templates/_helpers.tpl +0 -0
  70. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/lorax-template/helm/templates/deployment.yaml +0 -0
  71. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/lorax-template/helm/templates/pvc.yaml +0 -0
  72. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/lorax-template/helm/templates/service.yaml +0 -0
  73. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/lorax-template/helm/templates/serviceaccount.yaml +0 -0
  74. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/lorax-template/helm/values-lorax.yaml +0 -0
  75. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/moe-template/README.md +0 -0
  76. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/moe-template/helm/values-moe.yaml +0 -0
  77. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/moe-template/k8s/deployment.yaml +0 -0
  78. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/moe-template/k8s/hpa.yaml +0 -0
  79. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/moe-template/k8s/model-cache-pvc.yaml +0 -0
  80. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/moe-template/k8s/namespace.yaml +0 -0
  81. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/moe-template/k8s/pdb.yaml +0 -0
  82. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/moe-template/k8s/service.yaml +0 -0
  83. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/moe-template/task.yaml +0 -0
  84. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/moe-template/terraform/main.tf +0 -0
  85. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/moe-template/terraform/outputs.tf +0 -0
  86. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/moe-template/terraform/variables.tf +0 -0
  87. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/rag-template/README.md +0 -0
  88. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/rag-template/helm/values-rag.yaml +0 -0
  89. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/rag-template/k8s/deployment.yaml +0 -0
  90. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/clusters/rag-template/terraform/main.tf +0 -0
  91. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/demo/RECORDING_GUIDE.md +0 -0
  92. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/demo/generate_gif.py +0 -0
  93. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/demo/terradev-demo.gif +0 -0
  94. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/docs/ADVANCED_FINANCIAL_INNOVATIONS.md +0 -0
  95. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/docs/API_DOCUMENTATION.md +0 -0
  96. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/docs/BingSiteAuth.xml +0 -0
  97. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/docs/FINOPS_ATTRIBUTION_SYSTEM.md +0 -0
  98. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/docs/LORA_COMMAND_LIFECYCLE.md +0 -0
  99. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/docs/USER_GUIDE.md +0 -0
  100. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/docs/VLLM_AUTO_OPTIMIZATION_GUIDE.md +0 -0
  101. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/docs/VLLM_OPTIMIZATION_GUIDE.md +0 -0
  102. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/docs/architecture.md +0 -0
  103. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/docs/index.html +0 -0
  104. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/docs/overview.md +0 -0
  105. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/docs/robots.txt +0 -0
  106. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/docs/sitemap.xml +0 -0
  107. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/docs/test_spot_provision.md +0 -0
  108. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/examples/aws_ssm_starter.py +0 -0
  109. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/examples/config.example.json +0 -0
  110. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/examples/demo_k8s_config.yaml +0 -0
  111. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/examples/direct_aws_starter.py +0 -0
  112. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/examples/ec2_user_data_starter.py +0 -0
  113. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/examples/example-pipeline.yaml +0 -0
  114. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/examples/kubernetes_training_deployment.yaml +0 -0
  115. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/examples/simple_ssm_starter.py +0 -0
  116. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/examples/ssh_server_starter.py +0 -0
  117. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/examples/start_aws_servers.py +0 -0
  118. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/helm/terradev/Chart.yaml +0 -0
  119. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/helm/terradev/templates/_helpers.tpl +0 -0
  120. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/helm/terradev/templates/deployment.yaml +0 -0
  121. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/helm/terradev/values.yaml +0 -0
  122. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/infrastructure/bucket-policy.json +0 -0
  123. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/infrastructure/grafana_training_dashboard.json +0 -0
  124. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/infrastructure/kubernetes/microservices.yaml +0 -0
  125. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/infrastructure/terraform/main.tf +0 -0
  126. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/infrastructure/terraform/parallelism.tf +0 -0
  127. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/integrations/cli-tool.tf +0 -0
  128. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/integrations/cloud-management-widgets.tf +0 -0
  129. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/integrations/cloud-provider-apis.py +0 -0
  130. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/integrations/critical-widgets.tf +0 -0
  131. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/integrations/devops-cicd-widgets.tf +0 -0
  132. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/integrations/devops-essential-tools.tf +0 -0
  133. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/integrations/docker-integration.tf +0 -0
  134. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/integrations/kubernetes-operator.tf +0 -0
  135. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/integrations/mlflow-integration.tf +0 -0
  136. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/marketing/bare-metal-latitude-post.md +0 -0
  137. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/modules/datadog/README.md +0 -0
  138. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/modules/datadog/dashboard.tf +0 -0
  139. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/modules/datadog/monitors.tf +0 -0
  140. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/modules/datadog/outputs.tf +0 -0
  141. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/modules/datadog/provider.tf +0 -0
  142. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/modules/datadog/variables.tf +0 -0
  143. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/modules/datadog/versions.tf +0 -0
  144. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/modules/prometheus_training_config.yml +0 -0
  145. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/Cargo.toml +0 -0
  146. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/INTEGRATION_GUIDE.md +0 -0
  147. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/PERFORMANCE_OPTIMIZATIONS.md +0 -0
  148. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/README.md +0 -0
  149. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-artifact-verification/Cargo.toml +0 -0
  150. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-artifact-verification/src/lib.rs +0 -0
  151. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-artifact-verification/src/types.rs +0 -0
  152. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-artifact-verification/src/verifier.rs +0 -0
  153. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-authentication/Cargo.toml +0 -0
  154. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-authentication/src/encoding.rs +0 -0
  155. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-authentication/src/hmac.rs +0 -0
  156. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-authentication/src/lib.rs +0 -0
  157. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-authentication/src/types.rs +0 -0
  158. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-cache-eviction/Cargo.toml +0 -0
  159. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-cache-eviction/src/cache.rs +0 -0
  160. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-cache-eviction/src/lib.rs +0 -0
  161. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-cache-eviction/src/types.rs +0 -0
  162. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-command-executor/Cargo.toml +0 -0
  163. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-command-executor/src/lib.rs +0 -0
  164. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-config-validator/Cargo.toml +0 -0
  165. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-config-validator/src/lib.rs +0 -0
  166. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-config-validator/src/types.rs +0 -0
  167. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-config-validator/src/validator.rs +0 -0
  168. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-connection-pool/Cargo.toml +0 -0
  169. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-connection-pool/src/lib.rs +0 -0
  170. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-connection-pool/src/pool.rs +0 -0
  171. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-connection-pool/src/types.rs +0 -0
  172. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-cost-calculator/Cargo.toml +0 -0
  173. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-cost-calculator/src/calculator.rs +0 -0
  174. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-cost-calculator/src/lib.rs +0 -0
  175. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-cost-calculator/src/types.rs +0 -0
  176. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-cost-scaler/Cargo.toml +0 -0
  177. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-cost-scaler/src/lib.rs +0 -0
  178. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-credential-vault/Cargo.toml +0 -0
  179. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-credential-vault/pyproject.toml +0 -0
  180. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-credential-vault/src/lib.rs +0 -0
  181. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-credential-vault/src/types.rs +0 -0
  182. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-credential-vault/src/vault.rs +0 -0
  183. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-dag-executor/Cargo.toml +0 -0
  184. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-dag-executor/pyproject.toml +0 -0
  185. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-dag-executor/src/lib.rs +0 -0
  186. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-distributed-lock/Cargo.toml +0 -0
  187. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-distributed-lock/src/lib.rs +0 -0
  188. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-distributed-lock/src/lock.rs +0 -0
  189. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-distributed-lock/src/types.rs +0 -0
  190. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-egress-optimizer/Cargo.toml +0 -0
  191. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-egress-optimizer/src/graph.rs +0 -0
  192. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-egress-optimizer/src/lib.rs +0 -0
  193. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-egress-optimizer/src/types.rs +0 -0
  194. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-event-bus/Cargo.toml +0 -0
  195. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-event-bus/src/bus.rs +0 -0
  196. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-event-bus/src/lib.rs +0 -0
  197. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-event-bus/src/types.rs +0 -0
  198. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-governance/Cargo.toml +0 -0
  199. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-governance/src/lib.rs +0 -0
  200. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-gpu-discovery/Cargo.toml +0 -0
  201. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-gpu-discovery/src/lib.rs +0 -0
  202. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-gpu-topology/Cargo.toml +0 -0
  203. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-gpu-topology/pyproject.toml +0 -0
  204. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-gpu-topology/src/lib.rs +0 -0
  205. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-gpu-topology/src/topology.rs +0 -0
  206. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-gpu-topology/src/types.rs +0 -0
  207. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-helm-generator/Cargo.toml +0 -0
  208. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-helm-generator/src/lib.rs +0 -0
  209. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-mcp-codec/Cargo.toml +0 -0
  210. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-mcp-codec/src/lib.rs +0 -0
  211. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-mcp-optimizer/Cargo.toml +0 -0
  212. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-mcp-optimizer/src/lib.rs +0 -0
  213. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-price-intelligence/Cargo.toml +0 -0
  214. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-price-intelligence/src/lib.rs +0 -0
  215. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-quota-manager/Cargo.toml +0 -0
  216. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-quota-manager/src/lib.rs +0 -0
  217. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-quota-manager/src/manager.rs +0 -0
  218. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-quota-manager/src/types.rs +0 -0
  219. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-resource-pool/Cargo.toml +0 -0
  220. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-resource-pool/src/lib.rs +0 -0
  221. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-resource-pool/src/pool.rs +0 -0
  222. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-resource-pool/src/types.rs +0 -0
  223. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-result-compressor/Cargo.toml +0 -0
  224. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-result-compressor/src/lib.rs +0 -0
  225. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-semantic-router/Cargo.toml +0 -0
  226. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-semantic-router/pyproject.toml +0 -0
  227. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-semantic-router/src/lib.rs +0 -0
  228. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-snapshot-manager/Cargo.toml +0 -0
  229. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-snapshot-manager/src/lib.rs +0 -0
  230. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-snapshot-manager/src/snapshot.rs +0 -0
  231. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-snapshot-manager/src/types.rs +0 -0
  232. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-state-machine/Cargo.toml +0 -0
  233. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-state-machine/src/lib.rs +0 -0
  234. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-state-machine/src/state.rs +0 -0
  235. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-state-machine/src/types.rs +0 -0
  236. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-telemetry/Cargo.toml +0 -0
  237. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-telemetry/src/lib.rs +0 -0
  238. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-telemetry/src/pipeline.rs +0 -0
  239. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-telemetry/src/types.rs +0 -0
  240. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-tool-registry/Cargo.toml +0 -0
  241. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-tool-registry/src/lib.rs +0 -0
  242. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-vram-estimator/Cargo.toml +0 -0
  243. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-vram-estimator/src/estimator.rs +0 -0
  244. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-vram-estimator/src/lib.rs +0 -0
  245. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-vram-estimator/src/types.rs +0 -0
  246. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-warm-pool/Cargo.toml +0 -0
  247. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/rust/terradev-warm-pool/src/lib.rs +0 -0
  248. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/scripts/action.py +0 -0
  249. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/scripts/build_rust.sh +0 -0
  250. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/scripts/gpu-check.sh +0 -0
  251. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/setup/Lambda Cloud API spec 1.8.3.json +0 -0
  252. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/setup/docker-compose.yml +0 -0
  253. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/setup/nginx.conf +0 -0
  254. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/setup/setup.sh +0 -0
  255. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/setup.cfg +0 -0
  256. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/CHANGELOG.md +0 -0
  257. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/COMPLETE_COMMAND_REFERENCE.md +0 -0
  258. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/COMPLETE_INTEGRATION_GUIDE.md +0 -0
  259. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/IMPLEMENTATION_SUMMARY.md +0 -0
  260. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/MAKING_SPOT_WORK_FOR_STATEFUL_WORKLOADS.md +0 -0
  261. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/README.md +0 -0
  262. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/SGLANG_COMMAND_GUIDE.md +0 -0
  263. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/TERRADEV_STACK_CHART.md +0 -0
  264. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/__init__.py +0 -0
  265. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/__main__.py +0 -0
  266. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/cli_hf_spaces.py +0 -0
  267. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/cli_karpenter.py +0 -0
  268. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/__init__.py +0 -0
  269. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/agentic_provisioner.py +0 -0
  270. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/agentic_topology.py +0 -0
  271. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/async_config.py +0 -0
  272. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/auth.py +0 -0
  273. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/auto_lineage.py +0 -0
  274. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/cache_manager.py +0 -0
  275. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/checkpoint_manager.py +0 -0
  276. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/command_executor.py +0 -0
  277. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/config.py +0 -0
  278. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/config_validator.py +0 -0
  279. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/cost_scaler.py +0 -0
  280. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/cost_tracker.py +0 -0
  281. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/credential_vault.py +0 -0
  282. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/cuda_graph_integrator.py +0 -0
  283. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/dag_executor.py +0 -0
  284. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/data_governance.py +0 -0
  285. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/dataset_stager.py +0 -0
  286. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/deployment_router.py +0 -0
  287. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/distributed_lock.py +0 -0
  288. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/drift_detector.py +0 -0
  289. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/egress_cost_monitor.py +0 -0
  290. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/egress_optimizer.py +0 -0
  291. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/evaluation_orchestrator.py +0 -0
  292. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/event_system.py +0 -0
  293. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/gateway_service.py +0 -0
  294. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/gitops_manager.py +0 -0
  295. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/gpu_discovery.py +0 -0
  296. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/gpu_topology.py +0 -0
  297. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/helm_generator.py +0 -0
  298. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/hf_cli_integration.py +0 -0
  299. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/hf_smart_templates.py +0 -0
  300. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/hf_spaces.py +0 -0
  301. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/inference_router.py +0 -0
  302. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/inference_spot_manager.py +0 -0
  303. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/job_state_manager.py +0 -0
  304. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/kv_cache_checkpoint_manager.py +0 -0
  305. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/kv_cache_checkpoint_tests.py +0 -0
  306. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/kv_sharing.py +0 -0
  307. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/lora_consistency.py +0 -0
  308. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/lora_cost_attribution.py +0 -0
  309. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/lora_versioning.py +0 -0
  310. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/manifest_cache.py +0 -0
  311. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/manifest_example.json +0 -0
  312. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/mig_manager.py +0 -0
  313. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/migration_orchestrator.py +0 -0
  314. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/mla_vram_estimator.py +0 -0
  315. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/mla_vram_tests.py +0 -0
  316. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/model_orchestrator.py +0 -0
  317. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/monitoring.py +0 -0
  318. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/oidc_provider.py +0 -0
  319. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/optimization_config.py +0 -0
  320. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/parallel_provisioner.py +0 -0
  321. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/pd_transport.py +0 -0
  322. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/pipeline_schema.py +0 -0
  323. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/preflight_validator.py +0 -0
  324. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/price_discovery.py +0 -0
  325. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/price_intelligence.py +0 -0
  326. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/public_ip_billing_tracker.py +0 -0
  327. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/quick_start.py +0 -0
  328. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/quota_manager.py +0 -0
  329. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/rate_limiter.py +0 -0
  330. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/rust_telemetry.py +0 -0
  331. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/semantic_router.py +0 -0
  332. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/semantic_signals/__init__.py +0 -0
  333. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/semantic_signals/base_signal.py +0 -0
  334. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/semantic_signals/complexity_signal.py +0 -0
  335. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/semantic_signals/domain_signal.py +0 -0
  336. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/semantic_signals/keyword_signal.py +0 -0
  337. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/semantic_signals/language_signal.py +0 -0
  338. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/semantic_signals/modality_signal.py +0 -0
  339. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/semantic_signals/orchestrator.py +0 -0
  340. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/semantic_signals/routing_policy.yaml +0 -0
  341. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/semantic_signals/safety_signal.py +0 -0
  342. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/session_manager.py +0 -0
  343. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/ssh_key_manager.py +0 -0
  344. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/telemetry.py +0 -0
  345. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/terradev_engine.py +0 -0
  346. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/trace_viewer.py +0 -0
  347. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/training_monitor.py +0 -0
  348. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/training_orchestrator.py +0 -0
  349. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/user_manager.py +0 -0
  350. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/warm_pool_manager.py +0 -0
  351. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/weight_streaming_benchmarks.py +0 -0
  352. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/core/weight_streaming_manager.py +0 -0
  353. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/cost_optimizer.py +0 -0
  354. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/credential_prompt.py +0 -0
  355. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/demo.py +0 -0
  356. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/entry_point.py +0 -0
  357. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/integrations/Terradev LOGO BLACK.png +0 -0
  358. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/integrations/Terradev LOGO WHITEW.png +0 -0
  359. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/integrations/__init__.py +0 -0
  360. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/integrations/databricks_integration.py +0 -0
  361. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/integrations/datadog_integration.py +0 -0
  362. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/integrations/helicone_integration.py +0 -0
  363. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/integrations/prometheus_integration.py +0 -0
  364. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/integrations/wandb_integration.py +0 -0
  365. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/k8s/terraform_wrapper.py +0 -0
  366. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/kubernetes/inferx-cost-optimized.yaml +0 -0
  367. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/kubernetes/inferx-infrastructure.yaml +0 -0
  368. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/kubernetes/inferx-models.yaml +0 -0
  369. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/kubernetes/inferx-platform.yaml +0 -0
  370. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/kubernetes/inferx_setup.py +0 -0
  371. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/mcp/__init__.py +0 -0
  372. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/__init__.py +0 -0
  373. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/agentic_serving.py +0 -0
  374. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/drift_retrain_service.py +0 -0
  375. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/dvc_service.py +0 -0
  376. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/guardrails_service.py +0 -0
  377. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/huggingface_service.py +0 -0
  378. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/kserve_service.py +0 -0
  379. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/kubernetes_enhanced.py +0 -0
  380. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/kubernetes_service.py +0 -0
  381. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/langchain_service.py +0 -0
  382. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/langfuse_service.py +0 -0
  383. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/langgraph_service.py +0 -0
  384. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/lmcache_service.py +0 -0
  385. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/lora_registry.py +0 -0
  386. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/lorax_service.py +0 -0
  387. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/mlflow_service.py +0 -0
  388. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/model_router.py +0 -0
  389. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/ollama_service.py +0 -0
  390. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/peft_import_service.py +0 -0
  391. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/phoenix_service.py +0 -0
  392. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/qdrant_service.py +0 -0
  393. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/ray_enhanced.py +0 -0
  394. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/ray_service.py +0 -0
  395. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/sglang_service.py +0 -0
  396. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/vllm_service.py +0 -0
  397. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/ml_services/wandb_enhanced.py +0 -0
  398. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/optimization/__init__.py +0 -0
  399. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/optimization/auto_optimizer.py +0 -0
  400. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/optimization/cuco_optimizer.py +0 -0
  401. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/LATITUDE_PROVIDER.md +0 -0
  402. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/__init__.py +0 -0
  403. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/alibaba_provider.py +0 -0
  404. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/aws_provider.py +0 -0
  405. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/azure_provider.py +0 -0
  406. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/base_provider.py +0 -0
  407. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/baseten_provider.py +0 -0
  408. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/coreweave_provider.py +0 -0
  409. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/crusoe_provider.py +0 -0
  410. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/demo_mode.py +0 -0
  411. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/digitalocean_provider.py +0 -0
  412. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/e2e_networks_provider.py +0 -0
  413. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/fluidstack_provider.py +0 -0
  414. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/gcp_provider.py +0 -0
  415. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/gpu_catalog.py +0 -0
  416. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/hetzner_provider.py +0 -0
  417. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/huggingface_provider.py +0 -0
  418. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/hyperstack_provider.py +0 -0
  419. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/inferx_provider.py +0 -0
  420. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/lambda_labs_provider.py +0 -0
  421. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/latitude_provider.py +0 -0
  422. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/oracle_provider.py +0 -0
  423. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/ovhcloud_provider.py +0 -0
  424. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/provider_factory.py +0 -0
  425. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/provider_profiles.py +0 -0
  426. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/real_pricing.py +0 -0
  427. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/registry.py +0 -0
  428. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/runpod_provider.py +0 -0
  429. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/siliconflow_provider.py +0 -0
  430. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/tensordock_provider.py +0 -0
  431. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/types.py +0 -0
  432. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/vastai_provider.py +0 -0
  433. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/providers/yottalabs_provider.py +0 -0
  434. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/requirements.txt +0 -0
  435. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/requirements_minimal.txt +0 -0
  436. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/main.tf +0 -0
  437. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/__init__.py +0 -0
  438. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/gpu-node-aws/bootstrap.sh +0 -0
  439. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/gpu-node-aws/main.tf +0 -0
  440. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/gpu-node-aws/outputs.tf +0 -0
  441. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/gpu-node-aws/variables.tf +0 -0
  442. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/gpu-node-aws/versions.tf +0 -0
  443. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/gpu-node-hyperstack/bootstrap.sh +0 -0
  444. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/gpu-node-hyperstack/main.tf +0 -0
  445. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/gpu-node-hyperstack/outputs.tf +0 -0
  446. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/gpu-node-hyperstack/variables.tf +0 -0
  447. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/gpu-node-hyperstack/versions.tf +0 -0
  448. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/gpu-node-lambda/bootstrap.sh +0 -0
  449. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/gpu-node-lambda/main.tf +0 -0
  450. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/gpu-node-lambda/outputs.tf +0 -0
  451. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/gpu-node-lambda/variables.tf +0 -0
  452. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/gpu-node-lambda/versions.tf +0 -0
  453. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/gpu-node-vastai/bootstrap.sh +0 -0
  454. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/gpu-node-vastai/main.tf +0 -0
  455. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/gpu-node-vastai/outputs.tf +0 -0
  456. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/gpu-node-vastai/variables.tf +0 -0
  457. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/gpu-node-vastai/versions.tf +0 -0
  458. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/k8s-control-plane/join-script.tpl +0 -0
  459. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/k8s-control-plane/kubeconfig.tpl +0 -0
  460. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/k8s-control-plane/main.tf +0 -0
  461. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/k8s-control-plane/outputs.tf +0 -0
  462. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/k8s-control-plane/variables.tf +0 -0
  463. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/k8s-control-plane/versions.tf +0 -0
  464. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/networking/main.tf +0 -0
  465. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/networking/outputs.tf +0 -0
  466. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/networking/variables.tf +0 -0
  467. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/modules/networking/versions.tf +0 -0
  468. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/outputs.tf +0 -0
  469. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/price-optimizer/optimal-allocation.py +0 -0
  470. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/providers.tf +0 -0
  471. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/terraform/variables.tf +0 -0
  472. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/test_summary.py +0 -0
  473. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/utils/__init__.py +0 -0
  474. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli/utils/formatters.py +0 -0
  475. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli.egg-info/dependency_links.txt +0 -0
  476. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli.egg-info/entry_points.txt +0 -0
  477. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli.egg-info/requires.txt +0 -0
  478. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terradev_cli.egg-info/top_level.txt +0 -0
  479. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terraform.tfvars.example +0 -0
  480. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terraform_optimization/backend.tf +0 -0
  481. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terraform_optimization/error_handling.py +0 -0
  482. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terraform_optimization/parallel_provisioning.tf +0 -0
  483. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terraform_optimization/storage_choice_matrix.py +0 -0
  484. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terraform_optimization/test_error_handler.py +0 -0
  485. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terraform_optimization/versions.tf +0 -0
  486. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terraform_transparency/audit_demo/trail_3caed73ad5bf.json +0 -0
  487. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terraform_transparency/audit_trail.py +0 -0
  488. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terraform_transparency/audit_trails.json +0 -0
  489. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terraform_transparency/decision_engine.py +0 -0
  490. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terraform_transparency/decision_logs.json +0 -0
  491. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terraform_transparency/operations.json +0 -0
  492. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terraform_transparency/terraform_manager.py +0 -0
  493. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terraform_transparency/terraform_plans.json +0 -0
  494. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terraform_transparency/transparency_demo.py +0 -0
  495. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/terraform_transparency/transparency_report.json +0 -0
  496. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/CREDENTIAL_STRATEGY.md +0 -0
  497. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/INTEGRATION_STRATEGY.md +0 -0
  498. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/Makefile +0 -0
  499. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/ci_pipeline.py +0 -0
  500. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/conftest.py +0 -0
  501. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/root_tests/test_cli_ux_battle.py +0 -0
  502. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/root_tests/test_cli_ux_battle_fixed.py +0 -0
  503. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/root_tests/test_cli_ux_final.py +0 -0
  504. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/root_tests/test_final_integration.py +0 -0
  505. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/root_tests/test_integrated_optimization.py +0 -0
  506. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/root_tests/test_p10_production_failover.py +0 -0
  507. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/root_tests/test_sso_phase1.py +0 -0
  508. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/root_tests/test_vllm_optimization.py +0 -0
  509. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/simple_test.py +0 -0
  510. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_ai_integrations.py +0 -0
  511. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_base_provider.py +0 -0
  512. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_checkpoint_manager.py +0 -0
  513. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_cli_commands.py +0 -0
  514. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_cli_utils.py +0 -0
  515. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_core_components.py +0 -0
  516. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_dag_executor.py +0 -0
  517. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_demo_mode.py +0 -0
  518. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_flashoptim.py +0 -0
  519. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_formatters.py +0 -0
  520. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_gpu_catalog.py +0 -0
  521. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_integration.py +0 -0
  522. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_job_state_manager.py +0 -0
  523. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_k8s_regression.py +0 -0
  524. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_latitude_provider.py +0 -0
  525. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_major_providers.py +0 -0
  526. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_mcp_handlers.py +0 -0
  527. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_ml_integrations.py +0 -0
  528. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_new_providers.py +0 -0
  529. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_provider_conformance.py +0 -0
  530. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_provider_factory.py +0 -0
  531. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_provider_profiles.py +0 -0
  532. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_providers.py +0 -0
  533. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_real_pricing.py +0 -0
  534. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_semantic_router.py +0 -0
  535. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_session_manager.py +0 -0
  536. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_sglang_optimization.py +0 -0
  537. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_ssh_key_manager.py +0 -0
  538. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_terradev_engine.py +0 -0
  539. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_trace_viewer.py +0 -0
  540. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_training_monitor.py +0 -0
  541. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_training_orchestrator.py +0 -0
  542. {terradev_cli-5.6.0 → terradev_cli-5.6.2}/tests/test_vllm_features.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: terradev-cli
3
- Version: 5.6.0
3
+ Version: 5.6.2
4
4
  Summary: An imperative command-line-interface for AI workload orchestration.
5
5
  Author-email: Terradev Team <team@terradev.com>
6
6
  Maintainer-email: Terradev Team <team@terradev.com>
@@ -100,7 +100,7 @@ Requires-Dist: redis>=5.0.0; extra == "enterprise"
100
100
  Requires-Dist: PyJWT>=2.8.0; extra == "enterprise"
101
101
  Dynamic: license-file
102
102
 
103
- # Terradev CLI v5.6.0
103
+ # Terradev CLI v5.6.2
104
104
 
105
105
  **An imperative command-line-interface for AI workload orchestration.**
106
106
 
@@ -118,6 +118,18 @@ Continued focus on lower cost, faster provisioning, and topology-aware execution
118
118
 
119
119
  Model agnostic. Dataset agnostic. GPU agnostic. Provider agnostic. The only thing Terradev is not agnostic about is correctness: it enforces topology, idempotency, and sequencing.
120
120
 
121
+ **NOTES ON 5.6.1**
122
+
123
+ Added **Database Connection System** and **Unified Observability & Scheduling** commands:
124
+
125
+ - **Database Connection System** (`core/database_connection.py`): SQLite and PostgreSQL support with in-memory connection storage, connection ID system, auto-table creation for 4 standard metadata tables (dataset_versions, workflow_runs, idempotency_keys, node_executions), and database operations (query, upsert, get connection).
126
+
127
+ - **Observe Command** (`terradev observe`): Unified monitoring pipeline that wires API Gateway traffic into W&B, Phoenix, and Cost Analytics with a shared trace ID across all three destinations. Commands: `terradev observe gateway`, `terradev observe status`.
128
+
129
+ - **Schedule Command** (`terradev schedule`): Spot-aware scheduling for cost-optimized job execution with pricing window awareness (not just generic cron). Commands: `terradev schedule job`, `terradev schedule list`, `terradev schedule windows`.
130
+
131
+ - **MCP Tools**: 5 new database tools for connection management and queries (create_sqlite_connection, create_postgresql_connection, query_database, upsert_database, get_database_connection).
132
+
121
133
  **NOTES ON 5.6.0**
122
134
 
123
135
  Added **API Gateway for inference serving** with OpenAI/Anthropic/custom API entry and exit points:
@@ -1,4 +1,4 @@
1
- # Terradev CLI v5.6.0
1
+ # Terradev CLI v5.6.2
2
2
 
3
3
  **An imperative command-line-interface for AI workload orchestration.**
4
4
 
@@ -16,6 +16,18 @@ Continued focus on lower cost, faster provisioning, and topology-aware execution
16
16
 
17
17
  Model agnostic. Dataset agnostic. GPU agnostic. Provider agnostic. The only thing Terradev is not agnostic about is correctness: it enforces topology, idempotency, and sequencing.
18
18
 
19
+ **NOTES ON 5.6.1**
20
+
21
+ Added **Database Connection System** and **Unified Observability & Scheduling** commands:
22
+
23
+ - **Database Connection System** (`core/database_connection.py`): SQLite and PostgreSQL support with in-memory connection storage, connection ID system, auto-table creation for 4 standard metadata tables (dataset_versions, workflow_runs, idempotency_keys, node_executions), and database operations (query, upsert, get connection).
24
+
25
+ - **Observe Command** (`terradev observe`): Unified monitoring pipeline that wires API Gateway traffic into W&B, Phoenix, and Cost Analytics with a shared trace ID across all three destinations. Commands: `terradev observe gateway`, `terradev observe status`.
26
+
27
+ - **Schedule Command** (`terradev schedule`): Spot-aware scheduling for cost-optimized job execution with pricing window awareness (not just generic cron). Commands: `terradev schedule job`, `terradev schedule list`, `terradev schedule windows`.
28
+
29
+ - **MCP Tools**: 5 new database tools for connection management and queries (create_sqlite_connection, create_postgresql_connection, query_database, upsert_database, get_database_connection).
30
+
19
31
  **NOTES ON 5.6.0**
20
32
 
21
33
  Added **API Gateway for inference serving** with OpenAI/Anthropic/custom API entry and exit points:
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "terradev-cli"
7
- version = "5.6.0"
7
+ version = "5.6.2"
8
8
  description = "An imperative command-line-interface for AI workload orchestration."
9
9
  readme = "README.md"
10
10
  license = {text = "Apache-2.0"}
@@ -4519,7 +4519,13 @@ def job(job_file, optimize):
4519
4519
  print(f"ERROR: Error loading job file: {e}")
4520
4520
 
4521
4521
 
4522
- @cli.command()
4522
+ @cli.group()
4523
+ def infer():
4524
+ """Deploy and manage inference endpoints"""
4525
+ pass
4526
+
4527
+
4528
+ @infer.command("deploy")
4523
4529
  @click.option("--model", "-m", required=True, help="Model name or path")
4524
4530
  @click.option(
4525
4531
  "--type", "-t", type=click.Choice(["llm", "embedding", "vision"]), help="Model type"
@@ -4534,7 +4540,7 @@ def job(job_file, optimize):
4534
4540
  @click.option("--region", "-r", help="Region preference")
4535
4541
  @click.option("--max-latency", type=float, help="Max latency in ms")
4536
4542
  @click.option("--max-cost", type=float, help="Max cost per request")
4537
- def infer(model, type, provider, gpu_type, region, max_latency, max_cost):
4543
+ def infer_deploy_main(model, type, provider, gpu_type, region, max_latency, max_cost):
4538
4544
  """Deploy and manage inference endpoints"""
4539
4545
  print(f"Deploying inference for model: {model}")
4540
4546
 
@@ -4688,7 +4694,7 @@ def infer(model, type, provider, gpu_type, region, max_latency, max_cost):
4688
4694
  pass
4689
4695
 
4690
4696
 
4691
- @cli.command()
4697
+ @infer.command("endpoint")
4692
4698
  @click.argument("model_path")
4693
4699
  @click.option("--name", "-n", required=True, help="Endpoint name (required)")
4694
4700
  @click.option(
@@ -4703,7 +4709,7 @@ def infer(model, type, provider, gpu_type, region, max_latency, max_cost):
4703
4709
  @click.option("--idle-timeout", type=int, default=300, help="Idle timeout in seconds")
4704
4710
  @click.option("--cost-optimize", is_flag=True, help="Enable cost optimization")
4705
4711
  @click.option("--dry-run", is_flag=True, help="Show deployment plan without deploying")
4706
- def infer_deploy(
4712
+ def infer_endpoint(
4707
4713
  model_path,
4708
4714
  name,
4709
4715
  provider,
@@ -5217,7 +5223,7 @@ def run(gpu, image, cmd, mount, port, env, max_price, providers, keep_alive, dry
5217
5223
  # ═══════════════════════════════════════════════════════════════════════════════
5218
5224
 
5219
5225
 
5220
- @cli.command("infer-status")
5226
+ @infer.command("status")
5221
5227
  @click.option(
5222
5228
  "--check", is_flag=True, help="Run live health probes before showing status"
5223
5229
  )
@@ -5288,7 +5294,7 @@ def infer_status(check):
5288
5294
  pass
5289
5295
 
5290
5296
 
5291
- @cli.command("infer-failover")
5297
+ @infer.command("failover")
5292
5298
  @click.option(
5293
5299
  "--dry-run", is_flag=True, help="Show what would happen without executing failover"
5294
5300
  )
@@ -5363,7 +5369,7 @@ def infer_failover(dry_run):
5363
5369
  print(" OK: All primary endpoints healthy no failover needed.")
5364
5370
 
5365
5371
 
5366
- @cli.command("infer-route")
5372
+ @infer.command("route")
5367
5373
  @click.option("--model", "-m", help="Filter by model name")
5368
5374
  @click.option(
5369
5375
  "--strategy",
@@ -8276,7 +8282,13 @@ def hf_space(space_name, model_id, hardware, sdk, private, template, env, secret
8276
8282
 
8277
8283
 
8278
8284
  # Model Orchestrator Commands
8279
- @cli.command()
8285
+ @cli.group()
8286
+ def orchestrator():
8287
+ """Model orchestrator for multi-model inference"""
8288
+ pass
8289
+
8290
+
8291
+ @orchestrator.command("start")
8280
8292
  @click.option("--gpu-id", default=0, help="GPU ID to use for orchestration")
8281
8293
  @click.option("--memory-gb", default=80.0, help="Total GPU memory in GB")
8282
8294
  @click.option(
@@ -8324,7 +8336,7 @@ def orchestrator_start(gpu_id, memory_gb, policy):
8324
8336
  asyncio.run(run_orchestrator())
8325
8337
 
8326
8338
 
8327
- @cli.command()
8339
+ @orchestrator.command("register")
8328
8340
  @click.argument("model-id")
8329
8341
  @click.argument("model-path")
8330
8342
  @click.option(
@@ -8361,7 +8373,7 @@ def orchestrator_register(model_id, model_path, framework, priority, tags):
8361
8373
  print(f" Tags: {', '.join(tag_set) if tag_set else 'None'}")
8362
8374
 
8363
8375
 
8364
- @cli.command()
8376
+ @orchestrator.command("load")
8365
8377
  @click.argument("model-id")
8366
8378
  @click.option("--force", is_flag=True, help="Force loading even if memory is full")
8367
8379
  def orchestrator_load(model_id, force):
@@ -8385,7 +8397,7 @@ def orchestrator_load(model_id, force):
8385
8397
  asyncio.run(load_model())
8386
8398
 
8387
8399
 
8388
- @cli.command()
8400
+ @orchestrator.command("evict")
8389
8401
  @click.argument("model-id")
8390
8402
  def orchestrator_evict(model_id):
8391
8403
  """Evict a model from GPU memory"""
@@ -8403,7 +8415,7 @@ def orchestrator_evict(model_id):
8403
8415
  asyncio.run(evict_model())
8404
8416
 
8405
8417
 
8406
- @cli.command()
8418
+ @orchestrator.command("status")
8407
8419
  @click.option("--model-id", help="Get details for specific model")
8408
8420
  def orchestrator_status(model_id):
8409
8421
  """Get orchestrator and model status"""
@@ -8447,7 +8459,7 @@ def orchestrator_status(model_id):
8447
8459
  print(f" {state}: {', '.join(model_ids)}")
8448
8460
 
8449
8461
 
8450
- @cli.command()
8462
+ @orchestrator.command("infer")
8451
8463
  @click.argument("model-id")
8452
8464
  def orchestrator_infer(model_id):
8453
8465
  """Test inference with a model"""
@@ -8466,7 +8478,13 @@ def orchestrator_infer(model_id):
8466
8478
  asyncio.run(test_inference())
8467
8479
 
8468
8480
 
8469
- @cli.command()
8481
+ @cli.group(name="warm-pool")
8482
+ def warm_pool():
8483
+ """Warm pool manager for intelligent pre-warming"""
8484
+ pass
8485
+
8486
+
8487
+ @warm_pool.command("start")
8470
8488
  @click.option(
8471
8489
  "--strategy",
8472
8490
  type=click.Choice(
@@ -8527,7 +8545,7 @@ def warm_pool_start(strategy, max_warm, min_warm):
8527
8545
  asyncio.run(run_warm_pool())
8528
8546
 
8529
8547
 
8530
- @cli.command()
8548
+ @warm_pool.command("register")
8531
8549
  @click.argument("model-id")
8532
8550
  @click.option("--priority", default=0, help="Model priority for warming")
8533
8551
  def warm_pool_register(model_id, priority):
@@ -8541,7 +8559,7 @@ def warm_pool_register(model_id, priority):
8541
8559
  print(f" Priority: {priority}")
8542
8560
 
8543
8561
 
8544
- @cli.command()
8562
+ @warm_pool.command("status")
8545
8563
  def warm_pool_status():
8546
8564
  """Get warm pool manager status"""
8547
8565
  from terradev_cli.core.warm_pool_manager import WarmPoolManager, WarmPoolConfig
@@ -8563,7 +8581,13 @@ def warm_pool_status():
8563
8581
  print(f" Cost saved: ${status['cost_saved_usd']:.2f}")
8564
8582
 
8565
8583
 
8566
- @cli.command()
8584
+ @cli.group()
8585
+ def cost_scaler():
8586
+ """Cost-aware scaling manager for inference optimization"""
8587
+ pass
8588
+
8589
+
8590
+ @cost_scaler.command("start")
8567
8591
  @click.option(
8568
8592
  "--strategy",
8569
8593
  type=click.Choice(
@@ -8623,7 +8647,7 @@ def cost_scaler_start(strategy, budget, cost_per_gb):
8623
8647
  asyncio.run(run_cost_scaler())
8624
8648
 
8625
8649
 
8626
- @cli.command()
8650
+ @cost_scaler.command("status")
8627
8651
  def cost_scaler_status():
8628
8652
  """Get cost scaler status and recommendations"""
8629
8653
  from terradev_cli.core.cost_scaler import CostScaler, CostConfig
@@ -8655,7 +8679,7 @@ def cost_scaler_status():
8655
8679
  print(f" Potential savings: {rec['potential_savings']}")
8656
8680
 
8657
8681
 
8658
- @cli.command()
8682
+ @cost_scaler.command("model-details")
8659
8683
  @click.argument("model-id")
8660
8684
  def cost_scaler_model_details(model_id):
8661
8685
  """Get cost details for a specific model"""
@@ -9499,7 +9523,13 @@ def preflight(nodes, ssh_user, ssh_key, provision_group, quick, fmt):
9499
9523
  print()
9500
9524
 
9501
9525
 
9502
- @cli.command()
9526
+ @cli.group()
9527
+ def train():
9528
+ """Launch distributed training jobs across provisioned GPU nodes"""
9529
+ pass
9530
+
9531
+
9532
+ @train.command("start")
9503
9533
  @click.option(
9504
9534
  "--config",
9505
9535
  "-c",
@@ -9557,7 +9587,7 @@ def preflight(nodes, ssh_user, ssh_key, provision_group, quick, fmt):
9557
9587
  help="Output format: text (default) or json",
9558
9588
  )
9559
9589
  @click.argument("script_args", nargs=-1, type=click.UNPROCESSED)
9560
- def train(
9590
+ def train_start(
9561
9591
  config_path,
9562
9592
  script,
9563
9593
  framework,
@@ -9880,7 +9910,7 @@ def checkpoint(action, job_id, step, checkpoint_id, dest, fmt):
9880
9910
  print(f"Deleted: {checkpoint_id}")
9881
9911
 
9882
9912
 
9883
- @cli.command("train-status")
9913
+ @train.command("status")
9884
9914
  @click.option("--job-id", "-j", default="", help="Job ID (empty = all running)")
9885
9915
  @click.option(
9886
9916
  "--format", "-f", "fmt", type=click.Choice(["json", "text"]), default="text"
@@ -9954,7 +9984,7 @@ def train_status(job_id, fmt):
9954
9984
  print(f"\nTotal cost across all jobs: ${total:.2f}\n")
9955
9985
 
9956
9986
 
9957
- @cli.command("train-stop")
9987
+ @train.command("stop")
9958
9988
  @click.option("--job-id", "-j", required=True, help="Job ID to stop")
9959
9989
  @click.option(
9960
9990
  "--format", "-f", "fmt", type=click.Choice(["json", "text"]), default="text"
@@ -9978,7 +10008,7 @@ def train_stop(job_id, fmt):
9978
10008
  print(f"Job {job_id}: {result.get('status', 'unknown')}")
9979
10009
 
9980
10010
 
9981
- @cli.command("train-resume")
10011
+ @train.command("resume")
9982
10012
  @click.option("--job-id", "-j", required=True, help="Job ID to resume")
9983
10013
  @click.option(
9984
10014
  "--checkpoint-id", default="", help="Checkpoint to resume from (default: latest)"
@@ -16017,6 +16047,168 @@ def gateway(host, port, openai, no_openai, anthropic, no_anthropic, custom, no_c
16017
16047
  sys.exit(1)
16018
16048
 
16019
16049
 
16050
+ # Observe Command - Unified Monitoring Pipeline
16051
+ @cli.group()
16052
+ def observe():
16053
+ """Unified observability pipeline - W&B, Phoenix, Cost Analytics with shared trace ID"""
16054
+ pass
16055
+
16056
+
16057
+ @observe.command("gateway")
16058
+ @click.argument("gateway_endpoint")
16059
+ @click.option("--wandb-project", help="W&B project name")
16060
+ @click.option("--wandb-entity", help="W&B entity/team")
16061
+ @click.option("--phoenix-endpoint", help="Phoenix endpoint URL")
16062
+ @click.option("--enable-cost-analytics/--disable-cost-analytics", default=True, help="Enable cost analytics tracking")
16063
+ @click.option("--duration", default=3600, help="Observation duration in seconds")
16064
+ @click.option("--sample-rate", default=1.0, help="Sampling rate (0.0-1.0)")
16065
+ def observe_gateway(
16066
+ gateway_endpoint,
16067
+ wandb_project,
16068
+ wandb_entity,
16069
+ phoenix_endpoint,
16070
+ enable_cost_analytics,
16071
+ duration,
16072
+ sample_rate
16073
+ ):
16074
+ """Observe API Gateway traffic across W&B, Phoenix, and Cost Analytics"""
16075
+ import asyncio
16076
+
16077
+ async def run_observe():
16078
+ from terradev_cli.core.observe import observe_gateway_traffic
16079
+
16080
+ result = await observe_gateway_traffic(
16081
+ gateway_endpoint=gateway_endpoint,
16082
+ wandb_project=wandb_project,
16083
+ wandb_entity=wandb_entity,
16084
+ phoenix_endpoint=phoenix_endpoint,
16085
+ enable_cost_analytics=enable_cost_analytics,
16086
+ duration_seconds=duration,
16087
+ sample_rate=sample_rate
16088
+ )
16089
+
16090
+ print(f"\n📊 Observability Summary:")
16091
+ print(f" Trace ID: {result['trace_id']}")
16092
+ print(f" Active Destinations: {', '.join(result['active_destinations'])}")
16093
+ print(f" Start Time: {result['start_time']}")
16094
+
16095
+ return result
16096
+
16097
+ try:
16098
+ result = asyncio.run(run_observe())
16099
+ return 0 if result else 1
16100
+ except Exception as e: # noqa: BLE001
16101
+ print(f"ERROR: Observability pipeline failed: {e}")
16102
+ return 1
16103
+
16104
+
16105
+ @observe.command("status")
16106
+ @click.argument("trace_id")
16107
+ def observe_status(trace_id):
16108
+ """Get status of an observability trace"""
16109
+ import asyncio
16110
+
16111
+ async def run_status():
16112
+ from terradev_cli.core.observe import observe_status
16113
+
16114
+ result = await observe_status(trace_id)
16115
+
16116
+ print(f"\n📊 Trace Status: {trace_id}")
16117
+ print(f" Overall Status: {result['status']}")
16118
+
16119
+ for dest, info in result.items():
16120
+ if dest != "trace_id" and dest != "status":
16121
+ print(f" {dest.upper()}: {info}")
16122
+
16123
+ return result
16124
+
16125
+ try:
16126
+ result = asyncio.run(run_status())
16127
+ return 0 if result else 1
16128
+ except Exception as e: # noqa: BLE001
16129
+ print(f"ERROR: Failed to get trace status: {e}")
16130
+ return 1
16131
+
16132
+
16133
+ # Schedule Command - Spot-Aware Scheduling
16134
+ @cli.group()
16135
+ def schedule():
16136
+ """Spot-aware scheduling for cost-optimized job execution"""
16137
+ pass
16138
+
16139
+
16140
+ @schedule.command("job")
16141
+ @click.argument("command")
16142
+ @click.argument("gpu_type")
16143
+ @click.option("--cron", help="Cron expression for recurring jobs")
16144
+ @click.option("--max-wait-hours", default=24, help="Maximum hours to wait for optimal pricing")
16145
+ @click.option("--job-name", help="Custom job name")
16146
+ @click.option("--prefer-current/--no-prefer-current", default=True, help="Prefer currently active pricing window")
16147
+ def schedule_job(command, gpu_type, cron, max_wait_hours, job_name, prefer_current):
16148
+ """Schedule a job with spot pricing awareness"""
16149
+ import asyncio
16150
+
16151
+ async def run_schedule():
16152
+ from terradev_cli.core.schedule import schedule_spot_job
16153
+
16154
+ result = await schedule_spot_job(
16155
+ command=command,
16156
+ gpu_type=gpu_type,
16157
+ cron_expression=cron,
16158
+ max_wait_hours=max_wait_hours,
16159
+ job_name=job_name,
16160
+ prefer_current_window=prefer_current
16161
+ )
16162
+
16163
+ return result
16164
+
16165
+ try:
16166
+ result = asyncio.run(run_schedule())
16167
+ return 0 if result.get("status") == "success" else 1
16168
+ except Exception as e: # noqa: BLE001
16169
+ print(f"ERROR: Failed to schedule job: {e}")
16170
+ return 1
16171
+
16172
+
16173
+ @schedule.command("list")
16174
+ def schedule_list_cmd():
16175
+ """List all scheduled jobs"""
16176
+ import asyncio
16177
+
16178
+ async def run_list():
16179
+ from terradev_cli.core.schedule import schedule_list
16180
+
16181
+ result = await schedule_list()
16182
+ return result
16183
+
16184
+ try:
16185
+ result = asyncio.run(run_list())
16186
+ return 0
16187
+ except Exception as e: # noqa: BLE001
16188
+ print(f"ERROR: Failed to list jobs: {e}")
16189
+ return 1
16190
+
16191
+
16192
+ @schedule.command("windows")
16193
+ @click.option("--gpu-type", help="Filter by GPU type")
16194
+ def schedule_windows(gpu_type):
16195
+ """Show available spot pricing windows"""
16196
+ import asyncio
16197
+
16198
+ async def run_windows():
16199
+ from terradev_cli.core.schedule import schedule_pricing_windows
16200
+
16201
+ result = await schedule_pricing_windows(gpu_type)
16202
+ return result
16203
+
16204
+ try:
16205
+ result = asyncio.run(run_windows())
16206
+ return 0
16207
+ except Exception as e: # noqa: BLE001
16208
+ print(f"ERROR: Failed to get pricing windows: {e}")
16209
+ return 1
16210
+
16211
+
16020
16212
  if __name__ == "__main__":
16021
16213
  cli()
16022
16214