Conversation
Add pyyaml for YAML output support and rich for formatted table display in CLI. Update ruff config to allow Any type in CLI output formatting functions.
Add .coverage and .ralph/ to .gitignore to exclude generated development artifacts from version control.
Add encrypt_data() for sealed box encryption, generate_keypair() for creating new X25519 keypairs, and format_any_llm_key() for outputting keys in the standard ANY.v1 format. These utilities enable client-side key rotation and migration workflows.
Introduce ManagementMixin providing authenticated access to project, provider key, budget, and client management endpoints. Implements token-based authentication with automatic refresh and comprehensive error handling.
Add ManagementMixin to AnyLLMPlatformClient to expose project, key, budget, and client management methods. Implement automatic token refresh and validation for long-running sessions.
Move cryptography content from ARCHITECTURE.md to docs/architecture/ with improved organization. Split into CRYPTOGRAPHY.md and PROJECT_STRUCTURE.md for better navigation and maintainability.
Introduce AGENTS.md as a knowledge map for AI coding agents and human developers. Add structured documentation for development workflow, code style guide, and CLI usage reference following agent-first development principles.
Expand CLI from simple decrypt tool to full management interface with command groups for projects, keys, budgets, and clients. Add rich table formatting, JSON/YAML output options, and key generation with automatic migration. Implement authentication flow for management operations while preserving existing decrypt functionality.
Add unit tests for CLI command structure, help text, and error handling. Add integration tests for project, key, budget, and client operations with authentication flows and output format validation.
Replace basic CLI examples with detailed documentation for all command groups (project, key, budget, client). Add authentication instructions, key generation workflow, output format options, and real-world usage examples.
Add test_local.sh for convenient local testing during development.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Transforms the
any-llmCLI from a simple decryption tool into a full-featured management interface for the any-llm platform. This PR adds complete CRUD operations for projects, provider keys, budgets, and clients with modern terminal formatting and multiple output formats.Key Features
🔧 Management Operations
🎨 Enhanced UX
🔐 Security Features
📚 Documentation
docs/architecture/Changes
Added:
client_management.py- Management API client with authentication (851 lines)project,key,budget,clientEnhanced:
Dependencies:
pyyaml- YAML output format supportrich- Terminal formatting and tablesTesting
Backward Compatibility
All changes are fully backward compatible:
Example Usage
Commits
This PR consists of 11 atomic commits following single-responsibility principle:
Stats: +4,636 lines, -57 lines across 18 files