5 Commits

  • Refactor executor error handling and usage reporting
    - Updated the Execute methods in various executors (GeminiCLIExecutor, GeminiExecutor, IFlowExecutor, OpenAICompatExecutor, QwenExecutor) to return a response and error as named return values for improved clarity.
    - Enhanced error handling by deferring failure tracking in usage reporters, ensuring that failures are reported correctly.
    - Improved response body handling by ensuring proper closure and error logging for HTTP responses across all executors.
    - Added failure tracking and reporting in the usage reporter to capture unsuccessful requests.
    - Updated the usage logging structure to include a 'Failed' field for better tracking of request outcomes.
    - Adjusted the logic in the RequestStatistics and Record methods to accommodate the new failure tracking mechanism.
  • feat(usage): add in-memory usage statistics tracking and API endpoint
    - Introduced in-memory request statistics aggregation in `LoggerPlugin`.
    - Added new structures for detailed metrics collection (e.g., token breakdown, request success/failure).
    - Implemented `/usage` management API endpoint for retrieving aggregated statistics.
    - Updated management handlers to support the new usage statistics functionality.
    - Enhanced documentation to describe the usage metrics API.