Metadata-Version: 2.4
Name: sigil-sdk-google-adk
Version: 0.1.3
Summary: Google ADK callback handlers for Sigil Python SDK
License: SPDX-License-Identifier: Apache-2.0
        
        See /LICENSE at repository root for full license text.
        
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: sigil-sdk>=0.1.3
Requires-Dist: google-adk>=1.0.0
Provides-Extra: dev
Requires-Dist: pytest>=9.0.3; extra == "dev"
Dynamic: license-file

# Sigil Python Framework Module: Google ADK

`sigil-sdk-google-adk` provides callback handlers that map Google ADK invocation/session events into Sigil generation recorder lifecycles.

## Installation

```bash
pip install sigil-sdk sigil-sdk-google-adk
pip install google-adk
```

## Quickstart

```python
from sigil_sdk import Client
from sigil_sdk_google_adk import with_sigil_google_adk_plugins

client = Client()
runner_config = with_sigil_google_adk_plugins(None, client=client, provider_resolver="auto")
# Runner(..., **runner_config)
```

## Callback-field wiring

```python
from sigil_sdk import Client
from sigil_sdk_google_adk import with_sigil_google_adk_callbacks

client = Client()
agent_config = with_sigil_google_adk_callbacks(None, client=client, provider_resolver="auto")
# LlmAgent(..., **agent_config)
```

## Conversation mapping

Primary mapping is ADK session identity:

1. `conversation_id` / `session_id` / `group_id`
2. `thread_id`
3. fallback `sigil:framework:google-adk:<run_id>`

## Metadata and lineage

- Required: `sigil.framework.run_type`
- Optional: `sigil.framework.run_id`, `sigil.framework.parent_run_id`, `sigil.framework.thread_id`, `sigil.framework.event_id`, `sigil.framework.component_name`, `sigil.framework.retry_attempt`

## Provider resolver

Resolver order: explicit provider option -> callback payload -> model prefix inference -> `custom`.

## Troubleshooting

- Provide stable ADK `session_id` to avoid fragmented conversations.
- If model aliases are custom, set explicit `provider` on the handler.
- Always call `client.shutdown()` during teardown.
