terradev-cli 5.3.2__tar.gz → 5.3.4__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 (487) hide show
  1. terradev_cli-5.3.4/.terradev/custom_providers.example.yaml +39 -0
  2. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/Dockerfile +1 -1
  3. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/PKG-INFO +17 -119
  4. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/README.md +16 -118
  5. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/pyproject.toml +1 -1
  6. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/README.md +22 -110
  7. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/__init__.py +1 -1
  8. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/cli.py +374 -57
  9. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/checkpoint_manager.py +2 -1
  10. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/preflight_validator.py +2 -1
  11. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/terradev_engine.py +3 -0
  12. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/training_monitor.py +2 -1
  13. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/training_orchestrator.py +2 -1
  14. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/mcp/server.py +18 -6
  15. terradev_cli-5.3.4/terradev_cli/providers/__init__.py +74 -0
  16. terradev_cli-5.3.4/terradev_cli/providers/base_provider.py +526 -0
  17. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/e2e_networks_provider.py +4 -4
  18. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/fluidstack_provider.py +2 -2
  19. terradev_cli-5.3.4/terradev_cli/providers/gpu_catalog.py +643 -0
  20. terradev_cli-5.3.4/terradev_cli/providers/provider_profiles.py +541 -0
  21. terradev_cli-5.3.4/terradev_cli/providers/registry.py +273 -0
  22. terradev_cli-5.3.4/terradev_cli/providers/types.py +258 -0
  23. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/yottalabs_provider.py +5 -5
  24. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli.egg-info/PKG-INFO +17 -119
  25. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli.egg-info/SOURCES.txt +5 -1
  26. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/test_provider_conformance.py +25 -26
  27. terradev_cli-5.3.2/requirements.txt +0 -56
  28. terradev_cli-5.3.2/terradev_cli/providers/__init__.py +0 -51
  29. terradev_cli-5.3.2/terradev_cli/providers/base_provider.py +0 -241
  30. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/.env.example +0 -0
  31. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/.github/workflows/action.yml +0 -0
  32. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/.github/workflows/ci.yml +0 -0
  33. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/.github/workflows/release.yml +0 -0
  34. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/.github/workflows/static.yml +0 -0
  35. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/Deployment Package/BNF_GRAMMAR.md +0 -0
  36. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/Deployment Package/LIFECYCLES.md +0 -0
  37. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/Deployment Package/architecture.md +0 -0
  38. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/Deployment Package/overview.md +0 -0
  39. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/Deployment Package/security.md +0 -0
  40. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/Deployment Package/troubleshooting.md +0 -0
  41. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/Dockerfile.test +0 -0
  42. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/LICENSE +0 -0
  43. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/MANIFEST.in +0 -0
  44. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/agentic-template/helm/values-agentic.yaml +0 -0
  45. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/agentic-template/k8s/fleet-manifests.yaml +0 -0
  46. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/glm-5/README.md +0 -0
  47. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/glm-5/helm/values-glm5.yaml +0 -0
  48. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/glm-5/k8s/hpa.yaml +0 -0
  49. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/glm-5/k8s/model-cache-pvc.yaml +0 -0
  50. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/glm-5/k8s/namespace.yaml +0 -0
  51. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/glm-5/k8s/pdb.yaml +0 -0
  52. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/glm-5/k8s/service.yaml +0 -0
  53. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/glm-5/k8s/sglang-deployment.yaml +0 -0
  54. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/glm-5/k8s/vllm-deployment.yaml +0 -0
  55. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/glm-5/task.yaml +0 -0
  56. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/glm-5/terraform/main.tf +0 -0
  57. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/glm-5/terraform/outputs.tf +0 -0
  58. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/glm-5/terraform/variables.tf +0 -0
  59. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/llmd-template/README.md +0 -0
  60. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/llmd-template/helm/values-llmd.yaml +0 -0
  61. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/llmd-template/k8s/gateway.yaml +0 -0
  62. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/llmd-template/k8s/leaderworkerset.yaml +0 -0
  63. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/llmd-template/k8s/llminferenceservice.yaml +0 -0
  64. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/llmd-template/task.yaml +0 -0
  65. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/moe-template/README.md +0 -0
  66. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/moe-template/helm/values-moe.yaml +0 -0
  67. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/moe-template/k8s/deployment.yaml +0 -0
  68. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/moe-template/k8s/hpa.yaml +0 -0
  69. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/moe-template/k8s/model-cache-pvc.yaml +0 -0
  70. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/moe-template/k8s/namespace.yaml +0 -0
  71. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/moe-template/k8s/pdb.yaml +0 -0
  72. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/moe-template/k8s/service.yaml +0 -0
  73. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/moe-template/task.yaml +0 -0
  74. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/moe-template/terraform/main.tf +0 -0
  75. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/moe-template/terraform/outputs.tf +0 -0
  76. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/moe-template/terraform/variables.tf +0 -0
  77. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/rag-template/README.md +0 -0
  78. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/rag-template/helm/values-rag.yaml +0 -0
  79. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/rag-template/k8s/deployment.yaml +0 -0
  80. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/clusters/rag-template/terraform/main.tf +0 -0
  81. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/demo/RECORDING_GUIDE.md +0 -0
  82. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/demo/generate_gif.py +0 -0
  83. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/demo/terradev-demo.gif +0 -0
  84. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/docs/ADVANCED_FINANCIAL_INNOVATIONS.md +0 -0
  85. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/docs/API_DOCUMENTATION.md +0 -0
  86. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/docs/BingSiteAuth.xml +0 -0
  87. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/docs/FINOPS_ATTRIBUTION_SYSTEM.md +0 -0
  88. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/docs/USER_GUIDE.md +0 -0
  89. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/docs/VLLM_AUTO_OPTIMIZATION_GUIDE.md +0 -0
  90. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/docs/VLLM_OPTIMIZATION_GUIDE.md +0 -0
  91. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/docs/architecture.md +0 -0
  92. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/docs/index.html +0 -0
  93. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/docs/overview.md +0 -0
  94. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/docs/robots.txt +0 -0
  95. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/docs/sitemap.xml +0 -0
  96. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/docs/test_spot_provision.md +0 -0
  97. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/examples/aws_ssm_starter.py +0 -0
  98. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/examples/config.example.json +0 -0
  99. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/examples/demo_k8s_config.yaml +0 -0
  100. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/examples/direct_aws_starter.py +0 -0
  101. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/examples/ec2_user_data_starter.py +0 -0
  102. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/examples/example-pipeline.yaml +0 -0
  103. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/examples/kubernetes_training_deployment.yaml +0 -0
  104. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/examples/simple_ssm_starter.py +0 -0
  105. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/examples/ssh_server_starter.py +0 -0
  106. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/examples/start_aws_servers.py +0 -0
  107. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/helm/terradev/Chart.yaml +0 -0
  108. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/helm/terradev/templates/_helpers.tpl +0 -0
  109. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/helm/terradev/templates/deployment.yaml +0 -0
  110. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/helm/terradev/values.yaml +0 -0
  111. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/infrastructure/bucket-policy.json +0 -0
  112. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/infrastructure/grafana_training_dashboard.json +0 -0
  113. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/infrastructure/kubernetes/microservices.yaml +0 -0
  114. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/infrastructure/terraform/main.tf +0 -0
  115. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/infrastructure/terraform/parallelism.tf +0 -0
  116. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/integrations/cli-tool.tf +0 -0
  117. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/integrations/cloud-management-widgets.tf +0 -0
  118. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/integrations/cloud-provider-apis.py +0 -0
  119. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/integrations/critical-widgets.tf +0 -0
  120. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/integrations/devops-cicd-widgets.tf +0 -0
  121. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/integrations/devops-essential-tools.tf +0 -0
  122. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/integrations/docker-integration.tf +0 -0
  123. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/integrations/kubernetes-operator.tf +0 -0
  124. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/integrations/mlflow-integration.tf +0 -0
  125. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/modules/datadog/README.md +0 -0
  126. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/modules/datadog/dashboard.tf +0 -0
  127. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/modules/datadog/monitors.tf +0 -0
  128. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/modules/datadog/outputs.tf +0 -0
  129. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/modules/datadog/provider.tf +0 -0
  130. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/modules/datadog/variables.tf +0 -0
  131. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/modules/datadog/versions.tf +0 -0
  132. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/modules/prometheus_training_config.yml +0 -0
  133. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/Cargo.toml +0 -0
  134. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/INTEGRATION_GUIDE.md +0 -0
  135. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/PERFORMANCE_OPTIMIZATIONS.md +0 -0
  136. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/README.md +0 -0
  137. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-artifact-verification/Cargo.toml +0 -0
  138. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-artifact-verification/src/lib.rs +0 -0
  139. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-artifact-verification/src/types.rs +0 -0
  140. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-artifact-verification/src/verifier.rs +0 -0
  141. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-authentication/Cargo.toml +0 -0
  142. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-authentication/src/encoding.rs +0 -0
  143. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-authentication/src/hmac.rs +0 -0
  144. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-authentication/src/lib.rs +0 -0
  145. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-authentication/src/types.rs +0 -0
  146. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-cache-eviction/Cargo.toml +0 -0
  147. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-cache-eviction/src/cache.rs +0 -0
  148. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-cache-eviction/src/lib.rs +0 -0
  149. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-cache-eviction/src/types.rs +0 -0
  150. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-command-executor/Cargo.toml +0 -0
  151. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-command-executor/src/lib.rs +0 -0
  152. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-config-validator/Cargo.toml +0 -0
  153. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-config-validator/src/lib.rs +0 -0
  154. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-config-validator/src/types.rs +0 -0
  155. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-config-validator/src/validator.rs +0 -0
  156. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-connection-pool/Cargo.toml +0 -0
  157. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-connection-pool/src/lib.rs +0 -0
  158. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-connection-pool/src/pool.rs +0 -0
  159. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-connection-pool/src/types.rs +0 -0
  160. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-cost-calculator/Cargo.toml +0 -0
  161. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-cost-calculator/src/calculator.rs +0 -0
  162. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-cost-calculator/src/lib.rs +0 -0
  163. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-cost-calculator/src/types.rs +0 -0
  164. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-cost-scaler/Cargo.toml +0 -0
  165. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-cost-scaler/src/lib.rs +0 -0
  166. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-credential-vault/Cargo.toml +0 -0
  167. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-credential-vault/src/lib.rs +0 -0
  168. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-credential-vault/src/types.rs +0 -0
  169. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-credential-vault/src/vault.rs +0 -0
  170. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-dag-executor/Cargo.toml +0 -0
  171. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-dag-executor/src/lib.rs +0 -0
  172. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-distributed-lock/Cargo.toml +0 -0
  173. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-distributed-lock/src/lib.rs +0 -0
  174. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-distributed-lock/src/lock.rs +0 -0
  175. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-distributed-lock/src/types.rs +0 -0
  176. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-egress-optimizer/Cargo.toml +0 -0
  177. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-egress-optimizer/src/graph.rs +0 -0
  178. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-egress-optimizer/src/lib.rs +0 -0
  179. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-egress-optimizer/src/types.rs +0 -0
  180. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-event-bus/Cargo.toml +0 -0
  181. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-event-bus/src/bus.rs +0 -0
  182. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-event-bus/src/lib.rs +0 -0
  183. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-event-bus/src/types.rs +0 -0
  184. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-governance/Cargo.toml +0 -0
  185. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-governance/src/lib.rs +0 -0
  186. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-gpu-discovery/Cargo.toml +0 -0
  187. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-gpu-discovery/src/lib.rs +0 -0
  188. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-gpu-topology/Cargo.toml +0 -0
  189. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-gpu-topology/src/lib.rs +0 -0
  190. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-gpu-topology/src/topology.rs +0 -0
  191. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-gpu-topology/src/types.rs +0 -0
  192. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-helm-generator/Cargo.toml +0 -0
  193. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-helm-generator/src/lib.rs +0 -0
  194. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-mcp-codec/Cargo.toml +0 -0
  195. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-mcp-codec/src/lib.rs +0 -0
  196. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-mcp-optimizer/Cargo.toml +0 -0
  197. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-mcp-optimizer/src/lib.rs +0 -0
  198. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-price-intelligence/Cargo.toml +0 -0
  199. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-price-intelligence/src/lib.rs +0 -0
  200. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-quota-manager/Cargo.toml +0 -0
  201. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-quota-manager/src/lib.rs +0 -0
  202. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-quota-manager/src/manager.rs +0 -0
  203. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-quota-manager/src/types.rs +0 -0
  204. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-resource-pool/Cargo.toml +0 -0
  205. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-resource-pool/src/lib.rs +0 -0
  206. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-resource-pool/src/pool.rs +0 -0
  207. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-resource-pool/src/types.rs +0 -0
  208. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-result-compressor/Cargo.toml +0 -0
  209. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-result-compressor/src/lib.rs +0 -0
  210. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-semantic-router/Cargo.toml +0 -0
  211. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-semantic-router/src/lib.rs +0 -0
  212. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-snapshot-manager/Cargo.toml +0 -0
  213. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-snapshot-manager/src/lib.rs +0 -0
  214. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-snapshot-manager/src/snapshot.rs +0 -0
  215. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-snapshot-manager/src/types.rs +0 -0
  216. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-state-machine/Cargo.toml +0 -0
  217. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-state-machine/src/lib.rs +0 -0
  218. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-state-machine/src/state.rs +0 -0
  219. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-state-machine/src/types.rs +0 -0
  220. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-telemetry/Cargo.toml +0 -0
  221. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-telemetry/src/lib.rs +0 -0
  222. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-telemetry/src/pipeline.rs +0 -0
  223. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-telemetry/src/types.rs +0 -0
  224. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-tool-registry/Cargo.toml +0 -0
  225. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-tool-registry/src/lib.rs +0 -0
  226. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-vram-estimator/Cargo.toml +0 -0
  227. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-vram-estimator/src/estimator.rs +0 -0
  228. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-vram-estimator/src/lib.rs +0 -0
  229. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-vram-estimator/src/types.rs +0 -0
  230. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-warm-pool/Cargo.toml +0 -0
  231. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/rust/terradev-warm-pool/src/lib.rs +0 -0
  232. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/scripts/action.py +0 -0
  233. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/scripts/gpu-check.sh +0 -0
  234. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/setup/Lambda Cloud API spec 1.8.3.json +0 -0
  235. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/setup/docker-compose.yml +0 -0
  236. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/setup/nginx.conf +0 -0
  237. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/setup/setup.sh +0 -0
  238. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/setup.cfg +0 -0
  239. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/CHANGELOG.md +0 -0
  240. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/COMPLETE_COMMAND_REFERENCE.md +0 -0
  241. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/COMPLETE_INTEGRATION_GUIDE.md +0 -0
  242. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/IMPLEMENTATION_SUMMARY.md +0 -0
  243. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/MAKING_SPOT_WORK_FOR_STATEFUL_WORKLOADS.md +0 -0
  244. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/SGLANG_COMMAND_GUIDE.md +0 -0
  245. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/TERRADEV_STACK_CHART.md +0 -0
  246. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/__main__.py +0 -0
  247. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/cli_hf_spaces.py +0 -0
  248. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/cli_karpenter.py +0 -0
  249. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/__init__.py +0 -0
  250. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/agentic_provisioner.py +0 -0
  251. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/agentic_topology.py +0 -0
  252. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/async_config.py +0 -0
  253. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/auth.py +0 -0
  254. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/auto_lineage.py +0 -0
  255. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/cache_manager.py +0 -0
  256. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/command_executor.py +0 -0
  257. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/config.py +0 -0
  258. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/config_validator.py +0 -0
  259. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/cost_scaler.py +0 -0
  260. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/cost_tracker.py +0 -0
  261. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/credential_vault.py +0 -0
  262. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/cuda_graph_integrator.py +0 -0
  263. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/dag_executor.py +0 -0
  264. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/data_governance.py +0 -0
  265. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/dataset_stager.py +0 -0
  266. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/deployment_router.py +0 -0
  267. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/distributed_lock.py +0 -0
  268. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/drift_detector.py +0 -0
  269. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/egress_cost_monitor.py +0 -0
  270. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/egress_optimizer.py +0 -0
  271. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/evaluation_orchestrator.py +0 -0
  272. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/event_system.py +0 -0
  273. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/gitops_manager.py +0 -0
  274. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/gpu_discovery.py +0 -0
  275. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/gpu_topology.py +0 -0
  276. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/helm_generator.py +0 -0
  277. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/hf_cli_integration.py +0 -0
  278. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/hf_smart_templates.py +0 -0
  279. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/hf_spaces.py +0 -0
  280. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/inference_router.py +0 -0
  281. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/inference_spot_manager.py +0 -0
  282. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/job_state_manager.py +0 -0
  283. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/kv_cache_checkpoint_manager.py +0 -0
  284. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/kv_cache_checkpoint_tests.py +0 -0
  285. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/kv_sharing.py +0 -0
  286. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/manifest_cache.py +0 -0
  287. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/manifest_example.json +0 -0
  288. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/mig_manager.py +0 -0
  289. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/migration_orchestrator.py +0 -0
  290. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/mla_vram_estimator.py +0 -0
  291. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/mla_vram_tests.py +0 -0
  292. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/model_orchestrator.py +0 -0
  293. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/oidc_provider.py +0 -0
  294. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/optimization_config.py +0 -0
  295. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/parallel_provisioner.py +0 -0
  296. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/pd_transport.py +0 -0
  297. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/pipeline_schema.py +0 -0
  298. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/price_discovery.py +0 -0
  299. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/price_intelligence.py +0 -0
  300. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/public_ip_billing_tracker.py +0 -0
  301. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/quick_start.py +0 -0
  302. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/quota_manager.py +0 -0
  303. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/rate_limiter.py +0 -0
  304. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/rust_telemetry.py +0 -0
  305. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/semantic_router.py +0 -0
  306. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/semantic_signals/__init__.py +0 -0
  307. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/semantic_signals/base_signal.py +0 -0
  308. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/semantic_signals/complexity_signal.py +0 -0
  309. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/semantic_signals/domain_signal.py +0 -0
  310. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/semantic_signals/keyword_signal.py +0 -0
  311. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/semantic_signals/language_signal.py +0 -0
  312. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/semantic_signals/modality_signal.py +0 -0
  313. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/semantic_signals/orchestrator.py +0 -0
  314. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/semantic_signals/routing_policy.yaml +0 -0
  315. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/semantic_signals/safety_signal.py +0 -0
  316. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/session_manager.py +0 -0
  317. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/ssh_key_manager.py +0 -0
  318. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/telemetry.py +0 -0
  319. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/trace_viewer.py +0 -0
  320. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/user_manager.py +0 -0
  321. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/warm_pool_manager.py +0 -0
  322. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/weight_streaming_benchmarks.py +0 -0
  323. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/core/weight_streaming_manager.py +0 -0
  324. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/cost_optimizer.py +0 -0
  325. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/credential_prompt.py +0 -0
  326. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/demo.py +0 -0
  327. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/entry_point.py +0 -0
  328. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/integrations/Terradev LOGO BLACK.png +0 -0
  329. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/integrations/Terradev LOGO WHITEW.png +0 -0
  330. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/integrations/__init__.py +0 -0
  331. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/integrations/databricks_integration.py +0 -0
  332. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/integrations/datadog_integration.py +0 -0
  333. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/integrations/helicone_integration.py +0 -0
  334. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/integrations/prometheus_integration.py +0 -0
  335. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/integrations/wandb_integration.py +0 -0
  336. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/k8s/terraform_wrapper.py +0 -0
  337. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/kubernetes/inferx-cost-optimized.yaml +0 -0
  338. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/kubernetes/inferx-infrastructure.yaml +0 -0
  339. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/kubernetes/inferx-models.yaml +0 -0
  340. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/kubernetes/inferx-platform.yaml +0 -0
  341. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/kubernetes/inferx_setup.py +0 -0
  342. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/mcp/__init__.py +0 -0
  343. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/ml_services/__init__.py +0 -0
  344. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/ml_services/agentic_serving.py +0 -0
  345. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/ml_services/drift_retrain_service.py +0 -0
  346. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/ml_services/dvc_service.py +0 -0
  347. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/ml_services/guardrails_service.py +0 -0
  348. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/ml_services/huggingface_service.py +0 -0
  349. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/ml_services/kserve_service.py +0 -0
  350. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/ml_services/kubernetes_enhanced.py +0 -0
  351. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/ml_services/kubernetes_service.py +0 -0
  352. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/ml_services/langchain_service.py +0 -0
  353. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/ml_services/langfuse_service.py +0 -0
  354. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/ml_services/langgraph_service.py +0 -0
  355. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/ml_services/lmcache_service.py +0 -0
  356. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/ml_services/mlflow_service.py +0 -0
  357. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/ml_services/model_router.py +0 -0
  358. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/ml_services/ollama_service.py +0 -0
  359. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/ml_services/phoenix_service.py +0 -0
  360. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/ml_services/qdrant_service.py +0 -0
  361. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/ml_services/ray_enhanced.py +0 -0
  362. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/ml_services/ray_service.py +0 -0
  363. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/ml_services/sglang_service.py +0 -0
  364. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/ml_services/vllm_service.py +0 -0
  365. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/ml_services/wandb_enhanced.py +0 -0
  366. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/optimization/__init__.py +0 -0
  367. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/optimization/auto_optimizer.py +0 -0
  368. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/optimization/cuco_optimizer.py +0 -0
  369. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/LATITUDE_PROVIDER.md +0 -0
  370. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/alibaba_provider.py +0 -0
  371. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/aws_provider.py +0 -0
  372. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/azure_provider.py +0 -0
  373. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/baseten_provider.py +0 -0
  374. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/coreweave_provider.py +0 -0
  375. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/crusoe_provider.py +0 -0
  376. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/demo_mode.py +0 -0
  377. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/digitalocean_provider.py +0 -0
  378. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/gcp_provider.py +0 -0
  379. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/hetzner_provider.py +0 -0
  380. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/huggingface_provider.py +0 -0
  381. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/hyperstack_provider.py +0 -0
  382. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/inferx_provider.py +0 -0
  383. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/lambda_labs_provider.py +0 -0
  384. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/latitude_provider.py +0 -0
  385. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/oracle_provider.py +0 -0
  386. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/ovhcloud_provider.py +0 -0
  387. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/provider_factory.py +0 -0
  388. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/real_pricing.py +0 -0
  389. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/runpod_provider.py +0 -0
  390. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/siliconflow_provider.py +0 -0
  391. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/tensordock_provider.py +0 -0
  392. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/providers/vastai_provider.py +0 -0
  393. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/requirements.txt +0 -0
  394. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/requirements_minimal.txt +0 -0
  395. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/main.tf +0 -0
  396. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/__init__.py +0 -0
  397. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/gpu-node-aws/bootstrap.sh +0 -0
  398. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/gpu-node-aws/main.tf +0 -0
  399. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/gpu-node-aws/outputs.tf +0 -0
  400. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/gpu-node-aws/variables.tf +0 -0
  401. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/gpu-node-aws/versions.tf +0 -0
  402. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/gpu-node-hyperstack/bootstrap.sh +0 -0
  403. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/gpu-node-hyperstack/main.tf +0 -0
  404. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/gpu-node-hyperstack/outputs.tf +0 -0
  405. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/gpu-node-hyperstack/variables.tf +0 -0
  406. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/gpu-node-hyperstack/versions.tf +0 -0
  407. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/gpu-node-lambda/bootstrap.sh +0 -0
  408. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/gpu-node-lambda/main.tf +0 -0
  409. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/gpu-node-lambda/outputs.tf +0 -0
  410. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/gpu-node-lambda/variables.tf +0 -0
  411. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/gpu-node-lambda/versions.tf +0 -0
  412. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/gpu-node-vastai/bootstrap.sh +0 -0
  413. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/gpu-node-vastai/main.tf +0 -0
  414. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/gpu-node-vastai/outputs.tf +0 -0
  415. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/gpu-node-vastai/variables.tf +0 -0
  416. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/gpu-node-vastai/versions.tf +0 -0
  417. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/k8s-control-plane/join-script.tpl +0 -0
  418. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/k8s-control-plane/kubeconfig.tpl +0 -0
  419. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/k8s-control-plane/main.tf +0 -0
  420. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/k8s-control-plane/outputs.tf +0 -0
  421. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/k8s-control-plane/variables.tf +0 -0
  422. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/k8s-control-plane/versions.tf +0 -0
  423. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/networking/main.tf +0 -0
  424. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/networking/outputs.tf +0 -0
  425. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/networking/variables.tf +0 -0
  426. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/modules/networking/versions.tf +0 -0
  427. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/outputs.tf +0 -0
  428. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/price-optimizer/optimal-allocation.py +0 -0
  429. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/providers.tf +0 -0
  430. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/terraform/variables.tf +0 -0
  431. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/test_summary.py +0 -0
  432. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/utils/__init__.py +0 -0
  433. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli/utils/formatters.py +0 -0
  434. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli.egg-info/dependency_links.txt +0 -0
  435. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli.egg-info/entry_points.txt +0 -0
  436. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli.egg-info/requires.txt +0 -0
  437. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terradev_cli.egg-info/top_level.txt +0 -0
  438. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terraform.tfvars.example +0 -0
  439. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terraform_optimization/backend.tf +0 -0
  440. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terraform_optimization/error_handling.py +0 -0
  441. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terraform_optimization/parallel_provisioning.tf +0 -0
  442. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terraform_optimization/storage_choice_matrix.py +0 -0
  443. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terraform_optimization/test_error_handler.py +0 -0
  444. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terraform_optimization/versions.tf +0 -0
  445. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terraform_transparency/audit_demo/trail_3caed73ad5bf.json +0 -0
  446. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terraform_transparency/audit_trail.py +0 -0
  447. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terraform_transparency/audit_trails.json +0 -0
  448. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terraform_transparency/decision_engine.py +0 -0
  449. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terraform_transparency/decision_logs.json +0 -0
  450. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terraform_transparency/operations.json +0 -0
  451. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terraform_transparency/terraform_manager.py +0 -0
  452. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terraform_transparency/terraform_plans.json +0 -0
  453. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terraform_transparency/transparency_demo.py +0 -0
  454. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/terraform_transparency/transparency_report.json +0 -0
  455. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/CREDENTIAL_STRATEGY.md +0 -0
  456. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/INTEGRATION_STRATEGY.md +0 -0
  457. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/Makefile +0 -0
  458. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/ci_pipeline.py +0 -0
  459. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/conftest.py +0 -0
  460. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/root_tests/test_cli_ux_battle.py +0 -0
  461. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/root_tests/test_cli_ux_battle_fixed.py +0 -0
  462. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/root_tests/test_cli_ux_final.py +0 -0
  463. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/root_tests/test_final_integration.py +0 -0
  464. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/root_tests/test_integrated_optimization.py +0 -0
  465. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/root_tests/test_p10_production_failover.py +0 -0
  466. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/root_tests/test_sso_phase1.py +0 -0
  467. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/root_tests/test_vllm_optimization.py +0 -0
  468. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/simple_test.py +0 -0
  469. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/test_ai_integrations.py +0 -0
  470. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/test_checkpoint_manager.py +0 -0
  471. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/test_cli_smoke.py +0 -0
  472. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/test_dag_executor.py +0 -0
  473. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/test_flashoptim.py +0 -0
  474. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/test_integration.py +0 -0
  475. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/test_job_state_manager.py +0 -0
  476. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/test_k8s_regression.py +0 -0
  477. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/test_latitude_provider.py +0 -0
  478. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/test_major_providers.py +0 -0
  479. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/test_mcp_handlers.py +0 -0
  480. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/test_new_providers.py +0 -0
  481. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/test_providers.py +0 -0
  482. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/test_semantic_router.py +0 -0
  483. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/test_sglang_optimization.py +0 -0
  484. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/test_ssh_key_manager.py +0 -0
  485. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/test_training_monitor.py +0 -0
  486. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/test_training_orchestrator.py +0 -0
  487. {terradev_cli-5.3.2 → terradev_cli-5.3.4}/tests/test_vllm_features.py +0 -0
