diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e4988ca..a69c2e7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,15 +2,15 @@ name: CI on: push: branches-ignore: - - "generated" - - "codegen/**" - - "integrated/**" - - "stl-preview-head/**" - - "stl-preview-base/**" + - 'generated' + - 'codegen/**' + - 'integrated/**' + - 'stl-preview-head/**' + - 'stl-preview-base/**' pull_request: branches-ignore: - - "stl-preview-head/**" - - "stl-preview-base/**" + - 'stl-preview-head/**' + - 'stl-preview-base/**' jobs: lint: @@ -19,15 +19,15 @@ jobs: runs-on: ${{ github.repository == 'stainless-sdks/gitpod-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} if: github.event_name == 'push' || github.event.pull_request.head.repo.fork steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 - name: Install Rye run: | curl -sSf https://rye.astral.sh/get | bash echo "$HOME/.rye/shims" >> $GITHUB_PATH env: - RYE_VERSION: "0.44.0" - RYE_INSTALL_OPTION: "--yes" + RYE_VERSION: '0.44.0' + RYE_INSTALL_OPTION: '--yes' - name: Install dependencies run: rye sync --all-features @@ -44,15 +44,15 @@ jobs: id-token: write runs-on: ${{ github.repository == 'stainless-sdks/gitpod-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 - name: Install Rye run: | curl -sSf https://rye.astral.sh/get | bash echo "$HOME/.rye/shims" >> $GITHUB_PATH env: - RYE_VERSION: "0.44.0" - RYE_INSTALL_OPTION: "--yes" + RYE_VERSION: '0.44.0' + RYE_INSTALL_OPTION: '--yes' - name: Install dependencies run: rye sync --all-features @@ -81,15 +81,15 @@ jobs: runs-on: ${{ github.repository == 'stainless-sdks/gitpod-python' && 'depot-ubuntu-24.04' || 'ubuntu-latest' }} if: github.event_name == 'push' || github.event.pull_request.head.repo.fork steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 - name: Install Rye run: | curl -sSf https://rye.astral.sh/get | bash echo "$HOME/.rye/shims" >> $GITHUB_PATH env: - RYE_VERSION: "0.44.0" - RYE_INSTALL_OPTION: "--yes" + RYE_VERSION: '0.44.0' + RYE_INSTALL_OPTION: '--yes' - name: Bootstrap run: ./scripts/bootstrap diff --git a/.github/workflows/publish-pypi.yml b/.github/workflows/publish-pypi.yml index 0c20e7d..3343ab6 100644 --- a/.github/workflows/publish-pypi.yml +++ b/.github/workflows/publish-pypi.yml @@ -17,19 +17,19 @@ jobs: id-token: write steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6 + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 - name: Install Rye uses: eifinger/setup-rye@c694239a43768373e87d0103d7f547027a23f3c8 # v4 with: version: '0.44.0' - + - name: Sync dependencies run: rye sync - name: Build package run: rye build --clean - + - name: Publish to PyPI uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # release/v1 with: diff --git a/.stats.yml b/.stats.yml index 886c83c..04dee8d 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ -configured_endpoints: 170 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-2423c089f280cdf34a987d40531692097a69f4aa971c6adf9aeec4fd7984cec2.yml -openapi_spec_hash: 24037c3ab9ceca689150d07ecec7aa80 -config_hash: d726afb2a92132197e4eae04303e8041 +configured_endpoints: 172 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/gitpod%2Fgitpod-4a034f8dd3f618814ce17b264d78b40176f613d34f806f8add5425792e36c34d.yml +openapi_spec_hash: 5f1f4678b4956c4afa3ffc8539443ef7 +config_hash: dad4ee53c894c682895d6d045c4c2105 diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d5779c..4bcecff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,34 +1,14 @@ # Changelog -## 0.7.0 (2026-01-21) +## 0.7.0 (2026-01-23) Full Changelog: [v0.6.0...v0.7.0](https://github.com/gitpod-io/gitpod-sdk-python/compare/v0.6.0...v0.7.0) ### Features -* [api] Introduce RPCs to share resources with individual users ([df1cf39](https://github.com/gitpod-io/gitpod-sdk-python/commit/df1cf39a9c1b387c9e9313bfec68a97759762e0b)) -* [api] sorting for `ListMembers` ([838e74c](https://github.com/gitpod-io/gitpod-sdk-python/commit/838e74c4da4b57590a6dd0af19bdd20faf7d2805)) -* [backend] Adding direct_share field to groups ([78c0bdd](https://github.com/gitpod-io/gitpod-sdk-python/commit/78c0bddc838e217007729d723283f9e9cd04d9a2)) -* [backend] Introduce role and member status filtering for `ListMembers` ([34fb372](https://github.com/gitpod-io/gitpod-sdk-python/commit/34fb372aef655ae57fc99d5b37e152c75d831af5)) -* **agent:** add spec mode for planning before interactive implementation ([de6bee5](https://github.com/gitpod-io/gitpod-sdk-python/commit/de6bee5d7d337456f1a19de0659cd6957c7c1a9b)) -* API for SCIM configuration management ([70becd4](https://github.com/gitpod-io/gitpod-sdk-python/commit/70becd4cd142fac4fc839018d52fb4cb93e17834)) -* **api:** add CheckRepositoryAccess API for repository access validation ([b34ed1b](https://github.com/gitpod-io/gitpod-sdk-python/commit/b34ed1b8ecd39343ed02c5f376e9495775912140)) -* **api:** add draft and state fields to PullRequest proto ([e0023da](https://github.com/gitpod-io/gitpod-sdk-python/commit/e0023da5a30344c2fc87ebce55e26101c4ad40b5)) -* **api:** add inputs array to UserInputBlock proto ([8262825](https://github.com/gitpod-io/gitpod-sdk-python/commit/8262825c21be1de663b9a3aad29e9f9fe1cf219d)) -* **api:** add ListSCMOrganizations endpoint ([9c8f7ea](https://github.com/gitpod-io/gitpod-sdk-python/commit/9c8f7eadd38bc0326ecf1be48706003fa258257c)) -* **api:** add search, creator, and status filters to ListWorkflows ([ddd18c0](https://github.com/gitpod-io/gitpod-sdk-python/commit/ddd18c09beb0f24e076818783d2dae09ca9b9f8b)) -* **api:** improve SearchRepositories pagination with next_page and total_count ([2847a10](https://github.com/gitpod-io/gitpod-sdk-python/commit/2847a10e6cbb09be83b012e8a6fcabd32f49e019)) -* **automations:** add before_snapshot trigger type ([9cd272f](https://github.com/gitpod-io/gitpod-sdk-python/commit/9cd272f98f2215b834a841ca34c52ce04fd2898e)) -* **client:** add support for binary request streaming ([be5a823](https://github.com/gitpod-io/gitpod-sdk-python/commit/be5a8235224ff1ecf25464e716191fbf3c7c7fb1)) -* **dashboard:** show tier badge in org selector ([89fd8fe](https://github.com/gitpod-io/gitpod-sdk-python/commit/89fd8fef7f9de200e4aecd563c965d4209427052)) -* Define SCIMConfiguration database schema ([03bd185](https://github.com/gitpod-io/gitpod-sdk-python/commit/03bd1858ec2aefbd4c20a71c206135c441afa99c)) -* move agent mode from Spec to Status, add AgentModeChange signals ([a55115b](https://github.com/gitpod-io/gitpod-sdk-python/commit/a55115ba054078dcb689222cc150b2b1f56077bf)) -* **secrets:** add ServiceAccountSecret entity with full support ([30e17c5](https://github.com/gitpod-io/gitpod-sdk-python/commit/30e17c55b991286527f64c8857b04dd9b5a2ba7b)) - - -### Chores - -* **internal:** update `actions/checkout` version ([53dcf30](https://github.com/gitpod-io/gitpod-sdk-python/commit/53dcf30cb41a6cbf30ce510b0b2d46cdd5895008)) +* **api:** add announcement banner fields to organization proto ([74b9fa3](https://github.com/gitpod-io/gitpod-sdk-python/commit/74b9fa326458881e9fe5de9c9f55494a6231412d)) +* **api:** add filters to ListPrebuilds for inventory page ([b5d43cc](https://github.com/gitpod-io/gitpod-sdk-python/commit/b5d43cc6183fcc67cea81ae9d78c4cf6e7f2db4d)) +* **api:** implement GetAnnouncementBanner and UpdateAnnouncementBanner handlers ([2cf3454](https://github.com/gitpod-io/gitpod-sdk-python/commit/2cf3454764ec630da000fd38b1b4d1ef74ed5308)) ## 0.6.0 (2026-01-09) diff --git a/src/gitpod/types/agent_mode.py b/src/gitpod/types/agent_mode.py index a58c379..d7bd23b 100644 --- a/src/gitpod/types/agent_mode.py +++ b/src/gitpod/types/agent_mode.py @@ -5,5 +5,5 @@ __all__ = ["AgentMode"] AgentMode: TypeAlias = Literal[ - "AGENT_MODE_UNSPECIFIED", "AGENT_MODE_EXECUTION", "AGENT_MODE_PLANNING", "AGENT_MODE_RALPH", "AGENT_MODE_SPEC" + "AGENT_MODE_UNSPECIFIED", "AGENT_MODE_EXECUTION", "AGENT_MODE_PLANNING", "AGENT_MODE_RALPH" ] diff --git a/src/gitpod/types/user_input_block_param.py b/src/gitpod/types/user_input_block_param.py index 905b928..5a6b87e 100644 --- a/src/gitpod/types/user_input_block_param.py +++ b/src/gitpod/types/user_input_block_param.py @@ -2,61 +2,30 @@ from __future__ import annotations -from typing import Union, Iterable +from typing import Union from datetime import datetime -from typing_extensions import Literal, Annotated, TypedDict +from typing_extensions import Annotated, TypedDict from .._types import Base64FileInput from .._utils import PropertyInfo from .._models import set_pydantic_config -__all__ = ["UserInputBlockParam", "Image", "Input", "InputImage", "InputText", "Text"] +__all__ = ["UserInputBlockParam", "Image", "Text"] class Image(TypedDict, total=False): """ ImageInput allows sending images to the agent. - Client must provide the MIME type; backend validates against magic bytes. + Media type is inferred from magic bytes by the backend. """ data: Annotated[Union[str, Base64FileInput], PropertyInfo(format="base64")] - """Raw image data (max 4MB). Supported formats: PNG, JPEG.""" - - mime_type: Annotated[Literal["image/png", "image/jpeg"], PropertyInfo(alias="mimeType")] + """Raw image data (max 4MB). Supported formats: PNG, JPEG, WebP.""" set_pydantic_config(Image, {"arbitrary_types_allowed": True}) -class InputImage(TypedDict, total=False): - """ - ImageInput allows sending images to the agent. - Client must provide the MIME type; backend validates against magic bytes. - """ - - data: Annotated[Union[str, Base64FileInput], PropertyInfo(format="base64")] - """Raw image data (max 4MB). Supported formats: PNG, JPEG.""" - - mime_type: Annotated[Literal["image/png", "image/jpeg"], PropertyInfo(alias="mimeType")] - - -set_pydantic_config(InputImage, {"arbitrary_types_allowed": True}) - - -class InputText(TypedDict, total=False): - content: str - - -class Input(TypedDict, total=False): - image: InputImage - """ - ImageInput allows sending images to the agent. Client must provide the MIME - type; backend validates against magic bytes. - """ - - text: InputText - - class Text(TypedDict, total=False): content: str @@ -69,10 +38,8 @@ class UserInputBlockParam(TypedDict, total=False): image: Image """ - ImageInput allows sending images to the agent. Client must provide the MIME - type; backend validates against magic bytes. + ImageInput allows sending images to the agent. Media type is inferred from magic + bytes by the backend. """ - inputs: Iterable[Input] - text: Text diff --git a/tests/api_resources/test_agents.py b/tests/api_resources/test_agents.py index e006c3c..f4f2aad 100644 --- a/tests/api_resources/test_agents.py +++ b/tests/api_resources/test_agents.py @@ -361,19 +361,7 @@ def test_method_send_to_execution_with_all_params(self, client: Gitpod) -> None: user_input={ "id": "id", "created_at": parse_datetime("2019-12-27T18:11:19.117Z"), - "image": { - "data": "U3RhaW5sZXNzIHJvY2tz", - "mime_type": "image/png", - }, - "inputs": [ - { - "image": { - "data": "U3RhaW5sZXNzIHJvY2tz", - "mime_type": "image/png", - }, - "text": {"content": "x"}, - } - ], + "image": {"data": "U3RhaW5sZXNzIHJvY2tz"}, "text": {"content": "Generate a report based on the latest logs."}, }, ) @@ -886,19 +874,7 @@ async def test_method_send_to_execution_with_all_params(self, async_client: Asyn user_input={ "id": "id", "created_at": parse_datetime("2019-12-27T18:11:19.117Z"), - "image": { - "data": "U3RhaW5sZXNzIHJvY2tz", - "mime_type": "image/png", - }, - "inputs": [ - { - "image": { - "data": "U3RhaW5sZXNzIHJvY2tz", - "mime_type": "image/png", - }, - "text": {"content": "x"}, - } - ], + "image": {"data": "U3RhaW5sZXNzIHJvY2tz"}, "text": {"content": "Generate a report based on the latest logs."}, }, )