context.dev 2.21.0 → 2.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (229) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -0
  3. data/README.md +1 -1
  4. data/lib/context_dev/client.rb +4 -9
  5. data/lib/context_dev/models/batch_cancel_params.rb +2 -2
  6. data/lib/context_dev/models/batch_cancel_response.rb +16 -21
  7. data/lib/context_dev/models/batch_delete_params.rb +2 -2
  8. data/lib/context_dev/models/batch_delete_response.rb +8 -8
  9. data/lib/context_dev/models/batch_get_results_params.rb +2 -2
  10. data/lib/context_dev/models/batch_get_results_response.rb +17 -22
  11. data/lib/context_dev/models/batch_list_response.rb +38 -47
  12. data/lib/context_dev/models/batch_retrieve_params.rb +2 -2
  13. data/lib/context_dev/models/batch_retrieve_response.rb +37 -46
  14. data/lib/context_dev/models/batch_submit_params.rb +80 -109
  15. data/lib/context_dev/models/batch_submit_response.rb +18 -28
  16. data/lib/context_dev/models/brand_retrieve_params.rb +90 -149
  17. data/lib/context_dev/models/brand_retrieve_response.rb +18 -22
  18. data/lib/context_dev/models/brand_search_params.rb +2 -3
  19. data/lib/context_dev/models/brand_search_response.rb +8 -8
  20. data/lib/context_dev/models/crawl_controls.rb +1 -2
  21. data/lib/context_dev/models/feedback_submit_params.rb +2 -2
  22. data/lib/context_dev/models/feedback_submit_response.rb +8 -8
  23. data/lib/context_dev/models/industry_retrieve_naics_params.rb +17 -32
  24. data/lib/context_dev/models/industry_retrieve_naics_response.rb +10 -10
  25. data/lib/context_dev/models/industry_retrieve_sic_params.rb +20 -39
  26. data/lib/context_dev/models/industry_retrieve_sic_response.rb +10 -10
  27. data/lib/context_dev/models/intake.rb +7 -13
  28. data/lib/context_dev/models/log_list_response.rb +14 -10
  29. data/lib/context_dev/models/log_retrieve_response.rb +15 -41
  30. data/lib/context_dev/models/monitor_create_params.rb +238 -72
  31. data/lib/context_dev/models/monitor_create_response.rb +364 -175
  32. data/lib/context_dev/models/monitor_delete_params.rb +3 -1
  33. data/lib/context_dev/models/monitor_delete_response.rb +44 -1
  34. data/lib/context_dev/models/monitor_get_credit_usage_response.rb +43 -1
  35. data/lib/context_dev/models/monitor_get_limits_response.rb +47 -7
  36. data/lib/context_dev/models/monitor_list_account_changes_response.rb +143 -20
  37. data/lib/context_dev/models/monitor_list_account_runs_response.rb +50 -8
  38. data/lib/context_dev/models/monitor_list_changes_params.rb +2 -1
  39. data/lib/context_dev/models/monitor_list_changes_response.rb +143 -20
  40. data/lib/context_dev/models/monitor_list_params.rb +3 -3
  41. data/lib/context_dev/models/monitor_list_response.rb +304 -106
  42. data/lib/context_dev/models/monitor_list_runs_params.rb +2 -1
  43. data/lib/context_dev/models/monitor_list_runs_response.rb +50 -8
  44. data/lib/context_dev/models/monitor_retrieve_change_params.rb +3 -1
  45. data/lib/context_dev/models/monitor_retrieve_change_response.rb +45 -15
  46. data/lib/context_dev/models/monitor_retrieve_params.rb +3 -1
  47. data/lib/context_dev/models/monitor_retrieve_response.rb +361 -171
  48. data/lib/context_dev/models/monitor_retrieve_run_params.rb +6 -2
  49. data/lib/context_dev/models/monitor_retrieve_run_response.rb +45 -8
  50. data/lib/context_dev/models/monitor_rotate_webhook_secret_params.rb +3 -1
  51. data/lib/context_dev/models/monitor_rotate_webhook_secret_response.rb +364 -172
  52. data/lib/context_dev/models/monitor_run_params.rb +3 -1
  53. data/lib/context_dev/models/monitor_run_response.rb +42 -4
  54. data/lib/context_dev/models/monitor_update_params.rb +239 -71
  55. data/lib/context_dev/models/monitor_update_response.rb +361 -171
  56. data/lib/context_dev/models/news_search_params.rb +10 -6
  57. data/lib/context_dev/models/news_search_response.rb +8 -8
  58. data/lib/context_dev/models/parse_handle_params.rb +9 -20
  59. data/lib/context_dev/models/parse_handle_response.rb +8 -8
  60. data/lib/context_dev/models/person_enrich_params.rb +76 -50
  61. data/lib/context_dev/models/person_enrich_response.rb +8 -8
  62. data/lib/context_dev/models/utility_prefetch_params.rb +15 -29
  63. data/lib/context_dev/models/utility_prefetch_response.rb +10 -10
  64. data/lib/context_dev/models/web_answers_params.rb +28 -47
  65. data/lib/context_dev/models/web_answers_response.rb +9 -8
  66. data/lib/context_dev/models/web_extract_competitors_params.rb +17 -32
  67. data/lib/context_dev/models/web_extract_competitors_response.rb +8 -8
  68. data/lib/context_dev/models/web_extract_styleguide_params.rb +22 -44
  69. data/lib/context_dev/models/web_extract_styleguide_response.rb +34 -44
  70. data/lib/context_dev/models/web_map_urls_params.rb +30 -51
  71. data/lib/context_dev/models/web_map_urls_response.rb +8 -8
  72. data/lib/context_dev/models/web_scrape_params.rb +193 -191
  73. data/lib/context_dev/models/web_scrape_response.rb +219 -95
  74. data/lib/context_dev/models/web_screenshot_params.rb +20 -39
  75. data/lib/context_dev/models/web_screenshot_response.rb +18 -28
  76. data/lib/context_dev/models/web_search_params.rb +76 -65
  77. data/lib/context_dev/models/web_search_response.rb +68 -27
  78. data/lib/context_dev/models/web_web_crawl_md_params.rb +41 -70
  79. data/lib/context_dev/models/web_web_crawl_md_response.rb +11 -15
  80. data/lib/context_dev/models/webhook_delivery.rb +3 -7
  81. data/lib/context_dev/models/webhooks/attempt.rb +3 -3
  82. data/lib/context_dev/models/webhooks/delivery.rb +16 -11
  83. data/lib/context_dev/models/webhooks/delivery_list_attempts_params.rb +2 -6
  84. data/lib/context_dev/models/webhooks/delivery_list_attempts_response.rb +8 -8
  85. data/lib/context_dev/models/webhooks/delivery_list_params.rb +4 -4
  86. data/lib/context_dev/models/webhooks/delivery_list_response.rb +8 -8
  87. data/lib/context_dev/models/webhooks/delivery_retrieve_params.rb +2 -6
  88. data/lib/context_dev/models/webhooks/delivery_retrieve_response.rb +8 -8
  89. data/lib/context_dev/models/webhooks/delivery_retry_params.rb +4 -4
  90. data/lib/context_dev/models/webhooks/delivery_retry_response.rb +8 -8
  91. data/lib/context_dev/models/webhooks/delivery_summary.rb +16 -11
  92. data/lib/context_dev/resources/batch.rb +17 -16
  93. data/lib/context_dev/resources/brand.rb +6 -8
  94. data/lib/context_dev/resources/feedback.rb +4 -5
  95. data/lib/context_dev/resources/industry.rb +9 -11
  96. data/lib/context_dev/resources/logs.rb +4 -5
  97. data/lib/context_dev/resources/monitors.rb +50 -53
  98. data/lib/context_dev/resources/news.rb +4 -8
  99. data/lib/context_dev/resources/parse.rb +4 -5
  100. data/lib/context_dev/resources/people.rb +11 -13
  101. data/lib/context_dev/resources/utility.rb +4 -11
  102. data/lib/context_dev/resources/web.rb +69 -94
  103. data/lib/context_dev/resources/webhooks/deliveries.rb +10 -18
  104. data/lib/context_dev/resources/webhooks.rb +1 -1
  105. data/lib/context_dev/version.rb +1 -1
  106. data/rbi/context_dev/client.rbi +4 -9
  107. data/rbi/context_dev/models/batch_cancel_params.rbi +2 -2
  108. data/rbi/context_dev/models/batch_cancel_response.rbi +17 -21
  109. data/rbi/context_dev/models/batch_delete_params.rbi +2 -2
  110. data/rbi/context_dev/models/batch_delete_response.rbi +9 -9
  111. data/rbi/context_dev/models/batch_get_results_params.rbi +2 -2
  112. data/rbi/context_dev/models/batch_get_results_response.rbi +18 -26
  113. data/rbi/context_dev/models/batch_list_response.rbi +41 -53
  114. data/rbi/context_dev/models/batch_retrieve_params.rbi +2 -2
  115. data/rbi/context_dev/models/batch_retrieve_response.rbi +40 -52
  116. data/rbi/context_dev/models/batch_submit_params.rbi +87 -147
  117. data/rbi/context_dev/models/batch_submit_response.rbi +19 -31
  118. data/rbi/context_dev/models/brand_retrieve_params.rbi +99 -190
  119. data/rbi/context_dev/models/brand_retrieve_response.rbi +19 -25
  120. data/rbi/context_dev/models/brand_search_params.rbi +2 -4
  121. data/rbi/context_dev/models/brand_search_response.rbi +9 -9
  122. data/rbi/context_dev/models/crawl_controls.rbi +1 -2
  123. data/rbi/context_dev/models/feedback_submit_params.rbi +2 -2
  124. data/rbi/context_dev/models/feedback_submit_response.rbi +9 -9
  125. data/rbi/context_dev/models/industry_retrieve_naics_params.rbi +19 -42
  126. data/rbi/context_dev/models/industry_retrieve_naics_response.rbi +11 -11
  127. data/rbi/context_dev/models/industry_retrieve_sic_params.rbi +22 -51
  128. data/rbi/context_dev/models/industry_retrieve_sic_response.rbi +11 -11
  129. data/rbi/context_dev/models/intake.rbi +7 -19
  130. data/rbi/context_dev/models/log_list_response.rbi +13 -11
  131. data/rbi/context_dev/models/log_retrieve_response.rbi +13 -76
  132. data/rbi/context_dev/models/monitor_create_params.rbi +418 -78
  133. data/rbi/context_dev/models/monitor_create_response.rbi +654 -287
  134. data/rbi/context_dev/models/monitor_delete_params.rbi +6 -1
  135. data/rbi/context_dev/models/monitor_delete_response.rbi +89 -3
  136. data/rbi/context_dev/models/monitor_get_credit_usage_response.rbi +77 -3
  137. data/rbi/context_dev/models/monitor_get_limits_response.rbi +83 -10
  138. data/rbi/context_dev/models/monitor_list_account_changes_response.rbi +236 -24
  139. data/rbi/context_dev/models/monitor_list_account_runs_response.rbi +86 -12
  140. data/rbi/context_dev/models/monitor_list_changes_params.rbi +2 -0
  141. data/rbi/context_dev/models/monitor_list_changes_response.rbi +234 -24
  142. data/rbi/context_dev/models/monitor_list_params.rbi +4 -4
  143. data/rbi/context_dev/models/monitor_list_response.rbi +502 -130
  144. data/rbi/context_dev/models/monitor_list_runs_params.rbi +2 -0
  145. data/rbi/context_dev/models/monitor_list_runs_response.rbi +84 -12
  146. data/rbi/context_dev/models/monitor_retrieve_change_params.rbi +6 -1
  147. data/rbi/context_dev/models/monitor_retrieve_change_response.rbi +79 -15
  148. data/rbi/context_dev/models/monitor_retrieve_params.rbi +6 -1
  149. data/rbi/context_dev/models/monitor_retrieve_response.rbi +654 -283
  150. data/rbi/context_dev/models/monitor_retrieve_run_params.rbi +9 -1
  151. data/rbi/context_dev/models/monitor_retrieve_run_response.rbi +77 -9
  152. data/rbi/context_dev/models/monitor_rotate_webhook_secret_params.rbi +6 -1
  153. data/rbi/context_dev/models/monitor_rotate_webhook_secret_response.rbi +659 -288
  154. data/rbi/context_dev/models/monitor_run_params.rbi +6 -1
  155. data/rbi/context_dev/models/monitor_run_response.rbi +82 -9
  156. data/rbi/context_dev/models/monitor_update_params.rbi +420 -75
  157. data/rbi/context_dev/models/monitor_update_response.rbi +650 -281
  158. data/rbi/context_dev/models/news_search_params.rbi +10 -2
  159. data/rbi/context_dev/models/news_search_response.rbi +9 -9
  160. data/rbi/context_dev/models/parse_handle_params.rbi +10 -29
  161. data/rbi/context_dev/models/parse_handle_response.rbi +9 -9
  162. data/rbi/context_dev/models/person_enrich_params.rbi +86 -44
  163. data/rbi/context_dev/models/person_enrich_response.rbi +9 -9
  164. data/rbi/context_dev/models/utility_prefetch_params.rbi +15 -27
  165. data/rbi/context_dev/models/utility_prefetch_response.rbi +11 -11
  166. data/rbi/context_dev/models/web_answers_params.rbi +33 -63
  167. data/rbi/context_dev/models/web_answers_response.rbi +11 -9
  168. data/rbi/context_dev/models/web_extract_competitors_params.rbi +19 -42
  169. data/rbi/context_dev/models/web_extract_competitors_response.rbi +9 -9
  170. data/rbi/context_dev/models/web_extract_styleguide_params.rbi +25 -61
  171. data/rbi/context_dev/models/web_extract_styleguide_response.rbi +36 -51
  172. data/rbi/context_dev/models/web_map_urls_params.rbi +33 -68
  173. data/rbi/context_dev/models/web_map_urls_response.rbi +9 -9
  174. data/rbi/context_dev/models/web_scrape_params.rbi +212 -206
  175. data/rbi/context_dev/models/web_scrape_response.rbi +296 -120
  176. data/rbi/context_dev/models/web_screenshot_params.rbi +22 -51
  177. data/rbi/context_dev/models/web_screenshot_response.rbi +20 -35
  178. data/rbi/context_dev/models/web_search_params.rbi +114 -82
  179. data/rbi/context_dev/models/web_search_response.rbi +145 -33
  180. data/rbi/context_dev/models/web_web_crawl_md_params.rbi +45 -95
  181. data/rbi/context_dev/models/web_web_crawl_md_response.rbi +12 -18
  182. data/rbi/context_dev/models/webhook_delivery.rbi +3 -9
  183. data/rbi/context_dev/models/webhooks/attempt.rbi +3 -3
  184. data/rbi/context_dev/models/webhooks/delivery.rbi +14 -11
  185. data/rbi/context_dev/models/webhooks/delivery_list_attempts_params.rbi +2 -4
  186. data/rbi/context_dev/models/webhooks/delivery_list_attempts_response.rbi +9 -9
  187. data/rbi/context_dev/models/webhooks/delivery_list_params.rbi +4 -4
  188. data/rbi/context_dev/models/webhooks/delivery_list_response.rbi +9 -9
  189. data/rbi/context_dev/models/webhooks/delivery_retrieve_params.rbi +2 -4
  190. data/rbi/context_dev/models/webhooks/delivery_retrieve_response.rbi +9 -9
  191. data/rbi/context_dev/models/webhooks/delivery_retry_params.rbi +4 -4
  192. data/rbi/context_dev/models/webhooks/delivery_retry_response.rbi +9 -9
  193. data/rbi/context_dev/models/webhooks/delivery_summary.rbi +14 -11
  194. data/rbi/context_dev/resources/batch.rbi +19 -18
  195. data/rbi/context_dev/resources/brand.rbi +6 -9
  196. data/rbi/context_dev/resources/feedback.rbi +4 -5
  197. data/rbi/context_dev/resources/industry.rbi +11 -27
  198. data/rbi/context_dev/resources/logs.rbi +4 -5
  199. data/rbi/context_dev/resources/monitors.rbi +71 -49
  200. data/rbi/context_dev/resources/news.rbi +4 -8
  201. data/rbi/context_dev/resources/parse.rbi +7 -14
  202. data/rbi/context_dev/resources/people.rbi +15 -13
  203. data/rbi/context_dev/resources/utility.rbi +4 -11
  204. data/rbi/context_dev/resources/web.rbi +89 -190
  205. data/rbi/context_dev/resources/webhooks/deliveries.rbi +10 -12
  206. data/rbi/context_dev/resources/webhooks.rbi +1 -1
  207. data/sig/context_dev/models/log_retrieve_response.rbs +0 -28
  208. data/sig/context_dev/models/monitor_create_params.rbs +113 -0
  209. data/sig/context_dev/models/monitor_create_response.rbs +203 -53
  210. data/sig/context_dev/models/monitor_delete_response.rbs +46 -3
  211. data/sig/context_dev/models/monitor_get_credit_usage_response.rbs +36 -3
  212. data/sig/context_dev/models/monitor_get_limits_response.rbs +36 -3
  213. data/sig/context_dev/models/monitor_list_account_changes_response.rbs +111 -8
  214. data/sig/context_dev/models/monitor_list_account_runs_response.rbs +36 -3
  215. data/sig/context_dev/models/monitor_list_changes_response.rbs +111 -8
  216. data/sig/context_dev/models/monitor_list_response.rbs +149 -3
  217. data/sig/context_dev/models/monitor_list_runs_response.rbs +36 -3
  218. data/sig/context_dev/models/monitor_retrieve_change_response.rbs +33 -0
  219. data/sig/context_dev/models/monitor_retrieve_response.rbs +203 -53
  220. data/sig/context_dev/models/monitor_retrieve_run_response.rbs +33 -0
  221. data/sig/context_dev/models/monitor_rotate_webhook_secret_response.rbs +203 -53
  222. data/sig/context_dev/models/monitor_run_response.rbs +48 -3
  223. data/sig/context_dev/models/monitor_update_params.rbs +113 -0
  224. data/sig/context_dev/models/monitor_update_response.rbs +203 -53
  225. data/sig/context_dev/models/web_scrape_response.rbs +204 -27
  226. data/sig/context_dev/models/web_search_params.rbs +25 -0
  227. data/sig/context_dev/models/web_search_response.rbs +48 -0
  228. data/sig/context_dev/resources/web.rbs +1 -0
  229. metadata +2 -2
@@ -19,10 +19,32 @@ module ContextDev
19
19
  # @return [String, nil]
20
20
  required :next_cursor, String, nil?: true
21
21
 
22
- # @!method initialize(data:, has_more:, next_cursor:)
22
+ # @!attribute request_id
23
+ # Unique ID of this request, also in `X-Request-Id`. Include it when contacting
24
+ # support.
25
+ #
26
+ # @return [String]
27
+ required :request_id, String
28
+
29
+ # @!attribute key_metadata
30
+ # Credits this request used and your remaining balance.
31
+ #
32
+ # @return [ContextDev::Models::MonitorListResponse::KeyMetadata, nil]
33
+ optional :key_metadata, -> { ContextDev::Models::MonitorListResponse::KeyMetadata }
34
+
35
+ # @!method initialize(data:, has_more:, next_cursor:, request_id:, key_metadata: nil)
36
+ # Some parameter documentations has been truncated, see
37
+ # {ContextDev::Models::MonitorListResponse} for more details.
38
+ #
23
39
  # @param data [Array<ContextDev::Models::MonitorListResponse::Data>]
40
+ #
24
41
  # @param has_more [Boolean]
42
+ #
25
43
  # @param next_cursor [String, nil]
44
+ #
45
+ # @param request_id [String] Unique ID of this request, also in `X-Request-Id`. Include it when contacting su
46
+ #
47
+ # @param key_metadata [ContextDev::Models::MonitorListResponse::KeyMetadata] Credits this request used and your remaining balance.
26
48
 
