Skip to content

Commit 3807072

Browse files
committed
Resolved conflict
2 parents 8722eb2 + 2e9eb8c commit 3807072

File tree

1,388 files changed

+124425
-20682
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,388 files changed

+124425
-20682
lines changed

.github/codeql/codeql-config.yml

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,27 @@ name: "CodeQL Config"
22

33
paths-ignore:
44
# Ignore template files - these are boilerplate code that shouldn't be analyzed
5-
- "src/crewai/cli/templates/**"
5+
- "lib/crewai/src/crewai/cli/templates/**"
66
# Ignore test cassettes - these are test fixtures/recordings
7-
- "tests/cassettes/**"
7+
- "lib/crewai/tests/cassettes/**"
8+
- "lib/crewai-tools/tests/cassettes/**"
89
# Ignore cache and build artifacts
910
- ".cache/**"
1011
# Ignore documentation build artifacts
1112
- "docs/.cache/**"
12-
13+
# Ignore experimental code
14+
- "lib/crewai/src/crewai/experimental/a2a/**"
15+
1316
paths:
14-
# Include all Python source code
15-
- "src/**"
16-
# Include tests (but exclude cassettes)
17-
- "tests/**"
17+
# Include all Python source code from workspace packages
18+
- "lib/crewai/src/**"
19+
- "lib/crewai-tools/src/**"
20+
- "lib/devtools/src/**"
21+
# Include tests (but exclude cassettes via paths-ignore)
22+
- "lib/crewai/tests/**"
23+
- "lib/crewai-tools/tests/**"
24+
- "lib/devtools/tests/**"
1825

1926
# Configure specific queries or packs if needed
2027
# queries:
21-
# - uses: security-and-quality
28+
# - uses: security-and-quality

.github/workflows/codeql.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ on:
1515
push:
1616
branches: [ "main" ]
1717
paths-ignore:
18-
- "src/crewai/cli/templates/**"
18+
- "lib/crewai/src/crewai/cli/templates/**"
1919
pull_request:
2020
branches: [ "main" ]
2121
paths-ignore:
22-
- "src/crewai/cli/templates/**"
22+
- "lib/crewai/src/crewai/cli/templates/**"
2323

2424
jobs:
2525
analyze:

.github/workflows/linter.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,11 @@ jobs:
5252
- name: Run Ruff on Changed Files
5353
if: ${{ steps.changed-files.outputs.files != '' }}
5454
run: |
55-
echo "${{ steps.changed-files.outputs.files }}" \
56-
| tr ' ' '\n' \
57-
| grep -v 'src/crewai/cli/templates/' \
58-
| xargs -I{} uv run ruff check "{}"
55+
echo "${{ steps.changed-files.outputs.files }}" \
56+
| tr ' ' '\n' \
57+
| grep -v 'src/crewai/cli/templates/' \
58+
| grep -v '/tests/' \
59+
| xargs -I{} uv run ruff check "{}"
5960
6061
- name: Save uv caches
6162
if: steps.cache-restore.outputs.cache-hit != 'true'

.github/workflows/publish.yml

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
name: Publish to PyPI
2+
3+
on:
4+
release:
5+
types: [ published ]
6+
workflow_dispatch:
7+
8+
jobs:
9+
build:
10+
name: Build packages
11+
runs-on: ubuntu-latest
12+
permissions:
13+
contents: read
14+
steps:
15+
- uses: actions/checkout@v4
16+
17+
- name: Set up Python
18+
uses: actions/setup-python@v5
19+
with:
20+
python-version: "3.12"
21+
22+
- name: Install uv
23+
uses: astral-sh/setup-uv@v4
24+
25+
- name: Build packages
26+
run: |
27+
uv build --all-packages
28+
rm dist/.gitignore
29+
30+
- name: Upload artifacts
31+
uses: actions/upload-artifact@v4
32+
with:
33+
name: dist
34+
path: dist/
35+
36+
publish:
37+
name: Publish to PyPI
38+
needs: build
39+
runs-on: ubuntu-latest
40+
environment:
41+
name: pypi
42+
url: https://pypi.org/p/crewai
43+
permissions:
44+
id-token: write
45+
contents: read
46+
steps:
47+
- uses: actions/checkout@v4
48+
49+
- name: Install uv
50+
uses: astral-sh/setup-uv@v6
51+
with:
52+
version: "0.8.4"
53+
python-version: "3.12"
54+
enable-cache: false
55+
56+
- name: Download artifacts
57+
uses: actions/download-artifact@v4
58+
with:
59+
name: dist
60+
path: dist
61+
62+
- name: Publish to PyPI
63+
env:
64+
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
65+
run: |
66+
failed=0
67+
for package in dist/*; do
68+
if [[ "$package" == *"crewai_devtools"* ]]; then
69+
echo "Skipping private package: $package"
70+
continue
71+
fi
72+
echo "Publishing $package"
73+
if ! uv publish "$package"; then
74+
echo "Failed to publish $package"
75+
failed=1
76+
fi
77+
done
78+
if [ $failed -eq 1 ]; then
79+
echo "Some packages failed to publish"
80+
exit 1
81+
fi

.github/workflows/tests.yml

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,14 @@ permissions:
88
env:
99
OPENAI_API_KEY: fake-api-key
1010
PYTHONUNBUFFERED: 1
11+
BRAVE_API_KEY: fake-brave-key
12+
SNOWFLAKE_USER: fake-snowflake-user
13+
SNOWFLAKE_PASSWORD: fake-snowflake-password
14+
SNOWFLAKE_ACCOUNT: fake-snowflake-account
15+
SNOWFLAKE_WAREHOUSE: fake-snowflake-warehouse
16+
SNOWFLAKE_DATABASE: fake-snowflake-database
17+
SNOWFLAKE_SCHEMA: fake-snowflake-schema
18+
EMBEDCHAIN_DB_URI: sqlite:///test.db
1119

1220
jobs:
1321
tests:
@@ -56,13 +64,13 @@ jobs:
5664
- name: Run tests (group ${{ matrix.group }} of 8)
5765
run: |
5866
PYTHON_VERSION_SAFE=$(echo "${{ matrix.python-version }}" | tr '.' '_')
59-
DURATION_FILE=".test_durations_py${PYTHON_VERSION_SAFE}"
60-
67+
DURATION_FILE="../../.test_durations_py${PYTHON_VERSION_SAFE}"
68+
6169
# Temporarily always skip cached durations to fix test splitting
6270
# When durations don't match, pytest-split runs duplicate tests instead of splitting
6371
echo "Using even test splitting (duration cache disabled until fix merged)"
6472
DURATIONS_ARG=""
65-
73+
6674
# Original logic (disabled temporarily):
6775
# if [ ! -f "$DURATION_FILE" ]; then
6876
# echo "No cached durations found, tests will be split evenly"
@@ -74,8 +82,8 @@ jobs:
7482
# echo "No test changes detected, using cached test durations for optimal splitting"
7583
# DURATIONS_ARG="--durations-path=${DURATION_FILE}"
7684
# fi
77-
78-
uv run pytest \
85+
86+
cd lib/crewai && uv run pytest \
7987
--block-network \
8088
--timeout=30 \
8189
-vv \
@@ -86,6 +94,19 @@ jobs:
8694
-n auto \
8795
--maxfail=3
8896
97+
- name: Run tool tests (group ${{ matrix.group }} of 8)
98+
run: |
99+
cd lib/crewai-tools && uv run pytest \
100+
--block-network \
101+
--timeout=30 \
102+
-vv \
103+
--splits 8 \
104+
--group ${{ matrix.group }} \
105+
--durations=10 \
106+
-n auto \
107+
--maxfail=3
108+
109+
89110
- name: Save uv caches
90111
if: steps.cache-restore.outputs.cache-hit != 'true'
91112
uses: actions/cache/save@v4

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
.pytest_cache
33
__pycache__
44
dist/
5-
lib/
65
.env
76
assets/*
87
.idea

.pre-commit-config.yaml

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,24 @@ repos:
33
hooks:
44
- id: ruff
55
name: ruff
6-
entry: uv run ruff check
6+
entry: bash -c 'source .venv/bin/activate && uv run ruff check --config pyproject.toml "$@"' --
77
language: system
8+
pass_filenames: true
89
types: [python]
910
- id: ruff-format
1011
name: ruff-format
11-
entry: uv run ruff format
12+
entry: bash -c 'source .venv/bin/activate && uv run ruff format --config pyproject.toml "$@"' --
1213
language: system
14+
pass_filenames: true
1315
types: [python]
1416
- id: mypy
1517
name: mypy
16-
entry: uv run mypy
18+
entry: bash -c 'source .venv/bin/activate && uv run mypy --config-file pyproject.toml "$@"' --
1719
language: system
20+
pass_filenames: true
1821
types: [python]
19-
exclude: ^tests/
22+
- repo: https://github.com/astral-sh/uv-pre-commit
23+
rev: 0.9.3
24+
hooks:
25+
- id: uv-lock
26+

docs/docs.json

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,7 @@
134134
"group": "MCP Integration",
135135
"pages": [
136136
"en/mcp/overview",
137+
"en/mcp/dsl-integration",
137138
"en/mcp/stdio",
138139
"en/mcp/sse",
139140
"en/mcp/streamable-http",
@@ -275,6 +276,7 @@
275276
"en/observability/overview",
276277
"en/observability/arize-phoenix",
277278
"en/observability/braintrust",
279+
"en/observability/datadog",
278280
"en/observability/langdb",
279281
"en/observability/langfuse",
280282
"en/observability/langtrace",
@@ -361,10 +363,20 @@
361363
"en/enterprise/integrations/github",
362364
"en/enterprise/integrations/gmail",
363365
"en/enterprise/integrations/google_calendar",
366+
"en/enterprise/integrations/google_contacts",
367+
"en/enterprise/integrations/google_docs",
368+
"en/enterprise/integrations/google_drive",
364369
"en/enterprise/integrations/google_sheets",
370+
"en/enterprise/integrations/google_slides",
365371
"en/enterprise/integrations/hubspot",
366372
"en/enterprise/integrations/jira",
367373
"en/enterprise/integrations/linear",
374+
"en/enterprise/integrations/microsoft_excel",
375+
"en/enterprise/integrations/microsoft_onedrive",
376+
"en/enterprise/integrations/microsoft_outlook",
377+
"en/enterprise/integrations/microsoft_sharepoint",
378+
"en/enterprise/integrations/microsoft_teams",
379+
"en/enterprise/integrations/microsoft_word",
368380
"en/enterprise/integrations/notion",
369381
"en/enterprise/integrations/salesforce",
370382
"en/enterprise/integrations/shopify",
@@ -560,6 +572,7 @@
560572
"group": "Integração MCP",
561573
"pages": [
562574
"pt-BR/mcp/overview",
575+
"pt-BR/mcp/dsl-integration",
563576
"pt-BR/mcp/stdio",
564577
"pt-BR/mcp/sse",
565578
"pt-BR/mcp/streamable-http",
@@ -688,6 +701,7 @@
688701
"pt-BR/observability/overview",
689702
"pt-BR/observability/arize-phoenix",
690703
"pt-BR/observability/braintrust",
704+
"pt-BR/observability/datadog",
691705
"pt-BR/observability/langdb",
692706
"pt-BR/observability/langfuse",
693707
"pt-BR/observability/langtrace",
@@ -773,10 +787,20 @@
773787
"pt-BR/enterprise/integrations/github",
774788
"pt-BR/enterprise/integrations/gmail",
775789
"pt-BR/enterprise/integrations/google_calendar",
790+
"pt-BR/enterprise/integrations/google_contacts",
791+
"pt-BR/enterprise/integrations/google_docs",
792+
"pt-BR/enterprise/integrations/google_drive",
776793
"pt-BR/enterprise/integrations/google_sheets",
794+
"pt-BR/enterprise/integrations/google_slides",
777795
"pt-BR/enterprise/integrations/hubspot",
778796
"pt-BR/enterprise/integrations/jira",
779797
"pt-BR/enterprise/integrations/linear",
798+
"pt-BR/enterprise/integrations/microsoft_excel",
799+
"pt-BR/enterprise/integrations/microsoft_onedrive",
800+
"pt-BR/enterprise/integrations/microsoft_outlook",
801+
"pt-BR/enterprise/integrations/microsoft_sharepoint",
802+
"pt-BR/enterprise/integrations/microsoft_teams",
803+
"pt-BR/enterprise/integrations/microsoft_word",
780804
"pt-BR/enterprise/integrations/notion",
781805
"pt-BR/enterprise/integrations/salesforce",
782806
"pt-BR/enterprise/integrations/shopify",
@@ -805,6 +829,12 @@
805829
"group": "Triggers",
806830
"pages": [
807831
"pt-BR/enterprise/guides/automation-triggers",
832+
"pt-BR/enterprise/guides/gmail-trigger",
833+
"pt-BR/enterprise/guides/google-calendar-trigger",
834+
"pt-BR/enterprise/guides/google-drive-trigger",
835+
"pt-BR/enterprise/guides/outlook-trigger",
836+
"pt-BR/enterprise/guides/onedrive-trigger",
837+
"pt-BR/enterprise/guides/microsoft-teams-trigger",
808838
"pt-BR/enterprise/guides/slack-trigger",
809839
"pt-BR/enterprise/guides/hubspot-trigger",
810840
"pt-BR/enterprise/guides/salesforce-trigger",
@@ -963,6 +993,7 @@
963993
"group": "MCP 통합",
964994
"pages": [
965995
"ko/mcp/overview",
996+
"ko/mcp/dsl-integration",
966997
"ko/mcp/stdio",
967998
"ko/mcp/sse",
968999
"ko/mcp/streamable-http",
@@ -1103,6 +1134,7 @@
11031134
"ko/observability/overview",
11041135
"ko/observability/arize-phoenix",
11051136
"ko/observability/braintrust",
1137+
"ko/observability/datadog",
11061138
"ko/observability/langdb",
11071139
"ko/observability/langfuse",
11081140
"ko/observability/langtrace",
@@ -1188,10 +1220,20 @@
11881220
"ko/enterprise/integrations/github",
11891221
"ko/enterprise/integrations/gmail",
11901222
"ko/enterprise/integrations/google_calendar",
1223+
"ko/enterprise/integrations/google_contacts",
1224+
"ko/enterprise/integrations/google_docs",
1225+
"ko/enterprise/integrations/google_drive",
11911226
"ko/enterprise/integrations/google_sheets",
1227+
"ko/enterprise/integrations/google_slides",
11921228
"ko/enterprise/integrations/hubspot",
11931229
"ko/enterprise/integrations/jira",
11941230
"ko/enterprise/integrations/linear",
1231+
"ko/enterprise/integrations/microsoft_excel",
1232+
"ko/enterprise/integrations/microsoft_onedrive",
1233+
"ko/enterprise/integrations/microsoft_outlook",
1234+
"ko/enterprise/integrations/microsoft_sharepoint",
1235+
"ko/enterprise/integrations/microsoft_teams",
1236+
"ko/enterprise/integrations/microsoft_word",
11951237
"ko/enterprise/integrations/notion",
11961238
"ko/enterprise/integrations/salesforce",
11971239
"ko/enterprise/integrations/shopify",
@@ -1220,6 +1262,12 @@
12201262
"group": "트리거",
12211263
"pages": [
12221264
"ko/enterprise/guides/automation-triggers",
1265+
"ko/enterprise/guides/gmail-trigger",
1266+
"ko/enterprise/guides/google-calendar-trigger",
1267+
"ko/enterprise/guides/google-drive-trigger",
1268+
"ko/enterprise/guides/outlook-trigger",
1269+
"ko/enterprise/guides/onedrive-trigger",
1270+
"ko/enterprise/guides/microsoft-teams-trigger",
12231271
"ko/enterprise/guides/slack-trigger",
12241272
"ko/enterprise/guides/hubspot-trigger",
12251273
"ko/enterprise/guides/salesforce-trigger",

0 commit comments

Comments
 (0)