blaxel 0.2.31rc120__py3-none-any.whl → 0.2.32__py3-none-any.whl
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.
- blaxel/__init__.py +3 -3
- blaxel/core/agents/__init__.py +16 -7
- blaxel/core/authentication/__init__.py +2 -1
- blaxel/core/authentication/devicemode.py +9 -1
- blaxel/core/authentication/oauth.py +13 -6
- blaxel/core/authentication/types.py +1 -0
- blaxel/core/cache/cache.py +10 -3
- blaxel/core/client/api/agents/create_agent.py +5 -5
- blaxel/core/client/api/agents/delete_agent.py +5 -5
- blaxel/core/client/api/agents/get_agent.py +4 -4
- blaxel/core/client/api/agents/list_agent_revisions.py +8 -6
- blaxel/core/client/api/agents/list_agents.py +5 -5
- blaxel/core/client/api/agents/update_agent.py +5 -5
- blaxel/core/client/api/compute/create_sandbox.py +5 -5
- blaxel/core/client/api/compute/create_sandbox_preview.py +5 -5
- blaxel/core/client/api/compute/create_sandbox_preview_token.py +5 -5
- blaxel/core/client/api/compute/delete_sandbox.py +5 -5
- blaxel/core/client/api/compute/delete_sandbox_preview.py +5 -5
- blaxel/core/client/api/compute/delete_sandbox_preview_token.py +11 -7
- blaxel/core/client/api/compute/get_sandbox.py +4 -4
- blaxel/core/client/api/compute/get_sandbox_preview.py +5 -5
- blaxel/core/client/api/compute/list_sandbox_preview_tokens.py +5 -5
- blaxel/core/client/api/compute/list_sandbox_previews.py +5 -5
- blaxel/core/client/api/compute/list_sandboxes.py +5 -5
- blaxel/core/client/api/compute/update_sandbox.py +5 -5
- blaxel/core/client/api/compute/update_sandbox_preview.py +5 -5
- blaxel/core/client/api/configurations/get_configuration.py +5 -5
- blaxel/core/client/api/customdomains/create_custom_domain.py +5 -5
- blaxel/core/client/api/customdomains/delete_custom_domain.py +5 -5
- blaxel/core/client/api/customdomains/get_custom_domain.py +5 -5
- blaxel/core/client/api/customdomains/list_custom_domains.py +5 -5
- blaxel/core/client/api/customdomains/update_custom_domain.py +5 -5
- blaxel/core/client/api/customdomains/verify_custom_domain.py +5 -5
- blaxel/core/client/api/default/get_template.py +5 -5
- blaxel/core/client/api/default/list_mcp_hub_definitions.py +5 -5
- blaxel/core/client/api/default/list_sandbox_hub_definitions.py +11 -7
- blaxel/core/client/api/functions/create_function.py +5 -5
- blaxel/core/client/api/functions/delete_function.py +5 -5
- blaxel/core/client/api/functions/get_function.py +4 -4
- blaxel/core/client/api/functions/list_function_revisions.py +8 -6
- blaxel/core/client/api/functions/list_functions.py +5 -5
- blaxel/core/client/api/functions/update_function.py +5 -5
- blaxel/core/client/api/images/cleanup_images.py +8 -6
- blaxel/core/client/api/images/delete_image.py +4 -4
- blaxel/core/client/api/images/delete_image_tag.py +4 -4
- blaxel/core/client/api/images/get_image.py +5 -5
- blaxel/core/client/api/images/list_images.py +5 -5
- blaxel/core/client/api/integrations/create_integration_connection.py +5 -5
- blaxel/core/client/api/integrations/delete_integration_connection.py +5 -5
- blaxel/core/client/api/integrations/get_integration.py +5 -5
- blaxel/core/client/api/integrations/get_integration_connection.py +5 -5
- blaxel/core/client/api/integrations/get_integration_connection_model.py +3 -3
- blaxel/core/client/api/integrations/get_integration_connection_model_endpoint_configurations.py +3 -3
- blaxel/core/client/api/integrations/list_integration_connection_models.py +3 -3
- blaxel/core/client/api/integrations/list_integration_connections.py +11 -7
- blaxel/core/client/api/integrations/update_integration_connection.py +5 -5
- blaxel/core/client/api/invitations/list_all_pending_invitations.py +7 -5
- blaxel/core/client/api/jobs/create_job.py +5 -5
- blaxel/core/client/api/jobs/create_job_execution.py +7 -5
- blaxel/core/client/api/jobs/delete_job.py +5 -5
- blaxel/core/client/api/jobs/delete_job_execution.py +7 -5
- blaxel/core/client/api/jobs/get_job.py +4 -4
- blaxel/core/client/api/jobs/get_job_execution.py +7 -5
- blaxel/core/client/api/jobs/list_job_executions.py +10 -6
- blaxel/core/client/api/jobs/list_job_revisions.py +8 -6
- blaxel/core/client/api/jobs/list_jobs.py +5 -5
- blaxel/core/client/api/jobs/update_job.py +5 -5
- blaxel/core/client/api/locations/list_locations.py +8 -6
- blaxel/core/client/api/models/create_model.py +5 -5
- blaxel/core/client/api/models/delete_model.py +5 -5
- blaxel/core/client/api/models/get_model.py +5 -5
- blaxel/core/client/api/models/list_model_revisions.py +8 -6
- blaxel/core/client/api/models/list_models.py +5 -5
- blaxel/core/client/api/models/update_model.py +5 -5
- blaxel/core/client/api/policies/create_policy.py +5 -5
- blaxel/core/client/api/policies/delete_policy.py +5 -5
- blaxel/core/client/api/policies/get_policy.py +5 -5
- blaxel/core/client/api/policies/list_policies.py +5 -5
- blaxel/core/client/api/policies/update_policy.py +5 -5
- blaxel/core/client/api/public_ipslist/list_public_ips.py +5 -5
- blaxel/core/client/api/service_accounts/create_api_key_for_service_account.py +5 -5
- blaxel/core/client/api/service_accounts/create_workspace_service_account.py +11 -7
- blaxel/core/client/api/service_accounts/delete_api_key_for_service_account.py +3 -3
- blaxel/core/client/api/service_accounts/delete_workspace_service_account.py +11 -7
- blaxel/core/client/api/service_accounts/get_workspace_service_accounts.py +8 -6
- blaxel/core/client/api/service_accounts/list_api_keys_for_service_account.py +5 -5
- blaxel/core/client/api/service_accounts/update_workspace_service_account.py +11 -7
- blaxel/core/client/api/templates/list_templates.py +5 -5
- blaxel/core/client/api/volume_templates/create_volume_template.py +4 -4
- blaxel/core/client/api/volume_templates/delete_volume_template.py +5 -5
- blaxel/core/client/api/volume_templates/delete_volume_template_version.py +4 -4
- blaxel/core/client/api/volume_templates/get_volume_template.py +5 -5
- blaxel/core/client/api/volume_templates/list_volume_templates.py +8 -6
- blaxel/core/client/api/volume_templates/update_volume_template.py +4 -4
- blaxel/core/client/api/volumes/create_volume.py +5 -5
- blaxel/core/client/api/volumes/delete_volume.py +5 -5
- blaxel/core/client/api/volumes/get_volume.py +5 -5
- blaxel/core/client/api/volumes/list_volumes.py +5 -5
- blaxel/core/client/api/workspaces/accept_workspace_invitation.py +10 -6
- blaxel/core/client/api/workspaces/check_workspace_availability.py +5 -5
- blaxel/core/client/api/workspaces/create_workspace.py +5 -5
- blaxel/core/client/api/workspaces/decline_workspace_invitation.py +5 -5
- blaxel/core/client/api/workspaces/delete_workspace.py +5 -5
- blaxel/core/client/api/workspaces/get_workspace.py +5 -5
- blaxel/core/client/api/workspaces/invite_workspace_user.py +10 -6
- blaxel/core/client/api/workspaces/leave_workspace.py +4 -4
- blaxel/core/client/api/workspaces/list_workspace_users.py +5 -5
- blaxel/core/client/api/workspaces/list_workspaces.py +5 -5
- blaxel/core/client/api/workspaces/remove_workspace_user.py +3 -3
- blaxel/core/client/api/workspaces/update_workspace.py +5 -5
- blaxel/core/client/api/workspaces/update_workspace_user_role.py +10 -6
- blaxel/core/client/client.py +5 -19
- blaxel/core/client/models/acl.py +3 -3
- blaxel/core/client/models/agent.py +12 -5
- blaxel/core/client/models/agent_spec.py +22 -7
- blaxel/core/client/models/api_key.py +6 -6
- blaxel/core/client/models/billable_time_metric.py +3 -4
- blaxel/core/client/models/check_workspace_availability_body.py +1 -1
- blaxel/core/client/models/cleanup_images_response_200.py +1 -1
- blaxel/core/client/models/configuration.py +2 -3
- blaxel/core/client/models/continent.py +2 -2
- blaxel/core/client/models/core_event.py +3 -3
- blaxel/core/client/models/core_spec.py +14 -5
- blaxel/core/client/models/core_spec_configurations.py +1 -2
- blaxel/core/client/models/country.py +2 -2
- blaxel/core/client/models/create_api_key_for_service_account_body.py +1 -1
- blaxel/core/client/models/create_job_execution_request.py +4 -5
- blaxel/core/client/models/create_job_execution_request_tasks_item.py +1 -1
- blaxel/core/client/models/create_job_execution_response.py +4 -5
- blaxel/core/client/models/create_job_execution_response_tasks_item.py +1 -1
- blaxel/core/client/models/create_workspace_service_account_body.py +1 -1
- blaxel/core/client/models/create_workspace_service_account_response_200.py +1 -1
- blaxel/core/client/models/custom_domain.py +6 -3
- blaxel/core/client/models/custom_domain_metadata.py +6 -7
- blaxel/core/client/models/custom_domain_spec.py +10 -7
- blaxel/core/client/models/custom_domain_spec_txt_records.py +1 -1
- blaxel/core/client/models/delete_sandbox_preview_token_response_200.py +1 -1
- blaxel/core/client/models/delete_volume_template_version_response_200.py +6 -3
- blaxel/core/client/models/delete_workspace_service_account_response_200.py +1 -1
- blaxel/core/client/models/entrypoint.py +4 -3
- blaxel/core/client/models/entrypoint_env.py +1 -1
- blaxel/core/client/models/expiration_policy.py +2 -2
- blaxel/core/client/models/flavor.py +2 -2
- blaxel/core/client/models/form.py +6 -3
- blaxel/core/client/models/form_config.py +1 -1
- blaxel/core/client/models/form_oauth.py +1 -1
- blaxel/core/client/models/form_secrets.py +1 -1
- blaxel/core/client/models/function.py +12 -5
- blaxel/core/client/models/function_spec.py +17 -6
- blaxel/core/client/models/get_workspace_service_accounts_response_200_item.py +1 -1
- blaxel/core/client/models/histogram_bucket.py +1 -1
- blaxel/core/client/models/histogram_stats.py +1 -1
- blaxel/core/client/models/image.py +6 -3
- blaxel/core/client/models/image_metadata.py +6 -6
- blaxel/core/client/models/image_spec.py +1 -2
- blaxel/core/client/models/image_tag.py +3 -3
- blaxel/core/client/models/integration.py +12 -5
- blaxel/core/client/models/integration_additional_infos.py +1 -1
- blaxel/core/client/models/integration_connection.py +6 -3
- blaxel/core/client/models/integration_connection_spec.py +1 -2
- blaxel/core/client/models/integration_connection_spec_config.py +1 -1
- blaxel/core/client/models/integration_connection_spec_secret.py +1 -1
- blaxel/core/client/models/integration_endpoint.py +9 -6
- blaxel/core/client/models/integration_endpoint_token.py +1 -1
- blaxel/core/client/models/integration_endpoints.py +1 -3
- blaxel/core/client/models/integration_headers.py +1 -1
- blaxel/core/client/models/integration_model.py +1 -1
- blaxel/core/client/models/integration_organization.py +2 -2
- blaxel/core/client/models/integration_query_params.py +1 -1
- blaxel/core/client/models/integration_repository.py +2 -2
- blaxel/core/client/models/invite_workspace_user_body.py +1 -1
- blaxel/core/client/models/job.py +12 -5
- blaxel/core/client/models/job_execution.py +6 -3
- blaxel/core/client/models/job_execution_config.py +3 -3
- blaxel/core/client/models/job_execution_metadata.py +7 -7
- blaxel/core/client/models/job_execution_spec.py +1 -2
- blaxel/core/client/models/job_execution_stats.py +1 -1
- blaxel/core/client/models/job_execution_task.py +6 -3
- blaxel/core/client/models/job_execution_task_condition.py +3 -3
- blaxel/core/client/models/job_execution_task_metadata.py +6 -6
- blaxel/core/client/models/job_execution_task_spec.py +2 -2
- blaxel/core/client/models/job_metrics.py +15 -12
- blaxel/core/client/models/job_metrics_executions_total.py +1 -1
- blaxel/core/client/models/job_metrics_tasks_total.py +1 -1
- blaxel/core/client/models/job_spec.py +17 -6
- blaxel/core/client/models/jobs_chart_value.py +1 -1
- blaxel/core/client/models/jobs_network_chart.py +1 -2
- blaxel/core/client/models/jobs_success_failed_chart.py +11 -4
- blaxel/core/client/models/jobs_total.py +1 -1
- blaxel/core/client/models/last_n_requests_metric.py +4 -4
- blaxel/core/client/models/latency_metric.py +10 -7
- blaxel/core/client/models/location_response.py +1 -2
- blaxel/core/client/models/logs_response.py +1 -1
- blaxel/core/client/models/logs_response_data.py +4 -4
- blaxel/core/client/models/mcp_definition.py +11 -8
- blaxel/core/client/models/mcp_definition_entrypoint.py +1 -1
- blaxel/core/client/models/mcp_definition_form.py +1 -1
- blaxel/core/client/models/memory_allocation_by_name.py +1 -1
- blaxel/core/client/models/memory_allocation_metric.py +2 -2
- blaxel/core/client/models/metadata.py +6 -7
- blaxel/core/client/models/metadata_labels.py +1 -1
- blaxel/core/client/models/metric.py +2 -2
- blaxel/core/client/models/metrics.py +24 -11
- blaxel/core/client/models/metrics_models.py +1 -1
- blaxel/core/client/models/metrics_request_total_per_code.py +1 -1
- blaxel/core/client/models/metrics_rps_per_code.py +1 -1
- blaxel/core/client/models/model.py +12 -5
- blaxel/core/client/models/model_spec.py +14 -5
- blaxel/core/client/models/o_auth.py +2 -2
- blaxel/core/client/models/owner_fields.py +3 -3
- blaxel/core/client/models/pending_invitation.py +6 -6
- blaxel/core/client/models/pending_invitation_accept.py +6 -3
- blaxel/core/client/models/pending_invitation_render.py +14 -7
- blaxel/core/client/models/pending_invitation_render_invited_by.py +1 -1
- blaxel/core/client/models/pending_invitation_render_workspace.py +2 -2
- blaxel/core/client/models/pending_invitation_workspace_details.py +1 -1
- blaxel/core/client/models/pod_template_spec.py +1 -1
- blaxel/core/client/models/policy.py +6 -3
- blaxel/core/client/models/policy_location.py +2 -2
- blaxel/core/client/models/policy_max_tokens.py +5 -3
- blaxel/core/client/models/policy_spec.py +15 -8
- blaxel/core/client/models/port.py +1 -1
- blaxel/core/client/models/preview.py +6 -3
- blaxel/core/client/models/preview_metadata.py +8 -8
- blaxel/core/client/models/preview_spec.py +5 -6
- blaxel/core/client/models/preview_spec_request_headers.py +1 -1
- blaxel/core/client/models/preview_spec_response_headers.py +1 -1
- blaxel/core/client/models/preview_token.py +6 -3
- blaxel/core/client/models/preview_token_metadata.py +4 -4
- blaxel/core/client/models/preview_token_spec.py +2 -2
- blaxel/core/client/models/private_location.py +1 -1
- blaxel/core/client/models/public_ip.py +3 -3
- blaxel/core/client/models/public_ips.py +1 -2
- blaxel/core/client/models/region.py +2 -2
- blaxel/core/client/models/repository.py +2 -2
- blaxel/core/client/models/request_duration_over_time_metric.py +1 -1
- blaxel/core/client/models/request_duration_over_time_metrics.py +4 -3
- blaxel/core/client/models/request_total_by_origin_metric.py +23 -10
- blaxel/core/client/models/request_total_by_origin_metric_request_total_by_origin.py +1 -1
- blaxel/core/client/models/request_total_by_origin_metric_request_total_by_origin_and_code.py +1 -1
- blaxel/core/client/models/request_total_metric.py +14 -7
- blaxel/core/client/models/request_total_metric_request_total_per_code.py +1 -1
- blaxel/core/client/models/request_total_metric_rps_per_code.py +1 -1
- blaxel/core/client/models/request_total_response_data.py +5 -5
- blaxel/core/client/models/resource.py +6 -4
- blaxel/core/client/models/resource_log.py +1 -1
- blaxel/core/client/models/resource_log_chart.py +1 -1
- blaxel/core/client/models/resource_log_response.py +2 -2
- blaxel/core/client/models/resource_metrics.py +95 -40
- blaxel/core/client/models/resource_metrics_request_total_per_code.py +1 -1
- blaxel/core/client/models/resource_metrics_request_total_per_code_previous.py +1 -1
- blaxel/core/client/models/resource_metrics_rps_per_code.py +1 -1
- blaxel/core/client/models/resource_metrics_rps_per_code_previous.py +1 -1
- blaxel/core/client/models/resource_trace.py +5 -5
- blaxel/core/client/models/revision_configuration.py +3 -3
- blaxel/core/client/models/revision_metadata.py +5 -5
- blaxel/core/client/models/runtime.py +9 -10
- blaxel/core/client/models/runtime_configuration.py +1 -1
- blaxel/core/client/models/runtime_startup_probe.py +1 -1
- blaxel/core/client/models/sandbox.py +13 -6
- blaxel/core/client/models/sandbox_definition.py +3 -4
- blaxel/core/client/models/sandbox_lifecycle.py +2 -3
- blaxel/core/client/models/sandbox_metrics.py +1 -1
- blaxel/core/client/models/sandbox_spec.py +25 -8
- blaxel/core/client/models/serverless_config.py +4 -5
- blaxel/core/client/models/serverless_config_configuration.py +1 -1
- blaxel/core/client/models/spec_configuration.py +1 -1
- blaxel/core/client/models/start_sandbox.py +6 -3
- blaxel/core/client/models/stop_sandbox.py +6 -3
- blaxel/core/client/models/store_agent.py +6 -7
- blaxel/core/client/models/store_agent_labels.py +1 -1
- blaxel/core/client/models/store_configuration.py +7 -6
- blaxel/core/client/models/store_configuration_option.py +2 -2
- blaxel/core/client/models/template.py +6 -7
- blaxel/core/client/models/template_variable.py +1 -1
- blaxel/core/client/models/time_fields.py +3 -3
- blaxel/core/client/models/time_to_first_token_over_time_metrics.py +7 -4
- blaxel/core/client/models/token_rate_metric.py +3 -3
- blaxel/core/client/models/token_rate_metrics.py +4 -5
- blaxel/core/client/models/token_total_metric.py +13 -7
- blaxel/core/client/models/trace_ids_response.py +1 -1
- blaxel/core/client/models/trigger.py +2 -3
- blaxel/core/client/models/trigger_configuration.py +4 -5
- blaxel/core/client/models/trigger_configuration_task.py +1 -1
- blaxel/core/client/models/update_workspace_service_account_body.py +1 -1
- blaxel/core/client/models/update_workspace_service_account_response_200.py +1 -1
- blaxel/core/client/models/update_workspace_user_role_body.py +1 -1
- blaxel/core/client/models/volume.py +13 -6
- blaxel/core/client/models/volume_attachment.py +3 -3
- blaxel/core/client/models/volume_spec.py +2 -2
- blaxel/core/client/models/volume_state.py +2 -2
- blaxel/core/client/models/volume_template.py +6 -3
- blaxel/core/client/models/volume_template_spec.py +2 -2
- blaxel/core/client/models/volume_template_state.py +6 -4
- blaxel/core/client/models/volume_template_version.py +4 -4
- blaxel/core/client/models/websocket_channel.py +4 -4
- blaxel/core/client/models/websocket_message.py +3 -3
- blaxel/core/client/models/workspace.py +13 -10
- blaxel/core/client/models/workspace_labels.py +1 -1
- blaxel/core/client/models/workspace_runtime.py +1 -1
- blaxel/core/client/models/workspace_user.py +1 -1
- blaxel/core/client/response_interceptor.py +3 -1
- blaxel/core/common/autoload.py +9 -11
- blaxel/core/common/env.py +10 -8
- blaxel/core/common/settings.py +7 -5
- blaxel/core/common/webhook.py +0 -1
- blaxel/core/jobs/__init__.py +13 -3
- blaxel/core/mcp/client.py +8 -2
- blaxel/core/mcp/server.py +8 -2
- blaxel/core/models/__init__.py +6 -5
- blaxel/core/sandbox/__init__.py +1 -1
- blaxel/core/sandbox/client/api/codegen/get_codegen_reranking_path.py +10 -6
- blaxel/core/sandbox/client/api/fastapply/put_codegen_fastapply_path.py +10 -6
- blaxel/core/sandbox/client/api/filesystem/delete_filesystem_multipart_upload_id_abort.py +10 -6
- blaxel/core/sandbox/client/api/filesystem/delete_filesystem_path.py +10 -6
- blaxel/core/sandbox/client/api/filesystem/delete_filesystem_tree_path.py +10 -6
- blaxel/core/sandbox/client/api/filesystem/get_filesystem_content_search_path.py +7 -5
- blaxel/core/sandbox/client/api/filesystem/get_filesystem_find_path.py +10 -6
- blaxel/core/sandbox/client/api/filesystem/get_filesystem_multipart.py +4 -4
- blaxel/core/sandbox/client/api/filesystem/get_filesystem_multipart_upload_id_parts.py +4 -4
- blaxel/core/sandbox/client/api/filesystem/get_filesystem_path.py +4 -4
- blaxel/core/sandbox/client/api/filesystem/get_filesystem_search_path.py +10 -6
- blaxel/core/sandbox/client/api/filesystem/get_filesystem_tree_path.py +4 -4
- blaxel/core/sandbox/client/api/filesystem/get_watch_filesystem_path.py +10 -6
- blaxel/core/sandbox/client/api/filesystem/post_filesystem_multipart_initiate_path.py +4 -4
- blaxel/core/sandbox/client/api/filesystem/post_filesystem_multipart_upload_id_complete.py +10 -6
- blaxel/core/sandbox/client/api/filesystem/put_filesystem_multipart_upload_id_part.py +4 -4
- blaxel/core/sandbox/client/api/filesystem/put_filesystem_path.py +10 -6
- blaxel/core/sandbox/client/api/filesystem/put_filesystem_tree_path.py +4 -4
- blaxel/core/sandbox/client/api/network/delete_network_process_pid_monitor.py +4 -4
- blaxel/core/sandbox/client/api/network/get_network_process_pid_ports.py +4 -4
- blaxel/core/sandbox/client/api/network/post_network_process_pid_monitor.py +4 -4
- blaxel/core/sandbox/client/api/process/delete_process_identifier.py +10 -6
- blaxel/core/sandbox/client/api/process/delete_process_identifier_kill.py +10 -6
- blaxel/core/sandbox/client/api/process/get_process.py +8 -6
- blaxel/core/sandbox/client/api/process/get_process_identifier.py +10 -6
- blaxel/core/sandbox/client/api/process/get_process_identifier_logs.py +10 -6
- blaxel/core/sandbox/client/api/process/get_process_identifier_logs_stream.py +10 -6
- blaxel/core/sandbox/client/api/process/post_process.py +10 -6
- blaxel/core/sandbox/client/api/root/delete.py +5 -5
- blaxel/core/sandbox/client/api/root/get.py +5 -5
- blaxel/core/sandbox/client/api/root/options.py +5 -5
- blaxel/core/sandbox/client/api/root/patch.py +5 -5
- blaxel/core/sandbox/client/api/root/post.py +5 -5
- blaxel/core/sandbox/client/api/root/put.py +5 -5
- blaxel/core/sandbox/client/client.py +3 -1
- blaxel/core/sandbox/client/models/apply_edit_request.py +2 -2
- blaxel/core/sandbox/client/models/apply_edit_response.py +3 -3
- blaxel/core/sandbox/client/models/content_search_match.py +1 -1
- blaxel/core/sandbox/client/models/content_search_response.py +1 -1
- blaxel/core/sandbox/client/models/delete_network_process_pid_monitor_response_200.py +1 -1
- blaxel/core/sandbox/client/models/directory.py +1 -1
- blaxel/core/sandbox/client/models/error_response.py +1 -1
- blaxel/core/sandbox/client/models/file.py +2 -2
- blaxel/core/sandbox/client/models/file_request.py +2 -2
- blaxel/core/sandbox/client/models/file_with_content.py +2 -2
- blaxel/core/sandbox/client/models/filesystem_multipart_upload.py +3 -3
- blaxel/core/sandbox/client/models/filesystem_multipart_upload_parts.py +4 -2
- blaxel/core/sandbox/client/models/filesystem_uploaded_part.py +3 -3
- blaxel/core/sandbox/client/models/find_match.py +2 -2
- blaxel/core/sandbox/client/models/find_response.py +1 -1
- blaxel/core/sandbox/client/models/fuzzy_search_match.py +2 -2
- blaxel/core/sandbox/client/models/fuzzy_search_response.py +1 -1
- blaxel/core/sandbox/client/models/get_network_process_pid_ports_response_200.py +1 -1
- blaxel/core/sandbox/client/models/multipart_complete_request.py +1 -1
- blaxel/core/sandbox/client/models/multipart_initiate_request.py +1 -1
- blaxel/core/sandbox/client/models/multipart_initiate_response.py +2 -2
- blaxel/core/sandbox/client/models/multipart_list_parts_response.py +2 -2
- blaxel/core/sandbox/client/models/multipart_list_uploads_response.py +1 -1
- blaxel/core/sandbox/client/models/multipart_part_info.py +2 -2
- blaxel/core/sandbox/client/models/multipart_upload_part_response.py +2 -2
- blaxel/core/sandbox/client/models/port_monitor_request.py +1 -1
- blaxel/core/sandbox/client/models/post_network_process_pid_monitor_response_200.py +1 -1
- blaxel/core/sandbox/client/models/process_logs.py +1 -1
- blaxel/core/sandbox/client/models/process_request.py +6 -6
- blaxel/core/sandbox/client/models/process_request_env.py +1 -1
- blaxel/core/sandbox/client/models/process_response.py +8 -8
- blaxel/core/sandbox/client/models/put_filesystem_multipart_upload_id_part_body.py +1 -1
- blaxel/core/sandbox/client/models/ranked_file.py +1 -1
- blaxel/core/sandbox/client/models/reranking_response.py +1 -1
- blaxel/core/sandbox/client/models/subdirectory.py +1 -1
- blaxel/core/sandbox/client/models/success_response.py +1 -1
- blaxel/core/sandbox/client/models/tree_request.py +1 -1
- blaxel/core/sandbox/client/models/tree_request_files.py +1 -1
- blaxel/core/sandbox/client/models/welcome_response.py +1 -1
- blaxel/core/sandbox/default/__init__.py +0 -1
- blaxel/core/sandbox/default/action.py +3 -3
- blaxel/core/sandbox/default/codegen.py +2 -4
- blaxel/core/sandbox/default/filesystem.py +38 -82
- blaxel/core/sandbox/default/interpreter.py +17 -10
- blaxel/core/sandbox/default/preview.py +6 -2
- blaxel/core/sandbox/default/process.py +20 -11
- blaxel/core/sandbox/default/sandbox.py +24 -14
- blaxel/core/sandbox/sync/__init__.py +0 -2
- blaxel/core/sandbox/sync/action.py +2 -3
- blaxel/core/sandbox/sync/codegen.py +1 -5
- blaxel/core/sandbox/sync/filesystem.py +17 -6
- blaxel/core/sandbox/sync/interpreter.py +10 -6
- blaxel/core/sandbox/sync/network.py +0 -2
- blaxel/core/sandbox/sync/preview.py +76 -33
- blaxel/core/sandbox/sync/process.py +27 -12
- blaxel/core/sandbox/sync/sandbox.py +30 -18
- blaxel/core/sandbox/sync/session.py +6 -4
- blaxel/core/sandbox/types.py +2 -1
- blaxel/core/tools/__init__.py +30 -6
- blaxel/core/tools/common.py +1 -1
- blaxel/core/tools/types.py +2 -1
- blaxel/crewai/model.py +20 -5
- blaxel/googleadk/__init__.py +1 -1
- blaxel/googleadk/tools.py +3 -5
- blaxel/langgraph/custom/gemini.py +126 -133
- blaxel/langgraph/model.py +54 -50
- blaxel/langgraph/tools.py +9 -3
- blaxel/llamaindex/custom/cohere.py +25 -16
- blaxel/llamaindex/model.py +44 -57
- blaxel/llamaindex/tools.py +2 -3
- blaxel/pydantic/custom/gemini.py +3 -3
- blaxel/pydantic/tools.py +2 -4
- blaxel/telemetry/exporters.py +10 -3
- blaxel/telemetry/instrumentation/blaxel_langgraph.py +4 -2
- blaxel/telemetry/instrumentation/blaxel_langgraph_gemini.py +22 -5
- blaxel/telemetry/instrumentation/utils.py +3 -3
- blaxel/telemetry/log/log.py +2 -3
- blaxel/telemetry/log/logger.py +21 -15
- blaxel/telemetry/span.py +10 -6
- {blaxel-0.2.31rc120.dist-info → blaxel-0.2.32.dist-info}/METADATA +2 -2
- blaxel-0.2.32.dist-info/RECORD +506 -0
- blaxel/core/client/api/compute/start_sandbox.py +0 -157
- blaxel/core/client/api/compute/stop_sandbox.py +0 -157
- blaxel-0.2.31rc120.dist-info/RECORD +0 -508
- {blaxel-0.2.31rc120.dist-info → blaxel-0.2.32.dist-info}/WHEEL +0 -0
- {blaxel-0.2.31rc120.dist-info → blaxel-0.2.32.dist-info}/licenses/LICENSE +0 -0
blaxel/telemetry/exporters.py
CHANGED
|
@@ -3,11 +3,15 @@ from __future__ import annotations
|
|
|
3
3
|
from typing import Callable, Dict, Sequence
|
|
4
4
|
|
|
5
5
|
try:
|
|
6
|
-
from opentelemetry.exporter.otlp.proto.http._log_exporter import
|
|
6
|
+
from opentelemetry.exporter.otlp.proto.http._log_exporter import (
|
|
7
|
+
OTLPLogExporter,
|
|
8
|
+
)
|
|
7
9
|
from opentelemetry.exporter.otlp.proto.http.metric_exporter import (
|
|
8
10
|
OTLPMetricExporter,
|
|
9
11
|
)
|
|
10
|
-
from opentelemetry.exporter.otlp.proto.http.trace_exporter import
|
|
12
|
+
from opentelemetry.exporter.otlp.proto.http.trace_exporter import (
|
|
13
|
+
OTLPSpanExporter,
|
|
14
|
+
)
|
|
11
15
|
from opentelemetry.sdk._logs import LogData
|
|
12
16
|
from opentelemetry.sdk.metrics.export import MetricExportResult, MetricsData
|
|
13
17
|
|
|
@@ -33,6 +37,7 @@ class DynamicHeadersSpanExporter(OTLPSpanExporter): # type: ignore[misc]
|
|
|
33
37
|
self._session.headers.update(self._get_headers())
|
|
34
38
|
return super().export(spans)
|
|
35
39
|
|
|
40
|
+
|
|
36
41
|
class DynamicHeadersMetricExporter(OTLPMetricExporter): # type: ignore[misc]
|
|
37
42
|
"""Metric exporter with dynamic headers."""
|
|
38
43
|
|
|
@@ -49,12 +54,14 @@ class DynamicHeadersMetricExporter(OTLPMetricExporter): # type: ignore[misc]
|
|
|
49
54
|
self._session.headers.update(self._get_headers())
|
|
50
55
|
return super().export(metrics_data, timeout_millis, **kwargs)
|
|
51
56
|
|
|
57
|
+
|
|
52
58
|
class DynamicHeadersLogExporter(OTLPLogExporter): # type: ignore[misc]
|
|
53
59
|
"""Log exporter with dynamic headers."""
|
|
60
|
+
|
|
54
61
|
def __init__(self, get_headers: Callable[[], Dict[str, str]]):
|
|
55
62
|
self._get_headers = get_headers
|
|
56
63
|
super().__init__()
|
|
57
64
|
|
|
58
65
|
def export(self, batch: Sequence[LogData]): # type: ignore[reportUnknownReturnType]
|
|
59
66
|
self._session.headers.update(self._get_headers())
|
|
60
|
-
return super().export(batch)
|
|
67
|
+
return super().export(batch)
|
|
@@ -24,13 +24,15 @@ class BlaxelLanggraphInstrumentor(BaseInstrumentor):
|
|
|
24
24
|
|
|
25
25
|
# Restore original methods
|
|
26
26
|
if hasattr(
|
|
27
|
-
blaxel.langgraph.custom.gemini.GeminiRestClient,
|
|
27
|
+
blaxel.langgraph.custom.gemini.GeminiRestClient,
|
|
28
|
+
"_blaxel_original_generate_content",
|
|
28
29
|
):
|
|
29
30
|
blaxel.langgraph.custom.gemini.GeminiRestClient.generate_content = (
|
|
30
31
|
blaxel.langgraph.custom.gemini.GeminiRestClient._blaxel_original_generate_content
|
|
31
32
|
)
|
|
32
33
|
delattr(
|
|
33
|
-
blaxel.langgraph.custom.gemini.GeminiRestClient,
|
|
34
|
+
blaxel.langgraph.custom.gemini.GeminiRestClient,
|
|
35
|
+
"_blaxel_original_generate_content",
|
|
34
36
|
)
|
|
35
37
|
|
|
36
38
|
if hasattr(
|
|
@@ -7,7 +7,10 @@ from typing import Collection
|
|
|
7
7
|
|
|
8
8
|
from opentelemetry import context as context_api
|
|
9
9
|
from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
|
|
10
|
-
from opentelemetry.instrumentation.utils import
|
|
10
|
+
from opentelemetry.instrumentation.utils import (
|
|
11
|
+
_SUPPRESS_INSTRUMENTATION_KEY,
|
|
12
|
+
unwrap,
|
|
13
|
+
)
|
|
11
14
|
from opentelemetry.semconv_ai import (
|
|
12
15
|
SUPPRESS_LANGUAGE_MODEL_INSTRUMENTATION_KEY,
|
|
13
16
|
LLMRequestTypeValues,
|
|
@@ -139,12 +142,22 @@ def _set_input_attributes(span, args, kwargs, llm_model):
|
|
|
139
142
|
_set_span_attribute(span, SpanAttributes.LLM_REQUEST_MODEL, llm_model)
|
|
140
143
|
_set_span_attribute(span, SpanAttributes.LLM_REQUEST_TEMPERATURE, kwargs.get("temperature"))
|
|
141
144
|
_set_span_attribute(
|
|
142
|
-
span,
|
|
145
|
+
span,
|
|
146
|
+
SpanAttributes.LLM_REQUEST_MAX_TOKENS,
|
|
147
|
+
kwargs.get("max_output_tokens"),
|
|
143
148
|
)
|
|
144
149
|
_set_span_attribute(span, SpanAttributes.LLM_REQUEST_TOP_P, kwargs.get("top_p"))
|
|
145
150
|
_set_span_attribute(span, SpanAttributes.LLM_TOP_K, kwargs.get("top_k"))
|
|
146
|
-
_set_span_attribute(
|
|
147
|
-
|
|
151
|
+
_set_span_attribute(
|
|
152
|
+
span,
|
|
153
|
+
SpanAttributes.LLM_PRESENCE_PENALTY,
|
|
154
|
+
kwargs.get("presence_penalty"),
|
|
155
|
+
)
|
|
156
|
+
_set_span_attribute(
|
|
157
|
+
span,
|
|
158
|
+
SpanAttributes.LLM_FREQUENCY_PENALTY,
|
|
159
|
+
kwargs.get("frequency_penalty"),
|
|
160
|
+
)
|
|
148
161
|
|
|
149
162
|
return
|
|
150
163
|
|
|
@@ -176,7 +189,11 @@ def _set_response_attributes(span, response, llm_model):
|
|
|
176
189
|
_set_span_attribute(span, f"{prefix}.content", item.text)
|
|
177
190
|
_set_span_attribute(span, f"{prefix}.role", "assistant")
|
|
178
191
|
elif isinstance(response.text, str):
|
|
179
|
-
_set_span_attribute(
|
|
192
|
+
_set_span_attribute(
|
|
193
|
+
span,
|
|
194
|
+
f"{SpanAttributes.LLM_COMPLETIONS}.0.content",
|
|
195
|
+
response.text,
|
|
196
|
+
)
|
|
180
197
|
_set_span_attribute(span, f"{SpanAttributes.LLM_COMPLETIONS}.0.role", "assistant")
|
|
181
198
|
else:
|
|
182
199
|
if isinstance(response, list):
|
|
@@ -40,6 +40,7 @@ async def start_as_current_span_async(tracer, *args, **kwargs):
|
|
|
40
40
|
with tracer.start_as_current_span(*args, **kwargs) as span:
|
|
41
41
|
yield span
|
|
42
42
|
|
|
43
|
+
|
|
43
44
|
class JSONEncoder(json.JSONEncoder):
|
|
44
45
|
def default(self, o):
|
|
45
46
|
if dataclasses.is_dataclass(o):
|
|
@@ -52,9 +53,8 @@ class JSONEncoder(json.JSONEncoder):
|
|
|
52
53
|
|
|
53
54
|
|
|
54
55
|
def should_send_prompts():
|
|
55
|
-
return (
|
|
56
|
-
|
|
57
|
-
).lower() == "true"
|
|
56
|
+
return (os.getenv("TRACELOOP_TRACE_CONTENT") or "true").lower() == "true"
|
|
57
|
+
|
|
58
58
|
|
|
59
59
|
@dont_throw
|
|
60
60
|
def process_request(span, args, kwargs):
|
blaxel/telemetry/log/log.py
CHANGED
|
@@ -8,6 +8,7 @@ from opentelemetry.sdk._logs._internal.export import LogExporter
|
|
|
8
8
|
|
|
9
9
|
_logger = logging.getLogger(__name__)
|
|
10
10
|
|
|
11
|
+
|
|
11
12
|
class AsyncLogRecordProcessor(LogRecordProcessor):
|
|
12
13
|
"""This is an implementation of LogRecordProcessor which passes
|
|
13
14
|
received logs in the export-friendly LogData representation to the
|
|
@@ -24,9 +25,7 @@ class AsyncLogRecordProcessor(LogRecordProcessor):
|
|
|
24
25
|
def _start_worker(self):
|
|
25
26
|
"""Start the background worker thread."""
|
|
26
27
|
self._worker_thread = threading.Thread(
|
|
27
|
-
target=self._process_logs,
|
|
28
|
-
daemon=True,
|
|
29
|
-
name="LogExporterWorker"
|
|
28
|
+
target=self._process_logs, daemon=True, name="LogExporterWorker"
|
|
30
29
|
)
|
|
31
30
|
self._worker_thread.start()
|
|
32
31
|
|
blaxel/telemetry/log/logger.py
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
This module provides a custom colored formatter for logging and an initialization function
|
|
3
3
|
to set up logging configurations for Blaxel applications.
|
|
4
4
|
"""
|
|
5
|
+
|
|
5
6
|
import json
|
|
6
7
|
import logging
|
|
7
8
|
import os
|
|
@@ -13,26 +14,27 @@ class JsonFormatter(logging.Formatter):
|
|
|
13
14
|
"""
|
|
14
15
|
A logger compatible with standard json logging.
|
|
15
16
|
"""
|
|
17
|
+
|
|
16
18
|
def __init__(self):
|
|
17
19
|
super().__init__()
|
|
18
|
-
self.trace_id_name = os.environ.get(
|
|
19
|
-
self.span_id_name = os.environ.get(
|
|
20
|
-
self.labels_name = os.environ.get(
|
|
21
|
-
self.trace_id_prefix = os.environ.get(
|
|
22
|
-
self.span_id_prefix = os.environ.get(
|
|
23
|
-
self.task_index = os.environ.get(
|
|
24
|
-
self.task_prefix = os.environ.get(
|
|
25
|
-
self.execution_key = os.environ.get(
|
|
26
|
-
self.execution_prefix = os.environ.get(
|
|
20
|
+
self.trace_id_name = os.environ.get("BL_LOGGER_TRACE_ID", "trace_id")
|
|
21
|
+
self.span_id_name = os.environ.get("BL_LOGGER_SPAN_ID", "span_id")
|
|
22
|
+
self.labels_name = os.environ.get("BL_LOGGER_LABELS", "labels")
|
|
23
|
+
self.trace_id_prefix = os.environ.get("BL_LOGGER_TRACE_ID_PREFIX", "")
|
|
24
|
+
self.span_id_prefix = os.environ.get("BL_LOGGER_SPAN_ID_PREFIX", "")
|
|
25
|
+
self.task_index = os.environ.get("BL_TASK_KEY", "TASK_INDEX")
|
|
26
|
+
self.task_prefix = os.environ.get("BL_TASK_PREFIX", "")
|
|
27
|
+
self.execution_key = os.environ.get("BL_EXECUTION_KEY", "BL_EXECUTION_ID")
|
|
28
|
+
self.execution_prefix = os.environ.get("BL_EXECUTION_PREFIX", "")
|
|
27
29
|
|
|
28
30
|
def format(self, record):
|
|
29
31
|
"""
|
|
30
32
|
Formats the log record by converting it to a JSON object with trace context and environment variables.
|
|
31
33
|
"""
|
|
32
34
|
log_entry = {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
self.labels_name: {}
|
|
35
|
+
"message": record.getMessage(),
|
|
36
|
+
"severity": record.levelname,
|
|
37
|
+
self.labels_name: {},
|
|
36
38
|
}
|
|
37
39
|
|
|
38
40
|
# Add trace context if available
|
|
@@ -45,12 +47,14 @@ class JsonFormatter(logging.Formatter):
|
|
|
45
47
|
# Add task ID if available
|
|
46
48
|
task_id = os.environ.get(self.task_index)
|
|
47
49
|
if task_id:
|
|
48
|
-
log_entry[self.labels_name][
|
|
50
|
+
log_entry[self.labels_name]["blaxel-task"] = f"{self.task_prefix}{task_id}"
|
|
49
51
|
|
|
50
52
|
# Add execution ID if available
|
|
51
53
|
execution_id = os.environ.get(self.execution_key)
|
|
52
54
|
if execution_id:
|
|
53
|
-
log_entry[self.labels_name][
|
|
55
|
+
log_entry[self.labels_name]["blaxel-execution"] = (
|
|
56
|
+
f"{self.execution_prefix}{execution_id.split('-')[-1]}"
|
|
57
|
+
)
|
|
54
58
|
|
|
55
59
|
return json.dumps(log_entry)
|
|
56
60
|
|
|
@@ -62,6 +66,7 @@ class ColoredFormatter(logging.Formatter):
|
|
|
62
66
|
Attributes:
|
|
63
67
|
COLORS (dict): A mapping of log level names to their corresponding ANSI color codes.
|
|
64
68
|
"""
|
|
69
|
+
|
|
65
70
|
COLORS = {
|
|
66
71
|
"DEBUG": "\033[1;36m", # Cyan
|
|
67
72
|
"INFO": "\033[1;32m", # Green
|
|
@@ -86,6 +91,7 @@ class ColoredFormatter(logging.Formatter):
|
|
|
86
91
|
record.levelname = f"{color}{record.levelname}\033[0m:{tab}"
|
|
87
92
|
return super().format(record)
|
|
88
93
|
|
|
94
|
+
|
|
89
95
|
def init_logger(log_level: str):
|
|
90
96
|
"""
|
|
91
97
|
Initializes the logging configuration for Blaxel.
|
|
@@ -97,7 +103,7 @@ def init_logger(log_level: str):
|
|
|
97
103
|
log_level (str): The logging level to set (e.g., "DEBUG", "INFO").
|
|
98
104
|
"""
|
|
99
105
|
# Disable urllib3 logging
|
|
100
|
-
logging.getLogger(
|
|
106
|
+
logging.getLogger("urllib3").setLevel(logging.CRITICAL)
|
|
101
107
|
logging.getLogger("httpx").setLevel(logging.CRITICAL)
|
|
102
108
|
handler = logging.StreamHandler()
|
|
103
109
|
|
blaxel/telemetry/span.py
CHANGED
|
@@ -12,7 +12,7 @@ from opentelemetry.trace import Span, Tracer
|
|
|
12
12
|
|
|
13
13
|
from blaxel.core import settings
|
|
14
14
|
|
|
15
|
-
T = TypeVar(
|
|
15
|
+
T = TypeVar("T")
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
class DefaultAttributesSpanProcessor(SpanProcessor):
|
|
@@ -21,7 +21,7 @@ class DefaultAttributesSpanProcessor(SpanProcessor):
|
|
|
21
21
|
def __init__(self, default_attributes: Dict[str, str]):
|
|
22
22
|
self.default_attributes = default_attributes
|
|
23
23
|
|
|
24
|
-
def on_start(self, span: SdkSpan, parent_context
|
|
24
|
+
def on_start(self, span: SdkSpan, parent_context=None) -> None:
|
|
25
25
|
"""Add default attributes to the span when it starts."""
|
|
26
26
|
for key, value in self.default_attributes.items():
|
|
27
27
|
span.set_attribute(key, value)
|
|
@@ -52,10 +52,12 @@ class SpanManager:
|
|
|
52
52
|
"blaxel.environment": settings.env,
|
|
53
53
|
"workload.id": settings.name,
|
|
54
54
|
"workload.type": f"{settings.type}s",
|
|
55
|
-
"workspace": settings.workspace
|
|
55
|
+
"workspace": settings.workspace,
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
-
def create_active_span(
|
|
58
|
+
def create_active_span(
|
|
59
|
+
self, name: str, attributes: Dict[str, Any], parent: Span | None = None
|
|
60
|
+
) -> ContextManager[Span]:
|
|
59
61
|
"""
|
|
60
62
|
Creates an active span and executes the provided function within its context.
|
|
61
63
|
|
|
@@ -77,7 +79,9 @@ class SpanManager:
|
|
|
77
79
|
context = trace.set_span_in_context(parent)
|
|
78
80
|
return self.tracer.start_as_current_span(name, attributes=attributes, context=context)
|
|
79
81
|
|
|
80
|
-
def create_span(
|
|
82
|
+
def create_span(
|
|
83
|
+
self, name: str, attributes: Dict[str, Any], parent: Span | None = None
|
|
84
|
+
) -> Span:
|
|
81
85
|
"""
|
|
82
86
|
Creates a new span without making it active.
|
|
83
87
|
|
|
@@ -95,7 +99,7 @@ class SpanManager:
|
|
|
95
99
|
"blaxel.environment": settings.env,
|
|
96
100
|
"workload.id": settings.name,
|
|
97
101
|
"workload.type": f"{settings.type}s",
|
|
98
|
-
"workspace": settings.workspace
|
|
102
|
+
"workspace": settings.workspace,
|
|
99
103
|
}
|
|
100
104
|
|
|
101
105
|
context = None
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: blaxel
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.32
|
|
4
4
|
Summary: Blaxel - AI development platform SDK
|
|
5
5
|
Project-URL: Homepage, https://blaxel.ai
|
|
6
6
|
Project-URL: Documentation, https://docs.blaxel.ai
|
|
@@ -8,7 +8,7 @@ Project-URL: Repository, https://github.com/blaxel-ai/sdk-python
|
|
|
8
8
|
Project-URL: Changelog, https://docs.blaxel.ai/changelog
|
|
9
9
|
Author-email: cploujoux <cploujoux@blaxel.ai>
|
|
10
10
|
License-File: LICENSE
|
|
11
|
-
Requires-Python:
|
|
11
|
+
Requires-Python: <3.14,>=3.10
|
|
12
12
|
Requires-Dist: attrs>=21.3.0
|
|
13
13
|
Requires-Dist: httpx>=0.27.0
|
|
14
14
|
Requires-Dist: mcp>=1.9.4
|