27
49
  class Data < ContextDev::Internal::Type::BaseModel
28
50
  # @!attribute id
@@ -31,7 +53,8 @@ module ContextDev
31
53
  required :id, String
32
54
 
33
55
  # @!attribute change_detection
34
- # Discriminated union describing how changes are detected.
56
+ # How changes are judged. Defaults to `semantic` for extract targets and page
57
+ # targets with `instructions`, otherwise `exact`.
35
58
  #
36
59
  # @return [ContextDev::Models::MonitorListResponse::Data::ChangeDetection::Exact, ContextDev::Models::MonitorListResponse::Data::ChangeDetection::Semantic]
37
60
  required :change_detection, union: -> { ContextDev::Models::MonitorListResponse::Data::ChangeDetection }
@@ -42,8 +65,7 @@ module ContextDev
42
65
  required :created_at, Time
43
66
 
44
67
  # @!attribute mode
45
- # Top-level monitor category. Always `web` today; the concrete behavior is
46
- # described by `target` and `change_detection`.
68
+ # Always `web`. Optional.
47
69
  #
48
70
  # @return [Symbol, ContextDev::Models::MonitorListResponse::Data::Mode]
49
71
  required :mode, enum: -> { ContextDev::Models::MonitorListResponse::Data::Mode }
@@ -62,17 +84,14 @@ module ContextDev
62
84
  required :schedule, -> { ContextDev::Models::MonitorListResponse::Data::Schedule }
63
85
 
64
86
  # @!attribute status
65
- # Monitor lifecycle status. `failed` means the most recent run failed (see the
66
- # monitor's `last_error`); failed monitors keep running on schedule and flip back
67
- # to `active` on the next successful run. Monitors are auto-`paused` after
68
- # repeated consecutive failures or insufficient-credit skips; resume by PATCHing
69
- # status to `active`.
87
+ # Current state. Failed monitors keep running; paused monitors must be resumed
88
+ # with `status: "active"`.
70
89
  #
71
90
  # @return [Symbol, ContextDev::Models::MonitorListResponse::Data::Status]
72
91
  required :status, enum: -> { ContextDev::Models::MonitorListResponse::Data::Status }
73
92
 
74
93
  # @!attribute target
75
- # Discriminated union describing what the monitor watches.
94
+ # What to watch: a page, a sitemap, or data extracted from a site.
76
95
  #
77
96
  # @return [ContextDev::Models::MonitorListResponse::Data::Target::Page, ContextDev::Models::MonitorListResponse::Data::Target::Sitemap, ContextDev::Models::MonitorListResponse::Data::Target::Extract]
78
97
  required :target, union: -> { ContextDev::Models::MonitorListResponse::Data::Target }
@@ -83,10 +102,8 @@ module ContextDev
83
102
  required :updated_at, Time
84
103
 
85
104
  # @!attribute baseline
86
- # Current baseline: the last observed value the monitor compares new snapshots
87
- # against. Its shape follows `target.type` (page/sitemap/extract). Only populated
88
- # on GET /monitors/{monitor_id}; null until the first baseline run completes (and
89
- # after a target or change_detection update, which resets the baseline).
105
+ # Comparison baseline, included on Retrieve. Null until capture completes or after
106
+ # target changes.
90
107
  #
91
108
  # @return [ContextDev::Models::MonitorListResponse::Data::Baseline::MonitorsPageBaseline, ContextDev::Models::MonitorListResponse::Data::Baseline::MonitorsSitemapBaseline, ContextDev::Models::MonitorListResponse::Data::Baseline::MonitorsExtractBaseline, nil]
92
109
  optional :baseline, union: -> { ContextDev::Models::MonitorListResponse::Data::Baseline }, nil?: true
@@ -108,19 +125,19 @@ module ContextDev
108
125
  optional :last_run_at, Time, nil?: true
109
126
 
110
127
  # @!attribute next_run_at
111
- # When the next scheduled run is due.
128
+ # When the next scheduled run is due; null while paused.
112
129
  #
113
130
  # @return [Time, nil]
114
131
  optional :next_run_at, Time, nil?: true
115
132
 
116
133
  # @!attribute tags
117
- # User-defined tags for grouping and filtering monitors and their changes.
118
- # Duplicates are removed.
134
+ # Labels for filtering monitors, their changes, and their usage.
119
135
  #
120
136
  # @return [Array<String>, nil]
121
137
  optional :tags, ContextDev::Internal::Type::ArrayOf[String]
122
138
 
123
139
  # @!attribute webhook
140
+ # Webhook destination and delivery settings. Null means no webhook is configured.
124
141
  #
125
142
  # @return [ContextDev::Models::MonitorListResponse::Data::Webhook, nil]
126
143
  optional :webhook, -> { ContextDev::Models::MonitorListResponse::Data::Webhook }, nil?: true
@@ -144,23 +161,23 @@ module ContextDev
144
161
  #
145
162
  # @param id [String]
146
163
  #
147
- # @param change_detection [ContextDev::Models::MonitorListResponse::Data::ChangeDetection::Exact, ContextDev::Models::MonitorListResponse::Data::ChangeDetection::Semantic] Discriminated union describing how changes are detected.
164
+ # @param change_detection [ContextDev::Models::MonitorListResponse::Data::ChangeDetection::Exact, ContextDev::Models::MonitorListResponse::Data::ChangeDetection::Semantic] How changes are judged. Defaults to `semantic` for extract targets and page targ
148
165
  #
149
166
  # @param created_at [Time]
150
167
  #
151
- # @param mode [Symbol, ContextDev::Models::MonitorListResponse::Data::Mode] Top-level monitor category. Always `web` today; the concrete behavior is describ
168
+ # @param mode [Symbol, ContextDev::Models::MonitorListResponse::Data::Mode] Always `web`. Optional.
152
169
  #
153
170
  # @param name [String]
154
171
  #
155
172
  # @param schedule [ContextDev::Models::MonitorListResponse::Data::Schedule] Run the monitor on a fixed interval defined by a frequency and a unit, e.g. ever
156
173
  #
157
- # @param status [Symbol, ContextDev::Models::MonitorListResponse::Data::Status] Monitor lifecycle status. `failed` means the most recent run failed (see the mon
174
+ # @param status [Symbol, ContextDev::Models::MonitorListResponse::Data::Status] Current state. Failed monitors keep running; paused monitors must be resumed wit
158
175
  #
159
- # @param target [ContextDev::Models::MonitorListResponse::Data::Target::Page, ContextDev::Models::MonitorListResponse::Data::Target::Sitemap, ContextDev::Models::MonitorListResponse::Data::Target::Extract] Discriminated union describing what the monitor watches.
176
+ # @param target [ContextDev::Models::MonitorListResponse::Data::Target::Page, ContextDev::Models::MonitorListResponse::Data::Target::Sitemap, ContextDev::Models::MonitorListResponse::Data::Target::Extract] What to watch: a page, a sitemap, or data extracted from a site.
160
177
  #
161
178
  # @param updated_at [Time]
162
179
  #
163
- # @param baseline [ContextDev::Models::MonitorListResponse::Data::Baseline::MonitorsPageBaseline, ContextDev::Models::MonitorListResponse::Data::Baseline::MonitorsSitemapBaseline, ContextDev::Models::MonitorListResponse::Data::Baseline::MonitorsExtractBaseline, nil] Current baseline: the last observed value the monitor compares new snapshots aga
180
+ # @param baseline [ContextDev::Models::MonitorListResponse::Data::Baseline::MonitorsPageBaseline, ContextDev::Models::MonitorListResponse::Data::Baseline::MonitorsSitemapBaseline, ContextDev::Models::MonitorListResponse::Data::Baseline::MonitorsExtractBaseline, nil] Comparison baseline, included on Retrieve. Null until capture completes or after
164
181
  #
165
182
  # @param last_change_at [Time, nil]
166
183
  #
@@ -168,15 +185,16 @@ module ContextDev
168
185
  #
169
186
  # @param last_run_at [Time, nil]
170
187
  #
171
- # @param next_run_at [Time, nil] When the next scheduled run is due.
188
+ # @param next_run_at [Time, nil] When the next scheduled run is due; null while paused.
172
189
  #
173
- # @param tags [Array<String>] User-defined tags for grouping and filtering monitors and their changes. Duplica
190
+ # @param tags [Array<String>] Labels for filtering monitors, their changes, and their usage.
174
191
  #
175
- # @param webhook [ContextDev::Models::MonitorListResponse::Data::Webhook, nil]
192
+ # @param webhook [ContextDev::Models::MonitorListResponse::Data::Webhook, nil] Webhook destination and delivery settings. Null means no webhook is configured.
176
193
  #
177
194
  # @param webhook_failure [ContextDev::Models::MonitorListResponse::Data::WebhookFailure, nil] Present while webhook deliveries are failing consecutively; null when deliveries
178
195
 
179
- # Discriminated union describing how changes are detected.
196
+ # How changes are judged. Defaults to `semantic` for extract targets and page
197
+ # targets with `instructions`, otherwise `exact`.
180
198
  #
