PluginProbe
ZIP AI – AI Website Builder & AI Agent (Beta) / 0.0.8
ZIP AI – AI Website Builder & AI Agent (Beta) v0.0.8
0.0.10 0.0.9 trunk 0.0.4 0.0.5 0.0.6 0.0.7 0.0.8
zip-ai / lib / php-mcp-schema / src / Client / Lifecycle / DTO / ClientCapabilitiesSampling.php

ClientCapabilitiesSampling.php in ZIP AI – AI Website Builder & AI Agent (Beta) 0.0.8, at lib/php-mcp-schema/src/Client/Lifecycle/DTO/ClientCapabilitiesSampling.php

100 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 namespace WP\McpSchema\Client\Lifecycle\DTO;
6
7 use WP\McpSchema\Common\AbstractDataTransferObject;
8 use WP\McpSchema\Common\Traits\ValidatesRequiredFields;
9
10 /**
11 * Present if the client supports sampling from an LLM.
12 *
13 * @mcp-domain Client
14 * @mcp-subdomain Lifecycle
15 * @mcp-version 2025-11-25
16 */
17 class ClientCapabilitiesSampling extends AbstractDataTransferObject
18 {
19 use ValidatesRequiredFields;
20
21 /**
22 * Whether the client supports context inclusion via includeContext parameter. If not declared, servers SHOULD only use `includeContext: "none"` (or omit it).
23 *
24 * @var object|null
25 */
26 protected ?object $context;
27
28 /**
29 * Whether the client supports tool use via tools and toolChoice parameters.
30 *
31 * @var object|null
32 */
33 protected ?object $tools;
34
35 /**
36 * @param object|null $context
37 * @param object|null $tools
38 */
39 public function __construct(
40 ?object $context = null,
41 ?object $tools = null
42 ) {
43 $this->context = $context;
44 $this->tools = $tools;
45 }
46
47 /**
48 * Creates an instance from an array.
49 *
50 * @param array{
51 * context?: object|null,
52 * tools?: object|null
53 * } $data
54 * @phpstan-param array<string, mixed> $data
55 * @return self
56 */
57 public static function fromArray(array $data): self
58 {
59 return new self(
60 self::asObjectOrNull($data['context'] ?? null),
61 self::asObjectOrNull($data['tools'] ?? null)
62 );
63 }
64
65 /**
66 * Converts the instance to an array.
67 *
68 * @return array<string, mixed>
69 */
70 public function toArray(): array
71 {
72 $result = [];
73
74 if ($this->context !== null) {
75 $result['context'] = $this->context;
76 }
77 if ($this->tools !== null) {
78 $result['tools'] = $this->tools;
79 }
80
81 return $result;
82 }
83
84 /**
85 * @return object|null
86 */
87 public function getContext(): ?object
88 {
89 return $this->context;
90 }
91
92 /**
93 * @return object|null
94 */
95 public function getTools(): ?object
96 {
97 return $this->tools;
98 }
99 }
100