fix(claude-agent-sdk): preserve multimodal input #3277
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build Python Preview | |
| # Version-rewriting flow: "Rewrite pyproject.toml versions" below stamps a | |
| # 0.0.0.devN version into each package listed in PACKAGES in | |
| # scripts/rewrite-python-preview-versions.py before building, which puts those | |
| # pyprojects deliberately out of step with their committed uv.lock. That list is a | |
| # subset of the Python packages in scripts/release/release.config.json — read the | |
| # script for the current set rather than trusting a count here. | |
| # | |
| # Audited for lockfile safety, and the finding is that nothing here consumes or | |
| # writes a lockfile: `uv build` neither reads nor rewrites uv.lock, and the rewrite | |
| # script runs with --no-project. To re-audit after a uv bump: stale a lockfile | |
| # (bump its package's version in pyproject.toml only), run `uv build` in that | |
| # directory, and confirm uv.lock is byte-identical afterwards. | |
| # | |
| # Because nothing here reads a lockfile, this workflow does NOT run | |
| # .github/actions/assert-lockfiles-unchanged — there is no sync step for it to | |
| # guard. Add it alongside the first step that does sync. | |
| # | |
| # The toolchain pins below come from .github/python-toolchain.env like every other | |
| # Python workflow's. | |
| on: | |
| pull_request: | |
| types: [opened, synchronize, reopened] | |
| concurrency: | |
| group: ${{ github.repository }}-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| # Pinned Python build toolchain — see .github/python-toolchain.env, which is the | |
| # single place these two values are recorded, along with the green run they came | |
| # from. Change one, change them all: the python-toolchain-pins job in | |
| # lint-release-workflows.yml fails if any workflow's literal disagrees with that file. | |
| env: | |
| UV_VERSION: "0.12.1" | |
| PYTHON_VERSION: "3.12" | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| persist-credentials: false | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1 | |
| with: | |
| version: ${{ env.UV_VERSION }} | |
| python-version: ${{ env.PYTHON_VERSION }} | |
| - name: Compute preview version | |
| id: version | |
| run: | | |
| TIMESTAMP=$(git log -1 --format=%ct HEAD) | |
| VERSION="0.0.0.dev${TIMESTAMP}" | |
| echo "version=${VERSION}" >> "$GITHUB_OUTPUT" | |
| echo "Preview version: ${VERSION}" | |
| - name: Rewrite pyproject.toml versions | |
| # --no-project: the script is stdlib-only and there is no project at the | |
| # repo root, so this states outright that no lockfile is consulted. | |
| run: uv run --no-project python scripts/rewrite-python-preview-versions.py "${STEPS_VERSION_OUTPUTS_VERSION}" | |
| env: | |
| STEPS_VERSION_OUTPUTS_VERSION: ${{ steps.version.outputs.version }} | |
| - name: Build ag-ui-protocol | |
| working-directory: sdks/python | |
| run: uv build | |
| - name: Build ag-ui-langgraph | |
| working-directory: integrations/langgraph/python | |
| run: uv build | |
| - name: Build ag-ui-crewai | |
| working-directory: integrations/crew-ai/python | |
| run: uv build | |
| - name: Build ag-ui-agent-spec | |
| working-directory: integrations/agent-spec/python | |
| run: uv build | |
| - name: Build ag_ui_adk | |
| working-directory: integrations/adk-middleware/python | |
| run: uv build | |
| - name: Build ag_ui_strands | |
| working-directory: integrations/aws-strands/python | |
| run: uv build | |
| - name: Collect dist artifacts | |
| run: | | |
| mkdir -p dist-preview | |
| cp sdks/python/dist/* dist-preview/ | |
| cp integrations/langgraph/python/dist/* dist-preview/ | |
| cp integrations/crew-ai/python/dist/* dist-preview/ | |
| cp integrations/agent-spec/python/dist/* dist-preview/ | |
| cp integrations/adk-middleware/python/dist/* dist-preview/ | |
| cp integrations/aws-strands/python/dist/* dist-preview/ | |
| echo "Artifacts to publish:" | |
| ls -1 dist-preview/ | |
| # Save metadata so the publish workflow can find the PR and version. | |
| - name: Save PR metadata | |
| run: | | |
| mkdir -p pr-metadata | |
| echo "${{ github.event.pull_request.number }}" > pr-metadata/pr-number | |
| echo "${STEPS_VERSION_OUTPUTS_VERSION}" > pr-metadata/version | |
| echo "${{ github.sha }}" > pr-metadata/sha | |
| env: | |
| STEPS_VERSION_OUTPUTS_VERSION: ${{ steps.version.outputs.version }} | |
| - name: Upload dist artifacts | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: python-preview-dist | |
| path: dist-preview/ | |
| - name: Upload PR metadata | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: python-preview-metadata | |
| path: pr-metadata/ |