@@ -0,0 +1,39 @@
1
+ # Custom Provider Profiles Example
2
+ # Copy this file to ~/.terradev/custom_providers.yaml and add your custom providers
3
+ # Then load with: terradev providers load-profiles ~/.terradev/custom_providers.yaml
4
+
5
+ profiles:
6
+ # Example: Internal GPU cluster
7
+ my_internal_cluster:
8
+ api_style: rest
9
+ auth_type: bearer
10
+ egress_cost: 0.0
11
+ supports_spot: false
12
+ compute_model: vm
13
+ isolation_level: vm
14
+ supports_stop_start: true
15
+ region_specific_availability: true
16
+
17
+ # Example: Custom cloud provider
18
+ my_cloud_provider:
19
+ api_style: rest
20
+ auth_type: x_api_key
21
+ egress_cost: 0.02
22
+ supports_spot: true
23
+ spot_interruption_notice_minutes: 5
24
+ rate_limit_per_minute: 60
25
+ compute_model: vm
26
+ isolation_level: vm
27
+ supports_stop_start: true
28
+ provision_requires_location_id: true
29
+
30
+ # Example: GPU marketplace with SSH quirks
31
+ my_gpu_marketplace:
32
+ api_style: rest
33
+ auth_type: bearer
34
+ egress_cost: 0.01
35
+ supports_spot: true
36
+ ssh_port_fixed: false # Dynamic SSH ports
37
+ compute_model: vm
38
+ isolation_level: vm
39
+ supports_stop_start: true
@@ -18,7 +18,7 @@ RUN apt-get update && apt-get install -y \
18
18
  && rm -rf /var/lib/apt/lists/*
19
19
 
20
20
  # Copy requirements and install Python dependencies
21
- COPY requirements.txt .
21
+ COPY terradev_cli/requirements.txt .
22
22
  RUN pip install --no-cache-dir -r requirements.txt
23
23
 
24
24
  # Install Terradev CLI
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: terradev-cli
3
- Version: 5.3.2
3
+ Version: 5.3.4
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>
@@ -93,7 +93,7 @@ Requires-Dist: redis>=5.0.0; extra == "enterprise"
93
93
  Requires-Dist: PyJWT>=2.8.0; extra == "enterprise"
94
94
  Dynamic: license-file
95
95
 
96
- # Terradev CLI v5.3.2
96
+ # Terradev CLI v5.3.4
97
97
 
98
98
  **An imperative command-line-interface for AI workload orchestration.**
99
99
 
@@ -105,18 +105,26 @@ pypi.org/project/terradev-cli/
105
105
 
106
106
  Terradev is a cross-cloud compute-provisioning CLI that compresses + stages datasets, provisions optimal instances + nodes, and deploys **3-5x faster** than sequential provisioning.
107
107
 
108
- **NOTES ON 5.3.0**
109
108
 
110
- Added **transport-agnostic Prefill/Decode (P/D) disaggregation layer** and **multi-agent KV cache sharing planner**:
109
+ **NOTES ON 5.3.3**
111
110
 
112
- - **Transport-agnostic P/D layer** (`core/pd_transport.py`): KV cache transfer is abstracted across NIXL/NVLink (600 GB/s), NIXL/InfiniBand (200–400 GB/s), CXL 3.0 (planned migration), RoCE RDMA, and TCP fallback. The `TransportSelector` probes at provision time and selects the best available transport. Documented NIXL→CXL migration path (Phase 1 co-existence → Phase 2 CXL-primary → Phase 3 fabric switch).
111
+ Added **provider registration and profiling system** for intelligent quirk-aware routing across 23 cloud providers, and registration for custom providers from .yaml import:
113
112
 
114
- - **Multi-agent KV sharing planner** (`core/kv_sharing.py`): Computes fleet VRAM requirements with KV cache sharing topologies (broadcast/star/chain/none). For 20 agents with 70% shared context (broadcast), VRAM reduces by 66% more agents per GPU, fewer GPUs needed, ~$14/hr savings on H100 fleet. Includes `EvictionCostModel` to quantify re-prefill penalty when VRAM is under-provisioned.
113
+ - **ProviderProfile schema** (`providers/types.py`): Encodes provider-specific behaviors including API style (REST/GraphQL/JSON:API), authentication type (Bearer/Basic/HMAC/X-Api-Key), rate limits, spot instance support, egress costs, fallback routing, capacity checks, container image pinning, and spot interruption handling.
115
114
 
116
- - **CLI integration**: `terradev provision` now supports `--agents`, `--context`, `--sharing-topology`, `--dtype` flags. When `--agents` is passed, the KV planner outputs the heterogeneous fleet spec with cost savings:
115
+ - **Built-in profiles** (`providers/provider_profiles.py`): Pre-configured profiles for all 23 providers (RunPod, Vast.ai, Lambda Labs, AWS, GCP, Azure, Oracle, Crusoe, CoreWeave, DigitalOcean, Yotta Labs, E2E Networks, FluidStack, Alibaba, OVHcloud, Hetzner, SiliconFlow, TensorDock, Baseten, HuggingFace, Hyperstack, InferX, Latitude).
116
+
117
+ - **Dynamic registration**: Users can register custom provider profiles programmatically or load from YAML/JSON files for internal clusters or proprietary cloud providers.
118
+
119
+ - **Profile-aware routing** (`providers/registry.py`): `ProviderRegistry.ranked_providers()` now incorporates provider profiles into scoring, using egress costs, fallback routing preferences, and spot preemption rates for intelligent provider selection.
120
+
121
+ - **CLI commands** (`terradev providers`): New command group for managing custom provider profiles:
117
122
  ```bash
118
- terradev provision -g H100 --agents 20 --context 32k --model-name llama-70b
119
- terradev provision -g H100 --agents 20 --context 32k --sharing-topology broadcast --dry-run
123
+ terradev providers load-profiles ~/.terradev/custom_providers.yaml
124
+ terradev providers list-profiles
125
+ terradev providers show-profile runpod
126
+ terradev providers remove-profile my_custom_provider
127
+ terradev providers export-example -o ~/.terradev/custom_providers.yaml
120
128
  ```
121
129
 
122
130
  **NOTES ON 5.2.1**
@@ -611,115 +619,6 @@ echo "3. Test failover: terradev inferx failover --endpoint burst-llm-api --test
611
619
  echo "4. Update adapters: terradev lora update -n customer-enterprise-a -p ./new-adapters/"
612
620
  ```
613
621
 
614
- ## Bare Metal GPU Access with IPMI Management (Latitude.sh)
615
-
616
- Most GPU clouds give you a virtual machine. You get a slice of hardware, shared kernel paths, and a hypervisor layer between your workload and the GPU. For most ML workloads this is fine. For compliance-sensitive deployments — HIPAA, FedRAMP, financial services, defense contractors — it isn't. Virtualization introduces attestation gaps that auditors reject.
617
-
618
- Latitude.sh is the only provider in Terradev's fleet that offers both **bare metal** and **virtual machine** GPU instances from the same API. Bare metal gives you the physical server — dedicated hardware, no virtualization overhead, and IPMI out-of-band management.
619
-
620
- ```bash
621
- # See both bare metal and VM options side by side
622
- terradev quote -g H100 --provider latitude
623
-
624
- # Provision dedicated bare metal with IPMI access
625
- terradev provision --provider latitude --gpu H100 --instance-type bare-metal
626
-
627
- # Provision a VM (faster spin-up, slightly lower cost)
628
- terradev provision --provider latitude --gpu H100 --instance-type vm
629
- ```
630
-
631
- ### IPMI: Why It Matters for Enterprise
632
-
633
- IPMI (Intelligent Platform Management Interface) gives you out-of-band server management independent of the OS and GPU stack. If a training job deadlocks the kernel, you don't wait for a cloud provider ticket — you power-cycle via IPMI directly. Security teams can verify hardware attestation. Compliance frameworks that require dedicated hardware and physical access controls are satisfied.
634
-
635
- ```bash
636
- # Instance status includes IPMI access endpoint when bare metal
637
- terradev status --live --provider latitude
638
-
639
- # Output includes:
640
- # ipmi_access: true
641
- # ipmi_endpoint: 10.x.x.x
642
- # isolation: bare_metal
643
- ```
644
- ---
645
-
646
- ## Local GPU Discovery and Hybrid Compute Pools
647
-
648
- Every other GPU orchestration platform assumes you're renting compute. Terradev doesn't.
649
-
650
- If you have a GPU in your local machine — a gaming rig, a workstation, a university compute node you have SSH access to — Terradev can discover it, register it into your compute pool, and incorporate it into provisioning decisions alongside cloud providers.
651
-
652
- ```bash
653
- # Scan local machine for GPUs
654
- terradev local scan
655
-
656
- # Output:
657
- # Found 1 local GPU:
658
- # [0] NVIDIA RTX 4090 24GB Driver 545.29 Util: 3% Temp: 42C
659
- #
660
- # Register in pool? [y/N]:
661
-
662
- # Register local GPU into your pool
663
- terradev local register --name "workstation-4090"
664
-
665
- # Scan a remote machine you have SSH access to
666
- terradev local scan --host 192.168.1.50 --user ubuntu --key ~/.ssh/id_rsa
667
-
668
- # View your full compute pool (local + cloud)
669
- terradev local pool
670
- ```
671
-
672
- Pool output:
673
- ```
674
- COMPUTE POOL (4 resources)
675
- workstation-4090 RTX 4090 24GB local $0.00/hr Free
676
- runpod-h100-001 H100 80GB runpod $2.49/hr Running
677
- vastai-a100-002 A100 40GB vastai $1.82/hr Running
678
- lambda-a10g-003 A10G 24GB lambda_labs $0.60/hr Idle
679
- ```
680
-
681
- ### Why This Matters
682
-
683
- The `terradev quote` command normally shows cloud provider pricing. With local GPUs registered, the pool includes your own hardware — priced at $0/hr. For a university researcher with a 3090 workstation running overnight jobs, or a startup with a rack of 4090s before they've moved to cloud: Terradev routes workloads to the cheapest available compute, and $0/hr always wins.
684
-
685
- ```bash
686
- # Get quotes including local pool
687
- terradev quote -g RTX4090 --include-local
688
-
689
- # Output:
690
- # GPU PROVIDER $/HR AVAILABLE
691
- # RTX 4090 local (workstation-4090) $0.00 Yes
692
- # RTX 4090 vastai $0.34 Yes
693
- # RTX 4090 runpod $0.39 Yes
694
-
695
- # Provision to cheapest available — prefers local automatically
696
- terradev provision -g RTX4090 --prefer-local
697
-
698
- # Launch training on local GPU with cloud overflow
699
- terradev train --script train.py --pool workstation-4090 --overflow-to-cloud
700
- ```
701
-
702
- ### How Discovery Works
703
-
704
- The local scanner uses direct NVML bindings (Rust backend, 5–10x faster than `nvidia-smi` parsing) to introspect every GPU on the target machine:
705
-
706
- - GPU model, memory, PCIe bus ID, NUMA affinity
707
- - Current utilization, memory usage, temperature, clock speeds
708
- - Driver version, CUDA version, compute capability
709
- - Multi-GPU topology (NVLink, PCIe switch topology)
710
-
711
- Falls back to `nvidia-smi` parsing automatically if the Rust NVML extension isn't available.
712
-
713
- ```bash
714
- # Detailed hardware report for local GPU
715
- terradev local scan --detailed
716
-
717
- # Output includes:
718
- # GPU 0: RTX 4090 VRAM 24GB PCIe x16 NUMA node 0
719
- # NVLink: none (single GPU)
720
- # Compute: 8.9 Driver: 545.29 CUDA: 12.3
721
- # P-state: P0 Temp: 42C Power: 45W / 450W TDP
722
- ```
723
622
  ---
724
623
 
725
624
  ## Quick Reference
@@ -859,6 +758,5 @@ Apache 2.0.
859
758
 
860
759
  ## Support
861
760
 
862
- - **Documentation**: [Full User Guide](USER_GUIDE.md)
863
761
  - **Issues**: [GitHub Issues](https://github.com/theoddden/Terradev/issues)
864
762
  - **Discussions**: [GitHub Discussions](https://github.com/theoddden/Terradev/discussions)
@@ -1,4 +1,4 @@
1
- # Terradev CLI v5.3.2
1
+ # Terradev CLI v5.3.4
2
2
 
3
3
  **An imperative command-line-interface for AI workload orchestration.**
4
4
 
@@ -10,18 +10,26 @@ pypi.org/project/terradev-cli/
10
10
 
11
11
  Terradev is a cross-cloud compute-provisioning CLI that compresses + stages datasets, provisions optimal instances + nodes, and deploys **3-5x faster** than sequential provisioning.
12
12
 
13
- **NOTES ON 5.3.0**
14
13
 
15
- Added **transport-agnostic Prefill/Decode (P/D) disaggregation layer** and **multi-agent KV cache sharing planner**:
14
+ **NOTES ON 5.3.3**
16
15
 
17
- - **Transport-agnostic P/D layer** (`core/pd_transport.py`): KV cache transfer is abstracted across NIXL/NVLink (600 GB/s), NIXL/InfiniBand (200–400 GB/s), CXL 3.0 (planned migration), RoCE RDMA, and TCP fallback. The `TransportSelector` probes at provision time and selects the best available transport. Documented NIXL→CXL migration path (Phase 1 co-existence → Phase 2 CXL-primary → Phase 3 fabric switch).
16
+ Added **provider registration and profiling system** for intelligent quirk-aware routing across 23 cloud providers, and registration for custom providers from .yaml import:
18
17
 
19
- - **Multi-agent KV sharing planner** (`core/kv_sharing.py`): Computes fleet VRAM requirements with KV cache sharing topologies (broadcast/star/chain/none). For 20 agents with 70% shared context (broadcast), VRAM reduces by 66% more agents per GPU, fewer GPUs needed, ~$14/hr savings on H100 fleet. Includes `EvictionCostModel` to quantify re-prefill penalty when VRAM is under-provisioned.
18
+ - **ProviderProfile schema** (`providers/types.py`): Encodes provider-specific behaviors including API style (REST/GraphQL/JSON:API), authentication type (Bearer/Basic/HMAC/X-Api-Key), rate limits, spot instance support, egress costs, fallback routing, capacity checks, container image pinning, and spot interruption handling.
20
19
 
21
- - **CLI integration**: `terradev provision` now supports `--agents`, `--context`, `--sharing-topology`, `--dtype` flags. When `--agents` is passed, the KV planner outputs the heterogeneous fleet spec with cost savings:
20
+ - **Built-in profiles** (`providers/provider_profiles.py`): Pre-configured profiles for all 23 providers (RunPod, Vast.ai, Lambda Labs, AWS, GCP, Azure, Oracle, Crusoe, CoreWeave, DigitalOcean, Yotta Labs, E2E Networks, FluidStack, Alibaba, OVHcloud, Hetzner, SiliconFlow, TensorDock, Baseten, HuggingFace, Hyperstack, InferX, Latitude).
21
+
22
+ - **Dynamic registration**: Users can register custom provider profiles programmatically or load from YAML/JSON files for internal clusters or proprietary cloud providers.
23
+
24
+ - **Profile-aware routing** (`providers/registry.py`): `ProviderRegistry.ranked_providers()` now incorporates provider profiles into scoring, using egress costs, fallback routing preferences, and spot preemption rates for intelligent provider selection.
25
+
26
+ - **CLI commands** (`terradev providers`): New command group for managing custom provider profiles:
22
27
  ```bash
23
- terradev provision -g H100 --agents 20 --context 32k --model-name llama-70b
24
- terradev provision -g H100 --agents 20 --context 32k --sharing-topology broadcast --dry-run
28
+ terradev providers load-profiles ~/.terradev/custom_providers.yaml
29
+ terradev providers list-profiles
30
+ terradev providers show-profile runpod
31
+ terradev providers remove-profile my_custom_provider
32
+ terradev providers export-example -o ~/.terradev/custom_providers.yaml
25
33
  ```
26
34
 
27
35
  **NOTES ON 5.2.1**
@@ -516,115 +524,6 @@ echo "3. Test failover: terradev inferx failover --endpoint burst-llm-api --test
516
524
  echo "4. Update adapters: terradev lora update -n customer-enterprise-a -p ./new-adapters/"
517
525
  ```
518
526
 
519
- ## Bare Metal GPU Access with IPMI Management (Latitude.sh)
520
-
521
- Most GPU clouds give you a virtual machine. You get a slice of hardware, shared kernel paths, and a hypervisor layer between your workload and the GPU. For most ML workloads this is fine. For compliance-sensitive deployments — HIPAA, FedRAMP, financial services, defense contractors — it isn't. Virtualization introduces attestation gaps that auditors reject.
522
-
523
- Latitude.sh is the only provider in Terradev's fleet that offers both **bare metal** and **virtual machine** GPU instances from the same API. Bare metal gives you the physical server — dedicated hardware, no virtualization overhead, and IPMI out-of-band management.
524
-
525
- ```bash
526
- # See both bare metal and VM options side by side
527
- terradev quote -g H100 --provider latitude
528
-
529
- # Provision dedicated bare metal with IPMI access
530
- terradev provision --provider latitude --gpu H100 --instance-type bare-metal
531
-
532
- # Provision a VM (faster spin-up, slightly lower cost)
533
- terradev provision --provider latitude --gpu H100 --instance-type vm
534
- ```
535
-
536
- ### IPMI: Why It Matters for Enterprise
537
-
538
- IPMI (Intelligent Platform Management Interface) gives you out-of-band server management independent of the OS and GPU stack. If a training job deadlocks the kernel, you don't wait for a cloud provider ticket — you power-cycle via IPMI directly. Security teams can verify hardware attestation. Compliance frameworks that require dedicated hardware and physical access controls are satisfied.
539
-
540
- ```bash
541
- # Instance status includes IPMI access endpoint when bare metal
542
- terradev status --live --provider latitude
543
-
544
- # Output includes:
545
- # ipmi_access: true
546
- # ipmi_endpoint: 10.x.x.x
547
- # isolation: bare_metal
548
- ```
549
- ---
550
-
551
- ## Local GPU Discovery and Hybrid Compute Pools
552
-
553
- Every other GPU orchestration platform assumes you're renting compute. Terradev doesn't.
554
-
555
- If you have a GPU in your local machine — a gaming rig, a workstation, a university compute node you have SSH access to — Terradev can discover it, register it into your compute pool, and incorporate it into provisioning decisions alongside cloud providers.
556
-
557
- ```bash
558
- # Scan local machine for GPUs
559
- terradev local scan
560
-
561
- # Output:
562
- # Found 1 local GPU:
563
- # [0] NVIDIA RTX 4090 24GB Driver 545.29 Util: 3% Temp: 42C
564
- #
565
- # Register in pool? [y/N]:
566
-
567
- # Register local GPU into your pool
568
- terradev local register --name "workstation-4090"
569
-
570
- # Scan a remote machine you have SSH access to
571
- terradev local scan --host 192.168.1.50 --user ubuntu --key ~/.ssh/id_rsa
572
-
573
- # View your full compute pool (local + cloud)
574
- terradev local pool
575
- ```
576
-
577
- Pool output:
578
- ```
579
- COMPUTE POOL (4 resources)
580
- workstation-4090 RTX 4090 24GB local $0.00/hr Free
581
- runpod-h100-001 H100 80GB runpod $2.49/hr Running
582
- vastai-a100-002 A100 40GB vastai $1.82/hr Running
583
- lambda-a10g-003 A10G 24GB lambda_labs $0.60/hr Idle
584
- ```
585
-
586
- ### Why This Matters
587
-
588
- The `terradev quote` command normally shows cloud provider pricing. With local GPUs registered, the pool includes your own hardware — priced at $0/hr. For a university researcher with a 3090 workstation running overnight jobs, or a startup with a rack of 4090s before they've moved to cloud: Terradev routes workloads to the cheapest available compute, and $0/hr always wins.
589
-
590
- ```bash
591
- # Get quotes including local pool
592
- terradev quote -g RTX4090 --include-local
593
-
594
- # Output:
595
- # GPU PROVIDER $/HR AVAILABLE
596
- # RTX 4090 local (workstation-4090) $0.00 Yes
597
- # RTX 4090 vastai $0.34 Yes
598
- # RTX 4090 runpod $0.39 Yes
599
-
600
- # Provision to cheapest available — prefers local automatically
601
- terradev provision -g RTX4090 --prefer-local
602
-
603
- # Launch training on local GPU with cloud overflow
604
- terradev train --script train.py --pool workstation-4090 --overflow-to-cloud
605
- ```
606
-
607
- ### How Discovery Works
608
-
609
- The local scanner uses direct NVML bindings (Rust backend, 5–10x faster than `nvidia-smi` parsing) to introspect every GPU on the target machine:
610
-
611
- - GPU model, memory, PCIe bus ID, NUMA affinity
612
- - Current utilization, memory usage, temperature, clock speeds
613
- - Driver version, CUDA version, compute capability
614
- - Multi-GPU topology (NVLink, PCIe switch topology)
615
-
616
- Falls back to `nvidia-smi` parsing automatically if the Rust NVML extension isn't available.
617
-
618
- ```bash
619
- # Detailed hardware report for local GPU
620
- terradev local scan --detailed
621
-
622
- # Output includes:
623
- # GPU 0: RTX 4090 VRAM 24GB PCIe x16 NUMA node 0
624
- # NVLink: none (single GPU)
625
- # Compute: 8.9 Driver: 545.29 CUDA: 12.3
626
- # P-state: P0 Temp: 42C Power: 45W / 450W TDP
627
- ```
628
527
  ---
629
528
 
630
529
  ## Quick Reference
@@ -764,6 +663,5 @@ Apache 2.0.
764
663
 
765
664
  ## Support
766
665
 
767
- - **Documentation**: [Full User Guide](USER_GUIDE.md)
768
666
  - **Issues**: [GitHub Issues](https://github.com/theoddden/Terradev/issues)
769
667
  - **Discussions**: [GitHub Discussions](https://github.com/theoddden/Terradev/discussions)
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "terradev-cli"
7
- version = "5.3.2"
7
+ version = "5.3.4"
8
8
  description = "An imperative command-line-interface for AI workload orchestration."
9
9
  readme = "README.md"
10
10
  license = {text = "Apache-2.0"}
@@ -1,4 +1,4 @@
1
- # Terradev CLI v5.3.2
1
+ # Terradev CLI v5.3.3
2
2
 
3
3
  **An imperative command-line-interface for AI workload orchestration.**
4
4
 
@@ -10,6 +10,27 @@ pypi.org/project/terradev-cli/
10
10
 
11
11
  Terradev is a cross-cloud compute-provisioning CLI that compresses + stages datasets, provisions optimal instances + nodes, and deploys **3-5x faster** than sequential provisioning.
12
12
 
13
+ **NOTES ON 5.3.3**
14
+
15
+ Added **provider profile system** for intelligent quirk-aware routing across 23 cloud providers:
16
+
17
+ - **ProviderProfile schema** (`providers/types.py`): Encodes provider-specific behaviors including API style (REST/GraphQL/JSON:API), authentication type (Bearer/Basic/HMAC/X-Api-Key), rate limits, spot instance support, egress costs, fallback routing, capacity checks, container image pinning, and spot interruption handling.
18
+
19
+ - **Built-in profiles** (`providers/provider_profiles.py`): Pre-configured profiles for all 23 providers (RunPod, Vast.ai, Lambda Labs, AWS, GCP, Azure, Oracle, Crusoe, CoreWeave, DigitalOcean, Yotta Labs, E2E Networks, FluidStack, Alibaba, OVHcloud, Hetzner, SiliconFlow, TensorDock, Baseten, HuggingFace, Hyperstack, InferX, Latitude).
20
+
21
+ - **Dynamic registration**: Users can register custom provider profiles programmatically or load from YAML/JSON files for internal clusters or proprietary cloud providers.
22
+
23
+ - **Profile-aware routing** (`providers/registry.py`): `ProviderRegistry.ranked_providers()` now incorporates provider profiles into scoring, using egress costs, fallback routing preferences, and spot preemption rates for intelligent provider selection.
24
+
25
+ - **CLI commands** (`terradev providers`): New command group for managing custom provider profiles:
26
+ ```bash
27
+ terradev providers load-profiles ~/.terradev/custom_providers.yaml
28
+ terradev providers list-profiles
29
+ terradev providers show-profile runpod
30
+ terradev providers remove-profile my_custom_provider
31
+ terradev providers export-example -o ~/.terradev/custom_providers.yaml
32
+ ```
33
+
13
34
  **NOTES ON 5.3.0**
14
35
 
15
36
  Added **transport-agnostic Prefill/Decode (P/D) disaggregation layer** and **multi-agent KV cache sharing planner**:
@@ -516,115 +537,6 @@ echo "3. Test failover: terradev inferx failover --endpoint burst-llm-api --test
516
537
  echo "4. Update adapters: terradev lora update -n customer-enterprise-a -p ./new-adapters/"
517
538
  ```
518
539
 
519
- ## Bare Metal GPU Access with IPMI Management (Latitude.sh)
520
-
521
- Most GPU clouds give you a virtual machine. You get a slice of hardware, shared kernel paths, and a hypervisor layer between your workload and the GPU. For most ML workloads this is fine. For compliance-sensitive deployments — HIPAA, FedRAMP, financial services, defense contractors — it isn't. Virtualization introduces attestation gaps that auditors reject.
522
-
523
- Latitude.sh is the only provider in Terradev's fleet that offers both **bare metal** and **virtual machine** GPU instances from the same API. Bare metal gives you the physical server — dedicated hardware, no virtualization overhead, and IPMI out-of-band management.
524
-
525
- ```bash
526
- # See both bare metal and VM options side by side
527
- terradev quote -g H100 --provider latitude
528
-
529
- # Provision dedicated bare metal with IPMI access
530
- terradev provision --provider latitude --gpu H100 --instance-type bare-metal
531
-
532
- # Provision a VM (faster spin-up, slightly lower cost)
533
- terradev provision --provider latitude --gpu H100 --instance-type vm
534
- ```
535
-
536
- ### IPMI: Why It Matters for Enterprise
537
-
538
- IPMI (Intelligent Platform Management Interface) gives you out-of-band server management independent of the OS and GPU stack. If a training job deadlocks the kernel, you don't wait for a cloud provider ticket — you power-cycle via IPMI directly. Security teams can verify hardware attestation. Compliance frameworks that require dedicated hardware and physical access controls are satisfied.
539
-
540
- ```bash
541
- # Instance status includes IPMI access endpoint when bare metal
542
- terradev status --live --provider latitude
543
-
544
- # Output includes:
545
- # ipmi_access: true
546
- # ipmi_endpoint: 10.x.x.x
547
- # isolation: bare_metal
548
- ```
549
- ---
550
-
551
- ## Local GPU Discovery and Hybrid Compute Pools
552
-
553
- Every other GPU orchestration platform assumes you're renting compute. Terradev doesn't.
554
-
555
- If you have a GPU in your local machine — a gaming rig, a workstation, a university compute node you have SSH access to — Terradev can discover it, register it into your compute pool, and incorporate it into provisioning decisions alongside cloud providers.
556
-
557
- ```bash
558
- # Scan local machine for GPUs
559
- terradev local scan
560
-
561
- # Output:
562
- # Found 1 local GPU:
563
- # [0] NVIDIA RTX 4090 24GB Driver 545.29 Util: 3% Temp: 42C
564
- #
565
- # Register in pool? [y/N]:
566
-
567
- # Register local GPU into your pool
568
- terradev local register --name "workstation-4090"
569
-
570
- # Scan a remote machine you have SSH access to
571
- terradev local scan --host 192.168.1.50 --user ubuntu --key ~/.ssh/id_rsa
572
-
573
- # View your full compute pool (local + cloud)
574
- terradev local pool
575
- ```
576
-
577
- Pool output:
578
- ```
579
- COMPUTE POOL (4 resources)
580
- workstation-4090 RTX 4090 24GB local $0.00/hr Free
581
- runpod-h100-001 H100 80GB runpod $2.49/hr Running
582
- vastai-a100-002 A100 40GB vastai $1.82/hr Running
583
- lambda-a10g-003 A10G 24GB lambda_labs $0.60/hr Idle
584
- ```
585
-
586
- ### Why This Matters
587
-
588
- The `terradev quote` command normally shows cloud provider pricing. With local GPUs registered, the pool includes your own hardware — priced at $0/hr. For a university researcher with a 3090 workstation running overnight jobs, or a startup with a rack of 4090s before they've moved to cloud: Terradev routes workloads to the cheapest available compute, and $0/hr always wins.
589
-
590
- ```bash
591
- # Get quotes including local pool
592
- terradev quote -g RTX4090 --include-local
593
-
594
- # Output:
595
- # GPU PROVIDER $/HR AVAILABLE
596
- # RTX 4090 local (workstation-4090) $0.00 Yes
597
- # RTX 4090 vastai $0.34 Yes
598
- # RTX 4090 runpod $0.39 Yes
599
-
600
- # Provision to cheapest available — prefers local automatically
601
- terradev provision -g RTX4090 --prefer-local
602
-
603
- # Launch training on local GPU with cloud overflow
604
- terradev train --script train.py --pool workstation-4090 --overflow-to-cloud
605
- ```
606
-
607
- ### How Discovery Works
608
-
609
- The local scanner uses direct NVML bindings (Rust backend, 5–10x faster than `nvidia-smi` parsing) to introspect every GPU on the target machine:
610
-
611
- - GPU model, memory, PCIe bus ID, NUMA affinity
612
- - Current utilization, memory usage, temperature, clock speeds
613
- - Driver version, CUDA version, compute capability
614
- - Multi-GPU topology (NVLink, PCIe switch topology)
615
-
616
- Falls back to `nvidia-smi` parsing automatically if the Rust NVML extension isn't available.
617
-
618
- ```bash
619
- # Detailed hardware report for local GPU
620
- terradev local scan --detailed
621
-
622
- # Output includes:
623
- # GPU 0: RTX 4090 VRAM 24GB PCIe x16 NUMA node 0
624
- # NVLink: none (single GPU)
625
- # Compute: 8.9 Driver: 545.29 CUDA: 12.3
626
- # P-state: P0 Temp: 42C Power: 45W / 450W TDP
627
- ```
628
540
  ---
629
541
 
630
542
  ## Quick Reference
@@ -3,6 +3,6 @@ Terradev CLI - Cross-Cloud Compute Optimization Platform
3
3
  Parallel provisioning and orchestration for optimized compute costs
4
4
  """
5
5
 
6
- __version__ = "5.3.2"
6
+ __version__ = "5.3.4"
7
7
  __author__ = "Terradev Team"
8
8
  __description__ = "Open Source BYOAPI Multi-Cloud GPU Infrastructure Platform"