Python SDK for Gestalt executable providers
Project description
Gestalt Python SDK
Use the Python SDK to build executable Gestalt providers with normal Python classes, functions, and type annotations.
The package is published to PyPI as gestalt-sdk and imported in provider code
as gestalt.
uv add gestalt-sdk
import gestalt
class SearchInput(gestalt.Model):
query: str = gestalt.field(description="Search query")
plugin = gestalt.Plugin("search")
@plugin.operation(method="GET", title="Search")
def search(input: SearchInput, request: gestalt.Request):
return {"results": [input.query]}
Provider projects
Python source providers are discovered through [tool.gestalt].provider in
pyproject.toml.
[project]
name = "gestalt-search"
version = "0.0.1"
dependencies = ["gestalt-sdk"]
[tool.uv]
package = false
[tool.gestalt]
provider = "provider"
Use the provider manifest for static provider identity, connections, hosted HTTP routes, passthrough surfaces, and release metadata. Use Python code for executable operations, provider lifecycle hooks, host-service clients, and provider-specific runtimes.
Public surface
The top-level gestalt package exposes the supported authoring API:
Model,field,Plugin,operation, andRequestfor integration providers.AuthenticationProvider,CacheProvider,S3Provider,SecretsProvider,WorkflowProvider,AgentProvider, andPluginRuntimeProviderfor host-service provider runtimes.Cache,IndexedDB,S3,WorkflowHost,WorkflowManager,AgentHost,AgentManager, andPluginInvokerfor calling sibling host services.gestalt.telemetryfor provider-authored GenAI spans and metrics.
The SDK also exposes authored protocol helpers for agent, workflow, authorization, and authentication request payloads. The generated protobuf stubs are private runtime internals and are not part of the provider authoring API.
Regenerating protobuf stubs
This is an SDK maintainer workflow. Provider authors consume the checked-in
stubs through the gestalt package and do not need to regenerate them in
provider repositories.
Regenerate them from the repo root with:
uv run python sdk/python/scripts/generate_stubs.py
The script uses pinned Buf remote Python plugins so the generated stubs stay
reproducible while plugin_pb2.py tracks the protobuf 6.33.1 runtime floor
used by this SDK package and remains compatible with protobuf 7 runtimes.
buf must be available on PATH.
API reference
The authored Python API reference is generated with Sphinx from the SDK's
docstrings. Build it locally from sdk/python with:
uv sync --group dev
uv run sphinx-build -W -b html -d docs/_build/doctrees docs docs/_build/html
The generated docs intentionally focus on the handwritten SDK surface. The
checked-in protobuf stubs live under the private gestalt/_gen package and are
not expanded as authored reference pages.
Publishing
The SDK is published publicly as gestalt-sdk while keeping the import path
gestalt.
Release tags stay aligned with the repo's SDK tag convention:
sdk/python/v0.0.1sdk/python/v0.0.1-alpha.1sdk/python/v0.0.1-beta.1sdk/python/v0.0.1-rc.1
The release workflow normalizes those tag versions to PEP 440 before building
and publishing with uv, so sdk/python/v0.0.1-alpha.1 becomes package
version 0.0.1a1.
Releases are published to PyPI through GitHub Actions Trusted Publishing. The
release workflow runs in the pypi environment and uses GitHub OIDC rather
than a checked-in upload token.
Local SDK checks
From sdk/python, install the SDK plus its dev tooling and run the checks used
in CI:
uv sync --group dev
uv run ruff check .
uv run ty check --exclude 'gestalt/_gen/**' gestalt scripts tests
uv run vulture --config pyproject.toml
uv run python -m unittest discover -s tests
uv run sphinx-build -W -b html -d docs/_build/doctrees docs docs/_build/html
The generated protobuf stubs under gestalt/_gen are excluded from the static
analysis tools because they are vendored output rather than hand-maintained SDK
code.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gestalt_sdk-0.0.1a19.tar.gz.
File metadata
- Download URL: gestalt_sdk-0.0.1a19.tar.gz
- Upload date:
- Size: 139.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
378c45e27b06664de77494915e299dc2ff639335a5a4ab26287286ed1fed1948
|
|
| MD5 |
e2e93028b3650820cde16a880325a3f5
|
|
| BLAKE2b-256 |
c7826598fb7ca11d6e1cac9ba91c8ed22738156339a54c358675c14bea0cab73
|
Provenance
The following attestation bundles were made for gestalt_sdk-0.0.1a19.tar.gz:
Publisher:
release-sdk.yml on valon-technologies/gestalt
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gestalt_sdk-0.0.1a19.tar.gz -
Subject digest:
378c45e27b06664de77494915e299dc2ff639335a5a4ab26287286ed1fed1948 - Sigstore transparency entry: 1441400620
- Sigstore integration time:
-
Permalink:
valon-technologies/gestalt@6201e92f66e6d0280900a476034a047e1e143550 -
Branch / Tag:
refs/tags/sdk/python/v0.0.1-alpha.19 - Owner: https://github.com/valon-technologies
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-sdk.yml@6201e92f66e6d0280900a476034a047e1e143550 -
Trigger Event:
push
-
Statement type:
File details
Details for the file gestalt_sdk-0.0.1a19-py3-none-any.whl.
File metadata
- Download URL: gestalt_sdk-0.0.1a19-py3-none-any.whl
- Upload date:
- Size: 129.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47301be714407516e2de40b7c6c644c4f8d9500272df4645342eeb7b34b9946d
|
|
| MD5 |
50d58372a30af8d9fe3dfc26a6052e30
|
|
| BLAKE2b-256 |
5118e200b4d232b7e3fe08fae90bc4d5693d4f8b8cd884003b1f63810e7c0399
|
Provenance
The following attestation bundles were made for gestalt_sdk-0.0.1a19-py3-none-any.whl:
Publisher:
release-sdk.yml on valon-technologies/gestalt
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gestalt_sdk-0.0.1a19-py3-none-any.whl -
Subject digest:
47301be714407516e2de40b7c6c644c4f8d9500272df4645342eeb7b34b9946d - Sigstore transparency entry: 1441400682
- Sigstore integration time:
-
Permalink:
valon-technologies/gestalt@6201e92f66e6d0280900a476034a047e1e143550 -
Branch / Tag:
refs/tags/sdk/python/v0.0.1-alpha.19 - Owner: https://github.com/valon-technologies
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-sdk.yml@6201e92f66e6d0280900a476034a047e1e143550 -
Trigger Event:
push
-
Statement type: