terradev-cli 5.2.1__tar.gz → 5.3.1__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 (480) hide show
  1. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/Deployment Package/BNF_GRAMMAR.md +49 -1
  2. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/Deployment Package/architecture.md +196 -7
  3. {terradev_cli-5.2.1/terradev_cli.egg-info → terradev_cli-5.3.1}/PKG-INFO +16 -2
  4. {terradev_cli-5.2.1/terradev_cli → terradev_cli-5.3.1}/README.md +15 -1
  5. terradev_cli-5.3.1/clusters/agentic-template/helm/values-agentic.yaml +222 -0
  6. terradev_cli-5.3.1/clusters/agentic-template/k8s/fleet-manifests.yaml +668 -0
  7. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/pyproject.toml +1 -1
  8. {terradev_cli-5.2.1 → terradev_cli-5.3.1/terradev_cli}/README.md +15 -1
  9. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/cli.py +562 -0
  10. terradev_cli-5.3.1/terradev_cli/core/agentic_provisioner.py +624 -0
  11. terradev_cli-5.3.1/terradev_cli/core/agentic_topology.py +796 -0
  12. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/auth.py +17 -5
  13. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/checkpoint_manager.py +1 -1
  14. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/dag_executor.py +0 -10
  15. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/data_governance.py +62 -31
  16. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/distributed_lock.py +27 -22
  17. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/event_system.py +45 -30
  18. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/gitops_manager.py +17 -1
  19. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/gpu_topology.py +4 -3
  20. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/kv_cache_checkpoint_manager.py +38 -8
  21. terradev_cli-5.3.1/terradev_cli/core/kv_sharing.py +589 -0
  22. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/oidc_provider.py +102 -38
  23. terradev_cli-5.3.1/terradev_cli/core/pd_transport.py +713 -0
  24. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/preflight_validator.py +1 -1
  25. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/price_intelligence.py +3 -0
  26. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/rate_limiter.py +40 -23
  27. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/semantic_router.py +4 -3
  28. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/session_manager.py +5 -1
  29. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/training_monitor.py +1 -1
  30. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/training_orchestrator.py +41 -26
  31. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/user_manager.py +2 -2
  32. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/mcp/server.py +73 -7
  33. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/ml_services/agentic_serving.py +1 -1
  34. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/ml_services/kubernetes_enhanced.py +12 -5
  35. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/ml_services/vllm_service.py +1 -1
  36. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/base_provider.py +19 -2
  37. {terradev_cli-5.2.1 → terradev_cli-5.3.1/terradev_cli.egg-info}/PKG-INFO +16 -2
  38. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli.egg-info/SOURCES.txt +6 -0
  39. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/.env.example +0 -0
  40. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/.github/workflows/action.yml +0 -0
  41. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/.github/workflows/ci.yml +0 -0
  42. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/.github/workflows/release.yml +0 -0
  43. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/.github/workflows/static.yml +0 -0
  44. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/Deployment Package/LIFECYCLES.md +0 -0
  45. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/Deployment Package/overview.md +0 -0
  46. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/Deployment Package/security.md +0 -0
  47. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/Deployment Package/troubleshooting.md +0 -0
  48. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/Dockerfile +0 -0
  49. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/Dockerfile.test +0 -0
  50. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/LICENSE +0 -0
  51. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/MANIFEST.in +0 -0
  52. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/glm-5/README.md +0 -0
  53. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/glm-5/helm/values-glm5.yaml +0 -0
  54. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/glm-5/k8s/hpa.yaml +0 -0
  55. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/glm-5/k8s/model-cache-pvc.yaml +0 -0
  56. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/glm-5/k8s/namespace.yaml +0 -0
  57. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/glm-5/k8s/pdb.yaml +0 -0
  58. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/glm-5/k8s/service.yaml +0 -0
  59. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/glm-5/k8s/sglang-deployment.yaml +0 -0
  60. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/glm-5/k8s/vllm-deployment.yaml +0 -0
  61. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/glm-5/task.yaml +0 -0
  62. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/glm-5/terraform/main.tf +0 -0
  63. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/glm-5/terraform/outputs.tf +0 -0
  64. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/glm-5/terraform/variables.tf +0 -0
  65. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/llmd-template/README.md +0 -0
  66. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/llmd-template/helm/values-llmd.yaml +0 -0
  67. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/llmd-template/k8s/gateway.yaml +0 -0
  68. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/llmd-template/k8s/leaderworkerset.yaml +0 -0
  69. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/llmd-template/k8s/llminferenceservice.yaml +0 -0
  70. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/llmd-template/task.yaml +0 -0
  71. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/moe-template/README.md +0 -0
  72. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/moe-template/helm/values-moe.yaml +0 -0
  73. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/moe-template/k8s/deployment.yaml +0 -0
  74. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/moe-template/k8s/hpa.yaml +0 -0
  75. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/moe-template/k8s/model-cache-pvc.yaml +0 -0
  76. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/moe-template/k8s/namespace.yaml +0 -0
  77. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/moe-template/k8s/pdb.yaml +0 -0
  78. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/moe-template/k8s/service.yaml +0 -0
  79. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/moe-template/task.yaml +0 -0
  80. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/moe-template/terraform/main.tf +0 -0
  81. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/moe-template/terraform/outputs.tf +0 -0
  82. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/moe-template/terraform/variables.tf +0 -0
  83. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/rag-template/README.md +0 -0
  84. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/rag-template/helm/values-rag.yaml +0 -0
  85. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/rag-template/k8s/deployment.yaml +0 -0
  86. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/clusters/rag-template/terraform/main.tf +0 -0
  87. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/demo/RECORDING_GUIDE.md +0 -0
  88. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/demo/generate_gif.py +0 -0
  89. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/demo/terradev-demo.gif +0 -0
  90. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/docs/ADVANCED_FINANCIAL_INNOVATIONS.md +0 -0
  91. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/docs/API_DOCUMENTATION.md +0 -0
  92. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/docs/BingSiteAuth.xml +0 -0
  93. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/docs/FINOPS_ATTRIBUTION_SYSTEM.md +0 -0
  94. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/docs/USER_GUIDE.md +0 -0
  95. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/docs/VLLM_AUTO_OPTIMIZATION_GUIDE.md +0 -0
  96. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/docs/VLLM_OPTIMIZATION_GUIDE.md +0 -0
  97. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/docs/architecture.md +0 -0
  98. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/docs/index.html +0 -0
  99. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/docs/overview.md +0 -0
  100. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/docs/robots.txt +0 -0
  101. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/docs/sitemap.xml +0 -0
  102. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/docs/test_spot_provision.md +0 -0
  103. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/examples/aws_ssm_starter.py +0 -0
  104. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/examples/config.example.json +0 -0
  105. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/examples/demo_k8s_config.yaml +0 -0
  106. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/examples/direct_aws_starter.py +0 -0
  107. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/examples/ec2_user_data_starter.py +0 -0
  108. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/examples/example-pipeline.yaml +0 -0
  109. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/examples/kubernetes_training_deployment.yaml +0 -0
  110. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/examples/simple_ssm_starter.py +0 -0
  111. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/examples/ssh_server_starter.py +0 -0
  112. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/examples/start_aws_servers.py +0 -0
  113. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/helm/terradev/Chart.yaml +0 -0
  114. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/helm/terradev/templates/_helpers.tpl +0 -0
  115. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/helm/terradev/templates/deployment.yaml +0 -0
  116. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/helm/terradev/values.yaml +0 -0
  117. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/infrastructure/bucket-policy.json +0 -0
  118. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/infrastructure/grafana_training_dashboard.json +0 -0
  119. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/infrastructure/kubernetes/microservices.yaml +0 -0
  120. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/infrastructure/terraform/main.tf +0 -0
  121. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/infrastructure/terraform/parallelism.tf +0 -0
  122. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/integrations/cli-tool.tf +0 -0
  123. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/integrations/cloud-management-widgets.tf +0 -0
  124. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/integrations/cloud-provider-apis.py +0 -0
  125. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/integrations/critical-widgets.tf +0 -0
  126. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/integrations/devops-cicd-widgets.tf +0 -0
  127. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/integrations/devops-essential-tools.tf +0 -0
  128. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/integrations/docker-integration.tf +0 -0
  129. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/integrations/kubernetes-operator.tf +0 -0
  130. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/integrations/mlflow-integration.tf +0 -0
  131. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/modules/datadog/README.md +0 -0
  132. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/modules/datadog/dashboard.tf +0 -0
  133. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/modules/datadog/monitors.tf +0 -0
  134. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/modules/datadog/outputs.tf +0 -0
  135. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/modules/datadog/provider.tf +0 -0
  136. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/modules/datadog/variables.tf +0 -0
  137. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/modules/datadog/versions.tf +0 -0
  138. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/modules/prometheus_training_config.yml +0 -0
  139. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/requirements.txt +0 -0
  140. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/Cargo.toml +0 -0
  141. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/INTEGRATION_GUIDE.md +0 -0
  142. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/PERFORMANCE_OPTIMIZATIONS.md +0 -0
  143. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/README.md +0 -0
  144. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-artifact-verification/Cargo.toml +0 -0
  145. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-artifact-verification/src/lib.rs +0 -0
  146. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-artifact-verification/src/types.rs +0 -0
  147. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-artifact-verification/src/verifier.rs +0 -0
  148. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-authentication/Cargo.toml +0 -0
  149. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-authentication/src/encoding.rs +0 -0
  150. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-authentication/src/hmac.rs +0 -0
  151. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-authentication/src/lib.rs +0 -0
  152. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-authentication/src/types.rs +0 -0
  153. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-cache-eviction/Cargo.toml +0 -0
  154. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-cache-eviction/src/cache.rs +0 -0
  155. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-cache-eviction/src/lib.rs +0 -0
  156. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-cache-eviction/src/types.rs +0 -0
  157. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-command-executor/Cargo.toml +0 -0
  158. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-command-executor/src/lib.rs +0 -0
  159. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-config-validator/Cargo.toml +0 -0
  160. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-config-validator/src/lib.rs +0 -0
  161. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-config-validator/src/types.rs +0 -0
  162. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-config-validator/src/validator.rs +0 -0
  163. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-connection-pool/Cargo.toml +0 -0
  164. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-connection-pool/src/lib.rs +0 -0
  165. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-connection-pool/src/pool.rs +0 -0
  166. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-connection-pool/src/types.rs +0 -0
  167. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-cost-calculator/Cargo.toml +0 -0
  168. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-cost-calculator/src/calculator.rs +0 -0
  169. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-cost-calculator/src/lib.rs +0 -0
  170. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-cost-calculator/src/types.rs +0 -0
  171. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-cost-scaler/Cargo.toml +0 -0
  172. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-cost-scaler/src/lib.rs +0 -0
  173. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-credential-vault/Cargo.toml +0 -0
  174. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-credential-vault/src/lib.rs +0 -0
  175. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-credential-vault/src/types.rs +0 -0
  176. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-credential-vault/src/vault.rs +0 -0
  177. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-dag-executor/Cargo.toml +0 -0
  178. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-dag-executor/src/lib.rs +0 -0
  179. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-distributed-lock/Cargo.toml +0 -0
  180. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-distributed-lock/src/lib.rs +0 -0
  181. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-distributed-lock/src/lock.rs +0 -0
  182. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-distributed-lock/src/types.rs +0 -0
  183. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-egress-optimizer/Cargo.toml +0 -0
  184. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-egress-optimizer/src/graph.rs +0 -0
  185. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-egress-optimizer/src/lib.rs +0 -0
  186. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-egress-optimizer/src/types.rs +0 -0
  187. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-event-bus/Cargo.toml +0 -0
  188. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-event-bus/src/bus.rs +0 -0
  189. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-event-bus/src/lib.rs +0 -0
  190. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-event-bus/src/types.rs +0 -0
  191. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-governance/Cargo.toml +0 -0
  192. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-governance/src/lib.rs +0 -0
  193. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-gpu-discovery/Cargo.toml +0 -0
  194. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-gpu-discovery/src/lib.rs +0 -0
  195. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-gpu-topology/Cargo.toml +0 -0
  196. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-gpu-topology/src/lib.rs +0 -0
  197. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-gpu-topology/src/topology.rs +0 -0
  198. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-gpu-topology/src/types.rs +0 -0
  199. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-helm-generator/Cargo.toml +0 -0
  200. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-helm-generator/src/lib.rs +0 -0
  201. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-mcp-codec/Cargo.toml +0 -0
  202. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-mcp-codec/src/lib.rs +0 -0
  203. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-mcp-optimizer/Cargo.toml +0 -0
  204. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-mcp-optimizer/src/lib.rs +0 -0
  205. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-price-intelligence/Cargo.toml +0 -0
  206. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-price-intelligence/src/lib.rs +0 -0
  207. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-quota-manager/Cargo.toml +0 -0
  208. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-quota-manager/src/lib.rs +0 -0
  209. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-quota-manager/src/manager.rs +0 -0
  210. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-quota-manager/src/types.rs +0 -0
  211. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-resource-pool/Cargo.toml +0 -0
  212. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-resource-pool/src/lib.rs +0 -0
  213. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-resource-pool/src/pool.rs +0 -0
  214. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-resource-pool/src/types.rs +0 -0
  215. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-result-compressor/Cargo.toml +0 -0
  216. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-result-compressor/src/lib.rs +0 -0
  217. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-semantic-router/Cargo.toml +0 -0
  218. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-semantic-router/src/lib.rs +0 -0
  219. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-snapshot-manager/Cargo.toml +0 -0
  220. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-snapshot-manager/src/lib.rs +0 -0
  221. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-snapshot-manager/src/snapshot.rs +0 -0
  222. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-snapshot-manager/src/types.rs +0 -0
  223. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-state-machine/Cargo.toml +0 -0
  224. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-state-machine/src/lib.rs +0 -0
  225. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-state-machine/src/state.rs +0 -0
  226. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-state-machine/src/types.rs +0 -0
  227. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-telemetry/Cargo.toml +0 -0
  228. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-telemetry/src/lib.rs +0 -0
  229. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-telemetry/src/pipeline.rs +0 -0
  230. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-telemetry/src/types.rs +0 -0
  231. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-tool-registry/Cargo.toml +0 -0
  232. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-tool-registry/src/lib.rs +0 -0
  233. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-vram-estimator/Cargo.toml +0 -0
  234. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-vram-estimator/src/estimator.rs +0 -0
  235. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-vram-estimator/src/lib.rs +0 -0
  236. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-vram-estimator/src/types.rs +0 -0
  237. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-warm-pool/Cargo.toml +0 -0
  238. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/rust/terradev-warm-pool/src/lib.rs +0 -0
  239. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/scripts/action.py +0 -0
  240. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/scripts/gpu-check.sh +0 -0
  241. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/setup/Lambda Cloud API spec 1.8.3.json +0 -0
  242. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/setup/docker-compose.yml +0 -0
  243. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/setup/nginx.conf +0 -0
  244. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/setup/setup.sh +0 -0
  245. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/setup.cfg +0 -0
  246. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/CHANGELOG.md +0 -0
  247. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/COMPLETE_COMMAND_REFERENCE.md +0 -0
  248. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/COMPLETE_INTEGRATION_GUIDE.md +0 -0
  249. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/IMPLEMENTATION_SUMMARY.md +0 -0
  250. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/MAKING_SPOT_WORK_FOR_STATEFUL_WORKLOADS.md +0 -0
  251. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/SGLANG_COMMAND_GUIDE.md +0 -0
  252. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/TERRADEV_STACK_CHART.md +0 -0
  253. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/__init__.py +0 -0
  254. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/__main__.py +0 -0
  255. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/cli_hf_spaces.py +0 -0
  256. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/cli_karpenter.py +0 -0
  257. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/__init__.py +0 -0
  258. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/async_config.py +0 -0
  259. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/auto_lineage.py +0 -0
  260. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/cache_manager.py +0 -0
  261. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/command_executor.py +0 -0
  262. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/config.py +0 -0
  263. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/config_validator.py +0 -0
  264. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/cost_scaler.py +0 -0
  265. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/cost_tracker.py +0 -0
  266. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/credential_vault.py +0 -0
  267. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/cuda_graph_integrator.py +0 -0
  268. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/dataset_stager.py +0 -0
  269. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/deployment_router.py +0 -0
  270. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/drift_detector.py +0 -0
  271. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/egress_cost_monitor.py +0 -0
  272. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/egress_optimizer.py +0 -0
  273. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/evaluation_orchestrator.py +0 -0
  274. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/gpu_discovery.py +0 -0
  275. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/helm_generator.py +0 -0
  276. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/hf_cli_integration.py +0 -0
  277. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/hf_smart_templates.py +0 -0
  278. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/hf_spaces.py +0 -0
  279. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/inference_router.py +0 -0
  280. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/inference_spot_manager.py +0 -0
  281. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/job_state_manager.py +0 -0
  282. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/kv_cache_checkpoint_tests.py +0 -0
  283. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/manifest_cache.py +0 -0
  284. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/manifest_example.json +0 -0
  285. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/mig_manager.py +0 -0
  286. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/migration_orchestrator.py +0 -0
  287. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/mla_vram_estimator.py +0 -0
  288. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/mla_vram_tests.py +0 -0
  289. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/model_orchestrator.py +0 -0
  290. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/optimization_config.py +0 -0
  291. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/parallel_provisioner.py +0 -0
  292. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/pipeline_schema.py +0 -0
  293. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/price_discovery.py +0 -0
  294. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/public_ip_billing_tracker.py +0 -0
  295. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/quick_start.py +0 -0
  296. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/quota_manager.py +0 -0
  297. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/rust_telemetry.py +0 -0
  298. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/semantic_signals/__init__.py +0 -0
  299. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/semantic_signals/base_signal.py +0 -0
  300. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/semantic_signals/complexity_signal.py +0 -0
  301. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/semantic_signals/domain_signal.py +0 -0
  302. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/semantic_signals/keyword_signal.py +0 -0
  303. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/semantic_signals/language_signal.py +0 -0
  304. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/semantic_signals/modality_signal.py +0 -0
  305. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/semantic_signals/orchestrator.py +0 -0
  306. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/semantic_signals/routing_policy.yaml +0 -0
  307. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/semantic_signals/safety_signal.py +0 -0
  308. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/ssh_key_manager.py +0 -0
  309. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/telemetry.py +0 -0
  310. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/terradev_engine.py +0 -0
  311. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/trace_viewer.py +0 -0
  312. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/warm_pool_manager.py +0 -0
  313. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/weight_streaming_benchmarks.py +0 -0
  314. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/core/weight_streaming_manager.py +0 -0
  315. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/cost_optimizer.py +0 -0
  316. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/credential_prompt.py +0 -0
  317. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/demo.py +0 -0
  318. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/entry_point.py +0 -0
  319. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/integrations/Terradev LOGO BLACK.png +0 -0
  320. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/integrations/Terradev LOGO WHITEW.png +0 -0
  321. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/integrations/__init__.py +0 -0
  322. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/integrations/databricks_integration.py +0 -0
  323. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/integrations/datadog_integration.py +0 -0
  324. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/integrations/helicone_integration.py +0 -0
  325. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/integrations/prometheus_integration.py +0 -0
  326. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/integrations/wandb_integration.py +0 -0
  327. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/k8s/terraform_wrapper.py +0 -0
  328. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/kubernetes/inferx-cost-optimized.yaml +0 -0
  329. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/kubernetes/inferx-infrastructure.yaml +0 -0
  330. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/kubernetes/inferx-models.yaml +0 -0
  331. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/kubernetes/inferx-platform.yaml +0 -0
  332. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/kubernetes/inferx_setup.py +0 -0
  333. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/mcp/__init__.py +0 -0
  334. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/ml_services/__init__.py +0 -0
  335. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/ml_services/drift_retrain_service.py +0 -0
  336. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/ml_services/dvc_service.py +0 -0
  337. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/ml_services/guardrails_service.py +0 -0
  338. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/ml_services/huggingface_service.py +0 -0
  339. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/ml_services/kserve_service.py +0 -0
  340. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/ml_services/kubernetes_service.py +0 -0
  341. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/ml_services/langchain_service.py +0 -0
  342. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/ml_services/langfuse_service.py +0 -0
  343. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/ml_services/langgraph_service.py +0 -0
  344. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/ml_services/lmcache_service.py +0 -0
  345. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/ml_services/mlflow_service.py +0 -0
  346. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/ml_services/model_router.py +0 -0
  347. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/ml_services/ollama_service.py +0 -0
  348. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/ml_services/phoenix_service.py +0 -0
  349. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/ml_services/qdrant_service.py +0 -0
  350. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/ml_services/ray_enhanced.py +0 -0
  351. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/ml_services/ray_service.py +0 -0
  352. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/ml_services/sglang_service.py +0 -0
  353. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/ml_services/wandb_enhanced.py +0 -0
  354. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/optimization/__init__.py +0 -0
  355. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/optimization/auto_optimizer.py +0 -0
  356. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/optimization/cuco_optimizer.py +0 -0
  357. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/LATITUDE_PROVIDER.md +0 -0
  358. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/__init__.py +0 -0
  359. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/alibaba_provider.py +0 -0
  360. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/aws_provider.py +0 -0
  361. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/azure_provider.py +0 -0
  362. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/baseten_provider.py +0 -0
  363. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/coreweave_provider.py +0 -0
  364. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/crusoe_provider.py +0 -0
  365. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/demo_mode.py +0 -0
  366. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/digitalocean_provider.py +0 -0
  367. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/e2e_networks_provider.py +0 -0
  368. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/fluidstack_provider.py +0 -0
  369. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/gcp_provider.py +0 -0
  370. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/hetzner_provider.py +0 -0
  371. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/huggingface_provider.py +0 -0
  372. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/hyperstack_provider.py +0 -0
  373. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/inferx_provider.py +0 -0
  374. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/lambda_labs_provider.py +0 -0
  375. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/latitude_provider.py +0 -0
  376. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/oracle_provider.py +0 -0
  377. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/ovhcloud_provider.py +0 -0
  378. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/provider_factory.py +0 -0
  379. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/real_pricing.py +0 -0
  380. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/runpod_provider.py +0 -0
  381. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/siliconflow_provider.py +0 -0
  382. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/tensordock_provider.py +0 -0
  383. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/vastai_provider.py +0 -0
  384. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/providers/yottalabs_provider.py +0 -0
  385. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/requirements.txt +0 -0
  386. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/requirements_minimal.txt +0 -0
  387. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/main.tf +0 -0
  388. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/__init__.py +0 -0
  389. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/gpu-node-aws/bootstrap.sh +0 -0
  390. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/gpu-node-aws/main.tf +0 -0
  391. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/gpu-node-aws/outputs.tf +0 -0
  392. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/gpu-node-aws/variables.tf +0 -0
  393. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/gpu-node-aws/versions.tf +0 -0
  394. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/gpu-node-hyperstack/bootstrap.sh +0 -0
  395. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/gpu-node-hyperstack/main.tf +0 -0
  396. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/gpu-node-hyperstack/outputs.tf +0 -0
  397. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/gpu-node-hyperstack/variables.tf +0 -0
  398. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/gpu-node-hyperstack/versions.tf +0 -0
  399. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/gpu-node-lambda/bootstrap.sh +0 -0
  400. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/gpu-node-lambda/main.tf +0 -0
  401. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/gpu-node-lambda/outputs.tf +0 -0
  402. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/gpu-node-lambda/variables.tf +0 -0
  403. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/gpu-node-lambda/versions.tf +0 -0
  404. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/gpu-node-vastai/bootstrap.sh +0 -0
  405. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/gpu-node-vastai/main.tf +0 -0
  406. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/gpu-node-vastai/outputs.tf +0 -0
  407. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/gpu-node-vastai/variables.tf +0 -0
  408. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/gpu-node-vastai/versions.tf +0 -0
  409. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/k8s-control-plane/join-script.tpl +0 -0
  410. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/k8s-control-plane/kubeconfig.tpl +0 -0
  411. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/k8s-control-plane/main.tf +0 -0
  412. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/k8s-control-plane/outputs.tf +0 -0
  413. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/k8s-control-plane/variables.tf +0 -0
  414. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/k8s-control-plane/versions.tf +0 -0
  415. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/networking/main.tf +0 -0
  416. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/networking/outputs.tf +0 -0
  417. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/networking/variables.tf +0 -0
  418. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/modules/networking/versions.tf +0 -0
  419. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/outputs.tf +0 -0
  420. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/price-optimizer/optimal-allocation.py +0 -0
  421. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/providers.tf +0 -0
  422. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/terraform/variables.tf +0 -0
  423. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/test_summary.py +0 -0
  424. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/utils/__init__.py +0 -0
  425. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli/utils/formatters.py +0 -0
  426. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli.egg-info/dependency_links.txt +0 -0
  427. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli.egg-info/entry_points.txt +0 -0
  428. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli.egg-info/requires.txt +0 -0
  429. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terradev_cli.egg-info/top_level.txt +0 -0
  430. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terraform.tfvars.example +0 -0
  431. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terraform_optimization/backend.tf +0 -0
  432. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terraform_optimization/error_handling.py +0 -0
  433. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terraform_optimization/parallel_provisioning.tf +0 -0
  434. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terraform_optimization/storage_choice_matrix.py +0 -0
  435. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terraform_optimization/test_error_handler.py +0 -0
  436. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terraform_optimization/versions.tf +0 -0
  437. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terraform_transparency/audit_demo/trail_3caed73ad5bf.json +0 -0
  438. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terraform_transparency/audit_trail.py +0 -0
  439. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terraform_transparency/audit_trails.json +0 -0
  440. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terraform_transparency/decision_engine.py +0 -0
  441. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terraform_transparency/decision_logs.json +0 -0
  442. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terraform_transparency/operations.json +0 -0
  443. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terraform_transparency/terraform_manager.py +0 -0
  444. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terraform_transparency/terraform_plans.json +0 -0
  445. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terraform_transparency/transparency_demo.py +0 -0
  446. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/terraform_transparency/transparency_report.json +0 -0
  447. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/CREDENTIAL_STRATEGY.md +0 -0
  448. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/INTEGRATION_STRATEGY.md +0 -0
  449. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/Makefile +0 -0
  450. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/ci_pipeline.py +0 -0
  451. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/conftest.py +0 -0
  452. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/root_tests/test_cli_ux_battle.py +0 -0
  453. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/root_tests/test_cli_ux_battle_fixed.py +0 -0
  454. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/root_tests/test_cli_ux_final.py +0 -0
  455. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/root_tests/test_final_integration.py +0 -0
  456. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/root_tests/test_integrated_optimization.py +0 -0
  457. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/root_tests/test_p10_production_failover.py +0 -0
  458. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/root_tests/test_sso_phase1.py +0 -0
  459. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/root_tests/test_vllm_optimization.py +0 -0
  460. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/simple_test.py +0 -0
  461. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/test_ai_integrations.py +0 -0
  462. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/test_checkpoint_manager.py +0 -0
  463. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/test_cli_smoke.py +0 -0
  464. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/test_dag_executor.py +0 -0
  465. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/test_flashoptim.py +0 -0
  466. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/test_integration.py +0 -0
  467. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/test_job_state_manager.py +0 -0
  468. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/test_k8s_regression.py +0 -0
  469. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/test_latitude_provider.py +0 -0
  470. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/test_major_providers.py +0 -0
  471. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/test_mcp_handlers.py +0 -0
  472. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/test_new_providers.py +0 -0
  473. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/test_provider_conformance.py +0 -0
  474. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/test_providers.py +0 -0
  475. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/test_semantic_router.py +0 -0
  476. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/test_sglang_optimization.py +0 -0
  477. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/test_ssh_key_manager.py +0 -0
  478. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/test_training_monitor.py +0 -0
  479. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/test_training_orchestrator.py +0 -0
  480. {terradev_cli-5.2.1 → terradev_cli-5.3.1}/tests/test_vllm_features.py +0 -0
@@ -1,5 +1,5 @@
1
1
  # Terradev CLI BNF Grammar
2
- # Complete syntax specification for all commands and options — v3.6.2
2
+ # Complete syntax specification for all commands and options — v5.3.0
3
3
 
4
4
  <terradev-cli> ::= <global-options> <command>
5
5
 
@@ -90,6 +90,7 @@
90
90
  | <triggers-commands>
91
91
  | <environments-commands>
92
92
  | <lineage-commands>
93
+ | <agent-commands>
93
94
 
94
95
 
95
96
  # ════════════════════════════════════════════════════════════════════
@@ -1053,6 +1054,53 @@
1053
1054
  <lineage-direction> ::= up | down | both
1054
1055
 
1055
1056
 
1057
+ # ════════════════════════════════════════════════════════════════════
1058
+ # AGENT FLEET COMMAND GROUP (v6.0.0)
1059
+ # ════════════════════════════════════════════════════════════════════
1060
+
1061
+ <agent-commands> ::= agent <agent-subcommand>
1062
+
1063
+ <agent-subcommand> ::=
1064
+ | plan <agent-plan-options>
1065
+ | deploy <agent-deploy-options>
1066
+ | status --fleet-id <string>
1067
+ | scale <agent-scale-options>
1068
+ | cost --fleet-id <string>
1069
+ | list
1070
+ | teardown --fleet-id <string> [--force]
1071
+
1072
+ <agent-plan-options> ::=
1073
+ --agents <integer>
1074
+ [--model <string>]
1075
+ [--reasoning <agent-reasoning-mode>]
1076
+ [--planner-gpu <gpu-type>]
1077
+ [--worker-gpu <gpu-type>]
1078
+ [--planner-count <integer>]
1079
+ [--worker-count <integer>]
1080
+ [--output <path>]
1081
+
1082
+ <agent-deploy-options> ::=
1083
+ --agents <integer>
1084
+ [--model <string>]
1085
+ [--reasoning <agent-reasoning-mode>]
1086
+ [--planner-gpu <gpu-type>]
1087
+ [--worker-gpu <gpu-type>]
1088
+ [--planner-count <integer>]
1089
+ [--worker-count <integer>]
1090
+ [--providers <provider>]...
1091
+ [--max-price <float>]
1092
+ [--dry-run]
1093
+
1094
+ <agent-scale-options> ::=
1095
+ --fleet-id <string>
1096
+ --tier <agent-tier>
1097
+ --count <integer>
1098
+ [--providers <provider>]...
1099
+
1100
+ <agent-reasoning-mode> ::= instant | deep | mixed
1101
+ <agent-tier> ::= reasoning | decode | cpu_tools
1102
+
1103
+
1056
1104
  # ════════════════════════════════════════════════════════════════════
1057
1105
  # LOCAL GPU POOL COMMAND GROUP
1058
1106
  # ════════════════════════════════════════════════════════════════════
@@ -162,9 +162,11 @@ terradev infer-deploy --model ./llama-2-7b
162
162
  └── vLLM Router (P/D disaggregation)
163
163
  ```
164
164
 
165
- **Disaggregated Prefill/Decode (advanced):**
165
+ **Disaggregated Prefill/Decode — Transport-Agnostic Layer:**
166
166
 
167
167
  ```
168
+ core/pd_transport.py — KVTransport abstraction
169
+
168
170
  Client request
169
171
  │
170
172
  ▼
@@ -172,14 +174,124 @@ vLLM Router (sticky routing by prefix hash)
172
174
  │
173
175
  ├──▶ Prefill pool (H100, compute-bound)
174
176
  │ Processes input prompt
175
- │ KV cache → NIXL zero-copy RDMA transfer
176
- │
177
+ │ KV cache block ──► TransportSelector.select(config)
178
+ │ │
179
+ │ ┌──────────────┼──────────────┐
180
+ │ ▼ ▼ ▼
181
+ │ NIXLNVLink NIXL/IB TCP fallback
182
+ │ 600 GB/s 200 GB/s 10 GB/s
183
+ │ (NVLink 4.0) (HDR IB) (always avail)
184
+ │ │ │ │
185
+ │ └──────────────┴──────────────┘
186
+ │ │
177
187
  └──▶ Decode pool (H100, memory-bound)
178
- Generates tokens
188
+ Receives KV block, generates tokens
179
189
  Subsequent requests with same prefix
180
190
  route here to reuse KV cache
181
191
  ```
182
192
 
193
+ **Transport selection priority** (probed at provision time, ~2s):
194
+
195
+ | Priority | Transport | Bandwidth | Latency | Requirement |
196
+ |----------|-----------|-----------|---------|-------------|
197
+ | 1 | NIXL/NVLink | 600 GB/s | 0.05ms | NVLink 4.0 fabric |
198
+ | 2 | NIXL/InfiniBand | 200–400 GB/s | 0.2ms | HDR/NDR IB |
199
+ | 3 | CXL 3.0 | 200 GB/s | 0.0001ms | **PLANNED** |
200
+ | 4 | RoCE RDMA | 25 GB/s | 1ms | 200GbE NIC |
201
+ | 5 | TCP fallback | 10 GB/s | 0.5ms | Always available |
202
+
203
+ **NIXL → CXL Migration Path (planned):**
204
+
205
+ ```
206
+ CURRENT (2025): NIXL protocol — zero-copy RDMA via NVLink or InfiniBand.
207
+ Prefill GPU serializes KV → RDMA transfer → Decode GPU.
208
+ Production-ready in vLLM ≥0.6.x, SGLang ≥0.4.x.
209
+
210
+ PHASE 1 (2026): NIXL + CXL co-existence.
211
+ When CXL 3.0 fabric detected (Intel Clearwater Forest /
212
+ AMD Venice), route KV through CXL pool. Fall back to NIXL.
213
+ Expected bandwidth: ~200 GB/s. Latency: ~100ns.
214
+
215
+ PHASE 2 (2026–2027): CXL-primary.
216
+ KV cache allocated in CXL shared DRAM pool, not GPU HBM.
217
+ Prefill writes directly to CXL; decode reads in-place.
218
+ No serialization, no transfer — pointer handoff only.
219
+ GPU HBM used only for model weights + active compute.
220
+ VRAM sizing changes: replace GPU_VRAM_GB with CXL_POOL_GB
221
+ in AgentTopologyPlanner._compute_kv_budget().
222
+
223
+ PHASE 3 (2027+): CXL fabric switch (Astera Labs Atlas, Microchip Igloo).
224
+ N prefill + M decode nodes share one CXL memory pool.
225
+ Multi-agent KV sharing becomes a memory management problem:
226
+ shared prefix maps to one physical address, accessed by all.
227
+ ```
228
+
229
+ ---
230
+
231
+ ### Multi-Agent KV Cache Sharing (v5.3.0)
232
+
233
+ **The problem:** Each agent independently stores its KV cache. For N agents
234
+ with 70% shared context (system prompt + task), the shared portion is stored
235
+ N times — pure waste that scales linearly with fleet size.
236
+
237
+ **The math** (from `core/kv_sharing.py`):
238
+
239
+ ```
240
+ 20 agents × Llama-70B × 32K context (fp16):
241
+ KV per agent: 32K × 80 layers × 512 bytes/tok/layer ÷ 2 = 0.655 GB
242
+ Naive (N copies): 20 × 0.655 = 13.1 GB per GPU slot
243
+
244
+ With broadcast sharing (70% shared = 22.4K shared, 9.6K unique):
245
+ Shared KV (stored once): 22.4K × 0.0205 GB/K = 0.46 GB
246
+ Per-agent unique KV: 9.6K × 0.0205 GB/K = 0.197 GB each
247
+ Total fleet KV: 0.46 + 20 × 0.197 = 4.4 GB
248
+ Saving: 13.1 - 4.4 = 8.7 GB (66% reduction)
249
+ → 3× more agents per GPU
250
+ → 3× fewer GPUs needed
251
+ → ~$14/hr savings on a 20-agent H100 fleet
252
+
253
+ Eviction cost without sharing (H100 SXM, 32K context):
254
+ Re-prefill time: 32,768 / 30,000 tokens/sec ≈ 1.1s per eviction
255
+ With 20 agents on 6 GPUs (6 fit per GPU = 36 slots): no evictions
256
+ With 20 agents on 2 GPUs (6 fit per GPU = 12 slots): ~8 overflow agents
257
+ → 8 × 3,600 / 30s turns × 1.1s = 1,056s/hr wasted ≈ 29% throughput lost
258
+ ```
259
+
260
+ **CLI:**
261
+ ```
262
+ terradev provision -g H100 --agents 20 --context 32k --model-name llama-70b
263
+ terradev provision -g H100 --agents 20 --context 32k --sharing-topology broadcast --dry-run
264
+ ```
265
+
266
+ **Output** (what no other CLI computes today):
267
+ ```
268
+ KV Sharing Plan — 20 agents × llama-70b @ 32K ctx
269
+ Topology: broadcast | Shared prefix: 22K tokens
270
+
271
+ VRAM without sharing: 13.1 GB (6 agents/GPU → 4 GPUs needed)
272
+ VRAM with sharing: 4.4 GB (18 agents/GPU → 2 GPUs needed)
273
+ Saving: 8.7 GB (66% reduction)
274
+
275
+ Cost/hr without sharing: $9.96
276
+ Cost/hr with sharing: $4.98 (saves $4.98/hr = $119/day)
277
+ ✓ With sharing: re-prefill overhead negligible (<1%)
278
+
279
+ TIER INSTANCES GPU TP CONC CONTEXT $/HR
280
+ ────────────────────────────────────────────────────────────────────
281
+ reasoning 2 H100_SXM 1 4 32K $ 4.98
282
+ decode 2 A100_SXM_80 2 2 32K $ 5.96
283
+ cpu_tools 3 CPU 1 10 n/a $ 1.80
284
+ ────────────────────────────────────────────────────────────────────
285
+ TOTAL $12.74/hr
286
+ ```
287
+
288
+ **New files:**
289
+ - `core/pd_transport.py` — `KVTransport` ABC, `NIXLNVLinkTransport`, `NIXLIBTransport`,
290
+ `CXLTransport` (stub, Phase 1), `RDMARoCETransport`, `TCPFallbackTransport`,
291
+ `TransportSelector`, `transfer_time_ms()`
292
+ - `core/kv_sharing.py` — `MultiAgentVRAMPlanner`, `KVSharingPlan`, `AgentKVBudget`,
293
+ `EvictionCostModel`, `SharingTopology` enum
294
+
183
295
  ### Kubernetes Layer
184
296
 
185
297
  ```
@@ -335,14 +447,84 @@ environment_manager
335
447
 
336
448
  ---
337
449
 
450
+ ## Agentic Fleet Provisioning (v5.3.0)
451
+
452
+ Purpose-built heterogeneous GPU fleet management for multi-agent LLM workloads.
453
+ Research basis: arXiv:2605.26297 "Agentic AI Workload Characteristics" (2026).
454
+
455
+ **Key empirical findings driving the design:**
456
+ - Decode dominates: 91–98% of LLM execution time is decode, not prefill
457
+ - KV cache hit rates: 84.6–99.5% when context stays resident — eviction = recompute
458
+ - Context footprint: avg 37K–80K tokens, P95 tail up to 166K tokens
459
+ - Tool execution: 2–29% of total runtime (retrieval workloads: 25–29%)
460
+
461
+ ```
462
+ terradev agent deploy --agents 16 --model meta-llama/Llama-3.1-70B-Instruct
463
+ │
464
+ ├── AgentTopologyPlanner.infer_from_agent_count(n=16, model)
465
+ │ ├── Parse model size (70B)
466
+ │ ├── Select reasoning GPU: H100 SXM (KV cache preservation)
467
+ │ ├── Select decode GPU: A100 SXM 80GB × 2 (TP=2, bandwidth-optimised)
468
+ │ ├── CPU tools: 48-vCPU instances (Bash/WebFetch/file ops)
469
+ │ └── AgentFleetSpec [fleet_id, tiers, networking, autoscaling, cost]
470
+ │
471
+ ├── AgenticProvisioner.provision_fleet(spec)
472
+ │ ├── Wave 0: quote_reasoning ‖ quote_decode ‖ quote_cpu
473
+ │ ├── Wave 1: provision_reasoning ‖ provision_decode ‖ provision_cpu
474
+ │ │ (via ParallelProvisioner across configured clouds)
475
+ │ ├── Wave 2: configure_networking (placement group, VPC peering)
476
+ │ ├── Wave 3: deploy_reasoning_inference ‖ deploy_decode_inference
477
+ │ │ (vLLM: --enable-prefix-caching, --kv-connector=offloading)
478
+ │ └── Wave 4: register_fleet → ~/.terradev/fleets/<fleet_id>.json
479
+ │
480
+ └── InferenceRouter (KV prefix-aware routing)
481
+ ├── PrefixCacheIndex: route by prompt prefix hash
482
+ ├── Sticky routing: X-Agent-Id header → same pod
483
+ └── Preserves KV residency across agent turns
484
+ ```
485
+
486
+ **Three-tier hardware model:**
487
+
488
+ | Tier | Hardware | Optimised For | Autoscale Signal |
489
+ |------|----------|---------------|------------------|
490
+ | reasoning | H100 SXM 80GB | KV cache preservation, long context | TTFT p95 > 2000ms |
491
+ | decode | A100 SXM 80GB × 2 (TP=2) | Memory bandwidth, token throughput | Decode queue depth > 6 |
492
+ | cpu_tools | 48-vCPU (no GPU) | Bash, WebFetch, Read/Edit/Grep | Tool latency p95 > 400ms |
493
+
494
+ **Why NOT GPU utilization for autoscaling:**
495
+ Agentic workloads are inherently bursty — GPU utilization oscillates between 0% (tool
496
+ execution) and 100% (decode burst) within a single agent turn. TTFT and queue depth
497
+ are stable signals that reflect actual user-visible latency.
498
+
499
+ **CLI commands:**
500
+ ```
501
+ terradev agent plan --agents 16 --model ... # size fleet, show cost
502
+ terradev agent deploy --agents 16 --model ... # provision all tiers
503
+ terradev agent status --fleet-id ag_xxx # KV hit rate, TTFT, queue
504
+ terradev agent scale --fleet-id ag_xxx --tier decode --count 8
505
+ terradev agent cost --fleet-id ag_xxx # per-tier spend breakdown
506
+ terradev agent list # all known fleets
507
+ terradev agent teardown --fleet-id ag_xxx # destroy + remove state
508
+ ```
509
+
510
+ **MCP tools (6 new in v6.0.0):**
511
+ `agent_topology_plan`, `agent_fleet_provision`, `agent_fleet_status`,
512
+ `agent_fleet_scale`, `agent_fleet_cost`, `agent_fleet_teardown`
513
+
514
+ ---
515
+
338
516
  ## File Map
339
517
 
340
518
  ```
341
519
  terradev_cli/
342
- cli.py Main CLI (~11,600 lines, Click)
520
+ cli.py Main CLI (~14,400 lines, Click)
343
521
  cli_karpenter.py Karpenter subcommand group
344
522
  cli_hf_spaces.py HuggingFace Spaces subcommand group
345
523
  core/
524
+ agentic_topology.py AgentFleetSpec, AgentTopologyPlanner (v5.3.0)
525
+ agentic_provisioner.py AgenticProvisioner, fleet state mgmt (v5.3.0)
526
+ pd_transport.py Transport-agnostic P/D KV layer (v5.3.0)
527
+ kv_sharing.py Multi-agent KV sharing VRAM planner (v5.3.0)
346
528
  training_orchestrator.py DeepSpeed/torchrun/FlashOptim
347
529
  provision_orchestrator.py Parallel provision + NUMA
348
530
  evaluation_orchestrator.py Model/endpoint evaluation
@@ -350,6 +532,10 @@ terradev_cli/
350
532
  cost_tracker.py Spend tracking
351
533
  price_intelligence.py Spot market analytics + ML
352
534
  trace_viewer.py Phoenix span tree renderer
535
+ dag_executor.py Wave-parallel DAG execution (Rust-backed)
536
+ parallel_provisioner.py Multi-cloud parallel provisioning
537
+ warm_pool_manager.py Pre-warming strategies for bursty workloads
538
+ inference_router.py KV prefix-aware routing + auto-failover
353
539
  ml_services/
354
540
  __init__.py
355
541
  vllm_service.py vLLM config + LoRA + sleep
@@ -364,10 +550,13 @@ terradev_cli/
364
550
  kubernetes_service.py
365
551
  kubernetes_enhanced.py GPU operator, MIG, monitoring
366
552
  clusters/
553
+ agentic-template/ Heterogeneous agent fleet (v6.0.0)
554
+ helm/values-agentic.yaml Three-tier Helm values
555
+ k8s/fleet-manifests.yaml Deployments, HPAs, NetworkPolicies, Karpenter
367
556
  moe-template/ MoE K8s + Helm (all opts auto-applied)
368
557
  rag-template/ Qdrant + Phoenix + Guardrails
369
558
  glm-5/ GLM-5 production templates
370
- rust/ NVML bindings, DAG orchestrator
559
+ rust/ NVML bindings, DAG orchestrator, MCP codec
371
560
  terradev-mcp/
372
- terradev_mcp.py 218-tool MCP server (~6,700 lines)
561
+ terradev_mcp.py 304-tool MCP server (~8,700 lines)
373
562
  ```
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: terradev-cli
3
- Version: 5.2.1
3
+ Version: 5.3.1
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.2.1
96
+ # Terradev CLI v5.3.1
97
97
 
