PluginProbe ʕ •ᴥ•ʔ
CommerceBird – AI Command Center, ERP Integrations & B2B for WooCommerce (Zoho, Exact Online). / trunk
CommerceBird – AI Command Center, ERP Integrations & B2B for WooCommerce (Zoho, Exact Online). vtrunk
3.0.3 3.0.2 3.0.1 trunk 2.2.14 2.2.15 2.2.16 2.2.17 2.2.18 2.2.19 2.3.0 2.3.1 2.3.10 2.3.11 2.3.12 2.3.13 2.3.14 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.3.7 2.3.8 2.3.9 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 2.7.8 2.7.9 2.7.91 2.7.92 2.7.93 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.8.5 2.9.0 2.9.1 2.9.2 2.9.3 3.0.0
commercebird / vendor / wordpress / php-mcp-schema / src / Common / Protocol / DTO / ProgressNotificationParams.php
commercebird / vendor / wordpress / php-mcp-schema / src / Common / Protocol / DTO Last commit date
Annotations.php 3 months ago BaseMetadata.php 3 months ago BlobResourceContents.php 3 months ago CancelledNotification.php 3 months ago CancelledNotificationParams.php 3 months ago EmbeddedResource.php 3 months ago EmptyResult.php 3 months ago GetTaskPayloadRequest.php 3 months ago GetTaskPayloadRequestParams.php 3 months ago GetTaskPayloadResult.php 3 months ago Icons.php 3 months ago InitializeRequest.php 3 months ago InitializeRequestParams.php 3 months ago InitializeResult.php 3 months ago InitializedNotification.php 3 months ago PaginatedRequest.php 3 months ago PaginatedRequestParams.php 3 months ago PaginatedResult.php 3 months ago PingRequest.php 3 months ago ProgressNotification.php 3 months ago ProgressNotificationParams.php 3 months ago Result.php 3 months ago TextResourceContents.php 3 months ago URLElicitationRequiredError.php 3 months 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