terradev-cli 3.7.6__tar.gz → 3.7.7__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 (432) hide show
  1. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/PKG-INFO +42 -2
  2. {terradev_cli-3.7.6/terradev_cli → terradev_cli-3.7.7}/README.md +41 -1
  3. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/pyproject.toml +1 -1
  4. {terradev_cli-3.7.6 → terradev_cli-3.7.7/terradev_cli}/README.md +41 -1
  5. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/__init__.py +1 -1
  6. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/cli.py +286 -1
  7. terradev_cli-3.7.7/terradev_cli/ml_services/sglang_service.py +1259 -0
  8. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli.egg-info/PKG-INFO +42 -2
  9. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli.egg-info/SOURCES.txt +1 -0
  10. terradev_cli-3.7.7/tests/test_sglang_optimization.py +595 -0
  11. terradev_cli-3.7.6/terradev_cli/ml_services/sglang_service.py +0 -526
  12. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/.clawhubignore +0 -0
  13. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/.ebextensions/python.config +0 -0
  14. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/.env.example +0 -0
  15. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/.env.template +0 -0
  16. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/.github/workflows/ci.yml +0 -0
  17. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/.github/workflows/deploy.yml +0 -0
  18. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/.github/workflows/release.yml +0 -0
  19. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/.github/workflows/static.yml +0 -0
  20. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/BingSiteAuth.xml +0 -0
  21. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/CHANGELOG_v3.7.1.md +0 -0
  22. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/CUCO_INTEGRATION_GUIDE.md +0 -0
  23. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/Dockerfile +0 -0
  24. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/Dockerfile.hub +0 -0
  25. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/LICENSE +0 -0
  26. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/MANIFEST.in +0 -0
  27. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/PAGES_README.md +0 -0
  28. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/PROGRESS_UPDATE_JUPYTER.ipynb +0 -0
  29. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/README_ACTION.md +0 -0
  30. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/README_DOCKER.md +0 -0
  31. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/README_JUPYTER.md +0 -0
  32. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/README_long.md +0 -0
  33. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/SKILL.md +0 -0
  34. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/USER_GUIDE.md +0 -0
  35. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/VLLM_AUTO_OPTIMIZATION_GUIDE.md +0 -0
  36. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/VLLM_OPTIMIZATION_GUIDE.md +0 -0
  37. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/VLLM_OPTIMIZATION_SUMMARY.md +0 -0
  38. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/action.py +0 -0
  39. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/action.yml +0 -0
  40. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/activations/973dfe463ec85785f5f95af5ba3906eedb2d931c24e69824a89ea65dba4e813b.json +0 -0
  41. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/agentic_ai_throughput_report.md +0 -0
  42. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/agentic_ai_token_throughput_analysis.png +0 -0
  43. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/agentic_ai_token_throughput_visualization.py +0 -0
  44. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/ai-discovery.json +0 -0
  45. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/analysis/api-differences-comparison.tf +0 -0
  46. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/analysis/cost-structure-differences.tf +0 -0
  47. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/analysis/inference-arbitrage-pivot.tf +0 -0
  48. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/apis/free-apis-latency-arbitrage.tf +0 -0
  49. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/aws_ssm_starter.py +0 -0
  50. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/b2b_roi_analysis.json +0 -0
  51. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/bottleneck_analysis.png +0 -0
  52. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/bottleneck_analysis_viz.py +0 -0
  53. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/bucket-policy.json +0 -0
  54. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/build_v3.7.1.sh +0 -0
  55. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/business/compute-arbitrage-business.md +0 -0
  56. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/byoapi_real_snapshot.json +0 -0
  57. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/check_logs_fix.py +0 -0
  58. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/glm-5/README.md +0 -0
  59. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/glm-5/helm/values-glm5.yaml +0 -0
  60. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/glm-5/k8s/hpa.yaml +0 -0
  61. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/glm-5/k8s/model-cache-pvc.yaml +0 -0
  62. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/glm-5/k8s/namespace.yaml +0 -0
  63. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/glm-5/k8s/pdb.yaml +0 -0
  64. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/glm-5/k8s/service.yaml +0 -0
  65. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/glm-5/k8s/sglang-deployment.yaml +0 -0
  66. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/glm-5/k8s/vllm-deployment.yaml +0 -0
  67. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/glm-5/task.yaml +0 -0
  68. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/glm-5/terraform/main.tf +0 -0
  69. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/glm-5/terraform/outputs.tf +0 -0
  70. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/glm-5/terraform/variables.tf +0 -0
  71. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/moe-template/README.md +0 -0
  72. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/moe-template/helm/values-moe.yaml +0 -0
  73. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/moe-template/k8s/deployment.yaml +0 -0
  74. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/moe-template/k8s/hpa.yaml +0 -0
  75. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/moe-template/k8s/model-cache-pvc.yaml +0 -0
  76. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/moe-template/k8s/namespace.yaml +0 -0
  77. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/moe-template/k8s/pdb.yaml +0 -0
  78. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/moe-template/k8s/service.yaml +0 -0
  79. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/moe-template/task.yaml +0 -0
  80. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/moe-template/terraform/main.tf +0 -0
  81. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/moe-template/terraform/outputs.tf +0 -0
  82. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/moe-template/terraform/variables.tf +0 -0
  83. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/rag-template/README.md +0 -0
  84. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/rag-template/helm/values-rag.yaml +0 -0
  85. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/rag-template/k8s/deployment.yaml +0 -0
  86. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/clusters/rag-template/terraform/main.tf +0 -0
  87. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/complete_weakness_resolution_report.json +0 -0
  88. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/comprehensive_throughput_quantification.png +0 -0
  89. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/comprehensive_throughput_quantification.py +0 -0
  90. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/config.json +0 -0
  91. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/data_sources_methodology.md +0 -0
  92. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/demo/RECORDING_GUIDE.md +0 -0
  93. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/demo/generate_gif.py +0 -0
  94. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/demo/terradev-demo.gif +0 -0
  95. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/demo_k8s_config.yaml +0 -0
  96. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/deploy_correct_pricing.py +0 -0
  97. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/deploy_enhanced_server.py +0 -0
  98. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/deploy_exact_servers.py +0 -0
  99. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/deploy_simple_enhanced.py +0 -0
  100. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/deploy_telemetry_aws.py +0 -0
  101. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/deploy_to_aws.py +0 -0
  102. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/direct_aws_starter.py +0 -0
  103. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/docker-compose.yml +0 -0
  104. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/docs/ADVANCED_FINANCIAL_INNOVATIONS.md +0 -0
  105. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/docs/API_DOCUMENTATION.md +0 -0
  106. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/docs/BingSiteAuth.xml +0 -0
  107. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/docs/FINOPS_ATTRIBUTION_SYSTEM.md +0 -0
  108. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/docs/USER_GUIDE.md +0 -0
  109. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/docs/architecture.md +0 -0
  110. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/docs/index.html +0 -0
  111. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/docs/robots.txt +0 -0
  112. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/docs/sitemap.xml +0 -0
  113. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/eb_deploy.zip +0 -0
  114. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/ec2_user_data_starter.py +0 -0
  115. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/fallback_server.py +0 -0
  116. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/figure_calculation_breakdown.py +0 -0
  117. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/fix_server_ports.py +0 -0
  118. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/genius_data_storage/data_compressor.py +0 -0
  119. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/genius_data_storage/genius_data_demo.py +0 -0
  120. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/genius_data_storage/integrity_verifier.py +0 -0
  121. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/genius_data_storage/main.tf +0 -0
  122. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/genius_data_storage/zero_egress_accessor.py +0 -0
  123. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/gpu-check.sh +0 -0
  124. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/grafana_training_dashboard.json +0 -0
  125. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/helm/terradev/Chart.yaml +0 -0
  126. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/helm/terradev/templates/_helpers.tpl +0 -0
  127. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/helm/terradev/templates/deployment.yaml +0 -0
  128. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/helm/terradev/values.yaml +0 -0
  129. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/high_throughput_workload.json +0 -0
  130. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/index.html +0 -0
  131. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/infrastructure/kubernetes/microservices.yaml +0 -0
  132. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/infrastructure/terraform/main.tf +0 -0
  133. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/infrastructure/terraform/parallelism.tf +0 -0
  134. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/integrations/cli-tool.tf +0 -0
  135. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/integrations/cloud-management-widgets.tf +0 -0
  136. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/integrations/cloud-provider-apis.py +0 -0
  137. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/integrations/critical-widgets.tf +0 -0
  138. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/integrations/devops-cicd-widgets.tf +0 -0
  139. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/integrations/devops-essential-tools.tf +0 -0
  140. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/integrations/docker-integration.tf +0 -0
  141. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/integrations/kubernetes-operator.tf +0 -0
  142. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/integrations/mlflow-integration.tf +0 -0
  143. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/kaggle_notebooks/01_hf_spaces_cost_optimization.ipynb +0 -0
  144. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/kubernetes_training_deployment.yaml +0 -0
  145. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/latency_throughput_tradeoff.png +0 -0
  146. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/latency_throughput_tradeoff_viz.py +0 -0
  147. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/llms.txt +0 -0
  148. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/memory_scaling_analysis.png +0 -0
  149. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/memory_scaling_viz.py +0 -0
  150. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/modules/datadog/README.md +0 -0
  151. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/modules/datadog/dashboard.tf +0 -0
  152. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/modules/datadog/monitors.tf +0 -0
  153. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/modules/datadog/outputs.tf +0 -0
  154. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/modules/datadog/provider.tf +0 -0
  155. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/modules/datadog/variables.tf +0 -0
  156. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/modules/datadog/versions.tf +0 -0
  157. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/nginx.conf +0 -0
  158. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/openclaw-skill/terradev-gpu-cloud/.clawhubignore +0 -0
  159. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/openclaw-skill/terradev-gpu-cloud/LICENSE +0 -0
  160. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/openclaw-skill/terradev-gpu-cloud/README.md +0 -0
  161. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/openclaw-skill/terradev-gpu-cloud/SKILL.md +0 -0
  162. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/openclaw-skill/terradev-gpu-cloud/gpu-check.sh +0 -0
  163. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/optimization_impact_viz.py +0 -0
  164. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/parallel_provisioning.tf +0 -0
  165. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/partnerships/brand-partnerships.tf +0 -0
  166. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/partnerships/partnership-roadmap.tf +0 -0
  167. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/pricing_analysis_report.json +0 -0
  168. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/production_telemetry_server.py +0 -0
  169. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/prometheus_training_config.yml +0 -0
  170. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/provision_based_pricing_analysis.json +0 -0
  171. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/pypi_traffic_report.json +0 -0
  172. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/pyproject_v2.toml +0 -0
  173. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/real_day_one_snapshot.json +0 -0
  174. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/remaining_25_analysis_report.json +0 -0
  175. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/render.yaml +0 -0
  176. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/requirements-render.txt +0 -0
  177. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/requirements.txt +0 -0
  178. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/requirements_api.txt +0 -0
  179. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/requirements_eb.txt +0 -0
  180. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/requirements_stripe.txt +0 -0
  181. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/robots.txt +0 -0
  182. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/sample_workload.json +0 -0
  183. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/server_manager.py +0 -0
  184. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/setup/Lambda Cloud API spec 1.8.3.json +0 -0
  185. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/setup/account-setup-guide.tf +0 -0
  186. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/setup/setup.sh +0 -0
  187. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/setup.cfg +0 -0
  188. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/simple_ssm_starter.py +0 -0
  189. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/sitemap.xml +0 -0
  190. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/ssh_server_starter.py +0 -0
  191. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/start_aws_servers.py +0 -0
  192. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/stripe_telemetry_server.py +0 -0
  193. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/telemetry_production.db-shm +0 -0
  194. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/telemetry_production.db-wal +0 -0
  195. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/telemetry_server.py +0 -0
  196. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/CHANGELOG.md +0 -0
  197. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/README_old.md +0 -0
  198. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/README_with_emojis.md +0 -0
  199. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/__main__.py +0 -0
  200. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/bandit-report.json +0 -0
  201. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/cli_clean.py +0 -0
  202. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/cli_enhanced.py +0 -0
  203. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/cli_final.py +0 -0
  204. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/cli_optimization.py +0 -0
  205. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/cli_optimization_fixed.py +0 -0
  206. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/cli_optimization_simple.py +0 -0
  207. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/cli_simple.py +0 -0
  208. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/cli_tiered.py +0 -0
  209. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/__init__.py +0 -0
  210. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/async_config.py +0 -0
  211. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/auth.py +0 -0
  212. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/checkpoint_manager.py +0 -0
  213. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/config.py +0 -0
  214. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/cost_scaler.py +0 -0
  215. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/cost_tracker.py +0 -0
  216. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/cuda_graph_integrator.py +0 -0
  217. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/dag_executor.py +0 -0
  218. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/data_governance.py +0 -0
  219. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/dataset_stager.py +0 -0
  220. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/deployment_router.py +0 -0
  221. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/drift_detector.py +0 -0
  222. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/egress_optimizer.py +0 -0
  223. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/enterprise_auth.py +0 -0
  224. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/gitops_manager.py +0 -0
  225. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/gpu_topology.py +0 -0
  226. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/helm_generator.py +0 -0
  227. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/helm_generator_old.py +0 -0
  228. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/hf_cli_integration.py +0 -0
  229. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/hf_smart_templates.py +0 -0
  230. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/hf_spaces.py +0 -0
  231. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/inference_router.py +0 -0
  232. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/job_state_manager.py +0 -0
  233. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/manifest_cache.py +0 -0
  234. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/manifest_example.json +0 -0
  235. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/model_orchestrator.py +0 -0
  236. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/oidc_provider.py +0 -0
  237. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/optimization_config.py +0 -0
  238. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/parallel_provisioner.py +0 -0
  239. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/preflight_validator.py +0 -0
  240. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/price_discovery.py +0 -0
  241. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/price_discovery_mock.py +0 -0
  242. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/price_intelligence.py +0 -0
  243. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/quick_start.py +0 -0
  244. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/rate_limiter.py +0 -0
  245. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/saml_provider.py +0 -0
  246. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/semantic_router.py +0 -0
  247. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/semantic_signals/__init__.py +0 -0
  248. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/semantic_signals/base_signal.py +0 -0
  249. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/semantic_signals/complexity_signal.py +0 -0
  250. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/semantic_signals/domain_signal.py +0 -0
  251. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/semantic_signals/keyword_signal.py +0 -0
  252. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/semantic_signals/language_signal.py +0 -0
  253. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/semantic_signals/modality_signal.py +0 -0
  254. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/semantic_signals/orchestrator.py +0 -0
  255. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/semantic_signals/routing_policy.yaml +0 -0
  256. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/semantic_signals/safety_signal.py +0 -0
  257. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/session_manager.py +0 -0
  258. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/ssh_key_manager.py +0 -0
  259. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/stripe_manager.py +0 -0
  260. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/telemetry.py +0 -0
  261. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/telemetry_backup.py +0 -0
  262. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/terradev_engine.py +0 -0
  263. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/tier_manager.py +0 -0
  264. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/trace_viewer.py +0 -0
  265. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/training_monitor.py +0 -0
  266. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/training_orchestrator.py +0 -0
  267. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/user_manager.py +0 -0
  268. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/core/warm_pool_manager.py +0 -0
  269. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/cost_optimizer.py +0 -0
  270. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/credential_prompt.py +0 -0
  271. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/demo.py +0 -0
  272. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/entry_point.py +0 -0
  273. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/integrations/Terradev LOGO BLACK.png +0 -0
  274. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/integrations/Terradev LOGO WHITEW.png +0 -0
  275. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/integrations/__init__.py +0 -0
  276. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/integrations/datadog_integration.py +0 -0
  277. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/integrations/prometheus_integration.py +0 -0
  278. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/integrations/wandb_integration.py +0 -0
  279. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/k8s/terraform_wrapper.py +0 -0
  280. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/kubernetes/inferx-cost-optimized.yaml +0 -0
  281. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/kubernetes/inferx-infrastructure.yaml +0 -0
  282. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/kubernetes/inferx-models.yaml +0 -0
  283. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/kubernetes/inferx-platform.yaml +0 -0
  284. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/kubernetes/inferx_setup.py +0 -0
  285. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/ml_services/__init__.py +0 -0
  286. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/ml_services/dvc_service.py +0 -0
  287. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/ml_services/guardrails_service.py +0 -0
  288. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/ml_services/huggingface_service.py +0 -0
  289. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/ml_services/kserve_service.py +0 -0
  290. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/ml_services/kubernetes_enhanced.py +0 -0
  291. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/ml_services/kubernetes_enhanced_fixed.py +0 -0
  292. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/ml_services/kubernetes_service.py +0 -0
  293. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/ml_services/langchain_service.py +0 -0
  294. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/ml_services/langgraph_service.py +0 -0
  295. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/ml_services/langsmith_service.py +0 -0
  296. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/ml_services/lmcache_service.py +0 -0
  297. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/ml_services/mlflow_service.py +0 -0
  298. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/ml_services/ollama_service.py +0 -0
  299. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/ml_services/phoenix_service.py +0 -0
  300. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/ml_services/qdrant_service.py +0 -0
  301. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/ml_services/ray_enhanced.py +0 -0
  302. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/ml_services/ray_service.py +0 -0
  303. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/ml_services/vllm_service.py +0 -0
  304. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/ml_services/wandb_enhanced.py +0 -0
  305. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/ml_services/wandb_service.py +0 -0
  306. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/optimization/__init__.py +0 -0
  307. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/optimization/auto_optimizer.py +0 -0
  308. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/optimization/cuco_optimizer.py +0 -0
  309. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/__init__.py +0 -0
  310. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/alibaba_provider.py +0 -0
  311. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/aws_provider.py +0 -0
  312. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/azure_provider.py +0 -0
  313. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/base_provider.py +0 -0
  314. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/baseten_provider.py +0 -0
  315. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/coreweave_provider.py +0 -0
  316. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/crusoe_provider.py +0 -0
  317. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/demo_mode.py +0 -0
  318. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/digitalocean_provider.py +0 -0
  319. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/fluidstack_provider.py +0 -0
  320. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/gcp_provider.py +0 -0
  321. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/hetzner_provider.py +0 -0
  322. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/huggingface_provider.py +0 -0
  323. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/hyperstack_provider.py +0 -0
  324. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/inferx_provider.py +0 -0
  325. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/lambda_labs_provider.py +0 -0
  326. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/oracle_provider.py +0 -0
  327. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/ovhcloud_provider.py +0 -0
  328. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/provider_factory.py +0 -0
  329. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/real_pricing.py +0 -0
  330. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/runpod_provider.py +0 -0
  331. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/siliconflow_provider.py +0 -0
  332. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/tensordock_provider.py +0 -0
  333. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/providers/vastai_provider.py +0 -0
  334. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/requirements.txt +0 -0
  335. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/requirements_minimal.txt +0 -0
  336. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/safety-report.json +0 -0
  337. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/setup.py +0 -0
  338. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/telemetry_protection.py +0 -0
  339. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terradev_cli/__init__.py +0 -0
  340. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terradev_cli/cli.py +0 -0
  341. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/main.tf +0 -0
  342. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/__init__.py +0 -0
  343. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/gpu-node-aws/bootstrap.sh +0 -0
  344. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/gpu-node-aws/main.tf +0 -0
  345. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/gpu-node-aws/outputs.tf +0 -0
  346. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/gpu-node-aws/variables.tf +0 -0
  347. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/gpu-node-aws/versions.tf +0 -0
  348. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/gpu-node-hyperstack/bootstrap.sh +0 -0
  349. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/gpu-node-hyperstack/main.tf +0 -0
  350. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/gpu-node-hyperstack/outputs.tf +0 -0
  351. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/gpu-node-hyperstack/variables.tf +0 -0
  352. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/gpu-node-hyperstack/versions.tf +0 -0
  353. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/gpu-node-lambda/bootstrap.sh +0 -0
  354. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/gpu-node-lambda/main.tf +0 -0
  355. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/gpu-node-lambda/outputs.tf +0 -0
  356. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/gpu-node-lambda/variables.tf +0 -0
  357. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/gpu-node-lambda/versions.tf +0 -0
  358. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/gpu-node-vastai/bootstrap.sh +0 -0
  359. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/gpu-node-vastai/main.tf +0 -0
  360. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/gpu-node-vastai/outputs.tf +0 -0
  361. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/gpu-node-vastai/variables.tf +0 -0
  362. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/gpu-node-vastai/versions.tf +0 -0
  363. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/k8s-control-plane/join-script.tpl +0 -0
  364. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/k8s-control-plane/kubeconfig.tpl +0 -0
  365. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/k8s-control-plane/main.tf +0 -0
  366. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/k8s-control-plane/outputs.tf +0 -0
  367. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/k8s-control-plane/variables.tf +0 -0
  368. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/k8s-control-plane/versions.tf +0 -0
  369. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/networking/main.tf +0 -0
  370. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/networking/outputs.tf +0 -0
  371. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/networking/variables.tf +0 -0
  372. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/modules/networking/versions.tf +0 -0
  373. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/outputs.tf +0 -0
  374. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/price-optimizer/optimal-allocation.py +0 -0
  375. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/providers.tf +0 -0
  376. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/terraform/variables.tf +0 -0
  377. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/utils/__init__.py +0 -0
  378. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli/utils/formatters.py +0 -0
  379. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli.egg-info/dependency_links.txt +0 -0
  380. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli.egg-info/entry_points.txt +0 -0
  381. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli.egg-info/requires.txt +0 -0
  382. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terradev_cli.egg-info/top_level.txt +0 -0
  383. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terraform.tfvars.example +0 -0
  384. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terraform_cli/README.md +0 -0
  385. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terraform_cli/demo_usage.py +0 -0
  386. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terraform_cli/install.sh +0 -0
  387. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terraform_cli/terradev_cli.py +0 -0
  388. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terraform_optimization/backend.tf +0 -0
  389. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terraform_optimization/error_handling.py +0 -0
  390. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terraform_optimization/storage_choice_matrix.py +0 -0
  391. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terraform_optimization/test_error_handler.py +0 -0
  392. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terraform_optimization/versions.tf +0 -0
  393. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terraform_transparency/audit_demo/trail_3caed73ad5bf.json +0 -0
  394. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terraform_transparency/audit_trail.py +0 -0
  395. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terraform_transparency/audit_trails.json +0 -0
  396. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terraform_transparency/decision_engine.py +0 -0
  397. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terraform_transparency/decision_logs.json +0 -0
  398. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terraform_transparency/operations.json +0 -0
  399. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terraform_transparency/terraform_manager.py +0 -0
  400. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terraform_transparency/terraform_plans.json +0 -0
  401. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terraform_transparency/transparency_demo.py +0 -0
  402. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/terraform_transparency/transparency_report.json +0 -0
  403. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/test_cli_telemetry.py +0 -0
  404. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/test_cli_ux_battle.py +0 -0
  405. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/test_cli_ux_battle_fixed.py +0 -0
  406. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/test_cli_ux_final.py +0 -0
  407. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/test_final_integration.py +0 -0
  408. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/test_integrated_optimization.py +0 -0
  409. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/test_p10_production_failover.py +0 -0
  410. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/test_telemetry_backend.py +0 -0
  411. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/test_vllm_optimization.py +0 -0
  412. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/tests/INTEGRATION_STRATEGY.md +0 -0
  413. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/tests/Makefile +0 -0
  414. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/tests/ci_pipeline.py +0 -0
  415. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/tests/conftest.py +0 -0
  416. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/tests/simple_test.py +0 -0
  417. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/tests/test_checkpoint_manager.py +0 -0
  418. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/tests/test_cli_smoke.py +0 -0
  419. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/tests/test_dag_executor.py +0 -0
  420. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/tests/test_integration.py +0 -0
  421. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/tests/test_job_state_manager.py +0 -0
  422. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/tests/test_providers.py +0 -0
  423. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/tests/test_semantic_router.py +0 -0
  424. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/tests/test_ssh_key_manager.py +0 -0
  425. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/tests/test_training_monitor.py +0 -0
  426. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/tests/test_training_orchestrator.py +0 -0
  427. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/throughput_comparison_analysis.png +0 -0
  428. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/throughput_comparison_viz.py +0 -0
  429. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/volatility_charts/aws_a100_volatility.png +0 -0
  430. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/volatility_charts/aws_v100_volatility.png +0 -0
  431. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/volatility_charts/runpod_a100_volatility.png +0 -0
  432. {terradev_cli-3.7.6 → terradev_cli-3.7.7}/volatility_charts/runpod_v100_volatility.png +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: terradev-cli
3
- Version: 3.7.6
3
+ Version: 3.7.7
4
4
  Summary: NUMA-aware GPU provisioning and orchestration for stateless MoE workloads of all sizes
5
5
  Author-email: Terradev Team <team@terradev.com>
6
6
  Maintainer-email: Terradev Team <team@terradev.com>
@@ -91,7 +91,7 @@ Requires-Dist: redis>=5.0.0; extra == "enterprise"
91
91
  Requires-Dist: PyJWT>=2.8.0; extra == "enterprise"
92
92
  Dynamic: license-file
93
93
 
94
- # Terradev CLI v3.7.5
94
+ # Terradev CLI v3.7.7
95
95
 
96
96
  **NUMA-aware GPU provisioning and orchestration for stateless MoE workloads of all sizes**
97
97
 
@@ -99,6 +99,46 @@ Dynamic: license-file
99
99
 
100
100
  Terradev is a cross-cloud compute-provisioning CLI that compresses + stages datasets, provisions optimal instances + nodes, and deploys **3-5x faster** than sequential provisioning.
101
101
 
102
+ ## What's New in v3.7.7
103
+
104
+ **Complete SGLang Optimization Stack**
105
+
106
+ Revolutionary workload-specific auto-optimization for SGLang serving with 7 workload types:
107
+
108
+ ### 🚀 SGLang Workload Optimizations
109
+ - **Agentic/Multi-turn Chat**: LPM + RadixAttention + cache-aware routing (75-90% cache hit rate)
110
+ - **High-Throughput Batch**: FCFS + CUDA graphs + FP8 quantization (maximum tokens/sec)
111
+ - **Low-Latency/Real-Time**: EAGLE3 + Spec V2 + capped concurrency (30-50% TTFT improvement)
112
+ - **MoE Models**: DeepEP auto + TBO/SBO + EPLB + redundant experts (up to 2x throughput)
113
+ - **PD Disaggregated**: Separate prefill/decode configurations with production optimizations
114
+ - **Structured Output/RAG**: xGrammar + FSM optimization (10x faster structured output)
115
+ - **Hardware-Specific**: H100/H200, H20, GB200, AMD MI300X optimizations
116
+
117
+ ### 🎯 Auto-Apply Decision Tree
118
+ ```bash
119
+ # Auto-optimize any model for workload type
120
+ terradev sglang optimize deepseek-ai/DeepSeek-V3
121
+
122
+ # Detect workload from description
123
+ terradev sglang detect meta-llama/Llama-2-7b-hf --user-description "Real-time API"
124
+
125
+ # Multi-replica cache-aware routing
126
+ terradev sglang router meta-llama/Llama-2-7b-hf --dp-size 8
127
+ ```
128
+
129
+ ### 📊 Performance Gains
130
+ - **Agentic Chat**: 1.9x throughput with multi-replica, 95-98% GPU utilization
131
+ - **Batch Inference**: Maximum tokens/second with pre-compiled CUDA graphs
132
+ - **Low Latency**: 30-50% TTFT improvement, 20-40% TPOT improvement
133
+ - **MoE Models**: Up to 2x throughput with Two-Batch Overlap
134
+ - **Cache-Aware Routing**: 3.8x higher cache hit rate
135
+
136
+ ### 🔧 Hardware Optimization
137
+ - **H100/H200**: FlashInfer + FP8 KV cache optimization
138
+ - **H20**: FA3 + MoE→QKV→FP8 stacking + swapAB runner
139
+ - **GB200 NVL72**: Rack-scale TP + NUMA-aware placement
140
+ - **AMD MI300X**: Triton backend + ROCm EPLB tuning
141
+
102
142
  ## What's New in v3.7.3
103
143
 
104
144
  Performance and scalability improvements for enterprise deployments.
@@ -1,4 +1,4 @@
1
- # Terradev CLI v3.7.5
1
+ # Terradev CLI v3.7.7
2
2
 
3
3
  **NUMA-aware GPU provisioning and orchestration for stateless MoE workloads of all sizes**
4
4
 
@@ -6,6 +6,46 @@
6
6
 
7
7
  Terradev is a cross-cloud compute-provisioning CLI that compresses + stages datasets, provisions optimal instances + nodes, and deploys **3-5x faster** than sequential provisioning.
8
8
 
9
+ ## What's New in v3.7.7
10
+
11
+ **Complete SGLang Optimization Stack**
12
+
13
+ Revolutionary workload-specific auto-optimization for SGLang serving with 7 workload types:
14
+
15
+ ### 🚀 SGLang Workload Optimizations
16
+ - **Agentic/Multi-turn Chat**: LPM + RadixAttention + cache-aware routing (75-90% cache hit rate)
17
+ - **High-Throughput Batch**: FCFS + CUDA graphs + FP8 quantization (maximum tokens/sec)
18
+ - **Low-Latency/Real-Time**: EAGLE3 + Spec V2 + capped concurrency (30-50% TTFT improvement)
19
+ - **MoE Models**: DeepEP auto + TBO/SBO + EPLB + redundant experts (up to 2x throughput)
20
+ - **PD Disaggregated**: Separate prefill/decode configurations with production optimizations
21
+ - **Structured Output/RAG**: xGrammar + FSM optimization (10x faster structured output)
22
+ - **Hardware-Specific**: H100/H200, H20, GB200, AMD MI300X optimizations
23
+
24
+ ### 🎯 Auto-Apply Decision Tree
25
+ ```bash
26
+ # Auto-optimize any model for workload type
27
+ terradev sglang optimize deepseek-ai/DeepSeek-V3
28
+
29
+ # Detect workload from description
30
+ terradev sglang detect meta-llama/Llama-2-7b-hf --user-description "Real-time API"
31
+
32
+ # Multi-replica cache-aware routing
33
+ terradev sglang router meta-llama/Llama-2-7b-hf --dp-size 8
34
+ ```
35
+
36
+ ### 📊 Performance Gains
37
+ - **Agentic Chat**: 1.9x throughput with multi-replica, 95-98% GPU utilization
38
+ - **Batch Inference**: Maximum tokens/second with pre-compiled CUDA graphs
39
+ - **Low Latency**: 30-50% TTFT improvement, 20-40% TPOT improvement
40
+ - **MoE Models**: Up to 2x throughput with Two-Batch Overlap
41
+ - **Cache-Aware Routing**: 3.8x higher cache hit rate
42
+
43
+ ### 🔧 Hardware Optimization
44
+ - **H100/H200**: FlashInfer + FP8 KV cache optimization
45
+ - **H20**: FA3 + MoE→QKV→FP8 stacking + swapAB runner
46
+ - **GB200 NVL72**: Rack-scale TP + NUMA-aware placement
47
+ - **AMD MI300X**: Triton backend + ROCm EPLB tuning
48
+
9
49
  ## What's New in v3.7.3
10
50
 
11
51
  Performance and scalability improvements for enterprise deployments.
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "terradev-cli"
7
- version = "3.7.6"
7
+ version = "3.7.7"
8
8
  description = "NUMA-aware GPU provisioning and orchestration for stateless MoE workloads of all sizes"
9
9
  readme = "README.md"
10
10
  license = {text = "BUSL-1.1"}
@@ -1,4 +1,4 @@
1
- # Terradev CLI v3.7.5
1
+ # Terradev CLI v3.7.7
2
2
 
3
3
  **NUMA-aware GPU provisioning and orchestration for stateless MoE workloads of all sizes**
4
4
 
@@ -6,6 +6,46 @@
6
6
 
7
7
  Terradev is a cross-cloud compute-provisioning CLI that compresses + stages datasets, provisions optimal instances + nodes, and deploys **3-5x faster** than sequential provisioning.
8
8
 
9
+ ## What's New in v3.7.7
10
+
11
+ **Complete SGLang Optimization Stack**
12
+
13
+ Revolutionary workload-specific auto-optimization for SGLang serving with 7 workload types:
14
+
15
+ ### 🚀 SGLang Workload Optimizations
16
+ - **Agentic/Multi-turn Chat**: LPM + RadixAttention + cache-aware routing (75-90% cache hit rate)
17
+ - **High-Throughput Batch**: FCFS + CUDA graphs + FP8 quantization (maximum tokens/sec)
18
+ - **Low-Latency/Real-Time**: EAGLE3 + Spec V2 + capped concurrency (30-50% TTFT improvement)
19
+ - **MoE Models**: DeepEP auto + TBO/SBO + EPLB + redundant experts (up to 2x throughput)
20
+ - **PD Disaggregated**: Separate prefill/decode configurations with production optimizations
21
+ - **Structured Output/RAG**: xGrammar + FSM optimization (10x faster structured output)
22
+ - **Hardware-Specific**: H100/H200, H20, GB200, AMD MI300X optimizations
23
+
24
+ ### 🎯 Auto-Apply Decision Tree
25
+ ```bash
26
+ # Auto-optimize any model for workload type
27
+ terradev sglang optimize deepseek-ai/DeepSeek-V3
28
+
29
+ # Detect workload from description
30
+ terradev sglang detect meta-llama/Llama-2-7b-hf --user-description "Real-time API"
31
+
32
+ # Multi-replica cache-aware routing
33
+ terradev sglang router meta-llama/Llama-2-7b-hf --dp-size 8
34
+ ```
35
+
36
+ ### 📊 Performance Gains
37
+ - **Agentic Chat**: 1.9x throughput with multi-replica, 95-98% GPU utilization
38
+ - **Batch Inference**: Maximum tokens/second with pre-compiled CUDA graphs
39
+ - **Low Latency**: 30-50% TTFT improvement, 20-40% TPOT improvement
40
+ - **MoE Models**: Up to 2x throughput with Two-Batch Overlap
41
+ - **Cache-Aware Routing**: 3.8x higher cache hit rate
42
+
43
+ ### 🔧 Hardware Optimization
44
+ - **H100/H200**: FlashInfer + FP8 KV cache optimization
45
+ - **H20**: FA3 + MoE→QKV→FP8 stacking + swapAB runner
46
+ - **GB200 NVL72**: Rack-scale TP + NUMA-aware placement
47
+ - **AMD MI300X**: Triton backend + ROCm EPLB tuning
48
+
9
49
  ## What's New in v3.7.3
10
50
 
11
51
  Performance and scalability improvements for enterprise deployments.
@@ -3,7 +3,7 @@ Terradev CLI - Cross-Cloud Compute Optimization Platform
3
3
  Parallel provisioning and orchestration for optimized compute costs
4
4
  """
5
5
 
6
- __version__ = "3.7.2"
6
+ __version__ = "3.7.7"
7
7
  __author__ = "Terradev Team"
8
8
  __description__ = (
9
9
  "NUMA-aware GPU provisioning and orchestration for stateless MoE workloads of all sizes"
@@ -8708,8 +8708,293 @@ def sso_test(provider):
8708
8708
  print(f"✅ {p} configuration appears valid")
8709
8709
 
8710
8710
 
8711
- # Add SSO command group to CLI
8711
+ # ── SGLANG COMMAND GROUP ──
8712
+
8713
+ @cli.group()
8714
+ def sglang():
8715
+ """SGLang optimization and management with workload-specific auto-tuning"""
8716
+ pass
8717
+
8718
+
8719
+ @sglang.command()
8720
+ @click.argument('model_path')
8721
+ @click.option('--workload-type', type=click.Choice(['agentic_chat', 'batch_inference', 'low_latency', 'moe_model', 'pd_disaggregated', 'structured_output', 'rag_workload']), help='Workload type for optimization')
8722
+ @click.option('--user-description', help='Natural language description of workload')
8723
+ @click.option('--host', default='0.0.0.0', help='Server host')
8724
+ @click.option('--port', default=8000, help='Server port')
8725
+ @click.option('--dry-run', is_flag=True, help='Show optimization plan without launching')
8726
+ def optimize(model_path, workload_type, user_description, host, port, dry_run):
8727
+ """Auto-optimize SGLang configuration for workload type and hardware"""
8728
+ from ml_services.sglang_service import SGLangService, WorkloadType
8729
+
8730
+ service = SGLangService()
8731
+
8732
+ # Convert string to enum if provided
8733
+ workload_enum = None
8734
+ if workload_type:
8735
+ workload_enum = WorkloadType(workload_type)
8736
+
8737
+ # Create optimized configuration
8738
+ config = service.create_optimized_config(
8739
+ model_path=model_path,
8740
+ workload_type=workload_enum,
8741
+ user_description=user_description,
8742
+ host=host,
8743
+ port=port
8744
+ )
8745
+
8746
+ # Get optimization summary
8747
+ summary = service.get_optimization_summary(config)
8748
+
8749
+ print(f"🚀 SGLang Optimization Configuration")
8750
+ print(f"Model: {model_path}")
8751
+ print(f"Workload Type: {summary['workload_type']}")
8752
+ print(f"Hardware Detected: {summary['hardware_detected']}")
8753
+ print(f"Schedule Policy: {summary['schedule_policy']}")
8754
+ print(f"Attention Backend: {summary['attention_backend']}")
8755
+ print()
8756
+
8757
+ print("Applied Optimizations:")
8758
+ for opt in summary['optimizations_applied']:
8759
+ print(f" ✅ {opt}")
8760
+ print()
8761
+
8762
+ if summary['performance_expectations']:
8763
+ print("Performance Expectations:")
8764
+ for key, value in summary['performance_expectations'].items():
8765
+ print(f" 📊 {key.replace('_', ' ').title()}: {value}")
8766
+ print()
8767
+
8768
+ if summary['hardware_tuned']:
8769
+ print("🔧 Hardware-specific optimizations applied")
8770
+ print()
8771
+
8772
+ # Validate configuration
8773
+ warnings = service.validate_config(config)
8774
+ if warnings:
8775
+ print("⚠️ Configuration Warnings:")
8776
+ for warning in warnings:
8777
+ print(f" ⚠️ {warning}")
8778
+ print()
8779
+
8780
+ if dry_run:
8781
+ print("🔍 Dry run - configuration generated but not launched")
8782
+ return
8783
+
8784
+ # Generate and display launch command
8785
+ launch_cmd = service.generate_launch_command(config)
8786
+ print("🚀 Launch Command:")
8787
+ print(launch_cmd)
8788
+ print()
8789
+
8790
+ print("💡 To start the server, run:")
8791
+ print(f" {launch_cmd}")
8792
+
8793
+
8794
+ @sglang.command()
8795
+ @click.argument('model_path')
8796
+ @click.option('--dp-size', default=8, help='Data parallel size for multi-replica')
8797
+ @click.option('--workload-type', type=click.Choice(['agentic_chat', 'batch_inference', 'low_latency', 'moe_model', 'pd_disaggregated', 'structured_output', 'rag_workload']), help='Workload type for optimization')
8798
+ def router(model_path, dp_size, workload_type):
8799
+ """Generate cache-aware router command for multi-replica deployments"""
8800
+ from ml_services.sglang_service import SGLangService, WorkloadType
8801
+
8802
+ service = SGLangService()
8803
+
8804
+ # Convert string to enum if provided
8805
+ workload_enum = None
8806
+ if workload_type:
8807
+ workload_enum = WorkloadType(workload_type)
8808
+
8809
+ # Create optimized configuration
8810
+ config = service.create_optimized_config(
8811
+ model_path=model_path,
8812
+ workload_type=workload_enum
8813
+ )
8814
+
8815
+ # Generate router command
8816
+ router_cmd = service.generate_multi_replica_command(config, dp_size)
8817
+
8818
+ print(f"🔄 Cache-Aware Router Configuration")
8819
+ print(f"Model: {model_path}")
8820
+ print(f"DP Size: {dp_size}")
8821
+ print(f"Workload Type: {config.workload_type.value}")
8822
+ print()
8823
+ print("🚀 Router Launch Command:")
8824
+ print(router_cmd)
8825
+ print()
8826
+
8827
+ print("💡 This router provides:")
8828
+ print(" 📈 Up to 1.9x throughput increase")
8829
+ print(" 🎯 3.8x higher cache hit rate")
8830
+ print(" 🧠 Intelligent request routing based on cache predictions")
8831
+
8832
+
8833
+ @sglang.command()
8834
+ @click.argument('model_path')
8835
+ @click.option('--workload-type', type=click.Choice(['agentic_chat', 'batch_inference', 'low_latency', 'moe_model', 'pd_disaggregated', 'structured_output', 'rag_workload']), help='Workload type to test')
8836
+ @click.option('--user-description', help='Natural language description of workload')
8837
+ def detect(model_path, workload_type, user_description):
8838
+ """Auto-detect workload type and show optimization recommendations"""
8839
+ from ml_services.sglang_service import SGLangService, WorkloadType
8840
+
8841
+ service = SGLangService()
8842
+
8843
+ # Detect workload type
8844
+ detected_type = service.detect_workload_type(model_path, user_description)
8845
+
8846
+ print(f"🔍 Workload Detection Results")
8847
+ print(f"Model: {model_path}")
8848
+ print(f"Detected Workload Type: {detected_type.value}")
8849
+
8850
+ if workload_type:
8851
+ manual_type = WorkloadType(workload_type)
8852
+ print(f"Manual Workload Type: {manual_type.value}")
8853
+ if detected_type != manual_type:
8854
+ print("⚠️ Manual and detected types differ - using manual specification")
8855
+ final_type = manual_type
8856
+ else:
8857
+ print("✅ Manual and detected types match")
8858
+ final_type = detected_type
8859
+ else:
8860
+ final_type = detected_type
8861
+
8862
+ print()
8863
+
8864
+ # Show optimization recommendations
8865
+ config = service.create_optimized_config(
8866
+ model_path=model_path,
8867
+ workload_type=final_type,
8868
+ user_description=user_description
8869
+ )
8870
+
8871
+ summary = service.get_optimization_summary(config)
8872
+
8873
+ print("🎯 Optimization Recommendations:")
8874
+ for opt in summary['optimizations_applied']:
8875
+ print(f" ✅ {opt}")
8876
+ print()
8877
+
8878
+ if summary['performance_expectations']:
8879
+ print("📊 Expected Performance:")
8880
+ for key, value in summary['performance_expectations'].items():
8881
+ print(f" 📈 {key.replace('_', ' ').title()}: {value}")
8882
+
8883
+ print()
8884
+ print("💡 Run 'terradev sglang optimize' to generate the full launch command")
8885
+
8886
+
8887
+ @sglang.command()
8888
+ @click.option('--instance-ip', help='Remote instance IP for installation')
8889
+ @click.option('--ssh-user', default='root', help='SSH user for remote installation')
8890
+ @click.option('--ssh-key', help='SSH private key path')
8891
+ def install(instance_ip, ssh_user, ssh_key):
8892
+ """Install SGLang with optimization stack"""
8893
+ from ml_services.sglang_service import SGLangService
8894
+
8895
+ service = SGLangService()
8896
+
8897
+ if instance_ip:
8898
+ # Remote installation
8899
+ print(f"📦 Installing SGLang on {instance_ip}...")
8900
+ result = asyncio.run(service.install_on_instance(
8901
+ instance_ip=instance_ip,
8902
+ ssh_user=ssh_user,
8903
+ ssh_key=ssh_key
8904
+ ))
8905
+
8906
+ if result["status"] == "installed":
8907
+ print("✅ SGLang installed successfully")
8908
+ print(f"📋 Output: {result['output']}")
8909
+ else:
8910
+ print(f"❌ Installation failed: {result['error']}")
8911
+ else:
8912
+ # Local installation
8913
+ print("📦 Installing SGLang locally...")
8914
+ import subprocess
8915
+ import sys
8916
+
8917
+ try:
8918
+ subprocess.run([
8919
+ sys.executable, "-m", "pip", "install",
8920
+ "sglang[all]", "--find-links", "https://flashinfer.ai/whl/cu124/torch2.5/flashinfer-python"
8921
+ ], check=True)
8922
+ print("✅ SGLang installed successfully")
8923
+ except subprocess.CalledProcessError as e:
8924
+ print(f"❌ Installation failed: {e}")
8925
+
8926
+
8927
+ @sglang.command()
8928
+ @click.argument('model_path')
8929
+ @click.option('--instance-ip', help='Remote instance IP')
8930
+ @click.option('--ssh-user', default='root', help='SSH user for remote deployment')
8931
+ @click.option('--ssh-key', help='SSH private key path')
8932
+ @click.option('--workload-type', type=click.Choice(['agentic_chat', 'batch_inference', 'low_latency', 'moe_model', 'pd_disaggregated', 'structured_output', 'rag_workload']), help='Workload type for optimization')
8933
+ @click.option('--port', default=8000, help='Server port')
8934
+ def start(model_path, instance_ip, ssh_user, ssh_key, workload_type, port):
8935
+ """Start optimized SGLang server"""
8936
+ from ml_services.sglang_service import SGLangService, WorkloadType
8937
+
8938
+ service = SGLangService()
8939
+
8940
+ # Create optimized configuration
8941
+ workload_enum = None
8942
+ if workload_type:
8943
+ workload_enum = WorkloadType(workload_type)
8944
+
8945
+ config = service.create_optimized_config(
8946
+ model_path=model_path,
8947
+ workload_type=workload_enum,
8948
+ port=port
8949
+ )
8950
+
8951
+ if instance_ip:
8952
+ # Remote deployment
8953
+ print(f"🚀 Starting SGLang server on {instance_ip}...")
8954
+ result = asyncio.run(service.start_server(
8955
+ instance_ip=instance_ip,
8956
+ ssh_user=ssh_user,
8957
+ ssh_key=ssh_key
8958
+ ))
8959
+
8960
+ if result["status"] == "started":
8961
+ print("✅ SGLang server started successfully")
8962
+ print(f"🌐 Endpoint: http://{instance_ip}:{port}")
8963
+ else:
8964
+ print(f"❌ Failed to start server: {result['error']}")
8965
+ else:
8966
+ # Local launch
8967
+ launch_cmd = service.generate_launch_command(config)
8968
+ print(f"🚀 Starting SGLang server locally...")
8969
+ print(f"🌐 Endpoint: http://localhost:{port}")
8970
+ print()
8971
+ print("💡 Launch command:")
8972
+ print(launch_cmd)
8973
+ print()
8974
+ print("⚠️ Run the command above to start the server")
8975
+
8976
+
8977
+ @sglang.command()
8978
+ def test():
8979
+ """Test SGLang installation and configuration"""
8980
+ from ml_services.sglang_service import SGLangService
8981
+
8982
+ service = SGLangService()
8983
+
8984
+ print("🔍 Testing SGLang installation...")
8985
+ result = asyncio.run(service.test_connection())
8986
+
8987
+ if result["status"] == "connected":
8988
+ print("✅ SGLang is installed and available")
8989
+ print(f"📦 Version: {result['sglang_version']}")
8990
+ else:
8991
+ print(f"❌ SGLang test failed: {result['error']}")
8992
+ print("💡 Run 'terradev sglang install' to install SGLang")
8993
+
8994
+
8995
+ # Add command groups to CLI
8712
8996
  cli.add_command(sso)
8997
+ cli.add_command(sglang)
8713
8998
 
8714
8999
 
8715
9000
  if __name__ == '__main__':