Commit graph

8 commits

Author SHA1 Message Date
Snider
2c598f022d refactor: move Api and Mcp frontages to their packages
Some checks failed
CI / PHP 8.4 (push) Failing after 2m9s
CI / PHP 8.3 (push) Failing after 2m25s
Move Core\Front\Api\* to php-api and Core\Front\Mcp\* to php-mcp.
Inline the api/mcp middleware group definitions in Front\Boot since
middleware() runs before package providers load. Simplify
McpToolsRegistering to just collect class names without validating
the McpToolHandler interface (avoids framework→package dependency).

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-04 13:05:22 +00:00
Snider
7c20a5f905 feat: process middleware aliases in all fire* methods
All checks were successful
CI / PHP 8.3 (push) Successful in 2m13s
CI / PHP 8.4 (push) Successful in 2m12s
Extracted processMiddleware() helper and added it to fireWebRoutes,
fireAdminBooting, fireClientRoutes, fireApiRoutes, fireMcpRoutes,
and fireConsoleBooting. Modules can now register middleware aliases
via $event->middleware() on any lifecycle event consistently.

Previously only fireApiRoutes processed middleware (added in prior
commit), other methods silently ignored them despite the base
LifecycleEvent class supporting it.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-04 12:48:51 +00:00
Snider
9b36ae0661 fix: process middleware requests in fireApiRoutes()
All checks were successful
CI / PHP 8.3 (push) Successful in 2m7s
CI / PHP 8.4 (push) Successful in 2m9s
The LifecycleEvent base class supports middleware() requests but
fireApiRoutes() only processed route requests. Middleware aliases
like auth.api were registered via $event->middleware() by php-api
but never consumed during HTTP requests — only worked in CLI
because ConsoleBooting registered them separately.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-04 12:41:49 +00:00
Snider
c953ec7aac fix: remove /api prefix from fireApiRoutes()
Some checks failed
CI / PHP 8.3 (push) Has been cancelled
CI / PHP 8.4 (push) Has been cancelled
API routes are domain-scoped (api.lthn.ai, mcp.lthn.ai), not
path-embedded. The /api prefix forced workarounds for Website
modules that need stateless routes without path nesting.

No other frontage (web, admin, client, mcp) enforced a path prefix —
api was the odd one out.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-04 12:39:44 +00:00
Snider
0323243c9a feat: add McpRoutesRegistering lifecycle event
All checks were successful
CI / PHP 8.4 (push) Successful in 2m0s
CI / PHP 8.3 (push) Successful in 2m11s
Wire MCP protocol routes through the event-driven module system.
Front\Mcp\Boot now fires McpRoutesRegistering, wrapping routes
with the 'mcp' middleware group (stateless, rate limiting, no prefix).

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-03 21:52:55 +00:00
Snider
b05e3a0c13 feat(components): add new Blade components for Flux UI including icons, charts, and form elements 2026-01-26 21:21:53 +00:00
Snider
b26c430cd6 Add core components and initial setup for the PHP framework 2026-01-21 14:11:45 +00:00
Snider
392678e68a Initial release: Core PHP modular monolith framework
- Event-driven architecture with lazy module loading
- ModuleScanner, ModuleRegistry, LazyModuleListener for module discovery
- 7 lifecycle events: Web, Admin, API, Client, Console, MCP, FrameworkBooted
- AdminMenuProvider and ServiceDefinition contracts
- Artisan commands: make:mod, make:website, make:plug
- Module stubs for rapid scaffolding
- Comprehensive test suite with Orchestra Testbench
- GitHub Actions CI for PHP 8.2-8.4 / Laravel 11-12
- EUPL-1.2 license

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 17:02:28 +00:00