-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Python SDK v1.0 Readiness Assessment
Current version: 0.137.1 | Target: 1.0.0
Must-Fix (Breaking Changes)
- Rename
PermissionErrortoForbiddenError— shadowsbuiltins.PermissionError, will cause confusion - Rename sync client
aclose()toclose()— the "a" prefix conventionally means "async"; confusing onAmigoClientandAmigoHttpClient - Normalize resource property names to plural — currently
client.conversation(singular) vsclient.users(plural). Standardize to:client.conversations,client.services,client.organizations,client.users - Align method naming —
organization.get()vsuser.get_users(). Pick one convention
Should-Fix (Design Improvements)
- Export
AmigoConfigand all error classes from__init__.py— currently users must import from submodules - Add mypy/pyright to CI —
py.typedmarker exists but no type checker runs - Move
GetMessageSourceResponsetomodels.py— hand-written Pydantic model in resource file is maintenance risk - Remove dead
InteractionInputTypedDict or prefix with_ - Wrap
*ParametersQuerytypes — generated names likeGetUsersParametersQueryleak code-gen naming scheme - Streaming return types — annotate as
AsyncIterator[T]/Iterator[T]instead ofAsyncGenerator - Remove
scripts/from wheel build —packages = ["src/amigo_sdk", "scripts"]ships code-gen scripts - Add
licenseandurlsfields topyproject.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__onAmigoClient/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
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels