diff --git a/docs/ar/changelog.mdx b/docs/ar/changelog.mdx
index ff996fff3..8fbb2d750 100644
--- a/docs/ar/changelog.mdx
+++ b/docs/ar/changelog.mdx
@@ -4,6 +4,28 @@ description: "تحديثات المنتج والتحسينات وإصلاحات
icon: "clock"
mode: "wide"
---
+
+ ## v1.13.0a7
+
+ [عرض الإصدار على GitHub](https://github.com/crewAIInc/crewAI/releases/tag/1.13.0a7)
+
+ ## ما الذي تغير
+
+ ### الميزات
+ - إضافة امتداد A2UI مع دعم v0.8/v0.9، والمخططات، والوثائق
+
+ ### إصلاحات الأخطاء
+ - إصلاح بادئات الرؤية متعددة الأنماط عن طريق إضافة GPT-5 وسلسلة o
+
+ ### الوثائق
+ - تحديث سجل التغييرات والإصدار لـ v1.13.0a6
+
+ ## المساهمون
+
+ @alex-clawd, @greysonlalonde, @joaomdmoura
+
+
+
## v1.13.0a6
diff --git a/docs/en/changelog.mdx b/docs/en/changelog.mdx
index b62dceebb..037db203e 100644
--- a/docs/en/changelog.mdx
+++ b/docs/en/changelog.mdx
@@ -4,6 +4,28 @@ description: "Product updates, improvements, and bug fixes for CrewAI"
icon: "clock"
mode: "wide"
---
+
+ ## v1.13.0a7
+
+ [View release on GitHub](https://github.com/crewAIInc/crewAI/releases/tag/1.13.0a7)
+
+ ## What's Changed
+
+ ### Features
+ - Add A2UI extension with v0.8/v0.9 support, schemas, and docs
+
+ ### Bug Fixes
+ - Fix multimodal vision prefixes by adding GPT-5 and o-series
+
+ ### Documentation
+ - Update changelog and version for v1.13.0a6
+
+ ## Contributors
+
+ @alex-clawd, @greysonlalonde, @joaomdmoura
+
+
+
## v1.13.0a6
diff --git a/docs/ko/changelog.mdx b/docs/ko/changelog.mdx
index 957d51723..f4f30ae07 100644
--- a/docs/ko/changelog.mdx
+++ b/docs/ko/changelog.mdx
@@ -4,6 +4,28 @@ description: "CrewAI의 제품 업데이트, 개선 사항 및 버그 수정"
icon: "clock"
mode: "wide"
---
+
+ ## v1.13.0a7
+
+ [GitHub 릴리스 보기](https://github.com/crewAIInc/crewAI/releases/tag/1.13.0a7)
+
+ ## 변경 사항
+
+ ### 기능
+ - v0.8/v0.9 지원, 스키마 및 문서가 포함된 A2UI 확장 추가
+
+ ### 버그 수정
+ - GPT-5 및 o-series를 추가하여 다중 모드 비전 접두사 수정
+
+ ### 문서
+ - v1.13.0a6에 대한 변경 로그 및 버전 업데이트
+
+ ## 기여자
+
+ @alex-clawd, @greysonlalonde, @joaomdmoura
+
+
+
## v1.13.0a6
diff --git a/docs/pt-BR/changelog.mdx b/docs/pt-BR/changelog.mdx
index 2126ae851..3173bcf1b 100644
--- a/docs/pt-BR/changelog.mdx
+++ b/docs/pt-BR/changelog.mdx
@@ -4,6 +4,28 @@ description: "Atualizações de produto, melhorias e correções do CrewAI"
icon: "clock"
mode: "wide"
---
+
+ ## v1.13.0a7
+
+ [Ver release no GitHub](https://github.com/crewAIInc/crewAI/releases/tag/1.13.0a7)
+
+ ## O que Mudou
+
+ ### Funcionalidades
+ - Adicionar a extensão A2UI com suporte a v0.8/v0.9, esquemas e documentação
+
+ ### Correções de Bugs
+ - Corrigir prefixos de visão multimodal adicionando GPT-5 e o-series
+
+ ### Documentação
+ - Atualizar changelog e versão para v1.13.0a6
+
+ ## Contribuidores
+
+ @alex-clawd, @greysonlalonde, @joaomdmoura
+
+
+
## v1.13.0a6
diff --git a/lib/crewai-files/src/crewai_files/__init__.py b/lib/crewai-files/src/crewai_files/__init__.py
index 1b79e738c..26da7d77f 100644
--- a/lib/crewai-files/src/crewai_files/__init__.py
+++ b/lib/crewai-files/src/crewai_files/__init__.py
@@ -152,4 +152,4 @@ __all__ = [
"wrap_file_source",
]
-__version__ = "1.13.0a6"
+__version__ = "1.13.0a7"
diff --git a/lib/crewai-tools/pyproject.toml b/lib/crewai-tools/pyproject.toml
index ef65d3a54..30da18c45 100644
--- a/lib/crewai-tools/pyproject.toml
+++ b/lib/crewai-tools/pyproject.toml
@@ -11,7 +11,7 @@ dependencies = [
"pytube~=15.0.0",
"requests~=2.32.5",
"docker~=7.1.0",
- "crewai==1.13.0a6",
+ "crewai==1.13.0a7",
"tiktoken~=0.8.0",
"beautifulsoup4~=4.13.4",
"python-docx~=1.2.0",
diff --git a/lib/crewai-tools/src/crewai_tools/__init__.py b/lib/crewai-tools/src/crewai_tools/__init__.py
index 1c0d7271a..292596708 100644
--- a/lib/crewai-tools/src/crewai_tools/__init__.py
+++ b/lib/crewai-tools/src/crewai_tools/__init__.py
@@ -309,4 +309,4 @@ __all__ = [
"ZapierActionTools",
]
-__version__ = "1.13.0a6"
+__version__ = "1.13.0a7"
diff --git a/lib/crewai/pyproject.toml b/lib/crewai/pyproject.toml
index 705cdcb6f..0133eaffa 100644
--- a/lib/crewai/pyproject.toml
+++ b/lib/crewai/pyproject.toml
@@ -54,7 +54,7 @@ Repository = "https://github.com/crewAIInc/crewAI"
[project.optional-dependencies]
tools = [
- "crewai-tools==1.13.0a6",
+ "crewai-tools==1.13.0a7",
]
embeddings = [
"tiktoken~=0.8.0"
diff --git a/lib/crewai/src/crewai/__init__.py b/lib/crewai/src/crewai/__init__.py
index e7a039caa..64d459358 100644
--- a/lib/crewai/src/crewai/__init__.py
+++ b/lib/crewai/src/crewai/__init__.py
@@ -10,6 +10,7 @@ from crewai.agent.core import Agent
from crewai.agent.planning_config import PlanningConfig
from crewai.crew import Crew
from crewai.crews.crew_output import CrewOutput
+from crewai.execution_context import ExecutionContext
from crewai.flow.flow import Flow
from crewai.knowledge.knowledge import Knowledge
from crewai.llm import LLM
@@ -44,7 +45,7 @@ def _suppress_pydantic_deprecation_warnings() -> None:
_suppress_pydantic_deprecation_warnings()
-__version__ = "1.13.0a6"
+__version__ = "1.13.0a7"
_telemetry_submitted = False
@@ -178,6 +179,7 @@ __all__ = [
"BaseLLM",
"Crew",
"CrewOutput",
+ "ExecutionContext",
"Flow",
"Knowledge",
"LLMGuardrail",
diff --git a/lib/crewai/src/crewai/cli/templates/crew/pyproject.toml b/lib/crewai/src/crewai/cli/templates/crew/pyproject.toml
index 8920f2052..a14ab19cd 100644
--- a/lib/crewai/src/crewai/cli/templates/crew/pyproject.toml
+++ b/lib/crewai/src/crewai/cli/templates/crew/pyproject.toml
@@ -5,7 +5,7 @@ description = "{{name}} using crewAI"
authors = [{ name = "Your Name", email = "you@example.com" }]
requires-python = ">=3.10,<3.14"
dependencies = [
- "crewai[tools]==1.13.0a6"
+ "crewai[tools]==1.13.0a7"
]
[project.scripts]
diff --git a/lib/crewai/src/crewai/cli/templates/flow/pyproject.toml b/lib/crewai/src/crewai/cli/templates/flow/pyproject.toml
index 08346e304..914232bb0 100644
--- a/lib/crewai/src/crewai/cli/templates/flow/pyproject.toml
+++ b/lib/crewai/src/crewai/cli/templates/flow/pyproject.toml
@@ -5,7 +5,7 @@ description = "{{name}} using crewAI"
authors = [{ name = "Your Name", email = "you@example.com" }]
requires-python = ">=3.10,<3.14"
dependencies = [
- "crewai[tools]==1.13.0a6"
+ "crewai[tools]==1.13.0a7"
]
[project.scripts]
diff --git a/lib/crewai/src/crewai/cli/templates/tool/pyproject.toml b/lib/crewai/src/crewai/cli/templates/tool/pyproject.toml
index 178537741..21457ceda 100644
--- a/lib/crewai/src/crewai/cli/templates/tool/pyproject.toml
+++ b/lib/crewai/src/crewai/cli/templates/tool/pyproject.toml
@@ -5,7 +5,7 @@ description = "Power up your crews with {{folder_name}}"
readme = "README.md"
requires-python = ">=3.10,<3.14"
dependencies = [
- "crewai[tools]==1.13.0a6"
+ "crewai[tools]==1.13.0a7"
]
[tool.crewai]
diff --git a/lib/crewai/src/crewai/events/base_events.py b/lib/crewai/src/crewai/events/base_events.py
index 6eeaa06e8..bceeccbf6 100644
--- a/lib/crewai/src/crewai/events/base_events.py
+++ b/lib/crewai/src/crewai/events/base_events.py
@@ -25,13 +25,25 @@ def _get_or_create_counter() -> Iterator[int]:
return counter
+_last_emitted: contextvars.ContextVar[int] = contextvars.ContextVar(
+ "_last_emitted", default=0
+)
+
+
def get_next_emission_sequence() -> int:
"""Get the next emission sequence number.
Returns:
The next sequence number.
"""
- return next(_get_or_create_counter())
+ seq = next(_get_or_create_counter())
+ _last_emitted.set(seq)
+ return seq
+
+
+def get_emission_sequence() -> int:
+ """Get the current emission sequence value without incrementing."""
+ return _last_emitted.get()
def reset_emission_counter() -> None:
@@ -41,6 +53,14 @@ def reset_emission_counter() -> None:
"""
counter: Iterator[int] = itertools.count(start=1)
_emission_counter.set(counter)
+ _last_emitted.set(0)
+
+
+def set_emission_counter(start: int) -> None:
+ """Set the emission counter to resume from a given value."""
+ counter: Iterator[int] = itertools.count(start=start + 1)
+ _emission_counter.set(counter)
+ _last_emitted.set(start)
class BaseEvent(BaseModel):
diff --git a/lib/crewai/src/crewai/execution_context.py b/lib/crewai/src/crewai/execution_context.py
new file mode 100644
index 000000000..7bad1fd2c
--- /dev/null
+++ b/lib/crewai/src/crewai/execution_context.py
@@ -0,0 +1,80 @@
+"""Checkpointable execution context for the crewAI runtime.
+
+Captures the ContextVar state needed to resume execution from a checkpoint.
+Used by the RootModel (step 5) to include execution context in snapshots.
+"""
+
+from __future__ import annotations
+
+from typing import Any
+
+from pydantic import BaseModel, Field
+
+from crewai.context import (
+ _current_task_id,
+ _platform_integration_token,
+)
+from crewai.events.base_events import (
+ get_emission_sequence,
+ set_emission_counter,
+)
+from crewai.events.event_context import (
+ _event_id_stack,
+ _last_event_id,
+ _triggering_event_id,
+)
+from crewai.flow.flow_context import (
+ current_flow_id,
+ current_flow_method_name,
+ current_flow_request_id,
+)
+
+
+class ExecutionContext(BaseModel):
+ """Snapshot of ContextVar state required for checkpoint/resume."""
+
+ current_task_id: str | None = Field(default=None)
+ flow_request_id: str | None = Field(default=None)
+ flow_id: str | None = Field(default=None)
+ flow_method_name: str = Field(default="unknown")
+
+ event_id_stack: tuple[tuple[str, str], ...] = Field(default=())
+ last_event_id: str | None = Field(default=None)
+ triggering_event_id: str | None = Field(default=None)
+ emission_sequence: int = Field(default=0)
+
+ feedback_callback_info: dict[str, Any] | None = Field(default=None)
+ platform_token: str | None = Field(default=None)
+
+
+def capture_execution_context(
+ feedback_callback_info: dict[str, Any] | None = None,
+) -> ExecutionContext:
+ """Read all checkpoint-required ContextVars into an ExecutionContext."""
+ return ExecutionContext(
+ current_task_id=_current_task_id.get(),
+ flow_request_id=current_flow_request_id.get(),
+ flow_id=current_flow_id.get(),
+ flow_method_name=current_flow_method_name.get(),
+ event_id_stack=_event_id_stack.get(),
+ last_event_id=_last_event_id.get(),
+ triggering_event_id=_triggering_event_id.get(),
+ emission_sequence=get_emission_sequence(),
+ feedback_callback_info=feedback_callback_info,
+ platform_token=_platform_integration_token.get(),
+ )
+
+
+def apply_execution_context(ctx: ExecutionContext) -> None:
+ """Write an ExecutionContext back into the ContextVars."""
+ _current_task_id.set(ctx.current_task_id)
+ current_flow_request_id.set(ctx.flow_request_id)
+ current_flow_id.set(ctx.flow_id)
+ current_flow_method_name.set(ctx.flow_method_name)
+
+ _event_id_stack.set(ctx.event_id_stack)
+ _last_event_id.set(ctx.last_event_id)
+ _triggering_event_id.set(ctx.triggering_event_id)
+ set_emission_counter(ctx.emission_sequence)
+
+ _platform_integration_token.set(ctx.platform_token)
diff --git a/lib/devtools/src/crewai_devtools/__init__.py b/lib/devtools/src/crewai_devtools/__init__.py
index 6e4f62e46..d878b722b 100644
--- a/lib/devtools/src/crewai_devtools/__init__.py
+++ b/lib/devtools/src/crewai_devtools/__init__.py
@@ -1,3 +1,3 @@
"""CrewAI development tools."""
-__version__ = "1.13.0a6"
+__version__ = "1.13.0a7"