Skip to content

Commit 7a58ab3

Browse files
authored
Add meta to addPrompt and addResourceTemplate methods and null coalesce nullable properties (#149)
1 parent 7a3b473 commit 7a58ab3

File tree

2 files changed

+30
-19
lines changed

2 files changed

+30
-19
lines changed

src/Capability/Registry/Loader/ArrayLoader.php

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -149,14 +149,14 @@ public function load(ReferenceRegistryInterface $registry): void
149149
}
150150

151151
$resource = new Resource(
152-
$data['uri'],
153-
$name,
154-
$description,
155-
$data['mimeType'],
156-
$data['annotations'],
157-
$data['size'],
158-
$data['icons'],
159-
$data['meta'],
152+
uri: $data['uri'],
153+
name: $name,
154+
description: $description,
155+
mimeType: $data['mimeType'] ?? null,
156+
annotations: $data['annotations'] ?? null,
157+
size: $data['size'] ?? null,
158+
icons: $data['icons'] ?? null,
159+
meta: $data['meta'] ?? null,
160160
);
161161
$registry->registerResource($resource, $data['handler'], true);
162162

@@ -189,12 +189,12 @@ public function load(ReferenceRegistryInterface $registry): void
189189
}
190190

191191
$template = new ResourceTemplate(
192-
$data['uriTemplate'],
193-
$name,
194-
$description,
195-
$data['mimeType'],
196-
$data['annotations'],
197-
$data['meta'],
192+
uriTemplate: $data['uriTemplate'],
193+
name: $name,
194+
description: $description,
195+
mimeType: $data['mimeType'] ?? null,
196+
annotations: $data['annotations'] ?? null,
197+
meta: $data['meta'] ?? null,
198198
);
199199
$completionProviders = $this->getCompletionProviders($reflection);
200200
$registry->registerResourceTemplate($template, $data['handler'], $completionProviders, true);
@@ -246,7 +246,13 @@ public function load(ReferenceRegistryInterface $registry): void
246246
!$param->isOptional() && !$param->isDefaultValueAvailable(),
247247
);
248248
}
249-
$prompt = new Prompt($name, $description, $arguments, $data['icons'], $data['meta']);
249+
$prompt = new Prompt(
250+
name: $name,
251+
description: $description,
252+
arguments: $arguments,
253+
icons: $data['icons'] ?? null,
254+
meta: $data['meta'] ?? null
255+
);
250256
$completionProviders = $this->getCompletionProviders($reflection);
251257
$registry->registerPrompt($prompt, $data['handler'], $completionProviders, true);
252258

src/Server/Builder.php

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,8 @@ public function addResource(
379379
/**
380380
* Manually registers a resource template handler.
381381
*
382-
* @param Handler $handler
382+
* @param Handler $handler
383+
* @param array<string, mixed>|null $meta
383384
*/
384385
public function addResourceTemplate(
385386
\Closure|array|string $handler,
@@ -388,6 +389,7 @@ public function addResourceTemplate(
388389
?string $description = null,
389390
?string $mimeType = null,
390391
?Annotations $annotations = null,
392+
?array $meta = null,
391393
): self {
392394
$this->resourceTemplates[] = compact(
393395
'handler',
@@ -396,6 +398,7 @@ public function addResourceTemplate(
396398
'description',
397399
'mimeType',
398400
'annotations',
401+
'meta',
399402
);
400403

401404
return $this;
@@ -404,16 +407,18 @@ public function addResourceTemplate(
404407
/**
405408
* Manually registers a prompt handler.
406409
*
407-
* @param Handler $handler
408-
* @param ?Icon[] $icons
410+
* @param Handler $handler
411+
* @param ?Icon[] $icons
412+
* @param array<string, mixed>|null $meta
409413
*/
410414
public function addPrompt(
411415
\Closure|array|string $handler,
412416
?string $name = null,
413417
?string $description = null,
414418
?array $icons = null,
419+
?array $meta = null,
415420
): self {
416-
$this->prompts[] = compact('handler', 'name', 'description', 'icons');
421+
$this->prompts[] = compact('handler', 'name', 'description', 'icons', 'meta');
417422

418423
return $this;
419424
}

0 commit comments

Comments
 (0)