blaxel 0.1.21rc69__py3-none-any.whl → 0.2.0__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.
Files changed (421) hide show
  1. blaxel/__init__.py +6 -3
  2. blaxel/core/__init__.py +44 -0
  3. blaxel/core/agents/__init__.py +115 -0
  4. blaxel/{authentication → core/authentication}/apikey.py +1 -0
  5. blaxel/{authentication → core/authentication}/clientcredentials.py +6 -2
  6. blaxel/{client → core/client}/api/agents/create_agent.py +1 -1
  7. blaxel/{client → core/client}/api/agents/update_agent.py +1 -1
  8. blaxel/{client → core/client}/api/compute/create_sandbox.py +1 -1
  9. blaxel/{client → core/client}/api/compute/create_sandbox_preview.py +1 -1
  10. blaxel/{client → core/client}/api/compute/create_sandbox_preview_token.py +1 -1
  11. blaxel/{client → core/client}/api/compute/update_sandbox.py +1 -1
  12. blaxel/{client → core/client}/api/compute/update_sandbox_preview.py +1 -1
  13. blaxel/{client → core/client}/api/functions/create_function.py +1 -1
  14. blaxel/{client → core/client}/api/functions/update_function.py +1 -1
  15. blaxel/{client → core/client}/api/integrations/create_integration_connection.py +1 -1
  16. blaxel/{client → core/client}/api/integrations/update_integration_connection.py +1 -1
  17. blaxel/{client → core/client}/api/jobs/create_job.py +1 -1
  18. blaxel/{client → core/client}/api/jobs/update_job.py +1 -1
  19. blaxel/{client → core/client}/api/knowledgebases/create_knowledgebase.py +1 -1
  20. blaxel/{client → core/client}/api/knowledgebases/update_knowledgebase.py +1 -1
  21. blaxel/{client → core/client}/api/models/create_model.py +1 -1
  22. blaxel/{client → core/client}/api/models/update_model.py +1 -1
  23. blaxel/{client → core/client}/api/policies/create_policy.py +1 -1
  24. blaxel/{client → core/client}/api/policies/update_policy.py +1 -1
  25. blaxel/{client → core/client}/api/service_accounts/create_api_key_for_service_account.py +1 -1
  26. blaxel/{client → core/client}/api/service_accounts/create_workspace_service_account.py +1 -1
  27. blaxel/{client → core/client}/api/service_accounts/update_workspace_service_account.py +1 -1
  28. blaxel/{client → core/client}/api/workspaces/check_workspace_availability.py +1 -1
  29. blaxel/{client → core/client}/api/workspaces/create_worspace.py +1 -1
  30. blaxel/{client → core/client}/api/workspaces/invite_workspace_user.py +1 -1
  31. blaxel/{client → core/client}/api/workspaces/update_workspace.py +1 -1
  32. blaxel/{client → core/client}/api/workspaces/update_workspace_user_role.py +1 -1
  33. blaxel/{client → core/client}/models/__init__.py +18 -0
  34. blaxel/{client → core/client}/models/agent.py +1 -1
  35. blaxel/{client → core/client}/models/agent_spec.py +2 -2
  36. blaxel/core/client/models/billable_time_metric.py +70 -0
  37. blaxel/{client → core/client}/models/core_spec.py +1 -1
  38. blaxel/{client → core/client}/models/function.py +1 -1
  39. blaxel/{client → core/client}/models/function_schema_properties.py +1 -1
  40. blaxel/{client → core/client}/models/function_spec.py +2 -2
  41. blaxel/{client → core/client}/models/integration.py +2 -2
  42. blaxel/{client → core/client}/models/integration_endpoints.py +1 -1
  43. blaxel/{client → core/client}/models/job.py +1 -1
  44. blaxel/{client → core/client}/models/job_spec.py +1 -1
  45. blaxel/{client → core/client}/models/jobs_chart_value.py +2 -2
  46. blaxel/{client → core/client}/models/knowledgebase.py +1 -1
  47. blaxel/{client → core/client}/models/location_response.py +1 -1
  48. blaxel/core/client/models/logs_response.py +63 -0
  49. blaxel/core/client/models/logs_response_data.py +99 -0
  50. blaxel/core/client/models/memory_allocation_by_name.py +70 -0
  51. blaxel/{client → core/client}/models/metadata.py +9 -0
  52. blaxel/{client → core/client}/models/model.py +1 -1
  53. blaxel/{client → core/client}/models/model_spec.py +1 -1
  54. blaxel/{client → core/client}/models/policy_spec.py +2 -2
  55. blaxel/core/client/models/resource.py +79 -0
  56. blaxel/core/client/models/resource_log_chart.py +133 -0
  57. blaxel/core/client/models/resource_log_response.py +83 -0
  58. blaxel/{client → core/client}/models/resource_metrics.py +27 -3
  59. blaxel/core/client/models/resource_trace.py +97 -0
  60. blaxel/{client → core/client}/models/runtime.py +1 -1
  61. blaxel/{client → core/client}/models/sandbox.py +1 -1
  62. blaxel/{client → core/client}/models/sandbox_definition.py +1 -1
  63. blaxel/{client → core/client}/models/sandbox_spec.py +1 -1
  64. blaxel/{client → core/client}/models/store_agent.py +1 -1
  65. blaxel/{client → core/client}/models/store_configuration.py +1 -1
  66. blaxel/{client → core/client}/models/template.py +1 -1
  67. blaxel/core/client/models/websocket_message.py +106 -0
  68. blaxel/core/common/__init__.py +6 -0
  69. blaxel/core/common/autoload.py +21 -0
  70. blaxel/{common → core/common}/internal.py +34 -62
  71. blaxel/core/common/logger.py +131 -0
  72. blaxel/{jobs → core/jobs}/__init__.py +41 -61
  73. blaxel/core/mcp/__init__.py +4 -0
  74. blaxel/{mcp → core/mcp}/client.py +26 -15
  75. blaxel/{mcp → core/mcp}/server.py +12 -37
  76. blaxel/core/models/__init__.py +52 -0
  77. blaxel/core/sandbox/__init__.py +29 -0
  78. blaxel/core/sandbox/action.py +79 -0
  79. blaxel/{sandbox → core/sandbox}/client/api/filesystem/put_filesystem_path.py +1 -1
  80. blaxel/{sandbox → core/sandbox}/client/api/network/post_network_process_pid_monitor.py +1 -1
  81. blaxel/core/sandbox/client/api/process/__init__.py +0 -0
  82. blaxel/{sandbox → core/sandbox}/client/api/process/delete_process_identifier_kill.py +0 -26
  83. blaxel/{sandbox → core/sandbox}/client/api/process/post_process.py +1 -1
  84. blaxel/{sandbox → core/sandbox}/client/models/__init__.py +2 -2
  85. blaxel/{sandbox → core/sandbox}/client/models/directory.py +2 -2
  86. blaxel/{sandbox → core/sandbox}/client/models/process_request.py +25 -1
  87. blaxel/core/sandbox/client/models/process_request_env.py +49 -0
  88. blaxel/core/sandbox/filesystem.py +280 -0
  89. blaxel/core/sandbox/network.py +10 -0
  90. blaxel/{sandbox → core/sandbox}/preview.py +45 -17
  91. blaxel/core/sandbox/process.py +159 -0
  92. blaxel/{sandbox → core/sandbox}/sandbox.py +62 -5
  93. blaxel/core/sandbox/session.py +124 -0
  94. blaxel/core/sandbox/types.py +103 -0
  95. blaxel/{tools → core/tools}/__init__.py +63 -91
  96. blaxel/crewai/__init__.py +4 -0
  97. blaxel/{models/crewai.py → crewai/model.py} +4 -2
  98. blaxel/crewai/py.typed +0 -0
  99. blaxel/crewai/tools.py +26 -0
  100. blaxel/googleadk/__init__.py +4 -0
  101. blaxel/{models/googleadk.py → googleadk/model.py} +8 -2
  102. blaxel/googleadk/py.typed +0 -0
  103. blaxel/googleadk/tools.py +72 -0
  104. blaxel/langgraph/__init__.py +4 -0
  105. blaxel/{models/langchain.py → langgraph/model.py} +8 -4
  106. blaxel/langgraph/py.typed +0 -0
  107. blaxel/{tools/langchain.py → langgraph/tools.py} +7 -3
  108. blaxel/livekit/__init__.py +4 -0
  109. blaxel/{models/livekit.py → livekit/model.py} +7 -1
  110. blaxel/livekit/py.typed +0 -0
  111. blaxel/{tools/livekit.py → livekit/tools.py} +8 -1
  112. blaxel/llamaindex/__init__.py +4 -0
  113. blaxel/{models/llamaindex.py → llamaindex/model.py} +6 -3
  114. blaxel/llamaindex/py.typed +0 -0
  115. blaxel/{tools/llamaindex.py → llamaindex/tools.py} +7 -4
  116. blaxel/openai/__init__.py +4 -0
  117. blaxel/{models/openai.py → openai/model.py} +4 -2
  118. blaxel/openai/py.typed +0 -0
  119. blaxel/{tools/openai.py → openai/tools.py} +7 -3
  120. blaxel/pydantic/__init__.py +4 -0
  121. blaxel/{models/custom/pydantic → pydantic/custom}/gemini.py +0 -1
  122. blaxel/{models/pydantic.py → pydantic/model.py} +6 -4
  123. blaxel/pydantic/py.typed +0 -0
  124. blaxel/{tools/pydantic.py → pydantic/tools.py} +6 -3
  125. blaxel/telemetry/__init__.py +6 -0
  126. blaxel/telemetry/instrumentation/blaxel_core.py +125 -0
  127. blaxel/telemetry/instrumentation/blaxel_langgraph.py +99 -0
  128. blaxel/telemetry/instrumentation/blaxel_langgraph_gemini.py +346 -0
  129. blaxel/telemetry/instrumentation/blaxel_llamaindex.py +85 -0
  130. blaxel/telemetry/instrumentation/map.py +62 -0
  131. blaxel/telemetry/instrumentation/utils.py +74 -0
  132. blaxel/{common → telemetry/log}/logger.py +6 -12
  133. blaxel/{instrumentation → telemetry}/manager.py +20 -12
  134. blaxel/telemetry/py.typed +0 -0
  135. blaxel/{instrumentation → telemetry}/span.py +12 -1
  136. blaxel-0.2.0.dist-info/METADATA +224 -0
  137. blaxel-0.2.0.dist-info/RECORD +408 -0
  138. blaxel/agents/__init__.py +0 -135
  139. blaxel/common/autoload.py +0 -9
  140. blaxel/instrumentation/map.py +0 -49
  141. blaxel/mcp/__init__.py +0 -3
  142. blaxel/models/__init__.py +0 -104
  143. blaxel/sandbox/base.py +0 -68
  144. blaxel/sandbox/client/models/process_kill_request.py +0 -60
  145. blaxel/sandbox/filesystem.py +0 -104
  146. blaxel/sandbox/process.py +0 -56
  147. blaxel/tools/crewai.py +0 -22
  148. blaxel/tools/googleadk.py +0 -66
  149. blaxel-0.1.21rc69.dist-info/METADATA +0 -169
  150. blaxel-0.1.21rc69.dist-info/RECORD +0 -370
  151. /blaxel/{authentication → core/authentication}/__init__.py +0 -0
  152. /blaxel/{authentication → core/authentication}/devicemode.py +0 -0
  153. /blaxel/{authentication → core/authentication}/oauth.py +0 -0
  154. /blaxel/{authentication → core/authentication}/types.py +0 -0
  155. /blaxel/{cache → core/cache}/__init__.py +0 -0
  156. /blaxel/{cache → core/cache}/cache.py +0 -0
  157. /blaxel/{client → core/client}/__init__.py +0 -0
  158. /blaxel/{client → core/client}/api/__init__.py +0 -0
  159. /blaxel/{client → core/client}/api/agents/__init__.py +0 -0
  160. /blaxel/{client → core/client}/api/agents/delete_agent.py +0 -0
  161. /blaxel/{client → core/client}/api/agents/get_agent.py +0 -0
  162. /blaxel/{client → core/client}/api/agents/list_agent_revisions.py +0 -0
  163. /blaxel/{client → core/client}/api/agents/list_agents.py +0 -0
  164. /blaxel/{client → core/client}/api/compute/__init__.py +0 -0
  165. /blaxel/{client → core/client}/api/compute/delete_sandbox.py +0 -0
  166. /blaxel/{client → core/client}/api/compute/delete_sandbox_preview.py +0 -0
  167. /blaxel/{client → core/client}/api/compute/delete_sandbox_preview_token.py +0 -0
  168. /blaxel/{client → core/client}/api/compute/get_sandbox.py +0 -0
  169. /blaxel/{client → core/client}/api/compute/get_sandbox_preview.py +0 -0
  170. /blaxel/{client → core/client}/api/compute/list_sandbox_preview_tokens.py +0 -0
  171. /blaxel/{client → core/client}/api/compute/list_sandbox_previews.py +0 -0
  172. /blaxel/{client → core/client}/api/compute/list_sandboxes.py +0 -0
  173. /blaxel/{client → core/client}/api/compute/start_sandbox.py +0 -0
  174. /blaxel/{client → core/client}/api/compute/stop_sandbox.py +0 -0
  175. /blaxel/{client → core/client}/api/configurations/__init__.py +0 -0
  176. /blaxel/{client → core/client}/api/configurations/get_configuration.py +0 -0
  177. /blaxel/{client → core/client}/api/default/__init__.py +0 -0
  178. /blaxel/{client → core/client}/api/default/get_template.py +0 -0
  179. /blaxel/{client → core/client}/api/default/list_mcp_hub_definitions.py +0 -0
  180. /blaxel/{client → core/client}/api/default/list_sandbox_hub_definitions.py +0 -0
  181. /blaxel/{client → core/client}/api/functions/__init__.py +0 -0
  182. /blaxel/{client → core/client}/api/functions/delete_function.py +0 -0
  183. /blaxel/{client → core/client}/api/functions/get_function.py +0 -0
  184. /blaxel/{client → core/client}/api/functions/list_function_revisions.py +0 -0
  185. /blaxel/{client → core/client}/api/functions/list_functions.py +0 -0
  186. /blaxel/{client → core/client}/api/integrations/__init__.py +0 -0
  187. /blaxel/{client → core/client}/api/integrations/delete_integration_connection.py +0 -0
  188. /blaxel/{client → core/client}/api/integrations/get_integration.py +0 -0
  189. /blaxel/{client → core/client}/api/integrations/get_integration_connection.py +0 -0
  190. /blaxel/{client → core/client}/api/integrations/get_integration_connection_model.py +0 -0
  191. /blaxel/{client → core/client}/api/integrations/get_integration_connection_model_endpoint_configurations.py +0 -0
  192. /blaxel/{client → core/client}/api/integrations/list_integration_connection_models.py +0 -0
  193. /blaxel/{client → core/client}/api/integrations/list_integration_connections.py +0 -0
  194. /blaxel/{client → core/client}/api/invitations/__init__.py +0 -0
  195. /blaxel/{client → core/client}/api/invitations/list_all_pending_invitations.py +0 -0
  196. /blaxel/{client → core/client}/api/jobs/__init__.py +0 -0
  197. /blaxel/{client → core/client}/api/jobs/delete_job.py +0 -0
  198. /blaxel/{client → core/client}/api/jobs/get_job.py +0 -0
  199. /blaxel/{client → core/client}/api/jobs/list_job_revisions.py +0 -0
  200. /blaxel/{client → core/client}/api/jobs/list_jobs.py +0 -0
  201. /blaxel/{client → core/client}/api/knowledgebases/__init__.py +0 -0
  202. /blaxel/{client → core/client}/api/knowledgebases/delete_knowledgebase.py +0 -0
  203. /blaxel/{client → core/client}/api/knowledgebases/get_knowledgebase.py +0 -0
  204. /blaxel/{client → core/client}/api/knowledgebases/list_knowledgebase_revisions.py +0 -0
  205. /blaxel/{client → core/client}/api/knowledgebases/list_knowledgebases.py +0 -0
  206. /blaxel/{client → core/client}/api/locations/__init__.py +0 -0
  207. /blaxel/{client → core/client}/api/locations/list_locations.py +0 -0
  208. /blaxel/{client → core/client}/api/models/__init__.py +0 -0
  209. /blaxel/{client → core/client}/api/models/delete_model.py +0 -0
  210. /blaxel/{client → core/client}/api/models/get_model.py +0 -0
  211. /blaxel/{client → core/client}/api/models/list_model_revisions.py +0 -0
  212. /blaxel/{client → core/client}/api/models/list_models.py +0 -0
  213. /blaxel/{client → core/client}/api/policies/__init__.py +0 -0
  214. /blaxel/{client → core/client}/api/policies/delete_policy.py +0 -0
  215. /blaxel/{client → core/client}/api/policies/get_policy.py +0 -0
  216. /blaxel/{client → core/client}/api/policies/list_policies.py +0 -0
  217. /blaxel/{client → core/client}/api/privateclusters/__init__.py +0 -0
  218. /blaxel/{client → core/client}/api/privateclusters/create_private_cluster.py +0 -0
  219. /blaxel/{client → core/client}/api/privateclusters/delete_private_cluster.py +0 -0
  220. /blaxel/{client → core/client}/api/privateclusters/get_private_cluster.py +0 -0
  221. /blaxel/{client → core/client}/api/privateclusters/get_private_cluster_health.py +0 -0
  222. /blaxel/{client → core/client}/api/privateclusters/list_private_clusters.py +0 -0
  223. /blaxel/{client → core/client}/api/privateclusters/update_private_cluster.py +0 -0
  224. /blaxel/{client → core/client}/api/privateclusters/update_private_cluster_health.py +0 -0
  225. /blaxel/{client → core/client}/api/service_accounts/__init__.py +0 -0
  226. /blaxel/{client → core/client}/api/service_accounts/delete_api_key_for_service_account.py +0 -0
  227. /blaxel/{client → core/client}/api/service_accounts/delete_workspace_service_account.py +0 -0
  228. /blaxel/{client → core/client}/api/service_accounts/get_workspace_service_accounts.py +0 -0
  229. /blaxel/{client → core/client}/api/service_accounts/list_api_keys_for_service_account.py +0 -0
  230. /blaxel/{client → core/client}/api/templates/__init__.py +0 -0
  231. /blaxel/{client → core/client}/api/templates/list_templates.py +0 -0
  232. /blaxel/{client → core/client}/api/workspaces/__init__.py +0 -0
  233. /blaxel/{client → core/client}/api/workspaces/accept_workspace_invitation.py +0 -0
  234. /blaxel/{client → core/client}/api/workspaces/decline_workspace_invitation.py +0 -0
  235. /blaxel/{client → core/client}/api/workspaces/delete_workspace.py +0 -0
  236. /blaxel/{client → core/client}/api/workspaces/get_workspace.py +0 -0
  237. /blaxel/{client → core/client}/api/workspaces/leave_workspace.py +0 -0
  238. /blaxel/{client → core/client}/api/workspaces/list_workspace_users.py +0 -0
  239. /blaxel/{client → core/client}/api/workspaces/list_workspaces.py +0 -0
  240. /blaxel/{client → core/client}/api/workspaces/remove_workspace_user.py +0 -0
  241. /blaxel/{client → core/client}/client.py +0 -0
  242. /blaxel/{client → core/client}/errors.py +0 -0
  243. /blaxel/{client → core/client}/models/acl.py +0 -0
  244. /blaxel/{client → core/client}/models/api_key.py +0 -0
  245. /blaxel/{client → core/client}/models/check_workspace_availability_body.py +0 -0
  246. /blaxel/{client → core/client}/models/configuration.py +0 -0
  247. /blaxel/{client → core/client}/models/continent.py +0 -0
  248. /blaxel/{client → core/client}/models/core_event.py +0 -0
  249. /blaxel/{client → core/client}/models/core_spec_configurations.py +0 -0
  250. /blaxel/{client → core/client}/models/country.py +0 -0
  251. /blaxel/{client → core/client}/models/create_api_key_for_service_account_body.py +0 -0
  252. /blaxel/{client → core/client}/models/create_workspace_service_account_body.py +0 -0
  253. /blaxel/{client → core/client}/models/create_workspace_service_account_response_200.py +0 -0
  254. /blaxel/{client → core/client}/models/delete_sandbox_preview_token_response_200.py +0 -0
  255. /blaxel/{client → core/client}/models/delete_workspace_service_account_response_200.py +0 -0
  256. /blaxel/{client → core/client}/models/entrypoint.py +0 -0
  257. /blaxel/{client → core/client}/models/entrypoint_env.py +0 -0
  258. /blaxel/{client → core/client}/models/flavor.py +0 -0
  259. /blaxel/{client → core/client}/models/form.py +0 -0
  260. /blaxel/{client → core/client}/models/form_config.py +0 -0
  261. /blaxel/{client → core/client}/models/form_oauth.py +0 -0
  262. /blaxel/{client → core/client}/models/form_secrets.py +0 -0
  263. /blaxel/{client → core/client}/models/function_kit.py +0 -0
  264. /blaxel/{client → core/client}/models/function_schema.py +0 -0
  265. /blaxel/{client → core/client}/models/function_schema_not.py +0 -0
  266. /blaxel/{client → core/client}/models/function_schema_or_bool.py +0 -0
  267. /blaxel/{client → core/client}/models/get_workspace_service_accounts_response_200_item.py +0 -0
  268. /blaxel/{client → core/client}/models/histogram_bucket.py +0 -0
  269. /blaxel/{client → core/client}/models/histogram_stats.py +0 -0
  270. /blaxel/{client → core/client}/models/integration_additional_infos.py +0 -0
  271. /blaxel/{client → core/client}/models/integration_connection.py +0 -0
  272. /blaxel/{client → core/client}/models/integration_connection_spec.py +0 -0
  273. /blaxel/{client → core/client}/models/integration_connection_spec_config.py +0 -0
  274. /blaxel/{client → core/client}/models/integration_connection_spec_secret.py +0 -0
  275. /blaxel/{client → core/client}/models/integration_endpoint.py +0 -0
  276. /blaxel/{client → core/client}/models/integration_endpoint_token.py +0 -0
  277. /blaxel/{client → core/client}/models/integration_headers.py +0 -0
  278. /blaxel/{client → core/client}/models/integration_model.py +0 -0
  279. /blaxel/{client → core/client}/models/integration_organization.py +0 -0
  280. /blaxel/{client → core/client}/models/integration_query_params.py +0 -0
  281. /blaxel/{client → core/client}/models/integration_repository.py +0 -0
  282. /blaxel/{client → core/client}/models/invite_workspace_user_body.py +0 -0
  283. /blaxel/{client → core/client}/models/job_execution_config.py +0 -0
  284. /blaxel/{client → core/client}/models/job_metrics.py +0 -0
  285. /blaxel/{client → core/client}/models/job_metrics_executions_chart.py +0 -0
  286. /blaxel/{client → core/client}/models/job_metrics_executions_total.py +0 -0
  287. /blaxel/{client → core/client}/models/job_metrics_tasks_chart.py +0 -0
  288. /blaxel/{client → core/client}/models/job_metrics_tasks_total.py +0 -0
  289. /blaxel/{client → core/client}/models/jobs_chart.py +0 -0
  290. /blaxel/{client → core/client}/models/jobs_executions.py +0 -0
  291. /blaxel/{client → core/client}/models/jobs_network_chart.py +0 -0
  292. /blaxel/{client → core/client}/models/jobs_success_failed_chart.py +0 -0
  293. /blaxel/{client → core/client}/models/jobs_tasks.py +0 -0
  294. /blaxel/{client → core/client}/models/jobs_total.py +0 -0
  295. /blaxel/{client → core/client}/models/knowledgebase_spec.py +0 -0
  296. /blaxel/{client → core/client}/models/knowledgebase_spec_options.py +0 -0
  297. /blaxel/{client → core/client}/models/last_n_requests_metric.py +0 -0
  298. /blaxel/{client → core/client}/models/latency_metric.py +0 -0
  299. /blaxel/{client → core/client}/models/mcp_definition.py +0 -0
  300. /blaxel/{client → core/client}/models/mcp_definition_entrypoint.py +0 -0
  301. /blaxel/{client → core/client}/models/mcp_definition_form.py +0 -0
  302. /blaxel/{client → core/client}/models/memory_allocation_metric.py +0 -0
  303. /blaxel/{client → core/client}/models/metadata_labels.py +0 -0
  304. /blaxel/{client → core/client}/models/metric.py +0 -0
  305. /blaxel/{client → core/client}/models/metrics.py +0 -0
  306. /blaxel/{client → core/client}/models/metrics_models.py +0 -0
  307. /blaxel/{client → core/client}/models/metrics_request_total_per_code.py +0 -0
  308. /blaxel/{client → core/client}/models/metrics_rps_per_code.py +0 -0
  309. /blaxel/{client → core/client}/models/model_private_cluster.py +0 -0
  310. /blaxel/{client → core/client}/models/o_auth.py +0 -0
  311. /blaxel/{client → core/client}/models/owner_fields.py +0 -0
  312. /blaxel/{client → core/client}/models/pending_invitation.py +0 -0
  313. /blaxel/{client → core/client}/models/pending_invitation_accept.py +0 -0
  314. /blaxel/{client → core/client}/models/pending_invitation_render.py +0 -0
  315. /blaxel/{client → core/client}/models/pending_invitation_render_invited_by.py +0 -0
  316. /blaxel/{client → core/client}/models/pending_invitation_render_workspace.py +0 -0
  317. /blaxel/{client → core/client}/models/pending_invitation_workspace_details.py +0 -0
  318. /blaxel/{client → core/client}/models/pod_template_spec.py +0 -0
  319. /blaxel/{client → core/client}/models/policy.py +0 -0
  320. /blaxel/{client → core/client}/models/policy_location.py +0 -0
  321. /blaxel/{client → core/client}/models/policy_max_tokens.py +0 -0
  322. /blaxel/{client → core/client}/models/port.py +0 -0
  323. /blaxel/{client → core/client}/models/preview.py +0 -0
  324. /blaxel/{client → core/client}/models/preview_metadata.py +0 -0
  325. /blaxel/{client → core/client}/models/preview_spec.py +0 -0
  326. /blaxel/{client → core/client}/models/preview_spec_request_headers.py +0 -0
  327. /blaxel/{client → core/client}/models/preview_spec_response_headers.py +0 -0
  328. /blaxel/{client → core/client}/models/preview_token.py +0 -0
  329. /blaxel/{client → core/client}/models/preview_token_metadata.py +0 -0
  330. /blaxel/{client → core/client}/models/preview_token_spec.py +0 -0
  331. /blaxel/{client → core/client}/models/private_cluster.py +0 -0
  332. /blaxel/{client → core/client}/models/private_location.py +0 -0
  333. /blaxel/{client → core/client}/models/repository.py +0 -0
  334. /blaxel/{client → core/client}/models/request_duration_over_time_metric.py +0 -0
  335. /blaxel/{client → core/client}/models/request_duration_over_time_metrics.py +0 -0
  336. /blaxel/{client → core/client}/models/request_total_by_origin_metric.py +0 -0
  337. /blaxel/{client → core/client}/models/request_total_by_origin_metric_request_total_by_origin.py +0 -0
  338. /blaxel/{client → core/client}/models/request_total_by_origin_metric_request_total_by_origin_and_code.py +0 -0
  339. /blaxel/{client → core/client}/models/request_total_metric.py +0 -0
  340. /blaxel/{client → core/client}/models/request_total_metric_request_total_per_code.py +0 -0
  341. /blaxel/{client → core/client}/models/request_total_metric_rps_per_code.py +0 -0
  342. /blaxel/{client → core/client}/models/request_total_response_data.py +0 -0
  343. /blaxel/{client → core/client}/models/resource_log.py +0 -0
  344. /blaxel/{client → core/client}/models/resource_metrics_request_total_per_code.py +0 -0
  345. /blaxel/{client → core/client}/models/resource_metrics_request_total_per_code_previous.py +0 -0
  346. /blaxel/{client → core/client}/models/resource_metrics_rps_per_code.py +0 -0
  347. /blaxel/{client → core/client}/models/resource_metrics_rps_per_code_previous.py +0 -0
  348. /blaxel/{client → core/client}/models/revision_configuration.py +0 -0
  349. /blaxel/{client → core/client}/models/revision_metadata.py +0 -0
  350. /blaxel/{client → core/client}/models/runtime_configuration.py +0 -0
  351. /blaxel/{client → core/client}/models/runtime_startup_probe.py +0 -0
  352. /blaxel/{client → core/client}/models/serverless_config.py +0 -0
  353. /blaxel/{client → core/client}/models/serverless_config_configuration.py +0 -0
  354. /blaxel/{client → core/client}/models/spec_configuration.py +0 -0
  355. /blaxel/{client → core/client}/models/start_sandbox.py +0 -0
  356. /blaxel/{client → core/client}/models/stop_sandbox.py +0 -0
  357. /blaxel/{client → core/client}/models/store_agent_labels.py +0 -0
  358. /blaxel/{client → core/client}/models/store_configuration_option.py +0 -0
  359. /blaxel/{client → core/client}/models/template_variable.py +0 -0
  360. /blaxel/{client → core/client}/models/time_fields.py +0 -0
  361. /blaxel/{client → core/client}/models/time_to_first_token_over_time_metrics.py +0 -0
  362. /blaxel/{client → core/client}/models/token_rate_metric.py +0 -0
  363. /blaxel/{client → core/client}/models/token_rate_metrics.py +0 -0
  364. /blaxel/{client → core/client}/models/token_total_metric.py +0 -0
  365. /blaxel/{client → core/client}/models/trace_ids_response.py +0 -0
  366. /blaxel/{client → core/client}/models/trigger.py +0 -0
  367. /blaxel/{client → core/client}/models/trigger_configuration.py +0 -0
  368. /blaxel/{client → core/client}/models/update_workspace_service_account_body.py +0 -0
  369. /blaxel/{client → core/client}/models/update_workspace_service_account_response_200.py +0 -0
  370. /blaxel/{client → core/client}/models/update_workspace_user_role_body.py +0 -0
  371. /blaxel/{client → core/client}/models/websocket_channel.py +0 -0
  372. /blaxel/{client → core/client}/models/workspace.py +0 -0
  373. /blaxel/{client → core/client}/models/workspace_labels.py +0 -0
  374. /blaxel/{client → core/client}/models/workspace_runtime.py +0 -0
  375. /blaxel/{client → core/client}/models/workspace_user.py +0 -0
  376. /blaxel/{client → core/client}/py.typed +0 -0
  377. /blaxel/{client → core/client}/types.py +0 -0
  378. /blaxel/{common → core/common}/env.py +0 -0
  379. /blaxel/{common → core/common}/settings.py +0 -0
  380. /blaxel/{sandbox/client/api/filesystem/__init__.py → core/py.typed} +0 -0
  381. /blaxel/{sandbox → core/sandbox}/client/__init__.py +0 -0
  382. /blaxel/{sandbox → core/sandbox}/client/api/__init__.py +0 -0
  383. /blaxel/{sandbox/client/api/network → core/sandbox/client/api/filesystem}/__init__.py +0 -0
  384. /blaxel/{sandbox → core/sandbox}/client/api/filesystem/delete_filesystem_path.py +0 -0
  385. /blaxel/{sandbox → core/sandbox}/client/api/filesystem/get_filesystem_path.py +0 -0
  386. /blaxel/{sandbox → core/sandbox}/client/api/filesystem/get_watch_filesystem_path.py +0 -0
  387. /blaxel/{sandbox → core/sandbox}/client/api/filesystem/get_ws_watch_filesystem_path.py +0 -0
  388. /blaxel/{sandbox/client/api/process → core/sandbox/client/api/network}/__init__.py +0 -0
  389. /blaxel/{sandbox → core/sandbox}/client/api/network/delete_network_process_pid_monitor.py +0 -0
  390. /blaxel/{sandbox → core/sandbox}/client/api/network/get_network_process_pid_ports.py +0 -0
  391. /blaxel/{sandbox → core/sandbox}/client/api/process/delete_process_identifier.py +0 -0
  392. /blaxel/{sandbox → core/sandbox}/client/api/process/get_process.py +0 -0
  393. /blaxel/{sandbox → core/sandbox}/client/api/process/get_process_identifier.py +0 -0
  394. /blaxel/{sandbox → core/sandbox}/client/api/process/get_process_identifier_logs.py +0 -0
  395. /blaxel/{sandbox → core/sandbox}/client/api/process/get_process_identifier_logs_stream.py +0 -0
  396. /blaxel/{sandbox → core/sandbox}/client/api/process/get_ws_process_identifier_logs_stream.py +0 -0
  397. /blaxel/{sandbox → core/sandbox}/client/client.py +0 -0
  398. /blaxel/{sandbox → core/sandbox}/client/errors.py +0 -0
  399. /blaxel/{sandbox → core/sandbox}/client/models/delete_network_process_pid_monitor_response_200.py +0 -0
  400. /blaxel/{sandbox → core/sandbox}/client/models/error_response.py +0 -0
  401. /blaxel/{sandbox → core/sandbox}/client/models/file.py +0 -0
  402. /blaxel/{sandbox → core/sandbox}/client/models/file_request.py +0 -0
  403. /blaxel/{sandbox → core/sandbox}/client/models/file_with_content.py +0 -0
  404. /blaxel/{sandbox → core/sandbox}/client/models/get_network_process_pid_ports_response_200.py +0 -0
  405. /blaxel/{sandbox → core/sandbox}/client/models/port_monitor_request.py +0 -0
  406. /blaxel/{sandbox → core/sandbox}/client/models/post_network_process_pid_monitor_response_200.py +0 -0
  407. /blaxel/{sandbox → core/sandbox}/client/models/process_logs.py +0 -0
  408. /blaxel/{sandbox → core/sandbox}/client/models/process_response.py +0 -0
  409. /blaxel/{sandbox → core/sandbox}/client/models/process_response_status.py +0 -0
  410. /blaxel/{sandbox → core/sandbox}/client/models/subdirectory.py +0 -0
  411. /blaxel/{sandbox → core/sandbox}/client/models/success_response.py +0 -0
  412. /blaxel/{sandbox → core/sandbox}/client/py.typed +0 -0
  413. /blaxel/{sandbox → core/sandbox}/client/types.py +0 -0
  414. /blaxel/{tools → core/tools}/common.py +0 -0
  415. /blaxel/{tools → core/tools}/types.py +0 -0
  416. /blaxel/{models/custom/langchain → langgraph/custom}/gemini.py +0 -0
  417. /blaxel/{models/custom/llamaindex → llamaindex/custom}/cohere.py +0 -0
  418. /blaxel/{instrumentation → telemetry}/exporters.py +0 -0
  419. /blaxel/{instrumentation → telemetry/log}/log.py +0 -0
  420. {blaxel-0.1.21rc69.dist-info → blaxel-0.2.0.dist-info}/WHEEL +0 -0
  421. {blaxel-0.1.21rc69.dist-info → blaxel-0.2.0.dist-info}/licenses/LICENSE +0 -0
blaxel/__init__.py CHANGED
@@ -1,7 +1,10 @@
1
- from .common.autoload import autoload
2
- from .common.env import env
3
- from .common.settings import settings
1
+ """Blaxel - AI development platform SDK."""
2
+
3
+ from .core.common.autoload import autoload
4
+ from .core.common.env import env
5
+ from .core.common.settings import settings
4
6
 
5
7
  autoload()
6
8
 
9
+ __version__ = "0.2.0"
7
10
  __all__ = ["autoload", "settings", "env"]
@@ -0,0 +1,44 @@
1
+ """Blaxel core module."""
2
+
3
+ from .agents import BlAgent, bl_agent
4
+ from .authentication import BlaxelAuth, auth, get_credentials
5
+ from .cache import find_from_cache
6
+ from .client.client import client
7
+ from .common import autoload, env, settings
8
+ from .jobs import BlJobWrapper
9
+ from .mcp import BlaxelMcpServerTransport, websocket_client
10
+ from .models import BLModel, bl_model
11
+ from .sandbox import (
12
+ Sandbox,
13
+ SandboxFileSystem,
14
+ SandboxInstance,
15
+ SandboxPreviews,
16
+ SandboxProcess,
17
+ )
18
+ from .tools import BlTools, bl_tools, convert_mcp_tool_to_blaxel_tool
19
+
20
+ __all__ = [
21
+ "BlAgent",
22
+ "bl_agent",
23
+ "BlaxelAuth",
24
+ "auth",
25
+ "get_credentials",
26
+ "find_from_cache",
27
+ "client",
28
+ "settings",
29
+ "env",
30
+ "autoload",
31
+ "BlJobWrapper",
32
+ "BlaxelMcpServerTransport",
33
+ "BLModel",
34
+ "bl_model",
35
+ "Sandbox",
36
+ "SandboxFileSystem",
37
+ "SandboxInstance",
38
+ "SandboxPreviews",
39
+ "SandboxProcess",
40
+ "BlTools",
41
+ "bl_tools",
42
+ "convert_mcp_tool_to_blaxel_tool",
43
+ "websocket_client",
44
+ ]
@@ -0,0 +1,115 @@
1
+ import json
2
+ from logging import getLogger
3
+ from typing import Any, Awaitable
4
+
5
+ from ..cache import find_from_cache
6
+ from ..client import client
7
+ from ..client.api.agents import get_agent
8
+ from ..client.models import Agent
9
+ from ..common.internal import get_forced_url, get_global_unique_hash
10
+ from ..common.settings import settings
11
+
12
+ logger = getLogger(__name__)
13
+
14
+
15
+ class BlAgent:
16
+ def __init__(self, name: str):
17
+ self.name = name
18
+
19
+ @property
20
+ def internal_url(self):
21
+ """Get the internal URL for the agent using a hash of workspace and agent name."""
22
+ hash = get_global_unique_hash(settings.workspace, "agent", self.name)
23
+ return f"{settings.run_internal_protocol}://bl-{settings.env}-{hash}.{settings.run_internal_hostname}"
24
+
25
+ @property
26
+ def forced_url(self):
27
+ """Get the forced URL from environment variables if set."""
28
+ return get_forced_url("agent", self.name)
29
+
30
+ @property
31
+ def external_url(self):
32
+ return f"{settings.run_url}/{settings.workspace}/agents/{self.name}"
33
+
34
+ @property
35
+ def fallback_url(self):
36
+ if self.external_url != self.url:
37
+ return self.external_url
38
+ return None
39
+
40
+ @property
41
+ def url(self):
42
+ if self.forced_url:
43
+ return self.forced_url
44
+ if settings.run_internal_hostname:
45
+ return self.internal_url
46
+ return self.external_url
47
+
48
+ def call(self, url, input_data, headers: dict = {}, params: dict = {}):
49
+ body = input_data
50
+ if not isinstance(body, str):
51
+ body = json.dumps(body)
52
+
53
+ return client.get_httpx_client().post(
54
+ url, headers={"Content-Type": "application/json", **headers}, data=body, params=params
55
+ )
56
+
57
+ async def acall(self, url, input_data, headers: dict = {}, params: dict = {}):
58
+ logger.debug(f"Agent Calling: {self.name}")
59
+ body = input_data
60
+ if not isinstance(body, str):
61
+ body = json.dumps(body)
62
+
63
+ return await client.get_async_httpx_client().post(
64
+ url, headers={"Content-Type": "application/json", **headers}, data=body, params=params
65
+ )
66
+
67
+ def run(self, input: Any, headers: dict = {}, params: dict = {}) -> str:
68
+ logger.debug(f"Agent Calling: {self.name}")
69
+ response = self.call(self.url, input, headers, params)
70
+ if response.status_code >= 400:
71
+ if not self.fallback_url:
72
+ raise Exception(
73
+ f"Agent {self.name} returned status code {response.status_code} with body {response.text}"
74
+ )
75
+ response = self.call(self.fallback_url, input, headers, params)
76
+ if response.status_code >= 400:
77
+ raise Exception(
78
+ f"Agent {self.name} returned status code {response.status_code} with body {response.text}"
79
+ )
80
+ return response.text
81
+
82
+ async def arun(self, input: Any, headers: dict = {}, params: dict = {}) -> Awaitable[str]:
83
+ logger.debug(f"Agent Calling: {self.name}")
84
+ response = await self.acall(self.url, input, headers, params)
85
+ if response.status_code >= 400:
86
+ if not self.fallback_url:
87
+ raise Exception(
88
+ f"Agent {self.name} returned status code {response.status_code} with body {response.text}"
89
+ )
90
+ response = await self.acall(self.fallback_url, input, headers, params)
91
+ if response.status_code >= 400:
92
+ raise Exception(
93
+ f"Agent {self.name} returned status code {response.status_code} with body {response.text}"
94
+ )
95
+ return response.text
96
+
97
+ def __str__(self):
98
+ return f"Agent {self.name}"
99
+
100
+ def __repr__(self):
101
+ return self.__str__()
102
+
103
+
104
+ def bl_agent(name: str):
105
+ return BlAgent(name)
106
+
107
+
108
+ async def get_agent_metadata(name):
109
+ cache_data = await find_from_cache("Agent", name)
110
+ if cache_data:
111
+ return Agent.from_dict(cache_data)
112
+ try:
113
+ return await get_agent.asyncio(client=client, agent_name=name)
114
+ except Exception:
115
+ return None
@@ -13,6 +13,7 @@ class ApiKey(BlaxelAuth):
13
13
  """
14
14
  ApiKey auth that authenticates requests using an API key.
15
15
  """
16
+
16
17
  def get_headers(self):
17
18
  """
18
19
  Retrieves the authentication headers containing the API key and workspace information.
@@ -27,6 +27,7 @@ class ClientCredentials(BlaxelAuth):
27
27
  """
28
28
  ClientCredentials auth that authenticates requests using client credentials.
29
29
  """
30
+
30
31
  expires_at: Optional[datetime] = None
31
32
 
32
33
  def get_headers(self):
@@ -58,7 +59,10 @@ class ClientCredentials(BlaxelAuth):
58
59
  Optional[Exception]: An exception if refreshing fails after all retries, otherwise None.
59
60
  """
60
61
  try:
61
- headers = {"Authorization": f"Basic {self.credentials.client_credentials}", "Content-Type": "application/json"}
62
+ headers = {
63
+ "Authorization": f"Basic {self.credentials.client_credentials}",
64
+ "Content-Type": "application/json",
65
+ }
62
66
  body = {"grant_type": "client_credentials"}
63
67
  response = requests.post(f"{self.base_url}/oauth/token", headers=headers, json=body)
64
68
  response.raise_for_status()
@@ -113,4 +117,4 @@ class ClientCredentials(BlaxelAuth):
113
117
  def token(self):
114
118
  if not self.credentials.access_token:
115
119
  self.get_token()
