From 686bda06d67994ad867739f5cefc804700079683 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Tue, 8 Sep 2026 16:55:12 -0400 Subject: [PATCH 1/2] fix(python): handle responses stream items without status Avoid an AttributeError when hosted MCP tools emit `mcp_list_tools` items, which have no `status` field. Preserve statuses on items that provide them. Add cassette-backed sync and async regression coverage, including partial stream output and token metrics. Skip OpenAI 1.92.0 MCP coverage on Python 3.14 because its upstream parser cannot handle immutable unions. Fixes SDK-337 --- ...esponses_stream_mcp_list_tools[False].yaml | 583 ++++++++++++++++++ ...responses_stream_mcp_list_tools[True].yaml | 583 ++++++++++++++++++ ...esponses_stream_mcp_list_tools[False].yaml | 583 ++++++++++++++++++ ...responses_stream_mcp_list_tools[True].yaml | 583 ++++++++++++++++++ .../integrations/openai/test_openai.py | 56 ++ .../braintrust/integrations/openai/tracing.py | 4 +- 6 files changed, 2391 insertions(+), 1 deletion(-) create mode 100644 py/src/braintrust/integrations/openai/cassettes/1.92.0/test_openai_responses_stream_mcp_list_tools[False].yaml create mode 100644 py/src/braintrust/integrations/openai/cassettes/1.92.0/test_openai_responses_stream_mcp_list_tools[True].yaml create mode 100644 py/src/braintrust/integrations/openai/cassettes/latest/test_openai_responses_stream_mcp_list_tools[False].yaml create mode 100644 py/src/braintrust/integrations/openai/cassettes/latest/test_openai_responses_stream_mcp_list_tools[True].yaml diff --git a/py/src/braintrust/integrations/openai/cassettes/1.92.0/test_openai_responses_stream_mcp_list_tools[False].yaml b/py/src/braintrust/integrations/openai/cassettes/1.92.0/test_openai_responses_stream_mcp_list_tools[False].yaml new file mode 100644 index 00000000..2e0eb2a4 --- /dev/null +++ b/py/src/braintrust/integrations/openai/cassettes/1.92.0/test_openai_responses_stream_mcp_list_tools[False].yaml @@ -0,0 +1,583 @@ +interactions: +- request: + body: '{"input":"List the top-level documentation topics for the repository openai/openai-python.","model":"gpt-4.1-mini","stream":true,"tools":[{"type":"mcp","server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp","allowed_tools":["read_wiki_structure"],"require_approval":"never"}]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '291' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 1.92.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.92.0 + x-stainless-read-timeout: + - '600' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.14.6 + method: POST + uri: https://api.openai.com/v1/responses + response: + body: + string: 'event: response.created + + data: {"type":"response.created","response":{"id":"resp_00975c939b774ec9006aa07594b7f487d2a480bc1a12072b91","object":"response","created_at":1788900756,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} + + + event: response.in_progress + + data: {"type":"response.in_progress","response":{"id":"resp_00975c939b774ec9006aa07594b7f487d2a480bc1a12072b91","object":"response","created_at":1788900756,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} + + + event: response.output_item.added + + data: {"type":"response.output_item.added","item":{"id":"mcpl_00975c939b774ec9006aa07594f69087d2aa7a5d61ca16d0ba","type":"mcp_list_tools","server_label":"deepwiki","tools":[]},"output_index":0,"sequence_number":2} + + + event: response.mcp_list_tools.in_progress + + data: {"type":"response.mcp_list_tools.in_progress","item_id":"mcpl_00975c939b774ec9006aa07594f69087d2aa7a5d61ca16d0ba","output_index":0,"sequence_number":3} + + + event: response.mcp_list_tools.completed + + data: {"type":"response.mcp_list_tools.completed","item_id":"mcpl_00975c939b774ec9006aa07594f69087d2aa7a5d61ca16d0ba","output_index":0,"sequence_number":4} + + + event: response.output_item.done + + data: {"type":"response.output_item.done","item":{"id":"mcpl_00975c939b774ec9006aa07594f69087d2aa7a5d61ca16d0ba","type":"mcp_list_tools","server_label":"deepwiki","tools":[{"annotations":{"read_only":false},"description":"Get + a list of documentation topics for a GitHub repository.","input_schema":{"properties":{"repoName":{"description":"GitHub + repository in owner/repo format (e.g. \"facebook/react\").","type":"string"}},"required":["repoName"],"type":"object"},"name":"read_wiki_structure"}]},"output_index":0,"sequence_number":5} + + + event: response.output_item.added + + data: {"type":"response.output_item.added","item":{"id":"mcp_00975c939b774ec9006aa07596868887d29583f3c91d8c3495","type":"mcp_call","status":"in_progress","approval_request_id":null,"arguments":"","error":null,"name":"read_wiki_structure","output":null,"server_label":"deepwiki"},"output_index":1,"sequence_number":6} + + + event: response.mcp_call.in_progress + + data: {"type":"response.mcp_call.in_progress","item_id":"mcp_00975c939b774ec9006aa07596868887d29583f3c91d8c3495","output_index":1,"sequence_number":7} + + + event: response.mcp_call_arguments.delta + + data: {"type":"response.mcp_call_arguments.delta","delta":"{\"repoName\":\"openai/openai-python\"}","item_id":"mcp_00975c939b774ec9006aa07596868887d29583f3c91d8c3495","obfuscation":"CN6LpvW1ORJZr","output_index":1,"sequence_number":8} + + + event: response.mcp_call_arguments.done + + data: {"type":"response.mcp_call_arguments.done","arguments":"{\"repoName\":\"openai/openai-python\"}","item_id":"mcp_00975c939b774ec9006aa07596868887d29583f3c91d8c3495","output_index":1,"sequence_number":9} + + + event: response.mcp_call.completed + + data: {"type":"response.mcp_call.completed","item_id":"mcp_00975c939b774ec9006aa07596868887d29583f3c91d8c3495","output_index":1,"sequence_number":10} + + + event: response.output_item.done + + data: {"type":"response.output_item.done","item":{"id":"mcp_00975c939b774ec9006aa07596868887d29583f3c91d8c3495","type":"mcp_call","status":"completed","approval_request_id":null,"arguments":"{\"repoName\":\"openai/openai-python\"}","error":null,"name":"read_wiki_structure","output":"Available + pages for openai/openai-python:\n\n- 1 Overview\n - 1.1 Architecture Overview\n - + 1.2 Project Configuration and Dependencies\n- 2 Installation and Setup\n - + 2.1 Client Configuration\n - 2.2 Azure OpenAI Configuration\n - 2.3 Module-Level + API Usage\n- 3 Core Client Classes\n - 3.1 OpenAI and AsyncOpenAI Clients\n - + 3.2 HTTP Client Foundation\n - 3.3 Request and Response Processing\n - 3.4 + Error Handling and Retry Logic\n - 3.5 Pagination\n - 3.6 Response Wrappers\n - + 3.7 Authentication and Workload Identity\n- 4 API Resources and Endpoints\n - + 4.1 Chat Completions API\n - 4.1.1 Parameters and Configuration\n - + 4.1.2 Streaming Chat Completions\n - 4.1.3 Parsed Responses and Structured + Outputs\n - 4.2 Responses API\n - 4.2.1 Multi-Modal Inputs and Tool Integration\n - + 4.2.2 Conversation and State Management\n - 4.3 Assistants API (Beta)\n - + 4.3.1 Assistants and Configuration\n - 4.3.2 Threads and Messages\n - + 4.3.3 Runs and Execution\n - 4.3.4 Streaming Assistant Events\n - 4.4 + Fine-Tuning API\n - 4.5 Embeddings and Vector Stores\n - 4.6 File Management + and Uploads\n - 4.7 Audio, Images, and Video APIs\n - 4.8 Additional API + Resources\n - 4.9 Realtime API (Beta)\n- 5 Data Types and Type System\n - + 5.1 Type System Overview\n - 5.2 Request Parameter Types\n - 5.3 Response + Types and Models\n - 5.4 Pydantic Models and BaseModel\n - 5.5 Special Types + and Sentinels\n- 6 Data Transformation and Validation\n - 6.1 Data Transformation + Pipeline\n - 6.2 PropertyInfo and Field Metadata\n - 6.3 Type Coercion and + Construction\n - 6.4 Pydantic Compatibility Layer\n - 6.5 File Extraction + and Processing\n- 7 Advanced Features\n - 7.1 Tool Calling and Integration\n - + 7.2 Streaming and Event Handling\n - 7.3 Webhook Verification\n - 7.4 Custom + HTTP Clients and Proxies\n- 8 Development and Contribution\n - 8.1 Development + Environment Setup\n - 8.2 Testing Framework and Practices\n - 8.3 Code Quality + and Type Checking\n - 8.4 CI/CD Pipeline and Release Process\n- 9 Glossary","server_label":"deepwiki"},"output_index":1,"sequence_number":11} + + + event: response.output_item.added + + data: {"type":"response.output_item.added","item":{"id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":2,"sequence_number":12} + + + event: response.content_part.added + + data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","output_index":2,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":13} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"The","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"vPkksF8OrhPGS","output_index":2,"sequence_number":14} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" top","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"wnw8j5kzN0D1","output_index":2,"sequence_number":15} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"-level","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"Jb3hWoxdDM","output_index":2,"sequence_number":16} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" documentation","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"3a","output_index":2,"sequence_number":17} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" topics","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"1SdAOLmnt","output_index":2,"sequence_number":18} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" for","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"S478I38uUhGe","output_index":2,"sequence_number":19} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"mu2dgCROF2OK","output_index":2,"sequence_number":20} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" repository","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"BzCli","output_index":2,"sequence_number":21} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" open","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"k43K9nixVQd","output_index":2,"sequence_number":22} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"ai","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"MIjkSwiDGJjTCy","output_index":2,"sequence_number":23} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"/open","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"DpHyPeqRpIR","output_index":2,"sequence_number":24} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"ai","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"iliZBFLJt9eA1i","output_index":2,"sequence_number":25} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"-python","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"afvHXrgqX","output_index":2,"sequence_number":26} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" are","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"pXoPVBjtOpuQ","output_index":2,"sequence_number":27} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":":\n\n","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"TEOKux1zvGXdq","output_index":2,"sequence_number":28} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"1","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"pfrFE9yGoaxd7vG","output_index":2,"sequence_number":29} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"gwspD4YXogrIbhN","output_index":2,"sequence_number":30} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Overview","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"8RxHPnB","output_index":2,"sequence_number":31} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"wNX5uvOLizzRqmf","output_index":2,"sequence_number":32} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"2","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"VbPMIKjAGdvJ0lm","output_index":2,"sequence_number":33} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"Yt8GXdpNe9EhDw6","output_index":2,"sequence_number":34} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Installation","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"1lm","output_index":2,"sequence_number":35} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"r8Ce1ZLGSDkb","output_index":2,"sequence_number":36} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Setup","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"jSjpPtptgJ","output_index":2,"sequence_number":37} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"nFdXmIDP01od48K","output_index":2,"sequence_number":38} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"3","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"J63q6iwLOiWYQA4","output_index":2,"sequence_number":39} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"kFpWgYmKubM4YwN","output_index":2,"sequence_number":40} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Core","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"51uin6z55d7","output_index":2,"sequence_number":41} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Client","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"DRVqUyaqQ","output_index":2,"sequence_number":42} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Classes","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"nvtfzNW3","output_index":2,"sequence_number":43} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"QiZKJmby6LXW8bh","output_index":2,"sequence_number":44} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"4","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"ql6PUbogk0FRlR0","output_index":2,"sequence_number":45} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"ZKc5TzskdDeOjLz","output_index":2,"sequence_number":46} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" API","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"ZNiuqqDAiBHh","output_index":2,"sequence_number":47} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Resources","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"M4Tjrn","output_index":2,"sequence_number":48} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"bMNxsI1vROFf","output_index":2,"sequence_number":49} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" End","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"zaWlcoVRyHgI","output_index":2,"sequence_number":50} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"points","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"gFegwWyRra","output_index":2,"sequence_number":51} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"XXWmewLMEihtsgX","output_index":2,"sequence_number":52} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"5","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"oWLTRFACNiJ1cPm","output_index":2,"sequence_number":53} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"rPvBebZdq42qdwN","output_index":2,"sequence_number":54} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Data","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"Z7FpkVBqNWZ","output_index":2,"sequence_number":55} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Types","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"QANuCYKgew","output_index":2,"sequence_number":56} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"K4MprZzpwh8R","output_index":2,"sequence_number":57} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Type","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"YUQvAnnmHeF","output_index":2,"sequence_number":58} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" System","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"x85BwmC9A","output_index":2,"sequence_number":59} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"fXQKa6Rg5aSDDlG","output_index":2,"sequence_number":60} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"6","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"p4h0LqFJsm65gcB","output_index":2,"sequence_number":61} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"UskFmkUEnjoHA8U","output_index":2,"sequence_number":62} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Data","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"9ZrOH1NeeJz","output_index":2,"sequence_number":63} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Transformation","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"k","output_index":2,"sequence_number":64} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"XkE3EUtbEXtT","output_index":2,"sequence_number":65} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Validation","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"ch9GG","output_index":2,"sequence_number":66} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"wWqcTtdmKPc1Uhb","output_index":2,"sequence_number":67} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"7","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"w2Si0qGJCk2r9aO","output_index":2,"sequence_number":68} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"hp9cNU0Sqg48YnL","output_index":2,"sequence_number":69} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Advanced","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"cxOtBzp","output_index":2,"sequence_number":70} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Features","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"8aDbxri","output_index":2,"sequence_number":71} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"3VBk43Viw4zTBSr","output_index":2,"sequence_number":72} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"8","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"gaRqPfRsbKmRPcZ","output_index":2,"sequence_number":73} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"gya2bZDaTGqdvQX","output_index":2,"sequence_number":74} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Development","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"Yv3C","output_index":2,"sequence_number":75} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"N3hqF8bjfDtr","output_index":2,"sequence_number":76} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Contribution","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"XFn","output_index":2,"sequence_number":77} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"qrBy60xTkvLJWvl","output_index":2,"sequence_number":78} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"9","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"jTFzAaAFLlwhr0g","output_index":2,"sequence_number":79} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"LtVFZFoSlTtBLgI","output_index":2,"sequence_number":80} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Gloss","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"WSisarGutc","output_index":2,"sequence_number":81} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"ary","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"0AucbWTZqRmqW","output_index":2,"sequence_number":82} + + + event: response.output_text.done + + data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"output_index":2,"sequence_number":83,"text":"The + top-level documentation topics for the repository openai/openai-python are:\n\n1. + Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources + and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. + Advanced Features\n8. Development and Contribution\n9. Glossary"} + + + event: response.content_part.done + + data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","output_index":2,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"The + top-level documentation topics for the repository openai/openai-python are:\n\n1. + Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources + and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. + Advanced Features\n8. Development and Contribution\n9. Glossary"},"sequence_number":84} + + + event: response.output_item.done + + data: {"type":"response.output_item.done","item":{"id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The + top-level documentation topics for the repository openai/openai-python are:\n\n1. + Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources + and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. + Advanced Features\n8. Development and Contribution\n9. Glossary"}],"role":"assistant"},"output_index":2,"sequence_number":85} + + + event: response.completed + + data: {"type":"response.completed","response":{"id":"resp_00975c939b774ec9006aa07594b7f487d2a480bc1a12072b91","object":"response","created_at":1788900756,"status":"completed","background":false,"completed_at":1788900759,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[{"id":"mcpl_00975c939b774ec9006aa07594f69087d2aa7a5d61ca16d0ba","type":"mcp_list_tools","server_label":"deepwiki","tools":[{"annotations":{"read_only":false},"description":"Get + a list of documentation topics for a GitHub repository.","input_schema":{"properties":{"repoName":{"description":"GitHub + repository in owner/repo format (e.g. \"facebook/react\").","type":"string"}},"required":["repoName"],"type":"object"},"name":"read_wiki_structure"}]},{"id":"mcp_00975c939b774ec9006aa07596868887d29583f3c91d8c3495","type":"mcp_call","status":"completed","approval_request_id":null,"arguments":"{\"repoName\":\"openai/openai-python\"}","error":null,"name":"read_wiki_structure","output":"Available + pages for openai/openai-python:\n\n- 1 Overview\n - 1.1 Architecture Overview\n - + 1.2 Project Configuration and Dependencies\n- 2 Installation and Setup\n - + 2.1 Client Configuration\n - 2.2 Azure OpenAI Configuration\n - 2.3 Module-Level + API Usage\n- 3 Core Client Classes\n - 3.1 OpenAI and AsyncOpenAI Clients\n - + 3.2 HTTP Client Foundation\n - 3.3 Request and Response Processing\n - 3.4 + Error Handling and Retry Logic\n - 3.5 Pagination\n - 3.6 Response Wrappers\n - + 3.7 Authentication and Workload Identity\n- 4 API Resources and Endpoints\n - + 4.1 Chat Completions API\n - 4.1.1 Parameters and Configuration\n - + 4.1.2 Streaming Chat Completions\n - 4.1.3 Parsed Responses and Structured + Outputs\n - 4.2 Responses API\n - 4.2.1 Multi-Modal Inputs and Tool Integration\n - + 4.2.2 Conversation and State Management\n - 4.3 Assistants API (Beta)\n - + 4.3.1 Assistants and Configuration\n - 4.3.2 Threads and Messages\n - + 4.3.3 Runs and Execution\n - 4.3.4 Streaming Assistant Events\n - 4.4 + Fine-Tuning API\n - 4.5 Embeddings and Vector Stores\n - 4.6 File Management + and Uploads\n - 4.7 Audio, Images, and Video APIs\n - 4.8 Additional API + Resources\n - 4.9 Realtime API (Beta)\n- 5 Data Types and Type System\n - + 5.1 Type System Overview\n - 5.2 Request Parameter Types\n - 5.3 Response + Types and Models\n - 5.4 Pydantic Models and BaseModel\n - 5.5 Special Types + and Sentinels\n- 6 Data Transformation and Validation\n - 6.1 Data Transformation + Pipeline\n - 6.2 PropertyInfo and Field Metadata\n - 6.3 Type Coercion and + Construction\n - 6.4 Pydantic Compatibility Layer\n - 6.5 File Extraction + and Processing\n- 7 Advanced Features\n - 7.1 Tool Calling and Integration\n - + 7.2 Streaming and Event Handling\n - 7.3 Webhook Verification\n - 7.4 Custom + HTTP Clients and Proxies\n- 8 Development and Contribution\n - 8.1 Development + Environment Setup\n - 8.2 Testing Framework and Practices\n - 8.3 Code Quality + and Type Checking\n - 8.4 CI/CD Pipeline and Release Process\n- 9 Glossary","server_label":"deepwiki"},{"id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The + top-level documentation topics for the repository openai/openai-python are:\n\n1. + Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources + and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. + Advanced Features\n8. Development and Contribution\n9. Glossary"}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":761,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":96,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":857},"user":null,"metadata":{}},"sequence_number":86} + + + ' + headers: + access-control-expose-headers: + - X-Request-ID + - CF-Ray + - CF-Ray + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + cf-ray: + - a380d681080b3786-YYZ + connection: + - keep-alive + content-type: + - text/event-stream; charset=utf-8 + date: + - Tue, 08 Sep 2026 20:52:37 GMT + openai-processing-ms: + - '773' + openai-version: + - '2020-10-01' + server: + - cloudflare + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-request-id: + - req_1e674f0be8e64b80a6577a1282de2bd2 + status: + code: 200 + message: OK +version: 1 diff --git a/py/src/braintrust/integrations/openai/cassettes/1.92.0/test_openai_responses_stream_mcp_list_tools[True].yaml b/py/src/braintrust/integrations/openai/cassettes/1.92.0/test_openai_responses_stream_mcp_list_tools[True].yaml new file mode 100644 index 00000000..55adfa7e --- /dev/null +++ b/py/src/braintrust/integrations/openai/cassettes/1.92.0/test_openai_responses_stream_mcp_list_tools[True].yaml @@ -0,0 +1,583 @@ +interactions: +- request: + body: '{"input":"List the top-level documentation topics for the repository openai/openai-python.","model":"gpt-4.1-mini","stream":true,"tools":[{"type":"mcp","server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp","allowed_tools":["read_wiki_structure"],"require_approval":"never"}]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate + connection: + - keep-alive + content-length: + - '291' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - AsyncOpenAI/Python 1.92.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - async:asyncio + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 1.92.0 + x-stainless-read-timeout: + - '600' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.14.6 + method: POST + uri: https://api.openai.com/v1/responses + response: + body: + string: 'event: response.created + + data: {"type":"response.created","response":{"id":"resp_05d806bffe67ef06006aa0759fd4c887d29a85bea799cdf3a0","object":"response","created_at":1788900768,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} + + + event: response.in_progress + + data: {"type":"response.in_progress","response":{"id":"resp_05d806bffe67ef06006aa0759fd4c887d29a85bea799cdf3a0","object":"response","created_at":1788900768,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} + + + event: response.output_item.added + + data: {"type":"response.output_item.added","item":{"id":"mcpl_05d806bffe67ef06006aa075a02e6c87d2a1e5e047d1ed0667","type":"mcp_list_tools","server_label":"deepwiki","tools":[]},"output_index":0,"sequence_number":2} + + + event: response.mcp_list_tools.in_progress + + data: {"type":"response.mcp_list_tools.in_progress","item_id":"mcpl_05d806bffe67ef06006aa075a02e6c87d2a1e5e047d1ed0667","output_index":0,"sequence_number":3} + + + event: response.mcp_list_tools.completed + + data: {"type":"response.mcp_list_tools.completed","item_id":"mcpl_05d806bffe67ef06006aa075a02e6c87d2a1e5e047d1ed0667","output_index":0,"sequence_number":4} + + + event: response.output_item.done + + data: {"type":"response.output_item.done","item":{"id":"mcpl_05d806bffe67ef06006aa075a02e6c87d2a1e5e047d1ed0667","type":"mcp_list_tools","server_label":"deepwiki","tools":[{"annotations":{"read_only":false},"description":"Get + a list of documentation topics for a GitHub repository.","input_schema":{"properties":{"repoName":{"description":"GitHub + repository in owner/repo format (e.g. \"facebook/react\").","type":"string"}},"required":["repoName"],"type":"object"},"name":"read_wiki_structure"}]},"output_index":0,"sequence_number":5} + + + event: response.output_item.added + + data: {"type":"response.output_item.added","item":{"id":"mcp_05d806bffe67ef06006aa075a3034c87d2b79b145e60eb500f","type":"mcp_call","status":"in_progress","approval_request_id":null,"arguments":"","error":null,"name":"read_wiki_structure","output":null,"server_label":"deepwiki"},"output_index":1,"sequence_number":6} + + + event: response.mcp_call.in_progress + + data: {"type":"response.mcp_call.in_progress","item_id":"mcp_05d806bffe67ef06006aa075a3034c87d2b79b145e60eb500f","output_index":1,"sequence_number":7} + + + event: response.mcp_call_arguments.delta + + data: {"type":"response.mcp_call_arguments.delta","delta":"{\"repoName\":\"openai/openai-python\"}","item_id":"mcp_05d806bffe67ef06006aa075a3034c87d2b79b145e60eb500f","obfuscation":"jQPhHOViAH5W1","output_index":1,"sequence_number":8} + + + event: response.mcp_call_arguments.done + + data: {"type":"response.mcp_call_arguments.done","arguments":"{\"repoName\":\"openai/openai-python\"}","item_id":"mcp_05d806bffe67ef06006aa075a3034c87d2b79b145e60eb500f","output_index":1,"sequence_number":9} + + + event: response.mcp_call.completed + + data: {"type":"response.mcp_call.completed","item_id":"mcp_05d806bffe67ef06006aa075a3034c87d2b79b145e60eb500f","output_index":1,"sequence_number":10} + + + event: response.output_item.done + + data: {"type":"response.output_item.done","item":{"id":"mcp_05d806bffe67ef06006aa075a3034c87d2b79b145e60eb500f","type":"mcp_call","status":"completed","approval_request_id":null,"arguments":"{\"repoName\":\"openai/openai-python\"}","error":null,"name":"read_wiki_structure","output":"Available + pages for openai/openai-python:\n\n- 1 Overview\n - 1.1 Architecture Overview\n - + 1.2 Project Configuration and Dependencies\n- 2 Installation and Setup\n - + 2.1 Client Configuration\n - 2.2 Azure OpenAI Configuration\n - 2.3 Module-Level + API Usage\n- 3 Core Client Classes\n - 3.1 OpenAI and AsyncOpenAI Clients\n - + 3.2 HTTP Client Foundation\n - 3.3 Request and Response Processing\n - 3.4 + Error Handling and Retry Logic\n - 3.5 Pagination\n - 3.6 Response Wrappers\n - + 3.7 Authentication and Workload Identity\n- 4 API Resources and Endpoints\n - + 4.1 Chat Completions API\n - 4.1.1 Parameters and Configuration\n - + 4.1.2 Streaming Chat Completions\n - 4.1.3 Parsed Responses and Structured + Outputs\n - 4.2 Responses API\n - 4.2.1 Multi-Modal Inputs and Tool Integration\n - + 4.2.2 Conversation and State Management\n - 4.3 Assistants API (Beta)\n - + 4.3.1 Assistants and Configuration\n - 4.3.2 Threads and Messages\n - + 4.3.3 Runs and Execution\n - 4.3.4 Streaming Assistant Events\n - 4.4 + Fine-Tuning API\n - 4.5 Embeddings and Vector Stores\n - 4.6 File Management + and Uploads\n - 4.7 Audio, Images, and Video APIs\n - 4.8 Additional API + Resources\n - 4.9 Realtime API (Beta)\n- 5 Data Types and Type System\n - + 5.1 Type System Overview\n - 5.2 Request Parameter Types\n - 5.3 Response + Types and Models\n - 5.4 Pydantic Models and BaseModel\n - 5.5 Special Types + and Sentinels\n- 6 Data Transformation and Validation\n - 6.1 Data Transformation + Pipeline\n - 6.2 PropertyInfo and Field Metadata\n - 6.3 Type Coercion and + Construction\n - 6.4 Pydantic Compatibility Layer\n - 6.5 File Extraction + and Processing\n- 7 Advanced Features\n - 7.1 Tool Calling and Integration\n - + 7.2 Streaming and Event Handling\n - 7.3 Webhook Verification\n - 7.4 Custom + HTTP Clients and Proxies\n- 8 Development and Contribution\n - 8.1 Development + Environment Setup\n - 8.2 Testing Framework and Practices\n - 8.3 Code Quality + and Type Checking\n - 8.4 CI/CD Pipeline and Release Process\n- 9 Glossary","server_label":"deepwiki"},"output_index":1,"sequence_number":11} + + + event: response.output_item.added + + data: {"type":"response.output_item.added","item":{"id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":2,"sequence_number":12} + + + event: response.content_part.added + + data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","output_index":2,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":13} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"The","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"wrShfvOZcgVxK","output_index":2,"sequence_number":14} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" top","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"rJR7IiDC4Qed","output_index":2,"sequence_number":15} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"-level","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"9pvBPrGP0f","output_index":2,"sequence_number":16} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" documentation","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"Bv","output_index":2,"sequence_number":17} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" topics","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"ofmM9jBei","output_index":2,"sequence_number":18} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" for","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"QfMtENXZZAJT","output_index":2,"sequence_number":19} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"YnRXKTn23zk1","output_index":2,"sequence_number":20} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" repository","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"iVBG4","output_index":2,"sequence_number":21} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" open","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"lQ6HhS9WZIa","output_index":2,"sequence_number":22} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"ai","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"OMfQNHMLcc4UFO","output_index":2,"sequence_number":23} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"/open","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"VI7vpoMBpYW","output_index":2,"sequence_number":24} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"ai","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"qp46QXntF2xPzU","output_index":2,"sequence_number":25} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"-python","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"ga5lEgR0H","output_index":2,"sequence_number":26} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" are","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"E5agVYT4WEu6","output_index":2,"sequence_number":27} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":":\n\n","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"EMDK6knnYfEV7","output_index":2,"sequence_number":28} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"1","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"cdN3FEBolF9Gslv","output_index":2,"sequence_number":29} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"s4FE7emdmDtnUr4","output_index":2,"sequence_number":30} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Overview","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"mhfJ7He","output_index":2,"sequence_number":31} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"F8Kk9CIl1Zxbmjx","output_index":2,"sequence_number":32} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"2","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"quEC0j99V9tNYSF","output_index":2,"sequence_number":33} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"zTSfuK2sEa39FBf","output_index":2,"sequence_number":34} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Installation","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"mKi","output_index":2,"sequence_number":35} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"zqOUyWl3Rvdv","output_index":2,"sequence_number":36} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Setup","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"4oZktAnxNr","output_index":2,"sequence_number":37} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"2CFIsezDF30Jr9p","output_index":2,"sequence_number":38} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"3","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"eGSNgE2RHGCC9EP","output_index":2,"sequence_number":39} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"UVVJM23rkNvp0dy","output_index":2,"sequence_number":40} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Core","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"gcnPhsOtlOs","output_index":2,"sequence_number":41} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Client","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"gzEhATOiP","output_index":2,"sequence_number":42} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Classes","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"0RssHjLW","output_index":2,"sequence_number":43} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"5fH1Gyx7jx7L2u9","output_index":2,"sequence_number":44} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"4","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"euq4wYKfF57l64h","output_index":2,"sequence_number":45} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"xQ74b7vYu2TAd0j","output_index":2,"sequence_number":46} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" API","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"Yo5DzAH1B3Uh","output_index":2,"sequence_number":47} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Resources","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"Fa9mLn","output_index":2,"sequence_number":48} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"fP2AkqelULFw","output_index":2,"sequence_number":49} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" End","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"KafbjsKkQEIC","output_index":2,"sequence_number":50} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"points","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"Tt1b1IbQcg","output_index":2,"sequence_number":51} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"OjuI3Z5HWcJ4kCD","output_index":2,"sequence_number":52} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"5","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"OIXnk7PoUllfx1I","output_index":2,"sequence_number":53} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"rlg4G6Aqr9mTEM5","output_index":2,"sequence_number":54} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Data","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"zYdQyZNxboF","output_index":2,"sequence_number":55} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Types","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"00RgkzZpGX","output_index":2,"sequence_number":56} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"xGahF9NyRFcZ","output_index":2,"sequence_number":57} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Type","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"WMbI7V8JquV","output_index":2,"sequence_number":58} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" System","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"hpehf3q5l","output_index":2,"sequence_number":59} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"teBTfioohVDSObz","output_index":2,"sequence_number":60} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"6","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"ks1cDhIcjISQyRi","output_index":2,"sequence_number":61} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"7zUaB4aBeF3Azq7","output_index":2,"sequence_number":62} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Data","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"aIhAASY0lsb","output_index":2,"sequence_number":63} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Transformation","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"R","output_index":2,"sequence_number":64} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"UBXHKRWiLpqL","output_index":2,"sequence_number":65} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Validation","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"4ad6Y","output_index":2,"sequence_number":66} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"VQe8RYnckbKW6gx","output_index":2,"sequence_number":67} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"7","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"w2gmfFbjZaU3JVa","output_index":2,"sequence_number":68} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"xCGxetIpF2Rv7fr","output_index":2,"sequence_number":69} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Advanced","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"ftQj1C0","output_index":2,"sequence_number":70} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Features","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"v3IeCl1","output_index":2,"sequence_number":71} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"N7ZY7KWY977R8ba","output_index":2,"sequence_number":72} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"8","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"kuO5QCzVyQyXmwb","output_index":2,"sequence_number":73} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"7d5q6AfxxtZtFeW","output_index":2,"sequence_number":74} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Development","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"NR74","output_index":2,"sequence_number":75} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"IDLdC04eObhr","output_index":2,"sequence_number":76} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Contribution","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"YpG","output_index":2,"sequence_number":77} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"MgLTEYMa2y2niiq","output_index":2,"sequence_number":78} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"9","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"7SeRc2jVMi15ojD","output_index":2,"sequence_number":79} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"MBWlZB6n4mxJZzg","output_index":2,"sequence_number":80} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Gloss","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"I4E7DTxiLr","output_index":2,"sequence_number":81} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"ary","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"d5OVz7uGB9lnD","output_index":2,"sequence_number":82} + + + event: response.output_text.done + + data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"output_index":2,"sequence_number":83,"text":"The + top-level documentation topics for the repository openai/openai-python are:\n\n1. + Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources + and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. + Advanced Features\n8. Development and Contribution\n9. Glossary"} + + + event: response.content_part.done + + data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","output_index":2,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"The + top-level documentation topics for the repository openai/openai-python are:\n\n1. + Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources + and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. + Advanced Features\n8. Development and Contribution\n9. Glossary"},"sequence_number":84} + + + event: response.output_item.done + + data: {"type":"response.output_item.done","item":{"id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The + top-level documentation topics for the repository openai/openai-python are:\n\n1. + Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources + and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. + Advanced Features\n8. Development and Contribution\n9. Glossary"}],"role":"assistant"},"output_index":2,"sequence_number":85} + + + event: response.completed + + data: {"type":"response.completed","response":{"id":"resp_05d806bffe67ef06006aa0759fd4c887d29a85bea799cdf3a0","object":"response","created_at":1788900768,"status":"completed","background":false,"completed_at":1788900772,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[{"id":"mcpl_05d806bffe67ef06006aa075a02e6c87d2a1e5e047d1ed0667","type":"mcp_list_tools","server_label":"deepwiki","tools":[{"annotations":{"read_only":false},"description":"Get + a list of documentation topics for a GitHub repository.","input_schema":{"properties":{"repoName":{"description":"GitHub + repository in owner/repo format (e.g. \"facebook/react\").","type":"string"}},"required":["repoName"],"type":"object"},"name":"read_wiki_structure"}]},{"id":"mcp_05d806bffe67ef06006aa075a3034c87d2b79b145e60eb500f","type":"mcp_call","status":"completed","approval_request_id":null,"arguments":"{\"repoName\":\"openai/openai-python\"}","error":null,"name":"read_wiki_structure","output":"Available + pages for openai/openai-python:\n\n- 1 Overview\n - 1.1 Architecture Overview\n - + 1.2 Project Configuration and Dependencies\n- 2 Installation and Setup\n - + 2.1 Client Configuration\n - 2.2 Azure OpenAI Configuration\n - 2.3 Module-Level + API Usage\n- 3 Core Client Classes\n - 3.1 OpenAI and AsyncOpenAI Clients\n - + 3.2 HTTP Client Foundation\n - 3.3 Request and Response Processing\n - 3.4 + Error Handling and Retry Logic\n - 3.5 Pagination\n - 3.6 Response Wrappers\n - + 3.7 Authentication and Workload Identity\n- 4 API Resources and Endpoints\n - + 4.1 Chat Completions API\n - 4.1.1 Parameters and Configuration\n - + 4.1.2 Streaming Chat Completions\n - 4.1.3 Parsed Responses and Structured + Outputs\n - 4.2 Responses API\n - 4.2.1 Multi-Modal Inputs and Tool Integration\n - + 4.2.2 Conversation and State Management\n - 4.3 Assistants API (Beta)\n - + 4.3.1 Assistants and Configuration\n - 4.3.2 Threads and Messages\n - + 4.3.3 Runs and Execution\n - 4.3.4 Streaming Assistant Events\n - 4.4 + Fine-Tuning API\n - 4.5 Embeddings and Vector Stores\n - 4.6 File Management + and Uploads\n - 4.7 Audio, Images, and Video APIs\n - 4.8 Additional API + Resources\n - 4.9 Realtime API (Beta)\n- 5 Data Types and Type System\n - + 5.1 Type System Overview\n - 5.2 Request Parameter Types\n - 5.3 Response + Types and Models\n - 5.4 Pydantic Models and BaseModel\n - 5.5 Special Types + and Sentinels\n- 6 Data Transformation and Validation\n - 6.1 Data Transformation + Pipeline\n - 6.2 PropertyInfo and Field Metadata\n - 6.3 Type Coercion and + Construction\n - 6.4 Pydantic Compatibility Layer\n - 6.5 File Extraction + and Processing\n- 7 Advanced Features\n - 7.1 Tool Calling and Integration\n - + 7.2 Streaming and Event Handling\n - 7.3 Webhook Verification\n - 7.4 Custom + HTTP Clients and Proxies\n- 8 Development and Contribution\n - 8.1 Development + Environment Setup\n - 8.2 Testing Framework and Practices\n - 8.3 Code Quality + and Type Checking\n - 8.4 CI/CD Pipeline and Release Process\n- 9 Glossary","server_label":"deepwiki"},{"id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The + top-level documentation topics for the repository openai/openai-python are:\n\n1. + Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources + and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. + Advanced Features\n8. Development and Contribution\n9. Glossary"}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":761,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":96,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":857},"user":null,"metadata":{}},"sequence_number":86} + + + ' + headers: + access-control-expose-headers: + - X-Request-ID + - CF-Ray + - CF-Ray + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + cf-ray: + - a380d6c64faa5f07-YYZ + connection: + - keep-alive + content-type: + - text/event-stream; charset=utf-8 + date: + - Tue, 08 Sep 2026 20:52:48 GMT + openai-processing-ms: + - '872' + openai-version: + - '2020-10-01' + server: + - cloudflare + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-request-id: + - req_c3b7eea7697d4cd69158392632870cdd + status: + code: 200 + message: OK +version: 1 diff --git a/py/src/braintrust/integrations/openai/cassettes/latest/test_openai_responses_stream_mcp_list_tools[False].yaml b/py/src/braintrust/integrations/openai/cassettes/latest/test_openai_responses_stream_mcp_list_tools[False].yaml new file mode 100644 index 00000000..82c748c6 --- /dev/null +++ b/py/src/braintrust/integrations/openai/cassettes/latest/test_openai_responses_stream_mcp_list_tools[False].yaml @@ -0,0 +1,583 @@ +interactions: +- request: + body: '{"input":"List the top-level documentation topics for the repository openai/openai-python.","model":"gpt-4.1-mini","stream":true,"tools":[{"type":"mcp","server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp","allowed_tools":["read_wiki_structure"],"require_approval":"never"}]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '291' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - OpenAI/Python 3.8.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - 'false' + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 3.8.0 + x-stainless-read-timeout: + - '600' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.14.6 + method: POST + uri: https://api.openai.com/v1/responses + response: + body: + string: 'event: response.created + + data: {"type":"response.created","response":{"id":"resp_0adb73bb66f1e59e006aa0755f574087d29ddc6164175070c4","object":"response","created_at":1788900703,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} + + + event: response.in_progress + + data: {"type":"response.in_progress","response":{"id":"resp_0adb73bb66f1e59e006aa0755f574087d29ddc6164175070c4","object":"response","created_at":1788900703,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} + + + event: response.output_item.added + + data: {"type":"response.output_item.added","item":{"id":"mcpl_0adb73bb66f1e59e006aa0755f721487d2b1257c15e0751783","type":"mcp_list_tools","server_label":"deepwiki","tools":[]},"output_index":0,"sequence_number":2} + + + event: response.mcp_list_tools.in_progress + + data: {"type":"response.mcp_list_tools.in_progress","item_id":"mcpl_0adb73bb66f1e59e006aa0755f721487d2b1257c15e0751783","output_index":0,"sequence_number":3} + + + event: response.mcp_list_tools.completed + + data: {"type":"response.mcp_list_tools.completed","item_id":"mcpl_0adb73bb66f1e59e006aa0755f721487d2b1257c15e0751783","output_index":0,"sequence_number":4} + + + event: response.output_item.done + + data: {"type":"response.output_item.done","item":{"id":"mcpl_0adb73bb66f1e59e006aa0755f721487d2b1257c15e0751783","type":"mcp_list_tools","server_label":"deepwiki","tools":[{"annotations":{"read_only":false},"description":"Get + a list of documentation topics for a GitHub repository.","input_schema":{"properties":{"repoName":{"description":"GitHub + repository in owner/repo format (e.g. \"facebook/react\").","type":"string"}},"required":["repoName"],"type":"object"},"name":"read_wiki_structure"}]},"output_index":0,"sequence_number":5} + + + event: response.output_item.added + + data: {"type":"response.output_item.added","item":{"id":"mcp_0adb73bb66f1e59e006aa07561fc7487d2bd73f435aca4a27e","type":"mcp_call","status":"in_progress","approval_request_id":null,"arguments":"","error":null,"name":"read_wiki_structure","output":null,"server_label":"deepwiki"},"output_index":1,"sequence_number":6} + + + event: response.mcp_call.in_progress + + data: {"type":"response.mcp_call.in_progress","item_id":"mcp_0adb73bb66f1e59e006aa07561fc7487d2bd73f435aca4a27e","output_index":1,"sequence_number":7} + + + event: response.mcp_call_arguments.delta + + data: {"type":"response.mcp_call_arguments.delta","delta":"{\"repoName\":\"openai/openai-python\"}","item_id":"mcp_0adb73bb66f1e59e006aa07561fc7487d2bd73f435aca4a27e","obfuscation":"VPb860nVZRhZU","output_index":1,"sequence_number":8} + + + event: response.mcp_call_arguments.done + + data: {"type":"response.mcp_call_arguments.done","arguments":"{\"repoName\":\"openai/openai-python\"}","item_id":"mcp_0adb73bb66f1e59e006aa07561fc7487d2bd73f435aca4a27e","output_index":1,"sequence_number":9} + + + event: response.mcp_call.completed + + data: {"type":"response.mcp_call.completed","item_id":"mcp_0adb73bb66f1e59e006aa07561fc7487d2bd73f435aca4a27e","output_index":1,"sequence_number":10} + + + event: response.output_item.done + + data: {"type":"response.output_item.done","item":{"id":"mcp_0adb73bb66f1e59e006aa07561fc7487d2bd73f435aca4a27e","type":"mcp_call","status":"completed","approval_request_id":null,"arguments":"{\"repoName\":\"openai/openai-python\"}","error":null,"name":"read_wiki_structure","output":"Available + pages for openai/openai-python:\n\n- 1 Overview\n - 1.1 Architecture Overview\n - + 1.2 Project Configuration and Dependencies\n- 2 Installation and Setup\n - + 2.1 Client Configuration\n - 2.2 Azure OpenAI Configuration\n - 2.3 Module-Level + API Usage\n- 3 Core Client Classes\n - 3.1 OpenAI and AsyncOpenAI Clients\n - + 3.2 HTTP Client Foundation\n - 3.3 Request and Response Processing\n - 3.4 + Error Handling and Retry Logic\n - 3.5 Pagination\n - 3.6 Response Wrappers\n - + 3.7 Authentication and Workload Identity\n- 4 API Resources and Endpoints\n - + 4.1 Chat Completions API\n - 4.1.1 Parameters and Configuration\n - + 4.1.2 Streaming Chat Completions\n - 4.1.3 Parsed Responses and Structured + Outputs\n - 4.2 Responses API\n - 4.2.1 Multi-Modal Inputs and Tool Integration\n - + 4.2.2 Conversation and State Management\n - 4.3 Assistants API (Beta)\n - + 4.3.1 Assistants and Configuration\n - 4.3.2 Threads and Messages\n - + 4.3.3 Runs and Execution\n - 4.3.4 Streaming Assistant Events\n - 4.4 + Fine-Tuning API\n - 4.5 Embeddings and Vector Stores\n - 4.6 File Management + and Uploads\n - 4.7 Audio, Images, and Video APIs\n - 4.8 Additional API + Resources\n - 4.9 Realtime API (Beta)\n- 5 Data Types and Type System\n - + 5.1 Type System Overview\n - 5.2 Request Parameter Types\n - 5.3 Response + Types and Models\n - 5.4 Pydantic Models and BaseModel\n - 5.5 Special Types + and Sentinels\n- 6 Data Transformation and Validation\n - 6.1 Data Transformation + Pipeline\n - 6.2 PropertyInfo and Field Metadata\n - 6.3 Type Coercion and + Construction\n - 6.4 Pydantic Compatibility Layer\n - 6.5 File Extraction + and Processing\n- 7 Advanced Features\n - 7.1 Tool Calling and Integration\n - + 7.2 Streaming and Event Handling\n - 7.3 Webhook Verification\n - 7.4 Custom + HTTP Clients and Proxies\n- 8 Development and Contribution\n - 8.1 Development + Environment Setup\n - 8.2 Testing Framework and Practices\n - 8.3 Code Quality + and Type Checking\n - 8.4 CI/CD Pipeline and Release Process\n- 9 Glossary","server_label":"deepwiki"},"output_index":1,"sequence_number":11} + + + event: response.output_item.added + + data: {"type":"response.output_item.added","item":{"id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":2,"sequence_number":12} + + + event: response.content_part.added + + data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","output_index":2,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":13} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"The","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"OK89HDJ8QoLEJ","output_index":2,"sequence_number":14} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" top","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"fUlVZwfNNzYK","output_index":2,"sequence_number":15} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"-level","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"44uPE84Wzg","output_index":2,"sequence_number":16} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" documentation","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"NT","output_index":2,"sequence_number":17} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" topics","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"2jg1hSHNS","output_index":2,"sequence_number":18} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" for","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"ebLFlfAAB2Sk","output_index":2,"sequence_number":19} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"n8mPToaXQ3Qs","output_index":2,"sequence_number":20} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" repository","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"LnPyN","output_index":2,"sequence_number":21} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" open","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"PxM7K5BnX0s","output_index":2,"sequence_number":22} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"ai","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"Y4KZEJJZXQsW4Z","output_index":2,"sequence_number":23} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"/open","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"bEsAVDiOED0","output_index":2,"sequence_number":24} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"ai","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"ItFrCAn2Tsb5Vw","output_index":2,"sequence_number":25} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"-python","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"CHRYc418x","output_index":2,"sequence_number":26} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" are","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"BvyT5VqQAIjb","output_index":2,"sequence_number":27} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":":\n\n","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"I6qDPILayRFP8","output_index":2,"sequence_number":28} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"1","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"ApiJ2Nm3kDnveU0","output_index":2,"sequence_number":29} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"KgfRUOumbtKfzZA","output_index":2,"sequence_number":30} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Overview","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"c77E4si","output_index":2,"sequence_number":31} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"YgHHzzI1K45YrM4","output_index":2,"sequence_number":32} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"2","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"eRcFHdoWKOfYFL2","output_index":2,"sequence_number":33} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"363OmGVlivVNL1I","output_index":2,"sequence_number":34} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Installation","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"74j","output_index":2,"sequence_number":35} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"XKVbDGmifBXv","output_index":2,"sequence_number":36} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Setup","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"wV2aWd6BJ4","output_index":2,"sequence_number":37} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"SiCuFkJjxjT1nLk","output_index":2,"sequence_number":38} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"3","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"jvBAkKaib5abWVy","output_index":2,"sequence_number":39} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"jbQm7jyCQOkTi8K","output_index":2,"sequence_number":40} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Core","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"DOF5Y9XkX81","output_index":2,"sequence_number":41} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Client","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"Mv93ydPT7","output_index":2,"sequence_number":42} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Classes","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"kdopxnG3","output_index":2,"sequence_number":43} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"UdKIgXqDs4n5VmV","output_index":2,"sequence_number":44} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"4","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"ipVVA0DDMrb5gKk","output_index":2,"sequence_number":45} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"L9Mr3rJA30jkdNw","output_index":2,"sequence_number":46} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" API","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"zGE7TILgcuPH","output_index":2,"sequence_number":47} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Resources","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"cvcxhS","output_index":2,"sequence_number":48} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"zfEqIm18aiW9","output_index":2,"sequence_number":49} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" End","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"DOwU02QmB3og","output_index":2,"sequence_number":50} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"points","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"MIJkGy9wdt","output_index":2,"sequence_number":51} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"QJVcf7F1z5mGDjb","output_index":2,"sequence_number":52} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"5","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"pL9Hgj0795jnGqN","output_index":2,"sequence_number":53} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"h9qwQ9Zny5fajU1","output_index":2,"sequence_number":54} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Data","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"pDmSuJzNlDP","output_index":2,"sequence_number":55} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Types","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"J5Ssm2c2fO","output_index":2,"sequence_number":56} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"OVlFnfl7ZniP","output_index":2,"sequence_number":57} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Type","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"NpaIb9IXqQF","output_index":2,"sequence_number":58} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" System","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"Coa3kkZEf","output_index":2,"sequence_number":59} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"YProgHy35XsEKam","output_index":2,"sequence_number":60} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"6","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"BJRbKakrJMqKEHp","output_index":2,"sequence_number":61} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"WU25YRfcaNxMJoY","output_index":2,"sequence_number":62} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Data","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"3EFy8Daxkdd","output_index":2,"sequence_number":63} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Transformation","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"Y","output_index":2,"sequence_number":64} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"m9VkidQOxokb","output_index":2,"sequence_number":65} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Validation","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"FEGup","output_index":2,"sequence_number":66} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"sWCkk670fCjrNsS","output_index":2,"sequence_number":67} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"7","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"dExaGyRVSmmGLvD","output_index":2,"sequence_number":68} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"pxBlF11K3gkBiN5","output_index":2,"sequence_number":69} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Advanced","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"N1F1Rxt","output_index":2,"sequence_number":70} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Features","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"FzpvvI4","output_index":2,"sequence_number":71} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"774HD0uuuo1lt8S","output_index":2,"sequence_number":72} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"8","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"To608Whu6kR7QlJ","output_index":2,"sequence_number":73} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"Y0B8JmIzVcG7PSB","output_index":2,"sequence_number":74} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Development","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"lk4O","output_index":2,"sequence_number":75} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"MuV7orBWER8j","output_index":2,"sequence_number":76} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Contribution","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"39F","output_index":2,"sequence_number":77} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"lGJot5AJDkn7GX1","output_index":2,"sequence_number":78} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"9","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"QrO4amjQV4yPVIA","output_index":2,"sequence_number":79} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"GAXnJpOVhz2VaAv","output_index":2,"sequence_number":80} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Gloss","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"ZgJ67CLZgI","output_index":2,"sequence_number":81} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"ary","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"rh3yc6vRVM5Ik","output_index":2,"sequence_number":82} + + + event: response.output_text.done + + data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"output_index":2,"sequence_number":83,"text":"The + top-level documentation topics for the repository openai/openai-python are:\n\n1. + Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources + and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. + Advanced Features\n8. Development and Contribution\n9. Glossary"} + + + event: response.content_part.done + + data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","output_index":2,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"The + top-level documentation topics for the repository openai/openai-python are:\n\n1. + Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources + and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. + Advanced Features\n8. Development and Contribution\n9. Glossary"},"sequence_number":84} + + + event: response.output_item.done + + data: {"type":"response.output_item.done","item":{"id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The + top-level documentation topics for the repository openai/openai-python are:\n\n1. + Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources + and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. + Advanced Features\n8. Development and Contribution\n9. Glossary"}],"role":"assistant"},"output_index":2,"sequence_number":85} + + + event: response.completed + + data: {"type":"response.completed","response":{"id":"resp_0adb73bb66f1e59e006aa0755f574087d29ddc6164175070c4","object":"response","created_at":1788900703,"status":"completed","background":false,"completed_at":1788900708,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[{"id":"mcpl_0adb73bb66f1e59e006aa0755f721487d2b1257c15e0751783","type":"mcp_list_tools","server_label":"deepwiki","tools":[{"annotations":{"read_only":false},"description":"Get + a list of documentation topics for a GitHub repository.","input_schema":{"properties":{"repoName":{"description":"GitHub + repository in owner/repo format (e.g. \"facebook/react\").","type":"string"}},"required":["repoName"],"type":"object"},"name":"read_wiki_structure"}]},{"id":"mcp_0adb73bb66f1e59e006aa07561fc7487d2bd73f435aca4a27e","type":"mcp_call","status":"completed","approval_request_id":null,"arguments":"{\"repoName\":\"openai/openai-python\"}","error":null,"name":"read_wiki_structure","output":"Available + pages for openai/openai-python:\n\n- 1 Overview\n - 1.1 Architecture Overview\n - + 1.2 Project Configuration and Dependencies\n- 2 Installation and Setup\n - + 2.1 Client Configuration\n - 2.2 Azure OpenAI Configuration\n - 2.3 Module-Level + API Usage\n- 3 Core Client Classes\n - 3.1 OpenAI and AsyncOpenAI Clients\n - + 3.2 HTTP Client Foundation\n - 3.3 Request and Response Processing\n - 3.4 + Error Handling and Retry Logic\n - 3.5 Pagination\n - 3.6 Response Wrappers\n - + 3.7 Authentication and Workload Identity\n- 4 API Resources and Endpoints\n - + 4.1 Chat Completions API\n - 4.1.1 Parameters and Configuration\n - + 4.1.2 Streaming Chat Completions\n - 4.1.3 Parsed Responses and Structured + Outputs\n - 4.2 Responses API\n - 4.2.1 Multi-Modal Inputs and Tool Integration\n - + 4.2.2 Conversation and State Management\n - 4.3 Assistants API (Beta)\n - + 4.3.1 Assistants and Configuration\n - 4.3.2 Threads and Messages\n - + 4.3.3 Runs and Execution\n - 4.3.4 Streaming Assistant Events\n - 4.4 + Fine-Tuning API\n - 4.5 Embeddings and Vector Stores\n - 4.6 File Management + and Uploads\n - 4.7 Audio, Images, and Video APIs\n - 4.8 Additional API + Resources\n - 4.9 Realtime API (Beta)\n- 5 Data Types and Type System\n - + 5.1 Type System Overview\n - 5.2 Request Parameter Types\n - 5.3 Response + Types and Models\n - 5.4 Pydantic Models and BaseModel\n - 5.5 Special Types + and Sentinels\n- 6 Data Transformation and Validation\n - 6.1 Data Transformation + Pipeline\n - 6.2 PropertyInfo and Field Metadata\n - 6.3 Type Coercion and + Construction\n - 6.4 Pydantic Compatibility Layer\n - 6.5 File Extraction + and Processing\n- 7 Advanced Features\n - 7.1 Tool Calling and Integration\n - + 7.2 Streaming and Event Handling\n - 7.3 Webhook Verification\n - 7.4 Custom + HTTP Clients and Proxies\n- 8 Development and Contribution\n - 8.1 Development + Environment Setup\n - 8.2 Testing Framework and Practices\n - 8.3 Code Quality + and Type Checking\n - 8.4 CI/CD Pipeline and Release Process\n- 9 Glossary","server_label":"deepwiki"},{"id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The + top-level documentation topics for the repository openai/openai-python are:\n\n1. + Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources + and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. + Advanced Features\n8. Development and Contribution\n9. Glossary"}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":761,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":96,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":857},"user":null,"metadata":{}},"sequence_number":86} + + + ' + headers: + access-control-expose-headers: + - X-Request-ID + - CF-Ray + - CF-Ray + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + cf-ray: + - a380d52c388b8ea1-YYZ + connection: + - keep-alive + content-type: + - text/event-stream; charset=utf-8 + date: + - Tue, 08 Sep 2026 20:51:43 GMT + openai-processing-ms: + - '1051' + openai-version: + - '2020-10-01' + server: + - cloudflare + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-request-id: + - req_895d916d87564dedb5deae9162cfec5c + status: + code: 200 + message: OK +version: 1 diff --git a/py/src/braintrust/integrations/openai/cassettes/latest/test_openai_responses_stream_mcp_list_tools[True].yaml b/py/src/braintrust/integrations/openai/cassettes/latest/test_openai_responses_stream_mcp_list_tools[True].yaml new file mode 100644 index 00000000..d86c5cf9 --- /dev/null +++ b/py/src/braintrust/integrations/openai/cassettes/latest/test_openai_responses_stream_mcp_list_tools[True].yaml @@ -0,0 +1,583 @@ +interactions: +- request: + body: '{"input":"List the top-level documentation topics for the repository openai/openai-python.","model":"gpt-4.1-mini","stream":true,"tools":[{"type":"mcp","server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp","allowed_tools":["read_wiki_structure"],"require_approval":"never"}]}' + headers: + accept: + - application/json + accept-encoding: + - gzip, deflate, zstd + connection: + - keep-alive + content-length: + - '291' + content-type: + - application/json + host: + - api.openai.com + user-agent: + - AsyncOpenAI/Python 3.8.0 + x-stainless-arch: + - arm64 + x-stainless-async: + - async:asyncio + x-stainless-lang: + - python + x-stainless-os: + - MacOS + x-stainless-package-version: + - 3.8.0 + x-stainless-read-timeout: + - '600' + x-stainless-retry-count: + - '0' + x-stainless-runtime: + - CPython + x-stainless-runtime-version: + - 3.14.6 + method: POST + uri: https://api.openai.com/v1/responses + response: + body: + string: 'event: response.created + + data: {"type":"response.created","response":{"id":"resp_0722af8ae352ad3f006aa07565001c87d2888d98129ba16907","object":"response","created_at":1788900709,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} + + + event: response.in_progress + + data: {"type":"response.in_progress","response":{"id":"resp_0722af8ae352ad3f006aa07565001c87d2888d98129ba16907","object":"response","created_at":1788900709,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} + + + event: response.output_item.added + + data: {"type":"response.output_item.added","item":{"id":"mcpl_0722af8ae352ad3f006aa075650f5c87d281625e0859213571","type":"mcp_list_tools","server_label":"deepwiki","tools":[]},"output_index":0,"sequence_number":2} + + + event: response.mcp_list_tools.in_progress + + data: {"type":"response.mcp_list_tools.in_progress","item_id":"mcpl_0722af8ae352ad3f006aa075650f5c87d281625e0859213571","output_index":0,"sequence_number":3} + + + event: response.mcp_list_tools.completed + + data: {"type":"response.mcp_list_tools.completed","item_id":"mcpl_0722af8ae352ad3f006aa075650f5c87d281625e0859213571","output_index":0,"sequence_number":4} + + + event: response.output_item.done + + data: {"type":"response.output_item.done","item":{"id":"mcpl_0722af8ae352ad3f006aa075650f5c87d281625e0859213571","type":"mcp_list_tools","server_label":"deepwiki","tools":[{"annotations":{"read_only":false},"description":"Get + a list of documentation topics for a GitHub repository.","input_schema":{"properties":{"repoName":{"description":"GitHub + repository in owner/repo format (e.g. \"facebook/react\").","type":"string"}},"required":["repoName"],"type":"object"},"name":"read_wiki_structure"}]},"output_index":0,"sequence_number":5} + + + event: response.output_item.added + + data: {"type":"response.output_item.added","item":{"id":"mcp_0722af8ae352ad3f006aa07566af5087d29a17d1d98a5cc114","type":"mcp_call","status":"in_progress","approval_request_id":null,"arguments":"","error":null,"name":"read_wiki_structure","output":null,"server_label":"deepwiki"},"output_index":1,"sequence_number":6} + + + event: response.mcp_call.in_progress + + data: {"type":"response.mcp_call.in_progress","item_id":"mcp_0722af8ae352ad3f006aa07566af5087d29a17d1d98a5cc114","output_index":1,"sequence_number":7} + + + event: response.mcp_call_arguments.delta + + data: {"type":"response.mcp_call_arguments.delta","delta":"{\"repoName\":\"openai/openai-python\"}","item_id":"mcp_0722af8ae352ad3f006aa07566af5087d29a17d1d98a5cc114","obfuscation":"OLtmRMvib4igT","output_index":1,"sequence_number":8} + + + event: response.mcp_call_arguments.done + + data: {"type":"response.mcp_call_arguments.done","arguments":"{\"repoName\":\"openai/openai-python\"}","item_id":"mcp_0722af8ae352ad3f006aa07566af5087d29a17d1d98a5cc114","output_index":1,"sequence_number":9} + + + event: response.mcp_call.completed + + data: {"type":"response.mcp_call.completed","item_id":"mcp_0722af8ae352ad3f006aa07566af5087d29a17d1d98a5cc114","output_index":1,"sequence_number":10} + + + event: response.output_item.done + + data: {"type":"response.output_item.done","item":{"id":"mcp_0722af8ae352ad3f006aa07566af5087d29a17d1d98a5cc114","type":"mcp_call","status":"completed","approval_request_id":null,"arguments":"{\"repoName\":\"openai/openai-python\"}","error":null,"name":"read_wiki_structure","output":"Available + pages for openai/openai-python:\n\n- 1 Overview\n - 1.1 Architecture Overview\n - + 1.2 Project Configuration and Dependencies\n- 2 Installation and Setup\n - + 2.1 Client Configuration\n - 2.2 Azure OpenAI Configuration\n - 2.3 Module-Level + API Usage\n- 3 Core Client Classes\n - 3.1 OpenAI and AsyncOpenAI Clients\n - + 3.2 HTTP Client Foundation\n - 3.3 Request and Response Processing\n - 3.4 + Error Handling and Retry Logic\n - 3.5 Pagination\n - 3.6 Response Wrappers\n - + 3.7 Authentication and Workload Identity\n- 4 API Resources and Endpoints\n - + 4.1 Chat Completions API\n - 4.1.1 Parameters and Configuration\n - + 4.1.2 Streaming Chat Completions\n - 4.1.3 Parsed Responses and Structured + Outputs\n - 4.2 Responses API\n - 4.2.1 Multi-Modal Inputs and Tool Integration\n - + 4.2.2 Conversation and State Management\n - 4.3 Assistants API (Beta)\n - + 4.3.1 Assistants and Configuration\n - 4.3.2 Threads and Messages\n - + 4.3.3 Runs and Execution\n - 4.3.4 Streaming Assistant Events\n - 4.4 + Fine-Tuning API\n - 4.5 Embeddings and Vector Stores\n - 4.6 File Management + and Uploads\n - 4.7 Audio, Images, and Video APIs\n - 4.8 Additional API + Resources\n - 4.9 Realtime API (Beta)\n- 5 Data Types and Type System\n - + 5.1 Type System Overview\n - 5.2 Request Parameter Types\n - 5.3 Response + Types and Models\n - 5.4 Pydantic Models and BaseModel\n - 5.5 Special Types + and Sentinels\n- 6 Data Transformation and Validation\n - 6.1 Data Transformation + Pipeline\n - 6.2 PropertyInfo and Field Metadata\n - 6.3 Type Coercion and + Construction\n - 6.4 Pydantic Compatibility Layer\n - 6.5 File Extraction + and Processing\n- 7 Advanced Features\n - 7.1 Tool Calling and Integration\n - + 7.2 Streaming and Event Handling\n - 7.3 Webhook Verification\n - 7.4 Custom + HTTP Clients and Proxies\n- 8 Development and Contribution\n - 8.1 Development + Environment Setup\n - 8.2 Testing Framework and Practices\n - 8.3 Code Quality + and Type Checking\n - 8.4 CI/CD Pipeline and Release Process\n- 9 Glossary","server_label":"deepwiki"},"output_index":1,"sequence_number":11} + + + event: response.output_item.added + + data: {"type":"response.output_item.added","item":{"id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":2,"sequence_number":12} + + + event: response.content_part.added + + data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","output_index":2,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":13} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"The","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"bccLHUvmQVryI","output_index":2,"sequence_number":14} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" top","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"Hu8qj7WHeXaX","output_index":2,"sequence_number":15} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"-level","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"MlcL8fehsr","output_index":2,"sequence_number":16} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" documentation","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"av","output_index":2,"sequence_number":17} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" topics","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"vB3kmvQtc","output_index":2,"sequence_number":18} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" for","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"xt7k6riLWBAz","output_index":2,"sequence_number":19} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"RHZeqeGHDS63","output_index":2,"sequence_number":20} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" repository","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"gF4bD","output_index":2,"sequence_number":21} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" open","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"OAMctE4M5Pk","output_index":2,"sequence_number":22} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"ai","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"xX16Sx1XPfYn0a","output_index":2,"sequence_number":23} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"/open","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"2vP0GIPsYBc","output_index":2,"sequence_number":24} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"ai","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"TItGiTqGXbPVk1","output_index":2,"sequence_number":25} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"-python","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"zlsCUJFjK","output_index":2,"sequence_number":26} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" are","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"4PtmI26nd7tr","output_index":2,"sequence_number":27} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":":\n\n","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"sNbydcIGIZ30Q","output_index":2,"sequence_number":28} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"1","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"SHuzUi3G6LSRiVX","output_index":2,"sequence_number":29} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"viUVcdO67peQZyg","output_index":2,"sequence_number":30} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Overview","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"AJauXRQ","output_index":2,"sequence_number":31} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"5UldlOYs77EYKzN","output_index":2,"sequence_number":32} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"2","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"X2jo92GRZiNMQZF","output_index":2,"sequence_number":33} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"vObLmTnPyZkpdME","output_index":2,"sequence_number":34} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Installation","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"W4e","output_index":2,"sequence_number":35} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"DRCemiwwZzsX","output_index":2,"sequence_number":36} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Setup","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"WtAYw4XzTU","output_index":2,"sequence_number":37} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"r1K5LPbTSD3gyz0","output_index":2,"sequence_number":38} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"3","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"x3RHB18y5HWRfwr","output_index":2,"sequence_number":39} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"UZj34SRiA6IKTKv","output_index":2,"sequence_number":40} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Core","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"Ti4xrTRl7Ix","output_index":2,"sequence_number":41} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Client","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"RMfPicGhq","output_index":2,"sequence_number":42} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Classes","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"QE8uWAC2","output_index":2,"sequence_number":43} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"f3d66VA2FJhtrdC","output_index":2,"sequence_number":44} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"4","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"h8vgXmmB5MpRBqR","output_index":2,"sequence_number":45} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"SDDUp5bbdkXYrrw","output_index":2,"sequence_number":46} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" API","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"tRBjawlVpFYS","output_index":2,"sequence_number":47} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Resources","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"GjLhUJ","output_index":2,"sequence_number":48} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"HsMZTGzAH4LQ","output_index":2,"sequence_number":49} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" End","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"oMghFqp8xVEF","output_index":2,"sequence_number":50} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"points","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"kynqezBD3Y","output_index":2,"sequence_number":51} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"Y4z3801JLibml9v","output_index":2,"sequence_number":52} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"5","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"VnAVpNZcyplyOw7","output_index":2,"sequence_number":53} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"C46HuNbgFdMeLj4","output_index":2,"sequence_number":54} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Data","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"CuYUocJPUY1","output_index":2,"sequence_number":55} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Types","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"SpFuYE6uRJ","output_index":2,"sequence_number":56} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"WU18a5jQoUyS","output_index":2,"sequence_number":57} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Type","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"VDT5dWLdueg","output_index":2,"sequence_number":58} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" System","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"ZjJc7YGX3","output_index":2,"sequence_number":59} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"ur5CPG9CsZFZGvR","output_index":2,"sequence_number":60} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"6","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"BAo33gjhPPrsQhx","output_index":2,"sequence_number":61} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"Dsoizy6ZD2KF9ll","output_index":2,"sequence_number":62} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Data","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"PWMigENfrae","output_index":2,"sequence_number":63} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Transformation","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"G","output_index":2,"sequence_number":64} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"Ua7ua85vIutj","output_index":2,"sequence_number":65} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Validation","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"o3sdV","output_index":2,"sequence_number":66} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"lWLj5ZTqiCSjC09","output_index":2,"sequence_number":67} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"7","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"qjnZ8LzPtqxAxfF","output_index":2,"sequence_number":68} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"xknaoyS8lbU2AVf","output_index":2,"sequence_number":69} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Advanced","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"yC5WT95","output_index":2,"sequence_number":70} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Features","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"VCRk00c","output_index":2,"sequence_number":71} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"jWB5tBOKypFxhlq","output_index":2,"sequence_number":72} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"8","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"THu2nJxY50RzPbX","output_index":2,"sequence_number":73} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"ClFCy4gTflvPYFT","output_index":2,"sequence_number":74} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Development","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"ot0M","output_index":2,"sequence_number":75} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"0DKWJggFU8sc","output_index":2,"sequence_number":76} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Contribution","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"0r9","output_index":2,"sequence_number":77} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"QPTV0LCKcaJ97Pa","output_index":2,"sequence_number":78} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"9","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"v2Ajxau4fYXYEs4","output_index":2,"sequence_number":79} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"NE1kRhAe0RXRLVx","output_index":2,"sequence_number":80} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":" Gloss","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"jYsKcgmHwd","output_index":2,"sequence_number":81} + + + event: response.output_text.delta + + data: {"type":"response.output_text.delta","content_index":0,"delta":"ary","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"RCTpH0AKgcmzm","output_index":2,"sequence_number":82} + + + event: response.output_text.done + + data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"output_index":2,"sequence_number":83,"text":"The + top-level documentation topics for the repository openai/openai-python are:\n\n1. + Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources + and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. + Advanced Features\n8. Development and Contribution\n9. Glossary"} + + + event: response.content_part.done + + data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","output_index":2,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"The + top-level documentation topics for the repository openai/openai-python are:\n\n1. + Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources + and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. + Advanced Features\n8. Development and Contribution\n9. Glossary"},"sequence_number":84} + + + event: response.output_item.done + + data: {"type":"response.output_item.done","item":{"id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The + top-level documentation topics for the repository openai/openai-python are:\n\n1. + Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources + and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. + Advanced Features\n8. Development and Contribution\n9. Glossary"}],"role":"assistant"},"output_index":2,"sequence_number":85} + + + event: response.completed + + data: {"type":"response.completed","response":{"id":"resp_0722af8ae352ad3f006aa07565001c87d2888d98129ba16907","object":"response","created_at":1788900709,"status":"completed","background":false,"completed_at":1788900712,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[{"id":"mcpl_0722af8ae352ad3f006aa075650f5c87d281625e0859213571","type":"mcp_list_tools","server_label":"deepwiki","tools":[{"annotations":{"read_only":false},"description":"Get + a list of documentation topics for a GitHub repository.","input_schema":{"properties":{"repoName":{"description":"GitHub + repository in owner/repo format (e.g. \"facebook/react\").","type":"string"}},"required":["repoName"],"type":"object"},"name":"read_wiki_structure"}]},{"id":"mcp_0722af8ae352ad3f006aa07566af5087d29a17d1d98a5cc114","type":"mcp_call","status":"completed","approval_request_id":null,"arguments":"{\"repoName\":\"openai/openai-python\"}","error":null,"name":"read_wiki_structure","output":"Available + pages for openai/openai-python:\n\n- 1 Overview\n - 1.1 Architecture Overview\n - + 1.2 Project Configuration and Dependencies\n- 2 Installation and Setup\n - + 2.1 Client Configuration\n - 2.2 Azure OpenAI Configuration\n - 2.3 Module-Level + API Usage\n- 3 Core Client Classes\n - 3.1 OpenAI and AsyncOpenAI Clients\n - + 3.2 HTTP Client Foundation\n - 3.3 Request and Response Processing\n - 3.4 + Error Handling and Retry Logic\n - 3.5 Pagination\n - 3.6 Response Wrappers\n - + 3.7 Authentication and Workload Identity\n- 4 API Resources and Endpoints\n - + 4.1 Chat Completions API\n - 4.1.1 Parameters and Configuration\n - + 4.1.2 Streaming Chat Completions\n - 4.1.3 Parsed Responses and Structured + Outputs\n - 4.2 Responses API\n - 4.2.1 Multi-Modal Inputs and Tool Integration\n - + 4.2.2 Conversation and State Management\n - 4.3 Assistants API (Beta)\n - + 4.3.1 Assistants and Configuration\n - 4.3.2 Threads and Messages\n - + 4.3.3 Runs and Execution\n - 4.3.4 Streaming Assistant Events\n - 4.4 + Fine-Tuning API\n - 4.5 Embeddings and Vector Stores\n - 4.6 File Management + and Uploads\n - 4.7 Audio, Images, and Video APIs\n - 4.8 Additional API + Resources\n - 4.9 Realtime API (Beta)\n- 5 Data Types and Type System\n - + 5.1 Type System Overview\n - 5.2 Request Parameter Types\n - 5.3 Response + Types and Models\n - 5.4 Pydantic Models and BaseModel\n - 5.5 Special Types + and Sentinels\n- 6 Data Transformation and Validation\n - 6.1 Data Transformation + Pipeline\n - 6.2 PropertyInfo and Field Metadata\n - 6.3 Type Coercion and + Construction\n - 6.4 Pydantic Compatibility Layer\n - 6.5 File Extraction + and Processing\n- 7 Advanced Features\n - 7.1 Tool Calling and Integration\n - + 7.2 Streaming and Event Handling\n - 7.3 Webhook Verification\n - 7.4 Custom + HTTP Clients and Proxies\n- 8 Development and Contribution\n - 8.1 Development + Environment Setup\n - 8.2 Testing Framework and Practices\n - 8.3 Code Quality + and Type Checking\n - 8.4 CI/CD Pipeline and Release Process\n- 9 Glossary","server_label":"deepwiki"},{"id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The + top-level documentation topics for the repository openai/openai-python are:\n\n1. + Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources + and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. + Advanced Features\n8. Development and Contribution\n9. Glossary"}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":761,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":96,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":857},"user":null,"metadata":{}},"sequence_number":86} + + + ' + headers: + access-control-expose-headers: + - X-Request-ID + - CF-Ray + - CF-Ray + alt-svc: + - h3=":443"; ma=86400 + cf-cache-status: + - DYNAMIC + cf-ray: + - a380d556a8bcac5e-YYZ + connection: + - keep-alive + content-type: + - text/event-stream; charset=utf-8 + date: + - Tue, 08 Sep 2026 20:51:49 GMT + openai-processing-ms: + - '586' + openai-version: + - '2020-10-01' + server: + - cloudflare + strict-transport-security: + - max-age=31536000; includeSubDomains; preload + transfer-encoding: + - chunked + x-content-type-options: + - nosniff + x-request-id: + - req_cf9a14552b2849fabb25ae552af9dd6b + status: + code: 200 + message: OK +version: 1 diff --git a/py/src/braintrust/integrations/openai/test_openai.py b/py/src/braintrust/integrations/openai/test_openai.py index 87530ff3..f8ab837a 100644 --- a/py/src/braintrust/integrations/openai/test_openai.py +++ b/py/src/braintrust/integrations/openai/test_openai.py @@ -3,6 +3,7 @@ import inspect import os import struct +import sys import tempfile import time import zlib @@ -1441,6 +1442,61 @@ async def test_openai_response_streaming_async(memory_logger): assert "24" in str(span["output"]) +@pytest.mark.asyncio +@pytest.mark.vcr +@pytest.mark.parametrize("use_async", [False, True]) +@pytest.mark.skipif( + sys.version_info >= (3, 14) and Version(openai.__version__) == Version("1.92.0"), + reason="OpenAI 1.92.0 MCP parsing tries to set __discriminator__ on an immutable Python 3.14 Union", +) +async def test_openai_responses_stream_mcp_list_tools(memory_logger, use_async): + """Hosted MCP list-tools items have no status and must not break tracing.""" + try: + from openai.types.responses.response_output_item import McpListTools + + del McpListTools + except ImportError: + pytest.skip("MCP tools are not available in this OpenAI SDK version") + + client = wrap_openai(openai.AsyncOpenAI() if use_async else openai.OpenAI()) + kwargs = { + "model": RESPONSES_TOOL_MODEL, + "input": "List the top-level documentation topics for the repository openai/openai-python.", + "tools": [ + { + "type": "mcp", + "server_label": "deepwiki", + "server_url": "https://mcp.deepwiki.com/mcp", + "allowed_tools": ["read_wiki_structure"], + "require_approval": "never", + } + ], + "stream": True, + } + if use_async: + async with client: + stream = await client.responses.create(**kwargs) + async with stream: + events = [event async for event in stream] + else: + with client: + with client.responses.create(**kwargs) as stream: + events = list(stream) + + list_tools = [ + event.item + for event in events + if event.type == "response.output_item.done" and event.item.type == "mcp_list_tools" + ] + assert list_tools + assert not hasattr(list_tools[0], "status") + completed = next(event.response for event in events if event.type == "response.completed") + spans = memory_logger.pop() + span = _find_span_by_name(spans, "openai.responses.create") + assert "error" not in span + assert span["output"] == [item.model_dump(exclude_none=True) for item in completed.output] + + @pytest.mark.vcr def test_openai_responses_stream_helper(memory_logger): """responses.stream() should preserve the helper interface and emit a tracing span.""" diff --git a/py/src/braintrust/integrations/openai/tracing.py b/py/src/braintrust/integrations/openai/tracing.py index 780c589c..faa1d4fc 100644 --- a/py/src/braintrust/integrations/openai/tracing.py +++ b/py/src/braintrust/integrations/openai/tracing.py @@ -1361,7 +1361,9 @@ def _postprocess_streaming_results(cls, all_results: list[Any]) -> dict[str, Any current_output = output[output_index] if result.type == "response.output_item.done": - current_output["status"] = result.item.status + status = getattr(result.item, "status", None) + if status is not None: + current_output["status"] = status continue if result.type == "response.output_item.delta": From 8b4e810b47dea58fefb4306aa100e97ec096b74f Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Tue, 8 Sep 2026 19:24:24 -0400 Subject: [PATCH 2/2] less complicated --- ...esponses_stream_mcp_list_tools[False].yaml | 583 ------------------ ...responses_stream_mcp_list_tools[True].yaml | 583 ------------------ .../test_openai_response_streaming_async.yaml | 148 +++-- ...esponses_stream_mcp_list_tools[False].yaml | 583 ------------------ ...responses_stream_mcp_list_tools[True].yaml | 583 ------------------ .../integrations/openai/test_openai.py | 80 +-- 6 files changed, 122 insertions(+), 2438 deletions(-) delete mode 100644 py/src/braintrust/integrations/openai/cassettes/1.92.0/test_openai_responses_stream_mcp_list_tools[False].yaml delete mode 100644 py/src/braintrust/integrations/openai/cassettes/1.92.0/test_openai_responses_stream_mcp_list_tools[True].yaml delete mode 100644 py/src/braintrust/integrations/openai/cassettes/latest/test_openai_responses_stream_mcp_list_tools[False].yaml delete mode 100644 py/src/braintrust/integrations/openai/cassettes/latest/test_openai_responses_stream_mcp_list_tools[True].yaml diff --git a/py/src/braintrust/integrations/openai/cassettes/1.92.0/test_openai_responses_stream_mcp_list_tools[False].yaml b/py/src/braintrust/integrations/openai/cassettes/1.92.0/test_openai_responses_stream_mcp_list_tools[False].yaml deleted file mode 100644 index 2e0eb2a4..00000000 --- a/py/src/braintrust/integrations/openai/cassettes/1.92.0/test_openai_responses_stream_mcp_list_tools[False].yaml +++ /dev/null @@ -1,583 +0,0 @@ -interactions: -- request: - body: '{"input":"List the top-level documentation topics for the repository openai/openai-python.","model":"gpt-4.1-mini","stream":true,"tools":[{"type":"mcp","server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp","allowed_tools":["read_wiki_structure"],"require_approval":"never"}]}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '291' - content-type: - - application/json - host: - - api.openai.com - user-agent: - - OpenAI/Python 1.92.0 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.92.0 - x-stainless-read-timeout: - - '600' - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.14.6 - method: POST - uri: https://api.openai.com/v1/responses - response: - body: - string: 'event: response.created - - data: {"type":"response.created","response":{"id":"resp_00975c939b774ec9006aa07594b7f487d2a480bc1a12072b91","object":"response","created_at":1788900756,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} - - - event: response.in_progress - - data: {"type":"response.in_progress","response":{"id":"resp_00975c939b774ec9006aa07594b7f487d2a480bc1a12072b91","object":"response","created_at":1788900756,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} - - - event: response.output_item.added - - data: {"type":"response.output_item.added","item":{"id":"mcpl_00975c939b774ec9006aa07594f69087d2aa7a5d61ca16d0ba","type":"mcp_list_tools","server_label":"deepwiki","tools":[]},"output_index":0,"sequence_number":2} - - - event: response.mcp_list_tools.in_progress - - data: {"type":"response.mcp_list_tools.in_progress","item_id":"mcpl_00975c939b774ec9006aa07594f69087d2aa7a5d61ca16d0ba","output_index":0,"sequence_number":3} - - - event: response.mcp_list_tools.completed - - data: {"type":"response.mcp_list_tools.completed","item_id":"mcpl_00975c939b774ec9006aa07594f69087d2aa7a5d61ca16d0ba","output_index":0,"sequence_number":4} - - - event: response.output_item.done - - data: {"type":"response.output_item.done","item":{"id":"mcpl_00975c939b774ec9006aa07594f69087d2aa7a5d61ca16d0ba","type":"mcp_list_tools","server_label":"deepwiki","tools":[{"annotations":{"read_only":false},"description":"Get - a list of documentation topics for a GitHub repository.","input_schema":{"properties":{"repoName":{"description":"GitHub - repository in owner/repo format (e.g. \"facebook/react\").","type":"string"}},"required":["repoName"],"type":"object"},"name":"read_wiki_structure"}]},"output_index":0,"sequence_number":5} - - - event: response.output_item.added - - data: {"type":"response.output_item.added","item":{"id":"mcp_00975c939b774ec9006aa07596868887d29583f3c91d8c3495","type":"mcp_call","status":"in_progress","approval_request_id":null,"arguments":"","error":null,"name":"read_wiki_structure","output":null,"server_label":"deepwiki"},"output_index":1,"sequence_number":6} - - - event: response.mcp_call.in_progress - - data: {"type":"response.mcp_call.in_progress","item_id":"mcp_00975c939b774ec9006aa07596868887d29583f3c91d8c3495","output_index":1,"sequence_number":7} - - - event: response.mcp_call_arguments.delta - - data: {"type":"response.mcp_call_arguments.delta","delta":"{\"repoName\":\"openai/openai-python\"}","item_id":"mcp_00975c939b774ec9006aa07596868887d29583f3c91d8c3495","obfuscation":"CN6LpvW1ORJZr","output_index":1,"sequence_number":8} - - - event: response.mcp_call_arguments.done - - data: {"type":"response.mcp_call_arguments.done","arguments":"{\"repoName\":\"openai/openai-python\"}","item_id":"mcp_00975c939b774ec9006aa07596868887d29583f3c91d8c3495","output_index":1,"sequence_number":9} - - - event: response.mcp_call.completed - - data: {"type":"response.mcp_call.completed","item_id":"mcp_00975c939b774ec9006aa07596868887d29583f3c91d8c3495","output_index":1,"sequence_number":10} - - - event: response.output_item.done - - data: {"type":"response.output_item.done","item":{"id":"mcp_00975c939b774ec9006aa07596868887d29583f3c91d8c3495","type":"mcp_call","status":"completed","approval_request_id":null,"arguments":"{\"repoName\":\"openai/openai-python\"}","error":null,"name":"read_wiki_structure","output":"Available - pages for openai/openai-python:\n\n- 1 Overview\n - 1.1 Architecture Overview\n - - 1.2 Project Configuration and Dependencies\n- 2 Installation and Setup\n - - 2.1 Client Configuration\n - 2.2 Azure OpenAI Configuration\n - 2.3 Module-Level - API Usage\n- 3 Core Client Classes\n - 3.1 OpenAI and AsyncOpenAI Clients\n - - 3.2 HTTP Client Foundation\n - 3.3 Request and Response Processing\n - 3.4 - Error Handling and Retry Logic\n - 3.5 Pagination\n - 3.6 Response Wrappers\n - - 3.7 Authentication and Workload Identity\n- 4 API Resources and Endpoints\n - - 4.1 Chat Completions API\n - 4.1.1 Parameters and Configuration\n - - 4.1.2 Streaming Chat Completions\n - 4.1.3 Parsed Responses and Structured - Outputs\n - 4.2 Responses API\n - 4.2.1 Multi-Modal Inputs and Tool Integration\n - - 4.2.2 Conversation and State Management\n - 4.3 Assistants API (Beta)\n - - 4.3.1 Assistants and Configuration\n - 4.3.2 Threads and Messages\n - - 4.3.3 Runs and Execution\n - 4.3.4 Streaming Assistant Events\n - 4.4 - Fine-Tuning API\n - 4.5 Embeddings and Vector Stores\n - 4.6 File Management - and Uploads\n - 4.7 Audio, Images, and Video APIs\n - 4.8 Additional API - Resources\n - 4.9 Realtime API (Beta)\n- 5 Data Types and Type System\n - - 5.1 Type System Overview\n - 5.2 Request Parameter Types\n - 5.3 Response - Types and Models\n - 5.4 Pydantic Models and BaseModel\n - 5.5 Special Types - and Sentinels\n- 6 Data Transformation and Validation\n - 6.1 Data Transformation - Pipeline\n - 6.2 PropertyInfo and Field Metadata\n - 6.3 Type Coercion and - Construction\n - 6.4 Pydantic Compatibility Layer\n - 6.5 File Extraction - and Processing\n- 7 Advanced Features\n - 7.1 Tool Calling and Integration\n - - 7.2 Streaming and Event Handling\n - 7.3 Webhook Verification\n - 7.4 Custom - HTTP Clients and Proxies\n- 8 Development and Contribution\n - 8.1 Development - Environment Setup\n - 8.2 Testing Framework and Practices\n - 8.3 Code Quality - and Type Checking\n - 8.4 CI/CD Pipeline and Release Process\n- 9 Glossary","server_label":"deepwiki"},"output_index":1,"sequence_number":11} - - - event: response.output_item.added - - data: {"type":"response.output_item.added","item":{"id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":2,"sequence_number":12} - - - event: response.content_part.added - - data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","output_index":2,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":13} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"The","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"vPkksF8OrhPGS","output_index":2,"sequence_number":14} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" top","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"wnw8j5kzN0D1","output_index":2,"sequence_number":15} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"-level","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"Jb3hWoxdDM","output_index":2,"sequence_number":16} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" documentation","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"3a","output_index":2,"sequence_number":17} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" topics","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"1SdAOLmnt","output_index":2,"sequence_number":18} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" for","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"S478I38uUhGe","output_index":2,"sequence_number":19} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"mu2dgCROF2OK","output_index":2,"sequence_number":20} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" repository","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"BzCli","output_index":2,"sequence_number":21} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" open","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"k43K9nixVQd","output_index":2,"sequence_number":22} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"ai","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"MIjkSwiDGJjTCy","output_index":2,"sequence_number":23} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"/open","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"DpHyPeqRpIR","output_index":2,"sequence_number":24} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"ai","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"iliZBFLJt9eA1i","output_index":2,"sequence_number":25} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"-python","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"afvHXrgqX","output_index":2,"sequence_number":26} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" are","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"pXoPVBjtOpuQ","output_index":2,"sequence_number":27} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":":\n\n","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"TEOKux1zvGXdq","output_index":2,"sequence_number":28} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"1","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"pfrFE9yGoaxd7vG","output_index":2,"sequence_number":29} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"gwspD4YXogrIbhN","output_index":2,"sequence_number":30} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Overview","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"8RxHPnB","output_index":2,"sequence_number":31} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"wNX5uvOLizzRqmf","output_index":2,"sequence_number":32} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"2","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"VbPMIKjAGdvJ0lm","output_index":2,"sequence_number":33} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"Yt8GXdpNe9EhDw6","output_index":2,"sequence_number":34} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Installation","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"1lm","output_index":2,"sequence_number":35} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"r8Ce1ZLGSDkb","output_index":2,"sequence_number":36} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Setup","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"jSjpPtptgJ","output_index":2,"sequence_number":37} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"nFdXmIDP01od48K","output_index":2,"sequence_number":38} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"3","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"J63q6iwLOiWYQA4","output_index":2,"sequence_number":39} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"kFpWgYmKubM4YwN","output_index":2,"sequence_number":40} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Core","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"51uin6z55d7","output_index":2,"sequence_number":41} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Client","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"DRVqUyaqQ","output_index":2,"sequence_number":42} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Classes","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"nvtfzNW3","output_index":2,"sequence_number":43} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"QiZKJmby6LXW8bh","output_index":2,"sequence_number":44} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"4","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"ql6PUbogk0FRlR0","output_index":2,"sequence_number":45} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"ZKc5TzskdDeOjLz","output_index":2,"sequence_number":46} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" API","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"ZNiuqqDAiBHh","output_index":2,"sequence_number":47} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Resources","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"M4Tjrn","output_index":2,"sequence_number":48} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"bMNxsI1vROFf","output_index":2,"sequence_number":49} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" End","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"zaWlcoVRyHgI","output_index":2,"sequence_number":50} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"points","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"gFegwWyRra","output_index":2,"sequence_number":51} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"XXWmewLMEihtsgX","output_index":2,"sequence_number":52} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"5","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"oWLTRFACNiJ1cPm","output_index":2,"sequence_number":53} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"rPvBebZdq42qdwN","output_index":2,"sequence_number":54} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Data","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"Z7FpkVBqNWZ","output_index":2,"sequence_number":55} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Types","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"QANuCYKgew","output_index":2,"sequence_number":56} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"K4MprZzpwh8R","output_index":2,"sequence_number":57} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Type","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"YUQvAnnmHeF","output_index":2,"sequence_number":58} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" System","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"x85BwmC9A","output_index":2,"sequence_number":59} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"fXQKa6Rg5aSDDlG","output_index":2,"sequence_number":60} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"6","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"p4h0LqFJsm65gcB","output_index":2,"sequence_number":61} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"UskFmkUEnjoHA8U","output_index":2,"sequence_number":62} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Data","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"9ZrOH1NeeJz","output_index":2,"sequence_number":63} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Transformation","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"k","output_index":2,"sequence_number":64} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"XkE3EUtbEXtT","output_index":2,"sequence_number":65} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Validation","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"ch9GG","output_index":2,"sequence_number":66} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"wWqcTtdmKPc1Uhb","output_index":2,"sequence_number":67} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"7","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"w2Si0qGJCk2r9aO","output_index":2,"sequence_number":68} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"hp9cNU0Sqg48YnL","output_index":2,"sequence_number":69} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Advanced","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"cxOtBzp","output_index":2,"sequence_number":70} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Features","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"8aDbxri","output_index":2,"sequence_number":71} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"3VBk43Viw4zTBSr","output_index":2,"sequence_number":72} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"8","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"gaRqPfRsbKmRPcZ","output_index":2,"sequence_number":73} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"gya2bZDaTGqdvQX","output_index":2,"sequence_number":74} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Development","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"Yv3C","output_index":2,"sequence_number":75} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"N3hqF8bjfDtr","output_index":2,"sequence_number":76} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Contribution","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"XFn","output_index":2,"sequence_number":77} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"qrBy60xTkvLJWvl","output_index":2,"sequence_number":78} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"9","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"jTFzAaAFLlwhr0g","output_index":2,"sequence_number":79} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"LtVFZFoSlTtBLgI","output_index":2,"sequence_number":80} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Gloss","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"WSisarGutc","output_index":2,"sequence_number":81} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"ary","item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"obfuscation":"0AucbWTZqRmqW","output_index":2,"sequence_number":82} - - - event: response.output_text.done - - data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","logprobs":[],"output_index":2,"sequence_number":83,"text":"The - top-level documentation topics for the repository openai/openai-python are:\n\n1. - Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources - and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. - Advanced Features\n8. Development and Contribution\n9. Glossary"} - - - event: response.content_part.done - - data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","output_index":2,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"The - top-level documentation topics for the repository openai/openai-python are:\n\n1. - Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources - and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. - Advanced Features\n8. Development and Contribution\n9. Glossary"},"sequence_number":84} - - - event: response.output_item.done - - data: {"type":"response.output_item.done","item":{"id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The - top-level documentation topics for the repository openai/openai-python are:\n\n1. - Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources - and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. - Advanced Features\n8. Development and Contribution\n9. Glossary"}],"role":"assistant"},"output_index":2,"sequence_number":85} - - - event: response.completed - - data: {"type":"response.completed","response":{"id":"resp_00975c939b774ec9006aa07594b7f487d2a480bc1a12072b91","object":"response","created_at":1788900756,"status":"completed","background":false,"completed_at":1788900759,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[{"id":"mcpl_00975c939b774ec9006aa07594f69087d2aa7a5d61ca16d0ba","type":"mcp_list_tools","server_label":"deepwiki","tools":[{"annotations":{"read_only":false},"description":"Get - a list of documentation topics for a GitHub repository.","input_schema":{"properties":{"repoName":{"description":"GitHub - repository in owner/repo format (e.g. \"facebook/react\").","type":"string"}},"required":["repoName"],"type":"object"},"name":"read_wiki_structure"}]},{"id":"mcp_00975c939b774ec9006aa07596868887d29583f3c91d8c3495","type":"mcp_call","status":"completed","approval_request_id":null,"arguments":"{\"repoName\":\"openai/openai-python\"}","error":null,"name":"read_wiki_structure","output":"Available - pages for openai/openai-python:\n\n- 1 Overview\n - 1.1 Architecture Overview\n - - 1.2 Project Configuration and Dependencies\n- 2 Installation and Setup\n - - 2.1 Client Configuration\n - 2.2 Azure OpenAI Configuration\n - 2.3 Module-Level - API Usage\n- 3 Core Client Classes\n - 3.1 OpenAI and AsyncOpenAI Clients\n - - 3.2 HTTP Client Foundation\n - 3.3 Request and Response Processing\n - 3.4 - Error Handling and Retry Logic\n - 3.5 Pagination\n - 3.6 Response Wrappers\n - - 3.7 Authentication and Workload Identity\n- 4 API Resources and Endpoints\n - - 4.1 Chat Completions API\n - 4.1.1 Parameters and Configuration\n - - 4.1.2 Streaming Chat Completions\n - 4.1.3 Parsed Responses and Structured - Outputs\n - 4.2 Responses API\n - 4.2.1 Multi-Modal Inputs and Tool Integration\n - - 4.2.2 Conversation and State Management\n - 4.3 Assistants API (Beta)\n - - 4.3.1 Assistants and Configuration\n - 4.3.2 Threads and Messages\n - - 4.3.3 Runs and Execution\n - 4.3.4 Streaming Assistant Events\n - 4.4 - Fine-Tuning API\n - 4.5 Embeddings and Vector Stores\n - 4.6 File Management - and Uploads\n - 4.7 Audio, Images, and Video APIs\n - 4.8 Additional API - Resources\n - 4.9 Realtime API (Beta)\n- 5 Data Types and Type System\n - - 5.1 Type System Overview\n - 5.2 Request Parameter Types\n - 5.3 Response - Types and Models\n - 5.4 Pydantic Models and BaseModel\n - 5.5 Special Types - and Sentinels\n- 6 Data Transformation and Validation\n - 6.1 Data Transformation - Pipeline\n - 6.2 PropertyInfo and Field Metadata\n - 6.3 Type Coercion and - Construction\n - 6.4 Pydantic Compatibility Layer\n - 6.5 File Extraction - and Processing\n- 7 Advanced Features\n - 7.1 Tool Calling and Integration\n - - 7.2 Streaming and Event Handling\n - 7.3 Webhook Verification\n - 7.4 Custom - HTTP Clients and Proxies\n- 8 Development and Contribution\n - 8.1 Development - Environment Setup\n - 8.2 Testing Framework and Practices\n - 8.3 Code Quality - and Type Checking\n - 8.4 CI/CD Pipeline and Release Process\n- 9 Glossary","server_label":"deepwiki"},{"id":"msg_00975c939b774ec9006aa0759755ac87d2ad471cc4df308019","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The - top-level documentation topics for the repository openai/openai-python are:\n\n1. - Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources - and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. - Advanced Features\n8. Development and Contribution\n9. Glossary"}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":761,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":96,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":857},"user":null,"metadata":{}},"sequence_number":86} - - - ' - headers: - access-control-expose-headers: - - X-Request-ID - - CF-Ray - - CF-Ray - alt-svc: - - h3=":443"; ma=86400 - cf-cache-status: - - DYNAMIC - cf-ray: - - a380d681080b3786-YYZ - connection: - - keep-alive - content-type: - - text/event-stream; charset=utf-8 - date: - - Tue, 08 Sep 2026 20:52:37 GMT - openai-processing-ms: - - '773' - openai-version: - - '2020-10-01' - server: - - cloudflare - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - transfer-encoding: - - chunked - x-content-type-options: - - nosniff - x-request-id: - - req_1e674f0be8e64b80a6577a1282de2bd2 - status: - code: 200 - message: OK -version: 1 diff --git a/py/src/braintrust/integrations/openai/cassettes/1.92.0/test_openai_responses_stream_mcp_list_tools[True].yaml b/py/src/braintrust/integrations/openai/cassettes/1.92.0/test_openai_responses_stream_mcp_list_tools[True].yaml deleted file mode 100644 index 55adfa7e..00000000 --- a/py/src/braintrust/integrations/openai/cassettes/1.92.0/test_openai_responses_stream_mcp_list_tools[True].yaml +++ /dev/null @@ -1,583 +0,0 @@ -interactions: -- request: - body: '{"input":"List the top-level documentation topics for the repository openai/openai-python.","model":"gpt-4.1-mini","stream":true,"tools":[{"type":"mcp","server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp","allowed_tools":["read_wiki_structure"],"require_approval":"never"}]}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate - connection: - - keep-alive - content-length: - - '291' - content-type: - - application/json - host: - - api.openai.com - user-agent: - - AsyncOpenAI/Python 1.92.0 - x-stainless-arch: - - arm64 - x-stainless-async: - - async:asyncio - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 1.92.0 - x-stainless-read-timeout: - - '600' - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.14.6 - method: POST - uri: https://api.openai.com/v1/responses - response: - body: - string: 'event: response.created - - data: {"type":"response.created","response":{"id":"resp_05d806bffe67ef06006aa0759fd4c887d29a85bea799cdf3a0","object":"response","created_at":1788900768,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} - - - event: response.in_progress - - data: {"type":"response.in_progress","response":{"id":"resp_05d806bffe67ef06006aa0759fd4c887d29a85bea799cdf3a0","object":"response","created_at":1788900768,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} - - - event: response.output_item.added - - data: {"type":"response.output_item.added","item":{"id":"mcpl_05d806bffe67ef06006aa075a02e6c87d2a1e5e047d1ed0667","type":"mcp_list_tools","server_label":"deepwiki","tools":[]},"output_index":0,"sequence_number":2} - - - event: response.mcp_list_tools.in_progress - - data: {"type":"response.mcp_list_tools.in_progress","item_id":"mcpl_05d806bffe67ef06006aa075a02e6c87d2a1e5e047d1ed0667","output_index":0,"sequence_number":3} - - - event: response.mcp_list_tools.completed - - data: {"type":"response.mcp_list_tools.completed","item_id":"mcpl_05d806bffe67ef06006aa075a02e6c87d2a1e5e047d1ed0667","output_index":0,"sequence_number":4} - - - event: response.output_item.done - - data: {"type":"response.output_item.done","item":{"id":"mcpl_05d806bffe67ef06006aa075a02e6c87d2a1e5e047d1ed0667","type":"mcp_list_tools","server_label":"deepwiki","tools":[{"annotations":{"read_only":false},"description":"Get - a list of documentation topics for a GitHub repository.","input_schema":{"properties":{"repoName":{"description":"GitHub - repository in owner/repo format (e.g. \"facebook/react\").","type":"string"}},"required":["repoName"],"type":"object"},"name":"read_wiki_structure"}]},"output_index":0,"sequence_number":5} - - - event: response.output_item.added - - data: {"type":"response.output_item.added","item":{"id":"mcp_05d806bffe67ef06006aa075a3034c87d2b79b145e60eb500f","type":"mcp_call","status":"in_progress","approval_request_id":null,"arguments":"","error":null,"name":"read_wiki_structure","output":null,"server_label":"deepwiki"},"output_index":1,"sequence_number":6} - - - event: response.mcp_call.in_progress - - data: {"type":"response.mcp_call.in_progress","item_id":"mcp_05d806bffe67ef06006aa075a3034c87d2b79b145e60eb500f","output_index":1,"sequence_number":7} - - - event: response.mcp_call_arguments.delta - - data: {"type":"response.mcp_call_arguments.delta","delta":"{\"repoName\":\"openai/openai-python\"}","item_id":"mcp_05d806bffe67ef06006aa075a3034c87d2b79b145e60eb500f","obfuscation":"jQPhHOViAH5W1","output_index":1,"sequence_number":8} - - - event: response.mcp_call_arguments.done - - data: {"type":"response.mcp_call_arguments.done","arguments":"{\"repoName\":\"openai/openai-python\"}","item_id":"mcp_05d806bffe67ef06006aa075a3034c87d2b79b145e60eb500f","output_index":1,"sequence_number":9} - - - event: response.mcp_call.completed - - data: {"type":"response.mcp_call.completed","item_id":"mcp_05d806bffe67ef06006aa075a3034c87d2b79b145e60eb500f","output_index":1,"sequence_number":10} - - - event: response.output_item.done - - data: {"type":"response.output_item.done","item":{"id":"mcp_05d806bffe67ef06006aa075a3034c87d2b79b145e60eb500f","type":"mcp_call","status":"completed","approval_request_id":null,"arguments":"{\"repoName\":\"openai/openai-python\"}","error":null,"name":"read_wiki_structure","output":"Available - pages for openai/openai-python:\n\n- 1 Overview\n - 1.1 Architecture Overview\n - - 1.2 Project Configuration and Dependencies\n- 2 Installation and Setup\n - - 2.1 Client Configuration\n - 2.2 Azure OpenAI Configuration\n - 2.3 Module-Level - API Usage\n- 3 Core Client Classes\n - 3.1 OpenAI and AsyncOpenAI Clients\n - - 3.2 HTTP Client Foundation\n - 3.3 Request and Response Processing\n - 3.4 - Error Handling and Retry Logic\n - 3.5 Pagination\n - 3.6 Response Wrappers\n - - 3.7 Authentication and Workload Identity\n- 4 API Resources and Endpoints\n - - 4.1 Chat Completions API\n - 4.1.1 Parameters and Configuration\n - - 4.1.2 Streaming Chat Completions\n - 4.1.3 Parsed Responses and Structured - Outputs\n - 4.2 Responses API\n - 4.2.1 Multi-Modal Inputs and Tool Integration\n - - 4.2.2 Conversation and State Management\n - 4.3 Assistants API (Beta)\n - - 4.3.1 Assistants and Configuration\n - 4.3.2 Threads and Messages\n - - 4.3.3 Runs and Execution\n - 4.3.4 Streaming Assistant Events\n - 4.4 - Fine-Tuning API\n - 4.5 Embeddings and Vector Stores\n - 4.6 File Management - and Uploads\n - 4.7 Audio, Images, and Video APIs\n - 4.8 Additional API - Resources\n - 4.9 Realtime API (Beta)\n- 5 Data Types and Type System\n - - 5.1 Type System Overview\n - 5.2 Request Parameter Types\n - 5.3 Response - Types and Models\n - 5.4 Pydantic Models and BaseModel\n - 5.5 Special Types - and Sentinels\n- 6 Data Transformation and Validation\n - 6.1 Data Transformation - Pipeline\n - 6.2 PropertyInfo and Field Metadata\n - 6.3 Type Coercion and - Construction\n - 6.4 Pydantic Compatibility Layer\n - 6.5 File Extraction - and Processing\n- 7 Advanced Features\n - 7.1 Tool Calling and Integration\n - - 7.2 Streaming and Event Handling\n - 7.3 Webhook Verification\n - 7.4 Custom - HTTP Clients and Proxies\n- 8 Development and Contribution\n - 8.1 Development - Environment Setup\n - 8.2 Testing Framework and Practices\n - 8.3 Code Quality - and Type Checking\n - 8.4 CI/CD Pipeline and Release Process\n- 9 Glossary","server_label":"deepwiki"},"output_index":1,"sequence_number":11} - - - event: response.output_item.added - - data: {"type":"response.output_item.added","item":{"id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":2,"sequence_number":12} - - - event: response.content_part.added - - data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","output_index":2,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":13} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"The","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"wrShfvOZcgVxK","output_index":2,"sequence_number":14} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" top","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"rJR7IiDC4Qed","output_index":2,"sequence_number":15} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"-level","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"9pvBPrGP0f","output_index":2,"sequence_number":16} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" documentation","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"Bv","output_index":2,"sequence_number":17} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" topics","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"ofmM9jBei","output_index":2,"sequence_number":18} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" for","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"QfMtENXZZAJT","output_index":2,"sequence_number":19} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"YnRXKTn23zk1","output_index":2,"sequence_number":20} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" repository","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"iVBG4","output_index":2,"sequence_number":21} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" open","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"lQ6HhS9WZIa","output_index":2,"sequence_number":22} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"ai","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"OMfQNHMLcc4UFO","output_index":2,"sequence_number":23} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"/open","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"VI7vpoMBpYW","output_index":2,"sequence_number":24} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"ai","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"qp46QXntF2xPzU","output_index":2,"sequence_number":25} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"-python","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"ga5lEgR0H","output_index":2,"sequence_number":26} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" are","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"E5agVYT4WEu6","output_index":2,"sequence_number":27} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":":\n\n","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"EMDK6knnYfEV7","output_index":2,"sequence_number":28} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"1","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"cdN3FEBolF9Gslv","output_index":2,"sequence_number":29} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"s4FE7emdmDtnUr4","output_index":2,"sequence_number":30} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Overview","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"mhfJ7He","output_index":2,"sequence_number":31} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"F8Kk9CIl1Zxbmjx","output_index":2,"sequence_number":32} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"2","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"quEC0j99V9tNYSF","output_index":2,"sequence_number":33} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"zTSfuK2sEa39FBf","output_index":2,"sequence_number":34} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Installation","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"mKi","output_index":2,"sequence_number":35} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"zqOUyWl3Rvdv","output_index":2,"sequence_number":36} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Setup","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"4oZktAnxNr","output_index":2,"sequence_number":37} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"2CFIsezDF30Jr9p","output_index":2,"sequence_number":38} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"3","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"eGSNgE2RHGCC9EP","output_index":2,"sequence_number":39} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"UVVJM23rkNvp0dy","output_index":2,"sequence_number":40} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Core","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"gcnPhsOtlOs","output_index":2,"sequence_number":41} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Client","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"gzEhATOiP","output_index":2,"sequence_number":42} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Classes","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"0RssHjLW","output_index":2,"sequence_number":43} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"5fH1Gyx7jx7L2u9","output_index":2,"sequence_number":44} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"4","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"euq4wYKfF57l64h","output_index":2,"sequence_number":45} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"xQ74b7vYu2TAd0j","output_index":2,"sequence_number":46} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" API","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"Yo5DzAH1B3Uh","output_index":2,"sequence_number":47} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Resources","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"Fa9mLn","output_index":2,"sequence_number":48} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"fP2AkqelULFw","output_index":2,"sequence_number":49} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" End","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"KafbjsKkQEIC","output_index":2,"sequence_number":50} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"points","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"Tt1b1IbQcg","output_index":2,"sequence_number":51} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"OjuI3Z5HWcJ4kCD","output_index":2,"sequence_number":52} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"5","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"OIXnk7PoUllfx1I","output_index":2,"sequence_number":53} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"rlg4G6Aqr9mTEM5","output_index":2,"sequence_number":54} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Data","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"zYdQyZNxboF","output_index":2,"sequence_number":55} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Types","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"00RgkzZpGX","output_index":2,"sequence_number":56} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"xGahF9NyRFcZ","output_index":2,"sequence_number":57} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Type","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"WMbI7V8JquV","output_index":2,"sequence_number":58} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" System","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"hpehf3q5l","output_index":2,"sequence_number":59} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"teBTfioohVDSObz","output_index":2,"sequence_number":60} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"6","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"ks1cDhIcjISQyRi","output_index":2,"sequence_number":61} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"7zUaB4aBeF3Azq7","output_index":2,"sequence_number":62} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Data","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"aIhAASY0lsb","output_index":2,"sequence_number":63} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Transformation","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"R","output_index":2,"sequence_number":64} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"UBXHKRWiLpqL","output_index":2,"sequence_number":65} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Validation","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"4ad6Y","output_index":2,"sequence_number":66} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"VQe8RYnckbKW6gx","output_index":2,"sequence_number":67} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"7","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"w2gmfFbjZaU3JVa","output_index":2,"sequence_number":68} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"xCGxetIpF2Rv7fr","output_index":2,"sequence_number":69} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Advanced","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"ftQj1C0","output_index":2,"sequence_number":70} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Features","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"v3IeCl1","output_index":2,"sequence_number":71} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"N7ZY7KWY977R8ba","output_index":2,"sequence_number":72} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"8","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"kuO5QCzVyQyXmwb","output_index":2,"sequence_number":73} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"7d5q6AfxxtZtFeW","output_index":2,"sequence_number":74} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Development","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"NR74","output_index":2,"sequence_number":75} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"IDLdC04eObhr","output_index":2,"sequence_number":76} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Contribution","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"YpG","output_index":2,"sequence_number":77} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"MgLTEYMa2y2niiq","output_index":2,"sequence_number":78} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"9","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"7SeRc2jVMi15ojD","output_index":2,"sequence_number":79} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"MBWlZB6n4mxJZzg","output_index":2,"sequence_number":80} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Gloss","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"I4E7DTxiLr","output_index":2,"sequence_number":81} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"ary","item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"obfuscation":"d5OVz7uGB9lnD","output_index":2,"sequence_number":82} - - - event: response.output_text.done - - data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","logprobs":[],"output_index":2,"sequence_number":83,"text":"The - top-level documentation topics for the repository openai/openai-python are:\n\n1. - Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources - and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. - Advanced Features\n8. Development and Contribution\n9. Glossary"} - - - event: response.content_part.done - - data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","output_index":2,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"The - top-level documentation topics for the repository openai/openai-python are:\n\n1. - Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources - and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. - Advanced Features\n8. Development and Contribution\n9. Glossary"},"sequence_number":84} - - - event: response.output_item.done - - data: {"type":"response.output_item.done","item":{"id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The - top-level documentation topics for the repository openai/openai-python are:\n\n1. - Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources - and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. - Advanced Features\n8. Development and Contribution\n9. Glossary"}],"role":"assistant"},"output_index":2,"sequence_number":85} - - - event: response.completed - - data: {"type":"response.completed","response":{"id":"resp_05d806bffe67ef06006aa0759fd4c887d29a85bea799cdf3a0","object":"response","created_at":1788900768,"status":"completed","background":false,"completed_at":1788900772,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[{"id":"mcpl_05d806bffe67ef06006aa075a02e6c87d2a1e5e047d1ed0667","type":"mcp_list_tools","server_label":"deepwiki","tools":[{"annotations":{"read_only":false},"description":"Get - a list of documentation topics for a GitHub repository.","input_schema":{"properties":{"repoName":{"description":"GitHub - repository in owner/repo format (e.g. \"facebook/react\").","type":"string"}},"required":["repoName"],"type":"object"},"name":"read_wiki_structure"}]},{"id":"mcp_05d806bffe67ef06006aa075a3034c87d2b79b145e60eb500f","type":"mcp_call","status":"completed","approval_request_id":null,"arguments":"{\"repoName\":\"openai/openai-python\"}","error":null,"name":"read_wiki_structure","output":"Available - pages for openai/openai-python:\n\n- 1 Overview\n - 1.1 Architecture Overview\n - - 1.2 Project Configuration and Dependencies\n- 2 Installation and Setup\n - - 2.1 Client Configuration\n - 2.2 Azure OpenAI Configuration\n - 2.3 Module-Level - API Usage\n- 3 Core Client Classes\n - 3.1 OpenAI and AsyncOpenAI Clients\n - - 3.2 HTTP Client Foundation\n - 3.3 Request and Response Processing\n - 3.4 - Error Handling and Retry Logic\n - 3.5 Pagination\n - 3.6 Response Wrappers\n - - 3.7 Authentication and Workload Identity\n- 4 API Resources and Endpoints\n - - 4.1 Chat Completions API\n - 4.1.1 Parameters and Configuration\n - - 4.1.2 Streaming Chat Completions\n - 4.1.3 Parsed Responses and Structured - Outputs\n - 4.2 Responses API\n - 4.2.1 Multi-Modal Inputs and Tool Integration\n - - 4.2.2 Conversation and State Management\n - 4.3 Assistants API (Beta)\n - - 4.3.1 Assistants and Configuration\n - 4.3.2 Threads and Messages\n - - 4.3.3 Runs and Execution\n - 4.3.4 Streaming Assistant Events\n - 4.4 - Fine-Tuning API\n - 4.5 Embeddings and Vector Stores\n - 4.6 File Management - and Uploads\n - 4.7 Audio, Images, and Video APIs\n - 4.8 Additional API - Resources\n - 4.9 Realtime API (Beta)\n- 5 Data Types and Type System\n - - 5.1 Type System Overview\n - 5.2 Request Parameter Types\n - 5.3 Response - Types and Models\n - 5.4 Pydantic Models and BaseModel\n - 5.5 Special Types - and Sentinels\n- 6 Data Transformation and Validation\n - 6.1 Data Transformation - Pipeline\n - 6.2 PropertyInfo and Field Metadata\n - 6.3 Type Coercion and - Construction\n - 6.4 Pydantic Compatibility Layer\n - 6.5 File Extraction - and Processing\n- 7 Advanced Features\n - 7.1 Tool Calling and Integration\n - - 7.2 Streaming and Event Handling\n - 7.3 Webhook Verification\n - 7.4 Custom - HTTP Clients and Proxies\n- 8 Development and Contribution\n - 8.1 Development - Environment Setup\n - 8.2 Testing Framework and Practices\n - 8.3 Code Quality - and Type Checking\n - 8.4 CI/CD Pipeline and Release Process\n- 9 Glossary","server_label":"deepwiki"},{"id":"msg_05d806bffe67ef06006aa075a3b80887d2bd0232f9a3484d41","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The - top-level documentation topics for the repository openai/openai-python are:\n\n1. - Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources - and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. - Advanced Features\n8. Development and Contribution\n9. Glossary"}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":761,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":96,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":857},"user":null,"metadata":{}},"sequence_number":86} - - - ' - headers: - access-control-expose-headers: - - X-Request-ID - - CF-Ray - - CF-Ray - alt-svc: - - h3=":443"; ma=86400 - cf-cache-status: - - DYNAMIC - cf-ray: - - a380d6c64faa5f07-YYZ - connection: - - keep-alive - content-type: - - text/event-stream; charset=utf-8 - date: - - Tue, 08 Sep 2026 20:52:48 GMT - openai-processing-ms: - - '872' - openai-version: - - '2020-10-01' - server: - - cloudflare - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - transfer-encoding: - - chunked - x-content-type-options: - - nosniff - x-request-id: - - req_c3b7eea7697d4cd69158392632870cdd - status: - code: 200 - message: OK -version: 1 diff --git a/py/src/braintrust/integrations/openai/cassettes/latest/test_openai_response_streaming_async.yaml b/py/src/braintrust/integrations/openai/cassettes/latest/test_openai_response_streaming_async.yaml index 055360d4..50de583d 100644 --- a/py/src/braintrust/integrations/openai/cassettes/latest/test_openai_response_streaming_async.yaml +++ b/py/src/braintrust/integrations/openai/cassettes/latest/test_openai_response_streaming_async.yaml @@ -1,6 +1,6 @@ interactions: - request: - body: '{"input":"What''s 12 + 12?","model":"gpt-4o-mini","stream":true}' + body: '{"input":"What''s 12 + 12?","model":"gpt-4o-mini","stream":true,"tools":[{"type":"mcp","server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp","allowed_tools":["read_wiki_structure"],"require_approval":"always"}]}' headers: accept: - application/json @@ -9,7 +9,7 @@ interactions: connection: - keep-alive content-length: - - '63' + - '226' content-type: - application/json host: @@ -40,86 +40,110 @@ interactions: body: string: 'event: response.created - data: {"type":"response.created","response":{"id":"resp_0c55921933978862006aa054fdb8b487d2986b3a8167bf0ee6","object":"response","created_at":1788892413,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} + data: {"type":"response.created","response":{"id":"resp_06ccf38958b01034006aa098911a8087d28ff8528403e34840","object":"response","created_at":1788909713,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"always","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} event: response.in_progress - data: {"type":"response.in_progress","response":{"id":"resp_0c55921933978862006aa054fdb8b487d2986b3a8167bf0ee6","object":"response","created_at":1788892413,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} + data: {"type":"response.in_progress","response":{"id":"resp_06ccf38958b01034006aa098911a8087d28ff8528403e34840","object":"response","created_at":1788909713,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"always","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} event: response.output_item.added - data: {"type":"response.output_item.added","item":{"id":"msg_0c55921933978862006aa054fe1e4c87d2b8f9510dbc41bd45","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":0,"sequence_number":2} + data: {"type":"response.output_item.added","item":{"id":"mcpl_06ccf38958b01034006aa0989125f087d2848ddc0ee09329ab","type":"mcp_list_tools","server_label":"deepwiki","tools":[]},"output_index":0,"sequence_number":2} + + + event: response.mcp_list_tools.in_progress + + data: {"type":"response.mcp_list_tools.in_progress","item_id":"mcpl_06ccf38958b01034006aa0989125f087d2848ddc0ee09329ab","output_index":0,"sequence_number":3} + + + event: response.mcp_list_tools.completed + + data: {"type":"response.mcp_list_tools.completed","item_id":"mcpl_06ccf38958b01034006aa0989125f087d2848ddc0ee09329ab","output_index":0,"sequence_number":4} + + + event: response.output_item.done + + data: {"type":"response.output_item.done","item":{"id":"mcpl_06ccf38958b01034006aa0989125f087d2848ddc0ee09329ab","type":"mcp_list_tools","server_label":"deepwiki","tools":[{"annotations":{"read_only":false},"description":"Get + a list of documentation topics for a GitHub repository.","input_schema":{"properties":{"repoName":{"description":"GitHub + repository in owner/repo format (e.g. \"facebook/react\").","type":"string"}},"required":["repoName"],"type":"object"},"name":"read_wiki_structure"}]},"output_index":0,"sequence_number":5} + + + event: response.output_item.added + + data: {"type":"response.output_item.added","item":{"id":"msg_06ccf38958b01034006aa098927a0487d2aec0e480666faf96","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":1,"sequence_number":6} event: response.content_part.added - data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_0c55921933978862006aa054fe1e4c87d2b8f9510dbc41bd45","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":3} + data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_06ccf38958b01034006aa098927a0487d2aec0e480666faf96","output_index":1,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":7} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":"12","item_id":"msg_0c55921933978862006aa054fe1e4c87d2b8f9510dbc41bd45","logprobs":[],"obfuscation":"ziX2K1SXMzRQQp","output_index":0,"sequence_number":4} + data: {"type":"response.output_text.delta","content_index":0,"delta":"12","item_id":"msg_06ccf38958b01034006aa098927a0487d2aec0e480666faf96","logprobs":[],"obfuscation":"vqmKGiLisz5W6b","output_index":1,"sequence_number":8} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":" +","item_id":"msg_0c55921933978862006aa054fe1e4c87d2b8f9510dbc41bd45","logprobs":[],"obfuscation":"2Ogn9IDSwjWEch","output_index":0,"sequence_number":5} + data: {"type":"response.output_text.delta","content_index":0,"delta":" +","item_id":"msg_06ccf38958b01034006aa098927a0487d2aec0e480666faf96","logprobs":[],"obfuscation":"h4Vxieebukfsaz","output_index":1,"sequence_number":9} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0c55921933978862006aa054fe1e4c87d2b8f9510dbc41bd45","logprobs":[],"obfuscation":"2ahO155A0hqreTB","output_index":0,"sequence_number":6} + data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_06ccf38958b01034006aa098927a0487d2aec0e480666faf96","logprobs":[],"obfuscation":"bxDa7uDU9BsnKZz","output_index":1,"sequence_number":10} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":"12","item_id":"msg_0c55921933978862006aa054fe1e4c87d2b8f9510dbc41bd45","logprobs":[],"obfuscation":"KC1gaYfJA4WLGs","output_index":0,"sequence_number":7} + data: {"type":"response.output_text.delta","content_index":0,"delta":"12","item_id":"msg_06ccf38958b01034006aa098927a0487d2aec0e480666faf96","logprobs":[],"obfuscation":"XBqAgthqw0xcnB","output_index":1,"sequence_number":11} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":" equals","item_id":"msg_0c55921933978862006aa054fe1e4c87d2b8f9510dbc41bd45","logprobs":[],"obfuscation":"IFdkit72Y","output_index":0,"sequence_number":8} + data: {"type":"response.output_text.delta","content_index":0,"delta":" equals","item_id":"msg_06ccf38958b01034006aa098927a0487d2aec0e480666faf96","logprobs":[],"obfuscation":"04fuQ28iA","output_index":1,"sequence_number":12} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0c55921933978862006aa054fe1e4c87d2b8f9510dbc41bd45","logprobs":[],"obfuscation":"jj4eTvAgzBpcZA0","output_index":0,"sequence_number":9} + data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_06ccf38958b01034006aa098927a0487d2aec0e480666faf96","logprobs":[],"obfuscation":"BmiazVca9N1f2WU","output_index":1,"sequence_number":13} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":"24","item_id":"msg_0c55921933978862006aa054fe1e4c87d2b8f9510dbc41bd45","logprobs":[],"obfuscation":"bkA1H8fWJNM77T","output_index":0,"sequence_number":10} + data: {"type":"response.output_text.delta","content_index":0,"delta":"24","item_id":"msg_06ccf38958b01034006aa098927a0487d2aec0e480666faf96","logprobs":[],"obfuscation":"WRhOwd3GATuql7","output_index":1,"sequence_number":14} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0c55921933978862006aa054fe1e4c87d2b8f9510dbc41bd45","logprobs":[],"obfuscation":"MJjizKRtsI4AmVB","output_index":0,"sequence_number":11} + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_06ccf38958b01034006aa098927a0487d2aec0e480666faf96","logprobs":[],"obfuscation":"YIinO5GazJ2UY3P","output_index":1,"sequence_number":15} event: response.output_text.done - data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_0c55921933978862006aa054fe1e4c87d2b8f9510dbc41bd45","logprobs":[],"output_index":0,"sequence_number":12,"text":"12 + data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_06ccf38958b01034006aa098927a0487d2aec0e480666faf96","logprobs":[],"output_index":1,"sequence_number":16,"text":"12 + 12 equals 24."} event: response.content_part.done - data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_0c55921933978862006aa054fe1e4c87d2b8f9510dbc41bd45","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"12 - + 12 equals 24."},"sequence_number":13} + data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_06ccf38958b01034006aa098927a0487d2aec0e480666faf96","output_index":1,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"12 + + 12 equals 24."},"sequence_number":17} event: response.output_item.done - data: {"type":"response.output_item.done","item":{"id":"msg_0c55921933978862006aa054fe1e4c87d2b8f9510dbc41bd45","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"12 - + 12 equals 24."}],"role":"assistant"},"output_index":0,"sequence_number":14} + data: {"type":"response.output_item.done","item":{"id":"msg_06ccf38958b01034006aa098927a0487d2aec0e480666faf96","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"12 + + 12 equals 24."}],"role":"assistant"},"output_index":1,"sequence_number":18} event: response.completed - data: {"type":"response.completed","response":{"id":"resp_0c55921933978862006aa054fdb8b487d2986b3a8167bf0ee6","object":"response","created_at":1788892413,"status":"completed","background":false,"completed_at":1788892414,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[{"id":"msg_0c55921933978862006aa054fe1e4c87d2b8f9510dbc41bd45","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"12 - + 12 equals 24."}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":14,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":9,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":23},"user":null,"metadata":{}},"sequence_number":15} + data: {"type":"response.completed","response":{"id":"resp_06ccf38958b01034006aa098911a8087d28ff8528403e34840","object":"response","created_at":1788909713,"status":"completed","background":false,"completed_at":1788909714,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[{"id":"mcpl_06ccf38958b01034006aa0989125f087d2848ddc0ee09329ab","type":"mcp_list_tools","server_label":"deepwiki","tools":[{"annotations":{"read_only":false},"description":"Get + a list of documentation topics for a GitHub repository.","input_schema":{"properties":{"repoName":{"description":"GitHub + repository in owner/repo format (e.g. \"facebook/react\").","type":"string"}},"required":["repoName"],"type":"object"},"name":"read_wiki_structure"}]},{"id":"msg_06ccf38958b01034006aa098927a0487d2aec0e480666faf96","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"12 + + 12 equals 24."}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"always","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":85,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":10,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":95},"user":null,"metadata":{}},"sequence_number":19} ' @@ -133,15 +157,15 @@ interactions: cf-cache-status: - DYNAMIC cf-ray: - - a3800ad148ae086a-YYZ + - a381b1269a6a3905-YYZ connection: - keep-alive content-type: - text/event-stream; charset=utf-8 date: - - Tue, 08 Sep 2026 18:33:33 GMT + - Tue, 08 Sep 2026 23:21:53 GMT openai-processing-ms: - - '227' + - '567' openai-version: - '2020-10-01' server: @@ -153,12 +177,12 @@ interactions: x-content-type-options: - nosniff x-request-id: - - req_3ef81ee81f6a4e1a8ac2ff12ba7ccc86 + - req_53948c35db81430590bd175666672139 status: code: 200 message: OK - request: - body: '{"input":"What''s 12 + 12?","model":"gpt-4o-mini","stream":true}' + body: '{"input":"What''s 12 + 12?","model":"gpt-4o-mini","stream":true,"tools":[{"type":"mcp","server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp","allowed_tools":["read_wiki_structure"],"require_approval":"always"}]}' headers: accept: - application/json @@ -167,7 +191,7 @@ interactions: connection: - keep-alive content-length: - - '63' + - '226' content-type: - application/json host: @@ -198,86 +222,110 @@ interactions: body: string: 'event: response.created - data: {"type":"response.created","response":{"id":"resp_041f7ee8b95bf609006aa054fea41887d290e3c1c7ef3713d9","object":"response","created_at":1788892414,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} + data: {"type":"response.created","response":{"id":"resp_0fb513985fbbb65f006aa09893017c87d2884090cdbc544d26","object":"response","created_at":1788909715,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"always","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} event: response.in_progress - data: {"type":"response.in_progress","response":{"id":"resp_041f7ee8b95bf609006aa054fea41887d290e3c1c7ef3713d9","object":"response","created_at":1788892414,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} + data: {"type":"response.in_progress","response":{"id":"resp_0fb513985fbbb65f006aa09893017c87d2884090cdbc544d26","object":"response","created_at":1788909715,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"always","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} + + + event: response.output_item.added + + data: {"type":"response.output_item.added","item":{"id":"mcpl_0fb513985fbbb65f006aa098931d5087d292370cf4771aeec0","type":"mcp_list_tools","server_label":"deepwiki","tools":[]},"output_index":0,"sequence_number":2} + + + event: response.mcp_list_tools.in_progress + + data: {"type":"response.mcp_list_tools.in_progress","item_id":"mcpl_0fb513985fbbb65f006aa098931d5087d292370cf4771aeec0","output_index":0,"sequence_number":3} + + + event: response.mcp_list_tools.completed + + data: {"type":"response.mcp_list_tools.completed","item_id":"mcpl_0fb513985fbbb65f006aa098931d5087d292370cf4771aeec0","output_index":0,"sequence_number":4} + + + event: response.output_item.done + + data: {"type":"response.output_item.done","item":{"id":"mcpl_0fb513985fbbb65f006aa098931d5087d292370cf4771aeec0","type":"mcp_list_tools","server_label":"deepwiki","tools":[{"annotations":{"read_only":false},"description":"Get + a list of documentation topics for a GitHub repository.","input_schema":{"properties":{"repoName":{"description":"GitHub + repository in owner/repo format (e.g. \"facebook/react\").","type":"string"}},"required":["repoName"],"type":"object"},"name":"read_wiki_structure"}]},"output_index":0,"sequence_number":5} event: response.output_item.added - data: {"type":"response.output_item.added","item":{"id":"msg_041f7ee8b95bf609006aa054ff0a5887d29eed6c35030afe5e","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":0,"sequence_number":2} + data: {"type":"response.output_item.added","item":{"id":"msg_0fb513985fbbb65f006aa098946e3c87d2811df54f92dba674","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":1,"sequence_number":6} event: response.content_part.added - data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_041f7ee8b95bf609006aa054ff0a5887d29eed6c35030afe5e","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":3} + data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_0fb513985fbbb65f006aa098946e3c87d2811df54f92dba674","output_index":1,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":7} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":"12","item_id":"msg_041f7ee8b95bf609006aa054ff0a5887d29eed6c35030afe5e","logprobs":[],"obfuscation":"Wew0f6YgN9pumh","output_index":0,"sequence_number":4} + data: {"type":"response.output_text.delta","content_index":0,"delta":"12","item_id":"msg_0fb513985fbbb65f006aa098946e3c87d2811df54f92dba674","logprobs":[],"obfuscation":"F9vp6CM8FfETMi","output_index":1,"sequence_number":8} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":" +","item_id":"msg_041f7ee8b95bf609006aa054ff0a5887d29eed6c35030afe5e","logprobs":[],"obfuscation":"vq0fDxue2boIg0","output_index":0,"sequence_number":5} + data: {"type":"response.output_text.delta","content_index":0,"delta":" +","item_id":"msg_0fb513985fbbb65f006aa098946e3c87d2811df54f92dba674","logprobs":[],"obfuscation":"98ln7PKkv84tv1","output_index":1,"sequence_number":9} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_041f7ee8b95bf609006aa054ff0a5887d29eed6c35030afe5e","logprobs":[],"obfuscation":"ML42aGrbWj847fz","output_index":0,"sequence_number":6} + data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0fb513985fbbb65f006aa098946e3c87d2811df54f92dba674","logprobs":[],"obfuscation":"yH324xqRVUtOwVJ","output_index":1,"sequence_number":10} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":"12","item_id":"msg_041f7ee8b95bf609006aa054ff0a5887d29eed6c35030afe5e","logprobs":[],"obfuscation":"gk9fTDC37zsCIH","output_index":0,"sequence_number":7} + data: {"type":"response.output_text.delta","content_index":0,"delta":"12","item_id":"msg_0fb513985fbbb65f006aa098946e3c87d2811df54f92dba674","logprobs":[],"obfuscation":"ssJiAF7YgYulLb","output_index":1,"sequence_number":11} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":" equals","item_id":"msg_041f7ee8b95bf609006aa054ff0a5887d29eed6c35030afe5e","logprobs":[],"obfuscation":"ustaJloTo","output_index":0,"sequence_number":8} + data: {"type":"response.output_text.delta","content_index":0,"delta":" equals","item_id":"msg_0fb513985fbbb65f006aa098946e3c87d2811df54f92dba674","logprobs":[],"obfuscation":"WElHEUK6s","output_index":1,"sequence_number":12} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_041f7ee8b95bf609006aa054ff0a5887d29eed6c35030afe5e","logprobs":[],"obfuscation":"Oq3kU5fI5aePIh6","output_index":0,"sequence_number":9} + data: {"type":"response.output_text.delta","content_index":0,"delta":" ","item_id":"msg_0fb513985fbbb65f006aa098946e3c87d2811df54f92dba674","logprobs":[],"obfuscation":"9BgPwwpNPWFVR4q","output_index":1,"sequence_number":13} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":"24","item_id":"msg_041f7ee8b95bf609006aa054ff0a5887d29eed6c35030afe5e","logprobs":[],"obfuscation":"G0PETz9J8QoqAk","output_index":0,"sequence_number":10} + data: {"type":"response.output_text.delta","content_index":0,"delta":"24","item_id":"msg_0fb513985fbbb65f006aa098946e3c87d2811df54f92dba674","logprobs":[],"obfuscation":"7yM2ZA5uz8UreV","output_index":1,"sequence_number":14} event: response.output_text.delta - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_041f7ee8b95bf609006aa054ff0a5887d29eed6c35030afe5e","logprobs":[],"obfuscation":"K1hHhJqjjA0mNMj","output_index":0,"sequence_number":11} + data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0fb513985fbbb65f006aa098946e3c87d2811df54f92dba674","logprobs":[],"obfuscation":"K8ZMPF72VIdNRVD","output_index":1,"sequence_number":15} event: response.output_text.done - data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_041f7ee8b95bf609006aa054ff0a5887d29eed6c35030afe5e","logprobs":[],"output_index":0,"sequence_number":12,"text":"12 + data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_0fb513985fbbb65f006aa098946e3c87d2811df54f92dba674","logprobs":[],"output_index":1,"sequence_number":16,"text":"12 + 12 equals 24."} event: response.content_part.done - data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_041f7ee8b95bf609006aa054ff0a5887d29eed6c35030afe5e","output_index":0,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"12 - + 12 equals 24."},"sequence_number":13} + data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_0fb513985fbbb65f006aa098946e3c87d2811df54f92dba674","output_index":1,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"12 + + 12 equals 24."},"sequence_number":17} event: response.output_item.done - data: {"type":"response.output_item.done","item":{"id":"msg_041f7ee8b95bf609006aa054ff0a5887d29eed6c35030afe5e","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"12 - + 12 equals 24."}],"role":"assistant"},"output_index":0,"sequence_number":14} + data: {"type":"response.output_item.done","item":{"id":"msg_0fb513985fbbb65f006aa098946e3c87d2811df54f92dba674","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"12 + + 12 equals 24."}],"role":"assistant"},"output_index":1,"sequence_number":18} event: response.completed - data: {"type":"response.completed","response":{"id":"resp_041f7ee8b95bf609006aa054fea41887d290e3c1c7ef3713d9","object":"response","created_at":1788892414,"status":"completed","background":false,"completed_at":1788892415,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[{"id":"msg_041f7ee8b95bf609006aa054ff0a5887d29eed6c35030afe5e","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"12 - + 12 equals 24."}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":14,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":9,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":23},"user":null,"metadata":{}},"sequence_number":15} + data: {"type":"response.completed","response":{"id":"resp_0fb513985fbbb65f006aa09893017c87d2884090cdbc544d26","object":"response","created_at":1788909715,"status":"completed","background":false,"completed_at":1788909716,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4o-mini-2024-07-18","moderation":null,"output":[{"id":"mcpl_0fb513985fbbb65f006aa098931d5087d292370cf4771aeec0","type":"mcp_list_tools","server_label":"deepwiki","tools":[{"annotations":{"read_only":false},"description":"Get + a list of documentation topics for a GitHub repository.","input_schema":{"properties":{"repoName":{"description":"GitHub + repository in owner/repo format (e.g. \"facebook/react\").","type":"string"}},"required":["repoName"],"type":"object"},"name":"read_wiki_structure"}]},{"id":"msg_0fb513985fbbb65f006aa098946e3c87d2811df54f92dba674","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"12 + + 12 equals 24."}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"always","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":85,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":10,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":95},"user":null,"metadata":{}},"sequence_number":19} ' @@ -291,15 +339,15 @@ interactions: cf-cache-status: - DYNAMIC cf-ray: - - a3800ad6ea508ea1-YYZ + - a381b1361c9736ca-YYZ connection: - keep-alive content-type: - text/event-stream; charset=utf-8 date: - - Tue, 08 Sep 2026 18:33:34 GMT + - Tue, 08 Sep 2026 23:21:55 GMT openai-processing-ms: - - '235' + - '628' openai-version: - '2020-10-01' server: @@ -311,7 +359,7 @@ interactions: x-content-type-options: - nosniff x-request-id: - - req_4a9339840eec4c43af7f5eae88039b54 + - req_45479b32d96a4a0186629b4fda8f22e7 status: code: 200 message: OK diff --git a/py/src/braintrust/integrations/openai/cassettes/latest/test_openai_responses_stream_mcp_list_tools[False].yaml b/py/src/braintrust/integrations/openai/cassettes/latest/test_openai_responses_stream_mcp_list_tools[False].yaml deleted file mode 100644 index 82c748c6..00000000 --- a/py/src/braintrust/integrations/openai/cassettes/latest/test_openai_responses_stream_mcp_list_tools[False].yaml +++ /dev/null @@ -1,583 +0,0 @@ -interactions: -- request: - body: '{"input":"List the top-level documentation topics for the repository openai/openai-python.","model":"gpt-4.1-mini","stream":true,"tools":[{"type":"mcp","server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp","allowed_tools":["read_wiki_structure"],"require_approval":"never"}]}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate, zstd - connection: - - keep-alive - content-length: - - '291' - content-type: - - application/json - host: - - api.openai.com - user-agent: - - OpenAI/Python 3.8.0 - x-stainless-arch: - - arm64 - x-stainless-async: - - 'false' - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 3.8.0 - x-stainless-read-timeout: - - '600' - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.14.6 - method: POST - uri: https://api.openai.com/v1/responses - response: - body: - string: 'event: response.created - - data: {"type":"response.created","response":{"id":"resp_0adb73bb66f1e59e006aa0755f574087d29ddc6164175070c4","object":"response","created_at":1788900703,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} - - - event: response.in_progress - - data: {"type":"response.in_progress","response":{"id":"resp_0adb73bb66f1e59e006aa0755f574087d29ddc6164175070c4","object":"response","created_at":1788900703,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} - - - event: response.output_item.added - - data: {"type":"response.output_item.added","item":{"id":"mcpl_0adb73bb66f1e59e006aa0755f721487d2b1257c15e0751783","type":"mcp_list_tools","server_label":"deepwiki","tools":[]},"output_index":0,"sequence_number":2} - - - event: response.mcp_list_tools.in_progress - - data: {"type":"response.mcp_list_tools.in_progress","item_id":"mcpl_0adb73bb66f1e59e006aa0755f721487d2b1257c15e0751783","output_index":0,"sequence_number":3} - - - event: response.mcp_list_tools.completed - - data: {"type":"response.mcp_list_tools.completed","item_id":"mcpl_0adb73bb66f1e59e006aa0755f721487d2b1257c15e0751783","output_index":0,"sequence_number":4} - - - event: response.output_item.done - - data: {"type":"response.output_item.done","item":{"id":"mcpl_0adb73bb66f1e59e006aa0755f721487d2b1257c15e0751783","type":"mcp_list_tools","server_label":"deepwiki","tools":[{"annotations":{"read_only":false},"description":"Get - a list of documentation topics for a GitHub repository.","input_schema":{"properties":{"repoName":{"description":"GitHub - repository in owner/repo format (e.g. \"facebook/react\").","type":"string"}},"required":["repoName"],"type":"object"},"name":"read_wiki_structure"}]},"output_index":0,"sequence_number":5} - - - event: response.output_item.added - - data: {"type":"response.output_item.added","item":{"id":"mcp_0adb73bb66f1e59e006aa07561fc7487d2bd73f435aca4a27e","type":"mcp_call","status":"in_progress","approval_request_id":null,"arguments":"","error":null,"name":"read_wiki_structure","output":null,"server_label":"deepwiki"},"output_index":1,"sequence_number":6} - - - event: response.mcp_call.in_progress - - data: {"type":"response.mcp_call.in_progress","item_id":"mcp_0adb73bb66f1e59e006aa07561fc7487d2bd73f435aca4a27e","output_index":1,"sequence_number":7} - - - event: response.mcp_call_arguments.delta - - data: {"type":"response.mcp_call_arguments.delta","delta":"{\"repoName\":\"openai/openai-python\"}","item_id":"mcp_0adb73bb66f1e59e006aa07561fc7487d2bd73f435aca4a27e","obfuscation":"VPb860nVZRhZU","output_index":1,"sequence_number":8} - - - event: response.mcp_call_arguments.done - - data: {"type":"response.mcp_call_arguments.done","arguments":"{\"repoName\":\"openai/openai-python\"}","item_id":"mcp_0adb73bb66f1e59e006aa07561fc7487d2bd73f435aca4a27e","output_index":1,"sequence_number":9} - - - event: response.mcp_call.completed - - data: {"type":"response.mcp_call.completed","item_id":"mcp_0adb73bb66f1e59e006aa07561fc7487d2bd73f435aca4a27e","output_index":1,"sequence_number":10} - - - event: response.output_item.done - - data: {"type":"response.output_item.done","item":{"id":"mcp_0adb73bb66f1e59e006aa07561fc7487d2bd73f435aca4a27e","type":"mcp_call","status":"completed","approval_request_id":null,"arguments":"{\"repoName\":\"openai/openai-python\"}","error":null,"name":"read_wiki_structure","output":"Available - pages for openai/openai-python:\n\n- 1 Overview\n - 1.1 Architecture Overview\n - - 1.2 Project Configuration and Dependencies\n- 2 Installation and Setup\n - - 2.1 Client Configuration\n - 2.2 Azure OpenAI Configuration\n - 2.3 Module-Level - API Usage\n- 3 Core Client Classes\n - 3.1 OpenAI and AsyncOpenAI Clients\n - - 3.2 HTTP Client Foundation\n - 3.3 Request and Response Processing\n - 3.4 - Error Handling and Retry Logic\n - 3.5 Pagination\n - 3.6 Response Wrappers\n - - 3.7 Authentication and Workload Identity\n- 4 API Resources and Endpoints\n - - 4.1 Chat Completions API\n - 4.1.1 Parameters and Configuration\n - - 4.1.2 Streaming Chat Completions\n - 4.1.3 Parsed Responses and Structured - Outputs\n - 4.2 Responses API\n - 4.2.1 Multi-Modal Inputs and Tool Integration\n - - 4.2.2 Conversation and State Management\n - 4.3 Assistants API (Beta)\n - - 4.3.1 Assistants and Configuration\n - 4.3.2 Threads and Messages\n - - 4.3.3 Runs and Execution\n - 4.3.4 Streaming Assistant Events\n - 4.4 - Fine-Tuning API\n - 4.5 Embeddings and Vector Stores\n - 4.6 File Management - and Uploads\n - 4.7 Audio, Images, and Video APIs\n - 4.8 Additional API - Resources\n - 4.9 Realtime API (Beta)\n- 5 Data Types and Type System\n - - 5.1 Type System Overview\n - 5.2 Request Parameter Types\n - 5.3 Response - Types and Models\n - 5.4 Pydantic Models and BaseModel\n - 5.5 Special Types - and Sentinels\n- 6 Data Transformation and Validation\n - 6.1 Data Transformation - Pipeline\n - 6.2 PropertyInfo and Field Metadata\n - 6.3 Type Coercion and - Construction\n - 6.4 Pydantic Compatibility Layer\n - 6.5 File Extraction - and Processing\n- 7 Advanced Features\n - 7.1 Tool Calling and Integration\n - - 7.2 Streaming and Event Handling\n - 7.3 Webhook Verification\n - 7.4 Custom - HTTP Clients and Proxies\n- 8 Development and Contribution\n - 8.1 Development - Environment Setup\n - 8.2 Testing Framework and Practices\n - 8.3 Code Quality - and Type Checking\n - 8.4 CI/CD Pipeline and Release Process\n- 9 Glossary","server_label":"deepwiki"},"output_index":1,"sequence_number":11} - - - event: response.output_item.added - - data: {"type":"response.output_item.added","item":{"id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":2,"sequence_number":12} - - - event: response.content_part.added - - data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","output_index":2,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":13} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"The","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"OK89HDJ8QoLEJ","output_index":2,"sequence_number":14} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" top","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"fUlVZwfNNzYK","output_index":2,"sequence_number":15} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"-level","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"44uPE84Wzg","output_index":2,"sequence_number":16} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" documentation","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"NT","output_index":2,"sequence_number":17} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" topics","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"2jg1hSHNS","output_index":2,"sequence_number":18} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" for","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"ebLFlfAAB2Sk","output_index":2,"sequence_number":19} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"n8mPToaXQ3Qs","output_index":2,"sequence_number":20} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" repository","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"LnPyN","output_index":2,"sequence_number":21} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" open","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"PxM7K5BnX0s","output_index":2,"sequence_number":22} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"ai","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"Y4KZEJJZXQsW4Z","output_index":2,"sequence_number":23} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"/open","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"bEsAVDiOED0","output_index":2,"sequence_number":24} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"ai","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"ItFrCAn2Tsb5Vw","output_index":2,"sequence_number":25} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"-python","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"CHRYc418x","output_index":2,"sequence_number":26} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" are","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"BvyT5VqQAIjb","output_index":2,"sequence_number":27} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":":\n\n","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"I6qDPILayRFP8","output_index":2,"sequence_number":28} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"1","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"ApiJ2Nm3kDnveU0","output_index":2,"sequence_number":29} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"KgfRUOumbtKfzZA","output_index":2,"sequence_number":30} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Overview","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"c77E4si","output_index":2,"sequence_number":31} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"YgHHzzI1K45YrM4","output_index":2,"sequence_number":32} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"2","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"eRcFHdoWKOfYFL2","output_index":2,"sequence_number":33} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"363OmGVlivVNL1I","output_index":2,"sequence_number":34} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Installation","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"74j","output_index":2,"sequence_number":35} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"XKVbDGmifBXv","output_index":2,"sequence_number":36} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Setup","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"wV2aWd6BJ4","output_index":2,"sequence_number":37} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"SiCuFkJjxjT1nLk","output_index":2,"sequence_number":38} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"3","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"jvBAkKaib5abWVy","output_index":2,"sequence_number":39} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"jbQm7jyCQOkTi8K","output_index":2,"sequence_number":40} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Core","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"DOF5Y9XkX81","output_index":2,"sequence_number":41} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Client","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"Mv93ydPT7","output_index":2,"sequence_number":42} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Classes","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"kdopxnG3","output_index":2,"sequence_number":43} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"UdKIgXqDs4n5VmV","output_index":2,"sequence_number":44} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"4","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"ipVVA0DDMrb5gKk","output_index":2,"sequence_number":45} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"L9Mr3rJA30jkdNw","output_index":2,"sequence_number":46} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" API","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"zGE7TILgcuPH","output_index":2,"sequence_number":47} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Resources","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"cvcxhS","output_index":2,"sequence_number":48} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"zfEqIm18aiW9","output_index":2,"sequence_number":49} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" End","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"DOwU02QmB3og","output_index":2,"sequence_number":50} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"points","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"MIJkGy9wdt","output_index":2,"sequence_number":51} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"QJVcf7F1z5mGDjb","output_index":2,"sequence_number":52} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"5","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"pL9Hgj0795jnGqN","output_index":2,"sequence_number":53} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"h9qwQ9Zny5fajU1","output_index":2,"sequence_number":54} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Data","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"pDmSuJzNlDP","output_index":2,"sequence_number":55} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Types","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"J5Ssm2c2fO","output_index":2,"sequence_number":56} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"OVlFnfl7ZniP","output_index":2,"sequence_number":57} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Type","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"NpaIb9IXqQF","output_index":2,"sequence_number":58} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" System","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"Coa3kkZEf","output_index":2,"sequence_number":59} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"YProgHy35XsEKam","output_index":2,"sequence_number":60} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"6","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"BJRbKakrJMqKEHp","output_index":2,"sequence_number":61} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"WU25YRfcaNxMJoY","output_index":2,"sequence_number":62} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Data","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"3EFy8Daxkdd","output_index":2,"sequence_number":63} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Transformation","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"Y","output_index":2,"sequence_number":64} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"m9VkidQOxokb","output_index":2,"sequence_number":65} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Validation","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"FEGup","output_index":2,"sequence_number":66} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"sWCkk670fCjrNsS","output_index":2,"sequence_number":67} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"7","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"dExaGyRVSmmGLvD","output_index":2,"sequence_number":68} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"pxBlF11K3gkBiN5","output_index":2,"sequence_number":69} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Advanced","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"N1F1Rxt","output_index":2,"sequence_number":70} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Features","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"FzpvvI4","output_index":2,"sequence_number":71} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"774HD0uuuo1lt8S","output_index":2,"sequence_number":72} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"8","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"To608Whu6kR7QlJ","output_index":2,"sequence_number":73} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"Y0B8JmIzVcG7PSB","output_index":2,"sequence_number":74} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Development","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"lk4O","output_index":2,"sequence_number":75} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"MuV7orBWER8j","output_index":2,"sequence_number":76} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Contribution","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"39F","output_index":2,"sequence_number":77} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"lGJot5AJDkn7GX1","output_index":2,"sequence_number":78} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"9","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"QrO4amjQV4yPVIA","output_index":2,"sequence_number":79} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"GAXnJpOVhz2VaAv","output_index":2,"sequence_number":80} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Gloss","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"ZgJ67CLZgI","output_index":2,"sequence_number":81} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"ary","item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"obfuscation":"rh3yc6vRVM5Ik","output_index":2,"sequence_number":82} - - - event: response.output_text.done - - data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","logprobs":[],"output_index":2,"sequence_number":83,"text":"The - top-level documentation topics for the repository openai/openai-python are:\n\n1. - Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources - and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. - Advanced Features\n8. Development and Contribution\n9. Glossary"} - - - event: response.content_part.done - - data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","output_index":2,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"The - top-level documentation topics for the repository openai/openai-python are:\n\n1. - Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources - and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. - Advanced Features\n8. Development and Contribution\n9. Glossary"},"sequence_number":84} - - - event: response.output_item.done - - data: {"type":"response.output_item.done","item":{"id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The - top-level documentation topics for the repository openai/openai-python are:\n\n1. - Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources - and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. - Advanced Features\n8. Development and Contribution\n9. Glossary"}],"role":"assistant"},"output_index":2,"sequence_number":85} - - - event: response.completed - - data: {"type":"response.completed","response":{"id":"resp_0adb73bb66f1e59e006aa0755f574087d29ddc6164175070c4","object":"response","created_at":1788900703,"status":"completed","background":false,"completed_at":1788900708,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[{"id":"mcpl_0adb73bb66f1e59e006aa0755f721487d2b1257c15e0751783","type":"mcp_list_tools","server_label":"deepwiki","tools":[{"annotations":{"read_only":false},"description":"Get - a list of documentation topics for a GitHub repository.","input_schema":{"properties":{"repoName":{"description":"GitHub - repository in owner/repo format (e.g. \"facebook/react\").","type":"string"}},"required":["repoName"],"type":"object"},"name":"read_wiki_structure"}]},{"id":"mcp_0adb73bb66f1e59e006aa07561fc7487d2bd73f435aca4a27e","type":"mcp_call","status":"completed","approval_request_id":null,"arguments":"{\"repoName\":\"openai/openai-python\"}","error":null,"name":"read_wiki_structure","output":"Available - pages for openai/openai-python:\n\n- 1 Overview\n - 1.1 Architecture Overview\n - - 1.2 Project Configuration and Dependencies\n- 2 Installation and Setup\n - - 2.1 Client Configuration\n - 2.2 Azure OpenAI Configuration\n - 2.3 Module-Level - API Usage\n- 3 Core Client Classes\n - 3.1 OpenAI and AsyncOpenAI Clients\n - - 3.2 HTTP Client Foundation\n - 3.3 Request and Response Processing\n - 3.4 - Error Handling and Retry Logic\n - 3.5 Pagination\n - 3.6 Response Wrappers\n - - 3.7 Authentication and Workload Identity\n- 4 API Resources and Endpoints\n - - 4.1 Chat Completions API\n - 4.1.1 Parameters and Configuration\n - - 4.1.2 Streaming Chat Completions\n - 4.1.3 Parsed Responses and Structured - Outputs\n - 4.2 Responses API\n - 4.2.1 Multi-Modal Inputs and Tool Integration\n - - 4.2.2 Conversation and State Management\n - 4.3 Assistants API (Beta)\n - - 4.3.1 Assistants and Configuration\n - 4.3.2 Threads and Messages\n - - 4.3.3 Runs and Execution\n - 4.3.4 Streaming Assistant Events\n - 4.4 - Fine-Tuning API\n - 4.5 Embeddings and Vector Stores\n - 4.6 File Management - and Uploads\n - 4.7 Audio, Images, and Video APIs\n - 4.8 Additional API - Resources\n - 4.9 Realtime API (Beta)\n- 5 Data Types and Type System\n - - 5.1 Type System Overview\n - 5.2 Request Parameter Types\n - 5.3 Response - Types and Models\n - 5.4 Pydantic Models and BaseModel\n - 5.5 Special Types - and Sentinels\n- 6 Data Transformation and Validation\n - 6.1 Data Transformation - Pipeline\n - 6.2 PropertyInfo and Field Metadata\n - 6.3 Type Coercion and - Construction\n - 6.4 Pydantic Compatibility Layer\n - 6.5 File Extraction - and Processing\n- 7 Advanced Features\n - 7.1 Tool Calling and Integration\n - - 7.2 Streaming and Event Handling\n - 7.3 Webhook Verification\n - 7.4 Custom - HTTP Clients and Proxies\n- 8 Development and Contribution\n - 8.1 Development - Environment Setup\n - 8.2 Testing Framework and Practices\n - 8.3 Code Quality - and Type Checking\n - 8.4 CI/CD Pipeline and Release Process\n- 9 Glossary","server_label":"deepwiki"},{"id":"msg_0adb73bb66f1e59e006aa07562d45887d2a094119319dc20cc","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The - top-level documentation topics for the repository openai/openai-python are:\n\n1. - Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources - and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. - Advanced Features\n8. Development and Contribution\n9. Glossary"}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":761,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":96,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":857},"user":null,"metadata":{}},"sequence_number":86} - - - ' - headers: - access-control-expose-headers: - - X-Request-ID - - CF-Ray - - CF-Ray - alt-svc: - - h3=":443"; ma=86400 - cf-cache-status: - - DYNAMIC - cf-ray: - - a380d52c388b8ea1-YYZ - connection: - - keep-alive - content-type: - - text/event-stream; charset=utf-8 - date: - - Tue, 08 Sep 2026 20:51:43 GMT - openai-processing-ms: - - '1051' - openai-version: - - '2020-10-01' - server: - - cloudflare - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - transfer-encoding: - - chunked - x-content-type-options: - - nosniff - x-request-id: - - req_895d916d87564dedb5deae9162cfec5c - status: - code: 200 - message: OK -version: 1 diff --git a/py/src/braintrust/integrations/openai/cassettes/latest/test_openai_responses_stream_mcp_list_tools[True].yaml b/py/src/braintrust/integrations/openai/cassettes/latest/test_openai_responses_stream_mcp_list_tools[True].yaml deleted file mode 100644 index d86c5cf9..00000000 --- a/py/src/braintrust/integrations/openai/cassettes/latest/test_openai_responses_stream_mcp_list_tools[True].yaml +++ /dev/null @@ -1,583 +0,0 @@ -interactions: -- request: - body: '{"input":"List the top-level documentation topics for the repository openai/openai-python.","model":"gpt-4.1-mini","stream":true,"tools":[{"type":"mcp","server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp","allowed_tools":["read_wiki_structure"],"require_approval":"never"}]}' - headers: - accept: - - application/json - accept-encoding: - - gzip, deflate, zstd - connection: - - keep-alive - content-length: - - '291' - content-type: - - application/json - host: - - api.openai.com - user-agent: - - AsyncOpenAI/Python 3.8.0 - x-stainless-arch: - - arm64 - x-stainless-async: - - async:asyncio - x-stainless-lang: - - python - x-stainless-os: - - MacOS - x-stainless-package-version: - - 3.8.0 - x-stainless-read-timeout: - - '600' - x-stainless-retry-count: - - '0' - x-stainless-runtime: - - CPython - x-stainless-runtime-version: - - 3.14.6 - method: POST - uri: https://api.openai.com/v1/responses - response: - body: - string: 'event: response.created - - data: {"type":"response.created","response":{"id":"resp_0722af8ae352ad3f006aa07565001c87d2888d98129ba16907","object":"response","created_at":1788900709,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":0} - - - event: response.in_progress - - data: {"type":"response.in_progress","response":{"id":"resp_0722af8ae352ad3f006aa07565001c87d2888d98129ba16907","object":"response","created_at":1788900709,"status":"in_progress","background":false,"completed_at":null,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":null,"user":null,"metadata":{}},"sequence_number":1} - - - event: response.output_item.added - - data: {"type":"response.output_item.added","item":{"id":"mcpl_0722af8ae352ad3f006aa075650f5c87d281625e0859213571","type":"mcp_list_tools","server_label":"deepwiki","tools":[]},"output_index":0,"sequence_number":2} - - - event: response.mcp_list_tools.in_progress - - data: {"type":"response.mcp_list_tools.in_progress","item_id":"mcpl_0722af8ae352ad3f006aa075650f5c87d281625e0859213571","output_index":0,"sequence_number":3} - - - event: response.mcp_list_tools.completed - - data: {"type":"response.mcp_list_tools.completed","item_id":"mcpl_0722af8ae352ad3f006aa075650f5c87d281625e0859213571","output_index":0,"sequence_number":4} - - - event: response.output_item.done - - data: {"type":"response.output_item.done","item":{"id":"mcpl_0722af8ae352ad3f006aa075650f5c87d281625e0859213571","type":"mcp_list_tools","server_label":"deepwiki","tools":[{"annotations":{"read_only":false},"description":"Get - a list of documentation topics for a GitHub repository.","input_schema":{"properties":{"repoName":{"description":"GitHub - repository in owner/repo format (e.g. \"facebook/react\").","type":"string"}},"required":["repoName"],"type":"object"},"name":"read_wiki_structure"}]},"output_index":0,"sequence_number":5} - - - event: response.output_item.added - - data: {"type":"response.output_item.added","item":{"id":"mcp_0722af8ae352ad3f006aa07566af5087d29a17d1d98a5cc114","type":"mcp_call","status":"in_progress","approval_request_id":null,"arguments":"","error":null,"name":"read_wiki_structure","output":null,"server_label":"deepwiki"},"output_index":1,"sequence_number":6} - - - event: response.mcp_call.in_progress - - data: {"type":"response.mcp_call.in_progress","item_id":"mcp_0722af8ae352ad3f006aa07566af5087d29a17d1d98a5cc114","output_index":1,"sequence_number":7} - - - event: response.mcp_call_arguments.delta - - data: {"type":"response.mcp_call_arguments.delta","delta":"{\"repoName\":\"openai/openai-python\"}","item_id":"mcp_0722af8ae352ad3f006aa07566af5087d29a17d1d98a5cc114","obfuscation":"OLtmRMvib4igT","output_index":1,"sequence_number":8} - - - event: response.mcp_call_arguments.done - - data: {"type":"response.mcp_call_arguments.done","arguments":"{\"repoName\":\"openai/openai-python\"}","item_id":"mcp_0722af8ae352ad3f006aa07566af5087d29a17d1d98a5cc114","output_index":1,"sequence_number":9} - - - event: response.mcp_call.completed - - data: {"type":"response.mcp_call.completed","item_id":"mcp_0722af8ae352ad3f006aa07566af5087d29a17d1d98a5cc114","output_index":1,"sequence_number":10} - - - event: response.output_item.done - - data: {"type":"response.output_item.done","item":{"id":"mcp_0722af8ae352ad3f006aa07566af5087d29a17d1d98a5cc114","type":"mcp_call","status":"completed","approval_request_id":null,"arguments":"{\"repoName\":\"openai/openai-python\"}","error":null,"name":"read_wiki_structure","output":"Available - pages for openai/openai-python:\n\n- 1 Overview\n - 1.1 Architecture Overview\n - - 1.2 Project Configuration and Dependencies\n- 2 Installation and Setup\n - - 2.1 Client Configuration\n - 2.2 Azure OpenAI Configuration\n - 2.3 Module-Level - API Usage\n- 3 Core Client Classes\n - 3.1 OpenAI and AsyncOpenAI Clients\n - - 3.2 HTTP Client Foundation\n - 3.3 Request and Response Processing\n - 3.4 - Error Handling and Retry Logic\n - 3.5 Pagination\n - 3.6 Response Wrappers\n - - 3.7 Authentication and Workload Identity\n- 4 API Resources and Endpoints\n - - 4.1 Chat Completions API\n - 4.1.1 Parameters and Configuration\n - - 4.1.2 Streaming Chat Completions\n - 4.1.3 Parsed Responses and Structured - Outputs\n - 4.2 Responses API\n - 4.2.1 Multi-Modal Inputs and Tool Integration\n - - 4.2.2 Conversation and State Management\n - 4.3 Assistants API (Beta)\n - - 4.3.1 Assistants and Configuration\n - 4.3.2 Threads and Messages\n - - 4.3.3 Runs and Execution\n - 4.3.4 Streaming Assistant Events\n - 4.4 - Fine-Tuning API\n - 4.5 Embeddings and Vector Stores\n - 4.6 File Management - and Uploads\n - 4.7 Audio, Images, and Video APIs\n - 4.8 Additional API - Resources\n - 4.9 Realtime API (Beta)\n- 5 Data Types and Type System\n - - 5.1 Type System Overview\n - 5.2 Request Parameter Types\n - 5.3 Response - Types and Models\n - 5.4 Pydantic Models and BaseModel\n - 5.5 Special Types - and Sentinels\n- 6 Data Transformation and Validation\n - 6.1 Data Transformation - Pipeline\n - 6.2 PropertyInfo and Field Metadata\n - 6.3 Type Coercion and - Construction\n - 6.4 Pydantic Compatibility Layer\n - 6.5 File Extraction - and Processing\n- 7 Advanced Features\n - 7.1 Tool Calling and Integration\n - - 7.2 Streaming and Event Handling\n - 7.3 Webhook Verification\n - 7.4 Custom - HTTP Clients and Proxies\n- 8 Development and Contribution\n - 8.1 Development - Environment Setup\n - 8.2 Testing Framework and Practices\n - 8.3 Code Quality - and Type Checking\n - 8.4 CI/CD Pipeline and Release Process\n- 9 Glossary","server_label":"deepwiki"},"output_index":1,"sequence_number":11} - - - event: response.output_item.added - - data: {"type":"response.output_item.added","item":{"id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","type":"message","status":"in_progress","content":[],"role":"assistant"},"output_index":2,"sequence_number":12} - - - event: response.content_part.added - - data: {"type":"response.content_part.added","content_index":0,"item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","output_index":2,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":""},"sequence_number":13} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"The","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"bccLHUvmQVryI","output_index":2,"sequence_number":14} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" top","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"Hu8qj7WHeXaX","output_index":2,"sequence_number":15} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"-level","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"MlcL8fehsr","output_index":2,"sequence_number":16} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" documentation","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"av","output_index":2,"sequence_number":17} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" topics","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"vB3kmvQtc","output_index":2,"sequence_number":18} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" for","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"xt7k6riLWBAz","output_index":2,"sequence_number":19} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" the","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"RHZeqeGHDS63","output_index":2,"sequence_number":20} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" repository","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"gF4bD","output_index":2,"sequence_number":21} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" open","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"OAMctE4M5Pk","output_index":2,"sequence_number":22} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"ai","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"xX16Sx1XPfYn0a","output_index":2,"sequence_number":23} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"/open","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"2vP0GIPsYBc","output_index":2,"sequence_number":24} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"ai","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"TItGiTqGXbPVk1","output_index":2,"sequence_number":25} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"-python","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"zlsCUJFjK","output_index":2,"sequence_number":26} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" are","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"4PtmI26nd7tr","output_index":2,"sequence_number":27} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":":\n\n","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"sNbydcIGIZ30Q","output_index":2,"sequence_number":28} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"1","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"SHuzUi3G6LSRiVX","output_index":2,"sequence_number":29} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"viUVcdO67peQZyg","output_index":2,"sequence_number":30} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Overview","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"AJauXRQ","output_index":2,"sequence_number":31} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"5UldlOYs77EYKzN","output_index":2,"sequence_number":32} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"2","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"X2jo92GRZiNMQZF","output_index":2,"sequence_number":33} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"vObLmTnPyZkpdME","output_index":2,"sequence_number":34} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Installation","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"W4e","output_index":2,"sequence_number":35} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"DRCemiwwZzsX","output_index":2,"sequence_number":36} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Setup","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"WtAYw4XzTU","output_index":2,"sequence_number":37} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"r1K5LPbTSD3gyz0","output_index":2,"sequence_number":38} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"3","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"x3RHB18y5HWRfwr","output_index":2,"sequence_number":39} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"UZj34SRiA6IKTKv","output_index":2,"sequence_number":40} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Core","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"Ti4xrTRl7Ix","output_index":2,"sequence_number":41} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Client","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"RMfPicGhq","output_index":2,"sequence_number":42} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Classes","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"QE8uWAC2","output_index":2,"sequence_number":43} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"f3d66VA2FJhtrdC","output_index":2,"sequence_number":44} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"4","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"h8vgXmmB5MpRBqR","output_index":2,"sequence_number":45} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"SDDUp5bbdkXYrrw","output_index":2,"sequence_number":46} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" API","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"tRBjawlVpFYS","output_index":2,"sequence_number":47} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Resources","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"GjLhUJ","output_index":2,"sequence_number":48} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"HsMZTGzAH4LQ","output_index":2,"sequence_number":49} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" End","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"oMghFqp8xVEF","output_index":2,"sequence_number":50} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"points","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"kynqezBD3Y","output_index":2,"sequence_number":51} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"Y4z3801JLibml9v","output_index":2,"sequence_number":52} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"5","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"VnAVpNZcyplyOw7","output_index":2,"sequence_number":53} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"C46HuNbgFdMeLj4","output_index":2,"sequence_number":54} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Data","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"CuYUocJPUY1","output_index":2,"sequence_number":55} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Types","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"SpFuYE6uRJ","output_index":2,"sequence_number":56} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"WU18a5jQoUyS","output_index":2,"sequence_number":57} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Type","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"VDT5dWLdueg","output_index":2,"sequence_number":58} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" System","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"ZjJc7YGX3","output_index":2,"sequence_number":59} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"ur5CPG9CsZFZGvR","output_index":2,"sequence_number":60} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"6","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"BAo33gjhPPrsQhx","output_index":2,"sequence_number":61} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"Dsoizy6ZD2KF9ll","output_index":2,"sequence_number":62} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Data","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"PWMigENfrae","output_index":2,"sequence_number":63} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Transformation","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"G","output_index":2,"sequence_number":64} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"Ua7ua85vIutj","output_index":2,"sequence_number":65} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Validation","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"o3sdV","output_index":2,"sequence_number":66} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"lWLj5ZTqiCSjC09","output_index":2,"sequence_number":67} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"7","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"qjnZ8LzPtqxAxfF","output_index":2,"sequence_number":68} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"xknaoyS8lbU2AVf","output_index":2,"sequence_number":69} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Advanced","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"yC5WT95","output_index":2,"sequence_number":70} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Features","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"VCRk00c","output_index":2,"sequence_number":71} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"jWB5tBOKypFxhlq","output_index":2,"sequence_number":72} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"8","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"THu2nJxY50RzPbX","output_index":2,"sequence_number":73} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"ClFCy4gTflvPYFT","output_index":2,"sequence_number":74} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Development","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"ot0M","output_index":2,"sequence_number":75} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" and","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"0DKWJggFU8sc","output_index":2,"sequence_number":76} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Contribution","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"0r9","output_index":2,"sequence_number":77} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"\n","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"QPTV0LCKcaJ97Pa","output_index":2,"sequence_number":78} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"9","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"v2Ajxau4fYXYEs4","output_index":2,"sequence_number":79} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":".","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"NE1kRhAe0RXRLVx","output_index":2,"sequence_number":80} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":" Gloss","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"jYsKcgmHwd","output_index":2,"sequence_number":81} - - - event: response.output_text.delta - - data: {"type":"response.output_text.delta","content_index":0,"delta":"ary","item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"obfuscation":"RCTpH0AKgcmzm","output_index":2,"sequence_number":82} - - - event: response.output_text.done - - data: {"type":"response.output_text.done","content_index":0,"item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","logprobs":[],"output_index":2,"sequence_number":83,"text":"The - top-level documentation topics for the repository openai/openai-python are:\n\n1. - Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources - and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. - Advanced Features\n8. Development and Contribution\n9. Glossary"} - - - event: response.content_part.done - - data: {"type":"response.content_part.done","content_index":0,"item_id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","output_index":2,"part":{"type":"output_text","annotations":[],"logprobs":[],"text":"The - top-level documentation topics for the repository openai/openai-python are:\n\n1. - Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources - and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. - Advanced Features\n8. Development and Contribution\n9. Glossary"},"sequence_number":84} - - - event: response.output_item.done - - data: {"type":"response.output_item.done","item":{"id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The - top-level documentation topics for the repository openai/openai-python are:\n\n1. - Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources - and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. - Advanced Features\n8. Development and Contribution\n9. Glossary"}],"role":"assistant"},"output_index":2,"sequence_number":85} - - - event: response.completed - - data: {"type":"response.completed","response":{"id":"resp_0722af8ae352ad3f006aa07565001c87d2888d98129ba16907","object":"response","created_at":1788900709,"status":"completed","background":false,"completed_at":1788900712,"error":null,"frequency_penalty":0.0,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-4.1-mini-2025-04-14","moderation":null,"output":[{"id":"mcpl_0722af8ae352ad3f006aa075650f5c87d281625e0859213571","type":"mcp_list_tools","server_label":"deepwiki","tools":[{"annotations":{"read_only":false},"description":"Get - a list of documentation topics for a GitHub repository.","input_schema":{"properties":{"repoName":{"description":"GitHub - repository in owner/repo format (e.g. \"facebook/react\").","type":"string"}},"required":["repoName"],"type":"object"},"name":"read_wiki_structure"}]},{"id":"mcp_0722af8ae352ad3f006aa07566af5087d29a17d1d98a5cc114","type":"mcp_call","status":"completed","approval_request_id":null,"arguments":"{\"repoName\":\"openai/openai-python\"}","error":null,"name":"read_wiki_structure","output":"Available - pages for openai/openai-python:\n\n- 1 Overview\n - 1.1 Architecture Overview\n - - 1.2 Project Configuration and Dependencies\n- 2 Installation and Setup\n - - 2.1 Client Configuration\n - 2.2 Azure OpenAI Configuration\n - 2.3 Module-Level - API Usage\n- 3 Core Client Classes\n - 3.1 OpenAI and AsyncOpenAI Clients\n - - 3.2 HTTP Client Foundation\n - 3.3 Request and Response Processing\n - 3.4 - Error Handling and Retry Logic\n - 3.5 Pagination\n - 3.6 Response Wrappers\n - - 3.7 Authentication and Workload Identity\n- 4 API Resources and Endpoints\n - - 4.1 Chat Completions API\n - 4.1.1 Parameters and Configuration\n - - 4.1.2 Streaming Chat Completions\n - 4.1.3 Parsed Responses and Structured - Outputs\n - 4.2 Responses API\n - 4.2.1 Multi-Modal Inputs and Tool Integration\n - - 4.2.2 Conversation and State Management\n - 4.3 Assistants API (Beta)\n - - 4.3.1 Assistants and Configuration\n - 4.3.2 Threads and Messages\n - - 4.3.3 Runs and Execution\n - 4.3.4 Streaming Assistant Events\n - 4.4 - Fine-Tuning API\n - 4.5 Embeddings and Vector Stores\n - 4.6 File Management - and Uploads\n - 4.7 Audio, Images, and Video APIs\n - 4.8 Additional API - Resources\n - 4.9 Realtime API (Beta)\n- 5 Data Types and Type System\n - - 5.1 Type System Overview\n - 5.2 Request Parameter Types\n - 5.3 Response - Types and Models\n - 5.4 Pydantic Models and BaseModel\n - 5.5 Special Types - and Sentinels\n- 6 Data Transformation and Validation\n - 6.1 Data Transformation - Pipeline\n - 6.2 PropertyInfo and Field Metadata\n - 6.3 Type Coercion and - Construction\n - 6.4 Pydantic Compatibility Layer\n - 6.5 File Extraction - and Processing\n- 7 Advanced Features\n - 7.1 Tool Calling and Integration\n - - 7.2 Streaming and Event Handling\n - 7.3 Webhook Verification\n - 7.4 Custom - HTTP Clients and Proxies\n- 8 Development and Contribution\n - 8.1 Development - Environment Setup\n - 8.2 Testing Framework and Practices\n - 8.3 Code Quality - and Type Checking\n - 8.4 CI/CD Pipeline and Release Process\n- 9 Glossary","server_label":"deepwiki"},{"id":"msg_0722af8ae352ad3f006aa07567754c87d2a48fe14096daacb4","type":"message","status":"completed","content":[{"type":"output_text","annotations":[],"logprobs":[],"text":"The - top-level documentation topics for the repository openai/openai-python are:\n\n1. - Overview\n2. Installation and Setup\n3. Core Client Classes\n4. API Resources - and Endpoints\n5. Data Types and Type System\n6. Data Transformation and Validation\n7. - Advanced Features\n8. Development and Contribution\n9. Glossary"}],"role":"assistant"}],"parallel_tool_calls":true,"presence_penalty":0.0,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":"in_memory","reasoning":{"context":null,"effort":null,"summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1.0,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tool_usage":{"image_gen":{"input_tokens":0,"input_tokens_details":{"image_tokens":0,"text_tokens":0},"output_tokens":0,"output_tokens_details":{"image_tokens":0,"text_tokens":0},"total_tokens":0},"web_search":{"num_requests":0}},"tools":[{"type":"mcp","allowed_tools":["read_wiki_structure"],"headers":null,"require_approval":"never","server_description":null,"server_label":"deepwiki","server_url":"https://mcp.deepwiki.com/mcp"}],"top_logprobs":0,"top_p":1.0,"truncation":"disabled","usage":{"input_tokens":761,"input_tokens_details":{"cache_write_tokens":0,"cached_tokens":0},"output_tokens":96,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":857},"user":null,"metadata":{}},"sequence_number":86} - - - ' - headers: - access-control-expose-headers: - - X-Request-ID - - CF-Ray - - CF-Ray - alt-svc: - - h3=":443"; ma=86400 - cf-cache-status: - - DYNAMIC - cf-ray: - - a380d556a8bcac5e-YYZ - connection: - - keep-alive - content-type: - - text/event-stream; charset=utf-8 - date: - - Tue, 08 Sep 2026 20:51:49 GMT - openai-processing-ms: - - '586' - openai-version: - - '2020-10-01' - server: - - cloudflare - strict-transport-security: - - max-age=31536000; includeSubDomains; preload - transfer-encoding: - - chunked - x-content-type-options: - - nosniff - x-request-id: - - req_cf9a14552b2849fabb25ae552af9dd6b - status: - code: 200 - message: OK -version: 1 diff --git a/py/src/braintrust/integrations/openai/test_openai.py b/py/src/braintrust/integrations/openai/test_openai.py index f8ab837a..0cd30842 100644 --- a/py/src/braintrust/integrations/openai/test_openai.py +++ b/py/src/braintrust/integrations/openai/test_openai.py @@ -3,7 +3,6 @@ import inspect import os import struct -import sys import tempfile import time import zlib @@ -1411,15 +1410,34 @@ async def test_openai_response_streaming_async(memory_logger): wrapped_client = wrap_openai(openai.AsyncOpenAI()) clients = [unwrapped_client, wrapped_client] + # OpenAI 1.x MCP parsing is incompatible with Python 3.14. + tools = [] + if Version(openai.__version__) >= Version("2.0.0"): + tools = [ + { + "type": "mcp", + "server_label": "deepwiki", + "server_url": "https://mcp.deepwiki.com/mcp", + "allowed_tools": ["read_wiki_structure"], + "require_approval": "always", + } + ] + for client in clients: start = time.time() - stream = await client.responses.create(model=TEST_MODEL, input="What's 12 + 12?", stream=True) + stream = await client.responses.create( + model=TEST_MODEL, input="What's 12 + 12?", stream=True, **({"tools": tools} if tools else {}) + ) chunks = [] + mcp_items = [] async for chunk in stream: if chunk.type == "response.output_text.delta": chunks.append(chunk.delta) + if chunk.type == "response.output_item.done" and chunk.item.type == "mcp_list_tools": + assert not hasattr(chunk.item, "status") + mcp_items.append(chunk.item.model_dump(exclude_none=True)) end = time.time() output = "".join(chunks) @@ -1427,6 +1445,8 @@ async def test_openai_response_streaming_async(memory_logger): assert len(chunks) > 1 assert "24" in output + if tools: + assert mcp_items if not _is_wrapped(client): assert not memory_logger.pop() @@ -1441,60 +1461,8 @@ async def test_openai_response_streaming_async(memory_logger): assert "What's 12 + 12?" in str(span["input"]) assert "24" in str(span["output"]) - -@pytest.mark.asyncio -@pytest.mark.vcr -@pytest.mark.parametrize("use_async", [False, True]) -@pytest.mark.skipif( - sys.version_info >= (3, 14) and Version(openai.__version__) == Version("1.92.0"), - reason="OpenAI 1.92.0 MCP parsing tries to set __discriminator__ on an immutable Python 3.14 Union", -) -async def test_openai_responses_stream_mcp_list_tools(memory_logger, use_async): - """Hosted MCP list-tools items have no status and must not break tracing.""" - try: - from openai.types.responses.response_output_item import McpListTools - - del McpListTools - except ImportError: - pytest.skip("MCP tools are not available in this OpenAI SDK version") - - client = wrap_openai(openai.AsyncOpenAI() if use_async else openai.OpenAI()) - kwargs = { - "model": RESPONSES_TOOL_MODEL, - "input": "List the top-level documentation topics for the repository openai/openai-python.", - "tools": [ - { - "type": "mcp", - "server_label": "deepwiki", - "server_url": "https://mcp.deepwiki.com/mcp", - "allowed_tools": ["read_wiki_structure"], - "require_approval": "never", - } - ], - "stream": True, - } - if use_async: - async with client: - stream = await client.responses.create(**kwargs) - async with stream: - events = [event async for event in stream] - else: - with client: - with client.responses.create(**kwargs) as stream: - events = list(stream) - - list_tools = [ - event.item - for event in events - if event.type == "response.output_item.done" and event.item.type == "mcp_list_tools" - ] - assert list_tools - assert not hasattr(list_tools[0], "status") - completed = next(event.response for event in events if event.type == "response.completed") - spans = memory_logger.pop() - span = _find_span_by_name(spans, "openai.responses.create") - assert "error" not in span - assert span["output"] == [item.model_dump(exclude_none=True) for item in completed.output] + for item in mcp_items: + assert item in span["output"] @pytest.mark.vcr