terradev-cli 3.7.0__tar.gz → 3.7.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 (490) hide show
  1. terradev_cli-3.7.1/.clawhubignore +5 -0
  2. terradev_cli-3.7.1/.ebextensions/python.config +6 -0
  3. terradev_cli-3.7.1/.env.example +84 -0
  4. terradev_cli-3.7.1/.env.template +164 -0
  5. terradev_cli-3.7.1/.github/workflows/ci.yml +105 -0
  6. terradev_cli-3.7.1/.github/workflows/deploy.yml +30 -0
  7. terradev_cli-3.7.1/.github/workflows/release.yml +50 -0
  8. terradev_cli-3.7.1/.github/workflows/static.yml +42 -0
  9. terradev_cli-3.7.1/BingSiteAuth.xml +4 -0
  10. terradev_cli-3.7.1/Dockerfile +55 -0
  11. terradev_cli-3.7.1/Dockerfile.hub +70 -0
  12. terradev_cli-3.7.1/LICENSE +114 -0
  13. terradev_cli-3.7.1/MANIFEST.in +33 -0
  14. terradev_cli-3.7.1/PAGES_README.md +45 -0
  15. terradev_cli-3.7.1/PKG-INFO +470 -0
  16. terradev_cli-3.7.1/PROGRESS_UPDATE_JUPYTER.ipynb +445 -0
  17. terradev_cli-3.7.1/README.md +384 -0
  18. terradev_cli-3.7.1/README_ACTION.md +200 -0
  19. terradev_cli-3.7.1/README_DOCKER.md +287 -0
  20. terradev_cli-3.7.1/README_JUPYTER.md +382 -0
  21. terradev_cli-3.7.1/README_long.md +478 -0
  22. terradev_cli-3.7.1/SKILL.md +241 -0
  23. terradev_cli-3.7.1/USER_GUIDE.md +601 -0
  24. terradev_cli-3.7.1/VLLM_AUTO_OPTIMIZATION_GUIDE.md +294 -0
  25. terradev_cli-3.7.1/VLLM_OPTIMIZATION_GUIDE.md +220 -0
  26. terradev_cli-3.7.1/VLLM_OPTIMIZATION_SUMMARY.md +155 -0
  27. terradev_cli-3.7.1/action.py +106 -0
  28. terradev_cli-3.7.1/action.yml +50 -0
  29. terradev_cli-3.7.1/activations/973dfe463ec85785f5f95af5ba3906eedb2d931c24e69824a89ea65dba4e813b.json +1 -0
  30. terradev_cli-3.7.1/ai-discovery.json +114 -0
  31. terradev_cli-3.7.1/analysis/api-differences-comparison.tf +311 -0
  32. terradev_cli-3.7.1/analysis/cost-structure-differences.tf +198 -0
  33. terradev_cli-3.7.1/analysis/inference-arbitrage-pivot.tf +322 -0
  34. terradev_cli-3.7.1/apis/free-apis-latency-arbitrage.tf +504 -0
  35. terradev_cli-3.7.1/b2b_roi_analysis.json +142 -0
  36. terradev_cli-3.7.1/bucket-policy.json +12 -0
  37. terradev_cli-3.7.1/business/compute-arbitrage-business.md +383 -0
  38. terradev_cli-3.7.1/byoapi_real_snapshot.json +107 -0
  39. terradev_cli-3.7.1/clusters/glm-5/README.md +73 -0
  40. terradev_cli-3.7.1/clusters/glm-5/helm/values-glm5.yaml +152 -0
  41. terradev_cli-3.7.1/clusters/glm-5/k8s/hpa.yaml +55 -0
  42. terradev_cli-3.7.1/clusters/glm-5/k8s/model-cache-pvc.yaml +35 -0
  43. terradev_cli-3.7.1/clusters/glm-5/k8s/namespace.yaml +8 -0
  44. terradev_cli-3.7.1/clusters/glm-5/k8s/pdb.yaml +14 -0
  45. terradev_cli-3.7.1/clusters/glm-5/k8s/service.yaml +49 -0
  46. terradev_cli-3.7.1/clusters/glm-5/k8s/sglang-deployment.yaml +176 -0
  47. terradev_cli-3.7.1/clusters/glm-5/k8s/vllm-deployment.yaml +215 -0
  48. terradev_cli-3.7.1/clusters/glm-5/task.yaml +81 -0
  49. terradev_cli-3.7.1/clusters/glm-5/terraform/main.tf +190 -0
  50. terradev_cli-3.7.1/clusters/glm-5/terraform/outputs.tf +60 -0
  51. terradev_cli-3.7.1/clusters/glm-5/terraform/variables.tf +108 -0
  52. terradev_cli-3.7.1/clusters/moe-template/README.md +141 -0
  53. terradev_cli-3.7.1/clusters/moe-template/helm/values-moe.yaml +231 -0
  54. terradev_cli-3.7.1/clusters/moe-template/k8s/deployment.yaml +358 -0
  55. terradev_cli-3.7.1/clusters/moe-template/k8s/hpa.yaml +51 -0
  56. terradev_cli-3.7.1/clusters/moe-template/k8s/model-cache-pvc.yaml +19 -0
  57. terradev_cli-3.7.1/clusters/moe-template/k8s/namespace.yaml +9 -0
  58. terradev_cli-3.7.1/clusters/moe-template/k8s/pdb.yaml +14 -0
  59. terradev_cli-3.7.1/clusters/moe-template/k8s/service.yaml +47 -0
  60. terradev_cli-3.7.1/clusters/moe-template/task.yaml +159 -0
  61. terradev_cli-3.7.1/clusters/moe-template/terraform/main.tf +213 -0
  62. terradev_cli-3.7.1/clusters/moe-template/terraform/outputs.tf +60 -0
  63. terradev_cli-3.7.1/clusters/moe-template/terraform/variables.tf +170 -0
  64. terradev_cli-3.7.1/clusters/rag-template/README.md +60 -0
  65. terradev_cli-3.7.1/clusters/rag-template/helm/values-rag.yaml +106 -0
  66. terradev_cli-3.7.1/clusters/rag-template/k8s/deployment.yaml +290 -0
  67. terradev_cli-3.7.1/clusters/rag-template/terraform/main.tf +84 -0
  68. terradev_cli-3.7.1/complete_weakness_resolution_report.json +1336 -0
  69. terradev_cli-3.7.1/config.json +1 -0
  70. terradev_cli-3.7.1/demo/RECORDING_GUIDE.md +80 -0
  71. terradev_cli-3.7.1/demo/generate_gif.py +339 -0
  72. terradev_cli-3.7.1/demo/terradev-demo.gif +0 -0
  73. terradev_cli-3.7.1/demo_k8s_config.yaml +35 -0
  74. terradev_cli-3.7.1/docker-compose.yml +101 -0
  75. terradev_cli-3.7.1/docs/ADVANCED_FINANCIAL_INNOVATIONS.md +173 -0
  76. terradev_cli-3.7.1/docs/API_DOCUMENTATION.md +901 -0
  77. terradev_cli-3.7.1/docs/BingSiteAuth.xml +4 -0
  78. terradev_cli-3.7.1/docs/FINOPS_ATTRIBUTION_SYSTEM.md +286 -0
  79. terradev_cli-3.7.1/docs/USER_GUIDE.md +952 -0
  80. terradev_cli-3.7.1/docs/architecture.md +228 -0
  81. terradev_cli-3.7.1/docs/index.html +167 -0
  82. terradev_cli-3.7.1/docs/robots.txt +28 -0
  83. terradev_cli-3.7.1/docs/sitemap.xml +45 -0
  84. terradev_cli-3.7.1/eb_deploy.zip +1 -0
  85. terradev_cli-3.7.1/genius_data_storage/data_compressor.py +377 -0
  86. terradev_cli-3.7.1/genius_data_storage/genius_data_demo.py +357 -0
  87. terradev_cli-3.7.1/genius_data_storage/integrity_verifier.py +582 -0
  88. terradev_cli-3.7.1/genius_data_storage/main.tf +682 -0
  89. terradev_cli-3.7.1/genius_data_storage/zero_egress_accessor.py +524 -0
  90. terradev_cli-3.7.1/gpu-check.sh +84 -0
  91. terradev_cli-3.7.1/grafana_training_dashboard.json +385 -0
  92. terradev_cli-3.7.1/helm/terradev/Chart.yaml +38 -0
  93. terradev_cli-3.7.1/helm/terradev/templates/_helpers.tpl +127 -0
  94. terradev_cli-3.7.1/helm/terradev/templates/deployment.yaml +176 -0
  95. terradev_cli-3.7.1/helm/terradev/values.yaml +423 -0
  96. terradev_cli-3.7.1/high_throughput_workload.json +5 -0
  97. terradev_cli-3.7.1/index.html +167 -0
  98. terradev_cli-3.7.1/infrastructure/kubernetes/microservices.yaml +633 -0
  99. terradev_cli-3.7.1/infrastructure/terraform/main.tf +1304 -0
  100. terradev_cli-3.7.1/infrastructure/terraform/parallelism.tf +86 -0
  101. terradev_cli-3.7.1/integrations/cli-tool.tf +606 -0
  102. terradev_cli-3.7.1/integrations/cloud-management-widgets.tf +131 -0
  103. terradev_cli-3.7.1/integrations/cloud-provider-apis.py +602 -0
  104. terradev_cli-3.7.1/integrations/critical-widgets.tf +933 -0
  105. terradev_cli-3.7.1/integrations/devops-cicd-widgets.tf +243 -0
  106. terradev_cli-3.7.1/integrations/devops-essential-tools.tf +314 -0
  107. terradev_cli-3.7.1/integrations/docker-integration.tf +423 -0
  108. terradev_cli-3.7.1/integrations/kubernetes-operator.tf +276 -0
  109. terradev_cli-3.7.1/integrations/mlflow-integration.tf +366 -0
  110. terradev_cli-3.7.1/kaggle_notebooks/01_hf_spaces_cost_optimization.ipynb +456 -0
  111. terradev_cli-3.7.1/kubernetes_training_deployment.yaml +253 -0
  112. terradev_cli-3.7.1/llms.txt +209 -0
  113. terradev_cli-3.7.1/modules/datadog/README.md +59 -0
  114. terradev_cli-3.7.1/modules/datadog/dashboard.tf +237 -0
  115. terradev_cli-3.7.1/modules/datadog/monitors.tf +203 -0
  116. terradev_cli-3.7.1/modules/datadog/outputs.tf +21 -0
  117. terradev_cli-3.7.1/modules/datadog/provider.tf +5 -0
  118. terradev_cli-3.7.1/modules/datadog/variables.tf +77 -0
  119. terradev_cli-3.7.1/modules/datadog/versions.tf +10 -0
  120. terradev_cli-3.7.1/nginx.conf +30 -0
  121. terradev_cli-3.7.1/openclaw-skill/terradev-gpu-cloud/.clawhubignore +5 -0
  122. terradev_cli-3.7.1/openclaw-skill/terradev-gpu-cloud/LICENSE +21 -0
  123. terradev_cli-3.7.1/openclaw-skill/terradev-gpu-cloud/README.md +106 -0
  124. terradev_cli-3.7.1/openclaw-skill/terradev-gpu-cloud/SKILL.md +314 -0
  125. terradev_cli-3.7.1/openclaw-skill/terradev-gpu-cloud/gpu-check.sh +84 -0
  126. terradev_cli-3.7.1/parallel_provisioning.tf +338 -0
  127. terradev_cli-3.7.1/partnerships/brand-partnerships.tf +523 -0
  128. terradev_cli-3.7.1/partnerships/partnership-roadmap.tf +232 -0
  129. terradev_cli-3.7.1/pricing_analysis_report.json +164 -0
  130. terradev_cli-3.7.1/prometheus_training_config.yml +185 -0
  131. terradev_cli-3.7.1/provision_based_pricing_analysis.json +111 -0
  132. terradev_cli-3.7.1/pypi_traffic_report.json +84 -0
  133. terradev_cli-3.7.1/pyproject.toml +184 -0
  134. terradev_cli-3.7.1/pyproject_v2.toml +119 -0
  135. terradev_cli-3.7.1/real_day_one_snapshot.json +52 -0
  136. terradev_cli-3.7.1/remaining_25_analysis_report.json +722 -0
  137. terradev_cli-3.7.1/render.yaml +18 -0
  138. terradev_cli-3.7.1/requirements-render.txt +1 -0
  139. terradev_cli-3.7.1/requirements.txt +56 -0
  140. terradev_cli-3.7.1/requirements_api.txt +8 -0
  141. terradev_cli-3.7.1/requirements_eb.txt +4 -0
  142. terradev_cli-3.7.1/requirements_stripe.txt +5 -0
  143. terradev_cli-3.7.1/robots.txt +28 -0
  144. terradev_cli-3.7.1/sample_workload.json +7 -0
  145. terradev_cli-3.7.1/setup/Lambda Cloud API spec 1.8.3.json +4816 -0
  146. terradev_cli-3.7.1/setup/account-setup-guide.tf +393 -0
  147. terradev_cli-3.7.1/setup/setup.sh +411 -0
  148. terradev_cli-3.7.1/sitemap.xml +45 -0
  149. terradev_cli-3.7.1/telemetry_production.db-shm +0 -0
  150. terradev_cli-3.7.1/telemetry_production.db-wal +0 -0
  151. terradev_cli-3.7.1/terradev_cli/CHANGELOG.md +163 -0
  152. terradev_cli-3.7.1/terradev_cli/README.md +384 -0
  153. terradev_cli-3.7.1/terradev_cli/README_old.md +492 -0
  154. terradev_cli-3.7.1/terradev_cli/README_with_emojis.md +356 -0
  155. terradev_cli-3.7.1/terradev_cli/__init__.py +11 -0
  156. terradev_cli-3.7.1/terradev_cli/__main__.py +31 -0
  157. terradev_cli-3.7.1/terradev_cli/bandit-report.json +388 -0
  158. terradev_cli-3.7.1/terradev_cli/cli.py +8542 -0
  159. terradev_cli-3.7.1/terradev_cli/cli_clean.py +35 -0
  160. terradev_cli-3.7.1/terradev_cli/cli_enhanced.py +577 -0
  161. terradev_cli-3.7.1/terradev_cli/cli_final.py +823 -0
  162. terradev_cli-3.7.1/terradev_cli/cli_optimization.py +479 -0
  163. terradev_cli-3.7.1/terradev_cli/cli_optimization_fixed.py +875 -0
  164. terradev_cli-3.7.1/terradev_cli/cli_optimization_simple.py +850 -0
  165. terradev_cli-3.7.1/terradev_cli/cli_simple.py +249 -0
  166. terradev_cli-3.7.1/terradev_cli/cli_tiered.py +372 -0
  167. terradev_cli-3.7.1/terradev_cli/core/__init__.py +78 -0
  168. terradev_cli-3.7.1/terradev_cli/core/auth.py +293 -0
  169. terradev_cli-3.7.1/terradev_cli/core/checkpoint_manager.py +570 -0
  170. terradev_cli-3.7.1/terradev_cli/core/config.py +274 -0
  171. terradev_cli-3.7.1/terradev_cli/core/cost_scaler.py +474 -0
  172. terradev_cli-3.7.1/terradev_cli/core/cost_tracker.py +341 -0
  173. terradev_cli-3.7.1/terradev_cli/core/cuda_graph_integrator.py +278 -0
  174. terradev_cli-3.7.1/terradev_cli/core/dag_executor.py +636 -0
  175. terradev_cli-3.7.1/terradev_cli/core/data_governance.py +796 -0
  176. terradev_cli-3.7.1/terradev_cli/core/dataset_stager.py +519 -0
  177. terradev_cli-3.7.1/terradev_cli/core/deployment_router.py +412 -0
  178. terradev_cli-3.7.1/terradev_cli/core/drift_detector.py +243 -0
  179. terradev_cli-3.7.1/terradev_cli/core/egress_optimizer.py +743 -0
  180. terradev_cli-3.7.1/terradev_cli/core/gitops_manager.py +745 -0
  181. terradev_cli-3.7.1/terradev_cli/core/gpu_topology.py +1213 -0
  182. terradev_cli-3.7.1/terradev_cli/core/helm_generator.py +923 -0
  183. terradev_cli-3.7.1/terradev_cli/core/helm_generator_old.py +771 -0
  184. terradev_cli-3.7.1/terradev_cli/core/hf_cli_integration.py +439 -0
  185. terradev_cli-3.7.1/terradev_cli/core/hf_smart_templates.py +996 -0
  186. terradev_cli-3.7.1/terradev_cli/core/hf_spaces.py +348 -0
  187. terradev_cli-3.7.1/terradev_cli/core/inference_router.py +1312 -0
  188. terradev_cli-3.7.1/terradev_cli/core/job_state_manager.py +420 -0
  189. terradev_cli-3.7.1/terradev_cli/core/manifest_cache.py +114 -0
  190. terradev_cli-3.7.1/terradev_cli/core/manifest_example.json +1 -0
  191. terradev_cli-3.7.1/terradev_cli/core/model_orchestrator.py +740 -0
  192. terradev_cli-3.7.1/terradev_cli/core/optimization_config.py +206 -0
  193. terradev_cli-3.7.1/terradev_cli/core/parallel_provisioner.py +194 -0
  194. terradev_cli-3.7.1/terradev_cli/core/preflight_validator.py +820 -0
  195. terradev_cli-3.7.1/terradev_cli/core/price_discovery.py +385 -0
  196. terradev_cli-3.7.1/terradev_cli/core/price_discovery_mock.py +407 -0
  197. terradev_cli-3.7.1/terradev_cli/core/price_intelligence.py +897 -0
  198. terradev_cli-3.7.1/terradev_cli/core/quick_start.py +307 -0
  199. terradev_cli-3.7.1/terradev_cli/core/rate_limiter.py +428 -0
  200. terradev_cli-3.7.1/terradev_cli/core/semantic_router.py +1185 -0
  201. terradev_cli-3.7.1/terradev_cli/core/semantic_signals/__init__.py +35 -0
  202. terradev_cli-3.7.1/terradev_cli/core/semantic_signals/base_signal.py +121 -0
  203. terradev_cli-3.7.1/terradev_cli/core/semantic_signals/complexity_signal.py +184 -0
  204. terradev_cli-3.7.1/terradev_cli/core/semantic_signals/domain_signal.py +144 -0
  205. terradev_cli-3.7.1/terradev_cli/core/semantic_signals/keyword_signal.py +139 -0
  206. terradev_cli-3.7.1/terradev_cli/core/semantic_signals/language_signal.py +164 -0
  207. terradev_cli-3.7.1/terradev_cli/core/semantic_signals/modality_signal.py +150 -0
  208. terradev_cli-3.7.1/terradev_cli/core/semantic_signals/orchestrator.py +341 -0
  209. terradev_cli-3.7.1/terradev_cli/core/semantic_signals/routing_policy.yaml +135 -0
  210. terradev_cli-3.7.1/terradev_cli/core/semantic_signals/safety_signal.py +164 -0
  211. terradev_cli-3.7.1/terradev_cli/core/ssh_key_manager.py +182 -0
  212. terradev_cli-3.7.1/terradev_cli/core/stripe_manager.py +563 -0
  213. terradev_cli-3.7.1/terradev_cli/core/telemetry.py +463 -0
  214. terradev_cli-3.7.1/terradev_cli/core/telemetry_backup.py +490 -0
  215. terradev_cli-3.7.1/terradev_cli/core/terradev_engine.py +530 -0
  216. terradev_cli-3.7.1/terradev_cli/core/tier_manager.py +330 -0
  217. terradev_cli-3.7.1/terradev_cli/core/trace_viewer.py +157 -0
  218. terradev_cli-3.7.1/terradev_cli/core/training_monitor.py +546 -0
  219. terradev_cli-3.7.1/terradev_cli/core/training_orchestrator.py +692 -0
  220. terradev_cli-3.7.1/terradev_cli/core/warm_pool_manager.py +726 -0
  221. terradev_cli-3.7.1/terradev_cli/cost_optimizer.py +518 -0
  222. terradev_cli-3.7.1/terradev_cli/credential_prompt.py +164 -0
  223. terradev_cli-3.7.1/terradev_cli/demo.py +375 -0
  224. terradev_cli-3.7.1/terradev_cli/entry_point.py +210 -0
  225. terradev_cli-3.7.1/terradev_cli/integrations/Terradev LOGO BLACK.png +0 -0
  226. terradev_cli-3.7.1/terradev_cli/integrations/Terradev LOGO WHITEW.png +0 -0
  227. terradev_cli-3.7.1/terradev_cli/integrations/__init__.py +1 -0
  228. terradev_cli-3.7.1/terradev_cli/integrations/datadog_integration.py +688 -0
  229. terradev_cli-3.7.1/terradev_cli/integrations/prometheus_integration.py +302 -0
  230. terradev_cli-3.7.1/terradev_cli/integrations/wandb_integration.py +134 -0
  231. terradev_cli-3.7.1/terradev_cli/k8s/terraform_wrapper.py +425 -0
  232. terradev_cli-3.7.1/terradev_cli/kubernetes/inferx-cost-optimized.yaml +630 -0
  233. terradev_cli-3.7.1/terradev_cli/kubernetes/inferx-infrastructure.yaml +404 -0
  234. terradev_cli-3.7.1/terradev_cli/kubernetes/inferx-models.yaml +531 -0
  235. terradev_cli-3.7.1/terradev_cli/kubernetes/inferx-platform.yaml +619 -0
  236. terradev_cli-3.7.1/terradev_cli/kubernetes/inferx_setup.py +550 -0
  237. terradev_cli-3.7.1/terradev_cli/ml_services/__init__.py +41 -0
  238. terradev_cli-3.7.1/terradev_cli/ml_services/dvc_service.py +561 -0
  239. terradev_cli-3.7.1/terradev_cli/ml_services/guardrails_service.py +395 -0
  240. terradev_cli-3.7.1/terradev_cli/ml_services/huggingface_service.py +483 -0
  241. terradev_cli-3.7.1/terradev_cli/ml_services/kserve_service.py +584 -0
  242. terradev_cli-3.7.1/terradev_cli/ml_services/kubernetes_enhanced.py +960 -0
  243. terradev_cli-3.7.1/terradev_cli/ml_services/kubernetes_enhanced_fixed.py +408 -0
  244. terradev_cli-3.7.1/terradev_cli/ml_services/kubernetes_service.py +572 -0
  245. terradev_cli-3.7.1/terradev_cli/ml_services/langchain_service.py +560 -0
  246. terradev_cli-3.7.1/terradev_cli/ml_services/langgraph_service.py +615 -0
  247. terradev_cli-3.7.1/terradev_cli/ml_services/langsmith_service.py +481 -0
  248. terradev_cli-3.7.1/terradev_cli/ml_services/lmcache_service.py +457 -0
  249. terradev_cli-3.7.1/terradev_cli/ml_services/mlflow_service.py +585 -0
  250. terradev_cli-3.7.1/terradev_cli/ml_services/ollama_service.py +492 -0
  251. terradev_cli-3.7.1/terradev_cli/ml_services/phoenix_service.py +301 -0
  252. terradev_cli-3.7.1/terradev_cli/ml_services/qdrant_service.py +253 -0
  253. terradev_cli-3.7.1/terradev_cli/ml_services/ray_enhanced.py +1100 -0
  254. terradev_cli-3.7.1/terradev_cli/ml_services/ray_service.py +555 -0
  255. terradev_cli-3.7.1/terradev_cli/ml_services/sglang_service.py +526 -0
  256. terradev_cli-3.7.1/terradev_cli/ml_services/vllm_service.py +1180 -0
  257. terradev_cli-3.7.1/terradev_cli/ml_services/wandb_enhanced.py +788 -0
  258. terradev_cli-3.7.1/terradev_cli/ml_services/wandb_service.py +426 -0
  259. terradev_cli-3.7.1/terradev_cli/optimization/__init__.py +25 -0
  260. terradev_cli-3.7.1/terradev_cli/optimization/auto_optimizer.py +679 -0
  261. terradev_cli-3.7.1/terradev_cli/optimization/cuco_optimizer.py +750 -0
  262. terradev_cli-3.7.1/terradev_cli/providers/__init__.py +1 -0
  263. terradev_cli-3.7.1/terradev_cli/providers/alibaba_provider.py +492 -0
  264. terradev_cli-3.7.1/terradev_cli/providers/aws_provider.py +540 -0
  265. terradev_cli-3.7.1/terradev_cli/providers/azure_provider.py +303 -0
  266. terradev_cli-3.7.1/terradev_cli/providers/base_provider.py +194 -0
  267. terradev_cli-3.7.1/terradev_cli/providers/baseten_provider.py +193 -0
  268. terradev_cli-3.7.1/terradev_cli/providers/coreweave_provider.py +226 -0
  269. terradev_cli-3.7.1/terradev_cli/providers/crusoe_provider.py +463 -0
  270. terradev_cli-3.7.1/terradev_cli/providers/demo_mode.py +123 -0
  271. terradev_cli-3.7.1/terradev_cli/providers/digitalocean_provider.py +310 -0
  272. terradev_cli-3.7.1/terradev_cli/providers/fluidstack_provider.py +359 -0
  273. terradev_cli-3.7.1/terradev_cli/providers/gcp_provider.py +362 -0
  274. terradev_cli-3.7.1/terradev_cli/providers/hetzner_provider.py +469 -0
  275. terradev_cli-3.7.1/terradev_cli/providers/huggingface_provider.py +244 -0
  276. terradev_cli-3.7.1/terradev_cli/providers/hyperstack_provider.py +353 -0
  277. terradev_cli-3.7.1/terradev_cli/providers/inferx_provider.py +374 -0
  278. terradev_cli-3.7.1/terradev_cli/providers/lambda_labs_provider.py +215 -0
  279. terradev_cli-3.7.1/terradev_cli/providers/oracle_provider.py +254 -0
  280. terradev_cli-3.7.1/terradev_cli/providers/ovhcloud_provider.py +429 -0
  281. terradev_cli-3.7.1/terradev_cli/providers/provider_factory.py +107 -0
  282. terradev_cli-3.7.1/terradev_cli/providers/real_pricing.py +293 -0
  283. terradev_cli-3.7.1/terradev_cli/providers/runpod_provider.py +258 -0
  284. terradev_cli-3.7.1/terradev_cli/providers/siliconflow_provider.py +454 -0
  285. terradev_cli-3.7.1/terradev_cli/providers/tensordock_provider.py +237 -0
  286. terradev_cli-3.7.1/terradev_cli/providers/vastai_provider.py +197 -0
  287. terradev_cli-3.7.1/terradev_cli/requirements.txt +3 -0
  288. terradev_cli-3.7.1/terradev_cli/requirements_minimal.txt +3 -0
  289. terradev_cli-3.7.1/terradev_cli/safety-report.json +18554 -0
  290. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli}/setup.py +2 -2
  291. terradev_cli-3.7.1/terradev_cli/telemetry_protection.py +180 -0
  292. terradev_cli-3.7.1/terradev_cli/terradev_cli/__init__.py +1 -0
  293. terradev_cli-3.7.1/terradev_cli/terradev_cli/cli.py +8366 -0
  294. terradev_cli-3.7.1/terradev_cli/terraform/main.tf +139 -0
  295. terradev_cli-3.7.1/terradev_cli/terraform/modules/__init__.py +19 -0
  296. terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-aws/bootstrap.sh +271 -0
  297. terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-aws/main.tf +143 -0
  298. terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-aws/outputs.tf +69 -0
  299. terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-aws/variables.tf +83 -0
  300. terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-aws/versions.tf +12 -0
  301. terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-hyperstack/bootstrap.sh +231 -0
  302. terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-hyperstack/main.tf +107 -0
  303. terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-hyperstack/outputs.tf +59 -0
  304. terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-hyperstack/variables.tf +63 -0
  305. terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-hyperstack/versions.tf +12 -0
  306. terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-lambda/bootstrap.sh +231 -0
  307. terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-lambda/main.tf +107 -0
  308. terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-lambda/outputs.tf +59 -0
  309. terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-lambda/variables.tf +63 -0
  310. terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-lambda/versions.tf +12 -0
  311. terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-vastai/bootstrap.sh +231 -0
  312. terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-vastai/main.tf +107 -0
  313. terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-vastai/outputs.tf +59 -0
  314. terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-vastai/variables.tf +63 -0
  315. terradev_cli-3.7.1/terradev_cli/terraform/modules/gpu-node-vastai/versions.tf +12 -0
  316. terradev_cli-3.7.1/terradev_cli/terraform/modules/k8s-control-plane/join-script.tpl +95 -0
  317. terradev_cli-3.7.1/terradev_cli/terraform/modules/k8s-control-plane/kubeconfig.tpl +29 -0
  318. terradev_cli-3.7.1/terradev_cli/terraform/modules/k8s-control-plane/main.tf +183 -0
  319. terradev_cli-3.7.1/terradev_cli/terraform/modules/k8s-control-plane/outputs.tf +50 -0
  320. terradev_cli-3.7.1/terradev_cli/terraform/modules/k8s-control-plane/variables.tf +59 -0
  321. terradev_cli-3.7.1/terradev_cli/terraform/modules/k8s-control-plane/versions.tf +16 -0
  322. terradev_cli-3.7.1/terradev_cli/terraform/modules/networking/main.tf +193 -0
  323. terradev_cli-3.7.1/terradev_cli/terraform/modules/networking/outputs.tf +50 -0
  324. terradev_cli-3.7.1/terradev_cli/terraform/modules/networking/variables.tf +52 -0
  325. terradev_cli-3.7.1/terradev_cli/terraform/modules/networking/versions.tf +12 -0
  326. terradev_cli-3.7.1/terradev_cli/terraform/outputs.tf +118 -0
  327. terradev_cli-3.7.1/terradev_cli/terraform/price-optimizer/optimal-allocation.py +188 -0
  328. terradev_cli-3.7.1/terradev_cli/terraform/providers.tf +22 -0
  329. terradev_cli-3.7.1/terradev_cli/terraform/variables.tf +95 -0
  330. terradev_cli-3.7.1/terradev_cli/utils/__init__.py +1 -0
  331. terradev_cli-3.7.1/terradev_cli/utils/formatters.py +235 -0
  332. terradev_cli-3.7.1/terradev_cli.egg-info/PKG-INFO +470 -0
  333. terradev_cli-3.7.1/terradev_cli.egg-info/SOURCES.txt +481 -0
  334. terradev_cli-3.7.1/terradev_cli.egg-info/requires.txt +59 -0
  335. terradev_cli-3.7.1/terradev_cli.egg-info/top_level.txt +1 -0
  336. terradev_cli-3.7.1/terraform.tfvars.example +50 -0
  337. terradev_cli-3.7.1/terraform_cli/README.md +471 -0
  338. terradev_cli-3.7.1/terraform_cli/demo_usage.py +152 -0
  339. terradev_cli-3.7.1/terraform_cli/install.sh +346 -0
  340. terradev_cli-3.7.1/terraform_cli/terradev_cli.py +717 -0
  341. terradev_cli-3.7.1/terraform_optimization/backend.tf +606 -0
  342. terradev_cli-3.7.1/terraform_optimization/error_handling.py +742 -0
  343. terradev_cli-3.7.1/terraform_optimization/storage_choice_matrix.py +681 -0
  344. terradev_cli-3.7.1/terraform_optimization/test_error_handler.py +83 -0
  345. terradev_cli-3.7.1/terraform_optimization/versions.tf +668 -0
  346. terradev_cli-3.7.1/terraform_transparency/audit_demo/trail_3caed73ad5bf.json +428 -0
  347. terradev_cli-3.7.1/terraform_transparency/audit_trail.py +610 -0
  348. terradev_cli-3.7.1/terraform_transparency/audit_trails.json +430 -0
  349. terradev_cli-3.7.1/terraform_transparency/decision_engine.py +671 -0
  350. terradev_cli-3.7.1/terraform_transparency/decision_logs.json +192 -0
  351. terradev_cli-3.7.1/terraform_transparency/operations.json +45 -0
  352. terradev_cli-3.7.1/terraform_transparency/terraform_manager.py +627 -0
  353. terradev_cli-3.7.1/terraform_transparency/terraform_plans.json +1 -0
  354. terradev_cli-3.7.1/terraform_transparency/transparency_demo.py +417 -0
  355. terradev_cli-3.7.1/terraform_transparency/transparency_report.json +33 -0
  356. terradev_cli-3.7.1/test_vllm_optimization.py +182 -0
  357. terradev_cli-3.7.1/tests/INTEGRATION_STRATEGY.md +337 -0
  358. terradev_cli-3.7.1/tests/Makefile +201 -0
  359. terradev_cli-3.7.1/tests/ci_pipeline.py +480 -0
  360. terradev_cli-3.7.1/tests/conftest.py +10 -0
  361. terradev_cli-3.7.1/tests/simple_test.py +181 -0
  362. terradev_cli-3.7.1/tests/test_checkpoint_manager.py +198 -0
  363. terradev_cli-3.7.1/tests/test_cli_smoke.py +200 -0
  364. terradev_cli-3.7.1/tests/test_dag_executor.py +400 -0
  365. terradev_cli-3.7.1/tests/test_integration.py +577 -0
  366. terradev_cli-3.7.1/tests/test_job_state_manager.py +307 -0
  367. terradev_cli-3.7.1/tests/test_providers.py +264 -0
  368. terradev_cli-3.7.1/tests/test_semantic_router.py +1474 -0
  369. terradev_cli-3.7.1/tests/test_ssh_key_manager.py +154 -0
  370. terradev_cli-3.7.1/tests/test_training_monitor.py +237 -0
  371. terradev_cli-3.7.1/tests/test_training_orchestrator.py +321 -0
  372. terradev_cli-3.7.1/volatility_charts/aws_a100_volatility.png +0 -0
  373. terradev_cli-3.7.1/volatility_charts/aws_v100_volatility.png +0 -0
  374. terradev_cli-3.7.1/volatility_charts/runpod_a100_volatility.png +0 -0
  375. terradev_cli-3.7.1/volatility_charts/runpod_v100_volatility.png +0 -0
  376. terradev_cli-3.7.0/PKG-INFO +0 -658
  377. terradev_cli-3.7.0/README.md +0 -607
  378. terradev_cli-3.7.0/terradev_cli.egg-info/PKG-INFO +0 -658
  379. terradev_cli-3.7.0/terradev_cli.egg-info/SOURCES.txt +0 -114
  380. terradev_cli-3.7.0/terradev_cli.egg-info/not-zip-safe +0 -1
  381. terradev_cli-3.7.0/terradev_cli.egg-info/requires.txt +0 -29
  382. terradev_cli-3.7.0/terradev_cli.egg-info/top_level.txt +0 -6
  383. {terradev_cli-3.7.0 → terradev_cli-3.7.1}/setup.cfg +0 -0
  384. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/__init__.py +0 -0
  385. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/auth.py +0 -0
  386. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/checkpoint_manager.py +0 -0
  387. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/config.py +0 -0
  388. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/cost_scaler.py +0 -0
  389. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/cost_tracker.py +0 -0
  390. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/dag_executor.py +0 -0
  391. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/data_governance.py +0 -0
  392. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/dataset_stager.py +0 -0
  393. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/deployment_router.py +0 -0
  394. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/drift_detector.py +0 -0
  395. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/egress_optimizer.py +0 -0
  396. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/gitops_manager.py +0 -0
  397. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/gpu_topology.py +0 -0
  398. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/helm_generator.py +0 -0
  399. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/helm_generator_old.py +0 -0
  400. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/hf_cli_integration.py +0 -0
  401. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/hf_smart_templates.py +0 -0
  402. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/hf_spaces.py +0 -0
  403. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/inference_router.py +0 -0
  404. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/job_state_manager.py +0 -0
  405. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/manifest_cache.py +0 -0
  406. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/model_orchestrator.py +0 -0
  407. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/parallel_provisioner.py +0 -0
  408. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/preflight_validator.py +0 -0
  409. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/price_discovery.py +0 -0
  410. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/price_discovery_mock.py +0 -0
  411. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/price_intelligence.py +0 -0
  412. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/quick_start.py +0 -0
  413. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/rate_limiter.py +0 -0
  414. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/semantic_router.py +0 -0
  415. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/semantic_signals/__init__.py +0 -0
  416. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/semantic_signals/base_signal.py +0 -0
  417. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/semantic_signals/complexity_signal.py +0 -0
  418. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/semantic_signals/domain_signal.py +0 -0
  419. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/semantic_signals/keyword_signal.py +0 -0
  420. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/semantic_signals/language_signal.py +0 -0
  421. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/semantic_signals/modality_signal.py +0 -0
  422. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/semantic_signals/orchestrator.py +0 -0
  423. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/semantic_signals/safety_signal.py +0 -0
  424. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/ssh_key_manager.py +0 -0
  425. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/stripe_manager.py +0 -0
  426. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/telemetry.py +0 -0
  427. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/telemetry_backup.py +0 -0
  428. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/terradev_engine.py +0 -0
  429. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/tier_manager.py +0 -0
  430. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/trace_viewer.py +0 -0
  431. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/training_monitor.py +0 -0
  432. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/training_orchestrator.py +0 -0
  433. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/core/warm_pool_manager.py +0 -0
  434. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/integrations/__init__.py +0 -0
  435. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/integrations/datadog_integration.py +0 -0
  436. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/integrations/prometheus_integration.py +0 -0
  437. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/integrations/wandb_integration.py +0 -0
  438. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/__init__.py +0 -0
  439. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/dvc_service.py +0 -0
  440. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/guardrails_service.py +0 -0
  441. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/huggingface_service.py +0 -0
  442. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/kserve_service.py +0 -0
  443. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/kubernetes_enhanced.py +0 -0
  444. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/kubernetes_enhanced_fixed.py +0 -0
  445. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/kubernetes_service.py +0 -0
  446. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/langchain_service.py +0 -0
  447. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/langgraph_service.py +0 -0
  448. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/langsmith_service.py +0 -0
  449. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/lmcache_service.py +0 -0
  450. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/mlflow_service.py +0 -0
  451. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/ollama_service.py +0 -0
  452. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/phoenix_service.py +0 -0
  453. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/qdrant_service.py +0 -0
  454. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/ray_enhanced.py +0 -0
  455. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/ray_service.py +0 -0
  456. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/sglang_service.py +0 -0
  457. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/vllm_service.py +0 -0
  458. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/wandb_enhanced.py +0 -0
  459. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/ml_services/wandb_service.py +0 -0
  460. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/__init__.py +0 -0
  461. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/alibaba_provider.py +0 -0
  462. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/aws_provider.py +0 -0
  463. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/azure_provider.py +0 -0
  464. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/base_provider.py +0 -0
  465. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/baseten_provider.py +0 -0
  466. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/coreweave_provider.py +0 -0
  467. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/crusoe_provider.py +0 -0
  468. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/demo_mode.py +0 -0
  469. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/digitalocean_provider.py +0 -0
  470. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/fluidstack_provider.py +0 -0
  471. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/gcp_provider.py +0 -0
  472. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/hetzner_provider.py +0 -0
  473. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/huggingface_provider.py +0 -0
  474. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/hyperstack_provider.py +0 -0
  475. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/inferx_provider.py +0 -0
  476. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/lambda_labs_provider.py +0 -0
  477. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/oracle_provider.py +0 -0
  478. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/ovhcloud_provider.py +0 -0
  479. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/provider_factory.py +0 -0
  480. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/real_pricing.py +0 -0
  481. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/runpod_provider.py +0 -0
  482. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/siliconflow_provider.py +0 -0
  483. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/tensordock_provider.py +0 -0
  484. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/providers/vastai_provider.py +0 -0
  485. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/terradev_cli/__init__.py +0 -0
  486. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/terradev_cli/cli.py +0 -0
  487. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/utils/__init__.py +0 -0
  488. {terradev_cli-3.7.0 → terradev_cli-3.7.1/terradev_cli/build/lib}/utils/formatters.py +0 -0
  489. {terradev_cli-3.7.0 → terradev_cli-3.7.1}/terradev_cli.egg-info/dependency_links.txt +0 -0
  490. {terradev_cli-3.7.0 → terradev_cli-3.7.1}/terradev_cli.egg-info/entry_points.txt +0 -0
@@ -0,0 +1,5 @@
1
+ .git
2
+ .DS_Store
3
+ node_modules
4
+ __pycache__
5
+ *.pyc
@@ -0,0 +1,6 @@
1
+ option_settings:
2
+ aws:elasticbeanstalk:container:python:
3
+ WSGIPath: application.py
4
+ aws:elasticbeanstalk:application:environment:
5
+ PORT: 8000
6
+ LOG_LEVEL: INFO
@@ -0,0 +1,84 @@
1
+ # Terradev Environment Configuration
2
+ # Copy this file to .env and fill in your actual values
3
+
4
+ # Database Configuration
5
+ DATABASE_URL=postgresql://user:password@localhost:5432/terradev
6
+ REDIS_URL=redis://localhost:6379/0
7
+
8
+ # Security Configuration
9
+ SECRET_KEY=your-secret-key-here
10
+ JWT_SECRET=your-jwt-secret-here
11
+ ENCRYPTION_KEY=your-encryption-key-here
12
+
13
+ # Cloud Provider Credentials
14
+ # TensorDock
15
+ TENSORDOCK_API_KEY=your-tensordock-api-key
16
+ TENSORDOCK_SECRET=your-tensordock-secret
17
+
18
+ # Vast.AI
19
+ VAST_API_KEY=your-vast-api-key
20
+
21
+ # Google Cloud Platform
22
+ GCP_PROJECT_ID=your-gcp-project-id
23
+ GCP_CREDENTIALS_PATH=path/to/gcp-credentials.json
24
+ GCP_ZONE=us-central1-a
25
+
26
+ # AWS
27
+ AWS_ACCESS_KEY_ID=your-aws-access-key
28
+ AWS_SECRET_ACCESS_KEY=your-aws-secret-key
29
+ AWS_REGION=us-west-2
30
+
31
+ # RunPod
32
+ RUNPOD_API_KEY=your-runpod-api-key
33
+
34
+ # Lambda Labs
35
+ LAMBDA_API_KEY=your-lambda-api-key
36
+
37
+ # CoreWeave
38
+ COREWEAVE_API_KEY=your-coreweave-api-key
39
+
40
+ # Application Configuration
41
+ DEBUG=false
42
+ LOG_LEVEL=INFO
43
+ PORT=8000
44
+ HOST=0.0.0.0
45
+
46
+ # Monitoring Configuration
47
+ PROMETHEUS_PORT=9090
48
+ GRAFANA_PORT=3000
49
+ GRAFANA_ADMIN_PASSWORD=your-grafana-admin-password
50
+
51
+ # Rate Limiting
52
+ RATE_LIMIT_PER_MINUTE=60
53
+ RATE_LIMIT_BURST=10
54
+
55
+ # Cache Configuration
56
+ CACHE_TTL=300
57
+ CACHE_MAX_SIZE=1000
58
+
59
+ # Email Configuration (optional)
60
+ SMTP_HOST=smtp.gmail.com
61
+ SMTP_PORT=587
62
+ SMTP_USERNAME=your-email@gmail.com
63
+ SMTP_PASSWORD=your-email-password
64
+ SENDER_EMAIL=noreply@terradev.com
65
+
66
+ # Stripe Configuration (REQUIRED for payments)
67
+ STRIPE_SECRET_KEY=sk_test_your_stripe_secret_key_here
68
+ STRIPE_WEBHOOK_SECRET=whsec_your_webhook_secret_here
69
+ STRIPE_PUBLISHABLE_KEY=pk_test_your_publishable_key_here
70
+
71
+ # Webhook Configuration (optional)
72
+ SLACK_WEBHOOK_URL=your-slack-webhook-url
73
+ DISCORD_WEBHOOK_URL=your-discord-webhook-url
74
+
75
+ # Feature Flags
76
+ ENABLE_MONITORING=true
77
+ ENABLE_LOGGING=true
78
+ ENABLE_METRICS=true
79
+ ENABLE_TRACING=false
80
+
81
+ # Performance Configuration
82
+ MAX_WORKERS=4
83
+ WORKER_TIMEOUT=30
84
+ MAX_CONNECTIONS=100
@@ -0,0 +1,164 @@
1
+ #!/usr/bin/env python3
2
+ """
3
+ Production Environment Variables Template
4
+ Copy this to .env and fill in your actual values
5
+ """
6
+
7
+ # Database Configuration
8
+ DB_HOST=localhost
9
+ DB_PORT=5432
10
+ DB_NAME=terradev
11
+ DB_USERNAME=terradev_user
12
+ DB_PASSWORD=your_secure_password_here
13
+ DB_SSL_MODE=require
14
+ DB_POOL_SIZE=20
15
+ DB_MAX_OVERFLOW=30
16
+
17
+ # Redis Configuration
18
+ REDIS_HOST=localhost
19
+ REDIS_PORT=6379
20
+ REDIS_PASSWORD=your_redis_password_here
21
+ REDIS_DB=0
22
+ REDIS_SSL=true
23
+ REDIS_MAX_CONNECTIONS=100
24
+
25
+ # Security Configuration
26
+ SECRET_KEY=your_very_secure_secret_key_here_at_least_32_characters
27
+ JWT_ALGORITHM=HS256
28
+ ACCESS_TOKEN_EXPIRE_MINUTES=30
29
+ REFRESH_TOKEN_EXPIRE_DAYS=7
30
+ BCRYPT_ROUNDS=12
31
+
32
+ # CORS Configuration
33
+ CORS_ORIGINS=https://yourdomain.com,https://app.yourdomain.com
34
+
35
+ # AWS Configuration
36
+ AWS_ACCESS_KEY_ID=your_aws_access_key_here
37
+ AWS_SECRET_ACCESS_KEY=your_aws_secret_key_here
38
+ AWS_REGION=us-east-1
39
+ AWS_ENDPOINT=
40
+ AWS_TIMEOUT=30
41
+ AWS_RETRY_ATTEMPTS=3
42
+ AWS_RETRY_DELAY=1.0
43
+
44
+ # GCP Configuration
45
+ GCP_PROJECT_ID=your_gcp_project_id
46
+ GCP_SERVICE_ACCOUNT_KEY=path/to/your/service-account-key.json
47
+ GCP_REGION=us-central1
48
+ GCP_ENDPOINT=
49
+ GCP_TIMEOUT=30
50
+ GCP_RETRY_ATTEMPTS=3
51
+ GCP_RETRY_DELAY=1.0
52
+
53
+ # Azure Configuration
54
+ AZURE_CLIENT_ID=your_azure_client_id
55
+ AZURE_CLIENT_SECRET=your_azure_client_secret
56
+ AZURE_TENANT_ID=your_azure_tenant_id
57
+ AZURE_SUBSCRIPTION_ID=your_azure_subscription_id
58
+ AZURE_REGION=eastus
59
+ AZURE_ENDPOINT=
60
+ AZURE_TIMEOUT=30
61
+ AZURE_RETRY_ATTEMPTS=3
62
+ AZURE_RETRY_DELAY=1.0
63
+
64
+ # OCI Configuration
65
+ OCI_TENANCY_OCID=your_oci_tenancy_ocid
66
+ OCI_USER_OCID=your_oci_user_ocid
67
+ OCI_FINGERPRINT=your_oci_fingerprint
68
+ OCI_PRIVATE_KEY_PATH=~/.oci/oci_api_key.pem
69
+ OCI_REGION=us-ashburn-1
70
+ OCI_ENDPOINT=
71
+ OCI_TIMEOUT=30
72
+ OCI_RETRY_ATTEMPTS=3
73
+ OCI_RETRY_DELAY=1.0
74
+
75
+ # HuggingFace Configuration
76
+ HUGGINGFACE_TOKEN=your_huggingface_token_here
77
+ HF_TIMEOUT=30
78
+ HF_RETRY_ATTEMPTS=3
79
+ HF_RETRY_DELAY=1.0
80
+
81
+ # Vast.ai Configuration
82
+ VAST_API_KEY=your_vast_api_key_here
83
+ VAST_TIMEOUT=30
84
+ VAST_RETRY_ATTEMPTS=3
85
+ VAST_RETRY_DELAY=1.0
86
+
87
+ # RunPod Configuration
88
+ RUNPOD_API_KEY=your_runpod_api_key_here
89
+ RUNPOD_TIMEOUT=30
90
+ RUNPOD_RETRY_ATTEMPTS=3
91
+ RUNPOD_RETRY_DELAY=1.0
92
+
93
+ # Monitoring Configuration
94
+ PROMETHEUS_ENABLED=true
95
+ PROMETHEUS_PORT=9090
96
+ GRAFANA_ENABLED=true
97
+ GRAFANA_PORT=3000
98
+ GRAFANA_ADMIN_PASSWORD=your_grafana_password
99
+
100
+ # Logging Configuration
101
+ LOG_LEVEL=INFO
102
+ LOG_FILE=/var/log/terradev/production.log
103
+ LOG_MAX_SIZE=100MB
104
+ LOG_BACKUP_COUNT=5
105
+
106
+ # Rate Limiting Configuration
107
+ RATE_LIMIT_DEFAULT=100/minute
108
+ RATE_LIMIT_AUTH=10/minute
109
+ RATE_LIMIT_DEPLOY=5/minute
110
+ RATE_LIMIT_UPLOAD=20/minute
111
+ RATE_LIMIT_API=1000/hour
112
+
113
+ # Performance Configuration
114
+ MAX_WORKERS=4
115
+ WORKER_TIMEOUT=300
116
+ KEEPALIVE_TIMEOUT=30
117
+ MAX_CONNECTIONS=100
118
+ MAX_CONNECTIONS_PER_HOST=25
119
+
120
+ # Security Configuration
121
+ ENABLE_HTTPS=true
122
+ SSL_CERT_PATH=/etc/ssl/cert.pem
123
+ SSL_KEY_PATH=/etc/ssl/key.pem
124
+ ALLOWED_HOSTS=yourdomain.com,app.yourdomain.com
125
+
126
+ # Feature Flags
127
+ ENABLE_CLOUD_ADVISOR=true
128
+ ENABLE_MULTICLOUD_DB=true
129
+ ENABLE_ADVANCED_ANALYTICS=true
130
+ ENABLE_BETA_FEATURES=false
131
+
132
+ # Backup Configuration
133
+ BACKUP_ENABLED=true
134
+ BACKUP_SCHEDULE=0 2 * * * # Daily at 2 AM
135
+ BACKUP_RETENTION_DAYS=30
136
+ BACKUP_S3_BUCKET=your-backup-bucket
137
+
138
+ # Alert Configuration
139
+ ALERT_EMAIL_ENABLED=true
140
+ ALERT_EMAIL_SMTP_HOST=smtp.gmail.com
141
+ ALERT_EMAIL_SMTP_PORT=587
142
+ ALERT_EMAIL_USERNAME=your_email@gmail.com
143
+ ALERT_EMAIL_PASSWORD=your_email_password
144
+ ALERT_EMAIL_FROM=alerts@yourdomain.com
145
+ ALERT_EMAIL_TO=admin@yourdomain.com
146
+
147
+ # Slack Configuration
148
+ SLACK_WEBHOOK_URL=your_slack_webhook_url
149
+ SLACK_CHANNEL=#alerts
150
+
151
+ # Environment Configuration
152
+ ENVIRONMENT=production
153
+ DEBUG=false
154
+ TESTING=false
155
+
156
+ # Application Configuration
157
+ APP_NAME=Terradev
158
+ APP_VERSION=1.0.0
159
+ APP_DESCRIPTION=ML Training Optimization Platform
160
+
161
+ # External Services Configuration
162
+ SENTRY_DSN=your_sentry_dsn_here
163
+ NEW_RELIC_LICENSE_KEY=your_new_relic_key_here
164
+ DATADOG_API_KEY=your_datadog_api_key_here
@@ -0,0 +1,105 @@
1
+ name: Terradev CI
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: ubuntu-latest
12
+ strategy:
13
+ matrix:
14
+ python-version: ['3.9', '3.11', '3.12']
15
+ env:
16
+ TERRADEV_SKIP_ONBOARDING: "1"
17
+
18
+ steps:
19
+ - uses: actions/checkout@v4
20
+
21
+ - name: Set up Python ${{ matrix.python-version }}
22
+ uses: actions/setup-python@v5
23
+ with:
24
+ python-version: ${{ matrix.python-version }}
25
+
26
+ - name: Install package + test deps
27
+ run: |
28
+ pip install -e ".[dev]" 2>/dev/null || pip install -e .
29
+ pip install pytest pytest-asyncio
30
+
31
+ - name: CLI smoke test
32
+ run: |
33
+ terradev --version
34
+ terradev --help
35
+
36
+ - name: Run test suite
37
+ run: pytest tests/ -v --tb=short
38
+
39
+ build:
40
+ runs-on: ubuntu-latest
41
+ needs: test
42
+ steps:
43
+ - uses: actions/checkout@v4
44
+
45
+ - uses: actions/setup-python@v5
46
+ with:
47
+ python-version: '3.11'
48
+
49
+ - name: Build wheel + sdist
50
+ run: |
51
+ pip install build
52
+ python -m build
53
+
54
+ - name: Verify built package installs
55
+ run: |
56
+ pip install dist/*.whl
57
+ terradev --version
58
+
59
+ - name: Upload artifacts
60
+ uses: actions/upload-artifact@v4
61
+ with:
62
+ name: dist
63
+ path: dist/
64
+
65
+ security:
66
+ runs-on: ubuntu-latest
67
+ steps:
68
+ - uses: actions/checkout@v4
69
+
70
+ - uses: actions/setup-python@v5
71
+ with:
72
+ python-version: '3.11'
73
+
74
+ - name: Install + scan
75
+ run: |
76
+ pip install bandit
77
+ bandit -r terradev_cli/ -f json -o bandit-report.json -ll || true
78
+
79
+ - uses: actions/upload-artifact@v4
80
+ with:
81
+ name: security-reports
82
+ path: bandit-report.json
83
+
84
+ publish:
85
+ if: startsWith(github.ref, 'refs/tags/v')
86
+ needs: [test, build]
87
+ runs-on: ubuntu-latest
88
+ permissions:
89
+ id-token: write
90
+ steps:
91
+ - uses: actions/checkout@v4
92
+
93
+ - uses: actions/setup-python@v5
94
+ with:
95
+ python-version: '3.11'
96
+
97
+ - name: Build
98
+ run: |
99
+ pip install build
100
+ python -m build
101
+
102
+ - name: Publish to PyPI
103
+ uses: pypa/gh-action-pypi-publish@release/v1
104
+ with:
105
+ password: ${{ secrets.PYPI_API_TOKEN }}
@@ -0,0 +1,30 @@
1
+ name: Deploy GitHub Pages
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+
9
+ jobs:
10
+ deploy:
11
+ runs-on: ubuntu-latest
12
+ permissions:
13
+ pages: write
14
+ id-token: write
15
+
16
+ steps:
17
+ - name: Checkout
18
+ uses: actions/checkout@v4
19
+
20
+ - name: Setup Pages
21
+ uses: actions/configure-pages@v4
22
+
23
+ - name: Upload artifact
24
+ uses: actions/upload-pages-artifact@v4
25
+ with:
26
+ path: './docs'
27
+
28
+ - name: Deploy to GitHub Pages
29
+ id: deployment
30
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,50 @@
1
+ name: Release to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - 'v*'
7
+
8
+ permissions:
9
+ contents: write
10
+ releases: write
11
+
12
+ jobs:
13
+ release:
14
+ runs-on: ubuntu-latest
15
+
16
+ steps:
17
+ - name: Checkout code
18
+ uses: actions/checkout@v4
19
+
20
+ - name: Set up Python
21
+ uses: actions/setup-python@v4
22
+ with:
23
+ python-version: '3.9'
24
+
25
+ - name: Install build dependencies
26
+ run: |
27
+ cd terradev_cli
28
+ pip install build twine
29
+
30
+ - name: Build package
31
+ run: |
32
+ cd terradev_cli
33
+ python -m build
34
+
35
+ - name: Check package
36
+ run: |
37
+ cd terradev_cli
38
+ twine check dist/*
39
+
40
+ - name: Publish to PyPI
41
+ env:
42
+ TWINE_USERNAME: __token__
43
+ TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
44
+ run: |
45
+ cd terradev_cli
46
+ twine upload dist/*
47
+
48
+ - name: Create GitHub Release
49
+ run: |
50
+ gh release create ${{ github.ref_name }} --generate-notes
@@ -0,0 +1,42 @@
1
+ # Simple workflow for deploying static content to GitHub Pages
2
+ name: Deploy static content to Pages
3
+
4
+ on:
5
+ # Runs on pushes targeting the default branch
6
+ push:
7
+ branches: ["main"]
8
+
9
+ # Allows you to run this workflow manually from the Actions tab
10
+ workflow_dispatch:
11
+
12
+ # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
13
+ permissions:
14
+ contents: read
15
+ pages: write
16
+ id-token: write
17
+
18
+ # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
19
+ # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
20
+ concurrency:
21
+ group: "pages"
22
+ cancel-in-progress: false
23
+
24
+ jobs:
25
+ # Single deploy job since we're just deploying
26
+ deploy:
27
+ environment:
28
+ name: github-pages
29
+ url: ${{ steps.deployment.outputs.page_url }}
30
+ runs-on: ubuntu-latest
31
+ steps:
32
+ - name: Checkout
33
+ uses: actions/checkout@v4
34
+ - name: Setup Pages
35
+ uses: actions/configure-pages@v5
36
+ - name: Upload artifact
37
+ uses: actions/upload-pages-artifact@v4
38
+ with:
39
+ path: './docs'
40
+ - name: Deploy to GitHub Pages
41
+ id: deployment
42
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0"?>
2
+ <users>
3
+ <user>D87AE00AF73A8DD4AD77958DD2ADA602</user>
4
+ </users>
@@ -0,0 +1,55 @@
1
+ # Terradev CLI Docker Image
2
+ FROM python:3.9-slim
3
+
4
+ # Set environment variables
5
+ ENV PYTHONUNBUFFERED=1 \
6
+ PYTHONDONTWRITEBYTECODE=1 \
7
+ TERRADEV_CLI_VERSION=2.9.2
8
+
9
+ # Set working directory
10
+ WORKDIR /app
11
+
12
+ # Install system dependencies
13
+ RUN apt-get update && apt-get install -y \
14
+ curl \
15
+ git \
16
+ wget \
17
+ unzip \
18
+ && rm -rf /var/lib/apt/lists/*
19
+
20
+ # Copy requirements and install Python dependencies
21
+ COPY requirements.txt .
22
+ RUN pip install --no-cache-dir -r requirements.txt
23
+
24
+ # Install Terradev CLI
25
+ COPY . .
26
+ RUN pip install -e .
27
+
28
+ # Create non-root user
29
+ RUN useradd --create-home --shell /bin/bash terradev
30
+ USER terradev
31
+ WORKDIR /home/terradev
32
+
33
+ # Copy CLI to user home
34
+ COPY --chown=terradev:terradev /app /home/terradev/terradev-cli
35
+ RUN pip install -e /home/terradev/terradev-cli
36
+
37
+ # Add CLI to PATH
38
+ ENV PATH="/home/terradev/terradev-cli:$PATH"
39
+
40
+ # Expose common ports
41
+ EXPOSE 8000 8080 8888
42
+
43
+ # Health check
44
+ HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
45
+ CMD python -m terradev_cli --version || exit 1
46
+
47
+ # Default command
48
+ CMD ["python", "-m", "terradev_cli", "--help"]
49
+
50
+ # Labels for Docker Hub
51
+ LABEL maintainer="theoddden" \
52
+ version="2.9.2" \
53
+ description="Terradev CLI - Cross-cloud GPU optimization platform" \
54
+ org.opencontainers.image.source="https://github.com/theoddden/terradev" \
55
+ org.opencontainers.image.licenses="BUSL-1.1"
@@ -0,0 +1,70 @@
1
+ # Terradev CLI - Docker Hub Distribution
2
+ FROM python:3.9-slim
3
+
4
+ # Metadata for Docker Hub
5
+ LABEL maintainer="theoddden" \
6
+ version="2.9.2" \
7
+ description="Terradev CLI - Cross-cloud GPU optimization platform" \
8
+ org.opencontainers.image.source="https://github.com/theoddden/terradev" \
9
+ org.opencontainers.image.licenses="BUSL-1.1" \
10
+ org.opencontainers.image.title="Terradev CLI" \
11
+ org.opencontainers.image.description="BYOAPI: Cross-cloud GPU provisioning and cost optimization platform" \
12
+ org.opencontainers.image.url="https://github.com/theoddden/terradev"
13
+
14
+ # Environment variables
15
+ ENV PYTHONUNBUFFERED=1 \
16
+ PYTHONDONTWRITEBYTECODE=1 \
17
+ TERRADEV_CLI_VERSION=2.9.2 \
18
+ DEBIAN_FRONTEND=noninteractive
19
+
20
+ # Set working directory
21
+ WORKDIR /app
22
+
23
+ # Install system dependencies
24
+ RUN apt-get update && apt-get install -y \
25
+ curl \
26
+ git \
27
+ wget \
28
+ unzip \
29
+ ca-certificates \
30
+ && rm -rf /var/lib/apt/lists/* \
31
+ && apt-get clean
32
+
33
+ # Create non-root user for security
34
+ RUN groupadd -r terradev && useradd -r -g terradev -d /home/terradev -s /bin/bash terradev \
35
+ && mkdir -p /home/terradev \
36
+ && chown -R terradev:terradev /home/terradev
37
+
38
+ # Copy requirements first for better caching
39
+ COPY requirements.txt .
40
+ RUN pip install --no-cache-dir --upgrade pip \
41
+ && pip install --no-cache-dir -r requirements.txt
42
+
43
+ # Copy and install Terradev CLI
44
+ COPY . .
45
+ RUN pip install --no-cache-dir -e .
46
+
47
+ # Switch to non-root user
48
+ USER terradev
49
+ WORKDIR /home/terradev
50
+
51
+ # Copy CLI to user home and set up PATH
52
+ COPY --chown=terradev:terradev /app /home/terradev/terradev-cli
53
+ RUN pip install --no-cache-dir -e /home/terradev/terradev-cli \
54
+ && echo 'export PATH="/home/terradev/terradev-cli:$PATH"' >> /home/terradev/.bashrc
55
+
56
+ # Expose common ports for different services
57
+ EXPOSE 8000 8080 8888
58
+
59
+ # Health check
60
+ HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
61
+ CMD python -m terradev_cli --version || exit 1
62
+
63
+ # Default command - show help
64
+ CMD ["python", "-m", "terradev_cli", "--help"]
65
+
66
+ # Docker Hub search tags
67
+ LABEL com.docker.compose.version="2.9.2" \
68
+ com.docker.compose.project="terradev-cli" \
69
+ com.docker.compose.service="gpu-optimization" \
70
+ com.docker.compose.description="Cross-cloud GPU cost optimization and provisioning"