Skip to content

Add AsyncMegaNova client for async/await support #14

@flyworker

Description

@flyworker

Context

The current SDK uses synchronous requests library only (SyncTransport). Modern Python applications and agent frameworks (nova_mesh, LangChain, etc.) are async-first. An async client is needed for production integration.

Current State

  • SyncTransport — synchronous HTTP via requests
  • CloudTransport — synchronous for Cloud Agent API
  • No async support at all

Requirements

  • Add httpx as optional dependency: pip install meganova[async]
  • Create AsyncTransport using httpx.AsyncClient
  • Create AsyncMegaNova client mirroring all sync methods:
    from meganova import AsyncMegaNova
    
    client = AsyncMegaNova(api_key="...")
    response = await client.chat.completions.create(messages=[...])
    
    async for chunk in client.chat.completions.create(stream=True, ...):
        print(chunk)
  • Create AsyncCloudAgent for async agent interaction
  • Async streaming via AsyncIterator
  • Add examples: examples/async_chat.py, examples/async_agent.py

Pattern

Follow OpenAI SDK pattern: openai.OpenAI() (sync) vs openai.AsyncOpenAI() (async).

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestready for testImplementation complete, ready for QA testing

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions