From 2034f2140a4e32e65e2b9e0b0d6180abe402d329 Mon Sep 17 00:00:00 2001 From: Greyson LaLonde Date: Wed, 13 May 2026 02:54:13 +0800 Subject: [PATCH] feat: bump versions to 1.14.5a5 --- lib/cli/pyproject.toml | 2 +- lib/cli/src/crewai_cli/__init__.py | 2 +- lib/crewai-core/src/crewai_core/__init__.py | 2 +- lib/crewai-files/src/crewai_files/__init__.py | 2 +- lib/crewai-tools/pyproject.toml | 2 +- lib/crewai-tools/src/crewai_tools/__init__.py | 2 +- .../daytona_sandbox_tool/daytona_file_tool.py | 58 ++++- lib/crewai-tools/tool.specs.json | 243 +++++++++++++++++- lib/crewai/pyproject.toml | 8 +- lib/crewai/src/crewai/__init__.py | 2 +- lib/devtools/src/crewai_devtools/__init__.py | 2 +- 11 files changed, 300 insertions(+), 25 deletions(-) diff --git a/lib/cli/pyproject.toml b/lib/cli/pyproject.toml index 94afee51c..30f381ddf 100644 --- a/lib/cli/pyproject.toml +++ b/lib/cli/pyproject.toml @@ -8,7 +8,7 @@ authors = [ ] requires-python = ">=3.10, <3.14" dependencies = [ - "crewai-core==1.14.5a4", + "crewai-core==1.14.5a5", "click~=8.1.7", "pydantic>=2.11.9,<2.13", "pydantic-settings~=2.10.1", diff --git a/lib/cli/src/crewai_cli/__init__.py b/lib/cli/src/crewai_cli/__init__.py index ceccba79b..c99633a3d 100644 --- a/lib/cli/src/crewai_cli/__init__.py +++ b/lib/cli/src/crewai_cli/__init__.py @@ -1 +1 @@ -__version__ = "1.14.5a4" +__version__ = "1.14.5a5" diff --git a/lib/crewai-core/src/crewai_core/__init__.py b/lib/crewai-core/src/crewai_core/__init__.py index ceccba79b..c99633a3d 100644 --- a/lib/crewai-core/src/crewai_core/__init__.py +++ b/lib/crewai-core/src/crewai_core/__init__.py @@ -1 +1 @@ -__version__ = "1.14.5a4" +__version__ = "1.14.5a5" diff --git a/lib/crewai-files/src/crewai_files/__init__.py b/lib/crewai-files/src/crewai_files/__init__.py index 75dccc610..82f49f5f9 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.14.5a4" +__version__ = "1.14.5a5" diff --git a/lib/crewai-tools/pyproject.toml b/lib/crewai-tools/pyproject.toml index 049c998cb..b3a8f021f 100644 --- a/lib/crewai-tools/pyproject.toml +++ b/lib/crewai-tools/pyproject.toml @@ -10,7 +10,7 @@ requires-python = ">=3.10, <3.14" dependencies = [ "pytube~=15.0.0", "requests>=2.33.0,<3", - "crewai==1.14.5a4", + "crewai==1.14.5a5", "tiktoken>=0.8.0,<0.13", "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 4c76cb9e4..d1bd9e7c4 100644 --- a/lib/crewai-tools/src/crewai_tools/__init__.py +++ b/lib/crewai-tools/src/crewai_tools/__init__.py @@ -330,4 +330,4 @@ __all__ = [ "ZapierActionTools", ] -__version__ = "1.14.5a4" +__version__ = "1.14.5a5" diff --git a/lib/crewai-tools/src/crewai_tools/tools/daytona_sandbox_tool/daytona_file_tool.py b/lib/crewai-tools/src/crewai_tools/tools/daytona_sandbox_tool/daytona_file_tool.py index da8ea7734..e6826524e 100644 --- a/lib/crewai-tools/src/crewai_tools/tools/daytona_sandbox_tool/daytona_file_tool.py +++ b/lib/crewai-tools/src/crewai_tools/tools/daytona_sandbox_tool/daytona_file_tool.py @@ -5,8 +5,8 @@ from builtins import type as type_ import logging import posixpath import shlex -import uuid from typing import Any, Literal +import uuid from pydantic import BaseModel, Field, model_validator @@ -33,7 +33,63 @@ FileAction = Literal[ ] +def _daytona_file_schema_extra(schema: dict[str, Any]) -> None: + schema["allOf"] = [ + { + "if": { + "properties": { + "action": { + "enum": [ + "read", + "write", + "append", + "list", + "delete", + "mkdir", + "info", + "exists", + "move", + "find", + "search", + "chmod", + ] + } + } + }, + "then": {"required": ["path"]}, + }, + { + "if": {"properties": {"action": {"const": "append"}}}, + "then": {"required": ["content"]}, + }, + { + "if": {"properties": {"action": {"const": "move"}}}, + "then": {"required": ["destination"]}, + }, + { + "if": {"properties": {"action": {"enum": ["find", "search"]}}}, + "then": {"required": ["pattern"]}, + }, + { + "if": {"properties": {"action": {"const": "replace"}}}, + "then": {"required": ["paths", "pattern", "replacement"]}, + }, + { + "if": {"properties": {"action": {"const": "chmod"}}}, + "then": { + "anyOf": [ + {"required": ["mode"]}, + {"required": ["owner"]}, + {"required": ["group"]}, + ] + }, + }, + ] + + class DaytonaFileToolSchema(BaseModel): + model_config = {"json_schema_extra": _daytona_file_schema_extra} + action: FileAction = Field( ..., description=( diff --git a/lib/crewai-tools/tool.specs.json b/lib/crewai-tools/tool.specs.json index f08cf7f69..c7144e2cc 100644 --- a/lib/crewai-tools/tool.specs.json +++ b/lib/crewai-tools/tool.specs.json @@ -7184,7 +7184,7 @@ } }, { - "description": "Perform filesystem operations inside a Daytona sandbox: read a file, write content to a path, append content to an existing file, list a directory, delete a path, make a directory, or fetch file metadata. For files larger than a few KB, create the file with action='write' and empty content, then send the body via multiple 'append' calls of ~4KB each to stay within tool-call payload limits.", + "description": "Perform filesystem operations inside a Daytona sandbox: read, write, append, list, delete, mkdir, info, exists, move, find (content grep), search (filename glob), chmod (permissions/owner/group), and replace (bulk find-and-replace across files). For files larger than a few KB, create the file with action='write' and empty content, then send the body via multiple 'append' calls of ~4KB each to stay within tool-call payload limits.", "env_vars": [ { "default": null, @@ -7334,9 +7334,127 @@ "daytona" ], "run_params_schema": { + "allOf": [ + { + "if": { + "properties": { + "action": { + "enum": [ + "read", + "write", + "append", + "list", + "delete", + "mkdir", + "info", + "exists", + "move", + "find", + "search", + "chmod" + ] + } + } + }, + "then": { + "required": [ + "path" + ] + } + }, + { + "if": { + "properties": { + "action": { + "const": "append" + } + } + }, + "then": { + "required": [ + "content" + ] + } + }, + { + "if": { + "properties": { + "action": { + "const": "move" + } + } + }, + "then": { + "required": [ + "destination" + ] + } + }, + { + "if": { + "properties": { + "action": { + "enum": [ + "find", + "search" + ] + } + } + }, + "then": { + "required": [ + "pattern" + ] + } + }, + { + "if": { + "properties": { + "action": { + "const": "replace" + } + } + }, + "then": { + "required": [ + "paths", + "pattern", + "replacement" + ] + } + }, + { + "if": { + "properties": { + "action": { + "const": "chmod" + } + } + }, + "then": { + "anyOf": [ + { + "required": [ + "mode" + ] + }, + { + "required": [ + "owner" + ] + }, + { + "required": [ + "group" + ] + } + ] + } + } + ], "properties": { "action": { - "description": "The filesystem action to perform: 'read' (returns file contents), 'write' (create or replace a file with content), 'append' (append content to an existing file \u2014 use this for writing large files in chunks to avoid hitting tool-call size limits), 'list' (lists a directory), 'delete' (removes a file/dir), 'mkdir' (creates a directory), 'info' (returns file metadata).", + "description": "The filesystem action to perform: 'read' (returns file contents); 'write' (create or replace a file with content); 'append' (append content to an existing file \u2014 use this for writing large files in chunks to avoid hitting tool-call size limits); 'list' (lists a directory); 'delete' (removes a file/dir); 'mkdir' (creates a directory); 'info' (returns file metadata); 'exists' (returns whether a path exists); 'move' (rename or relocate a file/dir; requires 'destination'); 'find' (grep file CONTENTS recursively; requires 'pattern'); 'search' (find files by NAME pattern; requires 'pattern'); 'chmod' (change permissions/owner/group; pass at least one of 'mode', 'owner', 'group'); 'replace' (find-and-replace text across files; requires 'paths', 'pattern', and 'replacement').", "enum": [ "read", "write", @@ -7344,7 +7462,13 @@ "list", "delete", "mkdir", - "info" + "info", + "exists", + "move", + "find", + "search", + "chmod", + "replace" ], "title": "Action", "type": "string" @@ -7368,27 +7492,122 @@ "description": "Content to write or append. If omitted for 'write', an empty file is created. For files larger than a few KB, prefer one 'write' with empty content followed by multiple 'append' calls of ~4KB each to stay within tool-call payload limits.", "title": "Content" }, + "destination": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "For action='move': absolute destination path.", + "title": "Destination" + }, + "group": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "For action='chmod': new file group.", + "title": "Group" + }, "mode": { - "default": "0755", - "description": "For action='mkdir': octal permission string (default 0755).", - "title": "Mode", - "type": "string" + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Octal permission string. For 'mkdir' it sets the new directory permissions (defaults to '0755' if omitted). For 'chmod' it sets the target's mode (e.g. '755' to make a script executable). Ignored for other actions.", + "title": "Mode" + }, + "owner": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "For action='chmod': new file owner (user name).", + "title": "Owner" }, "path": { - "description": "Absolute path inside the sandbox.", - "title": "Path", - "type": "string" + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Absolute path inside the sandbox. Required for all actions except 'replace' (which uses 'paths' instead).", + "title": "Path" + }, + "paths": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "For action='replace': list of absolute file paths in which to replace 'pattern' with 'replacement'.", + "title": "Paths" + }, + "pattern": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "For 'find': substring matched against file CONTENTS. For 'search': glob-style pattern matched against file NAMES (e.g. '*.py'). For 'replace': text to replace inside files.", + "title": "Pattern" }, "recursive": { "default": false, "description": "For action='delete': remove directories recursively.", "title": "Recursive", "type": "boolean" + }, + "replacement": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "For action='replace': replacement text for 'pattern'.", + "title": "Replacement" } }, "required": [ - "action", - "path" + "action" ], "title": "DaytonaFileToolSchema", "type": "object" diff --git a/lib/crewai/pyproject.toml b/lib/crewai/pyproject.toml index e174ab19c..d35f9db24 100644 --- a/lib/crewai/pyproject.toml +++ b/lib/crewai/pyproject.toml @@ -8,8 +8,8 @@ authors = [ ] requires-python = ">=3.10, <3.14" dependencies = [ - "crewai-core==1.14.5a4", - "crewai-cli==1.14.5a4", + "crewai-core==1.14.5a5", + "crewai-cli==1.14.5a5", # Core Dependencies "pydantic>=2.11.9,<2.13", "openai>=2.30.0,<3", @@ -54,7 +54,7 @@ Repository = "https://github.com/crewAIInc/crewAI" [project.optional-dependencies] tools = [ - "crewai-tools==1.14.5a4", + "crewai-tools==1.14.5a5", ] embeddings = [ "tiktoken>=0.8.0,<0.13" @@ -105,7 +105,7 @@ a2a = [ "aiocache[redis,memcached]~=0.12.3", ] file-processing = [ - "crewai-files==1.14.5a4", + "crewai-files==1.14.5a5", ] qdrant-edge = [ "qdrant-edge-py>=0.6.0", diff --git a/lib/crewai/src/crewai/__init__.py b/lib/crewai/src/crewai/__init__.py index a92dac151..e81e403c9 100644 --- a/lib/crewai/src/crewai/__init__.py +++ b/lib/crewai/src/crewai/__init__.py @@ -48,7 +48,7 @@ def _suppress_pydantic_deprecation_warnings() -> None: _suppress_pydantic_deprecation_warnings() -__version__ = "1.14.5a4" +__version__ = "1.14.5a5" _LAZY_IMPORTS: dict[str, tuple[str, str]] = { "Memory": ("crewai.memory.unified_memory", "Memory"), diff --git a/lib/devtools/src/crewai_devtools/__init__.py b/lib/devtools/src/crewai_devtools/__init__.py index d12f02ebc..5a7ef3280 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.14.5a4" +__version__ = "1.14.5a5"