Skip to content

Commit 2034f21

Browse files
feat: bump versions to 1.14.5a5
1 parent 3322634 commit 2034f21

11 files changed

Lines changed: 300 additions & 25 deletions

File tree

lib/cli/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ authors = [
88
]
99
requires-python = ">=3.10, <3.14"
1010
dependencies = [
11-
"crewai-core==1.14.5a4",
11+
"crewai-core==1.14.5a5",
1212
"click~=8.1.7",
1313
"pydantic>=2.11.9,<2.13",
1414
"pydantic-settings~=2.10.1",

lib/cli/src/crewai_cli/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "1.14.5a4"
1+
__version__ = "1.14.5a5"
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "1.14.5a4"
1+
__version__ = "1.14.5a5"

lib/crewai-files/src/crewai_files/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,4 +152,4 @@
152152
"wrap_file_source",
153153
]
154154

155-
__version__ = "1.14.5a4"
155+
__version__ = "1.14.5a5"

lib/crewai-tools/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ requires-python = ">=3.10, <3.14"
1010
dependencies = [
1111
"pytube~=15.0.0",
1212
"requests>=2.33.0,<3",
13-
"crewai==1.14.5a4",
13+
"crewai==1.14.5a5",
1414
"tiktoken>=0.8.0,<0.13",
1515
"beautifulsoup4~=4.13.4",
1616
"python-docx~=1.2.0",

lib/crewai-tools/src/crewai_tools/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,4 +330,4 @@
330330
"ZapierActionTools",
331331
]
332332

333-
__version__ = "1.14.5a4"
333+
__version__ = "1.14.5a5"

lib/crewai-tools/src/crewai_tools/tools/daytona_sandbox_tool/daytona_file_tool.py

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import logging
66
import posixpath
77
import shlex
8-
import uuid
98
from typing import Any, Literal
9+
import uuid
1010

1111
from pydantic import BaseModel, Field, model_validator
1212

@@ -33,7 +33,63 @@
3333
]
3434

3535

36+
def _daytona_file_schema_extra(schema: dict[str, Any]) -> None:
37+
schema["allOf"] = [
38+
{
39+
"if": {
40+
"properties": {
41+
"action": {
42+
"enum": [
43+
"read",
44+
"write",
45+
"append",
46+
"list",
47+
"delete",
48+
"mkdir",
49+
"info",
50+
"exists",
51+
"move",
52+
"find",
53+
"search",
54+
"chmod",
55+
]
56+
}
57+
}
58+
},
59+
"then": {"required": ["path"]},
60+
},
61+
{
62+
"if": {"properties": {"action": {"const": "append"}}},
63+
"then": {"required": ["content"]},
64+
},
65+
{
66+
"if": {"properties": {"action": {"const": "move"}}},
67+
"then": {"required": ["destination"]},
68+
},
69+
{
70+
"if": {"properties": {"action": {"enum": ["find", "search"]}}},
71+
"then": {"required": ["pattern"]},
72+
},
73+
{
74+
"if": {"properties": {"action": {"const": "replace"}}},
75+
"then": {"required": ["paths", "pattern", "replacement"]},
76+
},
77+
{
78+
"if": {"properties": {"action": {"const": "chmod"}}},
79+
"then": {
80+
"anyOf": [
81+
{"required": ["mode"]},
82+
{"required": ["owner"]},
83+
{"required": ["group"]},
84+
]
85+
},
86+
},
87+
]
88+
89+
3690
class DaytonaFileToolSchema(BaseModel):
91+
model_config = {"json_schema_extra": _daytona_file_schema_extra}
92+
3793
action: FileAction = Field(
3894
...,
3995
description=(

lib/crewai-tools/tool.specs.json

Lines changed: 231 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7184,7 +7184,7 @@
71847184
}
71857185
},
71867186
{
7187-
"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.",
7187+
"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.",
71887188
"env_vars": [
71897189
{
71907190
"default": null,
@@ -7334,17 +7334,141 @@
73347334
"daytona"
73357335
],
73367336
"run_params_schema": {
7337+
"allOf": [
7338+
{
7339+
"if": {
7340+
"properties": {
7341+
"action": {
7342+
"enum": [
7343+
"read",
7344+
"write",
7345+
"append",
7346+
"list",
7347+
"delete",
7348+
"mkdir",
7349+
"info",
7350+
"exists",
7351+
"move",
7352+
"find",
7353+
"search",
7354+
"chmod"
7355+
]
7356+
}
7357+
}
7358+
},
7359+
"then": {
7360+
"required": [
7361+
"path"
7362+
]
7363+
}
7364+
},
7365+
{
7366+
"if": {
7367+
"properties": {
7368+
"action": {
7369+
"const": "append"
7370+
}
7371+
}
7372+
},
7373+
"then": {
7374+
"required": [
7375+
"content"
7376+
]
7377+
}
7378+
},
7379+
{
7380+
"if": {
7381+
"properties": {
7382+
"action": {
7383+
"const": "move"
7384+
}
7385+
}
7386+
},
7387+
"then": {
7388+
"required": [
7389+
"destination"
7390+
]
7391+
}
7392+
},
7393+
{
7394+
"if": {
7395+
"properties": {
7396+
"action": {
7397+
"enum": [
7398+
"find",
7399+
"search"
7400+
]
7401+
}
7402+
}
7403+
},
7404+
"then": {
7405+
"required": [
7406+
"pattern"
7407+
]
7408+
}
7409+
},
7410+
{
7411+
"if": {
7412+
"properties": {
7413+
"action": {
7414+
"const": "replace"
7415+
}
7416+
}
7417+
},
7418+
"then": {
7419+
"required": [
7420+
"paths",
7421+
"pattern",
7422+
"replacement"
7423+
]
7424+
}
7425+
},
7426+
{
7427+
"if": {
7428+
"properties": {
7429+
"action": {
7430+
"const": "chmod"
7431+
}
7432+
}
7433+
},
7434+
"then": {
7435+
"anyOf": [
7436+
{
7437+
"required": [
7438+
"mode"
7439+
]
7440+
},
7441+
{
7442+
"required": [
7443+
"owner"
7444+
]
7445+
},
7446+
{
7447+
"required": [
7448+
"group"
7449+
]
7450+
}
7451+
]
7452+
}
7453+
}
7454+
],
73377455
"properties": {
73387456
"action": {
7339-
"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).",
7457+
"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').",
73407458
"enum": [
73417459
"read",
73427460
"write",
73437461
"append",
73447462
"list",
73457463
"delete",
73467464
"mkdir",
7347-
"info"
7465+
"info",
7466+
"exists",
7467+
"move",
7468+
"find",
7469+
"search",
7470+
"chmod",
7471+
"replace"
73487472
],
73497473
"title": "Action",
73507474
"type": "string"
@@ -7368,27 +7492,122 @@
73687492
"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.",
73697493
"title": "Content"
73707494
},
7495+
"destination": {
7496+
"anyOf": [
7497+
{
7498+
"type": "string"
7499+
},
7500+
{
7501+
"type": "null"
7502+
}
7503+
],
7504+
"default": null,
7505+
"description": "For action='move': absolute destination path.",
7506+
"title": "Destination"
7507+
},
7508+
"group": {
7509+
"anyOf": [
7510+
{
7511+
"type": "string"
7512+
},
7513+
{
7514+
"type": "null"
7515+
}
7516+
],
7517+
"default": null,
7518+
"description": "For action='chmod': new file group.",
7519+
"title": "Group"
7520+
},
73717521
"mode": {
7372-
"default": "0755",
7373-
"description": "For action='mkdir': octal permission string (default 0755).",
7374-
"title": "Mode",
7375-
"type": "string"
7522+
"anyOf": [
7523+
{
7524+
"type": "string"
7525+
},
7526+
{
7527+
"type": "null"
7528+
}
7529+
],
7530+
"default": null,
7531+
"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.",
7532+
"title": "Mode"
7533+
},
7534+
"owner": {
7535+
"anyOf": [
7536+
{
7537+
"type": "string"
7538+
},
7539+
{
7540+
"type": "null"
7541+
}
7542+
],
7543+
"default": null,
7544+
"description": "For action='chmod': new file owner (user name).",
7545+
"title": "Owner"
73767546
},
73777547
"path": {
7378-
"description": "Absolute path inside the sandbox.",
7379-
"title": "Path",
7380-
"type": "string"
7548+
"anyOf": [
7549+
{
7550+
"type": "string"
7551+
},
7552+
{
7553+
"type": "null"
7554+
}
7555+
],
7556+
"default": null,
7557+
"description": "Absolute path inside the sandbox. Required for all actions except 'replace' (which uses 'paths' instead).",
7558+
"title": "Path"
7559+
},
7560+
"paths": {
7561+
"anyOf": [
7562+
{
7563+
"items": {
7564+
"type": "string"
7565+
},
7566+
"type": "array"
7567+
},
7568+
{
7569+
"type": "null"
7570+
}
7571+
],
7572+
"default": null,
7573+
"description": "For action='replace': list of absolute file paths in which to replace 'pattern' with 'replacement'.",
7574+
"title": "Paths"
7575+
},
7576+
"pattern": {
7577+
"anyOf": [
7578+
{
7579+
"type": "string"
7580+
},
7581+
{
7582+
"type": "null"
7583+
}
7584+
],
7585+
"default": null,
7586+
"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.",
7587+
"title": "Pattern"
73817588
},
73827589
"recursive": {
73837590
"default": false,
73847591
"description": "For action='delete': remove directories recursively.",
73857592
"title": "Recursive",
73867593
"type": "boolean"
7594+
},
7595+
"replacement": {
7596+
"anyOf": [
7597+
{
7598+
"type": "string"
7599+
},
7600+
{
7601+
"type": "null"
7602+
}
7603+
],
7604+
"default": null,
7605+
"description": "For action='replace': replacement text for 'pattern'.",
7606+
"title": "Replacement"
73877607
}
73887608
},
73897609
"required": [
7390-
"action",
7391-
"path"
7610+
"action"
73927611
],
73937612
"title": "DaytonaFileToolSchema",
73947613
"type": "object"

0 commit comments

Comments
 (0)