@@ -76,7 +76,7 @@ public function handle(CodeEnvironmentsDetector $codeEnvironmentsDetector, Herd
76
76
$ this ->outro ();
77
77
}
78
78
79
- private function bootstrap (CodeEnvironmentsDetector $ codeEnvironmentsDetector , Herd $ herd , Terminal $ terminal ): void
79
+ protected function bootstrap (CodeEnvironmentsDetector $ codeEnvironmentsDetector , Herd $ herd , Terminal $ terminal ): void
80
80
{
81
81
$ this ->codeEnvironmentsDetector = $ codeEnvironmentsDetector ;
82
82
$ this ->herd = $ herd ;
@@ -93,14 +93,14 @@ private function bootstrap(CodeEnvironmentsDetector $codeEnvironmentsDetector, H
93
93
$ this ->projectName = config ('app.name ' );
94
94
}
95
95
96
- private function displayBoostHeader (): void
96
+ protected function displayBoostHeader (): void
97
97
{
98
98
note ($ this ->boostLogo ());
99
99
intro ('✦ Laravel Boost :: Install :: We Must Ship ✦ ' );
100
100
note ("Let's give {$ this ->bgYellow ($ this ->black ($ this ->bold ($ this ->projectName )))} a Boost " );
101
101
}
102
102
103
- private function boostLogo (): string
103
+ protected function boostLogo (): string
104
104
{
105
105
return
106
106
<<<'HEADER'
@@ -113,21 +113,21 @@ private function boostLogo(): string
113
113
HEADER;
114
114
}
115
115
116
- private function discoverEnvironment (): void
116
+ protected function discoverEnvironment (): void
117
117
{
118
118
$ this ->systemInstalledCodeEnvironments = $ this ->codeEnvironmentsDetector ->discoverSystemInstalledCodeEnvironments ();
119
119
$ this ->projectInstalledCodeEnvironments = $ this ->codeEnvironmentsDetector ->discoverProjectInstalledCodeEnvironments (base_path ());
120
120
}
121
121
122
- private function collectInstallationPreferences (): void
122
+ protected function collectInstallationPreferences (): void
123
123
{
124
124
$ this ->selectedBoostFeatures = $ this ->selectBoostFeatures ();
125
125
$ this ->selectedTargetMcpClient = $ this ->selectTargetMcpClients ();
126
126
$ this ->selectedTargetAgents = $ this ->selectTargetAgents ();
127
127
$ this ->enforceTests = $ this ->determineTestEnforcement (ask: false );
128
128
}
129
129
130
- private function performInstallation (): void
130
+ protected function performInstallation (): void
131
131
{
132
132
$ this ->installGuidelines ();
133
133
@@ -138,7 +138,7 @@ private function performInstallation(): void
138
138
}
139
139
}
140
140
141
- private function discoverTools (): array
141
+ protected function discoverTools (): array
142
142
{
143
143
$ tools = [];
144
144
$ toolDir = implode (DIRECTORY_SEPARATOR , [__DIR__ , '.. ' , 'Mcp ' , 'Tools ' ]);
@@ -159,7 +159,7 @@ private function discoverTools(): array
159
159
return $ tools ;
160
160
}
161
161
162
- private function outro (): void
162
+ protected function outro (): void
163
163
{
164
164
$ label = 'https://boost.laravel.com/installed ' ;
165
165
@@ -189,7 +189,7 @@ private function outro(): void
189
189
echo $ this ->black ($ this ->bold ($ text .$ link )).$ this ->reset (PHP_EOL ).$ this ->reset (PHP_EOL );
190
190
}
191
191
192
- private function hyperlink (string $ label , string $ url ): string
192
+ protected function hyperlink (string $ label , string $ url ): string
193
193
{
194
194
return "\033]8;; {$ url }\007{$ label }\033]8;; \033\\" ;
195
195
}
@@ -230,7 +230,7 @@ protected function determineTestEnforcement(bool $ask = true): bool
230
230
/**
231
231
* @return Collection<int, string>
232
232
*/
233
- private function selectBoostFeatures (): Collection
233
+ protected function selectBoostFeatures (): Collection
234
234
{
235
235
$ defaultInstallOptions = ['mcp_server ' , 'ai_guidelines ' ];
236
236
$ installOptions = [
@@ -272,7 +272,7 @@ protected function boostToolsToDisable(): array
272
272
/**
273
273
* @return Collection<int, CodeEnvironment>
274
274
*/
275
- private function selectTargetMcpClients (): Collection
275
+ protected function selectTargetMcpClients (): Collection
276
276
{
277
277
if (! $ this ->shouldInstallMcp () && ! $ this ->shouldInstallHerdMcp ()) {
278
278
return collect ();
@@ -287,7 +287,7 @@ private function selectTargetMcpClients(): Collection
287
287
/**
288
288
* @return Collection<int, CodeEnvironment>
289
289
*/
290
- private function selectTargetAgents (): Collection
290
+ protected function selectTargetAgents (): Collection
291
291
{
292
292
if (! $ this ->shouldInstallAiGuidelines ()) {
293
293
return collect ();
@@ -304,7 +304,7 @@ private function selectTargetAgents(): Collection
304
304
*
305
305
* @return array{scroll: int, required: bool, displayMethod: string}
306
306
*/
307
- private function getSelectionConfig (string $ contractClass ): array
307
+ protected function getSelectionConfig (string $ contractClass ): array
308
308
{
309
309
return match ($ contractClass ) {
310
310
Agent::class => ['scroll ' => 5 , 'required ' => false , 'displayMethod ' => 'agentName ' ],
@@ -316,7 +316,7 @@ private function getSelectionConfig(string $contractClass): array
316
316
/**
317
317
* @return Collection<int, CodeEnvironment>
318
318
*/
319
- private function selectCodeEnvironments (string $ contractClass , string $ label ): Collection
319
+ protected function selectCodeEnvironments (string $ contractClass , string $ label ): Collection
320
320
{
321
321
$ allEnvironments = $ this ->codeEnvironmentsDetector ->getCodeEnvironments ();
322
322
$ config = $ this ->getSelectionConfig ($ contractClass );
@@ -366,7 +366,7 @@ private function selectCodeEnvironments(string $contractClass, string $label): C
366
366
return $ selectedClasses ->map (fn ($ className ) => $ availableEnvironments ->first (fn ($ env ): bool => $ env ::class === $ className ));
367
367
}
368
368
369
- private function installGuidelines (): void
369
+ protected function installGuidelines (): void
370
370
{
371
371
if (! $ this ->shouldInstallAiGuidelines ()) {
372
372
return ;
@@ -434,27 +434,27 @@ private function installGuidelines(): void
434
434
}
435
435
}
436
436
437
- private function shouldInstallAiGuidelines (): bool
437
+ protected function shouldInstallAiGuidelines (): bool
438
438
{
439
439
return $ this ->selectedBoostFeatures ->contains ('ai_guidelines ' );
440
440
}
441
441
442
- private function shouldInstallStyleGuidelines (): bool
442
+ protected function shouldInstallStyleGuidelines (): bool
443
443
{
444
444
return false ;
445
445
}
446
446
447
- private function shouldInstallMcp (): bool
447
+ protected function shouldInstallMcp (): bool
448
448
{
449
449
return $ this ->selectedBoostFeatures ->contains ('mcp_server ' );
450
450
}
451
451
452
- private function shouldInstallHerdMcp (): bool
452
+ protected function shouldInstallHerdMcp (): bool
453
453
{
454
454
return $ this ->selectedBoostFeatures ->contains ('herd_mcp ' );
455
455
}
456
456
457
- private function installMcpServerConfig (): void
457
+ protected function installMcpServerConfig (): void
458
458
{
459
459
if (! $ this ->shouldInstallMcp () && ! $ this ->shouldInstallHerdMcp ()) {
460
460
return ;
@@ -556,7 +556,7 @@ private function installMcpServerConfig(): void
556
556
/**
557
557
* Is the project actually using localization for their new features?
558
558
*/
559
- private function detectLocalization (): bool
559
+ protected function detectLocalization (): bool
560
560
{
561
561
$ actuallyUsing = false ;
562
562
0 commit comments