Skip to content

Commit a8d0ee6

Browse files
committed
feat: change application info resource to use the application tool so it's still available but not repetitive
1 parent cc4c9b2 commit a8d0ee6

File tree

2 files changed

+12
-73
lines changed

2 files changed

+12
-73
lines changed

src/Console/InstallCommand.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -538,6 +538,7 @@ protected function publishAndUpdateConfig(): void
538538
]);
539539

540540
$this->line(' Configuration published '.$this->greenTick);
541+
$this->newLine();
541542
}
542543

543544
$updated = $this->updateProjectPurposeInConfig($configPath, $this->projectPurpose);

src/Mcp/Resources/ApplicationInfo.php

Lines changed: 11 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,17 @@
44

55
namespace Laravel\Boost\Mcp\Resources;
66

7-
use Illuminate\Support\Facades\File;
7+
use Laravel\Boost\Mcp\ToolExecutor;
8+
use Laravel\Boost\Mcp\Tools\ApplicationInfo as ApplicationInfoTool;
89
use Laravel\Mcp\Server\Resource;
910

1011
class ApplicationInfo extends Resource
1112
{
12-
public function name(): string
13-
{
14-
return 'Application Info';
15-
}
13+
public function __construct(protected ToolExecutor $toolExecutor) {}
1614

1715
public function description(): string
1816
{
19-
return 'Learn about the technical details of the application.';
17+
return 'Comprehensive application information including PHP version, Laravel version, database engine, all installed packages with their versions, and all Eloquent models in the application.';
2018
}
2119

2220
public function uri(): string
@@ -31,78 +29,18 @@ public function mimeType(): string
3129

3230
public function read(): string
3331
{
34-
$laravelVersion = app()->version();
35-
$phpVersion = PHP_VERSION;
36-
37-
$frontendFramework = $this->guessFrontendFramework();
38-
$cssFramework = $this->guessCssFramework();
39-
$testingFramework = $this->guessTestingFramework();
40-
41-
return <<<EOT
42-
Laravel Version: {$laravelVersion}
43-
PHP Version: {$phpVersion}
44-
45-
Frontend Framework: {$frontendFramework}
46-
CSS Framework: {$cssFramework}
47-
48-
Testing Framework: {$testingFramework}
49-
50-
EOT;
51-
}
52-
53-
private function guessFrontendFramework(): string
54-
{
55-
$composerJson = File::json(base_path('composer.json'));
56-
$packageJson = File::json(base_path('package.json'));
57-
58-
if (isset($composerJson['require']['livewire/livewire'])) {
59-
$version = $composerJson['require']['livewire/livewire'];
60-
61-
return "Livewire ({$version})";
62-
}
63-
64-
$version = $packageJson['dependencies']['vue'] ?? $packageJson['devDependencies']['vue'] ?? null;
65-
66-
if ($version) {
67-
return "Vue ({$version})";
68-
}
69-
70-
$version = $packageJson['dependencies']['react'] ?? $packageJson['devDependencies']['react'] ?? null;
71-
72-
if ($version) {
73-
return "React ({$version})";
74-
}
75-
76-
return 'Blade';
77-
}
78-
79-
private function guessCssFramework(): string
80-
{
81-
$packageJson = File::json(base_path('package.json'));
32+
$result = $this->toolExecutor->execute(ApplicationInfoTool::class);
8233

83-
$version = $packageJson['dependencies']['tailwindcss'] ?? $packageJson['devDependencies']['tailwindcss'] ?? null;
84-
85-
if ($version) {
86-
return "Tailwind ({$version})";
87-
}
88-
89-
$version = $packageJson['dependencies']['bootstrap'] ?? $packageJson['devDependencies']['bootstrap'] ?? null;
90-
91-
if ($version) {
92-
return "Bootstrap ({$version})";
34+
if ($result->isError) {
35+
return 'Error fetching application information: '.$result->toArray()['content'][0]['text'];
9336
}
9437

95-
return 'None';
96-
}
97-
98-
private function guessTestingFramework(): string
99-
{
100-
$composerJson = File::json(base_path('composer.json'));
38+
$data = json_decode($result->toArray()['content'][0]['text'], true);
10139

102-
if (isset($composerJson['require-dev']['pestphp/pest'])) {
103-
return 'Pest';
40+
if (! $data) {
41+
return 'Error parsing application information';
10442
}
10543

106-
return 'PHPUnit';
44+
return json_encode($data, JSON_PRETTY_PRINT);
10745
}
10846
}

0 commit comments

Comments
 (0)