Skip to content

Commit cef6580

Browse files
ashleyhindlegithub-actions[bot]
authored andcommitted
Fix code styling
1 parent d2333bd commit cef6580

File tree

2 files changed

+25
-28
lines changed

2 files changed

+25
-28
lines changed

src/Mcp/Tools/SearchDocs.php

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
namespace Laravel\Boost\Mcp\Tools;
66

77
use Generator;
8-
use Illuminate\Support\Facades\Log;
98
use Laravel\Boost\Concerns\MakesHttpRequests;
109
use Laravel\Mcp\Server\Tool;
1110
use Laravel\Mcp\Server\Tools\ToolInputSchema;
@@ -17,13 +16,11 @@ class SearchDocs extends Tool
1716
{
1817
use MakesHttpRequests;
1918

20-
public function __construct(protected Roster $roster)
21-
{
22-
}
19+
public function __construct(protected Roster $roster) {}
2320

2421
public function description(): string
2522
{
26-
return 'Search for up-to-date version-specific documentation related to this project and its packages. This tool will search Laravel hosted documentation based on the packages installed and is perfect for all Laravel related packages. Laravel, inertia, pest, livewire, nova, nightwatch, and more.' . PHP_EOL . 'You must use this tool to search for Laravel-ecosystem docs before using other approaches.';
23+
return 'Search for up-to-date version-specific documentation related to this project and its packages. This tool will search Laravel hosted documentation based on the packages installed and is perfect for all Laravel related packages. Laravel, inertia, pest, livewire, nova, nightwatch, and more.'.PHP_EOL.'You must use this tool to search for Laravel-ecosystem docs before using other approaches.';
2724
}
2825

2926
public function schema(ToolInputSchema $schema): ToolInputSchema
@@ -37,27 +34,27 @@ public function schema(ToolInputSchema $schema): ToolInputSchema
3734

3835
public function handle(array $arguments): ToolResult|Generator
3936
{
40-
$apiUrl = config('boost.hosted.api_url', 'https://boost.laravel.com') . '/api/docs';
37+
$apiUrl = config('boost.hosted.api_url', 'https://boost.laravel.com').'/api/docs';
4138

4239
$queries = array_filter(
4340
array_map('trim', explode('###', $arguments['queries'])),
44-
fn($query) => $query !== '' && $query !== '*'
41+
fn ($query) => $query !== '' && $query !== '*'
4542
);
4643

4744
try {
4845
$packagesCollection = $this->roster->packages();
4946

5047
$packages = $packagesCollection->map(function (Package $package) {
5148
$name = $package->rawName();
52-
$version = $package->majorVersion() . '.x';
49+
$version = $package->majorVersion().'.x';
5350

5451
return [
5552
'name' => $name,
56-
'version' => $version
53+
'version' => $version,
5754
];
5855
})->values()->toArray();
5956
} catch (\Throwable $e) {
60-
return ToolResult::error('Failed to get packages: ' . $e->getMessage());
57+
return ToolResult::error('Failed to get packages: '.$e->getMessage());
6158
}
6259

6360
$tokenLimit = $arguments['token_limit'] ?? 10000;
@@ -66,29 +63,29 @@ public function handle(array $arguments): ToolResult|Generator
6663
$payload = [
6764
'queries' => $queries,
6865
'packages' => $packages,
69-
'token_limit' => $tokenLimit
66+
'token_limit' => $tokenLimit,
7067
];
7168
try {
7269
$response = $this->client()->asJson()->post($apiUrl, $payload);
7370

74-
if (!$response->successful()) {
75-
return ToolResult::error('Failed to search documentation: ' . $response->body());
71+
if (! $response->successful()) {
72+
return ToolResult::error('Failed to search documentation: '.$response->body());
7673
}
7774
} catch (\Throwable $e) {
78-
return ToolResult::error('HTTP request failed: ' . $e->getMessage());
75+
return ToolResult::error('HTTP request failed: '.$e->getMessage());
7976
}
8077

8178
$data = $response->json();
8279
$results = $data['results'] ?? [];
8380

8481
$concatenatedKnowledge = collect($results)
85-
->map(fn($result) => $result['content'] ?? '')
82+
->map(fn ($result) => $result['content'] ?? '')
8683
->filter()
8784
->join("\n\n---\n\n");
8885

8986
return ToolResult::json([
9087
'knowledge_count' => count($results),
91-
'knowledge' => $concatenatedKnowledge
88+
'knowledge' => $concatenatedKnowledge,
9289
]);
9390
}
9491
}

tests/Feature/Mcp/Tools/SearchDocsTest.php

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
'results' => [
2727
['content' => 'Laravel documentation content'],
2828
['content' => 'Pest documentation content'],
29-
]
29+
],
3030
]);
3131

3232
$mockClient = Mockery::mock(PendingRequest::class);
@@ -39,10 +39,10 @@
3939
$result = $tool->handle(['queries' => 'authentication, testing']);
4040

4141
expect($result)->toBeInstanceOf(ToolResult::class);
42-
42+
4343
$data = $result->toArray();
4444
expect($data['isError'])->toBeFalse();
45-
45+
4646
$content = json_decode($data['content'][0]['text'], true);
4747
expect($content['knowledge_count'])->toBe(2);
4848
expect($content['knowledge'])->toContain('Laravel documentation content');
@@ -73,7 +73,7 @@
7373
$result = $tool->handle(['queries' => 'authentication']);
7474

7575
expect($result)->toBeInstanceOf(ToolResult::class);
76-
76+
7777
$data = $result->toArray();
7878
expect($data['isError'])->toBeTrue();
7979
expect($data['content'][0]['text'])->toBe('Failed to search documentation: API Error');
@@ -91,10 +91,10 @@
9191

9292
$mockClient = Mockery::mock(PendingRequest::class);
9393
$mockClient->shouldReceive('asJson')->andReturnSelf();
94-
$mockClient->shouldReceive('post')->withArgs(function($url, $payload) {
94+
$mockClient->shouldReceive('post')->withArgs(function ($url, $payload) {
9595
return $url === 'https://boost.laravel.com/api/docs' &&
96-
$payload['queries'] === ['test'] &&
97-
empty($payload['packages']) &&
96+
$payload['queries'] === ['test'] &&
97+
empty($payload['packages']) &&
9898
$payload['token_limit'] === 10000;
9999
})->andReturn($mockResponse);
100100

@@ -104,7 +104,7 @@
104104
$result = $tool->handle(['queries' => 'test### ###*### ']);
105105

106106
expect($result)->toBeInstanceOf(ToolResult::class);
107-
107+
108108
$data = $result->toArray();
109109
expect($data['isError'])->toBeFalse();
110110
});
@@ -129,7 +129,7 @@
129129
Mockery::on(function ($payload) {
130130
return $payload['packages'] === [
131131
['name' => 'laravel/framework', 'version' => '11.x'],
132-
['name' => 'livewire/livewire', 'version' => '3.x']
132+
['name' => 'livewire/livewire', 'version' => '3.x'],
133133
] && $payload['token_limit'] === 10000;
134134
})
135135
)->andReturn($mockResponse);
@@ -162,10 +162,10 @@
162162
$result = $tool->handle(['queries' => 'nonexistent']);
163163

164164
expect($result)->toBeInstanceOf(ToolResult::class);
165-
165+
166166
$data = $result->toArray();
167167
expect($data['isError'])->toBeFalse();
168-
168+
169169
$content = json_decode($data['content'][0]['text'], true);
170170
expect($content['knowledge_count'])->toBe(0);
171171
expect($content['knowledge'])->toBe('');
@@ -223,4 +223,4 @@
223223
$result = $tool->handle(['queries' => 'test', 'token_limit' => 2000000]); // Request 2M but get capped at 1M
224224

225225
expect($result)->toBeInstanceOf(ToolResult::class);
226-
});
226+
});

0 commit comments

Comments
 (0)