Metadata-Version: 2.3
Name: mistralai-vibe-sdk
Version: 0.3.0
Summary: Vibe SDK
Author: Mistral AI
Author-email: Mistral AI <support@mistral.ai>
Requires-Dist: certifi>=2024.0
Requires-Dist: pydantic>=2.0
Requires-Dist: httpx>=0.27
Requires-Dist: markdownify>=1.2.2
Requires-Dist: mistralai>=2.4.5
Requires-Dist: structlog>=24.0
Requires-Dist: starlette>=0.37
Requires-Dist: tenacity>=9.1.4
Requires-Dist: pytest>=8.0 ; extra == 'dev'
Requires-Dist: pytest-asyncio>=0.23 ; extra == 'dev'
Requires-Dist: mypy>=1.0 ; extra == 'dev'
Requires-Dist: python-dotenv>=1.1 ; extra == 'dev'
Requires-Dist: rich>=13.0 ; extra == 'dev'
Requires-Dist: ruff==0.14.5 ; extra == 'dev'
Requires-Dist: prompt-toolkit>=3.0 ; extra == 'examples'
Requires-Dist: python-dotenv>=1.1 ; extra == 'examples'
Requires-Dist: rich>=13.0 ; extra == 'examples'
Requires-Dist: textual>=1.0 ; extra == 'examples'
Requires-Dist: uvicorn>=0.29 ; extra == 'examples'
Requires-Dist: pyyaml>=6.0 ; extra == 'examples'
Requires-Dist: opentelemetry-api>=1.0 ; extra == 'telemetry'
Requires-Dist: opentelemetry-sdk>=1.0 ; extra == 'telemetry'
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc>=1.0 ; extra == 'telemetry'
Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.0 ; extra == 'telemetry'
Requires-Dist: mistralai-workflows>=3.1.0 ; extra == 'workflow'
Requires-Python: >=3.12
Provides-Extra: dev
Provides-Extra: examples
Provides-Extra: telemetry
Provides-Extra: workflow
Description-Content-Type: text/markdown

# Vibe SDK

High-level Python interface for running Vibe protocol agents.

The SDK distribution also ships the legacy `mistralai.vibe.protocol.*` namespace
for compatibility while the consolidation moves internals toward SDK-owned
contexts.

The SDK gives you:

- `Agent` and stateful async/sync sessions
- Pydantic-based tool authoring
- Built-in filesystem tools
- Client-handled tools for UI- or host-dependent actions, such as asking the user a question

For full reference, see [DOCUMENTATION.md](DOCUMENTATION.md).

## Quick Start

```python
from mistralai.vibe.sdk import Agent, AgentConfig
from mistralai.vibe.sdk.execution_record.patching.json_patch import apply_patches
from mistralai.vibe.sdk.execution_record.state import TaskState
from mistralai.vibe.sdk.transports.events import TaskResultEvent, TaskStateUpdateEvent

agent = Agent(
    config=AgentConfig(
        model="mistral-large-latest",
        system_prompt="You are a concise assistant.",
    )
)

async with agent.session() as session:
    state = TaskState(input="Hello")
    async for event in session.run("Hello"):
        if isinstance(event, TaskStateUpdateEvent):
            state = apply_patches(state, event.payload.patches)
        elif isinstance(event, TaskResultEvent):
            state = event.payload.result

    print(state.output)
```