116
- return self.credentials.access_token
120
+ return self.credentials.access_token
@@ -20,7 +20,7 @@ def _get_kwargs(
20
20
  "url": "/agents",
21
21
  }
22
22
 
23
- if type(body) == dict:
23
+ if type(body) is dict:
24
24
  _body = body
25
25
  else:
26
26
  _body = body.to_dict()
@@ -21,7 +21,7 @@ def _get_kwargs(
21
21
  "url": f"/agents/{agent_name}",
22
22
  }
23
23
 
24
- if type(body) == dict:
24
+ if type(body) is dict:
25
25
  _body = body
26
26
  else:
27
27
  _body = body.to_dict()
@@ -20,7 +20,7 @@ def _get_kwargs(
20
20
  "url": "/sandboxes",
21
21
  }
22
22
 
23
- if type(body) == dict:
23
+ if type(body) is dict:
24
24
  _body = body
25
25
  else:
26
26
  _body = body.to_dict()
@@ -21,7 +21,7 @@ def _get_kwargs(
21
21
  "url": f"/sandboxes/{sandbox_name}/previews",
22
22
  }
23
23
 
24
- if type(body) == dict:
24
+ if type(body) is dict:
25
25
  _body = body
26
26
  else:
27
27
  _body = body.to_dict()
