terradev-cli 3.7.2__tar.gz → 3.7.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {terradev_cli-3.7.2 → terradev_cli-3.7.4}/PKG-INFO +239 -62
- {terradev_cli-3.7.2/terradev_cli → terradev_cli-3.7.4}/README.md +217 -5
- terradev_cli-3.7.4/core/async_config.py +268 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/dag_executor.py +33 -24
- {terradev_cli-3.7.2/terradev_cli → terradev_cli-3.7.4}/core/model_orchestrator.py +19 -9
- {terradev_cli-3.7.2/terradev_cli → terradev_cli-3.7.4}/core/parallel_provisioner.py +6 -1
- {terradev_cli-3.7.2/terradev_cli → terradev_cli-3.7.4}/core/rate_limiter.py +11 -2
- {terradev_cli-3.7.2/terradev_cli → terradev_cli-3.7.4}/core/semantic_router.py +16 -2
- terradev_cli-3.7.4/core/session_manager.py +179 -0
- {terradev_cli-3.7.2/terradev_cli → terradev_cli-3.7.4}/core/warm_pool_manager.py +1 -1
- {terradev_cli-3.7.2/terradev_cli → terradev_cli-3.7.4}/setup.py +1 -1
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/terradev_cli/cli.py +2 -2
- {terradev_cli-3.7.2 → terradev_cli-3.7.4}/terradev_cli.egg-info/PKG-INFO +239 -62
- terradev_cli-3.7.4/terradev_cli.egg-info/SOURCES.txt +121 -0
- terradev_cli-3.7.4/terradev_cli.egg-info/not-zip-safe +1 -0
- terradev_cli-3.7.4/terradev_cli.egg-info/requires.txt +29 -0
- terradev_cli-3.7.4/terradev_cli.egg-info/top_level.txt +7 -0
- terradev_cli-3.7.2/.clawhubignore +0 -5
- terradev_cli-3.7.2/.ebextensions/python.config +0 -6
- terradev_cli-3.7.2/.env.example +0 -84
- terradev_cli-3.7.2/.env.template +0 -164
- terradev_cli-3.7.2/.github/workflows/ci.yml +0 -105
- terradev_cli-3.7.2/.github/workflows/deploy.yml +0 -30
- terradev_cli-3.7.2/.github/workflows/release.yml +0 -50
- terradev_cli-3.7.2/.github/workflows/static.yml +0 -42
- terradev_cli-3.7.2/BingSiteAuth.xml +0 -4
- terradev_cli-3.7.2/CHANGELOG_v3.7.1.md +0 -77
- terradev_cli-3.7.2/CUCO_INTEGRATION_GUIDE.md +0 -341
- terradev_cli-3.7.2/Dockerfile +0 -55
- terradev_cli-3.7.2/Dockerfile.hub +0 -70
- terradev_cli-3.7.2/LICENSE +0 -114
- terradev_cli-3.7.2/MANIFEST.in +0 -33
- terradev_cli-3.7.2/PAGES_README.md +0 -45
- terradev_cli-3.7.2/PROGRESS_UPDATE_JUPYTER.ipynb +0 -445
- terradev_cli-3.7.2/README.md +0 -383
- terradev_cli-3.7.2/README_ACTION.md +0 -200
- terradev_cli-3.7.2/README_DOCKER.md +0 -287
- terradev_cli-3.7.2/README_JUPYTER.md +0 -382
- terradev_cli-3.7.2/README_long.md +0 -478
- terradev_cli-3.7.2/SKILL.md +0 -241
- terradev_cli-3.7.2/USER_GUIDE.md +0 -601
- terradev_cli-3.7.2/VLLM_AUTO_OPTIMIZATION_GUIDE.md +0 -294
- terradev_cli-3.7.2/VLLM_OPTIMIZATION_GUIDE.md +0 -220
- terradev_cli-3.7.2/VLLM_OPTIMIZATION_SUMMARY.md +0 -155
- terradev_cli-3.7.2/action.py +0 -106
- terradev_cli-3.7.2/action.yml +0 -50
- terradev_cli-3.7.2/activations/973dfe463ec85785f5f95af5ba3906eedb2d931c24e69824a89ea65dba4e813b.json +0 -1
- terradev_cli-3.7.2/ai-discovery.json +0 -114
- terradev_cli-3.7.2/analysis/api-differences-comparison.tf +0 -311
- terradev_cli-3.7.2/analysis/cost-structure-differences.tf +0 -198
- terradev_cli-3.7.2/analysis/inference-arbitrage-pivot.tf +0 -322
- terradev_cli-3.7.2/apis/free-apis-latency-arbitrage.tf +0 -504
- terradev_cli-3.7.2/b2b_roi_analysis.json +0 -142
- terradev_cli-3.7.2/bucket-policy.json +0 -12
- terradev_cli-3.7.2/build_v3.7.1.sh +0 -42
- terradev_cli-3.7.2/business/compute-arbitrage-business.md +0 -383
- terradev_cli-3.7.2/byoapi_real_snapshot.json +0 -107
- terradev_cli-3.7.2/clusters/glm-5/README.md +0 -73
- terradev_cli-3.7.2/clusters/glm-5/helm/values-glm5.yaml +0 -152
- terradev_cli-3.7.2/clusters/glm-5/k8s/hpa.yaml +0 -55
- terradev_cli-3.7.2/clusters/glm-5/k8s/model-cache-pvc.yaml +0 -35
- terradev_cli-3.7.2/clusters/glm-5/k8s/namespace.yaml +0 -8
- terradev_cli-3.7.2/clusters/glm-5/k8s/pdb.yaml +0 -14
- terradev_cli-3.7.2/clusters/glm-5/k8s/service.yaml +0 -49
- terradev_cli-3.7.2/clusters/glm-5/k8s/sglang-deployment.yaml +0 -176
- terradev_cli-3.7.2/clusters/glm-5/k8s/vllm-deployment.yaml +0 -215
- terradev_cli-3.7.2/clusters/glm-5/task.yaml +0 -81
- terradev_cli-3.7.2/clusters/glm-5/terraform/main.tf +0 -190
- terradev_cli-3.7.2/clusters/glm-5/terraform/outputs.tf +0 -60
- terradev_cli-3.7.2/clusters/glm-5/terraform/variables.tf +0 -108
- terradev_cli-3.7.2/clusters/moe-template/README.md +0 -141
- terradev_cli-3.7.2/clusters/moe-template/helm/values-moe.yaml +0 -231
- terradev_cli-3.7.2/clusters/moe-template/k8s/deployment.yaml +0 -358
- terradev_cli-3.7.2/clusters/moe-template/k8s/hpa.yaml +0 -51
- terradev_cli-3.7.2/clusters/moe-template/k8s/model-cache-pvc.yaml +0 -19
- terradev_cli-3.7.2/clusters/moe-template/k8s/namespace.yaml +0 -9
- terradev_cli-3.7.2/clusters/moe-template/k8s/pdb.yaml +0 -14
- terradev_cli-3.7.2/clusters/moe-template/k8s/service.yaml +0 -47
- terradev_cli-3.7.2/clusters/moe-template/task.yaml +0 -159
- terradev_cli-3.7.2/clusters/moe-template/terraform/main.tf +0 -213
- terradev_cli-3.7.2/clusters/moe-template/terraform/outputs.tf +0 -60
- terradev_cli-3.7.2/clusters/moe-template/terraform/variables.tf +0 -170
- terradev_cli-3.7.2/clusters/rag-template/README.md +0 -60
- terradev_cli-3.7.2/clusters/rag-template/helm/values-rag.yaml +0 -106
- terradev_cli-3.7.2/clusters/rag-template/k8s/deployment.yaml +0 -290
- terradev_cli-3.7.2/clusters/rag-template/terraform/main.tf +0 -84
- terradev_cli-3.7.2/complete_weakness_resolution_report.json +0 -1336
- terradev_cli-3.7.2/config.json +0 -1
- terradev_cli-3.7.2/demo/RECORDING_GUIDE.md +0 -80
- terradev_cli-3.7.2/demo/generate_gif.py +0 -339
- terradev_cli-3.7.2/demo/terradev-demo.gif +0 -0
- terradev_cli-3.7.2/demo_k8s_config.yaml +0 -35
- terradev_cli-3.7.2/docker-compose.yml +0 -101
- terradev_cli-3.7.2/docs/ADVANCED_FINANCIAL_INNOVATIONS.md +0 -173
- terradev_cli-3.7.2/docs/API_DOCUMENTATION.md +0 -901
- terradev_cli-3.7.2/docs/BingSiteAuth.xml +0 -4
- terradev_cli-3.7.2/docs/FINOPS_ATTRIBUTION_SYSTEM.md +0 -286
- terradev_cli-3.7.2/docs/USER_GUIDE.md +0 -952
- terradev_cli-3.7.2/docs/architecture.md +0 -228
- terradev_cli-3.7.2/docs/index.html +0 -167
- terradev_cli-3.7.2/docs/robots.txt +0 -28
- terradev_cli-3.7.2/docs/sitemap.xml +0 -45
- terradev_cli-3.7.2/eb_deploy.zip +0 -1
- terradev_cli-3.7.2/genius_data_storage/data_compressor.py +0 -377
- terradev_cli-3.7.2/genius_data_storage/genius_data_demo.py +0 -357
- terradev_cli-3.7.2/genius_data_storage/integrity_verifier.py +0 -582
- terradev_cli-3.7.2/genius_data_storage/main.tf +0 -682
- terradev_cli-3.7.2/genius_data_storage/zero_egress_accessor.py +0 -524
- terradev_cli-3.7.2/gpu-check.sh +0 -84
- terradev_cli-3.7.2/grafana_training_dashboard.json +0 -385
- terradev_cli-3.7.2/helm/terradev/Chart.yaml +0 -38
- terradev_cli-3.7.2/helm/terradev/templates/_helpers.tpl +0 -127
- terradev_cli-3.7.2/helm/terradev/templates/deployment.yaml +0 -176
- terradev_cli-3.7.2/helm/terradev/values.yaml +0 -423
- terradev_cli-3.7.2/high_throughput_workload.json +0 -5
- terradev_cli-3.7.2/index.html +0 -167
- terradev_cli-3.7.2/infrastructure/kubernetes/microservices.yaml +0 -633
- terradev_cli-3.7.2/infrastructure/terraform/main.tf +0 -1304
- terradev_cli-3.7.2/infrastructure/terraform/parallelism.tf +0 -86
- terradev_cli-3.7.2/integrations/cli-tool.tf +0 -606
- terradev_cli-3.7.2/integrations/cloud-management-widgets.tf +0 -131
- terradev_cli-3.7.2/integrations/cloud-provider-apis.py +0 -602
- terradev_cli-3.7.2/integrations/critical-widgets.tf +0 -933
- terradev_cli-3.7.2/integrations/devops-cicd-widgets.tf +0 -243
- terradev_cli-3.7.2/integrations/devops-essential-tools.tf +0 -314
- terradev_cli-3.7.2/integrations/docker-integration.tf +0 -423
- terradev_cli-3.7.2/integrations/kubernetes-operator.tf +0 -276
- terradev_cli-3.7.2/integrations/mlflow-integration.tf +0 -366
- terradev_cli-3.7.2/kaggle_notebooks/01_hf_spaces_cost_optimization.ipynb +0 -456
- terradev_cli-3.7.2/kubernetes_training_deployment.yaml +0 -253
- terradev_cli-3.7.2/llms.txt +0 -209
- terradev_cli-3.7.2/modules/datadog/README.md +0 -59
- terradev_cli-3.7.2/modules/datadog/dashboard.tf +0 -237
- terradev_cli-3.7.2/modules/datadog/monitors.tf +0 -203
- terradev_cli-3.7.2/modules/datadog/outputs.tf +0 -21
- terradev_cli-3.7.2/modules/datadog/provider.tf +0 -5
- terradev_cli-3.7.2/modules/datadog/variables.tf +0 -77
- terradev_cli-3.7.2/modules/datadog/versions.tf +0 -10
- terradev_cli-3.7.2/nginx.conf +0 -30
- terradev_cli-3.7.2/openclaw-skill/terradev-gpu-cloud/.clawhubignore +0 -5
- terradev_cli-3.7.2/openclaw-skill/terradev-gpu-cloud/LICENSE +0 -21
- terradev_cli-3.7.2/openclaw-skill/terradev-gpu-cloud/README.md +0 -106
- terradev_cli-3.7.2/openclaw-skill/terradev-gpu-cloud/SKILL.md +0 -314
- terradev_cli-3.7.2/openclaw-skill/terradev-gpu-cloud/gpu-check.sh +0 -84
- terradev_cli-3.7.2/parallel_provisioning.tf +0 -338
- terradev_cli-3.7.2/partnerships/brand-partnerships.tf +0 -523
- terradev_cli-3.7.2/partnerships/partnership-roadmap.tf +0 -232
- terradev_cli-3.7.2/pricing_analysis_report.json +0 -164
- terradev_cli-3.7.2/prometheus_training_config.yml +0 -185
- terradev_cli-3.7.2/provision_based_pricing_analysis.json +0 -111
- terradev_cli-3.7.2/pypi_traffic_report.json +0 -84
- terradev_cli-3.7.2/pyproject.toml +0 -184
- terradev_cli-3.7.2/pyproject_v2.toml +0 -119
- terradev_cli-3.7.2/real_day_one_snapshot.json +0 -52
- terradev_cli-3.7.2/remaining_25_analysis_report.json +0 -722
- terradev_cli-3.7.2/render.yaml +0 -18
- terradev_cli-3.7.2/requirements-render.txt +0 -1
- terradev_cli-3.7.2/requirements.txt +0 -56
- terradev_cli-3.7.2/requirements_api.txt +0 -8
- terradev_cli-3.7.2/requirements_eb.txt +0 -4
- terradev_cli-3.7.2/requirements_stripe.txt +0 -5
- terradev_cli-3.7.2/robots.txt +0 -28
- terradev_cli-3.7.2/sample_workload.json +0 -7
- terradev_cli-3.7.2/setup/Lambda Cloud API spec 1.8.3.json +0 -4816
- terradev_cli-3.7.2/setup/account-setup-guide.tf +0 -393
- terradev_cli-3.7.2/setup/setup.sh +0 -411
- terradev_cli-3.7.2/sitemap.xml +0 -45
- terradev_cli-3.7.2/telemetry_production.db-shm +0 -0
- terradev_cli-3.7.2/telemetry_production.db-wal +0 -0
- terradev_cli-3.7.2/terradev_cli/CHANGELOG.md +0 -163
- terradev_cli-3.7.2/terradev_cli/README_old.md +0 -492
- terradev_cli-3.7.2/terradev_cli/README_with_emojis.md +0 -356
- terradev_cli-3.7.2/terradev_cli/__init__.py +0 -10
- terradev_cli-3.7.2/terradev_cli/__main__.py +0 -31
- terradev_cli-3.7.2/terradev_cli/bandit-report.json +0 -388
- terradev_cli-3.7.2/terradev_cli/build/lib/core/__init__.py +0 -1
- terradev_cli-3.7.2/terradev_cli/build/lib/core/model_orchestrator.py +0 -740
- terradev_cli-3.7.2/terradev_cli/build/lib/core/parallel_provisioner.py +0 -194
- terradev_cli-3.7.2/terradev_cli/build/lib/core/rate_limiter.py +0 -428
- terradev_cli-3.7.2/terradev_cli/build/lib/core/semantic_router.py +0 -1105
- terradev_cli-3.7.2/terradev_cli/build/lib/core/warm_pool_manager.py +0 -496
- terradev_cli-3.7.2/terradev_cli/cli.py +0 -8542
- terradev_cli-3.7.2/terradev_cli/cli_clean.py +0 -35
- terradev_cli-3.7.2/terradev_cli/cli_enhanced.py +0 -577
- terradev_cli-3.7.2/terradev_cli/cli_final.py +0 -823
- terradev_cli-3.7.2/terradev_cli/cli_optimization.py +0 -479
- terradev_cli-3.7.2/terradev_cli/cli_optimization_fixed.py +0 -875
- terradev_cli-3.7.2/terradev_cli/cli_optimization_simple.py +0 -850
- terradev_cli-3.7.2/terradev_cli/cli_simple.py +0 -249
- terradev_cli-3.7.2/terradev_cli/cli_tiered.py +0 -372
- terradev_cli-3.7.2/terradev_cli/core/auth.py +0 -293
- terradev_cli-3.7.2/terradev_cli/core/checkpoint_manager.py +0 -570
- terradev_cli-3.7.2/terradev_cli/core/config.py +0 -274
- terradev_cli-3.7.2/terradev_cli/core/cost_scaler.py +0 -474
- terradev_cli-3.7.2/terradev_cli/core/cost_tracker.py +0 -341
- terradev_cli-3.7.2/terradev_cli/core/dag_executor.py +0 -636
- terradev_cli-3.7.2/terradev_cli/core/data_governance.py +0 -796
- terradev_cli-3.7.2/terradev_cli/core/dataset_stager.py +0 -519
- terradev_cli-3.7.2/terradev_cli/core/deployment_router.py +0 -412
- terradev_cli-3.7.2/terradev_cli/core/drift_detector.py +0 -243
- terradev_cli-3.7.2/terradev_cli/core/egress_optimizer.py +0 -743
- terradev_cli-3.7.2/terradev_cli/core/gitops_manager.py +0 -745
- terradev_cli-3.7.2/terradev_cli/core/gpu_topology.py +0 -1213
- terradev_cli-3.7.2/terradev_cli/core/helm_generator.py +0 -923
- terradev_cli-3.7.2/terradev_cli/core/helm_generator_old.py +0 -771
- terradev_cli-3.7.2/terradev_cli/core/hf_cli_integration.py +0 -439
- terradev_cli-3.7.2/terradev_cli/core/hf_smart_templates.py +0 -996
- terradev_cli-3.7.2/terradev_cli/core/hf_spaces.py +0 -348
- terradev_cli-3.7.2/terradev_cli/core/inference_router.py +0 -1312
- terradev_cli-3.7.2/terradev_cli/core/job_state_manager.py +0 -420
- terradev_cli-3.7.2/terradev_cli/core/manifest_cache.py +0 -114
- terradev_cli-3.7.2/terradev_cli/core/manifest_example.json +0 -1
- terradev_cli-3.7.2/terradev_cli/core/preflight_validator.py +0 -820
- terradev_cli-3.7.2/terradev_cli/core/price_discovery.py +0 -385
- terradev_cli-3.7.2/terradev_cli/core/price_discovery_mock.py +0 -407
- terradev_cli-3.7.2/terradev_cli/core/price_intelligence.py +0 -897
- terradev_cli-3.7.2/terradev_cli/core/quick_start.py +0 -307
- terradev_cli-3.7.2/terradev_cli/core/semantic_signals/__init__.py +0 -35
- terradev_cli-3.7.2/terradev_cli/core/semantic_signals/base_signal.py +0 -121
- terradev_cli-3.7.2/terradev_cli/core/semantic_signals/complexity_signal.py +0 -184
- terradev_cli-3.7.2/terradev_cli/core/semantic_signals/domain_signal.py +0 -144
- terradev_cli-3.7.2/terradev_cli/core/semantic_signals/keyword_signal.py +0 -139
- terradev_cli-3.7.2/terradev_cli/core/semantic_signals/language_signal.py +0 -164
- terradev_cli-3.7.2/terradev_cli/core/semantic_signals/modality_signal.py +0 -150
- terradev_cli-3.7.2/terradev_cli/core/semantic_signals/orchestrator.py +0 -341
- terradev_cli-3.7.2/terradev_cli/core/semantic_signals/routing_policy.yaml +0 -135
- terradev_cli-3.7.2/terradev_cli/core/semantic_signals/safety_signal.py +0 -164
- terradev_cli-3.7.2/terradev_cli/core/ssh_key_manager.py +0 -182
- terradev_cli-3.7.2/terradev_cli/core/stripe_manager.py +0 -563
- terradev_cli-3.7.2/terradev_cli/core/telemetry.py +0 -463
- terradev_cli-3.7.2/terradev_cli/core/telemetry_backup.py +0 -490
- terradev_cli-3.7.2/terradev_cli/core/terradev_engine.py +0 -530
- terradev_cli-3.7.2/terradev_cli/core/tier_manager.py +0 -330
- terradev_cli-3.7.2/terradev_cli/core/trace_viewer.py +0 -157
- terradev_cli-3.7.2/terradev_cli/core/training_monitor.py +0 -546
- terradev_cli-3.7.2/terradev_cli/core/training_orchestrator.py +0 -692
- terradev_cli-3.7.2/terradev_cli/cost_optimizer.py +0 -518
- terradev_cli-3.7.2/terradev_cli/credential_prompt.py +0 -164
- terradev_cli-3.7.2/terradev_cli/demo.py +0 -375
- terradev_cli-3.7.2/terradev_cli/entry_point.py +0 -210
- terradev_cli-3.7.2/terradev_cli/integrations/Terradev LOGO BLACK.png +0 -0
- terradev_cli-3.7.2/terradev_cli/integrations/Terradev LOGO WHITEW.png +0 -0
- terradev_cli-3.7.2/terradev_cli/integrations/__init__.py +0 -1
- terradev_cli-3.7.2/terradev_cli/integrations/datadog_integration.py +0 -688
- terradev_cli-3.7.2/terradev_cli/integrations/prometheus_integration.py +0 -302
- terradev_cli-3.7.2/terradev_cli/integrations/wandb_integration.py +0 -134
- terradev_cli-3.7.2/terradev_cli/k8s/terraform_wrapper.py +0 -425
- terradev_cli-3.7.2/terradev_cli/kubernetes/inferx-cost-optimized.yaml +0 -630
- terradev_cli-3.7.2/terradev_cli/kubernetes/inferx-infrastructure.yaml +0 -404
- terradev_cli-3.7.2/terradev_cli/kubernetes/inferx-models.yaml +0 -531
- terradev_cli-3.7.2/terradev_cli/kubernetes/inferx-platform.yaml +0 -619
- terradev_cli-3.7.2/terradev_cli/kubernetes/inferx_setup.py +0 -550
- terradev_cli-3.7.2/terradev_cli/ml_services/__init__.py +0 -41
- terradev_cli-3.7.2/terradev_cli/ml_services/dvc_service.py +0 -561
- terradev_cli-3.7.2/terradev_cli/ml_services/guardrails_service.py +0 -395
- terradev_cli-3.7.2/terradev_cli/ml_services/huggingface_service.py +0 -483
- terradev_cli-3.7.2/terradev_cli/ml_services/kserve_service.py +0 -584
- terradev_cli-3.7.2/terradev_cli/ml_services/kubernetes_enhanced.py +0 -960
- terradev_cli-3.7.2/terradev_cli/ml_services/kubernetes_enhanced_fixed.py +0 -408
- terradev_cli-3.7.2/terradev_cli/ml_services/kubernetes_service.py +0 -572
- terradev_cli-3.7.2/terradev_cli/ml_services/langchain_service.py +0 -560
- terradev_cli-3.7.2/terradev_cli/ml_services/langgraph_service.py +0 -615
- terradev_cli-3.7.2/terradev_cli/ml_services/langsmith_service.py +0 -481
- terradev_cli-3.7.2/terradev_cli/ml_services/lmcache_service.py +0 -457
- terradev_cli-3.7.2/terradev_cli/ml_services/mlflow_service.py +0 -585
- terradev_cli-3.7.2/terradev_cli/ml_services/ollama_service.py +0 -492
- terradev_cli-3.7.2/terradev_cli/ml_services/phoenix_service.py +0 -301
- terradev_cli-3.7.2/terradev_cli/ml_services/qdrant_service.py +0 -253
- terradev_cli-3.7.2/terradev_cli/ml_services/ray_enhanced.py +0 -1100
- terradev_cli-3.7.2/terradev_cli/ml_services/ray_service.py +0 -555
- terradev_cli-3.7.2/terradev_cli/ml_services/sglang_service.py +0 -526
- terradev_cli-3.7.2/terradev_cli/ml_services/vllm_service.py +0 -1180
- terradev_cli-3.7.2/terradev_cli/ml_services/wandb_enhanced.py +0 -788
- terradev_cli-3.7.2/terradev_cli/ml_services/wandb_service.py +0 -426
- terradev_cli-3.7.2/terradev_cli/providers/__init__.py +0 -1
- terradev_cli-3.7.2/terradev_cli/providers/alibaba_provider.py +0 -492
- terradev_cli-3.7.2/terradev_cli/providers/aws_provider.py +0 -540
- terradev_cli-3.7.2/terradev_cli/providers/azure_provider.py +0 -303
- terradev_cli-3.7.2/terradev_cli/providers/base_provider.py +0 -194
- terradev_cli-3.7.2/terradev_cli/providers/baseten_provider.py +0 -193
- terradev_cli-3.7.2/terradev_cli/providers/coreweave_provider.py +0 -226
- terradev_cli-3.7.2/terradev_cli/providers/crusoe_provider.py +0 -463
- terradev_cli-3.7.2/terradev_cli/providers/demo_mode.py +0 -123
- terradev_cli-3.7.2/terradev_cli/providers/digitalocean_provider.py +0 -310
- terradev_cli-3.7.2/terradev_cli/providers/fluidstack_provider.py +0 -359
- terradev_cli-3.7.2/terradev_cli/providers/gcp_provider.py +0 -362
- terradev_cli-3.7.2/terradev_cli/providers/hetzner_provider.py +0 -469
- terradev_cli-3.7.2/terradev_cli/providers/huggingface_provider.py +0 -244
- terradev_cli-3.7.2/terradev_cli/providers/hyperstack_provider.py +0 -353
- terradev_cli-3.7.2/terradev_cli/providers/inferx_provider.py +0 -374
- terradev_cli-3.7.2/terradev_cli/providers/lambda_labs_provider.py +0 -215
- terradev_cli-3.7.2/terradev_cli/providers/oracle_provider.py +0 -254
- terradev_cli-3.7.2/terradev_cli/providers/ovhcloud_provider.py +0 -429
- terradev_cli-3.7.2/terradev_cli/providers/provider_factory.py +0 -107
- terradev_cli-3.7.2/terradev_cli/providers/real_pricing.py +0 -293
- terradev_cli-3.7.2/terradev_cli/providers/runpod_provider.py +0 -258
- terradev_cli-3.7.2/terradev_cli/providers/siliconflow_provider.py +0 -454
- terradev_cli-3.7.2/terradev_cli/providers/tensordock_provider.py +0 -237
- terradev_cli-3.7.2/terradev_cli/providers/vastai_provider.py +0 -197
- terradev_cli-3.7.2/terradev_cli/requirements.txt +0 -3
- terradev_cli-3.7.2/terradev_cli/requirements_minimal.txt +0 -3
- terradev_cli-3.7.2/terradev_cli/safety-report.json +0 -18554
- terradev_cli-3.7.2/terradev_cli/telemetry_protection.py +0 -180
- terradev_cli-3.7.2/terradev_cli/terradev_cli/__init__.py +0 -1
- terradev_cli-3.7.2/terradev_cli/terradev_cli/cli.py +0 -8366
- terradev_cli-3.7.2/terradev_cli/terraform/main.tf +0 -139
- terradev_cli-3.7.2/terradev_cli/terraform/modules/__init__.py +0 -19
- terradev_cli-3.7.2/terradev_cli/terraform/modules/gpu-node-aws/bootstrap.sh +0 -271
- terradev_cli-3.7.2/terradev_cli/terraform/modules/gpu-node-aws/main.tf +0 -143
- terradev_cli-3.7.2/terradev_cli/terraform/modules/gpu-node-aws/outputs.tf +0 -69
- terradev_cli-3.7.2/terradev_cli/terraform/modules/gpu-node-aws/variables.tf +0 -83
- terradev_cli-3.7.2/terradev_cli/terraform/modules/gpu-node-aws/versions.tf +0 -12
- terradev_cli-3.7.2/terradev_cli/terraform/modules/gpu-node-hyperstack/bootstrap.sh +0 -231
- terradev_cli-3.7.2/terradev_cli/terraform/modules/gpu-node-hyperstack/main.tf +0 -107
- terradev_cli-3.7.2/terradev_cli/terraform/modules/gpu-node-hyperstack/outputs.tf +0 -59
- terradev_cli-3.7.2/terradev_cli/terraform/modules/gpu-node-hyperstack/variables.tf +0 -63
- terradev_cli-3.7.2/terradev_cli/terraform/modules/gpu-node-hyperstack/versions.tf +0 -12
- terradev_cli-3.7.2/terradev_cli/terraform/modules/gpu-node-lambda/bootstrap.sh +0 -231
- terradev_cli-3.7.2/terradev_cli/terraform/modules/gpu-node-lambda/main.tf +0 -107
- terradev_cli-3.7.2/terradev_cli/terraform/modules/gpu-node-lambda/outputs.tf +0 -59
- terradev_cli-3.7.2/terradev_cli/terraform/modules/gpu-node-lambda/variables.tf +0 -63
- terradev_cli-3.7.2/terradev_cli/terraform/modules/gpu-node-lambda/versions.tf +0 -12
- terradev_cli-3.7.2/terradev_cli/terraform/modules/gpu-node-vastai/bootstrap.sh +0 -231
- terradev_cli-3.7.2/terradev_cli/terraform/modules/gpu-node-vastai/main.tf +0 -107
- terradev_cli-3.7.2/terradev_cli/terraform/modules/gpu-node-vastai/outputs.tf +0 -59
- terradev_cli-3.7.2/terradev_cli/terraform/modules/gpu-node-vastai/variables.tf +0 -63
- terradev_cli-3.7.2/terradev_cli/terraform/modules/gpu-node-vastai/versions.tf +0 -12
- terradev_cli-3.7.2/terradev_cli/terraform/modules/k8s-control-plane/join-script.tpl +0 -95
- terradev_cli-3.7.2/terradev_cli/terraform/modules/k8s-control-plane/kubeconfig.tpl +0 -29
- terradev_cli-3.7.2/terradev_cli/terraform/modules/k8s-control-plane/main.tf +0 -183
- terradev_cli-3.7.2/terradev_cli/terraform/modules/k8s-control-plane/outputs.tf +0 -50
- terradev_cli-3.7.2/terradev_cli/terraform/modules/k8s-control-plane/variables.tf +0 -59
- terradev_cli-3.7.2/terradev_cli/terraform/modules/k8s-control-plane/versions.tf +0 -16
- terradev_cli-3.7.2/terradev_cli/terraform/modules/networking/main.tf +0 -193
- terradev_cli-3.7.2/terradev_cli/terraform/modules/networking/outputs.tf +0 -50
- terradev_cli-3.7.2/terradev_cli/terraform/modules/networking/variables.tf +0 -52
- terradev_cli-3.7.2/terradev_cli/terraform/modules/networking/versions.tf +0 -12
- terradev_cli-3.7.2/terradev_cli/terraform/outputs.tf +0 -118
- terradev_cli-3.7.2/terradev_cli/terraform/price-optimizer/optimal-allocation.py +0 -188
- terradev_cli-3.7.2/terradev_cli/terraform/providers.tf +0 -22
- terradev_cli-3.7.2/terradev_cli/terraform/variables.tf +0 -95
- terradev_cli-3.7.2/terradev_cli/utils/__init__.py +0 -1
- terradev_cli-3.7.2/terradev_cli/utils/formatters.py +0 -235
- terradev_cli-3.7.2/terradev_cli.egg-info/SOURCES.txt +0 -490
- terradev_cli-3.7.2/terradev_cli.egg-info/requires.txt +0 -59
- terradev_cli-3.7.2/terradev_cli.egg-info/top_level.txt +0 -1
- terradev_cli-3.7.2/terraform.tfvars.example +0 -50
- terradev_cli-3.7.2/terraform_cli/README.md +0 -471
- terradev_cli-3.7.2/terraform_cli/demo_usage.py +0 -152
- terradev_cli-3.7.2/terraform_cli/install.sh +0 -346
- terradev_cli-3.7.2/terraform_cli/terradev_cli.py +0 -717
- terradev_cli-3.7.2/terraform_optimization/backend.tf +0 -606
- terradev_cli-3.7.2/terraform_optimization/error_handling.py +0 -742
- terradev_cli-3.7.2/terraform_optimization/storage_choice_matrix.py +0 -681
- terradev_cli-3.7.2/terraform_optimization/test_error_handler.py +0 -83
- terradev_cli-3.7.2/terraform_optimization/versions.tf +0 -668
- terradev_cli-3.7.2/terraform_transparency/audit_demo/trail_3caed73ad5bf.json +0 -428
- terradev_cli-3.7.2/terraform_transparency/audit_trail.py +0 -610
- terradev_cli-3.7.2/terraform_transparency/audit_trails.json +0 -430
- terradev_cli-3.7.2/terraform_transparency/decision_engine.py +0 -671
- terradev_cli-3.7.2/terraform_transparency/decision_logs.json +0 -192
- terradev_cli-3.7.2/terraform_transparency/operations.json +0 -45
- terradev_cli-3.7.2/terraform_transparency/terraform_manager.py +0 -627
- terradev_cli-3.7.2/terraform_transparency/terraform_plans.json +0 -1
- terradev_cli-3.7.2/terraform_transparency/transparency_demo.py +0 -417
- terradev_cli-3.7.2/terraform_transparency/transparency_report.json +0 -33
- terradev_cli-3.7.2/test_cli_ux_battle.py +0 -559
- terradev_cli-3.7.2/test_cli_ux_battle_fixed.py +0 -654
- terradev_cli-3.7.2/test_cli_ux_final.py +0 -524
- terradev_cli-3.7.2/test_final_integration.py +0 -355
- terradev_cli-3.7.2/test_integrated_optimization.py +0 -449
- terradev_cli-3.7.2/test_p10_production_failover.py +0 -667
- terradev_cli-3.7.2/test_vllm_optimization.py +0 -182
- terradev_cli-3.7.2/tests/INTEGRATION_STRATEGY.md +0 -337
- terradev_cli-3.7.2/tests/Makefile +0 -201
- terradev_cli-3.7.2/tests/ci_pipeline.py +0 -480
- terradev_cli-3.7.2/tests/conftest.py +0 -10
- terradev_cli-3.7.2/tests/simple_test.py +0 -181
- terradev_cli-3.7.2/tests/test_checkpoint_manager.py +0 -198
- terradev_cli-3.7.2/tests/test_cli_smoke.py +0 -200
- terradev_cli-3.7.2/tests/test_dag_executor.py +0 -400
- terradev_cli-3.7.2/tests/test_integration.py +0 -577
- terradev_cli-3.7.2/tests/test_job_state_manager.py +0 -307
- terradev_cli-3.7.2/tests/test_providers.py +0 -264
- terradev_cli-3.7.2/tests/test_semantic_router.py +0 -1474
- terradev_cli-3.7.2/tests/test_ssh_key_manager.py +0 -154
- terradev_cli-3.7.2/tests/test_training_monitor.py +0 -237
- terradev_cli-3.7.2/tests/test_training_orchestrator.py +0 -321
- terradev_cli-3.7.2/volatility_charts/aws_a100_volatility.png +0 -0
- terradev_cli-3.7.2/volatility_charts/aws_v100_volatility.png +0 -0
- terradev_cli-3.7.2/volatility_charts/runpod_a100_volatility.png +0 -0
- terradev_cli-3.7.2/volatility_charts/runpod_v100_volatility.png +0 -0
- {terradev_cli-3.7.2/terradev_cli → terradev_cli-3.7.4}/core/__init__.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/auth.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/checkpoint_manager.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/config.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/cost_scaler.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/cost_tracker.py +0 -0
- {terradev_cli-3.7.2/terradev_cli → terradev_cli-3.7.4}/core/cuda_graph_integrator.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/data_governance.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/dataset_stager.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/deployment_router.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/drift_detector.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/egress_optimizer.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/gitops_manager.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/gpu_topology.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/helm_generator.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/helm_generator_old.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/hf_cli_integration.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/hf_smart_templates.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/hf_spaces.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/inference_router.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/job_state_manager.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/manifest_cache.py +0 -0
- {terradev_cli-3.7.2/terradev_cli → terradev_cli-3.7.4}/core/optimization_config.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/preflight_validator.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/price_discovery.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/price_discovery_mock.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/price_intelligence.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/quick_start.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/semantic_signals/__init__.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/semantic_signals/base_signal.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/semantic_signals/complexity_signal.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/semantic_signals/domain_signal.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/semantic_signals/keyword_signal.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/semantic_signals/language_signal.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/semantic_signals/modality_signal.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/semantic_signals/orchestrator.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/semantic_signals/safety_signal.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/ssh_key_manager.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/stripe_manager.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/telemetry.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/telemetry_backup.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/terradev_engine.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/tier_manager.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/trace_viewer.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/training_monitor.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/core/training_orchestrator.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/integrations/__init__.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/integrations/datadog_integration.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/integrations/prometheus_integration.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/integrations/wandb_integration.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/ml_services/__init__.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/ml_services/dvc_service.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/ml_services/guardrails_service.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/ml_services/huggingface_service.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/ml_services/kserve_service.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/ml_services/kubernetes_enhanced.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/ml_services/kubernetes_enhanced_fixed.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/ml_services/kubernetes_service.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/ml_services/langchain_service.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/ml_services/langgraph_service.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/ml_services/langsmith_service.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/ml_services/lmcache_service.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/ml_services/mlflow_service.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/ml_services/ollama_service.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/ml_services/phoenix_service.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/ml_services/qdrant_service.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/ml_services/ray_enhanced.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/ml_services/ray_service.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/ml_services/sglang_service.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/ml_services/vllm_service.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/ml_services/wandb_enhanced.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/ml_services/wandb_service.py +0 -0
- {terradev_cli-3.7.2/terradev_cli → terradev_cli-3.7.4}/optimization/__init__.py +0 -0
- {terradev_cli-3.7.2/terradev_cli → terradev_cli-3.7.4}/optimization/auto_optimizer.py +0 -0
- {terradev_cli-3.7.2/terradev_cli → terradev_cli-3.7.4}/optimization/cuco_optimizer.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/__init__.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/alibaba_provider.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/aws_provider.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/azure_provider.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/base_provider.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/baseten_provider.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/coreweave_provider.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/crusoe_provider.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/demo_mode.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/digitalocean_provider.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/fluidstack_provider.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/gcp_provider.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/hetzner_provider.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/huggingface_provider.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/hyperstack_provider.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/inferx_provider.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/lambda_labs_provider.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/oracle_provider.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/ovhcloud_provider.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/provider_factory.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/real_pricing.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/runpod_provider.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/siliconflow_provider.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/tensordock_provider.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/providers/vastai_provider.py +0 -0
- {terradev_cli-3.7.2 → terradev_cli-3.7.4}/setup.cfg +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/terradev_cli/__init__.py +0 -0
- {terradev_cli-3.7.2 → terradev_cli-3.7.4}/terradev_cli.egg-info/dependency_links.txt +0 -0
- {terradev_cli-3.7.2 → terradev_cli-3.7.4}/terradev_cli.egg-info/entry_points.txt +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/utils/__init__.py +0 -0
- {terradev_cli-3.7.2/terradev_cli/build/lib → terradev_cli-3.7.4}/utils/formatters.py +0 -0
|
@@ -1,49 +1,24 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: terradev-cli
|
|
3
|
-
Version: 3.7.
|
|
3
|
+
Version: 3.7.4
|
|
4
4
|
Summary: NUMA-aware GPU provisioning and orchestration for stateless MoE workloads of all sizes
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
Project-URL: Documentation, https://docs.terradev.com
|
|
10
|
-
Project-URL: Repository, https://github.com/theoddden/Terradev
|
|
11
|
-
Project-URL: Bug Tracker, https://github.com/theoddden/Terradev/issues
|
|
12
|
-
Project-URL: Changelog, https://github.com/theoddden/Terradev/blob/main/CHANGELOG.md
|
|
13
|
-
Project-URL: Analytics, https://api.terradev.cloud/dashboard
|
|
14
|
-
Keywords: cloud,provisioning,gpu,multi-cloud,arbitrage,aws,gcp,azure,runpod,vastai,machine-learning,cost-optimization,parallel,gitops,argocd,flux,kubernetes,infrastructure-as-code,langchain,langgraph,sglang,wandb,mlflow,analytics,setup,conversion,telemetry,real-time,monitoring,dashboard,huggingface,huggingface-spaces,gradio,streamlit,llm,transformers,pytorch,sentence-transformers,smart-templates,hardware-optimization,model-deployment,inference,training,byoapi,terraform,kubernetes,helm,karpenter,opa,prometheus,grafana,ray,vllm,ollama,dvc,data-version-control,numa,disaggregated-inference,moe,mixture-of-experts,qwen,distserve,xcd,mi300x,h200,prefill-decode,cuda-graph,cuda-graphs,numa-topology,gpu-optimization,passive-optimization,warm-pool,endpoint-scoring
|
|
15
|
-
Classifier: Development Status :: 5 - Production/Stable
|
|
5
|
+
Home-page: https://github.com/theoddden/terradev
|
|
6
|
+
Author: Terradev Team
|
|
7
|
+
Author-email: team@terradev.com
|
|
8
|
+
Classifier: Development Status :: 4 - Beta
|
|
16
9
|
Classifier: Intended Audience :: Developers
|
|
17
|
-
Classifier:
|
|
18
|
-
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
19
|
-
Classifier: Topic :: System :: Systems Administration
|
|
20
|
-
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
|
|
21
|
-
Classifier: License :: Other/Proprietary License
|
|
10
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
22
11
|
Classifier: Programming Language :: Python :: 3
|
|
23
12
|
Classifier: Programming Language :: Python :: 3.8
|
|
24
13
|
Classifier: Programming Language :: Python :: 3.9
|
|
25
14
|
Classifier: Programming Language :: Python :: 3.10
|
|
26
15
|
Classifier: Programming Language :: Python :: 3.11
|
|
27
|
-
|
|
28
|
-
Classifier: Environment :: Console
|
|
29
|
-
Classifier: Natural Language :: English
|
|
30
|
-
Requires-Python: >=3.9
|
|
16
|
+
Requires-Python: >=3.8
|
|
31
17
|
Description-Content-Type: text/markdown
|
|
32
|
-
License-File: LICENSE
|
|
33
18
|
Requires-Dist: click>=8.0.0
|
|
34
19
|
Requires-Dist: aiohttp>=3.9.0
|
|
35
20
|
Requires-Dist: pyyaml>=6.0
|
|
36
|
-
Requires-Dist: cryptography>=41.0.0
|
|
37
21
|
Requires-Dist: requests>=2.31.0
|
|
38
|
-
Requires-Dist: gradio>=4.0.0
|
|
39
|
-
Requires-Dist: streamlit>=1.28.0
|
|
40
|
-
Requires-Dist: transformers>=4.0.0
|
|
41
|
-
Requires-Dist: torch>=2.0.0
|
|
42
|
-
Requires-Dist: sentence-transformers>=2.0.0
|
|
43
|
-
Requires-Dist: plotly>=5.0.0
|
|
44
|
-
Requires-Dist: pandas>=1.0.0
|
|
45
|
-
Requires-Dist: numpy>=1.0.0
|
|
46
|
-
Requires-Dist: huggingface-hub>=0.19.0
|
|
47
22
|
Requires-Dist: stripe>=7.0.0
|
|
48
23
|
Provides-Extra: aws
|
|
49
24
|
Requires-Dist: boto3>=1.34.0; extra == "aws"
|
|
@@ -52,45 +27,39 @@ Requires-Dist: google-cloud-compute>=1.8.0; extra == "gcp"
|
|
|
52
27
|
Provides-Extra: azure
|
|
53
28
|
Requires-Dist: azure-mgmt-compute>=29.0.0; extra == "azure"
|
|
54
29
|
Requires-Dist: azure-identity>=1.12.0; extra == "azure"
|
|
55
|
-
Provides-Extra:
|
|
56
|
-
Requires-Dist:
|
|
57
|
-
|
|
30
|
+
Provides-Extra: oracle
|
|
31
|
+
Requires-Dist: oci>=2.118.0; extra == "oracle"
|
|
32
|
+
Provides-Extra: hf
|
|
33
|
+
Requires-Dist: huggingface-hub>=0.19.0; extra == "hf"
|
|
58
34
|
Provides-Extra: all
|
|
59
35
|
Requires-Dist: boto3>=1.34.0; extra == "all"
|
|
60
36
|
Requires-Dist: google-cloud-compute>=1.8.0; extra == "all"
|
|
61
37
|
Requires-Dist: azure-mgmt-compute>=29.0.0; extra == "all"
|
|
62
38
|
Requires-Dist: azure-identity>=1.12.0; extra == "all"
|
|
63
|
-
Requires-Dist:
|
|
64
|
-
Requires-Dist: langgraph>=0.0.20; extra == "all"
|
|
65
|
-
Requires-Dist: sglang>=0.3.0; extra == "all"
|
|
66
|
-
Requires-Dist: wandb>=0.16.0; extra == "all"
|
|
67
|
-
Requires-Dist: mlflow>=2.8.0; extra == "all"
|
|
39
|
+
Requires-Dist: oci>=2.118.0; extra == "all"
|
|
68
40
|
Requires-Dist: huggingface-hub>=0.19.0; extra == "all"
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
80
|
-
Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
|
|
81
|
-
Requires-Dist: black>=22.0.0; extra == "dev"
|
|
82
|
-
Requires-Dist: flake8>=5.0.0; extra == "dev"
|
|
83
|
-
Requires-Dist: build>=0.10.0; extra == "dev"
|
|
84
|
-
Requires-Dist: twine>=4.0.0; extra == "dev"
|
|
85
|
-
Dynamic: license-file
|
|
41
|
+
Dynamic: author
|
|
42
|
+
Dynamic: author-email
|
|
43
|
+
Dynamic: classifier
|
|
44
|
+
Dynamic: description
|
|
45
|
+
Dynamic: description-content-type
|
|
46
|
+
Dynamic: home-page
|
|
47
|
+
Dynamic: provides-extra
|
|
48
|
+
Dynamic: requires-dist
|
|
49
|
+
Dynamic: requires-python
|
|
50
|
+
Dynamic: summary
|
|
86
51
|
|
|
87
|
-
# Terradev CLI v3.7.
|
|
52
|
+
# Terradev CLI v3.7.4
|
|
88
53
|
|
|
89
|
-
NUMA-aware GPU provisioning and orchestration for stateless MoE workloads of all sizes
|
|
54
|
+
**NUMA-aware GPU provisioning and orchestration for stateless MoE workloads of all sizes**
|
|
90
55
|
|
|
91
|
-

