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 / Tasks / DTO / TaskMetadata.php

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

82 lines 1.6 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\Tasks\DTO;
6
7 use WP\McpSchema\Common\AbstractDataTransferObject;
8 use WP\McpSchema\Common\Traits\ValidatesRequiredFields;
9
10 /**
11 * Metadata for augmenting a request with task execution.
12 * Include this in the `task` field of the request parameters.
13 *
14 * @since 2025-11-25
15 *
16 * @mcp-domain Client
17 * @mcp-subdomain Tasks
18 * @mcp-version 2025-11-25
19 */
20 class TaskMetadata extends AbstractDataTransferObject
21 {
22 use ValidatesRequiredFields;
23
24 /**
25 * Requested duration in milliseconds to retain task from creation.
26 *
27 * @since 2025-11-25
28 *
29 * @var int|null
30 */
31 protected ?int $ttl;
32
33 /**
34 * @param int|null $ttl @since 2025-11-25
35 */
36 public function __construct(
37 ?int $ttl = null
38 ) {
39 $this->ttl = $ttl;
40 }
41
42 /**
43 * Creates an instance from an array.
44 *
45 * @param array{
46 * ttl?: int|null
47 * } $data
48 * @phpstan-param array<string, mixed> $data
49 * @return self
50 */
51 public static function fromArray(array $data): self
52 {
53 return new self(
54 self::asIntOrNull($data['ttl'] ?? null)
55 );
56 }
57
58 /**
59 * Converts the instance to an array.
60 *
61 * @return array<string, mixed>
62 */
63 public function toArray(): array
64 {
65 $result = [];
66
67 if ($this->ttl !== null) {
68 $result['ttl'] = $this->ttl;
69 }
70
71 return $result;
72 }
73
74 /**
75 * @return int|null
76 */
77 public function getTtl(): ?int
78 {
79 return $this->ttl;
80 }
81 }
82