10 - Added the list resources handler with test class
10 - Update the ListPromptsHandler to use annotations
10 - Add the list resource handler, and it's test as well
10 - Added the registry logic
10 - Added the list tools handler logic
10 - Fix all php-cs-fixer related issues
10 - Resolved phpstan issues for ListPromptsHandlerTest
10 - Resolved phpstan issues for ListToolsHandlerTest
10 - Resolved phpstan issues for ListResourcesHandlerTest
10 - Resolved phpstan issues in registry class
10 - Resolved phpstan issues for the handler class
10 - Resolved php cs fixer issues
10 - Resolved all phpstan issues by generating the baseline again
10 - Remove the two loop operation and use foreach for optimization
10 - Removed unused code and resolved namespace
10 - Add signatures to interface and registry
10 - Add updated phpstan rule set
10 - Arranged according to property type
10 - Introduce reference page DTO, fix all failing test
10 - Resolve cs-fixer issues
10 - Resolve phpstan issues
10 - Resolve php cs fixer issues
10 - Created a reference directory for the Page DTO
10 - Remove manual loop for clean code readability
Co-authored-by: larry.sulebalogun <larry.sulebalogun@tillo.io>
* feat(server): Rework transport architecture and add StreamableHttpTransport
- `Server::connect()` no longer contains a processing loop.
- `TransportInterface` is updated with `setMessageHandler()` and `listen()`.
- `StdioTransport` is updated to implement the new interface.
- A new, minimal `StreamableHttpTransport` is added for stateless HTTP.
* refactor(server): use event-driven message handling
* feat(server): Introduce a formal session management system
* fix: ensure session elements are preserved when building server (regression from #46)
* refactor: consolidate HTTP example to use shared dependencies
* feat(server): Enhance message handling with session support
- Updated `TransportInterface` to use `onMessage` for handling incoming messages with session IDs.
- Refactored `Server`, `Handler`, and transport classes to accommodate session management using `Uuid`.
- Introduced methods for creating sessions with auto-generated and specific UUIDs in `SessionFactory` and `SessionFactoryInterface`.
* feat(server): Integrate session management in message handling
- Added session support to the `Server` and `Handler` classes, allowing for session data to be managed during message processing.
- Updated `TransportInterface` to include session context in the `send` method.
- Refactored various request handlers to utilize session information, ensuring proper session handling for incoming requests.
- Introduced a file-based session store for persistent session data management
* feat: Update session builder method to use set* instead of with*
* feat: Fix test compatibility with new session management architecture
* chore: apply code style fixes
* fix: remove deprecated SSE transport and resolve PHPStan issues
* refactor: Separate Registry concerns following SOLID principles [WIP]
- Extract ReferenceProvider and ReferenceRegistryInterface interfaces
- Create DefaultToolExecutor with ReferenceHandlerInterface
- Remove execution responsibility from Registry class
- Enable custom handler and executor implementations
* refactor: implement SOLID principles with separated execution concerns
* Create DefaultResourceReader, DefaultPromptGetter
* Refactor JsonRpc Handler and RequestHandlers to use dedicated executors
* Update ServerBuilder to support custom executors via dependency injection
* chore: remove extra comments
* feat: introduce DispatchableRegistry for enhanced tool and resource management
* refactor: use proper interfaces
* refactor: implement HandlerInterface for improved abstraction and flexibility
* test: add unit tests for DispatchableRegistry and Registry classes
* refactor: cover with unit tests Resource reader, Prompt getter and Tool executor
* cs fix
* phpstan fix
* test: add unit tests for CallToolHandler, GetPromptHandler, PingHandler, and ReadResourceHandler
* refactor: revert Handler
* chore: remove style guide for tests
* refactor: remove "Default" prefix from classes
* refactor: remove DispatchableRegistry
* refactor: use package specific exception classes
* refactor: remove DispatchableRegistry
* refactor: add logger support to PromptGetter and ResourceReader classes
* Update src/Capability/Prompt/PromptGetter.php
Co-authored-by: Christopher Hertel <mail@christopher-hertel.de>
* refactor: Use FQN for Resource class to avoid cs-fixer misinterpreting it as `resource`
* refactor: rename ToolExecutor to ToolCaller and related classes for clarity and consistency
* refactor: add missed docblock
* refactor: rename ToolExecutor references to ToolCaller
* refactor: rename ToolCallerTest property and variable references
* cs fix
* ignore some phpstan errors
---------
Co-authored-by: Christopher Hertel <mail@christopher-hertel.de>