98
98
  **An imperative command-line-interface for AI workload orchestration.**
99
99
 
@@ -105,6 +105,20 @@ 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
+
110
+ Added **transport-agnostic Prefill/Decode (P/D) disaggregation layer** and **multi-agent KV cache sharing planner**:
111
+
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).
113
+
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% → 3× more agents per GPU, 3× fewer GPUs needed, ~$14/hr savings on H100 fleet. Includes `EvictionCostModel` to quantify re-prefill penalty when VRAM is under-provisioned.
115
+
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:
117
+ ```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
120
+ ```
121
+
108
122
  **NOTES ON 5.2.1**
109
123
 
110
124
  Added two new BYOAPI providers: **Yotta Labs (Shakti Cloud)** and **E2E Networks** — India's leading GPU clouds. Yotta Labs uses a pod-based compute model (similar to RunPod), and E2E Networks is a traditional VM-style hyperscaler that is NSE-listed and MeitY empanelled. Both are BYOAPI: your key, stored locally, never touches a Terradev server.
@@ -1,4 +1,4 @@
1
- # Terradev CLI v5.2.1
1
+ # Terradev CLI v5.3.1
2
2
 
3
3
  **An imperative command-line-interface for AI workload orchestration.**
4
4
 
@@ -10,6 +10,20 @@ 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
+
15
+ Added **transport-agnostic Prefill/Decode (P/D) disaggregation layer** and **multi-agent KV cache sharing planner**:
16
+
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).
18
+
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% → 3× more agents per GPU, 3× fewer GPUs needed, ~$14/hr savings on H100 fleet. Includes `EvictionCostModel` to quantify re-prefill penalty when VRAM is under-provisioned.
20
+
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:
22
+ ```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
25
+ ```
26
+
13
27
  **NOTES ON 5.2.1**
14
28
 
15
29
  Added two new BYOAPI providers: **Yotta Labs (Shakti Cloud)** and **E2E Networks** — India's leading GPU clouds. Yotta Labs uses a pod-based compute model (similar to RunPod), and E2E Networks is a traditional VM-style hyperscaler that is NSE-listed and MeitY empanelled. Both are BYOAPI: your key, stored locally, never touches a Terradev server.
