Skip to content

v1.0 Readiness Assessment — Pre-release Checklist #24

@johnxing-amigo

Description

@johnxing-amigo

Python SDK v1.0 Readiness Assessment

Current version: 0.137.1 | Target: 1.0.0

Must-Fix (Breaking Changes)

  • Rename PermissionError to ForbiddenError — shadows builtins.PermissionError, will cause confusion
  • Rename sync client aclose() to close() — the "a" prefix conventionally means "async"; confusing on AmigoClient and AmigoHttpClient
  • Normalize resource property names to plural — currently client.conversation (singular) vs client.users (plural). Standardize to: client.conversations, client.services, client.organizations, client.users
  • Align method namingorganization.get() vs user.get_users(). Pick one convention

Should-Fix (Design Improvements)

  • Export AmigoConfig and all error classes from __init__.py — currently users must import from submodules
  • Add mypy/pyright to CIpy.typed marker exists but no type checker runs
  • Move GetMessageSourceResponse to models.py — hand-written Pydantic model in resource file is maintenance risk
  • Remove dead InteractionInput TypedDict or prefix with _
  • Wrap *ParametersQuery types — generated names like GetUsersParametersQuery leak code-gen naming scheme
  • Streaming return types — annotate as AsyncIterator[T] / Iterator[T] instead of AsyncGenerator
  • Remove scripts/ from wheel buildpackages = ["src/amigo_sdk", "scripts"] ships code-gen scripts
  • Add license and urls fields to pyproject.toml

Missing API Coverage (~75% of endpoints missing)

Entire resource categories not in SDK:

  • Agents & Context Graphs — CRUD + versioning for agents and context graphs
  • Tools — 14 endpoints: create, list, update, publish, invoke, deprecate, env vars, test, invocations
  • Dynamic Behaviors — CRUD + versioning + invocations + search
  • Metrics — CRUD + evaluate + evaluation results + search
  • Simulations — 5 sub-resources (personas, scenarios, unit tests, unit test sets, runs), each with CRUD + versioning
  • Admin — get_models, get_prompt_logs, sql_query

Missing endpoints within existing resources:

  • Organization — create (PUT), modify (POST), delete (DELETE), get user dimensions
  • Service — create (POST), update (POST), version sets (GET)
  • User — search, modify variables, get memories, sign in with email
  • Conversation — real-time WebSocket (converse_realtime)

Nice-to-Have

  • Pagination helpers (auto-follow continuation_token)
  • __repr__ on AmigoClient / AsyncAmigoClient
  • Configurable timeout at client level (currently only via **httpx_kwargs)

Summary

The SDK has a solid core (dual sync/async, proper auth/retry/streaming, clean error hierarchy, generated models) but covers ~20-25% of the documented API surface. Minimum bar for 1.0: fix the 4 breaking naming issues, complete the public export surface, add type checking to CI, and add at least the resource categories referenced in the developer guide's Python SDK examples.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions