diff --git a/.github/workflows/build-and-push-tutorial-agent.yml b/.github/workflows/build-and-push-tutorial-agent.yml index 4b38c767..2a975ae7 100644 --- a/.github/workflows/build-and-push-tutorial-agent.yml +++ b/.github/workflows/build-and-push-tutorial-agent.yml @@ -183,7 +183,7 @@ jobs: fi # Build command - add --push only if we should push - BUILD_ARGS="--manifest ${{ matrix.agent_path }}/manifest.yaml --registry ${REGISTRY} --tag ${VERSION_TAG} --platforms linux/amd64 --repository-name ${REPOSITORY_NAME}" + BUILD_ARGS="--manifest ${{ matrix.agent_path }}/manifest.yaml --registry ${REGISTRY} --tag ${VERSION_TAG} --platforms linux/amd64,linux/arm64 --repository-name ${REPOSITORY_NAME}" if [ "$SHOULD_PUSH" = "true" ]; then agentex agents build $BUILD_ARGS --push diff --git a/examples/tutorials/00_sync/000_hello_acp/Dockerfile b/examples/tutorials/00_sync/000_hello_acp/Dockerfile index 9550d8e5..468f6984 100644 --- a/examples/tutorials/00_sync/000_hello_acp/Dockerfile +++ b/examples/tutorials/00_sync/000_hello_acp/Dockerfile @@ -24,19 +24,28 @@ ENV UV_HTTP_TIMEOUT=1000 # Copy pyproject.toml and README.md to install dependencies -COPY 000_hello_acp/pyproject.toml /app/000_hello_acp/pyproject.toml -COPY 000_hello_acp/README.md /app/000_hello_acp/README.md +COPY 00_sync/000_hello_acp/pyproject.toml /app/000_hello_acp/pyproject.toml +COPY 00_sync/000_hello_acp/README.md /app/000_hello_acp/README.md WORKDIR /app/000_hello_acp # Copy the project code -COPY 000_hello_acp/project /app/000_hello_acp/project +COPY 00_sync/000_hello_acp/project /app/000_hello_acp/project -# Install the required Python packages from pyproject.toml -RUN uv pip install --system . +# Copy the test files +COPY 00_sync/000_hello_acp/tests /app/000_hello_acp/tests + +# Copy shared test utilities +COPY test_utils /app/test_utils + +# Install the required Python packages with dev dependencies (includes pytest) +RUN uv pip install --system .[dev] pytest-asyncio httpx # Set environment variables ENV PYTHONPATH=/app +# Set test environment variables +ENV AGENT_NAME=s000-hello-acp + # Run the agent using uvicorn CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"] diff --git a/examples/tutorials/00_sync/000_hello_acp/manifest.yaml b/examples/tutorials/00_sync/000_hello_acp/manifest.yaml index efb2fd78..218d38ed 100644 --- a/examples/tutorials/00_sync/000_hello_acp/manifest.yaml +++ b/examples/tutorials/00_sync/000_hello_acp/manifest.yaml @@ -15,24 +15,25 @@ build: context: # Root directory for the build context - root: ../ # Keep this as the default root + root: ../../ # Up to tutorials level to include test_utils # Paths to include in the Docker build context # Must include: # - Your agent's directory (your custom agent code) # These paths are collected and sent to the Docker daemon for building include_paths: - - 000_hello_acp + - 00_sync/000_hello_acp + - test_utils # Path to your agent's Dockerfile # This defines how your agent's image is built from the context # Relative to the root directory - dockerfile: 000_hello_acp/Dockerfile + dockerfile: 00_sync/000_hello_acp/Dockerfile # Path to your agent's .dockerignore # Filters unnecessary files from the build context # Helps keep build context small and builds fast - dockerignore: 000_hello_acp/.dockerignore + dockerignore: 00_sync/000_hello_acp/.dockerignore # Local Development Configuration # ----------------------------- diff --git a/examples/tutorials/00_sync/010_multiturn/Dockerfile b/examples/tutorials/00_sync/010_multiturn/Dockerfile index b6a56303..47bc8117 100644 --- a/examples/tutorials/00_sync/010_multiturn/Dockerfile +++ b/examples/tutorials/00_sync/010_multiturn/Dockerfile @@ -23,20 +23,29 @@ RUN uv pip install --system --upgrade pip setuptools wheel ENV UV_HTTP_TIMEOUT=1000 # Copy pyproject.toml and README.md to install dependencies -COPY 010_multiturn/pyproject.toml /app/010_multiturn/pyproject.toml -COPY 010_multiturn/README.md /app/010_multiturn/README.md +COPY 00_sync/010_multiturn/pyproject.toml /app/010_multiturn/pyproject.toml +COPY 00_sync/010_multiturn/README.md /app/010_multiturn/README.md WORKDIR /app/010_multiturn # Copy the project code -COPY 010_multiturn/project /app/010_multiturn/project +COPY 00_sync/010_multiturn/project /app/010_multiturn/project -# Install the required Python packages from pyproject.toml -RUN uv pip install --system . +# Copy the test files +COPY 00_sync/010_multiturn/tests /app/010_multiturn/tests + +# Copy shared test utilities +COPY test_utils /app/test_utils + +# Install the required Python packages with dev dependencies (includes pytest) +RUN uv pip install --system .[dev] pytest-asyncio httpx WORKDIR /app/010_multiturn # Set environment variables ENV PYTHONPATH=/app +# Set test environment variables +ENV AGENT_NAME=s010-multiturn + # Run the agent using uvicorn CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"] diff --git a/examples/tutorials/00_sync/010_multiturn/manifest.yaml b/examples/tutorials/00_sync/010_multiturn/manifest.yaml index 6b10e48b..c7e094aa 100644 --- a/examples/tutorials/00_sync/010_multiturn/manifest.yaml +++ b/examples/tutorials/00_sync/010_multiturn/manifest.yaml @@ -15,24 +15,25 @@ build: context: # Root directory for the build context - root: ../ # Keep this as the default root + root: ../../ # Up to tutorials level to include test_utils # Paths to include in the Docker build context # Must include: # - Your agent's directory (your custom agent code) # These paths are collected and sent to the Docker daemon for building include_paths: - - 010_multiturn + - 00_sync/010_multiturn + - test_utils # Path to your agent's Dockerfile # This defines how your agent's image is built from the context # Relative to the root directory - dockerfile: 010_multiturn/Dockerfile + dockerfile: 00_sync/010_multiturn/Dockerfile # Path to your agent's .dockerignore # Filters unnecessary files from the build context # Helps keep build context small and builds fast - dockerignore: 010_multiturn/.dockerignore + dockerignore: 00_sync/010_multiturn/.dockerignore # Local Development Configuration diff --git a/examples/tutorials/00_sync/020_streaming/Dockerfile b/examples/tutorials/00_sync/020_streaming/Dockerfile index 758655de..0aa1764a 100644 --- a/examples/tutorials/00_sync/020_streaming/Dockerfile +++ b/examples/tutorials/00_sync/020_streaming/Dockerfile @@ -23,19 +23,28 @@ RUN uv pip install --system --upgrade pip setuptools wheel ENV UV_HTTP_TIMEOUT=1000 # Copy pyproject.toml and README.md to install dependencies -COPY 020_streaming/pyproject.toml /app/020_streaming/pyproject.toml -COPY 020_streaming/README.md /app/020_streaming/README.md +COPY 00_sync/020_streaming/pyproject.toml /app/020_streaming/pyproject.toml +COPY 00_sync/020_streaming/README.md /app/020_streaming/README.md WORKDIR /app/020_streaming # Copy the project code -COPY 020_streaming/project /app/020_streaming/project +COPY 00_sync/020_streaming/project /app/020_streaming/project -# Install the required Python packages from pyproject.toml -RUN uv pip install --system . +# Copy the test files +COPY 00_sync/020_streaming/tests /app/020_streaming/tests + +# Copy shared test utilities +COPY test_utils /app/test_utils + +# Install the required Python packages with dev dependencies (includes pytest) +RUN uv pip install --system .[dev] pytest-asyncio httpx # Set environment variables ENV PYTHONPATH=/app +# Set test environment variables +ENV AGENT_NAME=s020-streaming + # Run the agent using uvicorn CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"] \ No newline at end of file diff --git a/examples/tutorials/00_sync/020_streaming/manifest.yaml b/examples/tutorials/00_sync/020_streaming/manifest.yaml index b59afaef..39a04d0f 100644 --- a/examples/tutorials/00_sync/020_streaming/manifest.yaml +++ b/examples/tutorials/00_sync/020_streaming/manifest.yaml @@ -15,7 +15,7 @@ build: context: # Root directory for the build context - root: ../ # Keep this as the default root + root: ../../ # Up to tutorials level to include test_utils # Paths to include in the Docker build context # Must include: @@ -23,17 +23,18 @@ build: # These paths are collected and sent to the Docker daemon for building include_paths: - - 020_streaming + - 00_sync/020_streaming + - test_utils # Path to your agent's Dockerfile # This defines how your agent's image is built from the context # Relative to the root directory - dockerfile: 020_streaming/Dockerfile + dockerfile: 00_sync/020_streaming/Dockerfile # Path to your agent's .dockerignore # Filters unnecessary files from the build context # Helps keep build context small and builds fast - dockerignore: 020_streaming/.dockerignore + dockerignore: 00_sync/020_streaming/.dockerignore # Local Development Configuration diff --git a/examples/tutorials/10_agentic/00_base/000_hello_acp/Dockerfile b/examples/tutorials/10_agentic/00_base/000_hello_acp/Dockerfile index f9e26e99..56df3ce8 100644 --- a/examples/tutorials/10_agentic/00_base/000_hello_acp/Dockerfile +++ b/examples/tutorials/10_agentic/00_base/000_hello_acp/Dockerfile @@ -23,20 +23,29 @@ RUN uv pip install --system --upgrade pip setuptools wheel ENV UV_HTTP_TIMEOUT=1000 # Copy pyproject.toml and README.md to install dependencies -COPY 000_hello_acp/pyproject.toml /app/000_hello_acp/pyproject.toml -COPY 000_hello_acp/README.md /app/000_hello_acp/README.md +COPY 10_agentic/00_base/000_hello_acp/pyproject.toml /app/000_hello_acp/pyproject.toml +COPY 10_agentic/00_base/000_hello_acp/README.md /app/000_hello_acp/README.md WORKDIR /app/000_hello_acp # Copy the project code -COPY 000_hello_acp/project /app/000_hello_acp/project +COPY 10_agentic/00_base/000_hello_acp/project /app/000_hello_acp/project -# Install the required Python packages from pyproject.toml -RUN uv pip install --system . +# Copy the test files +COPY 10_agentic/00_base/000_hello_acp/tests /app/000_hello_acp/tests + +# Copy shared test utilities +COPY test_utils /app/test_utils + +# Install the required Python packages with dev dependencies (includes pytest) +RUN uv pip install --system .[dev] pytest-asyncio httpx WORKDIR /app/000_hello_acp # Set environment variables ENV PYTHONPATH=/app +# Set test environment variables +ENV AGENT_NAME=ab000-hello-acp + # Run the agent using uvicorn CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"] diff --git a/examples/tutorials/10_agentic/00_base/000_hello_acp/manifest.yaml b/examples/tutorials/10_agentic/00_base/000_hello_acp/manifest.yaml index 5935c72b..1567b1c8 100644 --- a/examples/tutorials/10_agentic/00_base/000_hello_acp/manifest.yaml +++ b/examples/tutorials/10_agentic/00_base/000_hello_acp/manifest.yaml @@ -15,24 +15,25 @@ build: context: # Root directory for the build context - root: ../ # Keep this as the default root + root: ../../../ # Up to tutorials level to include test_utils # Paths to include in the Docker build context # Must include: # - Your agent's directory (your custom agent code) # These paths are collected and sent to the Docker daemon for building include_paths: - - 000_hello_acp + - 10_agentic/00_base/000_hello_acp + - test_utils # Path to your agent's Dockerfile # This defines how your agent's image is built from the context # Relative to the root directory - dockerfile: 000_hello_acp/Dockerfile + dockerfile: 10_agentic/00_base/000_hello_acp/Dockerfile # Path to your agent's .dockerignore # Filters unnecessary files from the build context # Helps keep build context small and builds fast - dockerignore: 000_hello_acp/.dockerignore + dockerignore: 10_agentic/00_base/000_hello_acp/.dockerignore # Local Development Configuration diff --git a/examples/tutorials/10_agentic/00_base/010_multiturn/Dockerfile b/examples/tutorials/10_agentic/00_base/010_multiturn/Dockerfile index f3acc25b..486238fb 100644 --- a/examples/tutorials/10_agentic/00_base/010_multiturn/Dockerfile +++ b/examples/tutorials/10_agentic/00_base/010_multiturn/Dockerfile @@ -23,20 +23,29 @@ RUN uv pip install --system --upgrade pip setuptools wheel ENV UV_HTTP_TIMEOUT=1000 # Copy pyproject.toml and README.md to install dependencies -COPY 010_multiturn/pyproject.toml /app/010_multiturn/pyproject.toml -COPY 010_multiturn/README.md /app/010_multiturn/README.md +COPY 10_agentic/00_base/010_multiturn/pyproject.toml /app/010_multiturn/pyproject.toml +COPY 10_agentic/00_base/010_multiturn/README.md /app/010_multiturn/README.md WORKDIR /app/010_multiturn -COPY 010_multiturn/project /app/010_multiturn/project +COPY 10_agentic/00_base/010_multiturn/project /app/010_multiturn/project -# Install the required Python packages from pyproject.toml -RUN uv pip install --system . +# Copy the test files +COPY 10_agentic/00_base/010_multiturn/tests /app/010_multiturn/tests + +# Copy shared test utilities +COPY test_utils /app/test_utils + +# Install the required Python packages with dev dependencies (includes pytest) +RUN uv pip install --system .[dev] pytest-asyncio httpx WORKDIR /app/010_multiturn # Set environment variables ENV PYTHONPATH=/app +# Set test environment variables +ENV AGENT_NAME=ab010-multiturn + # Run the agent using uvicorn CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"] diff --git a/examples/tutorials/10_agentic/00_base/010_multiturn/manifest.yaml b/examples/tutorials/10_agentic/00_base/010_multiturn/manifest.yaml index 8ce67171..c205af88 100644 --- a/examples/tutorials/10_agentic/00_base/010_multiturn/manifest.yaml +++ b/examples/tutorials/10_agentic/00_base/010_multiturn/manifest.yaml @@ -15,24 +15,25 @@ build: context: # Root directory for the build context - root: ../ # Keep this as the default root + root: ../../../ # Up to tutorials level to include test_utils # Paths to include in the Docker build context # Must include: # - Your agent's directory (your custom agent code) # These paths are collected and sent to the Docker daemon for building include_paths: - - 010_multiturn + - 10_agentic/00_base/010_multiturn + - test_utils # Path to your agent's Dockerfile # This defines how your agent's image is built from the context # Relative to the root directory - dockerfile: 010_multiturn/Dockerfile + dockerfile: 10_agentic/00_base/010_multiturn/Dockerfile # Path to your agent's .dockerignore # Filters unnecessary files from the build context # Helps keep build context small and builds fast - dockerignore: 010_multiturn/.dockerignore + dockerignore: 10_agentic/00_base/010_multiturn/.dockerignore # Local Development Configuration diff --git a/examples/tutorials/10_agentic/00_base/020_streaming/Dockerfile b/examples/tutorials/10_agentic/00_base/020_streaming/Dockerfile index 5f593a99..f798bfc5 100644 --- a/examples/tutorials/10_agentic/00_base/020_streaming/Dockerfile +++ b/examples/tutorials/10_agentic/00_base/020_streaming/Dockerfile @@ -23,18 +23,28 @@ RUN uv pip install --system --upgrade pip setuptools wheel ENV UV_HTTP_TIMEOUT=1000 # Copy pyproject.toml and README.md to install dependencies -COPY 020_streaming/pyproject.toml /app/020_streaming/pyproject.toml -COPY 020_streaming/README.md /app/020_streaming/README.md +COPY 10_agentic/00_base/020_streaming/pyproject.toml /app/020_streaming/pyproject.toml +COPY 10_agentic/00_base/020_streaming/README.md /app/020_streaming/README.md WORKDIR /app/020_streaming # Copy the project code -COPY 020_streaming/project /app/020_streaming/project +COPY 10_agentic/00_base/020_streaming/project /app/020_streaming/project + +# Copy the test files +COPY 10_agentic/00_base/020_streaming/tests /app/020_streaming/tests + +# Copy shared test utilities +COPY test_utils /app/test_utils + +# Install the required Python packages with dev dependencies (includes pytest) +RUN uv pip install --system .[dev] pytest-asyncio httpx -# Install the required Python packages from pyproject.toml -RUN uv pip install --system . # Set environment variables ENV PYTHONPATH=/app +# Set test environment variables +ENV AGENT_NAME=ab020-streaming + # Run the agent using uvicorn CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"] diff --git a/examples/tutorials/10_agentic/00_base/020_streaming/manifest.yaml b/examples/tutorials/10_agentic/00_base/020_streaming/manifest.yaml index cb2f6554..a3e167d0 100644 --- a/examples/tutorials/10_agentic/00_base/020_streaming/manifest.yaml +++ b/examples/tutorials/10_agentic/00_base/020_streaming/manifest.yaml @@ -15,24 +15,25 @@ build: context: # Root directory for the build context - root: ../ # Keep this as the default root + root: ../../../ # Up to tutorials level to include test_utils # Paths to include in the Docker build context # Must include: # - Your agent's directory (your custom agent code) # These paths are collected and sent to the Docker daemon for building include_paths: - - 020_streaming + - 10_agentic/00_base/020_streaming + - test_utils # Path to your agent's Dockerfile # This defines how your agent's image is built from the context # Relative to the root directory - dockerfile: 020_streaming/Dockerfile + dockerfile: 10_agentic/00_base/020_streaming/Dockerfile # Path to your agent's .dockerignore # Filters unnecessary files from the build context # Helps keep build context small and builds fast - dockerignore: 020_streaming/.dockerignore + dockerignore: 10_agentic/00_base/020_streaming/.dockerignore # Local Development Configuration diff --git a/examples/tutorials/10_agentic/00_base/030_tracing/Dockerfile b/examples/tutorials/10_agentic/00_base/030_tracing/Dockerfile index 78399336..f8afe6f9 100644 --- a/examples/tutorials/10_agentic/00_base/030_tracing/Dockerfile +++ b/examples/tutorials/10_agentic/00_base/030_tracing/Dockerfile @@ -23,19 +23,28 @@ RUN uv pip install --system --upgrade pip setuptools wheel ENV UV_HTTP_TIMEOUT=1000 # Copy pyproject.toml and README.md to install dependencies -COPY 030_tracing/pyproject.toml /app/030_tracing/pyproject.toml -COPY 030_tracing/README.md /app/030_tracing/README.md +COPY 10_agentic/00_base/030_tracing/pyproject.toml /app/030_tracing/pyproject.toml +COPY 10_agentic/00_base/030_tracing/README.md /app/030_tracing/README.md WORKDIR /app/030_tracing # Copy the project code -COPY 030_tracing/project /app/030_tracing/project +COPY 10_agentic/00_base/030_tracing/project /app/030_tracing/project -# Install the required Python packages from pyproject.toml -RUN uv pip install --system . +# Copy the test files +COPY 10_agentic/00_base/030_tracing/tests /app/030_tracing/tests + +# Copy shared test utilities +COPY test_utils /app/test_utils + +# Install the required Python packages with dev dependencies (includes pytest) +RUN uv pip install --system .[dev] pytest-asyncio httpx # Set environment variables ENV PYTHONPATH=/app +# Set test environment variables +ENV AGENT_NAME=ab030-tracing + # Run the agent using uvicorn CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"] diff --git a/examples/tutorials/10_agentic/00_base/030_tracing/manifest.yaml b/examples/tutorials/10_agentic/00_base/030_tracing/manifest.yaml index f23df843..5f5e795d 100644 --- a/examples/tutorials/10_agentic/00_base/030_tracing/manifest.yaml +++ b/examples/tutorials/10_agentic/00_base/030_tracing/manifest.yaml @@ -15,24 +15,25 @@ build: context: # Root directory for the build context - root: ../ # Keep this as the default root + root: ../../../ # Up to tutorials level to include test_utils # Paths to include in the Docker build context # Must include: # - Your agent's directory (your custom agent code) # These paths are collected and sent to the Docker daemon for building include_paths: - - 030_tracing + - 10_agentic/00_base/030_tracing + - test_utils # Path to your agent's Dockerfile # This defines how your agent's image is built from the context # Relative to the root directory - dockerfile: 030_tracing/Dockerfile + dockerfile: 10_agentic/00_base/030_tracing/Dockerfile # Path to your agent's .dockerignore # Filters unnecessary files from the build context # Helps keep build context small and builds fast - dockerignore: 030_tracing/.dockerignore + dockerignore: 10_agentic/00_base/030_tracing/.dockerignore # Local Development Configuration diff --git a/examples/tutorials/10_agentic/00_base/040_other_sdks/Dockerfile b/examples/tutorials/10_agentic/00_base/040_other_sdks/Dockerfile index 5761d08a..fda40193 100644 --- a/examples/tutorials/10_agentic/00_base/040_other_sdks/Dockerfile +++ b/examples/tutorials/10_agentic/00_base/040_other_sdks/Dockerfile @@ -23,19 +23,28 @@ RUN uv pip install --system --upgrade pip setuptools wheel ENV UV_HTTP_TIMEOUT=1000 # Copy pyproject.toml and README.md to install dependencies -COPY 040_other_sdks/pyproject.toml /app/040_other_sdks/pyproject.toml -COPY 040_other_sdks/README.md /app/040_other_sdks/README.md +COPY 10_agentic/00_base/040_other_sdks/pyproject.toml /app/040_other_sdks/pyproject.toml +COPY 10_agentic/00_base/040_other_sdks/README.md /app/040_other_sdks/README.md WORKDIR /app/040_other_sdks # Copy the project code -COPY 040_other_sdks/project /app/040_other_sdks/project +COPY 10_agentic/00_base/040_other_sdks/project /app/040_other_sdks/project -# Install the required Python packages from pyproject.toml -RUN uv pip install --system . +# Copy the test files +COPY 10_agentic/00_base/040_other_sdks/tests /app/040_other_sdks/tests + +# Copy shared test utilities +COPY test_utils /app/test_utils + +# Install the required Python packages with dev dependencies (includes pytest) +RUN uv pip install --system .[dev] pytest-asyncio httpx # Set environment variables ENV PYTHONPATH=/app +# Set test environment variables +ENV AGENT_NAME=ab040-other-sdks + # Run the agent using uvicorn CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"] diff --git a/examples/tutorials/10_agentic/00_base/040_other_sdks/manifest.yaml b/examples/tutorials/10_agentic/00_base/040_other_sdks/manifest.yaml index 559b0cfa..af81ff24 100644 --- a/examples/tutorials/10_agentic/00_base/040_other_sdks/manifest.yaml +++ b/examples/tutorials/10_agentic/00_base/040_other_sdks/manifest.yaml @@ -15,24 +15,25 @@ build: context: # Root directory for the build context - root: ../ # Keep this as the default root + root: ../../../ # Up to tutorials level to include test_utils # Paths to include in the Docker build context # Must include: # - Your agent's directory (your custom agent code) # These paths are collected and sent to the Docker daemon for building include_paths: - - 040_other_sdks + - 10_agentic/00_base/040_other_sdks + - test_utils # Path to your agent's Dockerfile # This defines how your agent's image is built from the context # Relative to the root directory - dockerfile: 040_other_sdks/Dockerfile + dockerfile: 10_agentic/00_base/040_other_sdks/Dockerfile # Path to your agent's .dockerignore # Filters unnecessary files from the build context # Helps keep build context small and builds fast - dockerignore: 040_other_sdks/.dockerignore + dockerignore: 10_agentic/00_base/040_other_sdks/.dockerignore # Local Development Configuration diff --git a/examples/tutorials/10_agentic/00_base/080_batch_events/Dockerfile b/examples/tutorials/10_agentic/00_base/080_batch_events/Dockerfile index 352fa522..7eb572f7 100644 --- a/examples/tutorials/10_agentic/00_base/080_batch_events/Dockerfile +++ b/examples/tutorials/10_agentic/00_base/080_batch_events/Dockerfile @@ -23,26 +23,29 @@ RUN uv pip install --system --upgrade pip setuptools wheel ENV UV_HTTP_TIMEOUT=1000 # Copy pyproject.toml and README.md to install dependencies -COPY 080_batch_events/pyproject.toml /app/080_batch_events/pyproject.toml -COPY 080_batch_events/README.md /app/080_batch_events/README.md +COPY 10_agentic/00_base/080_batch_events/pyproject.toml /app/080_batch_events/pyproject.toml +COPY 10_agentic/00_base/080_batch_events/README.md /app/080_batch_events/README.md WORKDIR /app/080_batch_events # Copy the project code -COPY 080_batch_events/project /app/080_batch_events/project +COPY 10_agentic/00_base/080_batch_events/project /app/080_batch_events/project -# Copy test files -COPY 080_batch_events/test_*.py /app/080_batch_events/ +# Copy the test files +COPY 10_agentic/00_base/080_batch_events/tests /app/080_batch_events/tests -# Install the required Python packages from pyproject.toml -RUN uv pip install --system . +# Copy shared test utilities +COPY test_utils /app/test_utils -# Install pytest for running tests -RUN uv pip install --system pytest pytest-asyncio +# Install the required Python packages with dev dependencies (includes pytest) +RUN uv pip install --system .[dev] pytest-asyncio httpx WORKDIR /app/080_batch_events # Set environment variables ENV PYTHONPATH=/app +# Set test environment variables +ENV AGENT_NAME=ab080-batch-events + # Run the agent using uvicorn CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"] diff --git a/examples/tutorials/10_agentic/00_base/080_batch_events/manifest.yaml b/examples/tutorials/10_agentic/00_base/080_batch_events/manifest.yaml index 314792be..dedbbf08 100644 --- a/examples/tutorials/10_agentic/00_base/080_batch_events/manifest.yaml +++ b/examples/tutorials/10_agentic/00_base/080_batch_events/manifest.yaml @@ -15,24 +15,25 @@ build: context: # Root directory for the build context - root: ../ # Keep this as the default root + root: ../../../ # Up to tutorials level to include test_utils # Paths to include in the Docker build context # Must include: # - Your agent's directory (your custom agent code) # These paths are collected and sent to the Docker daemon for building include_paths: - - 080_batch_events + - 10_agentic/00_base/080_batch_events + - test_utils # Path to your agent's Dockerfile # This defines how your agent's image is built from the context # Relative to the root directory - dockerfile: 080_batch_events/Dockerfile + dockerfile: 10_agentic/00_base/080_batch_events/Dockerfile # Path to your agent's .dockerignore # Filters unnecessary files from the build context # Helps keep build context small and builds fast - dockerignore: 080_batch_events/.dockerignore + dockerignore: 10_agentic/00_base/080_batch_events/.dockerignore # Local Development Configuration diff --git a/examples/tutorials/10_agentic/00_base/090_multi_agent_non_temporal/Dockerfile b/examples/tutorials/10_agentic/00_base/090_multi_agent_non_temporal/Dockerfile index 9eab5940..f5b8c211 100644 --- a/examples/tutorials/10_agentic/00_base/090_multi_agent_non_temporal/Dockerfile +++ b/examples/tutorials/10_agentic/00_base/090_multi_agent_non_temporal/Dockerfile @@ -32,8 +32,14 @@ WORKDIR /app/090_multi_agent_non_temporal # Copy the project code COPY 090_multi_agent_non_temporal/project /app/090_multi_agent_non_temporal/project -# Install the required Python packages from pyproject.toml -RUN uv pip install --system . +# Copy the test files +COPY 090_multi_agent_non_temporal/tests /app/090_multi_agent_non_temporal/tests + +# Copy shared test utilities +COPY test_utils /app/test_utils + +# Install the required Python packages with dev dependencies (includes pytest) +RUN uv pip install --system .[dev] pytest-asyncio httpx # Set environment variables ENV PYTHONPATH=/app @@ -41,5 +47,8 @@ ENV PYTHONPATH=/app ARG AGENT_FILE ARG PORT +# Note: AGENT_NAME should be set at runtime based on which agent is running +# (ab090-creator-agent, ab090-critic-agent, ab090-formatter-agent, or ab090-orchestrator-agent) + # Run the agent using uvicorn CMD uvicorn project.${AGENT_FILE%.*}:acp --host 0.0.0.0 --port ${PORT:-8000} diff --git a/examples/tutorials/10_agentic/10_temporal/000_hello_acp/Dockerfile b/examples/tutorials/10_agentic/10_temporal/000_hello_acp/Dockerfile index 3c835664..3a336ff9 100644 --- a/examples/tutorials/10_agentic/10_temporal/000_hello_acp/Dockerfile +++ b/examples/tutorials/10_agentic/10_temporal/000_hello_acp/Dockerfile @@ -29,16 +29,28 @@ RUN uv pip install --system --upgrade pip setuptools wheel ENV UV_HTTP_TIMEOUT=1000 # Copy pyproject.toml and README.md to install dependencies -COPY 000_hello_acp/pyproject.toml /app/000_hello_acp/pyproject.toml -COPY 000_hello_acp/README.md /app/000_hello_acp/README.md +COPY 10_agentic/10_temporal/000_hello_acp/pyproject.toml /app/000_hello_acp/pyproject.toml +COPY 10_agentic/10_temporal/000_hello_acp/README.md /app/000_hello_acp/README.md WORKDIR /app/000_hello_acp # Copy the project code -COPY 000_hello_acp/project /app/000_hello_acp/project +COPY 10_agentic/10_temporal/000_hello_acp/project /app/000_hello_acp/project -# Install the required Python packages from pyproject.toml -RUN uv pip install --system . +# Copy the test files +COPY 10_agentic/10_temporal/000_hello_acp/tests /app/000_hello_acp/tests + +# Copy shared test utilities +COPY test_utils /app/test_utils + +# Install the required Python packages with dev dependencies (includes pytest) +RUN uv pip install --system .[dev] pytest-asyncio httpx + +# Set environment variables +ENV PYTHONPATH=/app + +# Set test environment variables +ENV AGENT_NAME=at000-hello-acp # Run the ACP server using uvicorn CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"] diff --git a/examples/tutorials/10_agentic/10_temporal/000_hello_acp/manifest.yaml b/examples/tutorials/10_agentic/10_temporal/000_hello_acp/manifest.yaml index 82569dcd..e6754df1 100644 --- a/examples/tutorials/10_agentic/10_temporal/000_hello_acp/manifest.yaml +++ b/examples/tutorials/10_agentic/10_temporal/000_hello_acp/manifest.yaml @@ -15,24 +15,25 @@ build: context: # Root directory for the build context - root: ../ # Keep this as the default root + root: ../../../ # Up to tutorials level to include test_utils # Paths to include in the Docker build context # Must include: # - Your agent's directory (your custom agent code) # These paths are collected and sent to the Docker daemon for building include_paths: - - 000_hello_acp + - 10_agentic/10_temporal/000_hello_acp + - test_utils # Path to your agent's Dockerfile # This defines how your agent's image is built from the context # Relative to the root directory - dockerfile: 000_hello_acp/Dockerfile + dockerfile: 10_agentic/10_temporal/000_hello_acp/Dockerfile # Path to your agent's .dockerignore # Filters unnecessary files from the build context # Helps keep build context small and builds fast - dockerignore: 000_hello_acp/.dockerignore + dockerignore: 10_agentic/10_temporal/000_hello_acp/.dockerignore # Local Development Configuration diff --git a/examples/tutorials/10_agentic/10_temporal/010_agent_chat/Dockerfile b/examples/tutorials/10_agentic/10_temporal/010_agent_chat/Dockerfile index 16772e4a..4db65cd8 100644 --- a/examples/tutorials/10_agentic/10_temporal/010_agent_chat/Dockerfile +++ b/examples/tutorials/10_agentic/10_temporal/010_agent_chat/Dockerfile @@ -29,16 +29,28 @@ RUN uv pip install --system --upgrade pip setuptools wheel ENV UV_HTTP_TIMEOUT=1000 # Copy pyproject.toml and README.md to install dependencies -COPY 010_agent_chat/pyproject.toml /app/010_agent_chat/pyproject.toml -COPY 010_agent_chat/README.md /app/010_agent_chat/README.md +COPY 10_agentic/10_temporal/010_agent_chat/pyproject.toml /app/010_agent_chat/pyproject.toml +COPY 10_agentic/10_temporal/010_agent_chat/README.md /app/010_agent_chat/README.md WORKDIR /app/010_agent_chat # Copy the project code -COPY 010_agent_chat/project /app/010_agent_chat/project +COPY 10_agentic/10_temporal/010_agent_chat/project /app/010_agent_chat/project -# Install the required Python packages from pyproject.toml -RUN uv pip install --system . +# Copy the test files +COPY 10_agentic/10_temporal/010_agent_chat/tests /app/010_agent_chat/tests + +# Copy shared test utilities +COPY test_utils /app/test_utils + +# Install the required Python packages with dev dependencies (includes pytest) +RUN uv pip install --system .[dev] pytest-asyncio httpx + +# Set environment variables +ENV PYTHONPATH=/app + +# Set test environment variables +ENV AGENT_NAME=at010-agent-chat # Run the ACP server using uvicorn CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"] diff --git a/examples/tutorials/10_agentic/10_temporal/010_agent_chat/manifest.yaml b/examples/tutorials/10_agentic/10_temporal/010_agent_chat/manifest.yaml index 66e0073d..f1d04302 100644 --- a/examples/tutorials/10_agentic/10_temporal/010_agent_chat/manifest.yaml +++ b/examples/tutorials/10_agentic/10_temporal/010_agent_chat/manifest.yaml @@ -15,24 +15,25 @@ build: context: # Root directory for the build context - root: ../ # Keep this as the default root + root: ../../../ # Up to tutorials level to include test_utils # Paths to include in the Docker build context # Must include: # - Your agent's directory (your custom agent code) # These paths are collected and sent to the Docker daemon for building include_paths: - - 010_agent_chat + - 10_agentic/10_temporal/010_agent_chat + - test_utils # Path to your agent's Dockerfile # This defines how your agent's image is built from the context # Relative to the root directory - dockerfile: 010_agent_chat/Dockerfile + dockerfile: 10_agentic/10_temporal/010_agent_chat/Dockerfile # Path to your agent's .dockerignore # Filters unnecessary files from the build context # Helps keep build context small and builds fast - dockerignore: 010_agent_chat/.dockerignore + dockerignore: 10_agentic/10_temporal/010_agent_chat/.dockerignore # Local Development Configuration diff --git a/examples/tutorials/10_agentic/10_temporal/020_state_machine/Dockerfile b/examples/tutorials/10_agentic/10_temporal/020_state_machine/Dockerfile index 002100c0..f3ac2eba 100644 --- a/examples/tutorials/10_agentic/10_temporal/020_state_machine/Dockerfile +++ b/examples/tutorials/10_agentic/10_temporal/020_state_machine/Dockerfile @@ -29,21 +29,30 @@ RUN uv pip install --system --upgrade pip setuptools wheel ENV UV_HTTP_TIMEOUT=1000 # Copy pyproject.toml and README.md to install dependencies -COPY 020_state_machine/pyproject.toml /app/020_state_machine/pyproject.toml -COPY 020_state_machine/README.md /app/020_state_machine/README.md +COPY 10_agentic/10_temporal/020_state_machine/pyproject.toml /app/020_state_machine/pyproject.toml +COPY 10_agentic/10_temporal/020_state_machine/README.md /app/020_state_machine/README.md WORKDIR /app/020_state_machine # Copy the project code -COPY 020_state_machine/project /app/020_state_machine/project +COPY 10_agentic/10_temporal/020_state_machine/project /app/020_state_machine/project -# Install the required Python packages from pyproject.toml -RUN uv pip install --system . +# Copy the test files +COPY 10_agentic/10_temporal/020_state_machine/tests /app/020_state_machine/tests + +# Copy shared test utilities +COPY test_utils /app/test_utils + +# Install the required Python packages with dev dependencies (includes pytest) +RUN uv pip install --system .[dev] pytest-asyncio httpx WORKDIR /app/020_state_machine ENV PYTHONPATH=/app +# Set test environment variables +ENV AGENT_NAME=at020-state-machine + # Run the ACP server using uvicorn CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"] diff --git a/examples/tutorials/10_agentic/10_temporal/020_state_machine/manifest.yaml b/examples/tutorials/10_agentic/10_temporal/020_state_machine/manifest.yaml index d7936096..c6579560 100644 --- a/examples/tutorials/10_agentic/10_temporal/020_state_machine/manifest.yaml +++ b/examples/tutorials/10_agentic/10_temporal/020_state_machine/manifest.yaml @@ -15,24 +15,25 @@ build: context: # Root directory for the build context - root: ../ # Keep this as the default root + root: ../../../ # Up to tutorials level to include test_utils # Paths to include in the Docker build context # Must include: # - Your agent's directory (your custom agent code) # These paths are collected and sent to the Docker daemon for building include_paths: - - 020_state_machine + - 10_agentic/10_temporal/020_state_machine + - test_utils # Path to your agent's Dockerfile # This defines how your agent's image is built from the context # Relative to the root directory - dockerfile: 020_state_machine/Dockerfile + dockerfile: 10_agentic/10_temporal/020_state_machine/Dockerfile # Path to your agent's .dockerignore # Filters unnecessary files from the build context # Helps keep build context small and builds fast - dockerignore: 020_state_machine/.dockerignore + dockerignore: 10_agentic/10_temporal/020_state_machine/.dockerignore # Local Development Configuration diff --git a/examples/tutorials/10_agentic/10_temporal/030_custom_activities/Dockerfile b/examples/tutorials/10_agentic/10_temporal/030_custom_activities/Dockerfile index e631450f..90fe6c63 100644 --- a/examples/tutorials/10_agentic/10_temporal/030_custom_activities/Dockerfile +++ b/examples/tutorials/10_agentic/10_temporal/030_custom_activities/Dockerfile @@ -29,16 +29,28 @@ RUN uv pip install --system --upgrade pip setuptools wheel ENV UV_HTTP_TIMEOUT=1000 # Copy pyproject.toml and README.md to install dependencies -COPY 030_custom_activities/pyproject.toml /app/030_custom_activities/pyproject.toml -COPY 030_custom_activities/README.md /app/030_custom_activities/README.md +COPY 10_agentic/10_temporal/030_custom_activities/pyproject.toml /app/030_custom_activities/pyproject.toml +COPY 10_agentic/10_temporal/030_custom_activities/README.md /app/030_custom_activities/README.md WORKDIR /app/030_custom_activities # Copy the project code -COPY 030_custom_activities/project /app/030_custom_activities/project +COPY 10_agentic/10_temporal/030_custom_activities/project /app/030_custom_activities/project -# Install the required Python packages from pyproject.toml -RUN uv pip install --system . +# Copy the test files +COPY 10_agentic/10_temporal/030_custom_activities/tests /app/030_custom_activities/tests + +# Copy shared test utilities +COPY test_utils /app/test_utils + +# Install the required Python packages with dev dependencies (includes pytest) +RUN uv pip install --system .[dev] pytest-asyncio httpx + +# Set environment variables +ENV PYTHONPATH=/app + +# Set test environment variables +ENV AGENT_NAME=at030-custom-activities # Run the ACP server using uvicorn CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"] diff --git a/examples/tutorials/10_agentic/10_temporal/030_custom_activities/manifest.yaml b/examples/tutorials/10_agentic/10_temporal/030_custom_activities/manifest.yaml index 208b9725..426bfb07 100644 --- a/examples/tutorials/10_agentic/10_temporal/030_custom_activities/manifest.yaml +++ b/examples/tutorials/10_agentic/10_temporal/030_custom_activities/manifest.yaml @@ -15,24 +15,25 @@ build: context: # Root directory for the build context - root: ../ # Keep this as the default root + root: ../../../ # Up to tutorials level to include test_utils # Paths to include in the Docker build context # Must include: # - Your agent's directory (your custom agent code) # These paths are collected and sent to the Docker daemon for building include_paths: - - 030_custom_activities + - 10_agentic/10_temporal/030_custom_activities + - test_utils # Path to your agent's Dockerfile # This defines how your agent's image is built from the context # Relative to the root directory - dockerfile: 030_custom_activities/Dockerfile + dockerfile: 10_agentic/10_temporal/030_custom_activities/Dockerfile # Path to your agent's .dockerignore # Filters unnecessary files from the build context # Helps keep build context small and builds fast - dockerignore: 030_custom_activities/.dockerignore + dockerignore: 10_agentic/10_temporal/030_custom_activities/.dockerignore # Local Development Configuration diff --git a/examples/tutorials/10_agentic/10_temporal/050_agent_chat_guardrails/Dockerfile b/examples/tutorials/10_agentic/10_temporal/050_agent_chat_guardrails/Dockerfile index 5f3f35c4..0cc40248 100644 --- a/examples/tutorials/10_agentic/10_temporal/050_agent_chat_guardrails/Dockerfile +++ b/examples/tutorials/10_agentic/10_temporal/050_agent_chat_guardrails/Dockerfile @@ -29,16 +29,28 @@ RUN uv pip install --system --upgrade pip setuptools wheel ENV UV_HTTP_TIMEOUT=1000 # Copy pyproject.toml and README.md to install dependencies -COPY 050_agent_chat_guardrails/pyproject.toml /app/050_agent_chat_guardrails/pyproject.toml -COPY 050_agent_chat_guardrails/README.md /app/050_agent_chat_guardrails/README.md +COPY 10_agentic/10_temporal/050_agent_chat_guardrails/pyproject.toml /app/050_agent_chat_guardrails/pyproject.toml +COPY 10_agentic/10_temporal/050_agent_chat_guardrails/README.md /app/050_agent_chat_guardrails/README.md WORKDIR /app/050_agent_chat_guardrails # Copy the project code -COPY 050_agent_chat_guardrails/project /app/050_agent_chat_guardrails/project +COPY 10_agentic/10_temporal/050_agent_chat_guardrails/project /app/050_agent_chat_guardrails/project -# Install the required Python packages from pyproject.toml -RUN uv pip install --system . +# Copy the test files +COPY 10_agentic/10_temporal/050_agent_chat_guardrails/tests /app/050_agent_chat_guardrails/tests + +# Copy shared test utilities +COPY test_utils /app/test_utils + +# Install the required Python packages with dev dependencies (includes pytest) +RUN uv pip install --system .[dev] pytest-asyncio httpx + +# Set environment variables +ENV PYTHONPATH=/app + +# Set test environment variables +ENV AGENT_NAME=at050-agent-chat-guardrails # Run the ACP server using uvicorn CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"] diff --git a/examples/tutorials/10_agentic/10_temporal/050_agent_chat_guardrails/manifest.yaml b/examples/tutorials/10_agentic/10_temporal/050_agent_chat_guardrails/manifest.yaml index cd52a4e9..db1eb261 100644 --- a/examples/tutorials/10_agentic/10_temporal/050_agent_chat_guardrails/manifest.yaml +++ b/examples/tutorials/10_agentic/10_temporal/050_agent_chat_guardrails/manifest.yaml @@ -15,24 +15,25 @@ build: context: # Root directory for the build context - root: ../ # Keep this as the default root + root: ../../../ # Up to tutorials level to include test_utils # Paths to include in the Docker build context # Must include: # - Your agent's directory (your custom agent code) # These paths are collected and sent to the Docker daemon for building include_paths: - - 050_agent_chat_guardrails + - 10_agentic/10_temporal/050_agent_chat_guardrails + - test_utils # Path to your agent's Dockerfile # This defines how your agent's image is built from the context # Relative to the root directory - dockerfile: 050_agent_chat_guardrails/Dockerfile + dockerfile: 10_agentic/10_temporal/050_agent_chat_guardrails/Dockerfile # Path to your agent's .dockerignore # Filters unnecessary files from the build context # Helps keep build context small and builds fast - dockerignore: 050_agent_chat_guardrails/.dockerignore + dockerignore: 10_agentic/10_temporal/050_agent_chat_guardrails/.dockerignore # Local Development Configuration diff --git a/examples/tutorials/10_agentic/10_temporal/060_open_ai_agents_sdk_hello_world/Dockerfile b/examples/tutorials/10_agentic/10_temporal/060_open_ai_agents_sdk_hello_world/Dockerfile index f5a592eb..3d0c7523 100644 --- a/examples/tutorials/10_agentic/10_temporal/060_open_ai_agents_sdk_hello_world/Dockerfile +++ b/examples/tutorials/10_agentic/10_temporal/060_open_ai_agents_sdk_hello_world/Dockerfile @@ -31,21 +31,30 @@ RUN uv pip install --system --upgrade pip setuptools wheel ENV UV_HTTP_TIMEOUT=1000 # Copy pyproject.toml and README.md to install dependencies -COPY 060_open_ai_agents_sdk_hello_world/pyproject.toml /app/060_open_ai_agents_sdk_hello_world/pyproject.toml -COPY 060_open_ai_agents_sdk_hello_world/README.md /app/060_open_ai_agents_sdk_hello_world/README.md +COPY 10_agentic/10_temporal/060_open_ai_agents_sdk_hello_world/pyproject.toml /app/060_open_ai_agents_sdk_hello_world/pyproject.toml +COPY 10_agentic/10_temporal/060_open_ai_agents_sdk_hello_world/README.md /app/060_open_ai_agents_sdk_hello_world/README.md WORKDIR /app/060_open_ai_agents_sdk_hello_world # Copy the project code -COPY 060_open_ai_agents_sdk_hello_world/project /app/060_open_ai_agents_sdk_hello_world/project +COPY 10_agentic/10_temporal/060_open_ai_agents_sdk_hello_world/project /app/060_open_ai_agents_sdk_hello_world/project -# Install the required Python packages from pyproject.toml -RUN uv pip install --system . +# Copy the test files +COPY 10_agentic/10_temporal/060_open_ai_agents_sdk_hello_world/tests /app/060_open_ai_agents_sdk_hello_world/tests -WORKDIR /app/060_open_ai_agents_sdk_hello_world +# Copy shared test utilities +COPY test_utils /app/test_utils + +# Install the required Python packages with dev dependencies (includes pytest) +RUN uv pip install --system .[dev] pytest-asyncio httpx +WORKDIR /app/060_open_ai_agents_sdk_hello_world ENV PYTHONPATH=/app + +# Set test environment variables +ENV AGENT_NAME=example-tutorial + # Run the ACP server using uvicorn CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"] diff --git a/examples/tutorials/10_agentic/10_temporal/060_open_ai_agents_sdk_hello_world/manifest.yaml b/examples/tutorials/10_agentic/10_temporal/060_open_ai_agents_sdk_hello_world/manifest.yaml index 0299ac53..210034a1 100644 --- a/examples/tutorials/10_agentic/10_temporal/060_open_ai_agents_sdk_hello_world/manifest.yaml +++ b/examples/tutorials/10_agentic/10_temporal/060_open_ai_agents_sdk_hello_world/manifest.yaml @@ -15,24 +15,25 @@ build: context: # Root directory for the build context - root: ../ # Keep this as the default root + root: ../../../ # Up to tutorials level to include test_utils # Paths to include in the Docker build context # Must include: # - Your agent's directory (your custom agent code) # These paths are collected and sent to the Docker daemon for building include_paths: - - 060_open_ai_agents_sdk_hello_world + - 10_agentic/10_temporal/060_open_ai_agents_sdk_hello_world + - test_utils # Path to your agent's Dockerfile # This defines how your agent's image is built from the context # Relative to the root directory - dockerfile: 060_open_ai_agents_sdk_hello_world/Dockerfile + dockerfile: 10_agentic/10_temporal/060_open_ai_agents_sdk_hello_world/Dockerfile # Path to your agent's .dockerignore # Filters unnecessary files from the build context # Helps keep build context small and builds fast - dockerignore: 060_open_ai_agents_sdk_hello_world/.dockerignore + dockerignore: 10_agentic/10_temporal/060_open_ai_agents_sdk_hello_world/.dockerignore # Local Development Configuration diff --git a/examples/tutorials/10_agentic/10_temporal/070_open_ai_agents_sdk_tools/Dockerfile b/examples/tutorials/10_agentic/10_temporal/070_open_ai_agents_sdk_tools/Dockerfile index 68650d6f..03f0f70f 100644 --- a/examples/tutorials/10_agentic/10_temporal/070_open_ai_agents_sdk_tools/Dockerfile +++ b/examples/tutorials/10_agentic/10_temporal/070_open_ai_agents_sdk_tools/Dockerfile @@ -31,19 +31,31 @@ RUN uv pip install --system --upgrade pip setuptools wheel ENV UV_HTTP_TIMEOUT=1000 # Copy pyproject.toml and README.md to install dependencies -COPY 070_open_ai_agents_sdk_tools/pyproject.toml /app/070_open_ai_agents_sdk_tools/pyproject.toml -COPY 070_open_ai_agents_sdk_tools/README.md /app/070_open_ai_agents_sdk_tools/README.md +COPY 10_agentic/10_temporal/070_open_ai_agents_sdk_tools/pyproject.toml /app/070_open_ai_agents_sdk_tools/pyproject.toml +COPY 10_agentic/10_temporal/070_open_ai_agents_sdk_tools/README.md /app/070_open_ai_agents_sdk_tools/README.md WORKDIR /app/070_open_ai_agents_sdk_tools # Copy the project code -COPY 070_open_ai_agents_sdk_tools/project /app/070_open_ai_agents_sdk_tools/project +COPY 10_agentic/10_temporal/070_open_ai_agents_sdk_tools/project /app/070_open_ai_agents_sdk_tools/project -# Install the required Python packages from pyproject.toml -RUN uv pip install --system . +# Copy the test files +COPY 10_agentic/10_temporal/070_open_ai_agents_sdk_tools/tests /app/070_open_ai_agents_sdk_tools/tests + +# Copy shared test utilities +COPY test_utils /app/test_utils + +# Install the required Python packages with dev dependencies (includes pytest) +RUN uv pip install --system .[dev] pytest-asyncio httpx WORKDIR /app/070_open_ai_agents_sdk_tools +# Set environment variables +ENV PYTHONPATH=/app + +# Set test environment variables +ENV AGENT_NAME=example-tutorial + # Run the ACP server using uvicorn CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"] diff --git a/examples/tutorials/10_agentic/10_temporal/070_open_ai_agents_sdk_tools/manifest.yaml b/examples/tutorials/10_agentic/10_temporal/070_open_ai_agents_sdk_tools/manifest.yaml index 8df49390..369c02e8 100644 --- a/examples/tutorials/10_agentic/10_temporal/070_open_ai_agents_sdk_tools/manifest.yaml +++ b/examples/tutorials/10_agentic/10_temporal/070_open_ai_agents_sdk_tools/manifest.yaml @@ -15,24 +15,25 @@ build: context: # Root directory for the build context - root: ../ # Keep this as the default root + root: ../../../ # Up to tutorials level to include test_utils # Paths to include in the Docker build context # Must include: # - Your agent's directory (your custom agent code) # These paths are collected and sent to the Docker daemon for building include_paths: - - 070_open_ai_agents_sdk_tools + - 10_agentic/10_temporal/070_open_ai_agents_sdk_tools + - test_utils # Path to your agent's Dockerfile # This defines how your agent's image is built from the context # Relative to the root directory - dockerfile: 070_open_ai_agents_sdk_tools/Dockerfile + dockerfile: 10_agentic/10_temporal/070_open_ai_agents_sdk_tools/Dockerfile # Path to your agent's .dockerignore # Filters unnecessary files from the build context # Helps keep build context small and builds fast - dockerignore: 070_open_ai_agents_sdk_tools/.dockerignore + dockerignore: 10_agentic/10_temporal/070_open_ai_agents_sdk_tools/.dockerignore # Local Development Configuration # ----------------------------- diff --git a/examples/tutorials/10_agentic/10_temporal/080_open_ai_agents_sdk_human_in_the_loop/Dockerfile b/examples/tutorials/10_agentic/10_temporal/080_open_ai_agents_sdk_human_in_the_loop/Dockerfile index 4c21bd87..b849b74a 100644 --- a/examples/tutorials/10_agentic/10_temporal/080_open_ai_agents_sdk_human_in_the_loop/Dockerfile +++ b/examples/tutorials/10_agentic/10_temporal/080_open_ai_agents_sdk_human_in_the_loop/Dockerfile @@ -31,20 +31,30 @@ RUN uv pip install --system --upgrade pip setuptools wheel ENV UV_HTTP_TIMEOUT=1000 # Copy pyproject.toml and README.md to install dependencies -COPY 080_open_ai_agents_sdk_human_in_the_loop/pyproject.toml /app/080_open_ai_agents_sdk_human_in_the_loop/pyproject.toml -COPY 080_open_ai_agents_sdk_human_in_the_loop/README.md /app/080_open_ai_agents_sdk_human_in_the_loop/README.md +COPY 10_agentic/10_temporal/080_open_ai_agents_sdk_human_in_the_loop/pyproject.toml /app/080_open_ai_agents_sdk_human_in_the_loop/pyproject.toml +COPY 10_agentic/10_temporal/080_open_ai_agents_sdk_human_in_the_loop/README.md /app/080_open_ai_agents_sdk_human_in_the_loop/README.md WORKDIR /app/080_open_ai_agents_sdk_human_in_the_loop # Copy the project code -COPY 080_open_ai_agents_sdk_human_in_the_loop/project /app/080_open_ai_agents_sdk_human_in_the_loop/project +COPY 10_agentic/10_temporal/080_open_ai_agents_sdk_human_in_the_loop/project /app/080_open_ai_agents_sdk_human_in_the_loop/project -# Install the required Python packages from pyproject.toml -RUN uv pip install --system . +# Copy the test files +COPY 10_agentic/10_temporal/080_open_ai_agents_sdk_human_in_the_loop/tests /app/080_open_ai_agents_sdk_human_in_the_loop/tests + +# Copy shared test utilities +COPY test_utils /app/test_utils + +# Install the required Python packages with dev dependencies (includes pytest) +RUN uv pip install --system .[dev] pytest-asyncio httpx WORKDIR /app/080_open_ai_agents_sdk_human_in_the_loop ENV PYTHONPATH=/app + +# Set test environment variables +ENV AGENT_NAME=example-tutorial + # Run the ACP server using uvicorn CMD ["uvicorn", "project.acp:acp", "--host", "0.0.0.0", "--port", "8000"] diff --git a/examples/tutorials/10_agentic/10_temporal/080_open_ai_agents_sdk_human_in_the_loop/manifest.yaml b/examples/tutorials/10_agentic/10_temporal/080_open_ai_agents_sdk_human_in_the_loop/manifest.yaml index 4ff4e6cc..0f193699 100644 --- a/examples/tutorials/10_agentic/10_temporal/080_open_ai_agents_sdk_human_in_the_loop/manifest.yaml +++ b/examples/tutorials/10_agentic/10_temporal/080_open_ai_agents_sdk_human_in_the_loop/manifest.yaml @@ -15,24 +15,25 @@ build: context: # Root directory for the build context - root: ../ # Keep this as the default root + root: ../../../ # Up to tutorials level to include test_utils # Paths to include in the Docker build context # Must include: # - Your agent's directory (your custom agent code) # These paths are collected and sent to the Docker daemon for building include_paths: - - 080_open_ai_agents_sdk_human_in_the_loop + - 10_agentic/10_temporal/080_open_ai_agents_sdk_human_in_the_loop + - test_utils # Path to your agent's Dockerfile # This defines how your agent's image is built from the context # Relative to the root directory - dockerfile: 080_open_ai_agents_sdk_human_in_the_loop/Dockerfile + dockerfile: 10_agentic/10_temporal/080_open_ai_agents_sdk_human_in_the_loop/Dockerfile # Path to your agent's .dockerignore # Filters unnecessary files from the build context # Helps keep build context small and builds fast - dockerignore: 080_open_ai_agents_sdk_human_in_the_loop/.dockerignore + dockerignore: 10_agentic/10_temporal/080_open_ai_agents_sdk_human_in_the_loop/.dockerignore # Local Development Configuration diff --git a/examples/tutorials/test_utils/agentic.py b/examples/tutorials/test_utils/agentic.py index fcee04ea..41604729 100644 --- a/examples/tutorials/test_utils/agentic.py +++ b/examples/tutorials/test_utils/agentic.py @@ -180,6 +180,7 @@ async def stream_agent_response( except Exception as e: print(f"[DEBUG] Stream error: {e}") + async def stream_task_messages( client: AsyncAgentex, task_id: str, @@ -207,22 +208,3 @@ async def stream_task_messages( task_message = finished_message if task_message: yield task_message - - - -def validate_text_in_response(expected_text: str, message: TaskMessage) -> bool: - """ - Validate that expected text appears in any of the messages. - - Args: - expected_text: The text to search for (case-insensitive) - messages: List of message objects to search - - Returns: - True if text is found, False otherwise - """ - for message in messages: - if message.content and message.content.type == "text": - if expected_text.lower() in message.content.content.lower(): - return True - return False