terradev-cli 5.4.0__tar.gz → 5.4.2__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-5.4.0 → terradev_cli-5.4.2}/PKG-INFO +15 -2
- {terradev_cli-5.4.0/terradev_cli → terradev_cli-5.4.2}/README.md +14 -1
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/pyproject.toml +1 -1
- {terradev_cli-5.4.0 → terradev_cli-5.4.2/terradev_cli}/README.md +28 -1
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/cli.py +13 -11
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli.egg-info/PKG-INFO +15 -2
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/.env.example +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/.github/workflows/action.yml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/.github/workflows/ci.yml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/.github/workflows/release.yml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/.github/workflows/static.yml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/.terradev/custom_providers.example.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/CODEMAP.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/Deployment Package/BNF_GRAMMAR.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/Deployment Package/LIFECYCLES.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/Deployment Package/architecture.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/Deployment Package/overview.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/Deployment Package/security.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/Deployment Package/troubleshooting.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/Dockerfile +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/Dockerfile.test +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/LICENSE +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/MANIFEST.in +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/agentic-template/helm/values-agentic.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/agentic-template/k8s/fleet-manifests.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/glm-5/README.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/glm-5/helm/values-glm5.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/glm-5/k8s/hpa.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/glm-5/k8s/model-cache-pvc.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/glm-5/k8s/namespace.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/glm-5/k8s/pdb.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/glm-5/k8s/service.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/glm-5/k8s/sglang-deployment.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/glm-5/k8s/vllm-deployment.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/glm-5/task.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/glm-5/terraform/main.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/glm-5/terraform/outputs.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/glm-5/terraform/variables.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/llmd-template/README.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/llmd-template/helm/values-llmd.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/llmd-template/k8s/gateway.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/llmd-template/k8s/leaderworkerset.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/llmd-template/k8s/llminferenceservice.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/llmd-template/task.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lora-template/helm/Chart.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lora-template/helm/templates/_helpers.tpl +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lora-template/helm/templates/deployment.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lora-template/helm/templates/pvc-adapter.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lora-template/helm/templates/pvc-registry.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lora-template/helm/templates/service.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lora-template/helm/templates/serviceaccount.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lora-template/helm/values-lora.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lora-template/k8s/adapter-pvc.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lora-template/k8s/deployment.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lora-template/k8s/namespace.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lora-template/k8s/registry-pvc.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lora-template/k8s/service.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lora-template/k8s/serviceaccount.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lorax-template/helm/Chart.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lorax-template/helm/templates/_helpers.tpl +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lorax-template/helm/templates/deployment.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lorax-template/helm/templates/pvc.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lorax-template/helm/templates/service.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lorax-template/helm/templates/serviceaccount.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lorax-template/helm/values-lorax.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/moe-template/README.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/moe-template/helm/values-moe.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/moe-template/k8s/deployment.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/moe-template/k8s/hpa.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/moe-template/k8s/model-cache-pvc.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/moe-template/k8s/namespace.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/moe-template/k8s/pdb.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/moe-template/k8s/service.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/moe-template/task.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/moe-template/terraform/main.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/moe-template/terraform/outputs.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/moe-template/terraform/variables.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/rag-template/README.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/rag-template/helm/values-rag.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/rag-template/k8s/deployment.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/rag-template/terraform/main.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/demo/RECORDING_GUIDE.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/demo/generate_gif.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/demo/terradev-demo.gif +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/docs/ADVANCED_FINANCIAL_INNOVATIONS.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/docs/API_DOCUMENTATION.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/docs/BingSiteAuth.xml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/docs/FINOPS_ATTRIBUTION_SYSTEM.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/docs/LORA_COMMAND_LIFECYCLE.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/docs/USER_GUIDE.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/docs/VLLM_AUTO_OPTIMIZATION_GUIDE.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/docs/VLLM_OPTIMIZATION_GUIDE.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/docs/architecture.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/docs/index.html +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/docs/overview.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/docs/robots.txt +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/docs/sitemap.xml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/docs/test_spot_provision.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/examples/aws_ssm_starter.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/examples/config.example.json +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/examples/demo_k8s_config.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/examples/direct_aws_starter.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/examples/ec2_user_data_starter.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/examples/example-pipeline.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/examples/kubernetes_training_deployment.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/examples/simple_ssm_starter.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/examples/ssh_server_starter.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/examples/start_aws_servers.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/helm/terradev/Chart.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/helm/terradev/templates/_helpers.tpl +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/helm/terradev/templates/deployment.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/helm/terradev/values.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/infrastructure/bucket-policy.json +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/infrastructure/grafana_training_dashboard.json +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/infrastructure/kubernetes/microservices.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/infrastructure/terraform/main.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/infrastructure/terraform/parallelism.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/integrations/cli-tool.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/integrations/cloud-management-widgets.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/integrations/cloud-provider-apis.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/integrations/critical-widgets.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/integrations/devops-cicd-widgets.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/integrations/devops-essential-tools.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/integrations/docker-integration.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/integrations/kubernetes-operator.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/integrations/mlflow-integration.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/marketing/bare-metal-latitude-post.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/modules/datadog/README.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/modules/datadog/dashboard.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/modules/datadog/monitors.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/modules/datadog/outputs.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/modules/datadog/provider.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/modules/datadog/variables.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/modules/datadog/versions.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/modules/prometheus_training_config.yml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/INTEGRATION_GUIDE.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/PERFORMANCE_OPTIMIZATIONS.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/README.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-artifact-verification/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-artifact-verification/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-artifact-verification/src/types.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-artifact-verification/src/verifier.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-authentication/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-authentication/src/encoding.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-authentication/src/hmac.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-authentication/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-authentication/src/types.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-cache-eviction/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-cache-eviction/src/cache.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-cache-eviction/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-cache-eviction/src/types.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-command-executor/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-command-executor/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-config-validator/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-config-validator/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-config-validator/src/types.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-config-validator/src/validator.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-connection-pool/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-connection-pool/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-connection-pool/src/pool.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-connection-pool/src/types.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-cost-calculator/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-cost-calculator/src/calculator.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-cost-calculator/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-cost-calculator/src/types.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-cost-scaler/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-cost-scaler/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-credential-vault/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-credential-vault/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-credential-vault/src/types.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-credential-vault/src/vault.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-dag-executor/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-dag-executor/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-distributed-lock/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-distributed-lock/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-distributed-lock/src/lock.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-distributed-lock/src/types.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-egress-optimizer/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-egress-optimizer/src/graph.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-egress-optimizer/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-egress-optimizer/src/types.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-event-bus/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-event-bus/src/bus.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-event-bus/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-event-bus/src/types.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-governance/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-governance/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-gpu-discovery/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-gpu-discovery/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-gpu-topology/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-gpu-topology/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-gpu-topology/src/topology.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-gpu-topology/src/types.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-helm-generator/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-helm-generator/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-mcp-codec/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-mcp-codec/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-mcp-optimizer/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-mcp-optimizer/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-price-intelligence/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-price-intelligence/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-quota-manager/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-quota-manager/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-quota-manager/src/manager.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-quota-manager/src/types.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-resource-pool/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-resource-pool/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-resource-pool/src/pool.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-resource-pool/src/types.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-result-compressor/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-result-compressor/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-semantic-router/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-semantic-router/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-snapshot-manager/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-snapshot-manager/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-snapshot-manager/src/snapshot.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-snapshot-manager/src/types.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-state-machine/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-state-machine/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-state-machine/src/state.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-state-machine/src/types.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-telemetry/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-telemetry/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-telemetry/src/pipeline.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-telemetry/src/types.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-tool-registry/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-tool-registry/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-vram-estimator/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-vram-estimator/src/estimator.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-vram-estimator/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-vram-estimator/src/types.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-warm-pool/Cargo.toml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-warm-pool/src/lib.rs +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/scripts/action.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/scripts/gpu-check.sh +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/setup/Lambda Cloud API spec 1.8.3.json +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/setup/docker-compose.yml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/setup/nginx.conf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/setup/setup.sh +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/setup.cfg +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/CHANGELOG.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/COMPLETE_COMMAND_REFERENCE.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/COMPLETE_INTEGRATION_GUIDE.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/IMPLEMENTATION_SUMMARY.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/MAKING_SPOT_WORK_FOR_STATEFUL_WORKLOADS.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/SGLANG_COMMAND_GUIDE.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/TERRADEV_STACK_CHART.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/__init__.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/__main__.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/cli_hf_spaces.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/cli_karpenter.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/__init__.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/agentic_provisioner.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/agentic_topology.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/async_config.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/auth.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/auto_lineage.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/cache_manager.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/checkpoint_manager.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/command_executor.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/config.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/config_validator.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/cost_scaler.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/cost_tracker.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/credential_vault.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/cuda_graph_integrator.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/dag_executor.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/data_governance.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/dataset_stager.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/deployment_router.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/distributed_lock.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/drift_detector.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/egress_cost_monitor.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/egress_optimizer.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/evaluation_orchestrator.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/event_system.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/gitops_manager.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/gpu_discovery.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/gpu_topology.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/helm_generator.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/hf_cli_integration.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/hf_smart_templates.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/hf_spaces.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/inference_router.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/inference_spot_manager.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/job_state_manager.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/kv_cache_checkpoint_manager.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/kv_cache_checkpoint_tests.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/kv_sharing.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/lora_consistency.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/lora_cost_attribution.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/lora_versioning.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/manifest_cache.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/manifest_example.json +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/mig_manager.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/migration_orchestrator.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/mla_vram_estimator.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/mla_vram_tests.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/model_orchestrator.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/oidc_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/optimization_config.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/parallel_provisioner.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/pd_transport.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/pipeline_schema.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/preflight_validator.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/price_discovery.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/price_intelligence.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/public_ip_billing_tracker.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/quick_start.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/quota_manager.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/rate_limiter.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/rust_telemetry.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/semantic_router.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/semantic_signals/__init__.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/semantic_signals/base_signal.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/semantic_signals/complexity_signal.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/semantic_signals/domain_signal.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/semantic_signals/keyword_signal.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/semantic_signals/language_signal.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/semantic_signals/modality_signal.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/semantic_signals/orchestrator.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/semantic_signals/routing_policy.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/semantic_signals/safety_signal.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/session_manager.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/ssh_key_manager.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/telemetry.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/terradev_engine.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/trace_viewer.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/training_monitor.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/training_orchestrator.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/user_manager.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/warm_pool_manager.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/weight_streaming_benchmarks.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/core/weight_streaming_manager.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/cost_optimizer.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/credential_prompt.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/demo.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/entry_point.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/integrations/Terradev LOGO BLACK.png +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/integrations/Terradev LOGO WHITEW.png +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/integrations/__init__.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/integrations/databricks_integration.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/integrations/datadog_integration.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/integrations/helicone_integration.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/integrations/prometheus_integration.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/integrations/wandb_integration.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/k8s/terraform_wrapper.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/kubernetes/inferx-cost-optimized.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/kubernetes/inferx-infrastructure.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/kubernetes/inferx-models.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/kubernetes/inferx-platform.yaml +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/kubernetes/inferx_setup.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/mcp/__init__.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/mcp/server.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/__init__.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/agentic_serving.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/drift_retrain_service.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/dvc_service.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/guardrails_service.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/huggingface_service.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/kserve_service.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/kubernetes_enhanced.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/kubernetes_service.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/langchain_service.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/langfuse_service.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/langgraph_service.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/lmcache_service.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/lora_registry.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/lorax_service.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/mlflow_service.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/model_router.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/ollama_service.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/peft_import_service.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/phoenix_service.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/qdrant_service.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/ray_enhanced.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/ray_service.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/sglang_service.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/vllm_service.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/ml_services/wandb_enhanced.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/optimization/__init__.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/optimization/auto_optimizer.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/optimization/cuco_optimizer.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/LATITUDE_PROVIDER.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/__init__.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/alibaba_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/aws_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/azure_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/base_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/baseten_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/coreweave_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/crusoe_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/demo_mode.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/digitalocean_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/e2e_networks_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/fluidstack_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/gcp_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/gpu_catalog.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/hetzner_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/huggingface_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/hyperstack_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/inferx_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/lambda_labs_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/latitude_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/oracle_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/ovhcloud_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/provider_factory.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/provider_profiles.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/real_pricing.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/registry.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/runpod_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/siliconflow_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/tensordock_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/types.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/vastai_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/providers/yottalabs_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/requirements.txt +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/requirements_minimal.txt +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/main.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/__init__.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/gpu-node-aws/bootstrap.sh +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/gpu-node-aws/main.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/gpu-node-aws/outputs.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/gpu-node-aws/variables.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/gpu-node-aws/versions.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/gpu-node-hyperstack/bootstrap.sh +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/gpu-node-hyperstack/main.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/gpu-node-hyperstack/outputs.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/gpu-node-hyperstack/variables.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/gpu-node-hyperstack/versions.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/gpu-node-lambda/bootstrap.sh +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/gpu-node-lambda/main.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/gpu-node-lambda/outputs.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/gpu-node-lambda/variables.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/gpu-node-lambda/versions.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/gpu-node-vastai/bootstrap.sh +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/gpu-node-vastai/main.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/gpu-node-vastai/outputs.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/gpu-node-vastai/variables.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/gpu-node-vastai/versions.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/k8s-control-plane/join-script.tpl +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/k8s-control-plane/kubeconfig.tpl +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/k8s-control-plane/main.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/k8s-control-plane/outputs.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/k8s-control-plane/variables.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/k8s-control-plane/versions.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/networking/main.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/networking/outputs.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/networking/variables.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/modules/networking/versions.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/outputs.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/price-optimizer/optimal-allocation.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/providers.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/terraform/variables.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/test_summary.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/utils/__init__.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli/utils/formatters.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli.egg-info/SOURCES.txt +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli.egg-info/dependency_links.txt +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli.egg-info/entry_points.txt +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli.egg-info/requires.txt +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terradev_cli.egg-info/top_level.txt +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terraform.tfvars.example +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terraform_optimization/backend.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terraform_optimization/error_handling.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terraform_optimization/parallel_provisioning.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terraform_optimization/storage_choice_matrix.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terraform_optimization/test_error_handler.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terraform_optimization/versions.tf +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terraform_transparency/audit_demo/trail_3caed73ad5bf.json +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terraform_transparency/audit_trail.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terraform_transparency/audit_trails.json +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terraform_transparency/decision_engine.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terraform_transparency/decision_logs.json +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terraform_transparency/operations.json +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terraform_transparency/terraform_manager.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terraform_transparency/terraform_plans.json +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terraform_transparency/transparency_demo.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/terraform_transparency/transparency_report.json +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/CREDENTIAL_STRATEGY.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/INTEGRATION_STRATEGY.md +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/Makefile +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/ci_pipeline.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/conftest.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/root_tests/test_cli_ux_battle.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/root_tests/test_cli_ux_battle_fixed.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/root_tests/test_cli_ux_final.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/root_tests/test_final_integration.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/root_tests/test_integrated_optimization.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/root_tests/test_p10_production_failover.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/root_tests/test_sso_phase1.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/root_tests/test_vllm_optimization.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/simple_test.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/test_ai_integrations.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/test_checkpoint_manager.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/test_cli_smoke.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/test_dag_executor.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/test_flashoptim.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/test_integration.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/test_job_state_manager.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/test_k8s_regression.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/test_latitude_provider.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/test_major_providers.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/test_mcp_handlers.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/test_new_providers.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/test_provider_conformance.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/test_providers.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/test_semantic_router.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/test_sglang_optimization.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/test_ssh_key_manager.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/test_training_monitor.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/test_training_orchestrator.py +0 -0
- {terradev_cli-5.4.0 → terradev_cli-5.4.2}/tests/test_vllm_features.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: terradev-cli
|
|
3
|
-
Version: 5.4.
|
|
3
|
+
Version: 5.4.2
|
|
4
4
|
Summary: An imperative command-line-interface for AI workload orchestration.
|
|
5
5
|
Author-email: Terradev Team <team@terradev.com>
|
|
6
6
|
Maintainer-email: Terradev Team <team@terradev.com>
|
|
@@ -93,7 +93,7 @@ Requires-Dist: redis>=5.0.0; extra == "enterprise"
|
|
|
93
93
|
Requires-Dist: PyJWT>=2.8.0; extra == "enterprise"
|
|
94
94
|
Dynamic: license-file
|
|
95
95
|
|
|
96
|
-
# Terradev CLI v5.
|
|
96
|
+
# Terradev CLI v5.4.2
|
|
97
97
|
|
|
98
98
|
**An imperative command-line-interface for AI workload orchestration.**
|
|
99
99
|
|
|
@@ -111,6 +111,19 @@ Continued focus on lower cost, faster provisioning, and topology-aware execution
|
|
|
111
111
|
|
|
112
112
|
Model agnostic. Dataset agnostic. GPU agnostic. Provider agnostic. The only thing Terradev is not agnostic about is correctness: it enforces topology, idempotency, and sequencing.
|
|
113
113
|
|
|
114
|
+
**NOTES ON 5.4.2**
|
|
115
|
+
|
|
116
|
+
Fixed **credential type checking bug** in `is_first_time_user()` and onboarding:
|
|
117
|
+
|
|
118
|
+
- **Bug**: `is_first_time_user()` and onboarding code called `.lower()` on credential values without checking if they were strings. The credentials file uses nested dict format `{"runpod": {"api_key": "..."}}`, so when iterating over values, some are dicts, not strings. This caused `AttributeError: 'dict' object has no attribute 'lower'`.
|
|
119
|
+
|
|
120
|
+
- **Fix**:
|
|
121
|
+
- Added `isinstance(value, str)` check before calling `.lower()` in `is_first_time_user()` (line 119)
|
|
122
|
+
- Added `isinstance(existing_value, str)` check before calling `.lower()` in onboarding (line 764)
|
|
123
|
+
- The `_provider_creds()` method already correctly handles both flat and nested credential formats
|
|
124
|
+
|
|
125
|
+
- **Impact**: `terradev quote` and other commands that check credentials now work correctly with the nested dict credential format.
|
|
126
|
+
|
|
114
127
|
**NOTES ON 5.3.9**
|
|
115
128
|
|
|
116
129
|
Added **LoRAX (LoRA eXchange) integration** and **HuggingFace PEFT import** for production-grade multi-LoRA inference serving:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Terradev CLI v5.
|
|
1
|
+
# Terradev CLI v5.4.2
|
|
2
2
|
|
|
3
3
|
**An imperative command-line-interface for AI workload orchestration.**
|
|
4
4
|
|
|
@@ -16,6 +16,19 @@ Continued focus on lower cost, faster provisioning, and topology-aware execution
|
|
|
16
16
|
|
|
17
17
|
Model agnostic. Dataset agnostic. GPU agnostic. Provider agnostic. The only thing Terradev is not agnostic about is correctness: it enforces topology, idempotency, and sequencing.
|
|
18
18
|
|
|
19
|
+
**NOTES ON 5.4.2**
|
|
20
|
+
|
|
21
|
+
Fixed **credential type checking bug** in `is_first_time_user()` and onboarding:
|
|
22
|
+
|
|
23
|
+
- **Bug**: `is_first_time_user()` and onboarding code called `.lower()` on credential values without checking if they were strings. The credentials file uses nested dict format `{"runpod": {"api_key": "..."}}`, so when iterating over values, some are dicts, not strings. This caused `AttributeError: 'dict' object has no attribute 'lower'`.
|
|
24
|
+
|
|
25
|
+
- **Fix**:
|
|
26
|
+
- Added `isinstance(value, str)` check before calling `.lower()` in `is_first_time_user()` (line 119)
|
|
27
|
+
- Added `isinstance(existing_value, str)` check before calling `.lower()` in onboarding (line 764)
|
|
28
|
+
- The `_provider_creds()` method already correctly handles both flat and nested credential formats
|
|
29
|
+
|
|
30
|
+
- **Impact**: `terradev quote` and other commands that check credentials now work correctly with the nested dict credential format.
|
|
31
|
+
|
|
19
32
|
**NOTES ON 5.3.9**
|
|
20
33
|
|
|
21
34
|
Added **LoRAX (LoRA eXchange) integration** and **HuggingFace PEFT import** for production-grade multi-LoRA inference serving:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Terradev CLI v5.
|
|
1
|
+
# Terradev CLI v5.4.1
|
|
2
2
|
|
|
3
3
|
**An imperative command-line-interface for AI workload orchestration.**
|
|
4
4
|
|
|
@@ -16,6 +16,33 @@ Continued focus on lower cost, faster provisioning, and topology-aware execution
|
|
|
16
16
|
|
|
17
17
|
Model agnostic. Dataset agnostic. GPU agnostic. Provider agnostic. The only thing Terradev is not agnostic about is correctness: it enforces topology, idempotency, and sequencing.
|
|
18
18
|
|
|
19
|
+
**NOTES ON 5.4.1**
|
|
20
|
+
|
|
21
|
+
Fixed **credential persistence scope bug** in `terradev configure`:
|
|
22
|
+
|
|
23
|
+
- **Bug**: `api` variable was only instantiated inside the `else` block (interactive mode), but `api.save_credentials()` was called unconditionally at line 1530. This caused `UnboundLocalError` when using `--provider` flag (single-provider mode), and would have overwritten credentials with empty data in interactive mode.
|
|
24
|
+
|
|
25
|
+
- **Fix**:
|
|
26
|
+
- Moved `api = TerradevAPI()` to line 952 (before `if provider:` branching) to ensure it's always in scope
|
|
27
|
+
- Removed duplicate `api` instantiation from the `else` block
|
|
28
|
+
- Moved `api.save_credentials()` inside the `else` block (line 1531) - it only runs in interactive mode since single-provider mode saves directly to file at line 1186-1187
|
|
29
|
+
|
|
30
|
+
- **Impact**: Both `terradev configure --provider <name>` and `terradev configure` (interactive) now correctly persist credentials to `~/.terradev/credentials.json`.
|
|
31
|
+
|
|
32
|
+
**NOTES ON 5.4.0**
|
|
33
|
+
|
|
34
|
+
Fixed **credential persistence bug** in `terradev configure` interactive mode:
|
|
35
|
+
|
|
36
|
+
- **Bug**: Interactive mode (`terradev configure` without `--provider` flag) crashed with `NameError: name 'api' is not defined` at line 1515, preventing credentials from being saved to disk. This caused `terradev quote` to return empty results for all providers.
|
|
37
|
+
|
|
38
|
+
- **Fix**:
|
|
39
|
+
- Added `api = TerradevAPI()` initialization in interactive mode
|
|
40
|
+
- Added `api.load_credentials()` after `prompt_for_credentials()` to reload credentials from disk
|
|
41
|
+
- Fixed incorrectly nested Kubernetes configuration prompts (were inside "No providers configured" else block)
|
|
42
|
+
- Restored `api.save_credentials()` to save all credentials (provider + ML integrations + Kubernetes settings)
|
|
43
|
+
|
|
44
|
+
- **Impact**: Users can now successfully configure providers in interactive mode and retrieve real-time pricing via `terradev quote`.
|
|
45
|
+
|
|
19
46
|
**NOTES ON 5.3.9**
|
|
20
47
|
|
|
21
48
|
Added **LoRAX (LoRA eXchange) integration** and **HuggingFace PEFT import** for production-grade multi-LoRA inference serving:
|
|
@@ -116,7 +116,7 @@ class TerradevAPI:
|
|
|
116
116
|
# Check if all credentials are still placeholder values
|
|
117
117
|
placeholder_patterns = ["your_", "example_", "test_", "placeholder_", "xxx"]
|
|
118
118
|
for key, value in self.credentials.items():
|
|
119
|
-
if value and not any(
|
|
119
|
+
if value and isinstance(value, str) and not any(
|
|
120
120
|
pattern in value.lower() for pattern in placeholder_patterns
|
|
121
121
|
):
|
|
122
122
|
return False # Found a real credential
|
|
@@ -761,7 +761,7 @@ def run_interactive_onboarding(api: TerradevAPI):
|
|
|
761
761
|
existing_value = api.credentials.get(
|
|
762
762
|
f"{provider_key}_api_key"
|
|
763
763
|
) or api.credentials.get(f"{provider_key}_access_key_id")
|
|
764
|
-
if existing_value and not any(
|
|
764
|
+
if existing_value and isinstance(existing_value, str) and not any(
|
|
765
765
|
pattern in existing_value.lower()
|
|
766
766
|
for pattern in ["your_", "example_", "test_", "placeholder_", "xxx"]
|
|
767
767
|
):
|
|
@@ -947,6 +947,10 @@ def configure(provider):
|
|
|
947
947
|
RunPod is the easiest to set up (5 minutes): terradev setup runpod --quick
|
|
948
948
|
"""
|
|
949
949
|
|
|
950
|
+
# Initialize API object for credential management
|
|
951
|
+
# Must be instantiated before branching to ensure it's in scope for save_credentials()
|
|
952
|
+
api = TerradevAPI()
|
|
953
|
+
|
|
950
954
|
if provider:
|
|
951
955
|
# Configure specific provider
|
|
952
956
|
from terradev_cli.credential_prompt import prompt_for_credentials
|
|
@@ -1204,9 +1208,6 @@ def configure(provider):
|
|
|
1204
1208
|
# Interactive configuration for all providers
|
|
1205
1209
|
from terradev_cli.credential_prompt import prompt_for_credentials
|
|
1206
1210
|
|
|
1207
|
-
# Initialize API object for credential management
|
|
1208
|
-
api = TerradevAPI()
|
|
1209
|
-
|
|
1210
1211
|
configured_providers = prompt_for_credentials()
|
|
1211
1212
|
|
|
1212
1213
|
# Reload credentials from file after prompt_for_credentials saves them
|
|
@@ -1525,13 +1526,14 @@ def configure(provider):
|
|
|
1525
1526
|
api.credentials["ray_head_node_ip"] = ray_head
|
|
1526
1527
|
print(" Ray configured distributed computing")
|
|
1527
1528
|
|
|
1528
|
-
|
|
1529
|
-
|
|
1529
|
+
# Save all credentials (provider + integrations) to disk
|
|
1530
|
+
# Only in interactive mode - single-provider mode saves directly to file
|
|
1531
|
+
api.save_credentials()
|
|
1530
1532
|
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1533
|
+
print("\nCredentials saved successfully!")
|
|
1534
|
+
print(f"Stored in: {api.credentials_file}")
|
|
1535
|
+
print("Your keys are encrypted and stored locally only.")
|
|
1536
|
+
print("\nOpen Source Mode: Unlimited access")
|
|
1535
1537
|
|
|
1536
1538
|
|
|
1537
1539
|
@cli.command()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: terradev-cli
|
|
3
|
-
Version: 5.4.
|
|
3
|
+
Version: 5.4.2
|
|
4
4
|
Summary: An imperative command-line-interface for AI workload orchestration.
|
|
5
5
|
Author-email: Terradev Team <team@terradev.com>
|
|
6
6
|
Maintainer-email: Terradev Team <team@terradev.com>
|
|
@@ -93,7 +93,7 @@ Requires-Dist: redis>=5.0.0; extra == "enterprise"
|
|
|
93
93
|
Requires-Dist: PyJWT>=2.8.0; extra == "enterprise"
|
|
94
94
|
Dynamic: license-file
|
|
95
95
|
|
|
96
|
-
# Terradev CLI v5.
|
|
96
|
+
# Terradev CLI v5.4.2
|
|
97
97
|
|
|
98
98
|
**An imperative command-line-interface for AI workload orchestration.**
|
|
99
99
|
|
|
@@ -111,6 +111,19 @@ Continued focus on lower cost, faster provisioning, and topology-aware execution
|
|
|
111
111
|
|
|
112
112
|
Model agnostic. Dataset agnostic. GPU agnostic. Provider agnostic. The only thing Terradev is not agnostic about is correctness: it enforces topology, idempotency, and sequencing.
|
|
113
113
|
|
|
114
|
+
**NOTES ON 5.4.2**
|
|
115
|
+
|
|
116
|
+
Fixed **credential type checking bug** in `is_first_time_user()` and onboarding:
|
|
117
|
+
|
|
118
|
+
- **Bug**: `is_first_time_user()` and onboarding code called `.lower()` on credential values without checking if they were strings. The credentials file uses nested dict format `{"runpod": {"api_key": "..."}}`, so when iterating over values, some are dicts, not strings. This caused `AttributeError: 'dict' object has no attribute 'lower'`.
|
|
119
|
+
|
|
120
|
+
- **Fix**:
|
|
121
|
+
- Added `isinstance(value, str)` check before calling `.lower()` in `is_first_time_user()` (line 119)
|
|
122
|
+
- Added `isinstance(existing_value, str)` check before calling `.lower()` in onboarding (line 764)
|
|
123
|
+
- The `_provider_creds()` method already correctly handles both flat and nested credential formats
|
|
124
|
+
|
|
125
|
+
- **Impact**: `terradev quote` and other commands that check credentials now work correctly with the nested dict credential format.
|
|
126
|
+
|
|
114
127
|
**NOTES ON 5.3.9**
|
|
115
128
|
|
|
116
129
|
Added **LoRAX (LoRA eXchange) integration** and **HuggingFace PEFT import** for production-grade multi-LoRA inference serving:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/agentic-template/helm/values-agentic.yaml
RENAMED
|
File without changes
|
{terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/agentic-template/k8s/fleet-manifests.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/llmd-template/k8s/llminferenceservice.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lora-template/helm/templates/_helpers.tpl
RENAMED
|
File without changes
|
{terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lora-template/helm/templates/deployment.yaml
RENAMED
|
File without changes
|
{terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lora-template/helm/templates/pvc-adapter.yaml
RENAMED
|
File without changes
|
{terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lora-template/helm/templates/pvc-registry.yaml
RENAMED
|
File without changes
|
{terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lora-template/helm/templates/service.yaml
RENAMED
|
File without changes
|
{terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lora-template/helm/templates/serviceaccount.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lorax-template/helm/templates/_helpers.tpl
RENAMED
|
File without changes
|
{terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lorax-template/helm/templates/deployment.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lorax-template/helm/templates/service.yaml
RENAMED
|
File without changes
|
{terradev_cli-5.4.0 → terradev_cli-5.4.2}/clusters/lorax-template/helm/templates/serviceaccount.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{terradev_cli-5.4.0 → terradev_cli-5.4.2}/rust/terradev-artifact-verification/src/verifier.rs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|