Problem
praisonai managed CLI (src/praisonai/praisonai/cli/commands/managed.py, 542 LOC) is asymmetric across its resource sub-apps:
| Sub-app |
list |
get |
update |
delete |
sessions |
✅ |
✅ |
— (has resume) |
❌ missing |
agents |
✅ |
✅ |
✅ |
❌ missing |
envs |
✅ |
✅ |
❌ missing |
❌ missing |
ids |
show/save/restore — not a CRUD resource |
|
|
|
Without delete, users must drop to the Anthropic web console or raw curl to clean up resources. Cost + operational footgun (idle environments keep billing).
Acceptance criteria
Implementation plan
- Add four typer commands mirroring existing list/get patterns (
_get_client() helper is already in the file).
- Wrap destructive ops in
typer.confirm(...) gated by --yes.
- Update docs.
Files
Modify:
src/praisonai/praisonai/cli/commands/managed.py
PraisonAIDocs/docs/concepts/managed-agents.mdx
Create:
src/praisonai/tests/unit/cli/test_managed_cli_destructive.py
Invariants
- Backward-compatible (additive).
- No change to core SDK.
References
cc @claude.
Problem
praisonai managedCLI (src/praisonai/praisonai/cli/commands/managed.py, 542 LOC) is asymmetric across its resource sub-apps:listgetupdatedeletesessionsresume)agentsenvsidsshow/save/restore— not a CRUD resourceWithout
delete, users must drop to the Anthropic web console or rawcurlto clean up resources. Cost + operational footgun (idle environments keep billing).Acceptance criteria
praisonai managed sessions delete <session_id>— confirms + callsclient.beta.sessions.delete.praisonai managed agents delete <agent_id>— confirms + callsclient.beta.agents.delete.praisonai managed envs update <env_id> [--packages ...] [--networking ...]— callsclient.beta.environments.update.praisonai managed envs delete <env_id>— confirms + callsclient.beta.environments.delete.--yes/-yto skip the interactive confirmation.PraisonAIDocs/docs/concepts/managed-agents.mdx.typer.testing.CliRunnerwith a mocked anthropic client.Implementation plan
_get_client()helper is already in the file).typer.confirm(...)gated by--yes.Files
Modify:
src/praisonai/praisonai/cli/commands/managed.pyPraisonAIDocs/docs/concepts/managed-agents.mdxCreate:
src/praisonai/tests/unit/cli/test_managed_cli_destructive.pyInvariants
References
cc @claude.