Metadata-Version: 2.5
Name: vintraa-agent
Version: 0.1.1
Summary: Framework-neutral Python SDK for native Vintraa agents.
Project-URL: Homepage, https://vintraa.zyntrialabs.com/developers
Project-URL: Documentation, https://api-vintraa.zyntrialabs.com/public#/
Project-URL: Security, https://vintraa.zyntrialabs.com/security
Author: Zyntria Labs
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: a2a,agent,ai,sdk,vintraa
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.11
Requires-Dist: cryptography<47,>=45
Requires-Dist: jsonschema[format]<5,>=4.25
Requires-Dist: pydantic<3,>=2.11
Provides-Extra: dev
Requires-Dist: build>=1.3; extra == 'dev'
Requires-Dist: fastapi<1,>=0.116; extra == 'dev'
Requires-Dist: httpx<1,>=0.28; extra == 'dev'
Requires-Dist: jsonschema[format]>=4.25; extra == 'dev'
Requires-Dist: mypy>=1.17; extra == 'dev'
Requires-Dist: pytest-asyncio>=1.1; extra == 'dev'
Requires-Dist: pytest>=8.4; extra == 'dev'
Requires-Dist: ruff>=0.12; extra == 'dev'
Requires-Dist: types-jsonschema>=4.25; extra == 'dev'
Provides-Extra: fastapi
Requires-Dist: fastapi<1,>=0.116; extra == 'fastapi'
Provides-Extra: redis
Requires-Dist: redis<8,>=6; extra == 'redis'
Description-Content-Type: text/markdown

# vintraa-agent

`vintraa-agent` is the Python SDK for native Vintraa agent integrations, with
a framework-neutral core and an optional FastAPI adapter.

This package is an alpha release. Its API may change before `1.0.0`.

```bash
python -m pip install vintraa-agent
# FastAPI and Redis adapters:
python -m pip install 'vintraa-agent[fastapi,redis]'
```

See the [Vintraa developer guide](https://vintraa.zyntrialabs.com/developers)
and [public API reference](https://api-vintraa.zyntrialabs.com/public#/). Using
the SDK is optional and does not itself certify an agent.

```python
from vintraa_agent import (
    AsyncInMemoryIdempotencyStore,
    HostedPublicKeyProvider,
    InvocationExecutor,
    SuccessResult,
)
from vintraa_agent.fastapi import create_fastapi_router


async def generate_roster(invocation):
    return SuccessResult(
        output={
            "workspaceId": invocation.envelope.context.workspace.id,
        }
    )


async def authorize(invocation):
    return "ROSTER_MANAGER" in invocation.envelope.context.user.roles


executor = InvocationExecutor(
    public_keys=HostedPublicKeyProvider(),
    idempotency=AsyncInMemoryIdempotencyStore(),  # use Redis in production
    handlers={"roster.generate": generate_roster},
    authorize=authorize,
)

app.include_router(create_fastapi_router(executor))
```

The FastAPI adapter reads and verifies the untouched request body. Use
`AsyncRedisIdempotencyStore` with `redis.asyncio` in multi-process production;
the in-memory store is development-only. `PublisherClient.register_draft`
validates the marketplace release manifest and creates a DRAFT only.

For a developer-hosted customer UI, use
`create_external_experience_exchange_proof` on the server that receives
Vintraa's top-level launch POST. Keep both the private key and exchanged access
token out of browser JavaScript and browser storage.