|
|
92
57
|
|
|
93
|
-
|
|
58
|
+
Terradev is a cross-cloud compute-provisioning CLI that compresses + stages datasets, provisions optimal instances + nodes, and deploys **3-5x faster** than sequential provisioning.
|
|
59
|
+
|
|
60
|
+
## What's New in v3.7.3
|
|
61
|
+
|
|
62
|
+
Performance and scalability improvements for enterprise deployments.
|
|
94
63
|
|
|
95
64
|
### CUDA Graph Optimization with NUMA Awareness
|
|
96
65
|
|
|
@@ -270,7 +239,7 @@ terradev monitor --job my-job
|
|
|
270
239
|
# Check status
|
|
271
240
|
terradev train-status
|
|
272
241
|
|
|
273
|
-
#
|
|
242
|
+
# 6. List checkpoints when done
|
|
274
243
|
terradev checkpoint list --job my-job
|
|
275
244
|
```
|
|
276
245
|
|
|
@@ -373,6 +342,214 @@ If the provisioning layer is wrong, every optimization above it underperforms. A
|
|
|
373
342
|
|
|
374
343
|
Terradev handles the foundation automatically so the rest of the stack works the way it's supposed to.
|
|
375
344
|
|
|
345
|
+
## Complete Workflow Examples
|
|
346
|
+
|
|
347
|
+
### Example 1: LLM Inference Service
|
|
348
|
+
```bash
|
|
349
|
+
#!/bin/bash
|
|
350
|
+
|
|
351
|
+
# Complete LLM deployment workflow
|
|
352
|
+
|
|
353
|
+
# 1. Find cheapest GPU
|
|
354
|
+
terradev quote -g A100 --quick
|
|
355
|
+
# 2. Provision with auto-optimization
|
|
356
|
+
terradev provision -g A100 -n 2 --parallel 4
|
|
357
|
+
# 3. Deploy optimized vLLM
|
|
358
|
+
terradev ml vllm --start --instance-ip $(terradev status --json | jq -r '.[0].ip') --model meta-llama/Llama-2-7b-hf --tp-size 2
|
|
359
|
+
# 4. Set up monitoring
|
|
360
|
+
terradev monitor --endpoint llama-api --live
|
|
361
|
+
# 5. Add customer adapter
|
|
362
|
+
terradev lora add -e http://$(terradev status --json | jq -r '.[0].ip'):8000 -n customer-a -p ./adapters/customer-a
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
### Example 2: MoE Model Production Deployment
|
|
366
|
+
```bash
|
|
367
|
+
#!/bin/bash
|
|
368
|
+
|
|
369
|
+
# GLM-5 production deployment
|
|
370
|
+
|
|
371
|
+
# 1. Deploy MoE cluster
|
|
372
|
+
terradev provision --task clusters/moe-template/task.yaml --set model_id=zai-org/GLM-5-FP8 --set tp_size=8
|
|
373
|
+
# 2. Deploy monitoring
|
|
374
|
+
terradev k8s monitoring-stack --cluster glm-5-cluster
|
|
375
|
+
# 3. Set up warm pool for bursty traffic
|
|
376
|
+
terradev ml warm-pool --configure --strategy traffic_based --max-warm-models 5 --endpoint glm-5-api
|
|
377
|
+
# 4. Test failover
|
|
378
|
+
terradev inferx failover --endpoint glm-5-api --test-load 5000
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
### Example 3: InferX + LoRA Hybrid Deployment (Production Multi-Tenant)
|
|
382
|
+
```bash
|
|
383
|
+
#!/bin/bash
|
|
384
|
+
|
|
385
|
+
# Production deployment with cold start failover and multi-tenant LoRA adapters
|
|
386
|
+
|
|
387
|
+
echo "🚀 Deploying InferX + LoRA Hybrid Inference Service"
|
|
388
|
+
|
|
389
|
+
# 1. Deploy baseline reserved GPUs for steady traffic
|
|
390
|
+
echo "📍 Step 1: Provision reserved baseline capacity"
|
|
391
|
+
terradev provision -g H100 -n 2 --parallel 4 \
|
|
392
|
+
--tag baseline-llm \
|
|
393
|
+
--max-price 2.50
|
|
394
|
+
|
|
395
|
+
BASELINE_IP=$(terradev status --json | jq -r '.[] | select(.tags[] | contains("baseline-llm")) | .ip' | head -1)
|
|
396
|
+
|
|
397
|
+
# 2. Deploy optimized vLLM with LoRA support on baseline
|
|
398
|
+
echo "📍 Step 2: Deploy vLLM with LoRA adapter support"
|
|
399
|
+
terradev ml vllm --start \
|
|
400
|
+
--instance-ip $BASELINE_IP \
|
|
401
|
+
--model meta-llama/Llama-2-7b-hf \
|
|
402
|
+
--tp-size 2 \
|
|
403
|
+
--enable-lora \
|
|
404
|
+
--enable-kv-offloading \
|
|
405
|
+
--enable-sleep-mode \
|
|
406
|
+
--port 8000
|
|
407
|
+
|
|
408
|
+
# 3. Load customer-specific LoRA adapters
|
|
409
|
+
echo "📍 Step 3: Load multi-tenant LoRA adapters"
|
|
410
|
+
terradev lora add -e http://$BASELINE_IP:8000 \
|
|
411
|
+
-n customer-enterprise-a \
|
|
412
|
+
-p ./adapters/customer-enterprise-a
|
|
413
|
+
|
|
414
|
+
terradev lora add -e http://$BASELINE_IP:8000 \
|
|
415
|
+
-n customer-startup-b \
|
|
416
|
+
-p ./adapters/customer-startup-b
|
|
417
|
+
|
|
418
|
+
terradev lora add -e http://$BASELINE_IP:8000 \
|
|
419
|
+
-n customer-internal \
|
|
420
|
+
-p ./adapters/customer-internal
|
|
421
|
+
|
|
422
|
+
# 4. Configure InferX for cold start and burst handling
|
|
423
|
+
echo "📍 Step 4: Configure InferX for serverless burst capacity"
|
|
424
|
+
terradev inferx deploy \
|
|
425
|
+
--endpoint burst-llm-api \
|
|
426
|
+
--model-id meta-llama/Llama-2-7b-hf \
|
|
427
|
+
--baseline-endpoint http://$BASELINE_IP:8000 \
|
|
428
|
+
--cold-start-threshold 100 \
|
|
429
|
+
--burst-capacity 10 \
|
|
430
|
+
--failover-strategy active-passive
|
|
431
|
+
|
|
432
|
+
# 5. Set up intelligent routing with semantic awareness
|
|
433
|
+
echo "📍 Step 5: Configure semantic routing for multi-tenant requests"
|
|
434
|
+
cat > routing-config.yaml << EOF
|
|
435
|
+
rules:
|
|
436
|
+
- name: "enterprise_customers"
|
|
437
|
+
condition: "header:x-customer-id == 'enterprise-a'"
|
|
438
|
+
route_to: "baseline"
|
|
439
|
+
lora_adapter: "customer-enterprise-a"
|
|
440
|
+
strategy: "latency"
|
|
441
|
+
|
|
442
|
+
- name: "startup_customers"
|
|
443
|
+
condition: "header:x-customer-id == 'startup-b'"
|
|
444
|
+
route_to: "baseline"
|
|
445
|
+
lora_adapter: "customer-startup-b"
|
|
446
|
+
strategy: "cost"
|
|
447
|
+
|
|
448
|
+
- name: "internal_workloads"
|
|
449
|
+
condition: "header:x-api-key starts_with 'internal_'"
|
|
450
|
+
route_to: "baseline"
|
|
451
|
+
lora_adapter: "customer-internal"
|
|
452
|
+
strategy: "throughput"
|
|
453
|
+
|
|
454
|
+
- name: "burst_traffic"
|
|
455
|
+
condition: "request_rate > 50"
|
|
456
|
+
route_to: "inferx"
|
|
457
|
+
strategy: "auto-scale"
|
|
458
|
+
|
|
459
|
+
- name: "fallback"
|
|
460
|
+
condition: "default"
|
|
461
|
+
route_to: "baseline"
|
|
462
|
+
lora_adapter: "customer-internal"
|
|
463
|
+
strategy: "round-robin"
|
|
464
|
+
EOF
|
|
465
|
+
|
|
466
|
+
terradev semantic-router --deploy --config routing-config.yaml
|
|
467
|
+
|
|
468
|
+
# 6. Configure warm pool for frequently used adapters
|
|
469
|
+
echo "📍 Step 6: Configure warm pool for LoRA adapters"
|
|
470
|
+
terradev ml warm-pool --configure \
|
|
471
|
+
--strategy adapter_based \
|
|
472
|
+
--max-warm-models 5 \
|
|
473
|
+
--warm-adapters customer-enterprise-a,customer-internal \
|
|
474
|
+
--idle-eviction-minutes 10 \
|
|
475
|
+
--enable-predictive-warming
|
|
476
|
+
|
|
477
|
+
# 7. Set up comprehensive monitoring and alerting
|
|
478
|
+
echo "📍 Step 7: Deploy monitoring stack"
|
|
479
|
+
terradev k8s monitoring-stack --cluster production
|
|
480
|
+
|
|
481
|
+
# Configure W&B for ML observability
|
|
482
|
+
terradev ml wandb --setup-alerts \
|
|
483
|
+
--endpoint http://$BASELINE_IP:8000 \
|
|
484
|
+
--metric-thresholds "latency_p95<2000,throughput>100,gpu_utilization>80" \
|
|
485
|
+
--alert-channels slack,email
|
|
486
|
+
|
|
487
|
+
# Configure InferX-specific monitoring
|
|
488
|
+
terradev inferx status --endpoint burst-llm-api --detailed
|
|
489
|
+
terradev inferx failover --endpoint burst-llm-api --test-load 1000
|
|
490
|
+
|
|
491
|
+
# 8. Test the complete setup
|
|
492
|
+
echo "📍 Step 8: Testing complete deployment"
|
|
493
|
+
echo "Testing baseline endpoint with LoRA..."
|
|
494
|
+
curl -X POST http://$BASELINE_IP:8000/v1/chat/completions \
|
|
495
|
+
-H "Content-Type: application/json" \
|
|
496
|
+
-H "x-customer-id: enterprise-a" \
|
|
497
|
+
-d '{
|
|
498
|
+
"model": "meta-llama/Llama-2-7b-hf",
|
|
499
|
+
"messages": [{"role": "user", "content": "Hello from enterprise customer!"}],
|
|
500
|
+
"max_tokens": 100
|
|
501
|
+
}'
|
|
502
|
+
|
|
503
|
+
echo "Testing InferX burst endpoint..."
|
|
504
|
+
curl -X POST https://inferx.terradev.cloud/burst-llm-api/v1/chat/completions \
|
|
505
|
+
-H "Content-Type: application/json" \
|
|
506
|
+
-H "Authorization: Bearer $INFERX_API_KEY" \
|
|
507
|
+
-d '{
|
|
508
|
+
"model": "meta-llama/Llama-2-7b-hf",
|
|
509
|
+
"messages": [{"role": "user", "content": "Hello from burst traffic!"}],
|
|
510
|
+
"max_tokens": 100
|
|
511
|
+
}'
|
|
512
|
+
|
|
513
|
+
echo "📍 Step 9: Deployment summary"
|
|
514
|
+
echo "✅ Baseline endpoint: http://$BASELINE_IP:8000"
|
|
515
|
+
echo "✅ InferX endpoint: https://inferx.terradev.cloud/burst-llm-api"
|
|
516
|
+
echo "✅ LoRA adapters loaded: $(terradev lora list -e http://$BASELINE_IP:8000 --count)"
|
|
517
|
+
echo "✅ Semantic routing: Active"
|
|
518
|
+
echo "✅ Warm pool: Configured for top adapters"
|
|
519
|
+
echo "✅ Monitoring: W&B + Prometheus + Grafana"
|
|
520
|
+
|
|
521
|
+
# 10. Set up automated LoRA updates
|
|
522
|
+
echo "📍 Step 10: Configure automated LoRA adapter updates"
|
|
523
|
+
cat > lora-update-config.yaml << EOF
|
|
524
|
+
adapters:
|
|
525
|
+
- name: "customer-enterprise-a"
|
|
526
|
+
path: "./adapters/customer-enterprise-a"
|
|
527
|
+
update_strategy: "rolling"
|
|
528
|
+
health_check: true
|
|
529
|
+
rollback_on_failure: true
|
|
530
|
+
|
|
531
|
+
- name: "customer-startup-b"
|
|
532
|
+
path: "./adapters/customer-startup-b"
|
|
533
|
+
update_strategy: "blue_green"
|
|
534
|
+
health_check: true
|
|
535
|
+
rollback_on_failure: true
|
|
536
|
+
|
|
537
|
+
monitoring:
|
|
538
|
+
update_frequency: "hourly"
|
|
539
|
+
health_check_timeout: "30s"
|
|
540
|
+
rollback_threshold: "error_rate > 0.05"
|
|
541
|
+
EOF
|
|
542
|
+
|
|
543
|
+
terradev lora auto-update --config lora-update-config.yaml
|
|
544
|
+
|
|
545
|
+
echo "🎉 InferX + LoRA Hybrid Deployment Complete!"
|
|
546
|
+
echo ""
|
|
547
|
+
echo "📊 Next Steps:"
|
|
548
|
+
echo "1. Monitor performance: terradev monitor --endpoint hybrid-llm --live"
|
|
549
|
+
echo "2. Check LoRA performance: terradev lora metrics --endpoint http://$BASELINE_IP:8000"
|
|
550
|
+
echo "3. Test failover: terradev inferx failover --endpoint burst-llm-api --test-load 5000"
|
|
551
|
+
echo "4. Update adapters: terradev lora update -n customer-enterprise-a -p ./new-adapters/"
|
|
552
|
+
|
|
376
553
|
## Quick Reference
|
|
377
554
|
```bash
|
|
378
555
|
# Set up cloud provider credentials
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
# Terradev CLI v3.7.
|
|
1
|
+
# Terradev CLI v3.7.4
|
|
2
2
|
|
|
3
|
-
NUMA-aware GPU provisioning and orchestration for stateless MoE workloads of all sizes
|
|
3
|
+
**NUMA-aware GPU provisioning and orchestration for stateless MoE workloads of all sizes**
|
|
4
4
|
|
|
5
|
-

|
|
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
|
+
|
|
9
|
+
## What's New in v3.7.3
|
|
10
|
+
|
|
11
|
+
Performance and scalability improvements for enterprise deployments.
|
|
8
12
|
|
|
9
13
|
### CUDA Graph Optimization with NUMA Awareness
|
|
10
14
|
|
|
@@ -184,7 +188,7 @@ terradev monitor --job my-job
|
|
|
184
188
|
# Check status
|
|
185
189
|
terradev train-status
|
|
186
190
|
|
|
187
|
-
#
|
|
191
|
+
# 6. List checkpoints when done
|
|
188
192
|
terradev checkpoint list --job my-job
|
|
189
193
|
```
|
|
190
194
|
|
|
@@ -287,6 +291,214 @@ If the provisioning layer is wrong, every optimization above it underperforms. A
|
|
|
287
291
|
|
|
288
292
|
Terradev handles the foundation automatically so the rest of the stack works the way it's supposed to.
|
|
289
293
|
|
|
294
|
+
## Complete Workflow Examples
|
|
295
|
+
|
|
296
|
+
### Example 1: LLM Inference Service
|
|
297
|
+
```bash
|
|
298
|
+
#!/bin/bash
|
|
299
|
+
|
|
300
|
+
# Complete LLM deployment workflow
|
|
301
|
+
|
|
302
|
+
# 1. Find cheapest GPU
|
|
303
|
+
terradev quote -g A100 --quick
|
|
304
|
+
# 2. Provision with auto-optimization
|
|
305
|
+
terradev provision -g A100 -n 2 --parallel 4
|
|
306
|
+
# 3. Deploy optimized vLLM
|
|
307
|
+
terradev ml vllm --start --instance-ip $(terradev status --json | jq -r '.[0].ip') --model meta-llama/Llama-2-7b-hf --tp-size 2
|
|
308
|
+
# 4. Set up monitoring
|
|
309
|
+
terradev monitor --endpoint llama-api --live
|
|
310
|
+
# 5. Add customer adapter
|
|
311
|
+
terradev lora add -e http://$(terradev status --json | jq -r '.[0].ip'):8000 -n customer-a -p ./adapters/customer-a
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
### Example 2: MoE Model Production Deployment
|
|
315
|
+
```bash
|
|
316
|
+
#!/bin/bash
|
|
317
|
+
|
|
318
|
+
# GLM-5 production deployment
|
|
319
|
+
|
|
320
|
+
# 1. Deploy MoE cluster
|
|
321
|
+
terradev provision --task clusters/moe-template/task.yaml --set model_id=zai-org/GLM-5-FP8 --set tp_size=8
|
|
322
|
+
# 2. Deploy monitoring
|
|
323
|
+
terradev k8s monitoring-stack --cluster glm-5-cluster
|
|
324
|
+
# 3. Set up warm pool for bursty traffic
|
|
325
|
+
terradev ml warm-pool --configure --strategy traffic_based --max-warm-models 5 --endpoint glm-5-api
|
|
326
|
+
# 4. Test failover
|
|
327
|
+
terradev inferx failover --endpoint glm-5-api --test-load 5000
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
### Example 3: InferX + LoRA Hybrid Deployment (Production Multi-Tenant)
|
|
331
|
+
```bash
|
|
332
|
+
#!/bin/bash
|
|
333
|
+
|
|
334
|
+
# Production deployment with cold start failover and multi-tenant LoRA adapters
|
|
335
|
+
|
|
336
|
+
echo "🚀 Deploying InferX + LoRA Hybrid Inference Service"
|
|
337
|
+
|
|
338
|
+
# 1. Deploy baseline reserved GPUs for steady traffic
|
|
339
|
+
echo "📍 Step 1: Provision reserved baseline capacity"
|
|
340
|
+
terradev provision -g H100 -n 2 --parallel 4 \
|
|
341
|
+
--tag baseline-llm \
|
|
342
|
+
--max-price 2.50
|
|
343
|
+
|
|
344
|
+
BASELINE_IP=$(terradev status --json | jq -r '.[] | select(.tags[] | contains("baseline-llm")) | .ip' | head -1)
|
|
345
|
+
|
|
346
|
+
# 2. Deploy optimized vLLM with LoRA support on baseline
|
|
347
|
+
echo "📍 Step 2: Deploy vLLM with LoRA adapter support"
|
|
348
|
+
terradev ml vllm --start \
|
|
349
|
+
--instance-ip $BASELINE_IP \
|
|
350
|
+
--model meta-llama/Llama-2-7b-hf \
|
|
351
|
+
--tp-size 2 \
|
|
352
|
+
--enable-lora \
|
|
353
|
+
--enable-kv-offloading \
|
|
354
|
+
--enable-sleep-mode \
|
|
355
|
+
--port 8000
|
|
356
|
+
|
|
357
|
+
# 3. Load customer-specific LoRA adapters
|
|
358
|
+
echo "📍 Step 3: Load multi-tenant LoRA adapters"
|
|
359
|
+
terradev lora add -e http://$BASELINE_IP:8000 \
|
|
360
|
+
-n customer-enterprise-a \
|
|
361
|
+
-p ./adapters/customer-enterprise-a
|
|
362
|
+
|
|
363
|
+
terradev lora add -e http://$BASELINE_IP:8000 \
|
|
364
|
+
-n customer-startup-b \
|
|
365
|
+
-p ./adapters/customer-startup-b
|
|
366
|
+
|
|
367
|
+
terradev lora add -e http://$BASELINE_IP:8000 \
|
|
368
|
+
-n customer-internal \
|
|
369
|
+
-p ./adapters/customer-internal
|
|
370
|
+
|
|
371
|
+
# 4. Configure InferX for cold start and burst handling
|
|
372
|
+
echo "📍 Step 4: Configure InferX for serverless burst capacity"
|
|
373
|
+
terradev inferx deploy \
|
|
374
|
+
--endpoint burst-llm-api \
|
|
375
|
+
--model-id meta-llama/Llama-2-7b-hf \
|
|
376
|
+
--baseline-endpoint http://$BASELINE_IP:8000 \
|
|
377
|
+
--cold-start-threshold 100 \
|
|
378
|
+
--burst-capacity 10 \
|
|
379
|
+
--failover-strategy active-passive
|
|
380
|
+
|
|
381
|
+
# 5. Set up intelligent routing with semantic awareness
|
|
382
|
+
echo "📍 Step 5: Configure semantic routing for multi-tenant requests"
|
|
383
|
+
cat > routing-config.yaml << EOF
|
|
384
|
+
rules:
|
|
385
|
+
- name: "enterprise_customers"
|
|
386
|
+
condition: "header:x-customer-id == 'enterprise-a'"
|
|
387
|
+
route_to: "baseline"
|
|
388
|
+
lora_adapter: "customer-enterprise-a"
|
|
389
|
+
strategy: "latency"
|
|
390
|
+
|
|
391
|
+
- name: "startup_customers"
|
|
392
|
+
condition: "header:x-customer-id == 'startup-b'"
|
|
393
|
+
route_to: "baseline"
|
|
394
|
+
lora_adapter: "customer-startup-b"
|
|
395
|
+
strategy: "cost"
|
|
396
|
+
|
|
397
|
+
- name: "internal_workloads"
|
|
398
|
+
condition: "header:x-api-key starts_with 'internal_'"
|
|
399
|
+
route_to: "baseline"
|
|
400
|
+
lora_adapter: "customer-internal"
|
|
401
|
+
strategy: "throughput"
|
|
402
|
+
|
|
403
|
+
- name: "burst_traffic"
|
|
404
|
+
condition: "request_rate > 50"
|
|
405
|
+
route_to: "inferx"
|
|
406
|
+
strategy: "auto-scale"
|
|
407
|
+
|
|
408
|
+
- name: "fallback"
|
|
409
|
+
condition: "default"
|
|
410
|
+
route_to: "baseline"
|
|
411
|
+
lora_adapter: "customer-internal"
|
|
412
|
+
strategy: "round-robin"
|
|
413
|
+
EOF
|
|
414
|
+
|
|
415
|
+
terradev semantic-router --deploy --config routing-config.yaml
|
|
416
|
+
|
|
417
|
+
# 6. Configure warm pool for frequently used adapters
|
|
418
|
+
echo "📍 Step 6: Configure warm pool for LoRA adapters"
|
|
419
|
+
terradev ml warm-pool --configure \
|
|
420
|
+
--strategy adapter_based \
|
|
421
|
+
--max-warm-models 5 \
|
|
422
|
+
--warm-adapters customer-enterprise-a,customer-internal \
|
|
423
|
+
--idle-eviction-minutes 10 \
|
|
424
|
+
--enable-predictive-warming
|
|
425
|
+
|
|
426
|
+
# 7. Set up comprehensive monitoring and alerting
|
|
427
|
+
echo "📍 Step 7: Deploy monitoring stack"
|
|
428
|
+
terradev k8s monitoring-stack --cluster production
|
|
429
|
+
|
|
430
|
+
# Configure W&B for ML observability
|
|
431
|
+
terradev ml wandb --setup-alerts \
|
|
432
|
+
--endpoint http://$BASELINE_IP:8000 \
|
|
433
|
+
--metric-thresholds "latency_p95<2000,throughput>100,gpu_utilization>80" \
|
|
434
|
+
--alert-channels slack,email
|
|
435
|
+
|
|
436
|
+
# Configure InferX-specific monitoring
|
|
437
|
+
terradev inferx status --endpoint burst-llm-api --detailed
|
|
438
|
+
terradev inferx failover --endpoint burst-llm-api --test-load 1000
|
|
439
|
+
|
|
440
|
+
# 8. Test the complete setup
|
|
441
|
+
echo "📍 Step 8: Testing complete deployment"
|
|
442
|
+
echo "Testing baseline endpoint with LoRA..."
|
|
443
|
+
curl -X POST http://$BASELINE_IP:8000/v1/chat/completions \
|
|
444
|
+
-H "Content-Type: application/json" \
|
|
445
|
+
-H "x-customer-id: enterprise-a" \
|
|
446
|
+
-d '{
|
|
447
|
+
"model": "meta-llama/Llama-2-7b-hf",
|
|
448
|
+
"messages": [{"role": "user", "content": "Hello from enterprise customer!"}],
|
|
449
|
+
"max_tokens": 100
|
|
450
|
+
}'
|
|
451
|
+
|
|
452
|
+
echo "Testing InferX burst endpoint..."
|
|
453
|
+
curl -X POST https://inferx.terradev.cloud/burst-llm-api/v1/chat/completions \
|
|
454
|
+
-H "Content-Type: application/json" \
|
|
455
|
+
-H "Authorization: Bearer $INFERX_API_KEY" \
|
|
456
|
+
-d '{
|
|
457
|
+
"model": "meta-llama/Llama-2-7b-hf",
|
|
458
|
+
"messages": [{"role": "user", "content": "Hello from burst traffic!"}],
|
|
459
|
+
"max_tokens": 100
|
|
460
|
+
}'
|
|
461
|
+
|
|
462
|
+
echo "📍 Step 9: Deployment summary"
|
|
463
|
+
echo "✅ Baseline endpoint: http://$BASELINE_IP:8000"
|
|
464
|
+
echo "✅ InferX endpoint: https://inferx.terradev.cloud/burst-llm-api"
|
|
465
|
+
echo "✅ LoRA adapters loaded: $(terradev lora list -e http://$BASELINE_IP:8000 --count)"
|
|
466
|
+
echo "✅ Semantic routing: Active"
|
|
467
|
+
echo "✅ Warm pool: Configured for top adapters"
|
|
468
|
+
echo "✅ Monitoring: W&B + Prometheus + Grafana"
|
|
469
|
+
|
|
470
|
+
# 10. Set up automated LoRA updates
|
|
471
|
+
echo "📍 Step 10: Configure automated LoRA adapter updates"
|
|
472
|
+
cat > lora-update-config.yaml << EOF
|
|
473
|
+
adapters:
|
|
474
|
+
- name: "customer-enterprise-a"
|
|
475
|
+
path: "./adapters/customer-enterprise-a"
|
|
476
|
+
update_strategy: "rolling"
|
|
477
|
+
health_check: true
|
|
478
|
+
rollback_on_failure: true
|
|
479
|
+
|
|
480
|
+
- name: "customer-startup-b"
|
|
481
|
+
path: "./adapters/customer-startup-b"
|
|
482
|
+
update_strategy: "blue_green"
|
|
483
|
+
health_check: true
|
|
484
|
+
rollback_on_failure: true
|
|
485
|
+
|
|
486
|
+
monitoring:
|
|
487
|
+
update_frequency: "hourly"
|
|
488
|
+
health_check_timeout: "30s"
|
|
489
|
+
rollback_threshold: "error_rate > 0.05"
|
|
490
|
+
EOF
|
|
491
|
+
|
|
492
|
+
terradev lora auto-update --config lora-update-config.yaml
|
|
493
|
+
|
|
494
|
+
echo "🎉 InferX + LoRA Hybrid Deployment Complete!"
|
|
495
|
+
echo ""
|
|
496
|
+
echo "📊 Next Steps:"
|
|
497
|
+
echo "1. Monitor performance: terradev monitor --endpoint hybrid-llm --live"
|
|
498
|
+
echo "2. Check LoRA performance: terradev lora metrics --endpoint http://$BASELINE_IP:8000"
|
|
499
|
+
echo "3. Test failover: terradev inferx failover --endpoint burst-llm-api --test-load 5000"
|
|
500
|
+
echo "4. Update adapters: terradev lora update -n customer-enterprise-a -p ./new-adapters/"
|
|
501
|
+
|
|
290
502
|
## Quick Reference
|
|
291
503
|
```bash
|
|
292
504
|
# Set up cloud provider credentials
|