You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by da...@apache.org on 2026/10/18 09:57:14 UTC
(airflow) branch dabla/agent-async/01-task-agent-aexecute updated (d0918575ed4 -> df446fb3ebc)
This is an automated email from the ASF dual-hosted git repository.
dabla pushed a change to branch dabla/agent-async/01-task-agent-aexecute
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard d0918575ed4 Add native async execution to AgentOperator and @task.agent
discard 274a7cdfdf5 Use get_async_extra_dejson from common.compat
discard 0abf0f231e8 Add async aget_conn and acreate_agent to PydanticAIHook
add a31a6a340e3 Render docs mermaid diagrams at build time so they show on airflow.apache.org (#74757)
add c72d0072a10 Close German Translation Gaps 2026-10-14 (#74760)
add 42945d62b1f Upgrade Task Loop UX (#74671)
add fa7c5899a99 Let LLMBatchOperator request_params be templated (#74751)
add 5b32faffff8 Implement delta argument coercion (#74749)
add 4e8ab38306f Fix HookToolset calls to hook methods that take a datetime (#74759)
add 6a134fa4d03 dbt Cloud: emit OpenLineage events via the OpenLineage public API (#74754)
add a87c6ddb52a Allow downgrading past the TI ownership migration when data is present (#74407)
add 937dfb6894d Fix CI image build after mprocs was renamed to dekit (#74715)
add 0a66ba0c468 Update my CODEOWNERS entries to focus on AI providers and the registry (#74795)
add cf839aca896 Fix JWT token not refreshed when token expires mid-request (#68499)
add 5a6ab34fd51 Fix flaky in-process Execution API transport lifecycle test on MySQL (#74785)
add 868d791a17c Add an OpenAI Agents SDK adapter for `common.ai` toolsets (#74767)
add 6cf83327d46 UI: Drop the loading spinner for base React plugins (#74762)
add 04572ba9500 Run the OpenAI Agents adapter tests in the agent framework CI job (#74768)
add 7a55044c0fa Re-enable backporting to v3-4-test for the 3.4.0 RC phase (#74798)
add bb140716849 Re lock uv.lock after new provider versions got stampped. (#74799)
add c65451f5397 Walk through the reviewer's side of Common AI approval gates (#74737)
add 5ab698987f9 Allow durable agent execution with a `CodeMode` capability (#74735)
add bbf2c5b1c47 Fix Lang-SDK decoder typing for pydantic 2.14 TypeForm signature (#74628)
add e2237bfc7ee UI: Guard the remaining RadioCardRoot values instead of casting (#74743)
add 7c2c9226e0f Let retry policies reschedule a task without using a retry (#74719)
add fc12cb2ca8f Document progressive tool disclosure for Common AI toolsets (#74736)
add 098d0174731 Report a Dag whose timetable fails to load as an import error (#74709)
add 61f1d4b85e1 Resolve a trigger's XCom requests as its deferred task instance (#74772)
add 637b741f1a6 Pass Dag runs directly to Deadline references (#70714)
add 53c83b952b1 Record OpenAI Agents SDK traces as the Airflow task's OpenTelemetry spans (#74769)
add 03f45f3ad51 Update the DMS replication_task_modified waiter states (#74522)
add 62641fa9ac0 Fix CLI --bundle-name finding no Dags in Git bundles (#73377)
add efb49f5e36d Stop prek hooks changing uv.lock and fail CI when it is stale (#74803)
add 5941f0c19e0 Update providers metadata 2026-10-13 (#74648)
add ce0a1c474c9 add WasbDagBundle to load Dags from Azure Blob Storage (#67016)
add 665b94999c3 Java SDK: Reject byte arrays instead of letting the task hang (#74218)
add e1d881b5c4f Fix `SSHRemoteJobOperator` mangling environment values with spaces or shell characters (#74810)
add 736c349cdca Fingerprint durable agent steps that hold sets or values that are not JSON (#71575)
add 6997dc76fe5 Add async aget_conn and acreate_embeddings to OpenAIHook (#74149)
add fe61a18abda Add async aget_conn and acreate_agent to PydanticAIHook
add 70d22b8dfe9 Use get_async_extra_dejson from common.compat
add 158be99963b Resolve the async PydanticAIHook paths in a worker thread
add df446fb3ebc Add native async execution to AgentOperator and @task.agent
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (d0918575ed4)
\
N -- N -- N refs/heads/dabla/agent-async/01-task-agent-aexecute (df446fb3ebc)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.github/CODEOWNERS | 4 +-
.github/boring-cyborg.yml | 29 +-
.github/workflows/agent-framework-tests.yml | 4 +-
.github/workflows/automatic-backport.yml | 2 +-
.pre-commit-config.yaml | 20 +-
Dockerfile.ci | 6 +-
RELEASE_NOTES.rst | 24 +
.../administration-and-deployment/dag-bundles.rst | 3 +
airflow-core/docs/core-concepts/tasks.rst | 89 +-
airflow-core/docs/howto/deadline-alerts.rst | 25 +-
airflow-core/newsfragments/70714.significant.rst | 1 +
airflow-core/newsfragments/74709.bugfix.rst | 1 +
.../api_fastapi/core_api/datamodels/ui/grid.py | 3 +
.../api_fastapi/core_api/openapi/_private_ui.yaml | 15 +
.../core_api/openapi/v2-rest-api-generated.yaml | 32 +-
.../core_api/routes/public/task_instances.py | 19 +-
.../api_fastapi/core_api/routes/ui/gantt.py | 10 +-
.../airflow/api_fastapi/core_api/routes/ui/grid.py | 46 +-
.../core_api/services/public/task_coordinates.py | 23 +-
.../api_fastapi/core_api/services/ui/grid.py | 21 +-
.../src/airflow/api_fastapi/execution_api/app.py | 39 +-
.../api_fastapi/execution_api/in_process.py | 15 +-
.../api_fastapi/execution_api/routes/xcoms.py | 141 +-
.../airflow/api_fastapi/execution_api/security.py | 1 +
.../src/airflow/cli/commands/dag_command.py | 2 +
.../src/airflow/dag_processing/collection.py | 27 +
.../airflow/dag_processing/lang_sdk_processor.py | 11 +-
.../src/airflow/dag_processing/processor.py | 11 +-
.../airflow/example_dags/example_retry_policy.py | 26 +-
.../src/airflow/jobs/triggerer_job_runner.py | 58 +-
.../0142_3_4_0_unify_task_attempt_ownership.py | 263 ++-
airflow-core/src/airflow/models/deadline.py | 139 +-
airflow-core/src/airflow/models/taskinstance.py | 41 +-
airflow-core/src/airflow/models/trigger.py | 18 +-
.../src/airflow/serialization/definitions/dag.py | 2 +-
.../airflow/serialization/definitions/deadline.py | 90 +-
.../ui/openapi-gen/queries/ensureQueryData.ts | 4 +-
.../src/airflow/ui/openapi-gen/queries/prefetch.ts | 4 +-
.../src/airflow/ui/openapi-gen/queries/queries.ts | 4 +-
.../src/airflow/ui/openapi-gen/queries/suspense.ts | 4 +-
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 28 +
.../ui/openapi-gen/requests/services.gen.ts | 6 +-
.../airflow/ui/openapi-gen/requests/types.gen.ts | 9 +
.../airflow/ui/public/i18n/locales/de/admin.json | 1 +
.../airflow/ui/public/i18n/locales/de/common.json | 11 +
.../ui/public/i18n/locales/de/components.json | 8 +-
.../src/airflow/ui/public/i18n/locales/de/dag.json | 48 +
.../airflow/ui/public/i18n/locales/de/dags.json | 12 +-
.../airflow/ui/public/i18n/locales/en/common.json | 7 +
.../src/airflow/ui/public/i18n/locales/en/dag.json | 18 +-
.../ui/src/components/ActionAccordion/columns.tsx | 2 +
.../ui/src/components/Breadcrumb/CrumbSwitcher.tsx | 18 +-
.../ui/src/components/Clear/Run/ClearRunDialog.tsx | 68 +-
.../TaskInstance/ClearGroupTaskInstanceDialog.tsx | 50 +-
.../Clear/TaskInstance/ClearTaskInstanceDialog.tsx | 17 +-
.../src/components/DagActions/RunBackfillForm.tsx | 11 +-
.../components/FilterBar/filters/LoopFilter.tsx | 167 ++
.../FilterBar/filters/loopParams.test.ts | 73 +
.../src/components/FilterBar/filters/loopParams.ts | 60 +
.../airflow/ui/src/components/Graph/TaskLink.tsx | 17 +-
.../airflow/ui/src/components/Graph/TaskNode.tsx | 3 +
.../airflow/ui/src/components/LoopOptionLabel.tsx | 76 +
.../TaskInstance/MarkTaskInstanceAsDialog.tsx | 14 +-
.../ui/src/components/TaskInstanceTooltip.test.tsx | 25 +
.../ui/src/components/TaskInstanceTooltip.tsx | 18 +-
.../src/airflow/ui/src/components/TaskName.tsx | 22 +-
.../src/components/TriggerDag/TriggerDAGForm.tsx | 16 +-
.../airflow/ui/src/components/TriggerDag/types.ts | 5 +-
.../src/airflow/ui/src/constants/filterConfigs.tsx | 12 +
.../ui/src/constants/reprocessBehaviourParams.ts | 8 +-
.../src/airflow/ui/src/constants/searchParams.ts | 3 +-
.../ui/src/hooks/useResolvePassCoordinate.test.ts | 110 ++
.../ui/src/hooks/useResolvePassCoordinate.ts | 87 +
.../ui/src/hooks/useTaskInstanceCoordinates.ts | 1 +
.../ui/src/layouts/Details/DagBreadcrumb.test.tsx | 50 +-
.../ui/src/layouts/Details/DagBreadcrumb.tsx | 60 +-
.../layouts/Details/Gantt/GanttTimeline.test.tsx | 139 +-
.../ui/src/layouts/Details/Gantt/GanttTimeline.tsx | 43 +-
.../airflow/ui/src/layouts/Details/Gantt/utils.ts | 10 +
.../airflow/ui/src/layouts/Details/Grid/Grid.tsx | 9 +-
.../ui/src/layouts/Details/Grid/GridTI.test.tsx | 4 +-
.../airflow/ui/src/layouts/Details/Grid/GridTI.tsx | 8 +-
.../ui/src/layouts/Details/Grid/TaskNames.tsx | 25 +-
.../layouts/Details/IterationSwitcherButton.tsx | 121 ++
.../src/airflow/ui/src/layouts/Details/NavTabs.tsx | 87 +-
.../ui/src/pages/Dag/Backfills/Backfills.tsx | 11 +-
.../pages/GroupTaskInstance/GroupTaskInstance.tsx | 1 -
.../GroupTaskInstance/GroupTaskInstances.test.tsx | 93 --
.../pages/GroupTaskInstance/GroupTaskInstances.tsx | 29 +-
.../LoopIterations/IterationSelect.test.tsx | 107 --
.../LoopIterations/IterationSelect.tsx | 155 --
.../GroupTaskInstance/LoopIterations/index.ts | 19 -
.../LoopIterations/loopUtils.test.ts | 24 +-
.../GroupTaskInstance/LoopIterations/loopUtils.ts | 17 +-
.../GroupTaskInstance/useLoopOutcomeStats.tsx | 4 +-
.../src/airflow/ui/src/pages/ReactPlugin.test.tsx | 17 +
.../src/airflow/ui/src/pages/ReactPlugin.tsx | 4 +-
.../airflow/ui/src/pages/Run/Execution.test.tsx | 490 ------
.../src/airflow/ui/src/pages/Run/Execution.tsx | 325 ----
airflow-core/src/airflow/ui/src/pages/Run/Run.tsx | 1 -
.../pages/Task/Overview/LoopHistoryChart.test.tsx | 2 +-
.../src/pages/Task/Overview/LoopHistoryChart.tsx | 2 +-
.../airflow/ui/src/pages/TaskInstance/Header.tsx | 15 +
.../src/pages/TaskInstance/TaskInstance.test.tsx | 2 +-
.../ui/src/pages/TaskInstance/TaskInstance.tsx | 10 +-
.../src/pages/TaskInstances/TaskInstances.test.tsx | 42 +-
.../ui/src/pages/TaskInstances/TaskInstances.tsx | 58 +-
.../pages/TaskInstances/TaskInstancesFilter.tsx | 33 +-
.../pages/TaskStateStore/TaskStateStoreModal.tsx | 9 +-
.../src/airflow/ui/src/queries/useGridStructure.ts | 32 +-
.../src/airflow/ui/src/queries/useIsLoopGroup.ts | 72 +
.../ui/src/queries/useLoopFilterOptions.test.ts | 109 ++
.../airflow/ui/src/queries/useLoopFilterOptions.ts | 180 +++
.../src/airflow/ui/src/queries/useLoopSummary.ts | 9 +-
airflow-core/src/airflow/ui/src/router.tsx | 2 -
.../ui/src/system-components/Modal/Modal.test.tsx | 29 +-
.../ui/src/system-components/Modal/Modal.tsx | 33 +-
.../airflow/ui/src/utils/executionParams.test.ts | 35 +-
.../src/airflow/ui/src/utils/executionParams.ts | 32 +-
.../src/airflow/ui/src/utils/useFiltersHandler.ts | 1 +
airflow-core/src/airflow/utils/cli.py | 2 +
.../core_api/routes/public/test_task_instances.py | 17 +
.../api_fastapi/core_api/routes/ui/test_gantt.py | 29 +
.../api_fastapi/core_api/routes/ui/test_grid.py | 32 +
.../unit/api_fastapi/execution_api/test_app.py | 4 +
.../execution_api/versions/head/test_router.py | 92 +-
.../execution_api/versions/head/test_xcoms.py | 156 ++
.../tests/unit/cli/commands/test_dag_command.py | 69 +
.../tests/unit/dag_processing/test_collection.py | 44 +
airflow-core/tests/unit/jobs/test_triggerer_job.py | 207 ++-
.../test_0142_unify_task_attempt_ownership.py | 530 +++++-
airflow-core/tests/unit/models/test_deadline.py | 257 +--
.../tests/unit/models/test_deadline_alert.py | 84 +-
.../tests/unit/models/test_mappedoperator.py | 126 ++
.../tests/unit/models/test_taskinstance.py | 2 +-
airflow-core/tests/unit/models/test_trigger.py | 27 +-
airflow-core/tests/unit/utils/test_cli_util.py | 60 +
contributing-docs/07_local_virtualenv.rst | 8 +-
.../src/airflow_breeze/utils/selective_checks.py | 1 -
.../src/airflow_breeze/utils/verification_plan.py | 5 +
dev/breeze/tests/test_selective_checks.py | 50 +-
dev/breeze/tests/test_shim_version_check.py | 4 +-
dev/breeze/tests/test_verification_plan.py | 12 +
devel-common/pyproject.toml | 2 +-
devel-common/src/docs/README.rst | 19 +
devel-common/src/docs/build_docs.py | 37 +
devel-common/src/docs/utils/conf_constants.py | 2 +-
devel-common/src/sphinx_exts/mermaid_config.json | 3 +
.../src/sphinx_exts/mermaid_puppeteer_config.json | 3 +
devel-common/src/sphinx_exts/mermaid_svg.py | 66 +
.../docs_build/test_build_docs_mermaid.py | 104 ++
...python_builtin_xrefs.py => test_mermaid_svg.py} | 69 +-
generated/provider_metadata.json | 422 +++++
.../main/kotlin/org/apache/airflow/sdk/Client.kt | 5 +-
.../org/apache/airflow/sdk/execution/MsgPack.kt | 13 +-
.../org/apache/airflow/sdk/execution/CommTest.kt | 34 +
.../airflow/providers/amazon/aws/waiters/dms.json | 4 +-
.../tests/unit/amazon/aws/waiters/test_dms.py | 36 +-
providers/common/ai/README.rst | 2 +-
providers/common/ai/docs/approval_gates.rst | 211 ++-
providers/common/ai/docs/capabilities.rst | 5 +-
providers/common/ai/docs/code_mode.rst | 5 +-
providers/common/ai/docs/durable_execution.rst | 82 +-
providers/common/ai/docs/features.rst | 10 +-
providers/common/ai/docs/frameworks/index.rst | 39 +-
.../common/ai/docs/frameworks/openai_agents.rst | 162 ++
providers/common/ai/docs/hooks/pydantic_ai.rst | 19 +
.../ai/docs/img/approval_required_actions.png | Bin 0 -> 78595 bytes
.../common/ai/docs/img/approval_review_form.png | Bin 0 -> 95532 bytes
providers/common/ai/docs/index.rst | 2 +-
providers/common/ai/docs/observability.rst | 42 +-
providers/common/ai/docs/operators/agent.rst | 13 +-
providers/common/ai/docs/operators/llm.rst | 7 +-
providers/common/ai/docs/operators/llm_batch.rst | 6 +
providers/common/ai/docs/recovery.rst | 3 +-
providers/common/ai/docs/retry_policies.rst | 4 +-
providers/common/ai/docs/sandbox/index.rst | 4 +-
providers/common/ai/docs/stability.rst | 10 +-
providers/common/ai/docs/toolsets/hook.rst | 16 +
providers/common/ai/docs/toolsets/index.rst | 10 +-
providers/common/ai/docs/toolsets/logging.rst | 4 +-
.../ai/docs/toolsets/progressive_disclosure.rst | 146 ++
providers/common/ai/docs/toolsets/skills.rst | 10 +-
providers/common/ai/docs/troubleshooting.rst | 6 +-
providers/common/ai/pyproject.toml | 11 +-
.../providers/common/ai/durable/fingerprint.py | 509 +++++-
.../common/ai/example_dags/example_agent_memory.py | 2 +-
.../common/ai/example_dags/example_llm_approval.py | 54 +
.../ai/example_dags/example_openai_agents_agent.py | 90 ++
.../example_progressive_tool_disclosure.py | 107 ++
.../providers/common/ai/hooks/pydantic_ai.py | 95 +-
.../airflow/providers/common/ai/mixins/approval.py | 12 +-
.../providers/common/ai/mixins/usage_budget.py | 22 +
.../airflow/providers/common/ai/observability.py | 5 +
.../airflow/providers/common/ai/operators/agent.py | 35 +-
.../airflow/providers/common/ai/operators/llm.py | 18 +-
.../providers/common/ai/operators/llm_batch.py | 12 +-
.../airflow/providers/common/ai/policies/retry.py | 18 +-
.../airflow/providers/common/ai/tools/__init__.py | 4 +-
.../providers/common/ai/tools/openai_agents.py | 391 +++++
.../airflow/providers/common/ai/tools/tracing.py | 11 +-
.../airflow/providers/common/ai/toolsets/hook.py | 133 +-
.../providers/common/ai/utils/tool_metrics.py | 2 +-
.../providers/common/ai/utils/usage_budget.py | 26 +-
.../unit/common/ai/durable/test_capability.py | 58 +
.../tests/unit/common/ai/durable/test_code_mode.py | 229 +++
.../unit/common/ai/durable/test_fingerprint.py | 1687 +++++++++++++++++++-
.../tests/unit/common/ai/hooks/test_pydantic_ai.py | 216 ++-
.../unit/common/ai/mixins/test_usage_budget.py | 48 +-
.../tests/unit/common/ai/operators/test_agent.py | 183 ++-
.../unit/common/ai/operators/test_llm_batch.py | 20 +
.../ai/tests/unit/common/ai/policies/test_retry.py | 37 +-
.../unit/common/ai/tools/test_openai_agents.py | 611 +++++++
.../ai/tests/unit/common/ai/toolsets/test_hook.py | 216 ++-
.../providers/common/compat/_retry_policy.py | 5 +-
.../tests/unit/common/compat/test__retry_policy.py | 16 +
providers/dbt/cloud/docs/index.rst | 8 +-
providers/dbt/cloud/pyproject.toml | 2 +-
.../providers/dbt/cloud/utils/openlineage.py | 57 +-
.../tests/unit/dbt/cloud/utils/test_openlineage.py | 20 +-
providers/microsoft/azure/docs/bundles/index.rst | 80 +
providers/microsoft/azure/docs/index.rst | 1 +
providers/microsoft/azure/provider.yaml | 5 +
.../providers/microsoft/azure/bundles}/__init__.py | 0
.../providers/microsoft/azure/bundles/wasb.py | 154 ++
.../providers/microsoft/azure/get_provider_info.py | 6 +
.../providers/microsoft/azure/hooks/wasb.py | 108 ++
.../unit/microsoft/azure/bundles}/__init__.py | 0
.../unit/microsoft/azure/bundles/test_wasb.py | 279 ++++
.../tests/unit/microsoft/azure/hooks/test_wasb.py | 160 ++
providers/openai/pyproject.toml | 2 +-
.../src/airflow/providers/openai/hooks/openai.py | 79 +-
.../openai/tests/unit/openai/hooks/test_openai.py | 202 ++-
providers/ssh/docs/operators/ssh_remote_job.rst | 4 +
.../providers/ssh/operators/ssh_remote_job.py | 4 +-
.../src/airflow/providers/ssh/utils/remote_job.py | 9 +-
.../ssh/tests/unit/ssh/utils/test_remote_job.py | 42 +-
reproducible_build.yaml | 4 +-
scripts/ci/prek/upgrade_important_versions.py | 2 +-
scripts/in_container/bin/generate_mprocs_config.py | 3 +-
scripts/in_container/install_mermaid_cli.sh | 40 +
scripts/in_container/run_agent_framework_tests.sh | 36 +-
.../in_container/run_provider_yaml_files_check.py | 10 +-
.../in_container/test_generate_mprocs_config.py | 19 +-
scripts/tools/setup_breeze | 5 +-
.../observability/metrics/metrics_template.yaml | 3 +-
task-sdk/docs/conf.py | 2 +-
task-sdk/src/airflow/sdk/definitions/deadline.py | 37 +-
.../src/airflow/sdk/definitions/retry_policy.py | 94 +-
task-sdk/src/airflow/sdk/execution_time/comms.py | 5 +
.../src/airflow/sdk/execution_time/supervisor.py | 10 +-
.../src/airflow/sdk/execution_time/task_runner.py | 63 +-
.../airflow/sdk/importers/yaml_importer/builder.py | 215 ++-
.../task_sdk/definitions/test_retry_policy.py | 121 +-
.../task_sdk/execution_time/test_task_runner.py | 191 +++
.../importers/yaml_importer/test_importer.py | 117 ++
uv.lock | 164 +-
257 files changed, 12580 insertions(+), 2989 deletions(-)
create mode 100644 airflow-core/newsfragments/70714.significant.rst
create mode 100644 airflow-core/newsfragments/74709.bugfix.rst
create mode 100644 airflow-core/src/airflow/ui/src/components/FilterBar/filters/LoopFilter.tsx
create mode 100644 airflow-core/src/airflow/ui/src/components/FilterBar/filters/loopParams.test.ts
create mode 100644 airflow-core/src/airflow/ui/src/components/FilterBar/filters/loopParams.ts
create mode 100644 airflow-core/src/airflow/ui/src/components/LoopOptionLabel.tsx
create mode 100644 airflow-core/src/airflow/ui/src/hooks/useResolvePassCoordinate.test.ts
create mode 100644 airflow-core/src/airflow/ui/src/hooks/useResolvePassCoordinate.ts
create mode 100644 airflow-core/src/airflow/ui/src/layouts/Details/IterationSwitcherButton.tsx
delete mode 100644 airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/GroupTaskInstances.test.tsx
delete mode 100644 airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/LoopIterations/IterationSelect.test.tsx
delete mode 100644 airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/LoopIterations/IterationSelect.tsx
delete mode 100644 airflow-core/src/airflow/ui/src/pages/GroupTaskInstance/LoopIterations/index.ts
delete mode 100644 airflow-core/src/airflow/ui/src/pages/Run/Execution.test.tsx
delete mode 100644 airflow-core/src/airflow/ui/src/pages/Run/Execution.tsx
create mode 100644 airflow-core/src/airflow/ui/src/queries/useLoopFilterOptions.test.ts
create mode 100644 airflow-core/src/airflow/ui/src/queries/useLoopFilterOptions.ts
create mode 100644 devel-common/src/sphinx_exts/mermaid_config.json
create mode 100644 devel-common/src/sphinx_exts/mermaid_puppeteer_config.json
create mode 100644 devel-common/src/sphinx_exts/mermaid_svg.py
create mode 100644 devel-common/tests/unit/sphinx_exts/docs_build/test_build_docs_mermaid.py
copy devel-common/tests/unit/sphinx_exts/{test_python_builtin_xrefs.py => test_mermaid_svg.py} (53%)
create mode 100644 providers/common/ai/docs/frameworks/openai_agents.rst
create mode 100644 providers/common/ai/docs/img/approval_required_actions.png
create mode 100644 providers/common/ai/docs/img/approval_review_form.png
create mode 100644 providers/common/ai/docs/toolsets/progressive_disclosure.rst
create mode 100644 providers/common/ai/src/airflow/providers/common/ai/example_dags/example_llm_approval.py
create mode 100644 providers/common/ai/src/airflow/providers/common/ai/example_dags/example_openai_agents_agent.py
create mode 100644 providers/common/ai/src/airflow/providers/common/ai/example_dags/example_progressive_tool_disclosure.py
create mode 100644 providers/common/ai/src/airflow/providers/common/ai/tools/openai_agents.py
create mode 100644 providers/common/ai/tests/unit/common/ai/durable/test_code_mode.py
create mode 100644 providers/common/ai/tests/unit/common/ai/tools/test_openai_agents.py
create mode 100644 providers/microsoft/azure/docs/bundles/index.rst
copy {airflow-core/src/airflow/_shared => providers/microsoft/azure/src/airflow/providers/microsoft/azure/bundles}/__init__.py (100%)
create mode 100644 providers/microsoft/azure/src/airflow/providers/microsoft/azure/bundles/wasb.py
copy {airflow-core/src/airflow/_shared => providers/microsoft/azure/tests/unit/microsoft/azure/bundles}/__init__.py (100%)
create mode 100644 providers/microsoft/azure/tests/unit/microsoft/azure/bundles/test_wasb.py
create mode 100755 scripts/in_container/install_mermaid_cli.sh
copy dev/breeze/src/airflow_breeze/utils/helm_chart_utils.py => scripts/tests/in_container/test_generate_mprocs_config.py (62%)