181
199
  # @see ContextDev::Models::MonitorListResponse::Data#change_detection
182
200
  module ChangeDetection
@@ -187,11 +205,12 @@ module ContextDev
187
205
  # Detect exact changes. For page targets, this means visible text diffs. For sitemap targets, this means URL additions and removals.
188
206
  variant :exact, -> { ContextDev::Models::MonitorListResponse::Data::ChangeDetection::Exact }
189
207
 
190
- # Detect meaning-level changes to page content, ignoring cosmetic or instruction-irrelevant differences. Which changes are meaningful is judged against the page or extract target's `instructions` (and an extract target's `schema`, when provided).
208
+ # Detect meaningful content changes using the target’s instructions and optional schema.
191
209
  variant :semantic, -> { ContextDev::Models::MonitorListResponse::Data::ChangeDetection::Semantic }
192
210
 
193
211
  class Exact < ContextDev::Internal::Type::BaseModel
194
212
  # @!attribute type
213
+ # Use `exact` to compare visible text or sitemap URLs.
195
214
  #
196
215
  # @return [Symbol, :exact]
197
216
  required :type, const: :exact
@@ -200,36 +219,36 @@ module ContextDev
200
219
  # Detect exact changes. For page targets, this means visible text diffs. For
201
220
  # sitemap targets, this means URL additions and removals.
202
221
  #
203
- # @param type [Symbol, :exact]
222
+ # @param type [Symbol, :exact] Use `exact` to compare visible text or sitemap URLs.
204
223
  end
205
224
 
206
225
  class Semantic < ContextDev::Internal::Type::BaseModel
207
226
  # @!attribute type
227
+ # Use `semantic` to judge changes against the target instructions.
208
228
  #
209
229
  # @return [Symbol, :semantic]
210
230
  required :type, const: :semantic
211
231
 
212
232
  # @!attribute confidence_threshold
233
+ # Minimum confidence required to report a meaningful change, from 0 to 1.
213
234
  #
214
235
  # @return [Float, nil]
215
236
  optional :confidence_threshold, Float
216
237
 
217
238
  # @!method initialize(confidence_threshold: nil, type: :semantic)
218
- # Detect meaning-level changes to page content, ignoring cosmetic or
219
- # instruction-irrelevant differences. Which changes are meaningful is judged
220
- # against the page or extract target's `instructions` (and an extract target's
221
- # `schema`, when provided).
239
+ # Detect meaningful content changes using the target’s instructions and optional
240
+ # schema.
222
241
  #
223
- # @param confidence_threshold [Float]
224
- # @param type [Symbol, :semantic]
242
+ # @param confidence_threshold [Float] Minimum confidence required to report a meaningful change, from 0 to 1.
243
+ #
244
+ # @param type [Symbol, :semantic] Use `semantic` to judge changes against the target instructions.
225
245
  end
226
246
 
227
247
  # @!method self.variants
228
248
  # @return [Array(ContextDev::Models::MonitorListResponse::Data::ChangeDetection::Exact, ContextDev::Models::MonitorListResponse::Data::ChangeDetection::Semantic)]
229
249
  end
230
250
 
231
- # Top-level monitor category. Always `web` today; the concrete behavior is
232
- # described by `target` and `change_detection`.
251
+ # Always `web`. Optional.
233
252
  #
234
253
  # @see ContextDev::Models::MonitorListResponse::Data#mode
235
254
  module Mode
@@ -252,11 +271,13 @@ module ContextDev
252
271
  required :frequency, Integer
253
272
 
254
273
  # @!attribute type
274
+ # Use `interval` to run on a repeating schedule.
255
275
  #
256
276
  # @return [Symbol, ContextDev::Models::MonitorListResponse::Data::Schedule::Type]
257
277
  required :type, enum: -> { ContextDev::Models::MonitorListResponse::Data::Schedule::Type }
258
278
 
259
279
  # @!attribute unit
280
+ # Time unit used with `frequency` to set the run interval.
260
281
  #
261
282
  # @return [Symbol, ContextDev::Models::MonitorListResponse::Data::Schedule::Unit]
262
283
  required :unit, enum: -> { ContextDev::Models::MonitorListResponse::Data::Schedule::Unit }
@@ -271,10 +292,12 @@ module ContextDev
271
292
  #
272
293
  # @param frequency [Integer] Number of units between runs. The resulting interval (frequency × unit) must be
273
294
  #
274
- # @param type [Symbol, ContextDev::Models::MonitorListResponse::Data::Schedule::Type]
295
+ # @param type [Symbol, ContextDev::Models::MonitorListResponse::Data::Schedule::Type] Use `interval` to run on a repeating schedule.
275
296
  #
276
- # @param unit [Symbol, ContextDev::Models::MonitorListResponse::Data::Schedule::Unit]
297
+ # @param unit [Symbol, ContextDev::Models::MonitorListResponse::Data::Schedule::Unit] Time unit used with `frequency` to set the run interval.
277
298
 
299
+ # Use `interval` to run on a repeating schedule.
300
+ #
278
301
  # @see ContextDev::Models::MonitorListResponse::Data::Schedule#type
279
302
  module Type
280
303
  extend ContextDev::Internal::Type::Enum
@@ -285,6 +308,8 @@ module ContextDev
285
308
  # @return [Array<Symbol>]
286
309
  end
287
310
 
311
+ # Time unit used with `frequency` to set the run interval.
312
+ #
288
313
  # @see ContextDev::Models::MonitorListResponse::Data::Schedule#unit
289
314
  module Unit
290
315
  extend ContextDev::Internal::Type::Enum
@@ -298,11 +323,8 @@ module ContextDev
298
323
  end
299
324
  end
300
325
 
301
- # Monitor lifecycle status. `failed` means the most recent run failed (see the
302
- # monitor's `last_error`); failed monitors keep running on schedule and flip back
303
- # to `active` on the next successful run. Monitors are auto-`paused` after
304
- # repeated consecutive failures or insufficient-credit skips; resume by PATCHing
305
- # status to `active`.
326
+ # Current state. Failed monitors keep running; paused monitors must be resumed
327
+ # with `status: "active"`.
306
328
  #
307
329
  # @see ContextDev::Models::MonitorListResponse::Data#status
308
330
  module Status
@@ -316,7 +338,7 @@ module ContextDev
316
338
  # @return [Array<Symbol>]
317
339
  end
318
340
 
319
- # Discriminated union describing what the monitor watches.
341
+ # What to watch: a page, a sitemap, or data extracted from a site.
320
342
  #
321
343
  # @see ContextDev::Models::MonitorListResponse::Data#target
322
344
  module Target
@@ -327,38 +349,44 @@ module ContextDev
327
349
  # Watch a single web page. Exact detection reports visible-text diffs; semantic detection judges confirmed stable diffs against `instructions`.
328
350
  variant :page, -> { ContextDev::Models::MonitorListResponse::Data::Target::Page }
329
351
 
330
- # Watch a sitemap for URL additions and removals. Crawled URLs are normalized (lowercased host, no trailing slash/fragment) and scoped to the monitored site and its subdomains before comparison. On a detected difference the sitemap is re-fetched within the same run and only URLs both observations agree on are reported, suppressing transient crawl flaps.
352
+ # Watch a site’s URL inventory for confirmed additions and removals.
331
353
  variant :sitemap, -> { ContextDev::Models::MonitorListResponse::Data::Target::Sitemap }
332
354
 
333
- # 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.
355
+ # Track relevant pages selected by `schema` and `instructions`; refresh the page set periodically.
334
356
  variant :extract, -> { ContextDev::Models::MonitorListResponse::Data::Target::Extract }
335
357
 
336
358
  class Page < ContextDev::Internal::Type::BaseModel
337
359
  # @!attribute type
360
+ # Use `page` to watch one web page.
338
361
  #
339
362
  # @return [Symbol, :page]
340
363
  required :type, const: :page
341
364
 
342
365
  # @!attribute url
366
+ # Public HTTP(S) page URL to monitor.
343
367
  #
344
368
  # @return [String]
345
369
  required :url, String
346
370
 
371
+ # @!attribute actions
372
+ # Optional browser actions executed in array order after the page loads, before
373
+ # content is captured, on every run. Requires a paid plan. Maximum: 5 actions.
374
+ # Changes create a new baseline.
375
+ #
376
+ # @return [Array<ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Wait, ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Perform, ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Scroll>, nil]
377
+ optional :actions,
378
+ -> { ContextDev::Internal::Type::ArrayOf[union: ContextDev::Models::MonitorListResponse::Data::Target::Page::Action] },
379
+ nil?: true
380
+
347
381
  # @!attribute exclude_selectors
348
- # CSS selectors for HTML regions to remove before text extraction. Applied after
349
- # include_selectors; exclusion takes precedence when an element matches both. Omit
350
- # or pass an empty array to apply no explicit exclusions. Changing these selectors
351
- # creates a new baseline.
382
+ # Remove matching regions after inclusions. Changes create a new baseline.
352
383
  #
353
384
  # @return [Array<String>, nil]
354
385
  optional :exclude_selectors, ContextDev::Internal::Type::ArrayOf[String]
355
386
 
356
387
  # @!attribute include_selectors
357
- # CSS selectors defining the HTML regions to monitor. Matching subtrees are
358
- # combined in document order before text extraction, instead of automatic
359
- # main-content selection. Omit or pass an empty array to use automatic
360
- # main-content extraction. If the filtered page has no usable text, the run fails
361
- # without replacing the baseline. Changing these selectors creates a new baseline.
388
+ # Monitor these CSS-selected regions. Empty or omitted uses main content. Changes
389
+ # create a new baseline.
362
390
  #
363
391
  # @return [Array<String>, nil]
364
392
  optional :include_selectors, ContextDev::Internal::Type::ArrayOf[String]
@@ -376,28 +404,195 @@ module ContextDev
376
404
  # @return [Boolean, nil]
377
405
  optional :normalize_whitespace, ContextDev::Internal::Type::Boolean
378
406
 
379
- # @!method initialize(url:, exclude_selectors: nil, include_selectors: nil, instructions: nil, normalize_whitespace: nil, type: :page)
407
+ # @!method initialize(url:, actions: nil, exclude_selectors: nil, include_selectors: nil, instructions: nil, normalize_whitespace: nil, type: :page)
380
408
  # Some parameter documentations has been truncated, see
381
409
  # {ContextDev::Models::MonitorListResponse::Data::Target::Page} for more details.
382
410
  #
383
411
  # Watch a single web page. Exact detection reports visible-text diffs; semantic
384
412
  # detection judges confirmed stable diffs against `instructions`.
385
413
  #
386
- # @param url [String]
414
+ # @param url [String] Public HTTP(S) page URL to monitor.
415
+ #
416
+ # @param actions [Array<ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Wait, ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Perform, ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Scroll>, nil] Optional browser actions executed in array order after the page loads, before co
387
417
  #
388
- # @param exclude_selectors [Array<String>] CSS selectors for HTML regions to remove before text extraction. Applied after i
418
+ # @param exclude_selectors [Array<String>] Remove matching regions after inclusions. Changes create a new baseline.
389
419
  #
390
- # @param include_selectors [Array<String>] CSS selectors defining the HTML regions to monitor. Matching subtrees are combin
420
+ # @param include_selectors [Array<String>] Monitor these CSS-selected regions. Empty or omitted uses main content. Changes
391
421
  #
392
422
  # @param instructions [String] Plain-language goal describing which page changes matter. When provided without
393
423
  #
394
424
  # @param normalize_whitespace [Boolean] Normalize whitespace before comparing or analyzing text.
395
425
  #
396
- # @param type [Symbol, :page]
426
+ # @param type [Symbol, :page] Use `page` to watch one web page.
427
+
428
+ # Browser action discriminated by `do`. Each variant exposes only its applicable
429
+ # fields.
430
+ module Action
431
+ extend ContextDev::Internal::Type::Union
432
+
433
+ discriminator :do
434
+
435
+ # Pause for a fixed number of milliseconds before continuing to the next action.
436
+ variant :wait, -> { ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Wait }
437
+
438
+ # Resolve and perform one natural-language browser action.
439
+ variant :perform, -> { ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Perform }
440
+
441
+ # Scroll the page or a selected scrollable container, waiting adaptively for content and dimensions to settle after each iteration.
442
+ variant :scroll, -> { ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Scroll }
443
+
444
+ class Wait < ContextDev::Internal::Type::BaseModel
445
+ # @!attribute do_
446
+ # Use `wait` to pause for a fixed duration.
447
+ #
448
+ # @return [Symbol, :wait]
449
+ required :do_, const: :wait, api_name: :do
450
+
451
+ # @!attribute time_ms
452
+ # Time to pause in milliseconds before the next action.
453
+ #
454
+ # @return [Integer]
455
+ required :time_ms, Integer, api_name: :timeMs
456
+
457
+ # @!method initialize(time_ms:, do_: :wait)
458
+ # Pause for a fixed number of milliseconds before continuing to the next action.
459
+ #
460
+ # @param time_ms [Integer] Time to pause in milliseconds before the next action.
461
+ #
462
+ # @param do_ [Symbol, :wait] Use `wait` to pause for a fixed duration.
463
+ end
464
+
465
+ class Perform < ContextDev::Internal::Type::BaseModel
466
+ # @!attribute action
467
+ # One browser instruction, such as clicking a button or entering text.
468
+ #
469
+ # @return [String]
470
+ required :action, String
471
+
472
+ # @!attribute do_
473
+ # Use `perform` for a plain-language browser instruction.
474
+ #
475
+ # @return [Symbol, :perform]
476
+ required :do_, const: :perform, api_name: :do
477
+
478
+ # @!method initialize(action:, do_: :perform)
479
+ # Resolve and perform one natural-language browser action.
480
+ #
481
+ # @param action [String] One browser instruction, such as clicking a button or entering text.
482
+ #
483
+ # @param do_ [Symbol, :perform] Use `perform` for a plain-language browser instruction.
484
+ end
485
+
486
+ class Scroll < ContextDev::Internal::Type::BaseModel
487
+ # @!attribute do_
488
+ # Use `scroll` to move through the page or a container.
489
+ #
490
+ # @return [Symbol, :scroll]
491
+ required :do_, const: :scroll, api_name: :do
492
+
493
+ # @!attribute amount
494
+ # Pixels per scroll, one visible viewport, or the current scroll boundary.
495
+ # Defaults to viewport.
496
+ #
497
+ # @return [Integer, Symbol, ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Scroll::Amount, nil]
498
+ optional :amount,
499
+ union: -> { ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Scroll::Amount }
500
+
501
+ # @!attribute container
502
+ # CSS selector for the first matching scroll container. Defaults to the page.
503
+ #
504
+ # @return [String, nil]
505
+ optional :container, String
506
+
507
+ # @!attribute direction
508
+ # Direction to scroll. Defaults to down.
509
+ #
510
+ # @return [Symbol, ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Scroll::Direction, nil]
511
+ optional :direction,
512
+ enum: -> { ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Scroll::Direction }
513
+
514
+ # @!attribute max_scrolls
515
+ # Maximum scroll iterations. Stops early when scrolling and scrollable extent stop
516
+ # changing. Defaults to 1.
517
+ #
518
+ # @return [Integer, nil]
519
+ optional :max_scrolls, Integer, api_name: :maxScrolls
520
+
521
+ # @!method initialize(amount: nil, container: nil, direction: nil, max_scrolls: nil, do_: :scroll)
522
+ # Some parameter documentations has been truncated, see
523
+ # {ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Scroll}
524
+ # for more details.
525
+ #
526
+ # Scroll the page or a selected scrollable container, waiting adaptively for
527
+ # content and dimensions to settle after each iteration.
528
+ #
529
+ # @param amount [Integer, Symbol, ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Scroll::Amount] Pixels per scroll, one visible viewport, or the current scroll boundary. Default
530
+ #
531
+ # @param container [String] CSS selector for the first matching scroll container. Defaults to the page.
532
+ #
533
+ # @param direction [Symbol, ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Scroll::Direction] Direction to scroll. Defaults to down.
534
+ #
535
+ # @param max_scrolls [Integer] Maximum scroll iterations. Stops early when scrolling and scrollable extent stop
536
+ #
537
+ # @param do_ [Symbol, :scroll] Use `scroll` to move through the page or a container.
538
+
539
+ # Pixels per scroll, one visible viewport, or the current scroll boundary.
540
+ # Defaults to viewport.
541
+ #
542
+ # @see ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Scroll#amount
543
+ module Amount
544
+ extend ContextDev::Internal::Type::Union
545
+
546
+ variant Integer
547
+
548
+ variant const: -> { ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Scroll::Amount::VIEWPORT }
549
+
550
+ variant const: -> { ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Scroll::Amount::MAX }
551
+
552
+ # @!method self.variants
553
+ # @return [Array(Integer, Symbol)]
554
+
555
+ define_sorbet_constant!(:Variants) do
556
+ T.type_alias do
557
+ T.any(
558
+ Integer,
559
+ ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Scroll::Amount::TaggedSymbol
560
+ )
561
+ end
562
+ end
563
+
564
+ # @!group
565
+
566
+ VIEWPORT = :viewport
567
+ MAX = :max
568
+
569
+ # @!endgroup
570
+ end
571
+
572
+ # Direction to scroll. Defaults to down.
573
+ #
574
+ # @see ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Scroll#direction
575
+ module Direction
576
+ extend ContextDev::Internal::Type::Enum
577
+
578
+ UP = :up
579
+ DOWN = :down
580
+ LEFT = :left
581
+ RIGHT = :right
582
+
583
+ # @!method self.values
584
+ # @return [Array<Symbol>]
585
+ end
586
+ end
587
+
588
+ # @!method self.variants
589
+ # @return [Array(ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Wait, ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Perform, ContextDev::Models::MonitorListResponse::Data::Target::Page::Action::Scroll)]
590
+ end
397
591
  end
398
592
 
399
593
  class Sitemap < ContextDev::Internal::Type::BaseModel
400
594
  # @!attribute type
595
+ # Use `sitemap` to watch a site for added or removed URLs.
401
596
  #
402
597
  # @return [Symbol, :sitemap]
403
598
  required :type, const: :sitemap
@@ -427,11 +622,7 @@ module ContextDev
427
622
  optional :max_urls, Integer
428
623
 
429
624
  # @!method initialize(url:, exclude: nil, include: nil, max_urls: nil, type: :sitemap)
430
- # Watch a sitemap for URL additions and removals. Crawled URLs are normalized
431
- # (lowercased host, no trailing slash/fragment) and scoped to the monitored site
432
- # and its subdomains before comparison. On a detected difference the sitemap is
433
- # re-fetched within the same run and only URLs both observations agree on are
434
- # reported, suppressing transient crawl flaps.
625
+ # Watch a site’s URL inventory for confirmed additions and removals.
435
626
  #
436
627
  # @param url [String] Sitemap URL to monitor.
437
628
  #
@@ -441,7 +632,7 @@ module ContextDev
441
632
  #
442
633
  # @param max_urls [Integer] Maximum number of sitemap URLs to track (capped at 10,000).
443
634
  #
444
- # @param type [Symbol, :sitemap]
635
+ # @param type [Symbol, :sitemap] Use `sitemap` to watch a site for added or removed URLs.
445
636
  end
446
637
 
447
638
  class Extract < ContextDev::Internal::Type::BaseModel
@@ -453,6 +644,7 @@ module ContextDev
453
644
  required :instructions, String
454
645
 
455
646
  # @!attribute type
647
+ # Use `extract` to watch structured data across selected pages.
456
648
  #
457
649
  # @return [Symbol, :extract]
458
650
  required :type, const: :extract
@@ -464,6 +656,7 @@ module ContextDev
464
656
  required :url, String
465
657
 
466
658
  # @!attribute follow_subdomains
659
+ # Allow page discovery on subdomains of the target site.
467
660
  #
468
661
  # @return [Boolean, nil]
469
662
  optional :follow_subdomains, ContextDev::Internal::Type::Boolean
@@ -481,14 +674,8 @@ module ContextDev
481
674
  optional :max_pages, Integer
482
675
 
483
676
  # @!attribute schema
484
- # JSON Schema describing the data you care about. It is used three ways: it guides
485
- # which pages are selected for tracking, it gives the change judge extra context
486
- # on which changes matter (alongside `instructions`), and it defines the shape of
487
- # the baseline `data` snapshot on GET /monitors/{monitor_id} (refreshed at most
488
- # about once a day). It is not a response format for changes: change events and
489
- # webhook payloads always contain diffs, summaries, and evidence excerpts — never
490
- # data in this schema's shape. If omitted, a default summary + key-points schema
491
- # is used.
677
+ # JSON Schema for page selection and the baseline snapshot. Changes return diffs
678
+ # and evidence.
492
679
  #
493
680
  # @return [Hash{Symbol=>Object}, nil]
494
681
  optional :schema, ContextDev::Internal::Type::HashOf[ContextDev::Internal::Type::Unknown]
@@ -498,35 +685,30 @@ module ContextDev
498
685
  # {ContextDev::Models::MonitorListResponse::Data::Target::Extract} for more
499
686
  # details.
500
687
  #
501
- # Watch the monitor-relevant pages of a site for meaningful changes. A crawl
502
- # guided by `schema`/`instructions` selects up to `max_pages` relevant pages to
503
- # track; each run re-checks exactly those pages, and confirmed content changes are
504
- # judged for relevance against the monitor's `instructions` (and `schema`, when
505
- # provided). The tracked page set is refreshed by a periodic re-discovery crawl.
688
+ # Track relevant pages selected by `schema` and `instructions`; refresh the page
689
+ # set periodically.
506
690
  #