@@ -22,7 +22,7 @@ def _get_kwargs(
22
22
  "url": f"/sandboxes/{sandbox_name}/previews/{preview_name}/tokens",
23
23
  }
24
24
 
25
- if type(body) == dict:
25
+ if type(body) is dict:
26
26
  _body = body
27
27
  else:
28
28
  _body = body.to_dict()
@@ -21,7 +21,7 @@ def _get_kwargs(
21
21
  "url": f"/sandboxes/{sandbox_name}",
22
22
  }
23
23
 
24
- if type(body) == dict:
24
+ if type(body) is dict:
25
25
  _body = body
26
26
  else:
27
27
  _body = body.to_dict()
@@ -22,7 +22,7 @@ def _get_kwargs(
22
22
  "url": f"/sandboxes/{sandbox_name}/previews/{preview_name}",
23
23
  }
24
24
 
25
- if type(body) == dict:
25
+ if type(body) is dict:
26
26
  _body = body
27
27
  else:
28
28
  _body = body.to_dict()
@@ -20,7 +20,7 @@ def _get_kwargs(
20
20
  "url": "/functions",
21
21
  }
22
22
 
23
- if type(body) == dict:
23
+ if type(body) is dict:
24
24
  _body = body
25
25
  else:
26
26
  _body = body.to_dict()
@@ -21,7 +21,7 @@ def _get_kwargs(
21
21
  "url": f"/functions/{function_name}",
22
22
  }
23
23
 
24
- if type(body) == dict:
24
+ if type(body) is dict:
25
25
  _body = body
26
26
  else:
27
27
  _body = body.to_dict()
@@ -20,7 +20,7 @@ def _get_kwargs(
20
20
  "url": "/integrations/connections",
21
21
  }
22
22
 
23
- if type(body) == dict:
23
+ if type(body) is dict:
24
24
  _body = body
25
25
  else:
26
26
  _body = body.to_dict()
@@ -21,7 +21,7 @@ def _get_kwargs(
21
21
  "url": f"/integrations/connections/{connection_name}",
22
22
  }
23
23
 
24
- if type(body) == dict:
24
+ if type(body) is dict:
25
25
  _body = body
26
26
  else:
27
27
  _body = body.to_dict()
@@ -20,7 +20,7 @@ def _get_kwargs(
20
20
  "url": "/jobs",
21
21
  }
22
22
 
23
- if type(body) == dict:
23
+ if type(body) is dict:
24
24
  _body = body
25
25
  else:
26
26
  _body = body.to_dict()
@@ -21,7 +21,7 @@ def _get_kwargs(
21
21
  "url": f"/jobs/{job_id}",
22
22
  }
