truefoundry 0.10.4rc4__tar.gz → 0.10.5__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.
Potentially problematic release.
This version of truefoundry might be problematic. Click here for more details.
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/PKG-INFO +3 -3
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/pyproject.toml +3 -3
- truefoundry-0.10.5/truefoundry/_ask/cli.py +156 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/cli/util.py +1 -1
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/__init__.py +1 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/_autogen/models.py +14 -3
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/v2/lib/patched_models.py +6 -0
- truefoundry-0.10.4rc4/truefoundry/_ask/cli.py +0 -148
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/.gitignore +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/README.md +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/_ask/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/_ask/client.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/_ask/llm_utils.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/_client.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/agents/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/agents/base.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/agents/developer.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/agents/project_identifier.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/agents/tester.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/cli.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/constants.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/exception.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/logger.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/tools/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/tools/ask.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/tools/base.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/tools/commit.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/tools/docker_build.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/tools/docker_run.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/tools/file_type_counts.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/tools/list_files.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/tools/read_file.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/tools/send_request.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/tools/write_file.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/utils/client.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/utils/diff.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/utils/pydantic_compat.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/cli/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/cli/__main__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/cli/config.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/cli/console.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/cli/const.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/cli/display_util.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/common/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/common/auth_service_client.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/common/constants.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/common/credential_file_manager.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/common/credential_provider.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/common/entities.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/common/exceptions.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/common/request_utils.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/common/servicefoundry_client.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/common/session.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/common/storage_provider_utils.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/common/types.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/common/utils.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/common/warnings.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/builder/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/builder/builders/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/builder/builders/dockerfile.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/builder/builders/tfy_notebook_buildpack/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/builder/builders/tfy_notebook_buildpack/dockerfile_template.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/builder/builders/tfy_python_buildpack/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/builder/builders/tfy_python_buildpack/dockerfile_template.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/builder/builders/tfy_spark_buildpack/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/builder/builders/tfy_spark_buildpack/dockerfile_template.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/builder/builders/tfy_spark_buildpack/tfy_execute_notebook.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/builder/constants.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/builder/docker_service.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/builder/utils.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/apply_command.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/build_command.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/delete_command.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/deploy_command.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/deploy_init_command.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/get_command.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/k8s_exec_credential_command.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/kubeconfig_command.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/login_command.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/logout_command.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/logs_command.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/patch_application_command.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/patch_command.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/terminate_comand.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/trigger_command.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/utils.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/core/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/core/login.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/core/logout.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/io/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/io/no_output_callback.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/io/output_callback.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/io/rich_output_callback.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/lib/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/lib/clients/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/lib/clients/servicefoundry_client.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/lib/const.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/lib/dao/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/lib/dao/application.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/lib/dao/apply.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/lib/dao/delete.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/lib/dao/version.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/lib/dao/workspace.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/lib/diff_utils.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/lib/logs_utils.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/lib/messages.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/lib/model/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/lib/model/entity.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/lib/session.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/lib/util.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/lib/win32.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/python_deploy_codegen.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/v2/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/v2/lib/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/v2/lib/deploy.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/v2/lib/deploy_workflow.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/v2/lib/deployable_patched_models.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/v2/lib/models.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/v2/lib/source.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/logger.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/api/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/api/auth_api.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/api/deprecated_api.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/api/experiments_api.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/api/generate_code_snippet_api.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/api/health_api.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/api/metrics_api.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/api/mlfoundry_artifacts_api.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/api/run_artifacts_api.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/api/runs_api.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/api_client.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/api_response.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/configuration.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/exceptions.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/agent_app.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/agent_manifest.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/agent_open_api_tool_manifest.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/agent_open_api_tool_with_fqn.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/agent_with_fqn.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/apply_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/apply_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/artifact_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/artifact_manifest.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/artifact_path.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/artifact_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/artifact_type.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/artifact_version_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/artifact_version_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/artifact_version_serialization_format.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/artifact_version_status.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/assistant_message.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/authorize_user_for_model_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/authorize_user_for_model_version_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/blob_storage_reference.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/body_get_search_runs_get.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/chat_prompt_manifest.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/chat_prompt_manifest_messages_inner.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/columns_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/command.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/content.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/content1.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/content2.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/content2_any_of_inner.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/create_artifact_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/create_artifact_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/create_artifact_version_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/create_artifact_version_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/create_dataset_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/create_experiment_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/create_experiment_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/create_model_version_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/create_multi_part_upload_for_dataset_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/create_multi_part_upload_for_dataset_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/create_multi_part_upload_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/create_python_deployment_config_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/create_python_deployment_config_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/create_run_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/create_run_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/create_workflow_task_config_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/data_directory_manifest.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/dataset_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/dataset_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/delete_artifact_versions_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/delete_dataset_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/delete_files_for_dataset_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/delete_model_version_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/delete_run_request.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/delete_tag_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/experiment_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/experiment_id_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/experiment_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/experiment_tag_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/export_deployment_files_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/external_blob_storage_source.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/fast_ai_framework.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/file_info_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/finalize_artifact_version_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/framework.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/get_artifact_version_aliases_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/get_experiment_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/get_latest_run_log_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/get_metric_history_response.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/get_signed_url_for_dataset_write_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_artifact_version_read_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_artifact_version_read_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_artifact_version_write_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_artifact_version_write_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_dataset_read_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_dataset_read_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/get_signed_urls_for_dataset_write_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/get_tenant_id_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/gluon_framework.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/h2_o_framework.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/http_validation_error.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/image_content_part.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/image_url.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/infer_method_name.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/keras_framework.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/latest_run_log_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/library_name.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/light_gbm_framework.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/list_artifact_versions_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/list_artifact_versions_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/list_artifacts_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/list_artifacts_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/list_colums_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/list_datasets_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/list_datasets_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/list_experiments_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/list_files_for_artifact_version_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/list_files_for_artifact_versions_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/list_files_for_dataset_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/list_files_for_dataset_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/list_latest_run_logs_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/list_metric_history_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/list_metric_history_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/list_model_version_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/list_model_versions_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/list_models_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/list_models_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/list_run_artifacts_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/list_run_logs_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/local_artifact_source.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/local_model_source.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/log_batch_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/log_metric_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/log_param_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/manifest.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/manifest1.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/manifest2.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/method.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/metric_collection_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/metric_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/mime_type.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/model_configuration.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/model_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/model_manifest.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/model_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/model_server.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/model_version_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/model_version_environment.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/model_version_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/multi_part_upload_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/multi_part_upload_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/multi_part_upload_storage_provider.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/notify_artifact_version_failure_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/onnx_framework.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/openapi_spec.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/paddle_framework.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/param_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/parameters.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/py_torch_framework.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/resolve_agent_app_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/restore_run_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/run_data_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/run_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/run_info_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/run_log_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/run_log_input_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/run_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/run_tag_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/search_runs_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/search_runs_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/set_experiment_tag_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/set_tag_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/signed_url_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/sklearn_framework.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/sklearn_model_schema.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/sklearn_serialization_format.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/source.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/source1.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/source2.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/spa_cy_framework.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/stats_models_framework.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/stop.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/store_run_logs_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/subject.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/subject_type.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/system_message.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/tensor_flow_framework.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/text.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/text_content_part.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/transformers_framework.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/trigger_job_run_config_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/trigger_job_run_config_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/true_foundry_managed_source.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/update_artifact_version_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/update_dataset_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/update_experiment_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/update_model_version_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/update_run_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/update_run_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/url.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/user_message.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/validate_external_storage_root_request_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/validate_external_storage_root_response_dto.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/validation_error.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/validation_error_loc_inner.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/xg_boost_framework.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/xg_boost_model_schema.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/models/xg_boost_serialization_format.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client/rest.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/client_README.md +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/entities/artifacts.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/models/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/models/exceptions.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/models/schema.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/models/signature.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/_autogen/models/utils.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/artifact/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/artifact/truefoundry_artifact_repo.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/cli/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/cli/cli.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/cli/commands/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/cli/commands/download.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/cli/commands/model_init.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/cli/utils.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/clients/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/clients/servicefoundry_client.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/constants.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/entities.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/enums.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/exceptions.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/git_info.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/internal_namespace.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/log_types/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/log_types/artifacts/artifact.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/log_types/artifacts/constants.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/log_types/artifacts/dataset.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/log_types/artifacts/general_artifact.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/log_types/artifacts/model.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/log_types/artifacts/utils.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/log_types/image/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/log_types/image/constants.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/log_types/image/image.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/log_types/image/image_normalizer.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/log_types/image/types.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/log_types/plot.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/log_types/pydantic_base.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/log_types/utils.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/logger.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/mlfoundry_api.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/mlfoundry_run.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/model_framework.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/prompt_utils.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/run_utils.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/session.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/ml/validation_utils.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/pydantic_v1.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/version.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/workflow/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/workflow/container_task.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/workflow/map_task.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/workflow/python_task.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/workflow/remote_filesystem/__init__.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/workflow/remote_filesystem/logger.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/workflow/remote_filesystem/tfy_signed_url_client.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/workflow/remote_filesystem/tfy_signed_url_fs.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/workflow/task.py +0 -0
- {truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/workflow/workflow.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: truefoundry
|
|
3
|
-
Version: 0.10.
|
|
3
|
+
Version: 0.10.5
|
|
4
4
|
Summary: TrueFoundry CLI
|
|
5
5
|
Author-email: TrueFoundry Team <abhishek@truefoundry.com>
|
|
6
6
|
Requires-Python: <3.14,>=3.8.1
|
|
@@ -30,12 +30,12 @@ Requires-Dist: requirements-parser<0.12.0,>=0.11.0
|
|
|
30
30
|
Requires-Dist: rich-click<2.0.0,>=1.2.1
|
|
31
31
|
Requires-Dist: rich<14.0.0,>=13.7.1
|
|
32
32
|
Requires-Dist: tqdm<5.0.0,>=4.0.0
|
|
33
|
-
Requires-Dist: truefoundry-sdk<0.2.0,>=0.1.
|
|
33
|
+
Requires-Dist: truefoundry-sdk<0.2.0,>=0.1.3
|
|
34
34
|
Requires-Dist: typing-extensions>=4.0
|
|
35
35
|
Requires-Dist: urllib3<3,>=1.26.18
|
|
36
36
|
Requires-Dist: yq<4.0.0,>=3.1.0
|
|
37
37
|
Provides-Extra: ai
|
|
38
|
-
Requires-Dist: mcp==1.9.
|
|
38
|
+
Requires-Dist: mcp==1.9.4; (python_version >= '3.10') and extra == 'ai'
|
|
39
39
|
Provides-Extra: workflow
|
|
40
40
|
Requires-Dist: flytekit==1.15.3; (python_version >= '3.9' and python_version < '3.13') and extra == 'workflow'
|
|
41
41
|
Description-Content-Type: text/markdown
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "truefoundry"
|
|
3
|
-
version = "0.10.
|
|
3
|
+
version = "0.10.5" # This is a placeholder version, it will be replaced when releasing
|
|
4
4
|
requires-python = ">=3.8.1,<3.14"
|
|
5
5
|
description = "TrueFoundry CLI"
|
|
6
6
|
authors = [{ name = "TrueFoundry Team", email = "abhishek@truefoundry.com" }]
|
|
@@ -31,7 +31,7 @@ dependencies = [
|
|
|
31
31
|
"rich-click>=1.2.1,<2.0.0",
|
|
32
32
|
"rich>=13.7.1,<14.0.0",
|
|
33
33
|
"tqdm>=4.0.0,<5.0.0",
|
|
34
|
-
"truefoundry-sdk>=0.1.
|
|
34
|
+
"truefoundry-sdk>=0.1.3,<0.2.0",
|
|
35
35
|
"typing-extensions>=4.0",
|
|
36
36
|
"urllib3>=1.26.18,<3",
|
|
37
37
|
"yq>=3.1.0,<4.0.0",
|
|
@@ -43,7 +43,7 @@ dependencies = [
|
|
|
43
43
|
[project.optional-dependencies]
|
|
44
44
|
workflow = ["flytekit==1.15.3 ; python_version >= '3.9' and python_version < '3.13'"]
|
|
45
45
|
ai = [
|
|
46
|
-
"mcp==1.9.
|
|
46
|
+
"mcp==1.9.4 ; python_version >= '3.10'",
|
|
47
47
|
]
|
|
48
48
|
|
|
49
49
|
[project.scripts]
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
import asyncio
|
|
2
|
+
import logging
|
|
3
|
+
from typing import Callable, Dict, Optional, Tuple, Union
|
|
4
|
+
|
|
5
|
+
import rich_click as click
|
|
6
|
+
from openai import AsyncOpenAI
|
|
7
|
+
from rich.console import Console
|
|
8
|
+
|
|
9
|
+
from truefoundry.cli.config import CliConfig
|
|
10
|
+
from truefoundry.cli.const import COMMAND_CLS
|
|
11
|
+
from truefoundry.cli.util import handle_exception_wrapper, select_cluster
|
|
12
|
+
from truefoundry.common.constants import (
|
|
13
|
+
ENV_VARS,
|
|
14
|
+
TFY_ASK_MODEL_NAME_KEY,
|
|
15
|
+
TFY_ASK_OPENAI_API_KEY_KEY,
|
|
16
|
+
TFY_ASK_OPENAI_BASE_URL_KEY,
|
|
17
|
+
)
|
|
18
|
+
from truefoundry.common.session import Session
|
|
19
|
+
from truefoundry.common.utils import get_tfy_servers_config
|
|
20
|
+
|
|
21
|
+
console = Console()
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class CustomAsyncOpenAI(AsyncOpenAI):
|
|
25
|
+
def __init__(
|
|
26
|
+
self, *, api_key: Optional[Union[str, Callable[[], str]]] = None, **kwargs
|
|
27
|
+
):
|
|
28
|
+
self.__api_key_fn = None
|
|
29
|
+
if isinstance(api_key, str) or api_key is None:
|
|
30
|
+
_api_key = api_key
|
|
31
|
+
else:
|
|
32
|
+
self.__api_key_fn = api_key
|
|
33
|
+
_api_key = self.__api_key_fn()
|
|
34
|
+
super().__init__(api_key=_api_key, **kwargs)
|
|
35
|
+
|
|
36
|
+
@property
|
|
37
|
+
def auth_headers(self) -> Dict[str, str]:
|
|
38
|
+
if self.__api_key_fn is not None:
|
|
39
|
+
api_key = self.__api_key_fn()
|
|
40
|
+
else:
|
|
41
|
+
api_key = self.api_key
|
|
42
|
+
return {"Authorization": f"Bearer {api_key}"}
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def _get_openai_client(session: Session) -> Tuple[CustomAsyncOpenAI, str]:
|
|
46
|
+
"""
|
|
47
|
+
Returns an AsyncOpenAI client using either user-provided credentials or TrueFoundry LLM gateway.
|
|
48
|
+
"""
|
|
49
|
+
if ENV_VARS.TFY_ASK_OPENAI_BASE_URL:
|
|
50
|
+
console.print(
|
|
51
|
+
f"Found custom OpenAI compatible API settings ([green]{TFY_ASK_OPENAI_BASE_URL_KEY}[/green]) in env"
|
|
52
|
+
)
|
|
53
|
+
if ENV_VARS.TFY_ASK_OPENAI_API_KEY:
|
|
54
|
+
console.print(
|
|
55
|
+
f"Found API key ([green]{TFY_ASK_OPENAI_API_KEY_KEY}[/green]) in env"
|
|
56
|
+
)
|
|
57
|
+
api_key = ENV_VARS.TFY_ASK_OPENAI_API_KEY
|
|
58
|
+
else:
|
|
59
|
+
console.print(
|
|
60
|
+
f"No API key found in env, using [yellow]EMPTY[/yellow] as API key"
|
|
61
|
+
f"\n[dim]Tip: To use a different API key, set the env var "
|
|
62
|
+
f"[green]{TFY_ASK_OPENAI_API_KEY_KEY}[/green] to the API key you want to use.[/dim]"
|
|
63
|
+
)
|
|
64
|
+
api_key = "EMPTY"
|
|
65
|
+
base_url = ENV_VARS.TFY_ASK_OPENAI_BASE_URL
|
|
66
|
+
default_model = "gpt-4o"
|
|
67
|
+
else:
|
|
68
|
+
tfy_servers_config = get_tfy_servers_config(session.tfy_host)
|
|
69
|
+
base_url = f"{tfy_servers_config.servicefoundry_server_url}/v1/tfy-ai/proxy/api/inference/openai"
|
|
70
|
+
console.print(
|
|
71
|
+
f"Using TrueFoundry Managed AI."
|
|
72
|
+
f"\n[dim]Tip: To use your own OpenAI API compatible API for the ask command, set the following env vars"
|
|
73
|
+
f"\n * [green]{TFY_ASK_OPENAI_BASE_URL_KEY}[/] to the base URL of your OpenAI compatible API. E.g. [yellow]https://api.openai.com/v1[/yellow]"
|
|
74
|
+
f"\n * [green]{TFY_ASK_OPENAI_API_KEY_KEY}[/] to the API key of your OpenAI compatible API."
|
|
75
|
+
f"[/dim]"
|
|
76
|
+
)
|
|
77
|
+
console.print("")
|
|
78
|
+
|
|
79
|
+
api_key = lambda: session.access_token # noqa: E731
|
|
80
|
+
default_model = "tfy-ai-openai/gpt-4o"
|
|
81
|
+
client = CustomAsyncOpenAI(
|
|
82
|
+
base_url=base_url,
|
|
83
|
+
api_key=api_key,
|
|
84
|
+
)
|
|
85
|
+
if ENV_VARS.TFY_ASK_MODEL_NAME:
|
|
86
|
+
openai_model = ENV_VARS.TFY_ASK_MODEL_NAME
|
|
87
|
+
console.print(
|
|
88
|
+
f"Using custom model from env [green]{TFY_ASK_MODEL_NAME_KEY}[/green]: [yellow]{openai_model}[/yellow]"
|
|
89
|
+
)
|
|
90
|
+
else:
|
|
91
|
+
openai_model = default_model
|
|
92
|
+
console.print(
|
|
93
|
+
f"Using default model: [yellow]{openai_model}[/yellow]"
|
|
94
|
+
f"\n[dim]Tip: To use a different model, set the env var "
|
|
95
|
+
f"[green]{TFY_ASK_MODEL_NAME_KEY}[/green] to the model name you want to use.[/dim]"
|
|
96
|
+
)
|
|
97
|
+
console.print("")
|
|
98
|
+
|
|
99
|
+
if ENV_VARS.TFY_ASK_OPENAI_BASE_URL:
|
|
100
|
+
console.print(
|
|
101
|
+
"[dim][yellow]This operation will use tokens from your model provider and may incur costs.[/yellow][/dim]"
|
|
102
|
+
)
|
|
103
|
+
console.print("")
|
|
104
|
+
return client, openai_model
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
@click.command(name="ask", cls=COMMAND_CLS)
|
|
108
|
+
@click.option(
|
|
109
|
+
"-c",
|
|
110
|
+
"--cluster",
|
|
111
|
+
type=str,
|
|
112
|
+
required=False,
|
|
113
|
+
help="The cluster id from TrueFoundry. If not provided, an interactive prompt will list available clusters",
|
|
114
|
+
)
|
|
115
|
+
@click.pass_context
|
|
116
|
+
@handle_exception_wrapper
|
|
117
|
+
def ask_command(ctx, cluster: str) -> None:
|
|
118
|
+
"""
|
|
119
|
+
Ask questions related to your Cluster in TrueFoundry.
|
|
120
|
+
"""
|
|
121
|
+
from truefoundry._ask.client import ask_client
|
|
122
|
+
|
|
123
|
+
debug = CliConfig.debug
|
|
124
|
+
if debug:
|
|
125
|
+
_mcp_logger = logging.getLogger("mcp")
|
|
126
|
+
_mcp_logger.setLevel(logging.DEBUG)
|
|
127
|
+
_mcp_logger.addHandler(logging.StreamHandler())
|
|
128
|
+
|
|
129
|
+
session = Session.new()
|
|
130
|
+
console.print(
|
|
131
|
+
"\n[bold green]Welcome to the Ask Command![/bold green]\n"
|
|
132
|
+
"Use this command to ask questions and troubleshoot issues in your Kubernetes cluster managed by the TrueFoundry Control Plane.\n"
|
|
133
|
+
"It helps you investigate and identify potential problems across services, pods, deployments, and more.\n"
|
|
134
|
+
)
|
|
135
|
+
openai_client, openai_model = _get_openai_client(session=session)
|
|
136
|
+
if not cluster:
|
|
137
|
+
console.print(
|
|
138
|
+
"[dim]Tip: You can specify a cluster using the '--cluster' option, or select one interactively from the list.[/dim]\n"
|
|
139
|
+
)
|
|
140
|
+
cluster = select_cluster(cluster)
|
|
141
|
+
tfy_servers_config = get_tfy_servers_config(session.tfy_host)
|
|
142
|
+
mcp_server_url = f"{tfy_servers_config.servicefoundry_server_url}/v1/k8s-mcp"
|
|
143
|
+
asyncio.run(
|
|
144
|
+
ask_client(
|
|
145
|
+
cluster=cluster,
|
|
146
|
+
server_url=mcp_server_url,
|
|
147
|
+
token=session.access_token,
|
|
148
|
+
openai_client=openai_client,
|
|
149
|
+
openai_model=openai_model,
|
|
150
|
+
debug=debug,
|
|
151
|
+
)
|
|
152
|
+
)
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
def get_ask_command():
|
|
156
|
+
return ask_command
|
|
@@ -109,7 +109,7 @@ def print_dict_as_table_panel(
|
|
|
109
109
|
):
|
|
110
110
|
table = Table(show_header=False, box=None)
|
|
111
111
|
table.add_column("Key", style=f"bold {key_color}", width=15)
|
|
112
|
-
table.add_column("Value")
|
|
112
|
+
table.add_column("Value", overflow="fold")
|
|
113
113
|
for key, value in dct.items():
|
|
114
114
|
table.add_row(key, value)
|
|
115
115
|
console.print(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: application.json
|
|
3
|
-
# timestamp: 2025-06-
|
|
3
|
+
# timestamp: 2025-06-18T21:24:37+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -908,7 +908,7 @@ class SparkImageBuild(BaseModel):
|
|
|
908
908
|
None,
|
|
909
909
|
description="FQN of the container registry. If you can't find your registry here,\nadd it through the [Integrations](/integrations?tab=docker-registry) page",
|
|
910
910
|
)
|
|
911
|
-
build_source: GitSource
|
|
911
|
+
build_source: Union[GitSource, RemoteSource] = Field(..., description="")
|
|
912
912
|
build_spec: SparkBuild
|
|
913
913
|
|
|
914
914
|
|
|
@@ -936,6 +936,14 @@ class SparkJobPythonEntrypoint(BaseModel):
|
|
|
936
936
|
)
|
|
937
937
|
|
|
938
938
|
|
|
939
|
+
class SparkJobPythonNotebookEntrypoint(BaseModel):
|
|
940
|
+
type: Literal["python-notebook"] = Field(..., description="")
|
|
941
|
+
main_application_file: str = Field(
|
|
942
|
+
...,
|
|
943
|
+
description="The main application file to be executed by the spark job. Relative path in case of git repository.",
|
|
944
|
+
)
|
|
945
|
+
|
|
946
|
+
|
|
939
947
|
class SparkJobScalaEntrypoint(BaseModel):
|
|
940
948
|
type: Literal["scala"] = Field(..., description="")
|
|
941
949
|
main_application_file: str = Field(
|
|
@@ -1449,7 +1457,10 @@ class SparkJob(BaseModel):
|
|
|
1449
1457
|
description="The image to use for driver and executors. Must have spark installed. Spark version must match the version in the image.",
|
|
1450
1458
|
)
|
|
1451
1459
|
entrypoint: Union[
|
|
1452
|
-
SparkJobPythonEntrypoint,
|
|
1460
|
+
SparkJobPythonEntrypoint,
|
|
1461
|
+
SparkJobScalaEntrypoint,
|
|
1462
|
+
SparkJobJavaEntrypoint,
|
|
1463
|
+
SparkJobPythonNotebookEntrypoint,
|
|
1453
1464
|
] = Field(..., description="")
|
|
1454
1465
|
driver_config: SparkDriverConfig
|
|
1455
1466
|
executor_config: SparkExecutorConfig
|
|
@@ -520,3 +520,9 @@ class SparkJobPythonEntrypoint(models.SparkJobPythonEntrypoint, PatchedModelBase
|
|
|
520
520
|
|
|
521
521
|
class SparkJobJavaEntrypoint(models.SparkJobJavaEntrypoint, PatchedModelBase):
|
|
522
522
|
type: Literal["java"] = "java"
|
|
523
|
+
|
|
524
|
+
|
|
525
|
+
class SparkJobPythonNotebookEntrypoint(
|
|
526
|
+
models.SparkJobPythonNotebookEntrypoint, PatchedModelBase
|
|
527
|
+
):
|
|
528
|
+
type: Literal["python-notebook"] = "python-notebook"
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import asyncio
|
|
2
|
-
import logging
|
|
3
|
-
from typing import Tuple
|
|
4
|
-
|
|
5
|
-
import rich_click as click
|
|
6
|
-
from openai import AsyncOpenAI
|
|
7
|
-
from rich.console import Console
|
|
8
|
-
|
|
9
|
-
from truefoundry.cli.config import CliConfig
|
|
10
|
-
from truefoundry.cli.const import COMMAND_CLS
|
|
11
|
-
from truefoundry.cli.util import handle_exception_wrapper, select_cluster
|
|
12
|
-
from truefoundry.common.constants import (
|
|
13
|
-
ENV_VARS,
|
|
14
|
-
OPENAI_API_KEY_KEY,
|
|
15
|
-
OPENAI_MODEL_KEY,
|
|
16
|
-
TFY_ASK_MODEL_NAME_KEY,
|
|
17
|
-
TFY_ASK_OPENAI_API_KEY_KEY,
|
|
18
|
-
TFY_ASK_OPENAI_BASE_URL_KEY,
|
|
19
|
-
)
|
|
20
|
-
from truefoundry.common.session import Session
|
|
21
|
-
from truefoundry.common.utils import get_tfy_servers_config
|
|
22
|
-
|
|
23
|
-
console = Console()
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
def _get_openai_client() -> Tuple[AsyncOpenAI, str]:
|
|
27
|
-
"""
|
|
28
|
-
Returns an AsyncOpenAI client using either user-provided credentials or TrueFoundry LLM gateway.
|
|
29
|
-
"""
|
|
30
|
-
console.print("")
|
|
31
|
-
default_model = "gpt-4o"
|
|
32
|
-
if ENV_VARS.TFY_ASK_OPENAI_BASE_URL and ENV_VARS.TFY_ASK_OPENAI_API_KEY:
|
|
33
|
-
console.print(
|
|
34
|
-
f"Found custom OpenAI API settings ([green]{TFY_ASK_OPENAI_BASE_URL_KEY}[/green], [green]{TFY_ASK_OPENAI_API_KEY_KEY}[/green]) in env"
|
|
35
|
-
)
|
|
36
|
-
client = AsyncOpenAI(
|
|
37
|
-
base_url=ENV_VARS.TFY_ASK_OPENAI_BASE_URL,
|
|
38
|
-
api_key=ENV_VARS.TFY_ASK_OPENAI_API_KEY,
|
|
39
|
-
)
|
|
40
|
-
if ENV_VARS.TFY_ASK_MODEL_NAME:
|
|
41
|
-
openai_model = ENV_VARS.TFY_ASK_MODEL_NAME
|
|
42
|
-
console.print(
|
|
43
|
-
f"Using custom OpenAI model from env [green]{TFY_ASK_MODEL_NAME_KEY}[/green]: [yellow]{openai_model}[/yellow]"
|
|
44
|
-
)
|
|
45
|
-
else:
|
|
46
|
-
openai_model = default_model
|
|
47
|
-
console.print(
|
|
48
|
-
f"Using default OpenAI model: [yellow]{openai_model}[/yellow]"
|
|
49
|
-
f"\n[dim]Tip: To use a different model, set the env var "
|
|
50
|
-
f"[green]{TFY_ASK_MODEL_NAME_KEY}[/green] to the model name you want to use.[/dim]"
|
|
51
|
-
)
|
|
52
|
-
console.print(
|
|
53
|
-
"[dim][yellow]This operation will use tokens from your model provider and may incur costs.[/yellow][/dim]"
|
|
54
|
-
)
|
|
55
|
-
console.print("")
|
|
56
|
-
return client, openai_model
|
|
57
|
-
elif ENV_VARS.OPENAI_API_KEY:
|
|
58
|
-
console.print(f"Found [green]{OPENAI_API_KEY_KEY}[/green] in env")
|
|
59
|
-
client = AsyncOpenAI(
|
|
60
|
-
api_key=ENV_VARS.OPENAI_API_KEY,
|
|
61
|
-
)
|
|
62
|
-
if ENV_VARS.OPENAI_MODEL:
|
|
63
|
-
openai_model = ENV_VARS.OPENAI_MODEL
|
|
64
|
-
console.print(
|
|
65
|
-
f"Using custom OpenAI model from env [green]{OPENAI_MODEL_KEY}[/green]: [yellow]{openai_model}[/yellow]"
|
|
66
|
-
)
|
|
67
|
-
else:
|
|
68
|
-
openai_model = default_model
|
|
69
|
-
console.print(
|
|
70
|
-
f"Using default OpenAI model: [yellow]{openai_model}[/yellow]"
|
|
71
|
-
f"\n[dim]Tip: To use a different OpenAI model, set the env var "
|
|
72
|
-
f"[green]{OPENAI_MODEL_KEY}[/green] to the model name you want to use.[/dim]"
|
|
73
|
-
)
|
|
74
|
-
console.print(
|
|
75
|
-
f"[dim]Tip: To use your own OpenAI API compatible model for the ask command, set the env vars "
|
|
76
|
-
f"[green]{TFY_ASK_OPENAI_BASE_URL_KEY}[/], "
|
|
77
|
-
f"[green]{TFY_ASK_OPENAI_API_KEY_KEY}[/], and "
|
|
78
|
-
f"[green]{TFY_ASK_MODEL_NAME_KEY}[/].[/dim]"
|
|
79
|
-
)
|
|
80
|
-
console.print(
|
|
81
|
-
"[dim][yellow]This operation will use tokens from your OpenAI account and may incur costs.[/yellow][/dim]"
|
|
82
|
-
)
|
|
83
|
-
console.print("")
|
|
84
|
-
return client, openai_model
|
|
85
|
-
else:
|
|
86
|
-
llm_env_instruction = (
|
|
87
|
-
"No OpenAI API Key found in env."
|
|
88
|
-
f"\n- To use your own OpenAI API compatible model for the ask command, set the env vars "
|
|
89
|
-
f"[green]{TFY_ASK_OPENAI_BASE_URL_KEY}[/], "
|
|
90
|
-
f"[green]{TFY_ASK_OPENAI_API_KEY_KEY}[/], and "
|
|
91
|
-
f"[green]{TFY_ASK_MODEL_NAME_KEY}[/] (default: {default_model})."
|
|
92
|
-
f"\n- Alternatively, you can use OpenAI directly by setting the env vars "
|
|
93
|
-
f"[green]{OPENAI_API_KEY_KEY}[/], "
|
|
94
|
-
f"[green]{OPENAI_MODEL_KEY}[/] (default: {default_model})"
|
|
95
|
-
)
|
|
96
|
-
raise ValueError(llm_env_instruction)
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
@click.command(name="ask", cls=COMMAND_CLS)
|
|
100
|
-
@click.option(
|
|
101
|
-
"-c",
|
|
102
|
-
"--cluster",
|
|
103
|
-
type=str,
|
|
104
|
-
required=False,
|
|
105
|
-
help="The cluster id from TrueFoundry. If not provided, an interactive prompt will list available clusters",
|
|
106
|
-
)
|
|
107
|
-
@click.pass_context
|
|
108
|
-
@handle_exception_wrapper
|
|
109
|
-
def ask_command(ctx, cluster: str) -> None:
|
|
110
|
-
"""
|
|
111
|
-
Ask questions related to your Cluster in TrueFoundry.
|
|
112
|
-
"""
|
|
113
|
-
from truefoundry._ask.client import ask_client
|
|
114
|
-
|
|
115
|
-
debug = CliConfig.debug
|
|
116
|
-
if debug:
|
|
117
|
-
_mcp_logger = logging.getLogger("mcp")
|
|
118
|
-
_mcp_logger.setLevel(logging.DEBUG)
|
|
119
|
-
_mcp_logger.addHandler(logging.StreamHandler())
|
|
120
|
-
|
|
121
|
-
session = Session.new()
|
|
122
|
-
console.print(
|
|
123
|
-
"\n[bold green]Welcome to the Ask Command![/bold green]\n"
|
|
124
|
-
"Use this command to ask questions and troubleshoot issues in your Kubernetes cluster managed by the TrueFoundry Control Plane.\n"
|
|
125
|
-
"It helps you investigate and identify potential problems across services, pods, deployments, and more.\n"
|
|
126
|
-
)
|
|
127
|
-
openai_client, openai_model = _get_openai_client()
|
|
128
|
-
if not cluster:
|
|
129
|
-
console.print(
|
|
130
|
-
"[dim]Tip: You can specify a cluster using the '--cluster' option, or select one interactively from the list.[/dim]\n"
|
|
131
|
-
)
|
|
132
|
-
cluster = select_cluster(cluster)
|
|
133
|
-
tfy_servers_config = get_tfy_servers_config(session.tfy_host)
|
|
134
|
-
mcp_server_url = f"{tfy_servers_config.servicefoundry_server_url}/v1/k8s-mcp"
|
|
135
|
-
asyncio.run(
|
|
136
|
-
ask_client(
|
|
137
|
-
cluster=cluster,
|
|
138
|
-
server_url=mcp_server_url,
|
|
139
|
-
token=session.access_token,
|
|
140
|
-
openai_client=openai_client,
|
|
141
|
-
openai_model=openai_model,
|
|
142
|
-
debug=debug,
|
|
143
|
-
)
|
|
144
|
-
)
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
def get_ask_command():
|
|
148
|
-
return ask_command
|
|
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
|
{truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/agents/project_identifier.py
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
|
{truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/tools/file_type_counts.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/autodeploy/utils/pydantic_compat.py
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
|
{truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/builder/builders/__init__.py
RENAMED
|
File without changes
|
{truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/builder/builders/dockerfile.py
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
|
{truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/apply_command.py
RENAMED
|
File without changes
|
{truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/build_command.py
RENAMED
|
File without changes
|
{truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/delete_command.py
RENAMED
|
File without changes
|
{truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/deploy_command.py
RENAMED
|
File without changes
|
{truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/deploy_init_command.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/kubeconfig_command.py
RENAMED
|
File without changes
|
{truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/login_command.py
RENAMED
|
File without changes
|
{truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/logout_command.py
RENAMED
|
File without changes
|
{truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/logs_command.py
RENAMED
|
File without changes
|
|
File without changes
|
{truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/patch_command.py
RENAMED
|
File without changes
|
{truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/terminate_comand.py
RENAMED
|
File without changes
|
{truefoundry-0.10.4rc4 → truefoundry-0.10.5}/truefoundry/deploy/cli/commands/trigger_command.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|