This is an automated email from the ASF dual-hosted git repository.
kaxil pushed a change to branch commonai-tool-approval-repeat
in repository https://gitbox.apache.org/repos/asf/airflow.git
discard 474626c60eb Let an agent ask for tool approval in more than one step
omit b58ee8c3715 Graduate Common AI features to stable ahead of 1.0
add 06c7f338f95 Decode base64 for bytes-typed `HookToolset` parameters
(#70433)
add f46a370a95b Stop the secrets backend lookup from importing the task
runner outside tasks (#74641)
add c5c2f194b57 Add Boat backend for sandbox tools (#71725)
add c192bdad5fd Show serializer schema in Dag version diff only when it
differs (#74683)
add 51f1b5b16d8 TS SDK: Reject triggerDagRun tasks in dag.if and
dag.switch (#74492)
add 09b4b6307fc Document agent memory across Dag runs for `common.ai`
(#74681)
add 75455fda1ba Explain why common.ai is built on Pydantic AI (#74680)
add 945b7949328 Fix deprecated provider lookup in Amazon AWS hooks (#74480)
add 861ca7ffc18 Bump the fab-ui-package-updates group across 1 directory
with 3 updates (#74670)
add 96da58058ef Add Islo backend for sandbox tools (#71672)
add 68a4c3177f9 Add AirflowDurability capability for durable agent replay
across task retries (#74385)
add 3cf3f4b2a9d Refuse a HITL response for a request the task has since
replaced (#74688)
add 1461ddfdf8a Grant Keycloak SuperAdmin access to teamless resources
(#74640)
add 142f12bd2b9 Update remaining FAB Website permissions rows for Airflow
3 (#74653)
add 2212818399e Graduate Common AI features to stable ahead of 1.0 (#74679)
add 4599b4f2952 Let an agent ask for tool approval in more than one step
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 (474626c60eb)
\
N -- N -- N refs/heads/commonai-tool-approval-repeat
(4599b4f2952)
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:
airflow-core/docs/tutorial/hitl.rst | 6 +-
.../api_fastapi/core_api/datamodels/hitl.py | 11 +-
.../core_api/openapi/v2-rest-api-generated.yaml | 11 +
.../api_fastapi/core_api/routes/public/hitl.py | 11 +
.../airflow/ui/openapi-gen/requests/schemas.gen.ts | 13 +
.../airflow/ui/openapi-gen/requests/types.gen.ts | 4 +
.../src/airflow/ui/public/i18n/locales/ca/dag.json | 4 +-
.../src/airflow/ui/public/i18n/locales/de/dag.json | 4 +-
.../src/airflow/ui/public/i18n/locales/el/dag.json | 4 +-
.../src/airflow/ui/public/i18n/locales/en/dag.json | 5 +-
.../src/airflow/ui/public/i18n/locales/fr/dag.json | 6 +-
.../src/airflow/ui/public/i18n/locales/ko/dag.json | 4 +-
.../src/airflow/ui/public/i18n/locales/pl/dag.json | 8 +-
.../airflow/ui/public/i18n/locales/zh-TW/dag.json | 4 +-
.../src/components/HITLReview/HITLReviewDetail.tsx | 8 +-
.../pages/Dag/Versions/VersionDiff.i18n.test.tsx | 26 +-
.../ui/src/pages/Dag/Versions/VersionDiff.tsx | 14 +-
.../HITLTaskInstances/HITLResponseForm.test.tsx | 36 +-
.../pages/HITLTaskInstances/HITLResponseForm.tsx | 6 +-
.../ui/src/pages/TaskInstance/HITLResponse.tsx | 2 +-
.../airflow/ui/src/queries/useUpdateHITLDetail.ts | 12 +-
airflow-core/src/airflow/ui/src/utils/hitl.ts | 2 +
.../tests/unit/always/test_example_dags.py | 2 +
.../core_api/routes/public/test_hitl.py | 89 ++
.../src/airflowctl/api/datamodels/generated.py | 7 +
docs/spelling_wordlist.txt | 4 +
.../airflow/providers/amazon/aws/hooks/base_aws.py | 7 +-
.../tests/unit/amazon/aws/hooks/test_base_aws.py | 5 +
providers/common/ai/README.rst | 3 +-
providers/common/ai/docs/capabilities.rst | 18 +-
providers/common/ai/docs/durable_execution.rst | 332 +++--
providers/common/ai/docs/features.rst | 3 +
providers/common/ai/docs/frameworks/index.rst | 27 +
providers/common/ai/docs/index.rst | 14 +-
providers/common/ai/docs/installation.rst | 7 +-
providers/common/ai/docs/memory.rst | 163 +++
providers/common/ai/docs/operators/agent.rst | 24 +-
providers/common/ai/docs/sandbox/backends.rst | 258 +++-
providers/common/ai/docs/sandbox/configuration.rst | 16 +-
providers/common/ai/docs/sandbox/index.rst | 58 +-
providers/common/ai/docs/toolsets/hook.rst | 24 +-
providers/common/ai/docs/toolsets/index.rst | 12 +-
providers/common/ai/docs/troubleshooting.rst | 26 +-
providers/common/ai/provider.yaml | 6 +
providers/common/ai/pyproject.toml | 23 +-
.../providers/common/ai/durable/__init__.py | 19 +
.../airflow/providers/common/ai/durable/base.py | 59 +-
.../providers/common/ai/durable/caching_model.py | 226 ----
.../providers/common/ai/durable/caching_toolset.py | 141 ---
.../providers/common/ai/durable/capability.py | 532 ++++++++
.../providers/common/ai/durable/fingerprint.py | 9 +-
.../airflow/providers/common/ai/durable/journal.py | 551 +++++++++
.../providers/common/ai/durable/replay_usage.py | 149 ++-
.../providers/common/ai/durable/step_counter.py | 52 -
.../airflow/providers/common/ai/durable/storage.py | 140 +--
.../common/ai/durable/task_state_store.py | 155 +--
.../ai/example_dags/example_agent_durable.py | 35 +-
.../common/ai/example_dags/example_agent_memory.py | 135 +++
.../src/airflow/providers/common/ai/exceptions.py | 10 +
.../providers/common/ai/get_provider_info.py | 2 +
.../airflow/providers/common/ai/operators/agent.py | 325 ++---
.../providers/common/ai/sandbox/__init__.py | 8 +
.../airflow/providers/common/ai/sandbox/base.py | 2 +-
.../airflow/providers/common/ai/sandbox/boat.py | 697 +++++++++++
.../airflow/providers/common/ai/sandbox/islo.py | 757 ++++++++++++
.../src/airflow/providers/common/ai/sandbox/sbx.py | 3 +-
.../airflow/providers/common/ai/toolsets/hook.py | 110 +-
.../providers/common/ai/toolsets/managed_agent.py | 6 +-
.../providers/common/ai/utils/tool_definition.py | 12 +
.../providers/common/ai/utils/toolset_base.py | 5 +
.../common/ai/tests/system/common/ai/README.md | 33 +
.../common/ai/example_sandbox_toolset_boat.py | 234 ++++
...nsandbox.py => example_sandbox_toolset_islo.py} | 24 +-
.../ai/tests/unit/common/ai/durable/conftest.py | 10 +-
.../tests/unit/common/ai/durable/memory_storage.py | 58 +
.../ai/tests/unit/common/ai/durable/test_base.py | 15 +-
.../unit/common/ai/durable/test_caching_model.py | 432 -------
.../unit/common/ai/durable/test_caching_toolset.py | 268 ----
.../unit/common/ai/durable/test_capability.py | 855 +++++++++++++
.../unit/common/ai/durable/test_fingerprint.py | 12 +
.../tests/unit/common/ai/durable/test_journal.py | 427 +++++++
.../unit/common/ai/durable/test_replay_cost.py | 231 ++--
.../common/ai/durable/test_replay_verification.py | 138 ---
.../unit/common/ai/durable/test_step_counter.py | 38 -
.../tests/unit/common/ai/durable/test_storage.py | 227 +---
.../common/ai/durable/test_task_state_store.py | 212 +---
.../tests/unit/common/ai/operators/test_agent.py | 603 ++++-----
.../ai/tests/unit/common/ai/sandbox/test_boat.py | 1184 ++++++++++++++++++
.../ai/tests/unit/common/ai/sandbox/test_islo.py | 1276 ++++++++++++++++++++
.../ai/tests/unit/common/ai/toolsets/test_hook.py | 250 +++-
.../unit/common/ai/utils/test_tool_metrics.py | 61 +-
providers/fab/docs/auth-manager/access-control.rst | 78 +-
.../fab/src/airflow/providers/fab/www/package.json | 6 +-
.../src/airflow/providers/fab/www/pnpm-lock.yaml | 830 +++++++------
.../keycloak/auth_manager/cli/commands.py | 2 +-
.../keycloak/auth_manager/cli/test_commands.py | 2 +-
pyproject.toml | 8 +
.../in_container/run_provider_yaml_files_check.py | 3 -
.../sdk/execution_time/callback_supervisor.py | 2 +
.../src/airflow/sdk/execution_time/supervisor.py | 27 +-
.../execution_time/test_callback_supervisor.py | 14 +
.../tests/task_sdk/execution_time/test_secrets.py | 20 +
.../task_sdk/execution_time/test_supervisor.py | 54 +
ts-sdk/src/sdk/dag.ts | 18 +-
ts-sdk/tests/hitl/operator.test.ts | 11 +
ts-sdk/tests/sdk/trigger-dag-run.test.ts | 13 +
uv.lock | 594 ++++-----
107 files changed, 10036 insertions(+), 3703 deletions(-)
create mode 100644 providers/common/ai/docs/memory.rst
delete mode 100644
providers/common/ai/src/airflow/providers/common/ai/durable/caching_model.py
delete mode 100644
providers/common/ai/src/airflow/providers/common/ai/durable/caching_toolset.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/durable/capability.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/durable/journal.py
delete mode 100644
providers/common/ai/src/airflow/providers/common/ai/durable/step_counter.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/example_dags/example_agent_memory.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/sandbox/boat.py
create mode 100644
providers/common/ai/src/airflow/providers/common/ai/sandbox/islo.py
create mode 100644
providers/common/ai/tests/system/common/ai/example_sandbox_toolset_boat.py
copy
providers/common/ai/tests/system/common/ai/{example_sandbox_toolset_opensandbox.py
=> example_sandbox_toolset_islo.py} (87%)
copy airflow-core/tests/unit/listeners/slow_listener.py =>
providers/common/ai/tests/unit/common/ai/durable/conftest.py (83%)
create mode 100644
providers/common/ai/tests/unit/common/ai/durable/memory_storage.py
delete mode 100644
providers/common/ai/tests/unit/common/ai/durable/test_caching_model.py
delete mode 100644
providers/common/ai/tests/unit/common/ai/durable/test_caching_toolset.py
create mode 100644
providers/common/ai/tests/unit/common/ai/durable/test_capability.py
create mode 100644
providers/common/ai/tests/unit/common/ai/durable/test_journal.py
delete mode 100644
providers/common/ai/tests/unit/common/ai/durable/test_replay_verification.py
delete mode 100644
providers/common/ai/tests/unit/common/ai/durable/test_step_counter.py
create mode 100644
providers/common/ai/tests/unit/common/ai/sandbox/test_boat.py
create mode 100644
providers/common/ai/tests/unit/common/ai/sandbox/test_islo.py