From 8cf0cfa2b76dbb66be2876f90a055de30b97c46c Mon Sep 17 00:00:00 2001 From: Greyson LaLonde Date: Wed, 21 Jan 2026 18:46:06 -0500 Subject: [PATCH] feat: add prompt caching support for Anthropic --- lib/crewai/src/crewai/utilities/files/processing/processor.py | 3 ++- lib/crewai/src/crewai/utilities/files/processing/validators.py | 3 ++- lib/crewai/src/crewai/utilities/files/resolver.py | 3 ++- lib/crewai/src/crewai/utilities/files/upload_cache.py | 3 ++- lib/crewai/src/crewai/utilities/files/uploaders/anthropic.py | 3 ++- lib/crewai/src/crewai/utilities/files/uploaders/base.py | 3 ++- lib/crewai/src/crewai/utilities/files/uploaders/gemini.py | 3 ++- lib/crewai/src/crewai/utilities/files/uploaders/openai.py | 3 ++- 8 files changed, 16 insertions(+), 8 deletions(-) diff --git a/lib/crewai/src/crewai/utilities/files/processing/processor.py b/lib/crewai/src/crewai/utilities/files/processing/processor.py index 2e0da9c79..4711772a3 100644 --- a/lib/crewai/src/crewai/utilities/files/processing/processor.py +++ b/lib/crewai/src/crewai/utilities/files/processing/processor.py @@ -5,6 +5,7 @@ import logging from crewai.utilities.files.content_types import ( AudioFile, + File, ImageFile, PDFFile, TextFile, @@ -34,7 +35,7 @@ from crewai.utilities.files.processing.validators import validate_file logger = logging.getLogger(__name__) -FileInput = AudioFile | ImageFile | PDFFile | TextFile | VideoFile +FileInput = AudioFile | File | ImageFile | PDFFile | TextFile | VideoFile class FileProcessor: diff --git a/lib/crewai/src/crewai/utilities/files/processing/validators.py b/lib/crewai/src/crewai/utilities/files/processing/validators.py index e42f18fff..6f576d6d3 100644 --- a/lib/crewai/src/crewai/utilities/files/processing/validators.py +++ b/lib/crewai/src/crewai/utilities/files/processing/validators.py @@ -5,6 +5,7 @@ import logging from crewai.utilities.files.content_types import ( AudioFile, + File, ImageFile, PDFFile, TextFile, @@ -26,7 +27,7 @@ from crewai.utilities.files.processing.exceptions import ( logger = logging.getLogger(__name__) -FileInput = AudioFile | ImageFile | PDFFile | TextFile | VideoFile +FileInput = AudioFile | File | ImageFile | PDFFile | TextFile | VideoFile def _format_size(size_bytes: int) -> str: diff --git a/lib/crewai/src/crewai/utilities/files/resolver.py b/lib/crewai/src/crewai/utilities/files/resolver.py index d195b53bd..0459a1b8e 100644 --- a/lib/crewai/src/crewai/utilities/files/resolver.py +++ b/lib/crewai/src/crewai/utilities/files/resolver.py @@ -6,6 +6,7 @@ import logging from crewai.utilities.files.content_types import ( AudioFile, + File, ImageFile, PDFFile, TextFile, @@ -28,7 +29,7 @@ from crewai.utilities.files.uploaders.base import FileUploader logger = logging.getLogger(__name__) -FileInput = AudioFile | ImageFile | PDFFile | TextFile | VideoFile +FileInput = AudioFile | File | ImageFile | PDFFile | TextFile | VideoFile @dataclass diff --git a/lib/crewai/src/crewai/utilities/files/upload_cache.py b/lib/crewai/src/crewai/utilities/files/upload_cache.py index 132eadc07..baa21a23e 100644 --- a/lib/crewai/src/crewai/utilities/files/upload_cache.py +++ b/lib/crewai/src/crewai/utilities/files/upload_cache.py @@ -8,6 +8,7 @@ import threading from crewai.utilities.files.content_types import ( AudioFile, + File, ImageFile, PDFFile, TextFile, @@ -17,7 +18,7 @@ from crewai.utilities.files.content_types import ( logger = logging.getLogger(__name__) -FileInput = AudioFile | ImageFile | PDFFile | TextFile | VideoFile +FileInput = AudioFile | File | ImageFile | PDFFile | TextFile | VideoFile @dataclass diff --git a/lib/crewai/src/crewai/utilities/files/uploaders/anthropic.py b/lib/crewai/src/crewai/utilities/files/uploaders/anthropic.py index 2e894757a..69153863b 100644 --- a/lib/crewai/src/crewai/utilities/files/uploaders/anthropic.py +++ b/lib/crewai/src/crewai/utilities/files/uploaders/anthropic.py @@ -9,6 +9,7 @@ from typing import Any from crewai.utilities.files.content_types import ( AudioFile, + File, ImageFile, PDFFile, TextFile, @@ -19,7 +20,7 @@ from crewai.utilities.files.uploaders.base import FileUploader, UploadResult logger = logging.getLogger(__name__) -FileInput = AudioFile | ImageFile | PDFFile | TextFile | VideoFile +FileInput = AudioFile | File | ImageFile | PDFFile | TextFile | VideoFile class AnthropicFileUploader(FileUploader): diff --git a/lib/crewai/src/crewai/utilities/files/uploaders/base.py b/lib/crewai/src/crewai/utilities/files/uploaders/base.py index 35b4df271..dd9b27d70 100644 --- a/lib/crewai/src/crewai/utilities/files/uploaders/base.py +++ b/lib/crewai/src/crewai/utilities/files/uploaders/base.py @@ -7,6 +7,7 @@ from typing import Any from crewai.utilities.files.content_types import ( AudioFile, + File, ImageFile, PDFFile, TextFile, @@ -14,7 +15,7 @@ from crewai.utilities.files.content_types import ( ) -FileInput = AudioFile | ImageFile | PDFFile | TextFile | VideoFile +FileInput = AudioFile | File | ImageFile | PDFFile | TextFile | VideoFile @dataclass diff --git a/lib/crewai/src/crewai/utilities/files/uploaders/gemini.py b/lib/crewai/src/crewai/utilities/files/uploaders/gemini.py index 87d14124a..7c5bce8c5 100644 --- a/lib/crewai/src/crewai/utilities/files/uploaders/gemini.py +++ b/lib/crewai/src/crewai/utilities/files/uploaders/gemini.py @@ -10,6 +10,7 @@ from typing import Any from crewai.utilities.files.content_types import ( AudioFile, + File, ImageFile, PDFFile, TextFile, @@ -20,7 +21,7 @@ from crewai.utilities.files.uploaders.base import FileUploader, UploadResult logger = logging.getLogger(__name__) -FileInput = AudioFile | ImageFile | PDFFile | TextFile | VideoFile +FileInput = AudioFile | File | ImageFile | PDFFile | TextFile | VideoFile # Gemini files expire after 48 hours GEMINI_FILE_TTL = timedelta(hours=48) diff --git a/lib/crewai/src/crewai/utilities/files/uploaders/openai.py b/lib/crewai/src/crewai/utilities/files/uploaders/openai.py index 73e62b631..ecfa257b7 100644 --- a/lib/crewai/src/crewai/utilities/files/uploaders/openai.py +++ b/lib/crewai/src/crewai/utilities/files/uploaders/openai.py @@ -9,6 +9,7 @@ from typing import Any from crewai.utilities.files.content_types import ( AudioFile, + File, ImageFile, PDFFile, TextFile, @@ -19,7 +20,7 @@ from crewai.utilities.files.uploaders.base import FileUploader, UploadResult logger = logging.getLogger(__name__) -FileInput = AudioFile | ImageFile | PDFFile | TextFile | VideoFile +FileInput = AudioFile | File | ImageFile | PDFFile | TextFile | VideoFile class OpenAIFileUploader(FileUploader):