render-lab-tasks-exa
Unreleased Python port: 12 registered tasks from render-lab/render-tasks. Python 3.12+, Render SDK 1.0.1. Requires core 0.1.1 or later.
From the repository root:
uv sync --all-packages --locked
Import render_lab_tasks_exa.tasks to register tasks. The package root is inert.
Compose the exported app with Workflows.from_workflows; call tasks through
ctx.run. Every operation also exports *_impl(ctx, input, *, deps=None) for
injection. Client(http, env) accepts a caller-owned HTTPX client, and
Deps(exa=client) injects it. Default dependencies open and close the HTTP
client per invocation; credentials are read lazily at use. No HTTP retries or
background vendor polling occur; retry.py owns the durable retry policies.
Task surface
| Registered task | Python export |
|---|---|
exa.answer |
answer |
exa.awaitAgent |
await_agent |
exa.awaitWebset |
await_webset |
exa.cancelAgent |
cancel_agent |
exa.cancelWebset |
cancel_webset |
exa.createWebset |
create_webset |
exa.createWebsetMonitor |
create_webset_monitor |
exa.deleteWebset |
delete_webset |
exa.getContents |
get_contents |
exa.listWebsetItems |
list_webset_items |
exa.search |
search |
exa.startAgent |
start_agent |
Typed JSON inputs and results are in types.py. Task names and JSON field names
match the pinned source; Python function names use snake_case.
Environment
| Variable | Requirement |
|---|---|
EXA_API_KEY |
Required at first API call. |
Behavior and limits
Uses direct HTTP matching exa-js 2.16.0 requests rather than installing a Python vendor SDK. Search defaults to text with maxCharacters 10000 when contents is omitted; answer uses model exa and stream false. Search/contents/answers enforce content-character budgets; agent results and Webset pages enforce output-byte budgets. Websets use stable externalId values and recover duplicate-create 409s by reading that ID. Missing/already-terminal cancellations normalize 404/409. Unknown agent states become queued and unknown Webset states become pending, matching the source. Answer text itself is not covered by the citation-content budget; this inherited limitation needs a separate bound before production use.
Verification
All registered tasks have hermetic contract fixtures executed independently against
the pinned TS implementation. SDK-backed tasks also have explicit HTTP request
fixtures. See tests/test_batch3_contracts.py and tests/test_batch3_edges.py.
These are not live vendor results.
Vendor webhooks subpaths and other registration-free TS exports are outside this batch unless explicitly listed above. Full registered-task coverage does not imply all supporting exports are ported.
Pending scopes, test resources, replay, and hosted checks are in the live-testing backlog and verification tracker.
Webhook adapter
render_lab_tasks_exa.webhooks.exa_websets_adapter(on_event, ...) returns a
registration-free adapter for render_lab_triggers. The callback receives the
verified event and returns {"task": "namespace.task", "args": [event]} or None.
The signing credential EXA_WEBHOOK_SECRET is read inside verification unless
provided explicitly. Importing this module does not register tasks. Signature
checks use the raw body; live delivery remains in the testing backlog.
Installation
pip install render-lab-tasks-exa==0.1.0
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 render_lab_tasks_exa-0.1.0.tar.gz.
File metadata
- Download URL: render_lab_tasks_exa-0.1.0.tar.gz
- Upload date:
- Size: 10.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6fe62ef0342fc93ddbf87ede26440afdd4b58166521cd03c7f5c8ec2c8773024
|
|
| MD5 |
54454944473a2e5c9ba637f2c5cdc8bc
|
|
| BLAKE2b-256 |
6c55bf2e61ce310d436736fbc39290fc6ef9280d7b63dca41cfe442d79827819
|
Provenance
The following attestation bundles were made for render_lab_tasks_exa-0.1.0.tar.gz:
Publisher:
publish.yml on render-lab/render-tasks-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
render_lab_tasks_exa-0.1.0.tar.gz -
Subject digest:
6fe62ef0342fc93ddbf87ede26440afdd4b58166521cd03c7f5c8ec2c8773024 - Sigstore transparency entry: 2767880153
- Sigstore integration time:
-
Permalink:
render-lab/render-tasks-python@b601664587ba5882dd7c8efabfc8908151008df6 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/render-lab
-
Access:
internal
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b601664587ba5882dd7c8efabfc8908151008df6 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file render_lab_tasks_exa-0.1.0-py3-none-any.whl.
File metadata
- Download URL: render_lab_tasks_exa-0.1.0-py3-none-any.whl
- Upload date:
- Size: 17.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d69787301cbea7b86c8c2413a67dcdd8253639d0e68a9be27787129ea6d9b810
|
|
| MD5 |
3db2c7d16b5f4091e410083ceedf6111
|
|
| BLAKE2b-256 |
67d8bad02b72616198e06ce372ee18ee175b900f0b1546840989a0d1a668feea
|
Provenance
The following attestation bundles were made for render_lab_tasks_exa-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on render-lab/render-tasks-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
render_lab_tasks_exa-0.1.0-py3-none-any.whl -
Subject digest:
d69787301cbea7b86c8c2413a67dcdd8253639d0e68a9be27787129ea6d9b810 - Sigstore transparency entry: 2767880203
- Sigstore integration time:
-
Permalink:
render-lab/render-tasks-python@b601664587ba5882dd7c8efabfc8908151008df6 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/render-lab
-
Access:
internal
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b601664587ba5882dd7c8efabfc8908151008df6 -
Trigger Event:
workflow_dispatch
-
Statement type: