PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 2.4.4
Booking for Appointments and Events Calendar – Amelia v2.4.4
2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / vendor / wordpress / php-mcp-schema / src / Common / Protocol / DTO / ProgressNotificationParams.php
ameliabooking / vendor / wordpress / php-mcp-schema / src / Common / Protocol / DTO Last commit date
Annotations.php 1 month ago BaseMetadata.php 1 month ago BlobResourceContents.php 1 month ago CancelledNotification.php 1 month ago CancelledNotificationParams.php 1 month ago EmbeddedResource.php 1 month ago EmptyResult.php 1 month ago GetTaskPayloadRequest.php 1 month ago GetTaskPayloadRequestParams.php 1 month ago GetTaskPayloadResult.php 1 month ago Icons.php 1 month ago InitializeRequest.php 1 month ago InitializeRequestParams.php 1 month ago InitializeResult.php 1 month ago InitializedNotification.php 1 month ago PaginatedRequest.php 1 month ago PaginatedRequestParams.php 1 month ago PaginatedResult.php 1 month ago PingRequest.php 1 month ago ProgressNotification.php 1 month ago ProgressNotificationParams.php 1 month ago Result.php 1 month ago TextResourceContents.php 1 month ago URLElicitationRequiredError.php 1 month ago
ProgressNotificationParams.php
162 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace WP\McpSchema\Common\Protocol\DTO;
6
7 use WP\McpSchema\Common\JsonRpc\DTO\NotificationParams;
8 use WP\McpSchema\Common\Traits\ValidatesRequiredFields;
9
10 /**
11 * Parameters for a `notifications/progress` notification.
12 *
13 * @since 2025-11-25
14 *
15 * @mcp-domain Common
16 * @mcp-subdomain Protocol
17 * @mcp-version 2025-11-25
18 */
19 class ProgressNotificationParams extends NotificationParams
20 {
21 use ValidatesRequiredFields;
22
23 /**
24 * The progress token which was given in the initial request, used to associate this notification with the request that is proceeding.
25 *
26 * @since 2025-11-25
27 *
28 * @var string|number
29 */
30 protected $progressToken;
31
32 /**
33 * The progress thus far. This should increase every time progress is made, even if the total is unknown.
34 *
35 * @since 2025-11-25
36 *
37 * @var float
38 */
39 protected float $progress;
40
41 /**
42 * Total number of items to process (or total progress required), if known.
43 *
44 * @since 2025-11-25
45 *
46 * @var int|null
47 */
48 protected ?int $total;
49
50 /**
51 * An optional message describing the current progress.
52 *
53 * @since 2025-11-25
54 *
55 * @var string|null
56 */
57 protected ?string $message;
58
59 /**
60 * @param string|number $progressToken @since 2025-11-25
61 * @param float $progress @since 2025-11-25
62 * @param array<string, mixed>|null $_meta @since 2025-11-25
63 * @param int|null $total @since 2025-11-25
64 * @param string|null $message @since 2025-11-25
65 */
66 public function __construct(
67 $progressToken,
68 float $progress,
69 ?array $_meta = null,
70 ?int $total = null,
71 ?string $message = null
72 ) {
73 parent::__construct($_meta);
74 $this->progressToken = $progressToken;
75 $this->progress = $progress;
76 $this->total = $total;
77 $this->message = $message;
78 }
79
80 /**
81 * Creates an instance from an array.
82 *
83 * @param array{
84 * _meta?: array<string, mixed>|null,
85 * progressToken: string|number,
86 * progress: float,
87 * total?: int|null,
88 * message?: string|null
89 * } $data
90 * @phpstan-param array<string, mixed> $data
91 * @return self
92 */
93 public static function fromArray(array $data): self
94 {
95 self::assertRequired($data, ['progressToken', 'progress']);
96
97 /** @var string|number $progressToken */
98 $progressToken = self::asStringOrNumber($data['progressToken']);
99
100 return new self(
101 $progressToken,
102 self::asFloat($data['progress']),
103 self::asArrayOrNull($data['_meta'] ?? null),
104 self::asIntOrNull($data['total'] ?? null),
105 self::asStringOrNull($data['message'] ?? null)
106 );
107 }
108
109 /**
110 * Converts the instance to an array.
111 *
112 * @return array<string, mixed>
113 */
114 public function toArray(): array
115 {
116 $result = parent::toArray();
117
118 $result['progressToken'] = $this->progressToken;
119 $result['progress'] = $this->progress;
120 if ($this->total !== null) {
121 $result['total'] = $this->total;
122 }
123 if ($this->message !== null) {
124 $result['message'] = $this->message;
125 }
126
127 return $result;
128 }
129
130 /**
131 * @return string|number
132 */
133 public function getProgressToken()
134 {
135 return $this->progressToken;
136 }
137
138 /**
139 * @return float
140 */
141 public function getProgress(): float
142 {
143 return $this->progress;
144 }
145
146 /**
147 * @return int|null
148 */
149 public function getTotal(): ?int
150 {
151 return $this->total;
152 }
153
154 /**
155 * @return string|null
156 */
157 public function getMessage(): ?string
158 {
159 return $this->message;
160 }
161 }
162