Download the PHP package thumanics/laravel-boost without Composer
On this page you can find all versions of the php package thumanics/laravel-boost. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download thumanics/laravel-boost
More information about thumanics/laravel-boost
Files in thumanics/laravel-boost
Package laravel-boost
Short Description A Laravel package to boost development with common tools and services
License MIT
Homepage https://github.com/thumanics/laravel-boost
Informations about the package laravel-boost
Introduction
resurex-boost
Laravel Boost accelerates AI-assisted development by providing the essential context and structure that AI needs to generate high-quality, Laravel-specific code.
Official Documentation
Documentation for Laravel Boost can be found on the Laravel website.
Contributing
Thank you for considering contributing to Boost! The contribution guide can be found in the Laravel documentation.
Code of Conduct
In order to ensure that the Laravel community is welcoming to all, please review and abide by the Code of Conduct.
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
Guide d'implementation de nouvelles fonctionnalites - Laravel Boost
Ce guide documente pas a pas les patterns a suivre pour ajouter de nouvelles fonctionnalites au package Laravel Boost, en s'appuyant sur les conventions existantes du code source.
Table des matieres
- Ajouter un outil MCP
- Ajouter un agent IA
- Ajouter des guidelines pour un package
- Ajouter un prompt MCP
- Ajouter une ressource MCP
- Ajouter un skill
- Ajouter une commande Artisan
- Ajouter un middleware ou service
- Compiler et distribuer le package
- Renommer le package
Fonctionnalites existantes par defaut
Outils MCP (src/Mcp/Tools/)
15 outils enregistres dans Boost::discoverTools() :
| Outil | Description | ReadOnly | Parametres |
|---|---|---|---|
ApplicationInfo |
Infos completes de l'app (PHP, Laravel, packages, models Eloquent) | Oui | aucun |
BrowserLogs |
Lire les N derniers logs du navigateur (debug frontend/JS) | Oui | entries (int, requis) |
DatabaseConnections |
Lister les connexions BDD configurees | Oui | aucun |
DatabaseQuery |
Executer une requete SQL en lecture seule | Oui | query (string, requis), database (string) |
DatabaseSchema |
Schema BDD : tables, colonnes, index, cles etrangeres | Oui | database, filter, include_views, include_routines, include_column_details |
GetAbsoluteUrl |
URL absolue pour un chemin relatif ou une route nommee | Oui | path (string), route (string) |
GetConfig |
Valeur d'une config en notation pointee (ex: app.name) |
Oui | key (string, requis) |
LastError |
Details de la derniere erreur/exception backend | Oui | aucun |
ListArtisanCommands |
Lister toutes les commandes Artisan disponibles | Oui | aucun |
ListAvailableConfigKeys |
Lister toutes les cles de config en notation pointee | Oui | aucun |
ListAvailableEnvVars |
Lister les variables d'environnement du .env |
Oui | filename (string) |
ListRoutes |
Lister toutes les routes (y compris Folio) | Oui | method, action, name, domain, path, except_path, except_vendor, only_vendor |
ReadLogEntries |
Lire les N derniers logs applicatifs (PSR-3) | Oui | entries (int, requis) |
SearchDocs |
Recherche semantique dans la doc Laravel et packages | Non | queries (array, requis), packages (array), token_limit (int) |
Tinker |
Executer du code PHP dans le contexte Laravel | Non | code (string, requis), timeout (int, requis) |
Prompts MCP (src/Mcp/Prompts/)
Enregistres dans Boost::discoverPrompts() :
| Prompt | Nom MCP | Description |
|---|---|---|
LaravelCodeSimplifier |
laravel-code-simplifier |
Simplifie et affine le code PHP/Laravel pour la clarte et la maintenabilite |
UpgradeLivewireV4 |
upgrade-livewire-v4 |
Guide pas a pas pour migrer de Livewire v3 a v4 |
PackageGuidelinePrompt |
(dynamique par package) | Guidelines auto-generees pour chaque package tiers ayant un .ai/core.blade.php |
Ressources MCP (src/Mcp/Resources/)
Enregistrees dans Boost::discoverResources() :
| Ressource | URI | Description |
|---|---|---|
ApplicationInfo |
file://instructions/application-info.md |
Infos completes de l'app (delegue a l'outil ApplicationInfo via ToolExecutor) |
PackageGuidelineResource |
(dynamique) | Guidelines auto-generees pour chaque package tiers |
Agents IA (src/Install/Agents/)
7 agents enregistres dans BoostManager::$agents. Tous implementent SupportsGuidelines, SupportsMcp et SupportsSkills.
| Agent | Identifiant | Config MCP | Guidelines | Particularites |
|---|---|---|---|---|
ClaudeCode |
claude_code |
.mcp.json |
CLAUDE.md |
- |
Cursor |
cursor |
.cursor/mcp.json |
AGENTS.md |
frontmatter() retourne true |
Copilot |
copilot |
.vscode/mcp.json |
AGENTS.md |
frontmatter() retourne true |
Codex |
codex |
.codex/config.toml |
AGENTS.md |
Config TOML, mcpConfigKey() = mcp |
Gemini |
gemini |
.gemini/settings.json |
GEMINI.md |
transformGuidelines() echappe les @ |
Junie |
junie |
.junie/mcp/mcp.json |
.junie/guidelines.md |
useAbsolutePathForMcp() retourne true |
OpenCode |
opencode |
opencode.json |
AGENTS.md |
- |
Commandes Artisan (src/Console/)
5 commandes enregistrees dans BoostServiceProvider::registerCommands() :
| Commande | Classe | Description |
|---|---|---|
boost:install |
InstallCommand |
Installation interactive (guidelines, skills, MCP) |
boost:update |
UpdateCommand |
Mettre a jour guidelines et skills vers la derniere version |
boost:mcp |
StartCommand |
Demarrer le serveur MCP (appele depuis mcp.json) |
boost:execute-tool |
ExecuteToolCommand |
Executer un outil MCP en isolation (commande interne) |
boost:add-skill |
AddSkillCommand |
Ajouter des skills depuis un depot GitHub distant |
Skills (.ai/)
10 skills uniques repartis sur plusieurs versions de packages :
| Skill | Package | Versions | Activation |
|---|---|---|---|
livewire-development |
Livewire | v2, v3, v4 | Composants reactifs, directives wire:*, tests Livewire |
inertia-react-development |
Inertia React | v1, v2 | Pages React, formulaires, navigation avec Link/router |
inertia-vue-development |
Inertia Vue | v1, v2 | Pages Vue, formulaires, navigation |
inertia-svelte-development |
Inertia Svelte | v1, v2 | Pages Svelte, formulaires, navigation |
volt-development |
Volt | - | Composants Livewire single-file, API fonctionnelle |
folio-routing |
Folio | - | Routes file-based, parametres, model binding |
pest-testing |
Pest | v3, v4 | Tests unitaires/feature, assertions, architecture tests |
mcp-development |
MCP | - | Creation d'outils/ressources/prompts MCP |
wayfinder-development |
Wayfinder | - | Routes Laravel depuis le frontend TypeScript |
Guidelines packages (.ai/)
20+ packages avec guidelines Blade dans .ai/{package}/core.blade.php :
| Categorie | Packages |
|---|---|
| Core | foundation, boost, php (8.2, 8.3, 8.4, 8.5), laravel (v11, v12) |
| Frontend | livewire, inertia-laravel (v1, v2), inertia-react, inertia-vue, inertia-svelte, tailwindcss, volt, wayfinder |
| UI | fluxui-free, fluxui-pro |
| Testing | pest, phpunit, pint |
| Outils | folio, pennant, mcp, sail, herd |
| Conditionnel | enforce-tests (active si choisi a l'installation) |
Middleware & Services
| Type | Classe | Role |
|---|---|---|
| Middleware | InjectBoost |
Injecte le script JS de capture des logs navigateur dans les reponses HTML |
| Service | BrowserLogger |
Genere le JavaScript qui intercepte console.*, erreurs globales et rejections, envoie a POST /_boost/browser-logs |
Configuration (config/boost.php)
| Cle | Defaut | Description |
|---|---|---|
enabled |
true |
Interrupteur principal de Boost |
browser_logs_watcher |
true |
Active/desactive la capture des logs navigateur |
executable_paths.php |
null |
Chemin personnalise vers l'executable PHP |
executable_paths.composer |
null |
Chemin personnalise vers Composer |
executable_paths.npm |
null |
Chemin personnalise vers npm |
executable_paths.vendor_bin |
null |
Chemin personnalise vers vendor/bin |
Le filtrage MCP (exclude/include par outil, prompt, ressource) est gere dynamiquement par Boost::filterPrimitives() et n'apparait pas dans la config par defaut.
Guide d'implementation
1. Ajouter un outil MCP
Les outils MCP permettent aux agents IA d'interagir avec l'application Laravel (requetes BDD, routes, config, etc.).
Etape 1 : Creer la classe
Creer un fichier dans src/Mcp/Tools/MonOutil.php :
Elements cles :
- Etendre
Laravel\Mcp\Server\Tool $description(obligatoire) : decrit l'outil pour l'agent IAschema(): definit les parametres d'entree avec leur type et descriptionhandle(): recoit unRequest, retourne unResponse#[IsReadOnly]: annotation pour les outils en lecture seule
Injection de dependances : Le constructeur supporte l'injection via le container Laravel :
Etape 2 : Enregistrer l'outil
Ajouter la classe dans la methode discoverTools() de src/Mcp/Boost.php :
Etape 3 : Ecrire les tests
Creer tests/Feature/Mcp/Tools/MonOutilTest.php :
Expectations personnalisees disponibles :
isToolResult(): verifie que c'est uneResponsetoolHasNoError()/toolHasError(): verifie le statuttoolTextContains('texte'): verifie le contenu textetoolTextDoesNotContain('texte'): verifie l'absencetoolJsonContent(fn ($data) => ...): assertion sur le JSON parsetoolJsonContentToMatchArray([...]): correspondance partielle
Etape 4 : Verifier
Configuration optionnelle
L'outil peut etre exclu ou inclus via config/boost.php (publiable dans l'app hote) :
Execution en sous-processus
Les outils sont executes dans des sous-processus PHP isoles via ToolExecutor. Cela signifie :
- Chaque execution demarre un processus PHP frais
- Aucun etat partage entre les executions
- Timeout configurable (defaut : 180s, max : 600s)
- Les modifications de code sont prises en compte entre les appels
2. Ajouter un agent IA
Un agent represente un assistant IA (IDE ou CLI) que Boost peut configurer.
Etape 1 : Creer la classe
Creer src/Install/Agents/MonAgent.php :
Methodes abstraites obligatoires :
name(): identifiant unique en snake_casedisplayName(): nom lisiblesystemDetectionConfig(Platform): comment detecter l'agent sur le systemeprojectDetectionConfig(): comment detecter l'agent dans le projet
Contrats optionnels :
| Contrat | Methodes a implementer | Usage |
|---|---|---|
SupportsGuidelines |
guidelinesPath(), frontmatter(), transformGuidelines() |
L'agent recoit des guidelines |
SupportsMcp |
useAbsolutePathForMcp(), getPhpPath(), getArtisanPath(), installMcp() |
L'agent supporte le protocole MCP |
SupportsSkills |
skillsPath() |
L'agent supporte les skills |
Note :
frontmatter(),transformGuidelines(),useAbsolutePathForMcp(),getPhpPath(),getArtisanPath()etinstallMcp()ont des implementations par defaut dans la classeAgent. Il suffit de les surcharger si necessaire.
Methodes surchargeables :
frontmatter(): bool- Retournertruesi le fichier de guidelines necessite du frontmatter YAML (ex: Cursor)transformGuidelines(string $markdown): string- Transformer le markdown genere (ex: Gemini echappe les@)useAbsolutePathForMcp(): bool- Utiliser des chemins absolus pour le MCP (ex: Junie)mcpConfigKey(): string- Cle de configuration MCP (defaut :mcpServers)defaultMcpConfig(): array- Configuration MCP par defautshellMcpCommand(): ?string- Commande shell pour l'installation MCP (strategie SHELL)
Etape 2 : Enregistrer l'agent
Ajouter dans le tableau $agents de src/BoostManager.php :
Etape 3 : Ecrire les tests
Etape 4 : Verifier
3. Ajouter des guidelines pour un package
Les guidelines fournissent du contexte specifique a un package aux agents IA.
Etape 1 : Creer la structure de repertoires
Le nom du repertoire est le nom du package composer normalise (vendor/package -> package).
Etape 2 : Ecrire le template Blade
.ai/mon-package/core.blade.php :
Variables disponibles dans les templates :
$assist(GuidelineAssist) : acces aux packages installes, versions, chemins, configuration
Methodes utiles de $assist :
$assist->hasPackage(Packages::NAME): verifie si un package est installe$assist->hasSkillsEnabled(): verifie si les skills sont actives$assist->skills(): collection des skills disponibles$assist->inertia()->pagesDirectory(): repertoire des pages Inertia
Directives speciales :
@boostsnippet protege les blocs de code de l'interpretation Blade. Les backticks et balises <?php sont aussi automatiquement proteges.
Etape 3 : Decouverte automatique
Les guidelines sont decouvertes automatiquement par GuidelineComposer :
- Les guidelines dans
.ai/du package Boost sont integrees directement - Les packages tiers peuvent fournir leurs propres guidelines dans
.ai/de leur repertoire - Les guidelines conditionnelles sont filtrees selon les packages detectes par
Roster
Etape 4 : Verifier
4. Ajouter un prompt MCP
Les prompts MCP sont des instructions pre-construites que les agents IA peuvent invoquer.
Etape 1 : Creer la structure
Etape 2 : Creer la classe
src/Mcp/Prompts/MonPrompt/MonPrompt.php :
Etape 3 : Creer le template Blade
src/Mcp/Prompts/MonPrompt/mon-prompt.blade.php :
Etape 4 : Enregistrer le prompt
Ajouter dans discoverPrompts() de src/Mcp/Boost.php :
Etape 5 : Ecrire les tests
tests/Feature/Mcp/Prompts/MonPromptTest.php :
Etape 6 : Verifier
5. Ajouter une ressource MCP
Les ressources MCP exposent des donnees persistantes que les agents IA peuvent consulter.
Etape 1 : Creer la classe
src/Mcp/Resources/MonResource.php :
Proprietes obligatoires :
$description: description de la ressource$uri: URI canonique (formatfile://instructions/nom.md)$mimeType: type MIME (text/markdown,text/plain,application/json)
Etape 2 : Enregistrer la ressource
Ajouter dans discoverResources() de src/Mcp/Boost.php :
Etape 3 : Ecrire les tests et verifier
Meme pattern que les outils et prompts. Utiliser les expectations isToolResult(), etc.
6. Ajouter un skill
Les skills sont des capacites specialisees que les agents peuvent activer selon le contexte.
Etape 1 : Creer le fichier skill
.ai/mon-package/2/skill/mon-skill/SKILL.blade.php :
Frontmatter obligatoire :
name: identifiant en kebab-casedescription: description de quand activer le skill et ce qu'il fait
Placement :
- Skills lies a un package :
.ai/{package}/{version}/skill/{skill-name}/SKILL.blade.php - Skills generiques :
.ai/skills/{skill-name}/SKILL.blade.php
Etape 2 : Decouverte automatique
Les skills sont automatiquement decouverts par SkillComposer qui scanne les repertoires .ai/ :
- Decouverte dans le repertoire
.ai/de Boost - Decouverte dans les packages tiers avec des guidelines Boost
- Decouverte dans les skills personnalises de l'utilisateur
Le SkillWriter ecrit les skills dans le repertoire defini par $agent->skillsPath() pour chaque agent configure.
Etape 3 : Verifier
7. Ajouter une commande Artisan
Etape 1 : Creer la classe
src/Console/MaCommand.php :
Regles architecturales (appliquees par tests/ArchTest.php) :
- La classe DOIT etendre
Illuminate\Console\Command - Le nom de classe DOIT avoir le suffixe
Command - Namespace :
Laravel\Boost\Console
Avec options et injection de dependances :
Etape 2 : Enregistrer la commande
Ajouter dans registerCommands() de src/BoostServiceProvider.php :
Etape 3 : Ecrire les tests
Etape 4 : Verifier
8. Ajouter un middleware ou service
Middleware
Etape 1 : Creer src/Middleware/MonMiddleware.php :
Etape 2 : Enregistrer dans BoostServiceProvider::boot() :
Service
Etape 1 : Creer src/Services/MonService.php :
Etape 2 : Enregistrer dans BoostServiceProvider::register() :
Le service est ensuite injectable dans les constructeurs des outils MCP, commandes, etc.
Rappels importants
Conventions de code obligatoires
declare(strict_types=1)dans tous les fichiers PHP (test d'architecture)- Pas de
dd(),dump(),var_dump(),die(),ray()(test d'architecture) - Pas d'appels directs a
env()sauf dansBoostServiceProvider(test d'architecture) - Style Laravel Pint avec comparaisons strictes (
===) - PHPStan niveau 5
Commandes de verification
Structure de test standard
Pattern de filtrage MCP
Tous les primitives MCP (outils, prompts, ressources) supportent le filtrage via la configuration boost.mcp.{type}.exclude et boost.mcp.{type}.include. Ce filtrage est applique automatiquement par Boost::filterPrimitives().
Compiler et distribuer le package
Laravel Boost est un package Composer PHP standard. Il n'y a pas d'etape de "build" ou de compilation : le code source PHP est distribue tel quel.
Prerequis
Installation des dependances de developpement
Cycle de validation avant distribution
Publier sur Packagist (depot public)
Etape 1 : Creer un depot Git et pousser le code :
Etape 2 : Creer un tag de version :
Etape 3 : Enregistrer le package sur packagist.org :
- Se connecter avec son compte GitHub.
- Se rendre sur la page de soumission : https://packagist.org/packages/submit.
- Saisir l'URL du dépôt (ex:
https://github.com/thumanics/laravel-boost.git). - Cliquer sur le bouton "Check" pour valider la structure.
- Si tout est correct, cliquer sur "Submit". Packagist détectera automatiquement les informations du
composer.json.
Etape 4 : Le package est installable par les utilisateurs :
Publier sur un depot Composer prive (Satis, Private Packagist, etc.)
Option A - Satis :
Ajouter le depot dans le satis.json :
Option B - Depot VCS direct :
Les utilisateurs ajoutent dans leur composer.json :
Option C - Depot local (path) pour le developpement :
Structure minimale requise pour la distribution
Les fichiers essentiels a inclure dans le package :
Les fichiers a exclure de la distribution (via .gitattributes) :
Auto-decouverte Laravel
Le package est auto-decouvert grace a la section extra.laravel dans composer.json :
Aucune action manuelle n'est necessaire pour l'utilisateur apres composer require.
Renommer le package
Pour forker ou renommer laravel/boost en un autre nom (ex: acme/ai-tools), voici la liste exhaustive de tous les points d'ancrage a modifier.
Etape 1 : Identite Composer (composer.json)
Etape 2 : Namespace PHP (tous les fichiers dans src/ et tests/)
Renommer le namespace racine dans tous les fichiers PHP :
| Ancien | Nouveau |
|---|---|
namespace Laravel\Boost; |
namespace Acme\AiTools; |
namespace Laravel\Boost\Mcp; |
namespace Acme\AiTools\Mcp; |
namespace Laravel\Boost\Mcp\Tools; |
namespace Acme\AiTools\Mcp\Tools; |
namespace Laravel\Boost\Install\Agents; |
namespace Acme\AiTools\Install\Agents; |
namespace Laravel\Boost\Console; |
namespace Acme\AiTools\Console; |
use Laravel\Boost\...; |
use Acme\AiTools\...; |
namespace Tests; |
(inchange, ou adapter si voulu) |
Commande pour renommer en masse :
Etape 3 : Noms de classes racine
| Fichier | Ancien | Nouveau |
|---|---|---|
src/BoostServiceProvider.php |
class BoostServiceProvider |
class AiToolsServiceProvider |
src/Boost.php |
class Boost extends Facade |
class AiTools extends Facade |
src/BoostManager.php |
class BoostManager |
class AiToolsManager |
src/Mcp/Boost.php |
class Boost extends Server |
class AiToolsServer extends Server |
Renommer egalement les fichiers PHP pour correspondre aux nouveaux noms de classes.
Etape 4 : Configuration (config/boost.php)
Renommer le fichier et la cle de configuration :
Puis mettre a jour le ServiceProvider :
Etape 5 : References config('boost.*') dans le code source
Rechercher et remplacer toutes les references de configuration. Fichiers concernes :
| Pattern | Fichiers concernes |
|---|---|
config('boost.enabled') |
BoostServiceProvider.php |
config('boost.browser_logs_watcher') |
BoostServiceProvider.php |
config('boost.executable_paths.*') |
Agent.php, GuidelineAssist.php |
config('boost.agents.*') |
Toutes les classes Agent (7 fichiers) |
config('boost.mcp.*') |
Mcp/Boost.php, Mcp/ToolRegistry.php |
config('boost.hosted.*') |
Concerns/MakesHttpRequests.php, Tools/SearchDocs.php |
config('boost.github.*') |
Skills/Remote/GitHubSkillProvider.php |
config('boost.purpose') |
.ai/foundation.blade.php |
Etape 6 : Variables d'environnement
| Ancien | Nouveau |
|---|---|
BOOST_ENABLED |
AI_TOOLS_ENABLED |
BOOST_BROWSER_LOGS_WATCHER |
AI_TOOLS_BROWSER_LOGS_WATCHER |
BOOST_PHP_EXECUTABLE_PATH |
AI_TOOLS_PHP_EXECUTABLE_PATH |
BOOST_COMPOSER_EXECUTABLE_PATH |
AI_TOOLS_COMPOSER_EXECUTABLE_PATH |
BOOST_NPM_EXECUTABLE_PATH |
AI_TOOLS_NPM_EXECUTABLE_PATH |
BOOST_VENDOR_BIN_EXECUTABLE_PATH |
AI_TOOLS_VENDOR_BIN_EXECUTABLE_PATH |
Etape 7 : Commandes Artisan (src/Console/)
| Fichier | Ancien | Nouveau |
|---|---|---|
StartCommand.php |
boost:mcp |
ai-tools:mcp |
InstallCommand.php |
boost:install |
ai-tools:install |
UpdateCommand.php |
boost:update |
ai-tools:update |
ExecuteToolCommand.php |
boost:execute-tool |
ai-tools:execute-tool |
AddSkillCommand.php |
boost:add-skill |
ai-tools:add-skill |
Etape 8 : Nom du serveur MCP
Etape 9 : Route et nom de route
Etape 10 : Directive Blade
Les utilisateurs devront remplacer
@boostJspar@aiToolsJsdans leurs vues.
Etape 11 : Cle de cache
Etape 12 : Canal de log
Etape 13 : Tests d'architecture (tests/ArchTest.php)
Etape 14 : Documentation
Mettre a jour les references dans :
README.md: logos, badges, texteCHANGELOG.md: URLs GitHubUPGRADE.md: noms de commandesCLAUDE.md: noms de classes et cheminsCONTRIBUTING_GUIDE.md: ce fichier
Checklist de verification apres renommage
License
Laravel Boost is open-sourced software licensed under the MIT license.
All versions of laravel-boost with dependencies
guzzlehttp/guzzle Version ^7.9
illuminate/console Version ^11.45.3|^12.41.1
illuminate/contracts Version ^11.45.3|^12.41.1
illuminate/routing Version ^11.45.3|^12.41.1
illuminate/support Version ^11.45.3|^12.41.1
laravel/mcp Version ^0.5.1
laravel/prompts Version ^0.3.10
laravel/roster Version ^0.2.9
spatie/laravel-medialibrary Version ^11.18
spatie/laravel-sluggable Version ^3.7
tailflow/laravel-orion Version ^2.23