Skip to content

Conversation

@soderlind
Copy link
Owner

This pull request introduces support for the Exo AI provider, enabling high-performance local LLM inference using Apple MLX hardware acceleration. It adds new backend logic, admin UI settings, REST endpoints, and documentation for Exo integration. The release also updates plugin metadata and test/dev dependencies to reflect these changes.

Exo AI Provider Integration

  • Added Exo AI provider support, including the new ExoProvider class for local LLM inference via Exo's OpenAI-compatible API. Exo enables distributed inference on Apple Silicon without external API keys. [1] [2] [3]
  • Implemented ExoController REST endpoint for managing Exo settings and automatically detecting running models via the /state endpoint. [1] [2] [3] [4]
  • Extended admin settings page: added fields for Exo endpoint and model selection, dynamic UI logic for Exo-specific options, and a health check for cluster connectivity. [1] [2] [3] [4] [5] [6]

Documentation Updates

  • Updated docs/AI-PROVIDERS.md to document Exo setup, configuration, environment variables, troubleshooting, and feature comparison. [1] [2] [3] [4] [5]

Plugin Metadata and Versioning

  • Bumped plugin and package version to 0.10.0 and updated descriptions to include Exo. [1] [2] [3]
  • Added changelog entries and release notes for Exo support. [1] [2]

Dev/Test Infrastructure

  • Added mockery/mockery to composer.json for improved PHP unit testing and mocking.
  • Updated PHPUnit cache/test results to reflect new and modified tests for Exo provider functionality.

- Created `MockInterface.php` to define the core interface for mock objects, including methods for setting expectations and allowing method calls.
- Introduced `QuickDefinitionsConfiguration.php` to manage quick definitions for mocks, allowing configuration for stubs and mocks with 'at least once' expectations.
- Implemented `ReceivedMethodCalls.php` to handle the storage and verification of method calls made on mocks, ensuring that expectations are met.
- Developed `Reflector.php` to provide reflection capabilities for method and parameter types, enhancing type hinting and return type handling in mocks.
- Added `Undefined.php` to represent an undefined state in mocks, allowing for graceful handling of method calls on undefined objects.
- Created `VerificationDirector.php` to manage the verification process of expectations against received method calls, providing methods for various verification strategies (e.g., at least, at most, once).
- Implemented `VerificationExpectation.php` to extend the `Expectation` class, adding functionality for managing verification counts and clearing validators.
- Updated `helpers.php` to include utility functions for creating mocks and spies, ensuring compatibility with legacy and new mock interfaces.

These changes enhance the Mockery library by providing a robust framework for creating and verifying mock objects, improving usability and flexibility in testing scenarios.
@soderlind soderlind merged commit 122eb1b into main Dec 22, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants