gitextract_tsktwg2s/ ├── .agents/ │ └── skills/ │ ├── code-change-verification/ │ │ ├── SKILL.md │ │ ├── agents/ │ │ │ └── openai.yaml │ │ └── scripts/ │ │ ├── run.ps1 │ │ └── run.sh │ ├── docs-sync/ │ │ ├── SKILL.md │ │ ├── agents/ │ │ │ └── openai.yaml │ │ └── references/ │ │ └── doc-coverage-checklist.md │ ├── examples-auto-run/ │ │ ├── SKILL.md │ │ ├── agents/ │ │ │ └── openai.yaml │ │ └── scripts/ │ │ └── run.sh │ ├── final-release-review/ │ │ ├── SKILL.md │ │ ├── agents/ │ │ │ └── openai.yaml │ │ ├── references/ │ │ │ └── review-checklist.md │ │ └── scripts/ │ │ └── find_latest_release_tag.sh │ ├── implementation-strategy/ │ │ ├── SKILL.md │ │ └── agents/ │ │ └── openai.yaml │ ├── openai-knowledge/ │ │ ├── SKILL.md │ │ └── agents/ │ │ └── openai.yaml │ ├── pr-draft-summary/ │ │ ├── SKILL.md │ │ └── agents/ │ │ └── openai.yaml │ └── test-coverage-improver/ │ ├── SKILL.md │ └── agents/ │ └── openai.yaml ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ ├── feature_request.md │ │ ├── model_provider.md │ │ └── question.md │ ├── PULL_REQUEST_TEMPLATE/ │ │ └── pull_request_template.md │ ├── codex/ │ │ ├── prompts/ │ │ │ ├── pr-labels.md │ │ │ └── release-review.md │ │ └── schemas/ │ │ └── pr-labels.json │ ├── dependabot.yml │ ├── scripts/ │ │ ├── detect-changes.sh │ │ ├── pr_labels.py │ │ ├── run-asyncio-teardown-stability.sh │ │ └── select-release-milestone.py │ └── workflows/ │ ├── docs.yml │ ├── issues.yml │ ├── pr-labels.yml │ ├── publish.yml │ ├── release-pr-update.yml │ ├── release-pr.yml │ ├── release-tag.yml │ ├── tests.yml │ └── update-docs.yml ├── .gitignore ├── .prettierrc ├── .vscode/ │ ├── launch.json │ └── settings.json ├── AGENTS.md ├── CLAUDE.md ├── LICENSE ├── Makefile ├── PLANS.md ├── README.md ├── docs/ │ ├── agents.md │ ├── config.md │ ├── context.md │ ├── examples.md │ ├── guardrails.md │ ├── handoffs.md │ ├── human_in_the_loop.md │ ├── index.md │ ├── ja/ │ │ ├── agents.md │ │ ├── config.md │ │ ├── context.md │ │ ├── examples.md │ │ ├── guardrails.md │ │ ├── handoffs.md │ │ ├── human_in_the_loop.md │ │ ├── index.md │ │ ├── mcp.md │ │ ├── models/ │ │ │ ├── index.md │ │ │ └── litellm.md │ │ ├── multi_agent.md │ │ ├── quickstart.md │ │ ├── realtime/ │ │ │ ├── guide.md │ │ │ ├── quickstart.md │ │ │ └── transport.md │ │ ├── release.md │ │ ├── repl.md │ │ ├── results.md │ │ ├── running_agents.md │ │ ├── sessions/ │ │ │ ├── advanced_sqlite_session.md │ │ │ ├── encrypted_session.md │ │ │ ├── index.md │ │ │ └── sqlalchemy_session.md │ │ ├── sessions.md │ │ ├── streaming.md │ │ ├── tools.md │ │ ├── tracing.md │ │ ├── usage.md │ │ ├── visualization.md │ │ └── voice/ │ │ ├── pipeline.md │ │ ├── quickstart.md │ │ └── tracing.md │ ├── ko/ │ │ ├── agents.md │ │ ├── config.md │ │ ├── context.md │ │ ├── examples.md │ │ ├── guardrails.md │ │ ├── handoffs.md │ │ ├── human_in_the_loop.md │ │ ├── index.md │ │ ├── mcp.md │ │ ├── models/ │ │ │ ├── index.md │ │ │ └── litellm.md │ │ ├── multi_agent.md │ │ ├── quickstart.md │ │ ├── realtime/ │ │ │ ├── guide.md │ │ │ ├── quickstart.md │ │ │ └── transport.md │ │ ├── release.md │ │ ├── repl.md │ │ ├── results.md │ │ ├── running_agents.md │ │ ├── sessions/ │ │ │ ├── advanced_sqlite_session.md │ │ │ ├── encrypted_session.md │ │ │ ├── index.md │ │ │ └── sqlalchemy_session.md │ │ ├── sessions.md │ │ ├── streaming.md │ │ ├── tools.md │ │ ├── tracing.md │ │ ├── usage.md │ │ ├── visualization.md │ │ └── voice/ │ │ ├── pipeline.md │ │ ├── quickstart.md │ │ └── tracing.md │ ├── llms-full.txt │ ├── llms.txt │ ├── mcp.md │ ├── models/ │ │ ├── index.md │ │ └── litellm.md │ ├── multi_agent.md │ ├── quickstart.md │ ├── realtime/ │ │ ├── guide.md │ │ ├── quickstart.md │ │ └── transport.md │ ├── ref/ │ │ ├── agent.md │ │ ├── agent_output.md │ │ ├── agent_tool_input.md │ │ ├── agent_tool_state.md │ │ ├── apply_diff.md │ │ ├── computer.md │ │ ├── editor.md │ │ ├── exceptions.md │ │ ├── extensions/ │ │ │ ├── experimental/ │ │ │ │ └── codex/ │ │ │ │ ├── codex.md │ │ │ │ ├── codex_options.md │ │ │ │ ├── codex_tool.md │ │ │ │ ├── events.md │ │ │ │ ├── exec.md │ │ │ │ ├── items.md │ │ │ │ ├── output_schema_file.md │ │ │ │ ├── payloads.md │ │ │ │ ├── thread.md │ │ │ │ ├── thread_options.md │ │ │ │ └── turn_options.md │ │ │ ├── handoff_filters.md │ │ │ ├── handoff_prompt.md │ │ │ ├── litellm.md │ │ │ ├── memory/ │ │ │ │ ├── advanced_sqlite_session.md │ │ │ │ ├── async_sqlite_session.md │ │ │ │ ├── dapr_session.md │ │ │ │ ├── encrypt_session.md │ │ │ │ ├── redis_session.md │ │ │ │ └── sqlalchemy_session.md │ │ │ ├── models/ │ │ │ │ ├── litellm_model.md │ │ │ │ └── litellm_provider.md │ │ │ ├── tool_output_trimmer.md │ │ │ └── visualization.md │ │ ├── function_schema.md │ │ ├── guardrail.md │ │ ├── handoffs/ │ │ │ └── history.md │ │ ├── handoffs.md │ │ ├── index.md │ │ ├── items.md │ │ ├── lifecycle.md │ │ ├── logger.md │ │ ├── mcp/ │ │ │ ├── manager.md │ │ │ ├── server.md │ │ │ └── util.md │ │ ├── memory/ │ │ │ ├── openai_conversations_session.md │ │ │ ├── openai_responses_compaction_session.md │ │ │ ├── session.md │ │ │ ├── session_settings.md │ │ │ ├── sqlite_session.md │ │ │ └── util.md │ │ ├── memory.md │ │ ├── model_settings.md │ │ ├── models/ │ │ │ ├── chatcmpl_converter.md │ │ │ ├── chatcmpl_helpers.md │ │ │ ├── chatcmpl_stream_handler.md │ │ │ ├── default_models.md │ │ │ ├── fake_id.md │ │ │ ├── interface.md │ │ │ ├── multi_provider.md │ │ │ ├── openai_chatcompletions.md │ │ │ ├── openai_provider.md │ │ │ └── openai_responses.md │ │ ├── prompts.md │ │ ├── realtime/ │ │ │ ├── agent.md │ │ │ ├── audio_formats.md │ │ │ ├── config.md │ │ │ ├── events.md │ │ │ ├── handoffs.md │ │ │ ├── items.md │ │ │ ├── model.md │ │ │ ├── model_events.md │ │ │ ├── model_inputs.md │ │ │ ├── openai_realtime.md │ │ │ ├── runner.md │ │ │ └── session.md │ │ ├── repl.md │ │ ├── responses_websocket_session.md │ │ ├── result.md │ │ ├── retry.md │ │ ├── run.md │ │ ├── run_config.md │ │ ├── run_context.md │ │ ├── run_error_handlers.md │ │ ├── run_internal/ │ │ │ ├── agent_runner_helpers.md │ │ │ ├── approvals.md │ │ │ ├── error_handlers.md │ │ │ ├── guardrails.md │ │ │ ├── items.md │ │ │ ├── model_retry.md │ │ │ ├── oai_conversation.md │ │ │ ├── run_loop.md │ │ │ ├── run_steps.md │ │ │ ├── session_persistence.md │ │ │ ├── streaming.md │ │ │ ├── tool_actions.md │ │ │ ├── tool_execution.md │ │ │ ├── tool_planning.md │ │ │ ├── tool_use_tracker.md │ │ │ ├── turn_preparation.md │ │ │ └── turn_resolution.md │ │ ├── run_state.md │ │ ├── stream_events.md │ │ ├── strict_schema.md │ │ ├── tool.md │ │ ├── tool_context.md │ │ ├── tool_guardrails.md │ │ ├── tracing/ │ │ │ ├── config.md │ │ │ ├── context.md │ │ │ ├── create.md │ │ │ ├── index.md │ │ │ ├── logger.md │ │ │ ├── model_tracing.md │ │ │ ├── processor_interface.md │ │ │ ├── processors.md │ │ │ ├── provider.md │ │ │ ├── scope.md │ │ │ ├── setup.md │ │ │ ├── span_data.md │ │ │ ├── spans.md │ │ │ ├── traces.md │ │ │ └── util.md │ │ ├── usage.md │ │ ├── version.md │ │ └── voice/ │ │ ├── events.md │ │ ├── exceptions.md │ │ ├── imports.md │ │ ├── input.md │ │ ├── model.md │ │ ├── models/ │ │ │ ├── openai_model_provider.md │ │ │ ├── openai_provider.md │ │ │ ├── openai_stt.md │ │ │ └── openai_tts.md │ │ ├── pipeline.md │ │ ├── pipeline_config.md │ │ ├── result.md │ │ ├── utils.md │ │ └── workflow.md │ ├── release.md │ ├── repl.md │ ├── results.md │ ├── running_agents.md │ ├── scripts/ │ │ ├── generate_ref_files.py │ │ └── translate_docs.py │ ├── sessions/ │ │ ├── advanced_sqlite_session.md │ │ ├── encrypted_session.md │ │ ├── index.md │ │ └── sqlalchemy_session.md │ ├── streaming.md │ ├── stylesheets/ │ │ └── extra.css │ ├── tools.md │ ├── tracing.md │ ├── usage.md │ ├── visualization.md │ ├── voice/ │ │ ├── pipeline.md │ │ ├── quickstart.md │ │ └── tracing.md │ └── zh/ │ ├── agents.md │ ├── config.md │ ├── context.md │ ├── examples.md │ ├── guardrails.md │ ├── handoffs.md │ ├── human_in_the_loop.md │ ├── index.md │ ├── mcp.md │ ├── models/ │ │ ├── index.md │ │ └── litellm.md │ ├── multi_agent.md │ ├── quickstart.md │ ├── realtime/ │ │ ├── guide.md │ │ ├── quickstart.md │ │ └── transport.md │ ├── release.md │ ├── repl.md │ ├── results.md │ ├── running_agents.md │ ├── sessions/ │ │ ├── advanced_sqlite_session.md │ │ ├── encrypted_session.md │ │ ├── index.md │ │ └── sqlalchemy_session.md │ ├── sessions.md │ ├── streaming.md │ ├── tools.md │ ├── tracing.md │ ├── usage.md │ ├── visualization.md │ └── voice/ │ ├── pipeline.md │ ├── quickstart.md │ └── tracing.md ├── examples/ │ ├── __init__.py │ ├── agent_patterns/ │ │ ├── README.md │ │ ├── agents_as_tools.py │ │ ├── agents_as_tools_conditional.py │ │ ├── agents_as_tools_streaming.py │ │ ├── agents_as_tools_structured.py │ │ ├── deterministic.py │ │ ├── forcing_tool_use.py │ │ ├── human_in_the_loop.py │ │ ├── human_in_the_loop_custom_rejection.py │ │ ├── human_in_the_loop_stream.py │ │ ├── input_guardrails.py │ │ ├── llm_as_a_judge.py │ │ ├── output_guardrails.py │ │ ├── parallelization.py │ │ ├── routing.py │ │ └── streaming_guardrails.py │ ├── auto_mode.py │ ├── basic/ │ │ ├── agent_lifecycle_example.py │ │ ├── dynamic_system_prompt.py │ │ ├── hello_world.py │ │ ├── hello_world_gpt_5.py │ │ ├── hello_world_gpt_oss.py │ │ ├── hello_world_jupyter.ipynb │ │ ├── image_tool_output.py │ │ ├── lifecycle_example.py │ │ ├── local_file.py │ │ ├── local_image.py │ │ ├── non_strict_output_type.py │ │ ├── previous_response_id.py │ │ ├── prompt_template.py │ │ ├── remote_image.py │ │ ├── remote_pdf.py │ │ ├── retry.py │ │ ├── retry_litellm.py │ │ ├── stream_function_call_args.py │ │ ├── stream_items.py │ │ ├── stream_text.py │ │ ├── stream_ws.py │ │ ├── tool_guardrails.py │ │ ├── tools.py │ │ └── usage_tracking.py │ ├── customer_service/ │ │ └── main.py │ ├── financial_research_agent/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agents/ │ │ │ ├── __init__.py │ │ │ ├── financials_agent.py │ │ │ ├── planner_agent.py │ │ │ ├── risk_agent.py │ │ │ ├── search_agent.py │ │ │ ├── verifier_agent.py │ │ │ └── writer_agent.py │ │ ├── main.py │ │ ├── manager.py │ │ └── printer.py │ ├── handoffs/ │ │ ├── message_filter.py │ │ └── message_filter_streaming.py │ ├── hosted_mcp/ │ │ ├── __init__.py │ │ ├── connectors.py │ │ ├── human_in_the_loop.py │ │ ├── on_approval.py │ │ └── simple.py │ ├── mcp/ │ │ ├── filesystem_example/ │ │ │ ├── README.md │ │ │ ├── main.py │ │ │ └── sample_files/ │ │ │ ├── favorite_books.txt │ │ │ ├── favorite_cities.txt │ │ │ └── favorite_songs.txt │ │ ├── get_all_mcp_tools_example/ │ │ │ ├── README.md │ │ │ ├── main.py │ │ │ └── sample_files/ │ │ │ ├── books.txt │ │ │ └── favorite_songs.txt │ │ ├── git_example/ │ │ │ ├── README.md │ │ │ └── main.py │ │ ├── manager_example/ │ │ │ ├── README.md │ │ │ ├── app.py │ │ │ └── mcp_server.py │ │ ├── prompt_server/ │ │ │ ├── README.md │ │ │ ├── main.py │ │ │ └── server.py │ │ ├── sse_example/ │ │ │ ├── README.md │ │ │ ├── main.py │ │ │ └── server.py │ │ ├── sse_remote_example/ │ │ │ ├── README.md │ │ │ └── main.py │ │ ├── streamable_http_remote_example/ │ │ │ ├── README.md │ │ │ └── main.py │ │ ├── streamablehttp_custom_client_example/ │ │ │ ├── README.md │ │ │ ├── main.py │ │ │ └── server.py │ │ ├── streamablehttp_example/ │ │ │ ├── README.md │ │ │ ├── main.py │ │ │ └── server.py │ │ └── tool_filter_example/ │ │ ├── README.md │ │ ├── main.py │ │ └── sample_files/ │ │ ├── books.txt │ │ └── favorite_songs.txt │ ├── memory/ │ │ ├── advanced_sqlite_session_example.py │ │ ├── compaction_session_example.py │ │ ├── compaction_session_stateless_example.py │ │ ├── dapr_session_example.py │ │ ├── encrypted_session_example.py │ │ ├── file_hitl_example.py │ │ ├── file_session.py │ │ ├── hitl_session_scenario.py │ │ ├── memory_session_hitl_example.py │ │ ├── openai_session_example.py │ │ ├── openai_session_hitl_example.py │ │ ├── redis_session_example.py │ │ ├── sqlalchemy_session_example.py │ │ └── sqlite_session_example.py │ ├── model_providers/ │ │ ├── README.md │ │ ├── custom_example_agent.py │ │ ├── custom_example_global.py │ │ ├── custom_example_provider.py │ │ ├── litellm_auto.py │ │ └── litellm_provider.py │ ├── realtime/ │ │ ├── app/ │ │ │ ├── README.md │ │ │ ├── agent.py │ │ │ ├── server.py │ │ │ └── static/ │ │ │ ├── app.js │ │ │ ├── audio-playback.worklet.js │ │ │ ├── audio-recorder.worklet.js │ │ │ └── index.html │ │ ├── cli/ │ │ │ └── demo.py │ │ ├── twilio/ │ │ │ ├── README.md │ │ │ ├── __init__.py │ │ │ ├── requirements.txt │ │ │ ├── server.py │ │ │ └── twilio_handler.py │ │ └── twilio_sip/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agents.py │ │ ├── requirements.txt │ │ └── server.py │ ├── reasoning_content/ │ │ ├── __init__.py │ │ ├── gpt_oss_stream.py │ │ ├── main.py │ │ └── runner_example.py │ ├── research_bot/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── agents/ │ │ │ ├── __init__.py │ │ │ ├── planner_agent.py │ │ │ ├── search_agent.py │ │ │ └── writer_agent.py │ │ ├── main.py │ │ ├── manager.py │ │ ├── printer.py │ │ └── sample_outputs/ │ │ ├── product_recs.md │ │ ├── product_recs.txt │ │ ├── vacation.md │ │ └── vacation.txt │ ├── run_examples.py │ ├── tools/ │ │ ├── apply_patch.py │ │ ├── code_interpreter.py │ │ ├── codex.py │ │ ├── codex_same_thread.py │ │ ├── computer_use.py │ │ ├── container_shell_inline_skill.py │ │ ├── container_shell_skill_reference.py │ │ ├── file_search.py │ │ ├── image_generator.py │ │ ├── local_shell_skill.py │ │ ├── shell.py │ │ ├── shell_human_in_the_loop.py │ │ ├── skills/ │ │ │ └── csv-workbench/ │ │ │ ├── SKILL.md │ │ │ └── playbook.md │ │ ├── tool_search.py │ │ ├── web_search.py │ │ └── web_search_filters.py │ └── voice/ │ ├── __init__.py │ ├── static/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── main.py │ │ └── util.py │ └── streamed/ │ ├── README.md │ ├── __init__.py │ ├── main.py │ └── my_workflow.py ├── mkdocs.yml ├── pyproject.toml ├── pyrightconfig.json ├── src/ │ └── agents/ │ ├── __init__.py │ ├── _config.py │ ├── _debug.py │ ├── _mcp_tool_metadata.py │ ├── _tool_identity.py │ ├── agent.py │ ├── agent_output.py │ ├── agent_tool_input.py │ ├── agent_tool_state.py │ ├── apply_diff.py │ ├── computer.py │ ├── editor.py │ ├── exceptions.py │ ├── extensions/ │ │ ├── __init__.py │ │ ├── experimental/ │ │ │ ├── __init__.py │ │ │ └── codex/ │ │ │ ├── __init__.py │ │ │ ├── codex.py │ │ │ ├── codex_options.py │ │ │ ├── codex_tool.py │ │ │ ├── events.py │ │ │ ├── exec.py │ │ │ ├── items.py │ │ │ ├── output_schema_file.py │ │ │ ├── payloads.py │ │ │ ├── thread.py │ │ │ ├── thread_options.py │ │ │ └── turn_options.py │ │ ├── handoff_filters.py │ │ ├── handoff_prompt.py │ │ ├── memory/ │ │ │ ├── __init__.py │ │ │ ├── advanced_sqlite_session.py │ │ │ ├── async_sqlite_session.py │ │ │ ├── dapr_session.py │ │ │ ├── encrypt_session.py │ │ │ ├── redis_session.py │ │ │ └── sqlalchemy_session.py │ │ ├── models/ │ │ │ ├── __init__.py │ │ │ ├── litellm_model.py │ │ │ └── litellm_provider.py │ │ ├── tool_output_trimmer.py │ │ └── visualization.py │ ├── function_schema.py │ ├── guardrail.py │ ├── handoffs/ │ │ ├── __init__.py │ │ └── history.py │ ├── items.py │ ├── lifecycle.py │ ├── logger.py │ ├── mcp/ │ │ ├── __init__.py │ │ ├── manager.py │ │ ├── server.py │ │ └── util.py │ ├── memory/ │ │ ├── __init__.py │ │ ├── openai_conversations_session.py │ │ ├── openai_responses_compaction_session.py │ │ ├── session.py │ │ ├── session_settings.py │ │ ├── sqlite_session.py │ │ └── util.py │ ├── model_settings.py │ ├── models/ │ │ ├── __init__.py │ │ ├── _openai_retry.py │ │ ├── _openai_shared.py │ │ ├── _retry_runtime.py │ │ ├── chatcmpl_converter.py │ │ ├── chatcmpl_helpers.py │ │ ├── chatcmpl_stream_handler.py │ │ ├── default_models.py │ │ ├── fake_id.py │ │ ├── interface.py │ │ ├── multi_provider.py │ │ ├── openai_chatcompletions.py │ │ ├── openai_provider.py │ │ ├── openai_responses.py │ │ └── reasoning_content_replay.py │ ├── prompts.py │ ├── py.typed │ ├── realtime/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── _default_tracker.py │ │ ├── _util.py │ │ ├── agent.py │ │ ├── audio_formats.py │ │ ├── config.py │ │ ├── events.py │ │ ├── handoffs.py │ │ ├── items.py │ │ ├── model.py │ │ ├── model_events.py │ │ ├── model_inputs.py │ │ ├── openai_realtime.py │ │ ├── runner.py │ │ └── session.py │ ├── repl.py │ ├── responses_websocket_session.py │ ├── result.py │ ├── retry.py │ ├── run.py │ ├── run_config.py │ ├── run_context.py │ ├── run_error_handlers.py │ ├── run_internal/ │ │ ├── __init__.py │ │ ├── _asyncio_progress.py │ │ ├── agent_runner_helpers.py │ │ ├── approvals.py │ │ ├── error_handlers.py │ │ ├── guardrails.py │ │ ├── items.py │ │ ├── model_retry.py │ │ ├── oai_conversation.py │ │ ├── run_loop.py │ │ ├── run_steps.py │ │ ├── session_persistence.py │ │ ├── streaming.py │ │ ├── tool_actions.py │ │ ├── tool_execution.py │ │ ├── tool_planning.py │ │ ├── tool_use_tracker.py │ │ ├── turn_preparation.py │ │ └── turn_resolution.py │ ├── run_state.py │ ├── stream_events.py │ ├── strict_schema.py │ ├── tool.py │ ├── tool_context.py │ ├── tool_guardrails.py │ ├── tracing/ │ │ ├── __init__.py │ │ ├── config.py │ │ ├── context.py │ │ ├── create.py │ │ ├── logger.py │ │ ├── model_tracing.py │ │ ├── processor_interface.py │ │ ├── processors.py │ │ ├── provider.py │ │ ├── scope.py │ │ ├── setup.py │ │ ├── span_data.py │ │ ├── spans.py │ │ ├── traces.py │ │ └── util.py │ ├── usage.py │ ├── util/ │ │ ├── __init__.py │ │ ├── _approvals.py │ │ ├── _coro.py │ │ ├── _error_tracing.py │ │ ├── _json.py │ │ ├── _pretty_print.py │ │ ├── _transforms.py │ │ └── _types.py │ ├── version.py │ └── voice/ │ ├── __init__.py │ ├── events.py │ ├── exceptions.py │ ├── imports.py │ ├── input.py │ ├── model.py │ ├── models/ │ │ ├── __init__.py │ │ ├── openai_model_provider.py │ │ ├── openai_stt.py │ │ └── openai_tts.py │ ├── pipeline.py │ ├── pipeline_config.py │ ├── result.py │ ├── utils.py │ └── workflow.py └── tests/ ├── README.md ├── __init__.py ├── conftest.py ├── extensions/ │ ├── experiemental/ │ │ └── codex/ │ │ ├── test_codex_exec_thread.py │ │ └── test_codex_tool.py │ ├── memory/ │ │ ├── test_advanced_sqlite_session.py │ │ ├── test_async_sqlite_session.py │ │ ├── test_dapr_redis_integration.py │ │ ├── test_dapr_session.py │ │ ├── test_encrypt_session.py │ │ ├── test_redis_session.py │ │ └── test_sqlalchemy_session.py │ └── test_tool_output_trimmer.py ├── fake_model.py ├── fastapi/ │ ├── __init__.py │ ├── streaming_app.py │ └── test_streaming_context.py ├── mcp/ │ ├── __init__.py │ ├── helpers.py │ ├── test_caching.py │ ├── test_client_session_retries.py │ ├── test_connect_disconnect.py │ ├── test_mcp_approval.py │ ├── test_mcp_auth_params.py │ ├── test_mcp_server_manager.py │ ├── test_mcp_tracing.py │ ├── test_mcp_util.py │ ├── test_message_handler.py │ ├── test_prompt_server.py │ ├── test_runner_calls_mcp.py │ ├── test_server_errors.py │ ├── test_streamable_http_client_factory.py │ ├── test_streamable_http_session_id.py │ └── test_tool_filtering.py ├── memory/ │ └── test_openai_responses_compaction_session.py ├── model_settings/ │ └── test_serialization.py ├── models/ │ ├── __init__.py │ ├── test_deepseek_reasoning_content.py │ ├── test_default_models.py │ ├── test_kwargs_functionality.py │ ├── test_litellm_chatcompletions_stream.py │ ├── test_litellm_extra_body.py │ ├── test_litellm_logging_patch.py │ ├── test_litellm_user_agent.py │ ├── test_map.py │ └── test_reasoning_content_replay_hook.py ├── realtime/ │ ├── __init__.py │ ├── test_agent.py │ ├── test_audio_formats_unit.py │ ├── test_conversion_helpers.py │ ├── test_ga_session_update_normalization.py │ ├── test_item_parsing.py │ ├── test_model_events.py │ ├── test_openai_realtime.py │ ├── test_openai_realtime_conversions.py │ ├── test_openai_realtime_sip_model.py │ ├── test_playback_tracker.py │ ├── test_playback_tracker_manual_unit.py │ ├── test_realtime_handoffs.py │ ├── test_realtime_model_settings.py │ ├── test_runner.py │ ├── test_session.py │ ├── test_session_payload_and_formats.py │ ├── test_tracing.py │ └── test_twilio_sip_server.py ├── test_agent_as_tool.py ├── test_agent_clone_shallow_copy.py ├── test_agent_config.py ├── test_agent_hooks.py ├── test_agent_instructions_signature.py ├── test_agent_llm_hooks.py ├── test_agent_memory_leak.py ├── test_agent_prompt.py ├── test_agent_runner.py ├── test_agent_runner_streamed.py ├── test_agent_runner_sync.py ├── test_agent_tool_input.py ├── test_agent_tool_state.py ├── test_agent_tracing.py ├── test_agents_logging.py ├── test_anthropic_thinking_blocks.py ├── test_apply_diff.py ├── test_apply_diff_helpers.py ├── test_apply_patch_tool.py ├── test_asyncio_progress.py ├── test_call_model_input_filter.py ├── test_call_model_input_filter_unit.py ├── test_cancel_streaming.py ├── test_computer_action.py ├── test_computer_tool_lifecycle.py ├── test_config.py ├── test_debug.py ├── test_doc_parsing.py ├── test_example_workflows.py ├── test_extended_thinking_message_order.py ├── test_extension_filters.py ├── test_extra_headers.py ├── test_function_schema.py ├── test_function_tool.py ├── test_function_tool_decorator.py ├── test_gemini_thought_signatures.py ├── test_gemini_thought_signatures_stream.py ├── test_global_hooks.py ├── test_guardrails.py ├── test_handoff_history_duplication.py ├── test_handoff_prompt.py ├── test_handoff_tool.py ├── test_hitl_error_scenarios.py ├── test_hitl_session_scenario.py ├── test_hitl_utils.py ├── test_items_helpers.py ├── test_local_shell_tool.py ├── test_logprobs.py ├── test_max_turns.py ├── test_model_payload_iterators.py ├── test_model_retry.py ├── test_openai_chatcompletions.py ├── test_openai_chatcompletions_converter.py ├── test_openai_chatcompletions_stream.py ├── test_openai_conversations_session.py ├── test_openai_responses.py ├── test_openai_responses_converter.py ├── test_output_tool.py ├── test_pr_labels.py ├── test_pretty_print.py ├── test_process_model_response.py ├── test_reasoning_content.py ├── test_remove_openai_responses_api_incompatible_fields.py ├── test_repl.py ├── test_responses.py ├── test_responses_tracing.py ├── test_responses_websocket_session.py ├── test_result_cast.py ├── test_run.py ├── test_run_config.py ├── test_run_context_approvals.py ├── test_run_context_wrapper.py ├── test_run_error_details.py ├── test_run_hooks.py ├── test_run_impl_resume_paths.py ├── test_run_internal_error_handlers.py ├── test_run_internal_items.py ├── test_run_state.py ├── test_run_step_execution.py ├── test_run_step_processing.py ├── test_runner_guardrail_resume.py ├── test_server_conversation_tracker.py ├── test_session.py ├── test_session_exceptions.py ├── test_session_limit.py ├── test_shell_call_serialization.py ├── test_shell_tool.py ├── test_soft_cancel.py ├── test_source_compat_constructors.py ├── test_stream_events.py ├── test_stream_input_guardrail_timing.py ├── test_streaming_logging.py ├── test_streaming_tool_call_arguments.py ├── test_strict_schema.py ├── test_strict_schema_oneof.py ├── test_tool_choice_reset.py ├── test_tool_context.py ├── test_tool_converter.py ├── test_tool_guardrails.py ├── test_tool_metadata.py ├── test_tool_output_conversion.py ├── test_tool_use_behavior.py ├── test_tool_use_tracker.py ├── test_trace_processor.py ├── test_tracing.py ├── test_tracing_errors.py ├── test_tracing_errors_streamed.py ├── test_tracing_provider_safe_debug.py ├── test_usage.py ├── test_visualization.py ├── testing_processor.py ├── tracing/ │ ├── test_import_side_effects.py │ ├── test_logger.py │ ├── test_processor_api_key.py │ ├── test_set_api_key_fix.py │ ├── test_setup.py │ ├── test_trace_context.py │ ├── test_traces_impl.py │ └── test_tracing_env_disable.py ├── utils/ │ ├── factories.py │ ├── hitl.py │ ├── simple_session.py │ ├── test_json.py │ └── test_simple_session.py └── voice/ ├── __init__.py ├── fake_models.py ├── helpers.py ├── test_input.py ├── test_openai_stt.py ├── test_openai_tts.py ├── test_pipeline.py └── test_workflow.py