@@ -0,0 +1,222 @@
1
+ # Agentic Fleet Helm Values
2
+ #
3
+ # Three-tier heterogeneous GPU fleet for multi-agent LLM workloads.
4
+ # Grounded in arXiv:2605.26297 — decode dominates (91-98%), KV cache hit
5
+ # rates 84-99%, context footprint 37K-166K tokens.
6
+ #
7
+ # Usage:
8
+ # helm install agent-fleet ./charts/agentic-fleet -f values-agentic.yaml
9
+ #
10
+ # Tiers:
11
+ # reasoning — H100 SXM, KV cache preservation, long context
12
+ # decode — A100 80GB, memory-bandwidth-optimised token streaming
13
+ # cpu_tools — High-vCPU, Bash/WebFetch/file-op tool execution
14
+
15
+ global:
16
+ model: "meta-llama/Llama-3.1-70B-Instruct"
17
+ fleet_id: "" # set by terradev agent deploy
18
+ n_agents: 16
19
+ image:
20
+ repository: vllm/vllm-openai
21
+ tag: latest
22
+ pullPolicy: IfNotPresent
23
+
24
+ # ── Reasoning tier ────────────────────────────────────────────────────────────
25
+ # KV preservation is the primary objective.
26
+ # Research: context averages 37K-80K tokens; we provision for 120K (P95 tail).
27
+ # Failed agents accumulate MORE context — provision for the tail, not the mean.
28
+ reasoning:
29
+ enabled: true
30
+ replicaCount: 2
31
+ gpu:
32
+ type: "H100_SXM"
33
+ countPerPod: 1
34
+ resources:
35
+ limits:
36
+ nvidia.com/gpu: "1"
37
+ memory: "200Gi"
38
+ cpu: "16"
39
+ requests:
40
+ nvidia.com/gpu: "1"
41
+ memory: "180Gi"
42
+ cpu: "12"
43
+ vllm:
44
+ tensorParallelSize: 1
45
+ maxModelLen: 120000 # 120K context budget (arXiv P95 tail)
46
+ gpuMemoryUtilization: 0.90
47
+ enablePrefixCaching: true # CRITICAL: 84-99% KV hit rate requires this
48
+ kvConnector: "offloading" # CPU offload when under pressure (avoid eviction)
49
+ speculativeConfig:
50
+ method: "mtp"
51
+ enableSleepMode: true
52
+ maxNumSeqs: 8 # concurrency per instance
53
+ serveOnPort: 8000
54
+ autoscaling:
55
+ enabled: true
56
+ minReplicas: 1
57
+ maxReplicas: 8
58
+ metrics:
59
+ # Scale on TTFT degradation, NOT GPU utilization (bursty workload)
60
+ - type: External
61
+ external:
62
+ metric:
63
+ name: vllm_request_ttft_seconds_p95
64
+ target:
65
+ type: Value
66
+ value: "2" # 2 seconds TTFT threshold
67
+ scaleInCooldown: 300 # 5 min — protect KV cache from eviction during scale-in
68
+ scaleOutCooldown: 30
69
+ nodeSelector:
70
+ terradev.ai/tier: reasoning
71
+ cloud.google.com/gke-accelerator: nvidia-h100-sxm
72
+
73
+ # ── Decode tier ───────────────────────────────────────────────────────────────
74
+ # Memory-bandwidth-optimised for token streaming.
75
+ # A100 SXM 80GB: 2 TB/s HBM2e — sweet spot for 70B decode at batch=8.
76
+ # Research: decode = 91-98% of LLM time → optimise for throughput here.
77
+ decode:
78
+ enabled: true
79
+ replicaCount: 4 # default for 16 agents; adjusted by agentic_provisioner.py
80
+ gpu:
81
+ type: "A100_SXM_80"
82
+ countPerPod: 2 # TP=2 for 70B model (140GB weights need 2 × 80GB)
83
+ resources:
84
+ limits:
85
+ nvidia.com/gpu: "2"
86
+ memory: "400Gi"
87
+ cpu: "16"
88
+ requests:
89
+ nvidia.com/gpu: "2"
90
+ memory: "350Gi"
91
+ cpu: "12"
92
+ vllm:
93
+ tensorParallelSize: 2
94
+ maxModelLen: 120000
95
+ gpuMemoryUtilization: 0.90
96
+ enablePrefixCaching: true
97
+ kvConnector: "offloading"
98
+ speculativeConfig:
99
+ method: "mtp"
100
+ enableSleepMode: true
101
+ maxNumSeqs: 16 # higher concurrency — decode tier handles bulk of traffic
102
+ serveOnPort: 8001
103
+ autoscaling:
104
+ enabled: true
105
+ minReplicas: 1
106
+ maxReplicas: 32
107
+ metrics:
108
+ # Scale on decode queue depth (backlog of pending tool-call continuations)
109
+ - type: External
110
+ external:
111
+ metric:
112
+ name: vllm_num_requests_waiting
113
+ target:
114
+ type: Value
115
+ value: "6" # >6 waiting requests → scale out
116
+ scaleInCooldown: 90
117
+ scaleOutCooldown: 15
118
+ nodeSelector:
119
+ terradev.ai/tier: decode
120
+ cloud.google.com/gke-accelerator: nvidia-a100-80gb
121
+
122
+ # ── CPU tools tier ────────────────────────────────────────────────────────────
123
+ # For Bash, Read/Edit/Grep, WebFetch/WebSearch tool execution.
124
+ # Research: tools = 2-29% of runtime. GAIA (retrieval) hits 25-29%.
125
+ # High vCPU count (48) enables parallel tool call fan-out across agent steps.
126
+ cpuTools:
127
+ enabled: true
128
+ replicaCount: 2
129
+ resources:
130
+ limits:
131
+ memory: "96Gi"
132
+ cpu: "48"
133
+ requests:
134
+ memory: "64Gi"
135
+ cpu: "32"
136
+ image:
137
+ repository: terradev/agent-tool-runner
138
+ tag: latest
139
+ env:
140
+ MAX_CONCURRENT_TOOLS: "64"
141
+ BASH_TIMEOUT_S: "30"
142
+ WEBFETCH_TIMEOUT_S: "15"
143
+ TOOL_QUEUE_DEPTH_WARN: "8"
144
+ autoscaling:
145
+ enabled: true
146
+ minReplicas: 1
147
+ maxReplicas: 16
148
+ metrics:
149
+ - type: Resource
150
+ resource:
151
+ name: cpu
152
+ target:
153
+ type: Utilization
154
+ averageUtilization: 70
155
+ # Also scale on p95 tool latency
156
+ - type: External
157
+ external:
158
+ metric:
159
+ name: agent_tool_execution_latency_p95_ms
160
+ target:
161
+ type: Value
162
+ value: "400" # 400ms p95 threshold
163
+ scaleInCooldown: 30
164
+ scaleOutCooldown: 10
165
+ nodeSelector:
166
+ terradev.ai/tier: cpu-tools
167
+
168
+ # ── Inference router (optional) ───────────────────────────────────────────────
169
+ # Routes agent requests: KV prefix-aware routing to the instance most likely
170
+ # to have the context cached (avoids redundant prefill recompute).
171
+ # Uses existing InferenceRouter.PrefixCacheIndex from inference_router.py.
172
+ router:
173
+ enabled: true
174
+ replicaCount: 1
175
+ image:
176
+ repository: terradev/inference-router
177
+ tag: latest
178
+ config:
179
+ # Route reasoning requests to reasoning tier
180
+ reasoningEndpoint: "http://reasoning-svc:8000"
181
+ # Route decode requests to decode tier
182
+ decodeEndpoint: "http://decode-svc:8001"
183
+ # KV prefix cache index: route by prompt prefix hash
184
+ prefixCacheEnabled: true
185
+ prefixCacheMaxEntries: 10000
186
+ prefixTokens: 64
187
+ # Sticky routing: same agent_id → same pod (preserves KV residency)
188
+ stickyRouting: true
189
+ stickyHeader: "X-Agent-Id"
190
+
191
+ # ── Monitoring ────────────────────────────────────────────────────────────────
192
+ # Prometheus metrics for autoscaling signal derivation.
193
+ # Key metrics: vllm_kv_cache_usage_perc, vllm_num_requests_waiting,
194
+ # vllm_request_ttft_seconds (histogram), agent_tool_execution_latency_ms
195
+ monitoring:
196
+ enabled: true
197
+ prometheus:
198
+ enabled: true
199
+ serviceMonitor: true
200
+ scrapeInterval: 10s
201
+ grafana:
202
+ enabled: true
203
+ dashboards:
204
+ agentFleet: true # KV hit rate, TTFT, queue depth, tier cost
205
+ dcgm:
206
+ enabled: true # GPU memory utilization, bandwidth saturation
207
+ alerts:
208
+ kvHitRateBelow: 0.80 # arXiv threshold for healthy caching
209
+ ttftP95AboveMs: 2000 # reasoning tier TTFT threshold
210
+ decodeQueueDepthAbove: 8 # decode backlog alert
211
+ toolLatencyP95AboveMs: 500
212
+
213
+ # ── Networking ────────────────────────────────────────────────────────────────
214
+ networking:
215
+ placementGroup: cluster # co-locate all tiers in same AZ for low latency
216
+ interTierLatencyTargetMs: 2
217
+ bandwidthGbps: 25
218
+ rdmaEnabled: false # enable for 70B+ models requiring KV RDMA transfer
219
+ networkPolicies:
220
+ enabled: true
221
+ # Only reasoning and decode tiers can talk to each other
222
+ # CPU tools tier can only reach external APIs and result consumers