507
691
  # @param instructions [String] Natural-language instructions guiding which pages and facts to track and which c
508
692
  #
509
693
  # @param url [String] Root URL to extract structured data from.
510
694
  #
511
- # @param follow_subdomains [Boolean]
695
+ # @param follow_subdomains [Boolean] Allow page discovery on subdomains of the target site.
512
696
  #
513
697
  # @param max_depth [Integer] Optional maximum link depth from the starting URL (0 = only the starting page).
514
698
  #
515
699
  # @param max_pages [Integer] Maximum number of pages to track.
516
700
  #
517
- # @param schema [Hash{Symbol=>Object}] JSON Schema describing the data you care about. It is used three ways: it guides
701
+ # @param schema [Hash{Symbol=>Object}] JSON Schema for page selection and the baseline snapshot. Changes return diffs a
518
702
  #
519
- # @param type [Symbol, :extract]
703
+ # @param type [Symbol, :extract] Use `extract` to watch structured data across selected pages.
520
704
  end
521
705
 
522
706
  # @!method self.variants
523
707
  # @return [Array(ContextDev::Models::MonitorListResponse::Data::Target::Page, ContextDev::Models::MonitorListResponse::Data::Target::Sitemap, ContextDev::Models::MonitorListResponse::Data::Target::Extract)]
524
708
  end
525
709
 
526
- # Current baseline: the last observed value the monitor compares new snapshots
527
- # against. Its shape follows `target.type` (page/sitemap/extract). Only populated
528
- # on GET /monitors/{monitor_id}; null until the first baseline run completes (and
529
- # after a target or change_detection update, which resets the baseline).
710
+ # Comparison baseline, included on Retrieve. Null until capture completes or after
711
+ # target changes.
530
712
  #
531
713
  # @see ContextDev::Models::MonitorListResponse::Data#baseline
532
714
  module Baseline
@@ -600,10 +782,8 @@ module ContextDev
600
782
  required :captured_at, Time
601
783
 
602
784
  # @!attribute data
603
- # The extracted structured data, matching the monitor's extraction schema (same
604
- # shape as the /web/extract endpoint's `data`). Refreshed when the monitor
605
- # re-discovers its page set (at most about once a day); `null` when no extraction
606
- # has been captured yet.
785
+ # Latest structured snapshot matching the extraction schema, refreshed at most
786
+ # daily; `null` before capture.
607
787
  #
608
788
  # @return [Object]
609
789
  required :data, ContextDev::Internal::Type::Unknown
@@ -624,7 +804,7 @@ module ContextDev
624
804
  #
625
805
  # @param captured_at [Time] When this baseline was last captured or replaced.
626
806
  #
627
- # @param data [Object] The extracted structured data, matching the monitor's extraction schema (same sh
807
+ # @param data [Object] Latest structured snapshot matching the extraction schema, refreshed at most dai
628
808
  #
629
809
  # @param urls_analyzed [Array<String>] The page URLs the monitor tracks and analyzes for changes.
630
810
  end
@@ -655,17 +835,15 @@ module ContextDev
655
835
  # @see ContextDev::Models::MonitorListResponse::Data#webhook
656
836
  class Webhook < ContextDev::Internal::Type::BaseModel
657
837
  # @!attribute url
658
- # Webhook URL events are delivered to. Slack incoming webhook URLs are
659
- # automatically formatted as Slack messages.
838
+ # Public HTTP(S) URL that receives events. Slack and GovSlack URLs get formatted
839
+ # messages.
660
840
  #
661
841
  # @return [String]
662
842
  required :url, String
663
843
 
664
844
  # @!attribute events
665
- # Events delivered to this endpoint. `change.detected` fires only when a run
666
- # detects a change; `run.completed` fires on every completed run — including runs
667
- # that detected no change — and embeds the change when one was detected. Defaults
668
- # to `["change.detected"]` when omitted.
845
+ # Events to deliver. Defaults to `change.detected`; `run.completed` also includes
846
+ # unchanged runs.
669
847
  #
670
848
  # @return [Array<Symbol, ContextDev::Models::MonitorListResponse::Data::Webhook::Event>, nil]
671
849
  optional :events,
@@ -679,12 +857,8 @@ module ContextDev
679
857
 
680
858
  response_only do
681
859
  # @!attribute secret
682
- # Signing secret used to verify webhook authenticity. Omitted unless the API key
683
- # has monitors:write permission or full access. Each delivery includes an
684
- # `X-Context-Signature: t=<unix>,v1=<hmac>` header, where the HMAC is SHA-256 over
685
- # `"{t}.{rawRequestBody}"` keyed by this secret. Recompute it with a constant-time
686
- # compare and reject stale timestamps to prevent replay. Generated by the API;
687
- # cannot be set by clients.
860
+ # API-generated signing secret. Visible only with full access or `monitors:write`
861
+ # permission.
688
862
  #
689
863
  # @return [String, nil]
690
864
  optional :secret, String
@@ -694,13 +868,15 @@ module ContextDev
694
868
  # Some parameter documentations has been truncated, see
695
869
  # {ContextDev::Models::MonitorListResponse::Data::Webhook} for more details.
696
870
  #
697
- # @param url [String] Webhook URL events are delivered to. Slack incoming webhook URLs are automatical
871
+ # Webhook destination and delivery settings. Null means no webhook is configured.
698
872
  #
699
- # @param events [Array<Symbol, ContextDev::Models::MonitorListResponse::Data::Webhook::Event>] Events delivered to this endpoint. `change.detected` fires only when a run detec
873
+ # @param url [String] Public HTTP(S) URL that receives events. Slack and GovSlack URLs get formatted m
874
+ #
875
+ # @param events [Array<Symbol, ContextDev::Models::MonitorListResponse::Data::Webhook::Event>] Events to deliver. Defaults to `change.detected`; `run.completed` also includes
700
876
  #
701
877
  # @param retry_ [ContextDev::Models::RetryConfig] Webhook retry settings. Use {} for the default schedule.
702
878
  #
703
- # @param secret [String] Signing secret used to verify webhook authenticity. Omitted unless the API key h
879
+ # @param secret [String] API-generated signing secret. Visible only with full access or `monitors:write`
704
880
 
705
881
  module Event
706
882
  extend ContextDev::Internal::Type::Enum
@@ -775,6 +951,28 @@ module ContextDev
775
951
  end
776
952
  end
777
953
  end
954
+
955
+ # @see ContextDev::Models::MonitorListResponse#key_metadata
956
+ class KeyMetadata < ContextDev::Internal::Type::BaseModel
957
+ # @!attribute credits_consumed
958
+ # Credits charged for this request.
959
+ #
960
+ # @return [Integer]
961
+ required :credits_consumed, Integer
962
+
963
+ # @!attribute credits_remaining
964
+ # Credits remaining for your organization.
965
+ #
966
+ # @return [Integer]
967
+ required :credits_remaining, Integer
968
+
969
+ # @!method initialize(credits_consumed:, credits_remaining:)
970
+ # Credits this request used and your remaining balance.
971
+ #
972
+ # @param credits_consumed [Integer] Credits charged for this request.
973
+ #
974
+ # @param credits_remaining [Integer] Credits remaining for your organization.
975
+ end
778
976
  end
779
977
  end
780
978
  end