23
23
 
24
- if type(body) == dict:
24
+ if type(body) is dict:
25
25
  _body = body
26
26
  else:
27
27
  _body = body.to_dict()
@@ -20,7 +20,7 @@ def _get_kwargs(
20
20
  "url": "/knowledgebases",
21
21
  }
22
22
 
23
- if type(body) == dict:
23
+ if type(body) is dict:
24
24
  _body = body
25
25
  else:
26
26
  _body = body.to_dict()
@@ -21,7 +21,7 @@ def _get_kwargs(
21
21
  "url": f"/knowledgebases/{knowledgebase_name}",
22
22
  }
23
23
 
24
- if type(body) == dict:
24
+ if type(body) is dict:
25
25
  _body = body
26
26
  else:
27
27
  _body = body.to_dict()
@@ -20,7 +20,7 @@ def _get_kwargs(
20
20
  "url": "/models",
21
21
  }
22
22
 
23
- if type(body) == dict:
23
+ if type(body) is dict:
24
24
  _body = body
25
25
  else:
26
26
  _body = body.to_dict()
@@ -21,7 +21,7 @@ def _get_kwargs(
21
21
  "url": f"/models/{model_name}",
22
22
  }
23
23
 
24
- if type(body) == dict:
24
+ if type(body) is dict:
25
25
  _body = body
26
26
  else:
27
27
  _body = body.to_dict()
@@ -20,7 +20,7 @@ def _get_kwargs(
20
20
  "url": "/policies",
21
21
  }
22
22
 
23
- if type(body) == dict:
23
+ if type(body) is dict:
24
24
  _body = body
25
25
  else:
26
26
  _body = body.to_dict()
@@ -21,7 +21,7 @@ def _get_kwargs(
21
21
  "url": f"/policies/{policy_name}",
22
22
  }
23
23
 
24
- if type(body) == dict:
24
+ if type(body) is dict:
25
25
  _body = body
26
26
  else:
27
27
  _body = body.to_dict()
@@ -22,7 +22,7 @@ def _get_kwargs(
22
22
  "url": f"/service_accounts/{client_id}/api_keys",
23
23
  }
24
24
 
25
- if type(body) == dict:
25
+ if type(body) is dict:
26
26
  _body = body
27
27
  else:
28
28
  _body = body.to_dict()
@@ -23,7 +23,7 @@ def _get_kwargs(
23
23
  "url": "/service_accounts",
24
24
  }
25
25
 
26
- if type(body) == dict:
26
+ if type(body) is dict:
27
27
  _body = body
28
28
  else:
29
29
  _body = body.to_dict()
@@ -24,7 +24,7 @@ def _get_kwargs(
24
24
  "url": f"/service_accounts/{client_id}",
25
25
  }
26
26
 
27
- if type(body) == dict:
27
+ if type(body) is dict:
28
28
  _body = body
29
29
  else:
30
30
  _body = body.to_dict()
@@ -20,7 +20,7 @@ def _get_kwargs(
20
20
  "url": "/workspaces/availability",
21
21
  }
22
22
 
23
- if type(body) == dict:
23
+ if type(body) is dict:
24
24
  _body = body
25
25
  else:
26
26
  _body = body.to_dict()
@@ -20,7 +20,7 @@ def _get_kwargs(
20
20
  "url": "/workspaces",
21
21
  }
22
22
 
23
- if type(body) == dict:
23
+ if type(body) is dict:
24
24
  _body = body
25
25
  else:
26
26
  _body = body.to_dict()
@@ -21,7 +21,7 @@ def _get_kwargs(
21
21
  "url": "/users",
22
22
  }
23
23
 
24
- if type(body) == dict:
24
+ if type(body) is dict:
25
25
  _body = body
26
26
  else:
27
27
  _body = body.to_dict()
@@ -21,7 +21,7 @@ def _get_kwargs(
21
21
  "url": f"/workspaces/{workspace_name}",
22
22
  }
23
23
 
24
- if type(body) == dict:
24
+ if type(body) is dict:
25
25
  _body = body
26
26
  else:
27
27
  _body = body.to_dict()
@@ -22,7 +22,7 @@ def _get_kwargs(
22
22
  "url": f"/users/{sub_or_email}",
23
23
  }
24
24
 
25
- if type(body) == dict:
25
+ if type(body) is dict:
26
26
  _body = body
27
27
  else:
28
28
  _body = body.to_dict()
@@ -4,6 +4,7 @@ from .acl import ACL
4
4
  from .agent import Agent
5
5
  from .agent_spec import AgentSpec
6
6
  from .api_key import ApiKey
7
+ from .billable_time_metric import BillableTimeMetric
7
8
  from .check_workspace_availability_body import CheckWorkspaceAvailabilityBody
8
9
  from .configuration import Configuration
9
10
  from .continent import Continent
@@ -71,9 +72,12 @@ from .knowledgebase_spec_options import KnowledgebaseSpecOptions
71
72
  from .last_n_requests_metric import LastNRequestsMetric
72
73
  from .latency_metric import LatencyMetric
73
74
  from .location_response import LocationResponse
75
+ from .logs_response import LogsResponse
76
+ from .logs_response_data import LogsResponseData
74
77
  from .mcp_definition import MCPDefinition
75
78
  from .mcp_definition_entrypoint import MCPDefinitionEntrypoint
76
79
  from .mcp_definition_form import MCPDefinitionForm
80
+ from .memory_allocation_by_name import MemoryAllocationByName
77
81
  from .memory_allocation_metric import MemoryAllocationMetric
78
82
  from .metadata import Metadata
79
83
  from .metadata_labels import MetadataLabels
@@ -123,7 +127,10 @@ from .request_total_metric import RequestTotalMetric
123
127
  from .request_total_metric_request_total_per_code import RequestTotalMetricRequestTotalPerCode
124
128
  from .request_total_metric_rps_per_code import RequestTotalMetricRpsPerCode
125
129
  from .request_total_response_data import RequestTotalResponseData
130
+ from .resource import Resource
126
131
  from .resource_log import ResourceLog
132
+ from .resource_log_chart import ResourceLogChart
133
+ from .resource_log_response import ResourceLogResponse
127
134
  from .resource_metrics import ResourceMetrics
128
135
  from .resource_metrics_request_total_per_code import ResourceMetricsRequestTotalPerCode
129
136
  from .resource_metrics_request_total_per_code_previous import (
@@ -131,6 +138,7 @@ from .resource_metrics_request_total_per_code_previous import (
131
138
  )
132
139
  from .resource_metrics_rps_per_code import ResourceMetricsRpsPerCode
133
140
  from .resource_metrics_rps_per_code_previous import ResourceMetricsRpsPerCodePrevious
141
+ from .resource_trace import ResourceTrace
134
142
  from .revision_configuration import RevisionConfiguration
135
143
  from .revision_metadata import RevisionMetadata
136
144
  from .runtime import Runtime
@@ -162,6 +170,7 @@ from .update_workspace_service_account_body import UpdateWorkspaceServiceAccount
162
170
  from .update_workspace_service_account_response_200 import UpdateWorkspaceServiceAccountResponse200
163
171
  from .update_workspace_user_role_body import UpdateWorkspaceUserRoleBody
164
172
  from .websocket_channel import WebsocketChannel
173
+ from .websocket_message import WebsocketMessage
165
174
  from .workspace import Workspace
166
175
  from .workspace_labels import WorkspaceLabels
167
176
  from .workspace_runtime import WorkspaceRuntime
@@ -172,6 +181,7 @@ __all__ = (
172
181
  "Agent",
173
182
  "AgentSpec",
174
183
  "ApiKey",
184
+ "BillableTimeMetric",
175
185
  "CheckWorkspaceAvailabilityBody",
176
186
  "Configuration",
177
187
  "Continent",
@@ -237,9 +247,12 @@ __all__ = (
237
247
  "LastNRequestsMetric",
238
248
  "LatencyMetric",
239
249
  "LocationResponse",
250
+ "LogsResponse",
251
+ "LogsResponseData",
240
252
  "MCPDefinition",
241
253
  "MCPDefinitionEntrypoint",
242
254
  "MCPDefinitionForm",
255
+ "MemoryAllocationByName",
243
256
  "MemoryAllocationMetric",
244
257
  "Metadata",
245
258
  "MetadataLabels",
@@ -285,12 +298,16 @@ __all__ = (
285
298
  "RequestTotalMetricRequestTotalPerCode",
286
299
  "RequestTotalMetricRpsPerCode",
287
300
  "RequestTotalResponseData",
301
+ "Resource",
288
302
  "ResourceLog",
303
+ "ResourceLogChart",
304
+ "ResourceLogResponse",
289
305
  "ResourceMetrics",
290
306
  "ResourceMetricsRequestTotalPerCode",
291
307
  "ResourceMetricsRequestTotalPerCodePrevious",
292
308
  "ResourceMetricsRpsPerCode",
293
309
  "ResourceMetricsRpsPerCodePrevious",
310
+ "ResourceTrace",
294
311
  "RevisionConfiguration",
295
312
  "RevisionMetadata",
296
313
  "Runtime",
@@ -322,6 +339,7 @@ __all__ = (
322
339
  "UpdateWorkspaceServiceAccountResponse200",
323
340
  "UpdateWorkspaceUserRoleBody",
324
341
  "WebsocketChannel",
342
+ "WebsocketMessage",
325
343
  "Workspace",
326
344
  "WorkspaceLabels",
327
345
  "WorkspaceRuntime",
@@ -36,7 +36,7 @@ class Agent:
36
36
  if not isinstance(self.events, Unset):
37
37
  events = []
38
38
  for componentsschemas_core_events_item_data in self.events:
39
- if type(componentsschemas_core_events_item_data) == dict:
39
+ if type(componentsschemas_core_events_item_data) is dict:
40
40
  componentsschemas_core_events_item = componentsschemas_core_events_item_data
41
41
  else:
42
42
  componentsschemas_core_events_item = componentsschemas_core_events_item_data.to_dict()
@@ -78,7 +78,7 @@ class AgentSpec:
78
78
  if not isinstance(self.flavors, Unset):
79
79
  flavors = []
80
80
  for componentsschemas_flavors_item_data in self.flavors:
81
- if type(componentsschemas_flavors_item_data) == dict:
81
+ if type(componentsschemas_flavors_item_data) is dict:
82
82
  componentsschemas_flavors_item = componentsschemas_flavors_item_data
83
83
  else:
84
84
  componentsschemas_flavors_item = componentsschemas_flavors_item_data.to_dict()
@@ -140,7 +140,7 @@ class AgentSpec:
140
140
  if not isinstance(self.triggers, Unset):
141
141
  triggers = []
142
142
  for componentsschemas_triggers_item_data in self.triggers:
143
- if type(componentsschemas_triggers_item_data) == dict:
143
+ if type(componentsschemas_triggers_item_data) is dict:
144
144
  componentsschemas_triggers_item = componentsschemas_triggers_item_data
145
145
  else:
146
146
  componentsschemas_triggers_item = componentsschemas_triggers_item_data.to_dict()