From 54c7b1782a2347f58830b07003abc1d226afae31 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 9 Jul 2026 16:48:02 +0000 Subject: [PATCH 1/4] codegen metadata --- .stats.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.stats.yml b/.stats.yml index 6b4e1c4..9768c4b 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 29 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev/context.dev-51ebe668b198157ccb18984017dd2fe35f7675220e8b933b03325b3c459ef2a6.yml -openapi_spec_hash: b3ed94bd6b59d4e32fc2c5aa8187d6b2 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev/context.dev-ea4f36d262d32250c0626d46b9df01e15fd17dec54928c712284693c8be487d2.yml +openapi_spec_hash: 33fe53c36120b880472d3743ba2bd898 config_hash: ff35e224e809656528c44163aa41bebd From 7638330d9020cc4ba1326845700619d110dffe54 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Thu, 9 Jul 2026 20:15:48 +0000 Subject: [PATCH 2/4] feat(api): api update --- .stats.yml | 4 ++-- .../ChangeDetection/MonitorsSemanticChangeDetection.php | 2 +- .../MonitorCreateParams/Target/MonitorsExtractTarget.php | 6 +++--- .../ChangeDetection/MonitorsSemanticChangeDetection.php | 2 +- .../MonitorGetResponse/Target/MonitorsExtractTarget.php | 6 +++--- .../ChangeDetection/MonitorsSemanticChangeDetection.php | 2 +- .../Data/Target/MonitorsExtractTarget.php | 6 +++--- .../ChangeDetection/MonitorsSemanticChangeDetection.php | 2 +- .../MonitorNewResponse/Target/MonitorsExtractTarget.php | 6 +++--- .../ChangeDetection/MonitorsSemanticChangeDetection.php | 2 +- .../MonitorUpdateParams/Target/MonitorsExtractTarget.php | 6 +++--- .../ChangeDetection/MonitorsSemanticChangeDetection.php | 2 +- .../MonitorUpdateResponse/Target/MonitorsExtractTarget.php | 6 +++--- 13 files changed, 26 insertions(+), 26 deletions(-) diff --git a/.stats.yml b/.stats.yml index 9768c4b..6343a8a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 29 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev/context.dev-ea4f36d262d32250c0626d46b9df01e15fd17dec54928c712284693c8be487d2.yml -openapi_spec_hash: 33fe53c36120b880472d3743ba2bd898 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev/context.dev-190c8939f11afec54c1c0303cb21e7164a350fb66c5fe8fb5ae970e809dfb066.yml +openapi_spec_hash: 65e3c8513e047a95bcf276b6f88045a6 config_hash: ff35e224e809656528c44163aa41bebd diff --git a/src/Monitors/MonitorCreateParams/ChangeDetection/MonitorsSemanticChangeDetection.php b/src/Monitors/MonitorCreateParams/ChangeDetection/MonitorsSemanticChangeDetection.php index 27eaf06..2f32c23 100644 --- a/src/Monitors/MonitorCreateParams/ChangeDetection/MonitorsSemanticChangeDetection.php +++ b/src/Monitors/MonitorCreateParams/ChangeDetection/MonitorsSemanticChangeDetection.php @@ -10,7 +10,7 @@ use ContextDev\Core\Contracts\BaseModel; /** - * Detect meaning-level changes to the extracted data, ignoring cosmetic or paraphrase-only differences. What is watched is determined by the extract target's `schema` and `instructions`. + * Detect meaning-level changes to tracked page content, ignoring cosmetic or paraphrase-only differences. Which changes are meaningful is judged against the extract target's `instructions` (and `schema`, when provided). * * @phpstan-type MonitorsSemanticChangeDetectionShape = array{ * type: 'semantic', confidenceThreshold?: float|null diff --git a/src/Monitors/MonitorCreateParams/Target/MonitorsExtractTarget.php b/src/Monitors/MonitorCreateParams/Target/MonitorsExtractTarget.php index 15ded69..5af2fce 100644 --- a/src/Monitors/MonitorCreateParams/Target/MonitorsExtractTarget.php +++ b/src/Monitors/MonitorCreateParams/Target/MonitorsExtractTarget.php @@ -10,7 +10,7 @@ use ContextDev\Core\Contracts\BaseModel; /** - * Watch the monitor-relevant pages of a site for meaningful changes. A crawl guided by `schema`/`instructions` selects up to `max_pages` relevant pages to track; each run re-checks exactly those pages, and confirmed content changes are judged against the monitor's instructions. The tracked page set is refreshed by a periodic re-discovery crawl. + * Watch the monitor-relevant pages of a site for meaningful changes. A crawl guided by `schema`/`instructions` selects up to `max_pages` relevant pages to track; each run re-checks exactly those pages, and confirmed content changes are judged for relevance against the monitor's `instructions` (and `schema`, when provided). The tracked page set is refreshed by a periodic re-discovery crawl. * * @phpstan-type MonitorsExtractTargetShape = array{ * instructions: string, @@ -59,7 +59,7 @@ final class MonitorsExtractTarget implements BaseModel public ?int $maxPages; /** - * JSON Schema describing the data you care about. It guides which pages are selected for tracking and gives the change judge context on what matters. If omitted, a default summary + key-points schema is used. + * JSON Schema describing the data you care about. It is used three ways: it guides which pages are selected for tracking, it gives the change judge extra context on which changes matter (alongside `instructions`), and it defines the shape of the baseline `data` snapshot on GET /monitors/{monitor_id} (refreshed at most about once a day). It is not a response format for changes: change events and webhook payloads always contain diffs, summaries, and evidence excerpts — never data in this schema's shape. If omitted, a default summary + key-points schema is used. * * @var array|null $schema */ @@ -177,7 +177,7 @@ public function withMaxPages(int $maxPages): self } /** - * JSON Schema describing the data you care about. It guides which pages are selected for tracking and gives the change judge context on what matters. If omitted, a default summary + key-points schema is used. + * JSON Schema describing the data you care about. It is used three ways: it guides which pages are selected for tracking, it gives the change judge extra context on which changes matter (alongside `instructions`), and it defines the shape of the baseline `data` snapshot on GET /monitors/{monitor_id} (refreshed at most about once a day). It is not a response format for changes: change events and webhook payloads always contain diffs, summaries, and evidence excerpts — never data in this schema's shape. If omitted, a default summary + key-points schema is used. * * @param array $schema */ diff --git a/src/Monitors/MonitorGetResponse/ChangeDetection/MonitorsSemanticChangeDetection.php b/src/Monitors/MonitorGetResponse/ChangeDetection/MonitorsSemanticChangeDetection.php index e4ead61..1fe50cb 100644 --- a/src/Monitors/MonitorGetResponse/ChangeDetection/MonitorsSemanticChangeDetection.php +++ b/src/Monitors/MonitorGetResponse/ChangeDetection/MonitorsSemanticChangeDetection.php @@ -10,7 +10,7 @@ use ContextDev\Core\Contracts\BaseModel; /** - * Detect meaning-level changes to the extracted data, ignoring cosmetic or paraphrase-only differences. What is watched is determined by the extract target's `schema` and `instructions`. + * Detect meaning-level changes to tracked page content, ignoring cosmetic or paraphrase-only differences. Which changes are meaningful is judged against the extract target's `instructions` (and `schema`, when provided). * * @phpstan-type MonitorsSemanticChangeDetectionShape = array{ * type: 'semantic', confidenceThreshold?: float|null diff --git a/src/Monitors/MonitorGetResponse/Target/MonitorsExtractTarget.php b/src/Monitors/MonitorGetResponse/Target/MonitorsExtractTarget.php index 609f9c4..06cccd3 100644 --- a/src/Monitors/MonitorGetResponse/Target/MonitorsExtractTarget.php +++ b/src/Monitors/MonitorGetResponse/Target/MonitorsExtractTarget.php @@ -10,7 +10,7 @@ use ContextDev\Core\Contracts\BaseModel; /** - * Watch the monitor-relevant pages of a site for meaningful changes. A crawl guided by `schema`/`instructions` selects up to `max_pages` relevant pages to track; each run re-checks exactly those pages, and confirmed content changes are judged against the monitor's instructions. The tracked page set is refreshed by a periodic re-discovery crawl. + * Watch the monitor-relevant pages of a site for meaningful changes. A crawl guided by `schema`/`instructions` selects up to `max_pages` relevant pages to track; each run re-checks exactly those pages, and confirmed content changes are judged for relevance against the monitor's `instructions` (and `schema`, when provided). The tracked page set is refreshed by a periodic re-discovery crawl. * * @phpstan-type MonitorsExtractTargetShape = array{ * instructions: string, @@ -59,7 +59,7 @@ final class MonitorsExtractTarget implements BaseModel public ?int $maxPages; /** - * JSON Schema describing the data you care about. It guides which pages are selected for tracking and gives the change judge context on what matters. If omitted, a default summary + key-points schema is used. + * JSON Schema describing the data you care about. It is used three ways: it guides which pages are selected for tracking, it gives the change judge extra context on which changes matter (alongside `instructions`), and it defines the shape of the baseline `data` snapshot on GET /monitors/{monitor_id} (refreshed at most about once a day). It is not a response format for changes: change events and webhook payloads always contain diffs, summaries, and evidence excerpts — never data in this schema's shape. If omitted, a default summary + key-points schema is used. * * @var array|null $schema */ @@ -177,7 +177,7 @@ public function withMaxPages(int $maxPages): self } /** - * JSON Schema describing the data you care about. It guides which pages are selected for tracking and gives the change judge context on what matters. If omitted, a default summary + key-points schema is used. + * JSON Schema describing the data you care about. It is used three ways: it guides which pages are selected for tracking, it gives the change judge extra context on which changes matter (alongside `instructions`), and it defines the shape of the baseline `data` snapshot on GET /monitors/{monitor_id} (refreshed at most about once a day). It is not a response format for changes: change events and webhook payloads always contain diffs, summaries, and evidence excerpts — never data in this schema's shape. If omitted, a default summary + key-points schema is used. * * @param array $schema */ diff --git a/src/Monitors/MonitorListResponse/Data/ChangeDetection/MonitorsSemanticChangeDetection.php b/src/Monitors/MonitorListResponse/Data/ChangeDetection/MonitorsSemanticChangeDetection.php index 6859c14..bf1868d 100644 --- a/src/Monitors/MonitorListResponse/Data/ChangeDetection/MonitorsSemanticChangeDetection.php +++ b/src/Monitors/MonitorListResponse/Data/ChangeDetection/MonitorsSemanticChangeDetection.php @@ -10,7 +10,7 @@ use ContextDev\Core\Contracts\BaseModel; /** - * Detect meaning-level changes to the extracted data, ignoring cosmetic or paraphrase-only differences. What is watched is determined by the extract target's `schema` and `instructions`. + * Detect meaning-level changes to tracked page content, ignoring cosmetic or paraphrase-only differences. Which changes are meaningful is judged against the extract target's `instructions` (and `schema`, when provided). * * @phpstan-type MonitorsSemanticChangeDetectionShape = array{ * type: 'semantic', confidenceThreshold?: float|null diff --git a/src/Monitors/MonitorListResponse/Data/Target/MonitorsExtractTarget.php b/src/Monitors/MonitorListResponse/Data/Target/MonitorsExtractTarget.php index a88be1a..a7f6758 100644 --- a/src/Monitors/MonitorListResponse/Data/Target/MonitorsExtractTarget.php +++ b/src/Monitors/MonitorListResponse/Data/Target/MonitorsExtractTarget.php @@ -10,7 +10,7 @@ use ContextDev\Core\Contracts\BaseModel; /** - * Watch the monitor-relevant pages of a site for meaningful changes. A crawl guided by `schema`/`instructions` selects up to `max_pages` relevant pages to track; each run re-checks exactly those pages, and confirmed content changes are judged against the monitor's instructions. The tracked page set is refreshed by a periodic re-discovery crawl. + * Watch the monitor-relevant pages of a site for meaningful changes. A crawl guided by `schema`/`instructions` selects up to `max_pages` relevant pages to track; each run re-checks exactly those pages, and confirmed content changes are judged for relevance against the monitor's `instructions` (and `schema`, when provided). The tracked page set is refreshed by a periodic re-discovery crawl. * * @phpstan-type MonitorsExtractTargetShape = array{ * instructions: string, @@ -59,7 +59,7 @@ final class MonitorsExtractTarget implements BaseModel public ?int $maxPages; /** - * JSON Schema describing the data you care about. It guides which pages are selected for tracking and gives the change judge context on what matters. If omitted, a default summary + key-points schema is used. + * JSON Schema describing the data you care about. It is used three ways: it guides which pages are selected for tracking, it gives the change judge extra context on which changes matter (alongside `instructions`), and it defines the shape of the baseline `data` snapshot on GET /monitors/{monitor_id} (refreshed at most about once a day). It is not a response format for changes: change events and webhook payloads always contain diffs, summaries, and evidence excerpts — never data in this schema's shape. If omitted, a default summary + key-points schema is used. * * @var array|null $schema */ @@ -177,7 +177,7 @@ public function withMaxPages(int $maxPages): self } /** - * JSON Schema describing the data you care about. It guides which pages are selected for tracking and gives the change judge context on what matters. If omitted, a default summary + key-points schema is used. + * JSON Schema describing the data you care about. It is used three ways: it guides which pages are selected for tracking, it gives the change judge extra context on which changes matter (alongside `instructions`), and it defines the shape of the baseline `data` snapshot on GET /monitors/{monitor_id} (refreshed at most about once a day). It is not a response format for changes: change events and webhook payloads always contain diffs, summaries, and evidence excerpts — never data in this schema's shape. If omitted, a default summary + key-points schema is used. * * @param array $schema */ diff --git a/src/Monitors/MonitorNewResponse/ChangeDetection/MonitorsSemanticChangeDetection.php b/src/Monitors/MonitorNewResponse/ChangeDetection/MonitorsSemanticChangeDetection.php index 9b35b99..9ca859f 100644 --- a/src/Monitors/MonitorNewResponse/ChangeDetection/MonitorsSemanticChangeDetection.php +++ b/src/Monitors/MonitorNewResponse/ChangeDetection/MonitorsSemanticChangeDetection.php @@ -10,7 +10,7 @@ use ContextDev\Core\Contracts\BaseModel; /** - * Detect meaning-level changes to the extracted data, ignoring cosmetic or paraphrase-only differences. What is watched is determined by the extract target's `schema` and `instructions`. + * Detect meaning-level changes to tracked page content, ignoring cosmetic or paraphrase-only differences. Which changes are meaningful is judged against the extract target's `instructions` (and `schema`, when provided). * * @phpstan-type MonitorsSemanticChangeDetectionShape = array{ * type: 'semantic', confidenceThreshold?: float|null diff --git a/src/Monitors/MonitorNewResponse/Target/MonitorsExtractTarget.php b/src/Monitors/MonitorNewResponse/Target/MonitorsExtractTarget.php index 70d297c..7823afd 100644 --- a/src/Monitors/MonitorNewResponse/Target/MonitorsExtractTarget.php +++ b/src/Monitors/MonitorNewResponse/Target/MonitorsExtractTarget.php @@ -10,7 +10,7 @@ use ContextDev\Core\Contracts\BaseModel; /** - * Watch the monitor-relevant pages of a site for meaningful changes. A crawl guided by `schema`/`instructions` selects up to `max_pages` relevant pages to track; each run re-checks exactly those pages, and confirmed content changes are judged against the monitor's instructions. The tracked page set is refreshed by a periodic re-discovery crawl. + * Watch the monitor-relevant pages of a site for meaningful changes. A crawl guided by `schema`/`instructions` selects up to `max_pages` relevant pages to track; each run re-checks exactly those pages, and confirmed content changes are judged for relevance against the monitor's `instructions` (and `schema`, when provided). The tracked page set is refreshed by a periodic re-discovery crawl. * * @phpstan-type MonitorsExtractTargetShape = array{ * instructions: string, @@ -59,7 +59,7 @@ final class MonitorsExtractTarget implements BaseModel public ?int $maxPages; /** - * JSON Schema describing the data you care about. It guides which pages are selected for tracking and gives the change judge context on what matters. If omitted, a default summary + key-points schema is used. + * JSON Schema describing the data you care about. It is used three ways: it guides which pages are selected for tracking, it gives the change judge extra context on which changes matter (alongside `instructions`), and it defines the shape of the baseline `data` snapshot on GET /monitors/{monitor_id} (refreshed at most about once a day). It is not a response format for changes: change events and webhook payloads always contain diffs, summaries, and evidence excerpts — never data in this schema's shape. If omitted, a default summary + key-points schema is used. * * @var array|null $schema */ @@ -177,7 +177,7 @@ public function withMaxPages(int $maxPages): self } /** - * JSON Schema describing the data you care about. It guides which pages are selected for tracking and gives the change judge context on what matters. If omitted, a default summary + key-points schema is used. + * JSON Schema describing the data you care about. It is used three ways: it guides which pages are selected for tracking, it gives the change judge extra context on which changes matter (alongside `instructions`), and it defines the shape of the baseline `data` snapshot on GET /monitors/{monitor_id} (refreshed at most about once a day). It is not a response format for changes: change events and webhook payloads always contain diffs, summaries, and evidence excerpts — never data in this schema's shape. If omitted, a default summary + key-points schema is used. * * @param array $schema */ diff --git a/src/Monitors/MonitorUpdateParams/ChangeDetection/MonitorsSemanticChangeDetection.php b/src/Monitors/MonitorUpdateParams/ChangeDetection/MonitorsSemanticChangeDetection.php index a39d915..b25c452 100644 --- a/src/Monitors/MonitorUpdateParams/ChangeDetection/MonitorsSemanticChangeDetection.php +++ b/src/Monitors/MonitorUpdateParams/ChangeDetection/MonitorsSemanticChangeDetection.php @@ -10,7 +10,7 @@ use ContextDev\Core\Contracts\BaseModel; /** - * Detect meaning-level changes to the extracted data, ignoring cosmetic or paraphrase-only differences. What is watched is determined by the extract target's `schema` and `instructions`. + * Detect meaning-level changes to tracked page content, ignoring cosmetic or paraphrase-only differences. Which changes are meaningful is judged against the extract target's `instructions` (and `schema`, when provided). * * @phpstan-type MonitorsSemanticChangeDetectionShape = array{ * type: 'semantic', confidenceThreshold?: float|null diff --git a/src/Monitors/MonitorUpdateParams/Target/MonitorsExtractTarget.php b/src/Monitors/MonitorUpdateParams/Target/MonitorsExtractTarget.php index 84e8ce2..1ba504a 100644 --- a/src/Monitors/MonitorUpdateParams/Target/MonitorsExtractTarget.php +++ b/src/Monitors/MonitorUpdateParams/Target/MonitorsExtractTarget.php @@ -10,7 +10,7 @@ use ContextDev\Core\Contracts\BaseModel; /** - * Watch the monitor-relevant pages of a site for meaningful changes. A crawl guided by `schema`/`instructions` selects up to `max_pages` relevant pages to track; each run re-checks exactly those pages, and confirmed content changes are judged against the monitor's instructions. The tracked page set is refreshed by a periodic re-discovery crawl. + * Watch the monitor-relevant pages of a site for meaningful changes. A crawl guided by `schema`/`instructions` selects up to `max_pages` relevant pages to track; each run re-checks exactly those pages, and confirmed content changes are judged for relevance against the monitor's `instructions` (and `schema`, when provided). The tracked page set is refreshed by a periodic re-discovery crawl. * * @phpstan-type MonitorsExtractTargetShape = array{ * instructions: string, @@ -59,7 +59,7 @@ final class MonitorsExtractTarget implements BaseModel public ?int $maxPages; /** - * JSON Schema describing the data you care about. It guides which pages are selected for tracking and gives the change judge context on what matters. If omitted, a default summary + key-points schema is used. + * JSON Schema describing the data you care about. It is used three ways: it guides which pages are selected for tracking, it gives the change judge extra context on which changes matter (alongside `instructions`), and it defines the shape of the baseline `data` snapshot on GET /monitors/{monitor_id} (refreshed at most about once a day). It is not a response format for changes: change events and webhook payloads always contain diffs, summaries, and evidence excerpts — never data in this schema's shape. If omitted, a default summary + key-points schema is used. * * @var array|null $schema */ @@ -177,7 +177,7 @@ public function withMaxPages(int $maxPages): self } /** - * JSON Schema describing the data you care about. It guides which pages are selected for tracking and gives the change judge context on what matters. If omitted, a default summary + key-points schema is used. + * JSON Schema describing the data you care about. It is used three ways: it guides which pages are selected for tracking, it gives the change judge extra context on which changes matter (alongside `instructions`), and it defines the shape of the baseline `data` snapshot on GET /monitors/{monitor_id} (refreshed at most about once a day). It is not a response format for changes: change events and webhook payloads always contain diffs, summaries, and evidence excerpts — never data in this schema's shape. If omitted, a default summary + key-points schema is used. * * @param array $schema */ diff --git a/src/Monitors/MonitorUpdateResponse/ChangeDetection/MonitorsSemanticChangeDetection.php b/src/Monitors/MonitorUpdateResponse/ChangeDetection/MonitorsSemanticChangeDetection.php index bf2c5e8..c1ccfc6 100644 --- a/src/Monitors/MonitorUpdateResponse/ChangeDetection/MonitorsSemanticChangeDetection.php +++ b/src/Monitors/MonitorUpdateResponse/ChangeDetection/MonitorsSemanticChangeDetection.php @@ -10,7 +10,7 @@ use ContextDev\Core\Contracts\BaseModel; /** - * Detect meaning-level changes to the extracted data, ignoring cosmetic or paraphrase-only differences. What is watched is determined by the extract target's `schema` and `instructions`. + * Detect meaning-level changes to tracked page content, ignoring cosmetic or paraphrase-only differences. Which changes are meaningful is judged against the extract target's `instructions` (and `schema`, when provided). * * @phpstan-type MonitorsSemanticChangeDetectionShape = array{ * type: 'semantic', confidenceThreshold?: float|null diff --git a/src/Monitors/MonitorUpdateResponse/Target/MonitorsExtractTarget.php b/src/Monitors/MonitorUpdateResponse/Target/MonitorsExtractTarget.php index 444d63d..3a5f52d 100644 --- a/src/Monitors/MonitorUpdateResponse/Target/MonitorsExtractTarget.php +++ b/src/Monitors/MonitorUpdateResponse/Target/MonitorsExtractTarget.php @@ -10,7 +10,7 @@ use ContextDev\Core\Contracts\BaseModel; /** - * Watch the monitor-relevant pages of a site for meaningful changes. A crawl guided by `schema`/`instructions` selects up to `max_pages` relevant pages to track; each run re-checks exactly those pages, and confirmed content changes are judged against the monitor's instructions. The tracked page set is refreshed by a periodic re-discovery crawl. + * Watch the monitor-relevant pages of a site for meaningful changes. A crawl guided by `schema`/`instructions` selects up to `max_pages` relevant pages to track; each run re-checks exactly those pages, and confirmed content changes are judged for relevance against the monitor's `instructions` (and `schema`, when provided). The tracked page set is refreshed by a periodic re-discovery crawl. * * @phpstan-type MonitorsExtractTargetShape = array{ * instructions: string, @@ -59,7 +59,7 @@ final class MonitorsExtractTarget implements BaseModel public ?int $maxPages; /** - * JSON Schema describing the data you care about. It guides which pages are selected for tracking and gives the change judge context on what matters. If omitted, a default summary + key-points schema is used. + * JSON Schema describing the data you care about. It is used three ways: it guides which pages are selected for tracking, it gives the change judge extra context on which changes matter (alongside `instructions`), and it defines the shape of the baseline `data` snapshot on GET /monitors/{monitor_id} (refreshed at most about once a day). It is not a response format for changes: change events and webhook payloads always contain diffs, summaries, and evidence excerpts — never data in this schema's shape. If omitted, a default summary + key-points schema is used. * * @var array|null $schema */ @@ -177,7 +177,7 @@ public function withMaxPages(int $maxPages): self } /** - * JSON Schema describing the data you care about. It guides which pages are selected for tracking and gives the change judge context on what matters. If omitted, a default summary + key-points schema is used. + * JSON Schema describing the data you care about. It is used three ways: it guides which pages are selected for tracking, it gives the change judge extra context on which changes matter (alongside `instructions`), and it defines the shape of the baseline `data` snapshot on GET /monitors/{monitor_id} (refreshed at most about once a day). It is not a response format for changes: change events and webhook payloads always contain diffs, summaries, and evidence excerpts — never data in this schema's shape. If omitted, a default summary + key-points schema is used. * * @param array $schema */ From 14b65ba7875c717bb23af5a2e980218b3ad93161 Mon Sep 17 00:00:00 2001 From: "stainless-app[bot]" <142633134+stainless-app[bot]@users.noreply.github.com> Date: Fri, 10 Jul 2026 00:56:28 +0000 Subject: [PATCH 3/4] feat(api): api update --- .stats.yml | 4 +- .../MonitorListAccountRunsResponse/Data.php | 26 +++ .../Data/WebhookDelivery.php | 166 ++++++++++++++++++ .../Data/WebhookDelivery/Error.php | 74 ++++++++ .../Data/WebhookDelivery/Status.php | 19 ++ src/Monitors/MonitorListRunsResponse/Data.php | 26 +++ .../Data/WebhookDelivery.php | 166 ++++++++++++++++++ .../Data/WebhookDelivery/Error.php | 74 ++++++++ .../Data/WebhookDelivery/Status.php | 19 ++ 9 files changed, 572 insertions(+), 2 deletions(-) create mode 100644 src/Monitors/MonitorListAccountRunsResponse/Data/WebhookDelivery.php create mode 100644 src/Monitors/MonitorListAccountRunsResponse/Data/WebhookDelivery/Error.php create mode 100644 src/Monitors/MonitorListAccountRunsResponse/Data/WebhookDelivery/Status.php create mode 100644 src/Monitors/MonitorListRunsResponse/Data/WebhookDelivery.php create mode 100644 src/Monitors/MonitorListRunsResponse/Data/WebhookDelivery/Error.php create mode 100644 src/Monitors/MonitorListRunsResponse/Data/WebhookDelivery/Status.php diff --git a/.stats.yml b/.stats.yml index 6343a8a..c2cc39a 100644 --- a/.stats.yml +++ b/.stats.yml @@ -1,4 +1,4 @@ configured_endpoints: 29 -openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev/context.dev-190c8939f11afec54c1c0303cb21e7164a350fb66c5fe8fb5ae970e809dfb066.yml -openapi_spec_hash: 65e3c8513e047a95bcf276b6f88045a6 +openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/context-dev/context.dev-ecb277557634e2f0838ea196e2b21f11924f65e133c7977e8c2e1a603b8df466.yml +openapi_spec_hash: 798ce4cb042389a1179bf9af6fc1173d config_hash: ff35e224e809656528c44163aa41bebd diff --git a/src/Monitors/MonitorListAccountRunsResponse/Data.php b/src/Monitors/MonitorListAccountRunsResponse/Data.php index 2128193..d363b54 100644 --- a/src/Monitors/MonitorListAccountRunsResponse/Data.php +++ b/src/Monitors/MonitorListAccountRunsResponse/Data.php @@ -14,9 +14,11 @@ use ContextDev\Monitors\MonitorListAccountRunsResponse\Data\SkipReason; use ContextDev\Monitors\MonitorListAccountRunsResponse\Data\Status; use ContextDev\Monitors\MonitorListAccountRunsResponse\Data\TargetType; +use ContextDev\Monitors\MonitorListAccountRunsResponse\Data\WebhookDelivery; /** * @phpstan-import-type ErrorShape from \ContextDev\Monitors\MonitorListAccountRunsResponse\Data\Error + * @phpstan-import-type WebhookDeliveryShape from \ContextDev\Monitors\MonitorListAccountRunsResponse\Data\WebhookDelivery * * @phpstan-type DataShape = array{ * id: string, @@ -33,6 +35,7 @@ * error?: null|Error|ErrorShape, * skipReason?: null|SkipReason|value-of, * startedAt?: \DateTimeInterface|null, + * webhookDelivery?: null|WebhookDelivery|WebhookDeliveryShape, * } */ final class Data implements BaseModel @@ -105,6 +108,12 @@ final class Data implements BaseModel #[Optional('started_at', nullable: true)] public ?\DateTimeInterface $startedAt; + /** + * The webhook delivery attempted for a change detected by this run. Omitted when no webhook was attempted, including historical runs created before delivery tracking was added. + */ + #[Optional('webhook_delivery')] + public ?WebhookDelivery $webhookDelivery; + /** * `new Data()` is missing required properties by the API. * @@ -154,6 +163,7 @@ public function __construct() * @param TargetType|value-of $targetType * @param Error|ErrorShape|null $error * @param SkipReason|value-of|null $skipReason + * @param WebhookDelivery|WebhookDeliveryShape|null $webhookDelivery */ public static function with( string $id, @@ -170,6 +180,7 @@ public static function with( Error|array|null $error = null, SkipReason|string|null $skipReason = null, ?\DateTimeInterface $startedAt = null, + WebhookDelivery|array|null $webhookDelivery = null, ): self { $self = new self; @@ -188,6 +199,7 @@ public static function with( null !== $error && $self['error'] = $error; null !== $skipReason && $self['skipReason'] = $skipReason; null !== $startedAt && $self['startedAt'] = $startedAt; + null !== $webhookDelivery && $self['webhookDelivery'] = $webhookDelivery; return $self; } @@ -334,4 +346,18 @@ public function withStartedAt(?\DateTimeInterface $startedAt): self return $self; } + + /** + * The webhook delivery attempted for a change detected by this run. Omitted when no webhook was attempted, including historical runs created before delivery tracking was added. + * + * @param WebhookDelivery|WebhookDeliveryShape $webhookDelivery + */ + public function withWebhookDelivery( + WebhookDelivery|array $webhookDelivery + ): self { + $self = clone $this; + $self['webhookDelivery'] = $webhookDelivery; + + return $self; + } } diff --git a/src/Monitors/MonitorListAccountRunsResponse/Data/WebhookDelivery.php b/src/Monitors/MonitorListAccountRunsResponse/Data/WebhookDelivery.php new file mode 100644 index 0000000..1d9ef10 --- /dev/null +++ b/src/Monitors/MonitorListAccountRunsResponse/Data/WebhookDelivery.php @@ -0,0 +1,166 @@ +, + * } + */ +final class WebhookDelivery implements BaseModel +{ + /** @use SdkModel */ + use SdkModel; + + #[Required('attempted_at')] + public \DateTimeInterface $attemptedAt; + + #[Required] + public ?Error $error; + + /** + * Identifier sent in the X-Context-Id header. + */ + #[Required('event_id')] + public string $eventID; + + /** + * The endpoint's final HTTP response status, or null when no response was received. + */ + #[Required('http_status')] + public ?int $httpStatus; + + /** + * Delivery outcome. delivered means any 2xx response; rejected means a non-2xx response; failed means no HTTP response was received; skipped_unsafe_url means the URL failed the public-endpoint safety check. + * + * @var value-of $status + */ + #[Required( + enum: Status::class, + )] + public string $status; + + /** + * `new WebhookDelivery()` is missing required properties by the API. + * + * To enforce required parameters use + * ``` + * WebhookDelivery::with( + * attemptedAt: ..., error: ..., eventID: ..., httpStatus: ..., status: ... + * ) + * ``` + * + * Otherwise ensure the following setters are called + * + * ``` + * (new WebhookDelivery) + * ->withAttemptedAt(...) + * ->withError(...) + * ->withEventID(...) + * ->withHTTPStatus(...) + * ->withStatus(...) + * ``` + */ + public function __construct() + { + $this->initialize(); + } + + /** + * Construct an instance from the required parameters. + * + * You must use named parameters to construct any parameters with a default value. + * + * @param Error|ErrorShape|null $error + * @param Status|value-of $status + */ + public static function with( + \DateTimeInterface $attemptedAt, + Error|array|null $error, + string $eventID, + ?int $httpStatus, + Status|string $status, + ): self { + $self = new self; + + $self['attemptedAt'] = $attemptedAt; + $self['error'] = $error; + $self['eventID'] = $eventID; + $self['httpStatus'] = $httpStatus; + $self['status'] = $status; + + return $self; + } + + public function withAttemptedAt(\DateTimeInterface $attemptedAt): self + { + $self = clone $this; + $self['attemptedAt'] = $attemptedAt; + + return $self; + } + + /** + * @param Error|ErrorShape|null $error + */ + public function withError( + Error|array|null $error, + ): self { + $self = clone $this; + $self['error'] = $error; + + return $self; + } + + /** + * Identifier sent in the X-Context-Id header. + */ + public function withEventID(string $eventID): self + { + $self = clone $this; + $self['eventID'] = $eventID; + + return $self; + } + + /** + * The endpoint's final HTTP response status, or null when no response was received. + */ + public function withHTTPStatus(?int $httpStatus): self + { + $self = clone $this; + $self['httpStatus'] = $httpStatus; + + return $self; + } + + /** + * Delivery outcome. delivered means any 2xx response; rejected means a non-2xx response; failed means no HTTP response was received; skipped_unsafe_url means the URL failed the public-endpoint safety check. + * + * @param Status|value-of $status + */ + public function withStatus( + Status|string $status, + ): self { + $self = clone $this; + $self['status'] = $status; + + return $self; + } +} diff --git a/src/Monitors/MonitorListAccountRunsResponse/Data/WebhookDelivery/Error.php b/src/Monitors/MonitorListAccountRunsResponse/Data/WebhookDelivery/Error.php new file mode 100644 index 0000000..951e5b2 --- /dev/null +++ b/src/Monitors/MonitorListAccountRunsResponse/Data/WebhookDelivery/Error.php @@ -0,0 +1,74 @@ + */ + use SdkModel; + + #[Required] + public string $code; + + #[Required] + public string $message; + + /** + * `new Error()` is missing required properties by the API. + * + * To enforce required parameters use + * ``` + * Error::with(code: ..., message: ...) + * ``` + * + * Otherwise ensure the following setters are called + * + * ``` + * (new Error)->withCode(...)->withMessage(...) + * ``` + */ + public function __construct() + { + $this->initialize(); + } + + /** + * Construct an instance from the required parameters. + * + * You must use named parameters to construct any parameters with a default value. + */ + public static function with(string $code, string $message): self + { + $self = new self; + + $self['code'] = $code; + $self['message'] = $message; + + return $self; + } + + public function withCode(string $code): self + { + $self = clone $this; + $self['code'] = $code; + + return $self; + } + + public function withMessage(string $message): self + { + $self = clone $this; + $self['message'] = $message; + + return $self; + } +} diff --git a/src/Monitors/MonitorListAccountRunsResponse/Data/WebhookDelivery/Status.php b/src/Monitors/MonitorListAccountRunsResponse/Data/WebhookDelivery/Status.php new file mode 100644 index 0000000..a456d90 --- /dev/null +++ b/src/Monitors/MonitorListAccountRunsResponse/Data/WebhookDelivery/Status.php @@ -0,0 +1,19 @@ +, * startedAt?: \DateTimeInterface|null, + * webhookDelivery?: null|WebhookDelivery|WebhookDeliveryShape, * } */ final class Data implements BaseModel @@ -105,6 +108,12 @@ final class Data implements BaseModel #[Optional('started_at', nullable: true)] public ?\DateTimeInterface $startedAt; + /** + * The webhook delivery attempted for a change detected by this run. Omitted when no webhook was attempted, including historical runs created before delivery tracking was added. + */ + #[Optional('webhook_delivery')] + public ?WebhookDelivery $webhookDelivery; + /** * `new Data()` is missing required properties by the API. * @@ -154,6 +163,7 @@ public function __construct() * @param TargetType|value-of $targetType * @param Error|ErrorShape|null $error * @param SkipReason|value-of|null $skipReason + * @param WebhookDelivery|WebhookDeliveryShape|null $webhookDelivery */ public static function with( string $id, @@ -170,6 +180,7 @@ public static function with( Error|array|null $error = null, SkipReason|string|null $skipReason = null, ?\DateTimeInterface $startedAt = null, + WebhookDelivery|array|null $webhookDelivery = null, ): self { $self = new self; @@ -188,6 +199,7 @@ public static function with( null !== $error && $self['error'] = $error; null !== $skipReason && $self['skipReason'] = $skipReason; null !== $startedAt && $self['startedAt'] = $startedAt; + null !== $webhookDelivery && $self['webhookDelivery'] = $webhookDelivery; return $self; } @@ -334,4 +346,18 @@ public function withStartedAt(?\DateTimeInterface $startedAt): self return $self; } + + /** + * The webhook delivery attempted for a change detected by this run. Omitted when no webhook was attempted, including historical runs created before delivery tracking was added. + * + * @param WebhookDelivery|WebhookDeliveryShape $webhookDelivery + */ + public function withWebhookDelivery( + WebhookDelivery|array $webhookDelivery + ): self { + $self = clone $this; + $self['webhookDelivery'] = $webhookDelivery; + + return $self; + } } diff --git a/src/Monitors/MonitorListRunsResponse/Data/WebhookDelivery.php b/src/Monitors/MonitorListRunsResponse/Data/WebhookDelivery.php new file mode 100644 index 0000000..61c9988 --- /dev/null +++ b/src/Monitors/MonitorListRunsResponse/Data/WebhookDelivery.php @@ -0,0 +1,166 @@ +, + * } + */ +final class WebhookDelivery implements BaseModel +{ + /** @use SdkModel */ + use SdkModel; + + #[Required('attempted_at')] + public \DateTimeInterface $attemptedAt; + + #[Required] + public ?Error $error; + + /** + * Identifier sent in the X-Context-Id header. + */ + #[Required('event_id')] + public string $eventID; + + /** + * The endpoint's final HTTP response status, or null when no response was received. + */ + #[Required('http_status')] + public ?int $httpStatus; + + /** + * Delivery outcome. delivered means any 2xx response; rejected means a non-2xx response; failed means no HTTP response was received; skipped_unsafe_url means the URL failed the public-endpoint safety check. + * + * @var value-of $status + */ + #[Required( + enum: Status::class, + )] + public string $status; + + /** + * `new WebhookDelivery()` is missing required properties by the API. + * + * To enforce required parameters use + * ``` + * WebhookDelivery::with( + * attemptedAt: ..., error: ..., eventID: ..., httpStatus: ..., status: ... + * ) + * ``` + * + * Otherwise ensure the following setters are called + * + * ``` + * (new WebhookDelivery) + * ->withAttemptedAt(...) + * ->withError(...) + * ->withEventID(...) + * ->withHTTPStatus(...) + * ->withStatus(...) + * ``` + */ + public function __construct() + { + $this->initialize(); + } + + /** + * Construct an instance from the required parameters. + * + * You must use named parameters to construct any parameters with a default value. + * + * @param Error|ErrorShape|null $error + * @param Status|value-of $status + */ + public static function with( + \DateTimeInterface $attemptedAt, + Error|array|null $error, + string $eventID, + ?int $httpStatus, + Status|string $status, + ): self { + $self = new self; + + $self['attemptedAt'] = $attemptedAt; + $self['error'] = $error; + $self['eventID'] = $eventID; + $self['httpStatus'] = $httpStatus; + $self['status'] = $status; + + return $self; + } + + public function withAttemptedAt(\DateTimeInterface $attemptedAt): self + { + $self = clone $this; + $self['attemptedAt'] = $attemptedAt; + + return $self; + } + + /** + * @param Error|ErrorShape|null $error + */ + public function withError( + Error|array|null $error, + ): self { + $self = clone $this; + $self['error'] = $error; + + return $self; + } + + /** + * Identifier sent in the X-Context-Id header. + */ + public function withEventID(string $eventID): self + { + $self = clone $this; + $self['eventID'] = $eventID; + + return $self; + } + + /** + * The endpoint's final HTTP response status, or null when no response was received. + */ + public function withHTTPStatus(?int $httpStatus): self + { + $self = clone $this; + $self['httpStatus'] = $httpStatus; + + return $self; + } + + /** + * Delivery outcome. delivered means any 2xx response; rejected means a non-2xx response; failed means no HTTP response was received; skipped_unsafe_url means the URL failed the public-endpoint safety check. + * + * @param Status|value-of $status + */ + public function withStatus( + Status|string $status, + ): self { + $self = clone $this; + $self['status'] = $status; + + return $self; + } +} diff --git a/src/Monitors/MonitorListRunsResponse/Data/WebhookDelivery/Error.php b/src/Monitors/MonitorListRunsResponse/Data/WebhookDelivery/Error.php new file mode 100644 index 0000000..16f73be --- /dev/null +++ b/src/Monitors/MonitorListRunsResponse/Data/WebhookDelivery/Error.php @@ -0,0 +1,74 @@ + */ + use SdkModel; + + #[Required] + public string $code; + + #[Required] + public string $message; + + /** + * `new Error()` is missing required properties by the API. + * + * To enforce required parameters use + * ``` + * Error::with(code: ..., message: ...) + * ``` + * + * Otherwise ensure the following setters are called + * + * ``` + * (new Error)->withCode(...)->withMessage(...) + * ``` + */ + public function __construct() + { + $this->initialize(); + } + + /** + * Construct an instance from the required parameters. + * + * You must use named parameters to construct any parameters with a default value. + */ + public static function with(string $code, string $message): self + { + $self = new self; + + $self['code'] = $code; + $self['message'] = $message; + + return $self; + } + + public function withCode(string $code): self + { + $self = clone $this; + $self['code'] = $code; + + return $self; + } + + public function withMessage(string $message): self + { + $self = clone $this; + $self['message'] = $message; + + return $self; + } +} diff --git a/src/Monitors/MonitorListRunsResponse/Data/WebhookDelivery/Status.php b/src/Monitors/MonitorListRunsResponse/Data/WebhookDelivery/Status.php new file mode 100644 index 0000000..af5edb3 --- /dev/null +++ b/src/Monitors/MonitorListRunsResponse/Data/WebhookDelivery/Status.php @@ -0,0 +1,19 @@ + Date: Fri, 10 Jul 2026 00:56:53 +0000 Subject: [PATCH 4/4] release: 2.2.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 9 +++++++++ README.md | 2 +- src/Version.php | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index 656a2ef..bfc26f9 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "2.1.0" + ".": "2.2.0" } \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index ee81312..55e64be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## 2.2.0 (2026-07-10) + +Full Changelog: [v2.1.0...v2.2.0](https://github.com/context-dot-dev/context-php-sdk/compare/v2.1.0...v2.2.0) + +### Features + +* **api:** api update ([14b65ba](https://github.com/context-dot-dev/context-php-sdk/commit/14b65ba7875c717bb23af5a2e980218b3ad93161)) +* **api:** api update ([7638330](https://github.com/context-dot-dev/context-php-sdk/commit/7638330d9020cc4ba1326845700619d110dffe54)) + ## 2.1.0 (2026-07-08) Full Changelog: [v2.0.0...v2.1.0](https://github.com/context-dot-dev/context-php-sdk/compare/v2.0.0...v2.1.0) diff --git a/README.md b/README.md index 270911f..a58ebc2 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ The REST API documentation can be found on [docs.context.dev](https://docs.conte ``` -composer require "context-dev/context-dev-php 2.1.0" +composer require "context-dev/context-dev-php 2.2.0" ``` diff --git a/src/Version.php b/src/Version.php index e53c1a9..d5e2aac 100644 --- a/src/Version.php +++ b/src/Version.php @@ -5,5 +5,5 @@ namespace ContextDev; // x-release-please-start-version -const VERSION = '2.1.0'; +const VERSION = '2.2.0'; // x-release-please-end