@buildinternet/releases-api-types 0.59.0 → 0.60.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 (126) hide show
  1. package/README.md +14 -6
  2. package/dist/api-types.d.ts +1168 -0
  3. package/dist/api-types.d.ts.map +1 -0
  4. package/dist/api-types.js +134 -0
  5. package/dist/schemas/account-profile.d.ts +29 -0
  6. package/dist/schemas/account-profile.d.ts.map +1 -0
  7. package/dist/schemas/account-profile.js +24 -0
  8. package/dist/schemas/ai-models.d.ts +67 -0
  9. package/dist/schemas/ai-models.d.ts.map +1 -0
  10. package/{src/schemas/ai-models.ts → dist/schemas/ai-models.js} +25 -31
  11. package/dist/schemas/api-keys.d.ts +71 -0
  12. package/dist/schemas/api-keys.d.ts.map +1 -0
  13. package/dist/schemas/api-keys.js +32 -0
  14. package/dist/schemas/classifications.d.ts +134 -0
  15. package/dist/schemas/classifications.d.ts.map +1 -0
  16. package/dist/schemas/classifications.js +96 -0
  17. package/dist/schemas/collections.d.ts +605 -0
  18. package/dist/schemas/collections.d.ts.map +1 -0
  19. package/dist/schemas/collections.js +320 -0
  20. package/dist/schemas/datasets.d.ts +34 -0
  21. package/dist/schemas/datasets.d.ts.map +1 -0
  22. package/dist/schemas/datasets.js +11 -0
  23. package/dist/schemas/errors.d.ts +43 -0
  24. package/dist/schemas/errors.d.ts.map +1 -0
  25. package/dist/schemas/errors.js +61 -0
  26. package/dist/schemas/feedback.d.ts +134 -0
  27. package/dist/schemas/feedback.d.ts.map +1 -0
  28. package/dist/schemas/feedback.js +76 -0
  29. package/dist/schemas/follows.d.ts +154 -0
  30. package/dist/schemas/follows.d.ts.map +1 -0
  31. package/dist/schemas/follows.js +42 -0
  32. package/dist/schemas/listing.d.ts +374 -0
  33. package/dist/schemas/listing.d.ts.map +1 -0
  34. package/dist/schemas/listing.js +175 -0
  35. package/dist/schemas/lookups.d.ts +285 -0
  36. package/dist/schemas/lookups.d.ts.map +1 -0
  37. package/{src/schemas/lookups.ts → dist/schemas/lookups.js} +67 -80
  38. package/dist/schemas/marketing-classifier.d.ts +32 -0
  39. package/dist/schemas/marketing-classifier.d.ts.map +1 -0
  40. package/{src/schemas/marketing-classifier.ts → dist/schemas/marketing-classifier.js} +14 -18
  41. package/dist/schemas/orgs.d.ts +950 -0
  42. package/dist/schemas/orgs.d.ts.map +1 -0
  43. package/dist/schemas/orgs.js +473 -0
  44. package/dist/schemas/overviews.d.ts +205 -0
  45. package/dist/schemas/overviews.d.ts.map +1 -0
  46. package/{src/schemas/overviews.ts → dist/schemas/overviews.js} +41 -54
  47. package/dist/schemas/products.d.ts +595 -0
  48. package/dist/schemas/products.d.ts.map +1 -0
  49. package/{src/schemas/products.ts → dist/schemas/products.js} +113 -136
  50. package/dist/schemas/publish-tokens.d.ts +55 -0
  51. package/dist/schemas/publish-tokens.d.ts.map +1 -0
  52. package/{src/schemas/publish-tokens.ts → dist/schemas/publish-tokens.js} +18 -29
  53. package/dist/schemas/recommendations.d.ts +52 -0
  54. package/dist/schemas/recommendations.d.ts.map +1 -0
  55. package/dist/schemas/recommendations.js +58 -0
  56. package/dist/schemas/related.d.ts +331 -0
  57. package/dist/schemas/related.d.ts.map +1 -0
  58. package/dist/schemas/related.js +115 -0
  59. package/dist/schemas/releases.d.ts +623 -0
  60. package/dist/schemas/releases.d.ts.map +1 -0
  61. package/dist/schemas/releases.js +414 -0
  62. package/dist/schemas/resolve.d.ts +259 -0
  63. package/dist/schemas/resolve.d.ts.map +1 -0
  64. package/{src/schemas/resolve.ts → dist/schemas/resolve.js} +2 -5
  65. package/dist/schemas/search.d.ts +475 -0
  66. package/dist/schemas/search.d.ts.map +1 -0
  67. package/dist/schemas/search.js +258 -0
  68. package/dist/schemas/semantic-alert-summary.d.ts +54 -0
  69. package/dist/schemas/semantic-alert-summary.d.ts.map +1 -0
  70. package/dist/schemas/semantic-alert-summary.js +57 -0
  71. package/dist/schemas/semantic-alerts.d.ts +41 -0
  72. package/dist/schemas/semantic-alerts.d.ts.map +1 -0
  73. package/dist/schemas/semantic-alerts.js +42 -0
  74. package/dist/schemas/shared.d.ts +247 -0
  75. package/dist/schemas/shared.d.ts.map +1 -0
  76. package/dist/schemas/shared.js +248 -0
  77. package/dist/schemas/site-notice.d.ts +35 -0
  78. package/dist/schemas/site-notice.d.ts.map +1 -0
  79. package/{src/schemas/site-notice.ts → dist/schemas/site-notice.js} +14 -18
  80. package/dist/schemas/sitemap.d.ts +97 -0
  81. package/dist/schemas/sitemap.d.ts.map +1 -0
  82. package/dist/schemas/sitemap.js +107 -0
  83. package/dist/schemas/sources.d.ts +1145 -0
  84. package/dist/schemas/sources.d.ts.map +1 -0
  85. package/dist/schemas/sources.js +645 -0
  86. package/dist/schemas/stats.d.ts +82 -0
  87. package/dist/schemas/stats.d.ts.map +1 -0
  88. package/dist/schemas/stats.js +59 -0
  89. package/dist/schemas/taxonomy.d.ts +344 -0
  90. package/dist/schemas/taxonomy.d.ts.map +1 -0
  91. package/{src/schemas/taxonomy.ts → dist/schemas/taxonomy.js} +47 -58
  92. package/dist/schemas/webhooks.d.ts +618 -0
  93. package/dist/schemas/webhooks.d.ts.map +1 -0
  94. package/dist/schemas/webhooks.js +191 -0
  95. package/dist/schemas/well-known.d.ts +302 -0
  96. package/dist/schemas/well-known.d.ts.map +1 -0
  97. package/dist/schemas/well-known.js +192 -0
  98. package/dist/schemas/workspace-integrations.d.ts +27 -0
  99. package/dist/schemas/workspace-integrations.d.ts.map +1 -0
  100. package/dist/schemas/workspace-integrations.js +22 -0
  101. package/package.json +16 -5
  102. package/src/api-types.ts +0 -2229
  103. package/src/schemas/account-profile.ts +0 -28
  104. package/src/schemas/ai-models.test.ts +0 -29
  105. package/src/schemas/classifications.ts +0 -109
  106. package/src/schemas/collections.ts +0 -346
  107. package/src/schemas/datasets.ts +0 -31
  108. package/src/schemas/errors.test.ts +0 -55
  109. package/src/schemas/errors.ts +0 -81
  110. package/src/schemas/feedback.ts +0 -56
  111. package/src/schemas/listing.ts +0 -226
  112. package/src/schemas/orgs.ts +0 -533
  113. package/src/schemas/recommendations.ts +0 -39
  114. package/src/schemas/related.ts +0 -126
  115. package/src/schemas/releases.ts +0 -449
  116. package/src/schemas/search.ts +0 -274
  117. package/src/schemas/semantic-alert-summary.ts +0 -65
  118. package/src/schemas/shared.notice.test.ts +0 -36
  119. package/src/schemas/shared.ts +0 -267
  120. package/src/schemas/site-notice.test.ts +0 -67
  121. package/src/schemas/sitemap.ts +0 -117
  122. package/src/schemas/sources.ts +0 -674
  123. package/src/schemas/stats.ts +0 -62
  124. package/src/schemas/well-known.test.ts +0 -264
  125. package/src/schemas/well-known.ts +0 -252
  126. package/src/schemas/workspace-integrations.ts +0 -26
@@ -0,0 +1,1145 @@
1
+ import { z } from "zod";
2
+ export declare const SourceTypeSchema: z.ZodEnum<{
3
+ agent: "agent";
4
+ appstore: "appstore";
5
+ feed: "feed";
6
+ github: "github";
7
+ scrape: "scrape";
8
+ video: "video";
9
+ }>;
10
+ export declare const SourceDiscoverySchema: z.ZodEnum<{
11
+ agent: "agent";
12
+ curated: "curated";
13
+ on_demand: "on_demand";
14
+ }>;
15
+ export declare const SourceFetchPrioritySchema: z.ZodEnum<{
16
+ low: "low";
17
+ normal: "normal";
18
+ paused: "paused";
19
+ }>;
20
+ /**
21
+ * Per-source row used in list/embedded contexts (e.g. nested inside OrgDetail).
22
+ * Most fields are optional — embedded shapes (org detail) only carry the
23
+ * subset needed for that view.
24
+ */
25
+ export declare const SourceListItemSchema: z.ZodObject<{
26
+ id: z.ZodOptional<z.ZodString>;
27
+ slug: z.ZodString;
28
+ name: z.ZodString;
29
+ type: z.ZodEnum<{
30
+ agent: "agent";
31
+ appstore: "appstore";
32
+ feed: "feed";
33
+ github: "github";
34
+ scrape: "scrape";
35
+ video: "video";
36
+ }>;
37
+ url: z.ZodOptional<z.ZodString>;
38
+ orgSlug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
39
+ releaseCount: z.ZodNumber;
40
+ latestVersion: z.ZodNullable<z.ZodString>;
41
+ latestDate: z.ZodNullable<z.ZodString>;
42
+ latestAddedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
43
+ isPrimary: z.ZodOptional<z.ZodBoolean>;
44
+ isHidden: z.ZodOptional<z.ZodBoolean>;
45
+ discovery: z.ZodOptional<z.ZodEnum<{
46
+ agent: "agent";
47
+ curated: "curated";
48
+ on_demand: "on_demand";
49
+ }>>;
50
+ fetchPriority: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
51
+ low: "low";
52
+ normal: "normal";
53
+ paused: "paused";
54
+ }>>>;
55
+ lastFetchedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
56
+ lastPolledAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
57
+ changeDetectedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
58
+ consecutiveNoChange: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
59
+ consecutiveErrors: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
60
+ nextFetchAfter: z.ZodOptional<z.ZodNullable<z.ZodString>>;
61
+ medianGapDays: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
62
+ lastRetieredAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
63
+ metadata: z.ZodOptional<z.ZodNullable<z.ZodString>>;
64
+ productName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
65
+ productSlug: z.ZodOptional<z.ZodNullable<z.ZodString>>;
66
+ kind: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
67
+ desktop: "desktop";
68
+ docs: "docs";
69
+ integration: "integration";
70
+ mobile: "mobile";
71
+ platform: "platform";
72
+ sdk: "sdk";
73
+ tool: "tool";
74
+ }>>>;
75
+ stars: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
76
+ starsFetchedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
77
+ }, z.core.$strip>;
78
+ /**
79
+ * Canonical row returned by `GET /v1/sources` (list). Superset of
80
+ * `SourceListItem` with required `id` / `orgName` / `orgSlug` fields used by
81
+ * the CLI `list` command.
82
+ */
83
+ export declare const SourceWithOrgSchema: z.ZodObject<{
84
+ id: z.ZodString;
85
+ name: z.ZodString;
86
+ slug: z.ZodString;
87
+ type: z.ZodEnum<{
88
+ agent: "agent";
89
+ appstore: "appstore";
90
+ feed: "feed";
91
+ github: "github";
92
+ scrape: "scrape";
93
+ video: "video";
94
+ }>;
95
+ url: z.ZodString;
96
+ orgName: z.ZodNullable<z.ZodString>;
97
+ orgSlug: z.ZodNullable<z.ZodString>;
98
+ productName: z.ZodNullable<z.ZodString>;
99
+ productSlug: z.ZodNullable<z.ZodString>;
100
+ isPrimary: z.ZodBoolean;
101
+ isHidden: z.ZodNullable<z.ZodBoolean>;
102
+ discovery: z.ZodOptional<z.ZodEnum<{
103
+ agent: "agent";
104
+ curated: "curated";
105
+ on_demand: "on_demand";
106
+ }>>;
107
+ metadata: z.ZodNullable<z.ZodString>;
108
+ releaseCount: z.ZodNumber;
109
+ latestVersion: z.ZodNullable<z.ZodString>;
110
+ latestDate: z.ZodNullable<z.ZodString>;
111
+ lastFetchedAt: z.ZodNullable<z.ZodString>;
112
+ lastPolledAt: z.ZodNullable<z.ZodString>;
113
+ fetchPriority: z.ZodNullable<z.ZodEnum<{
114
+ low: "low";
115
+ normal: "normal";
116
+ paused: "paused";
117
+ }>>;
118
+ changeDetectedAt: z.ZodNullable<z.ZodString>;
119
+ consecutiveNoChange: z.ZodNullable<z.ZodNumber>;
120
+ consecutiveErrors: z.ZodNullable<z.ZodNumber>;
121
+ nextFetchAfter: z.ZodNullable<z.ZodString>;
122
+ medianGapDays: z.ZodNullable<z.ZodNumber>;
123
+ lastRetieredAt: z.ZodNullable<z.ZodString>;
124
+ kind: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
125
+ desktop: "desktop";
126
+ docs: "docs";
127
+ integration: "integration";
128
+ mobile: "mobile";
129
+ platform: "platform";
130
+ sdk: "sdk";
131
+ tool: "tool";
132
+ }>>>;
133
+ stars: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
134
+ starsFetchedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
135
+ }, z.core.$strip>;
136
+ export declare const SourceListResponseSchema: z.ZodObject<{
137
+ items: z.ZodArray<z.ZodObject<{
138
+ id: z.ZodString;
139
+ name: z.ZodString;
140
+ slug: z.ZodString;
141
+ type: z.ZodEnum<{
142
+ agent: "agent";
143
+ appstore: "appstore";
144
+ feed: "feed";
145
+ github: "github";
146
+ scrape: "scrape";
147
+ video: "video";
148
+ }>;
149
+ url: z.ZodString;
150
+ orgName: z.ZodNullable<z.ZodString>;
151
+ orgSlug: z.ZodNullable<z.ZodString>;
152
+ productName: z.ZodNullable<z.ZodString>;
153
+ productSlug: z.ZodNullable<z.ZodString>;
154
+ isPrimary: z.ZodBoolean;
155
+ isHidden: z.ZodNullable<z.ZodBoolean>;
156
+ discovery: z.ZodOptional<z.ZodEnum<{
157
+ agent: "agent";
158
+ curated: "curated";
159
+ on_demand: "on_demand";
160
+ }>>;
161
+ metadata: z.ZodNullable<z.ZodString>;
162
+ releaseCount: z.ZodNumber;
163
+ latestVersion: z.ZodNullable<z.ZodString>;
164
+ latestDate: z.ZodNullable<z.ZodString>;
165
+ lastFetchedAt: z.ZodNullable<z.ZodString>;
166
+ lastPolledAt: z.ZodNullable<z.ZodString>;
167
+ fetchPriority: z.ZodNullable<z.ZodEnum<{
168
+ low: "low";
169
+ normal: "normal";
170
+ paused: "paused";
171
+ }>>;
172
+ changeDetectedAt: z.ZodNullable<z.ZodString>;
173
+ consecutiveNoChange: z.ZodNullable<z.ZodNumber>;
174
+ consecutiveErrors: z.ZodNullable<z.ZodNumber>;
175
+ nextFetchAfter: z.ZodNullable<z.ZodString>;
176
+ medianGapDays: z.ZodNullable<z.ZodNumber>;
177
+ lastRetieredAt: z.ZodNullable<z.ZodString>;
178
+ kind: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
179
+ desktop: "desktop";
180
+ docs: "docs";
181
+ integration: "integration";
182
+ mobile: "mobile";
183
+ platform: "platform";
184
+ sdk: "sdk";
185
+ tool: "tool";
186
+ }>>>;
187
+ stars: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
188
+ starsFetchedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
189
+ }, z.core.$strip>>;
190
+ pagination: z.ZodObject<{
191
+ page: z.ZodNumber;
192
+ pageSize: z.ZodNumber;
193
+ returned: z.ZodNumber;
194
+ totalItems: z.ZodOptional<z.ZodNumber>;
195
+ totalPages: z.ZodOptional<z.ZodNumber>;
196
+ hasMore: z.ZodBoolean;
197
+ }, z.core.$strip>;
198
+ }, z.core.$strip>;
199
+ /**
200
+ * `GET /v1/sources` returns a bare array by default and an envelope when
201
+ * `?envelope=true` is passed. The OpenAPI spec advertises the union so
202
+ * either client expectation is documented.
203
+ */
204
+ export declare const SourceListResultSchema: z.ZodUnion<readonly [z.ZodArray<z.ZodObject<{
205
+ id: z.ZodString;
206
+ name: z.ZodString;
207
+ slug: z.ZodString;
208
+ type: z.ZodEnum<{
209
+ agent: "agent";
210
+ appstore: "appstore";
211
+ feed: "feed";
212
+ github: "github";
213
+ scrape: "scrape";
214
+ video: "video";
215
+ }>;
216
+ url: z.ZodString;
217
+ orgName: z.ZodNullable<z.ZodString>;
218
+ orgSlug: z.ZodNullable<z.ZodString>;
219
+ productName: z.ZodNullable<z.ZodString>;
220
+ productSlug: z.ZodNullable<z.ZodString>;
221
+ isPrimary: z.ZodBoolean;
222
+ isHidden: z.ZodNullable<z.ZodBoolean>;
223
+ discovery: z.ZodOptional<z.ZodEnum<{
224
+ agent: "agent";
225
+ curated: "curated";
226
+ on_demand: "on_demand";
227
+ }>>;
228
+ metadata: z.ZodNullable<z.ZodString>;
229
+ releaseCount: z.ZodNumber;
230
+ latestVersion: z.ZodNullable<z.ZodString>;
231
+ latestDate: z.ZodNullable<z.ZodString>;
232
+ lastFetchedAt: z.ZodNullable<z.ZodString>;
233
+ lastPolledAt: z.ZodNullable<z.ZodString>;
234
+ fetchPriority: z.ZodNullable<z.ZodEnum<{
235
+ low: "low";
236
+ normal: "normal";
237
+ paused: "paused";
238
+ }>>;
239
+ changeDetectedAt: z.ZodNullable<z.ZodString>;
240
+ consecutiveNoChange: z.ZodNullable<z.ZodNumber>;
241
+ consecutiveErrors: z.ZodNullable<z.ZodNumber>;
242
+ nextFetchAfter: z.ZodNullable<z.ZodString>;
243
+ medianGapDays: z.ZodNullable<z.ZodNumber>;
244
+ lastRetieredAt: z.ZodNullable<z.ZodString>;
245
+ kind: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
246
+ desktop: "desktop";
247
+ docs: "docs";
248
+ integration: "integration";
249
+ mobile: "mobile";
250
+ platform: "platform";
251
+ sdk: "sdk";
252
+ tool: "tool";
253
+ }>>>;
254
+ stars: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
255
+ starsFetchedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
256
+ }, z.core.$strip>>, z.ZodObject<{
257
+ items: z.ZodArray<z.ZodObject<{
258
+ id: z.ZodString;
259
+ name: z.ZodString;
260
+ slug: z.ZodString;
261
+ type: z.ZodEnum<{
262
+ agent: "agent";
263
+ appstore: "appstore";
264
+ feed: "feed";
265
+ github: "github";
266
+ scrape: "scrape";
267
+ video: "video";
268
+ }>;
269
+ url: z.ZodString;
270
+ orgName: z.ZodNullable<z.ZodString>;
271
+ orgSlug: z.ZodNullable<z.ZodString>;
272
+ productName: z.ZodNullable<z.ZodString>;
273
+ productSlug: z.ZodNullable<z.ZodString>;
274
+ isPrimary: z.ZodBoolean;
275
+ isHidden: z.ZodNullable<z.ZodBoolean>;
276
+ discovery: z.ZodOptional<z.ZodEnum<{
277
+ agent: "agent";
278
+ curated: "curated";
279
+ on_demand: "on_demand";
280
+ }>>;
281
+ metadata: z.ZodNullable<z.ZodString>;
282
+ releaseCount: z.ZodNumber;
283
+ latestVersion: z.ZodNullable<z.ZodString>;
284
+ latestDate: z.ZodNullable<z.ZodString>;
285
+ lastFetchedAt: z.ZodNullable<z.ZodString>;
286
+ lastPolledAt: z.ZodNullable<z.ZodString>;
287
+ fetchPriority: z.ZodNullable<z.ZodEnum<{
288
+ low: "low";
289
+ normal: "normal";
290
+ paused: "paused";
291
+ }>>;
292
+ changeDetectedAt: z.ZodNullable<z.ZodString>;
293
+ consecutiveNoChange: z.ZodNullable<z.ZodNumber>;
294
+ consecutiveErrors: z.ZodNullable<z.ZodNumber>;
295
+ nextFetchAfter: z.ZodNullable<z.ZodString>;
296
+ medianGapDays: z.ZodNullable<z.ZodNumber>;
297
+ lastRetieredAt: z.ZodNullable<z.ZodString>;
298
+ kind: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
299
+ desktop: "desktop";
300
+ docs: "docs";
301
+ integration: "integration";
302
+ mobile: "mobile";
303
+ platform: "platform";
304
+ sdk: "sdk";
305
+ tool: "tool";
306
+ }>>>;
307
+ stars: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
308
+ starsFetchedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
309
+ }, z.core.$strip>>;
310
+ pagination: z.ZodObject<{
311
+ page: z.ZodNumber;
312
+ pageSize: z.ZodNumber;
313
+ returned: z.ZodNumber;
314
+ totalItems: z.ZodOptional<z.ZodNumber>;
315
+ totalPages: z.ZodOptional<z.ZodNumber>;
316
+ hasMore: z.ZodBoolean;
317
+ }, z.core.$strip>;
318
+ }, z.core.$strip>]>;
319
+ /**
320
+ * Cursor pagination shape for the source detail's embedded release feed.
321
+ * Mirrors `OrgFeedPaginationSchema` and `CollectionFeedPaginationSchema` —
322
+ * release lists are feed-shaped (append-only, mutates between calls), so they
323
+ * use cursor pagination per the AGENTS.md convention.
324
+ */
325
+ export declare const SourceFeedPaginationSchema: z.ZodObject<{
326
+ nextCursor: z.ZodNullable<z.ZodString>;
327
+ limit: z.ZodNumber;
328
+ }, z.core.$strip>;
329
+ /**
330
+ * Response shape for `GET /v1/sources/:slug/releases` (and the org-scoped
331
+ * alias). The source identity is in the URL, so items omit the `source` block
332
+ * the org feed carries.
333
+ */
334
+ export declare const SourceReleasesResponseSchema: z.ZodObject<{
335
+ releases: z.ZodArray<z.ZodObject<{
336
+ id: z.ZodOptional<z.ZodString>;
337
+ version: z.ZodNullable<z.ZodString>;
338
+ title: z.ZodString;
339
+ summary: z.ZodString;
340
+ content: z.ZodOptional<z.ZodString>;
341
+ publishedAt: z.ZodNullable<z.ZodString>;
342
+ fetchedAt: z.ZodOptional<z.ZodString>;
343
+ url: z.ZodNullable<z.ZodString>;
344
+ media: z.ZodOptional<z.ZodArray<z.ZodObject<{
345
+ type: z.ZodEnum<{
346
+ gif: "gif";
347
+ image: "image";
348
+ video: "video";
349
+ }>;
350
+ url: z.ZodString;
351
+ alt: z.ZodOptional<z.ZodString>;
352
+ r2Key: z.ZodOptional<z.ZodString>;
353
+ r2Url: z.ZodOptional<z.ZodString>;
354
+ linkUrl: z.ZodOptional<z.ZodString>;
355
+ }, z.core.$strip>>>;
356
+ type: z.ZodOptional<z.ZodEnum<{
357
+ feature: "feature";
358
+ rollup: "rollup";
359
+ }>>;
360
+ prerelease: z.ZodOptional<z.ZodBoolean>;
361
+ titleGenerated: z.ZodOptional<z.ZodNullable<z.ZodString>>;
362
+ titleShort: z.ZodOptional<z.ZodNullable<z.ZodString>>;
363
+ breaking: z.ZodOptional<z.ZodEnum<{
364
+ major: "major";
365
+ minor: "minor";
366
+ none: "none";
367
+ unknown: "unknown";
368
+ }>>;
369
+ importance: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
370
+ coverageCount: z.ZodOptional<z.ZodNumber>;
371
+ contentChars: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
372
+ contentTokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
373
+ composition: z.ZodOptional<z.ZodNullable<z.ZodObject<{
374
+ bugs: z.ZodNumber;
375
+ features: z.ZodNumber;
376
+ enhancements: z.ZodNumber;
377
+ }, z.core.$strip>>>;
378
+ }, z.core.$strip>>;
379
+ pagination: z.ZodObject<{
380
+ nextCursor: z.ZodNullable<z.ZodString>;
381
+ limit: z.ZodNumber;
382
+ }, z.core.$strip>;
383
+ }, z.core.$strip>;
384
+ /**
385
+ * Resolved attribution block returned alongside a source row. `id` is
386
+ * additive vs the legacy `{ slug, name }` shape — older clients that ignored
387
+ * it still parse cleanly. `productId` / `productSlug` are sibling top-level
388
+ * fields on the source response (kept flat to mirror `orgId`), not nested
389
+ * inside this block.
390
+ */
391
+ export declare const SourceOrgRefSchema: z.ZodObject<{
392
+ id: z.ZodString;
393
+ slug: z.ZodString;
394
+ name: z.ZodString;
395
+ }, z.core.$strip>;
396
+ export declare const SourceDetailSchema: z.ZodObject<{
397
+ id: z.ZodString;
398
+ slug: z.ZodString;
399
+ name: z.ZodString;
400
+ type: z.ZodEnum<{
401
+ agent: "agent";
402
+ appstore: "appstore";
403
+ feed: "feed";
404
+ github: "github";
405
+ scrape: "scrape";
406
+ video: "video";
407
+ }>;
408
+ url: z.ZodString;
409
+ orgId: z.ZodNullable<z.ZodString>;
410
+ productId: z.ZodNullable<z.ZodString>;
411
+ productSlug: z.ZodNullable<z.ZodString>;
412
+ isHidden: z.ZodBoolean;
413
+ discovery: z.ZodOptional<z.ZodEnum<{
414
+ agent: "agent";
415
+ curated: "curated";
416
+ on_demand: "on_demand";
417
+ }>>;
418
+ fetchPriority: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
419
+ low: "low";
420
+ normal: "normal";
421
+ paused: "paused";
422
+ }>>>;
423
+ isPrimary: z.ZodBoolean;
424
+ metadata: z.ZodString;
425
+ changelogUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
426
+ hasChangelogFile: z.ZodOptional<z.ZodBoolean>;
427
+ org: z.ZodNullable<z.ZodObject<{
428
+ id: z.ZodString;
429
+ slug: z.ZodString;
430
+ name: z.ZodString;
431
+ }, z.core.$strip>>;
432
+ releaseCount: z.ZodNumber;
433
+ releasesLast30Days: z.ZodNumber;
434
+ avgReleasesPerWeek: z.ZodNumber;
435
+ latestVersion: z.ZodNullable<z.ZodString>;
436
+ latestDate: z.ZodNullable<z.ZodString>;
437
+ lastFetchedAt: z.ZodNullable<z.ZodString>;
438
+ lastPolledAt: z.ZodNullable<z.ZodString>;
439
+ changeDetectedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
440
+ trackingSince: z.ZodString;
441
+ releases: z.ZodArray<z.ZodObject<{
442
+ id: z.ZodOptional<z.ZodString>;
443
+ version: z.ZodNullable<z.ZodString>;
444
+ title: z.ZodString;
445
+ summary: z.ZodString;
446
+ content: z.ZodOptional<z.ZodString>;
447
+ publishedAt: z.ZodNullable<z.ZodString>;
448
+ fetchedAt: z.ZodOptional<z.ZodString>;
449
+ url: z.ZodNullable<z.ZodString>;
450
+ media: z.ZodOptional<z.ZodArray<z.ZodObject<{
451
+ type: z.ZodEnum<{
452
+ gif: "gif";
453
+ image: "image";
454
+ video: "video";
455
+ }>;
456
+ url: z.ZodString;
457
+ alt: z.ZodOptional<z.ZodString>;
458
+ r2Key: z.ZodOptional<z.ZodString>;
459
+ r2Url: z.ZodOptional<z.ZodString>;
460
+ linkUrl: z.ZodOptional<z.ZodString>;
461
+ }, z.core.$strip>>>;
462
+ type: z.ZodOptional<z.ZodEnum<{
463
+ feature: "feature";
464
+ rollup: "rollup";
465
+ }>>;
466
+ prerelease: z.ZodOptional<z.ZodBoolean>;
467
+ titleGenerated: z.ZodOptional<z.ZodNullable<z.ZodString>>;
468
+ titleShort: z.ZodOptional<z.ZodNullable<z.ZodString>>;
469
+ breaking: z.ZodOptional<z.ZodEnum<{
470
+ major: "major";
471
+ minor: "minor";
472
+ none: "none";
473
+ unknown: "unknown";
474
+ }>>;
475
+ importance: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
476
+ coverageCount: z.ZodOptional<z.ZodNumber>;
477
+ contentChars: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
478
+ contentTokens: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
479
+ composition: z.ZodOptional<z.ZodNullable<z.ZodObject<{
480
+ bugs: z.ZodNumber;
481
+ features: z.ZodNumber;
482
+ enhancements: z.ZodNumber;
483
+ }, z.core.$strip>>>;
484
+ }, z.core.$strip>>;
485
+ pagination: z.ZodObject<{
486
+ nextCursor: z.ZodNullable<z.ZodString>;
487
+ limit: z.ZodNumber;
488
+ }, z.core.$strip>;
489
+ summaries: z.ZodObject<{
490
+ rolling: z.ZodNullable<z.ZodObject<{
491
+ year: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
492
+ month: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
493
+ windowDays: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
494
+ summary: z.ZodString;
495
+ releaseCount: z.ZodNumber;
496
+ generatedAt: z.ZodString;
497
+ }, z.core.$strip>>;
498
+ monthly: z.ZodArray<z.ZodObject<{
499
+ year: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
500
+ month: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
501
+ windowDays: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
502
+ summary: z.ZodString;
503
+ releaseCount: z.ZodNumber;
504
+ generatedAt: z.ZodString;
505
+ }, z.core.$strip>>;
506
+ }, z.core.$strip>;
507
+ kind: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
508
+ desktop: "desktop";
509
+ docs: "docs";
510
+ integration: "integration";
511
+ mobile: "mobile";
512
+ platform: "platform";
513
+ sdk: "sdk";
514
+ tool: "tool";
515
+ }>>>;
516
+ stars: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
517
+ starsFetchedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
518
+ notice: z.ZodOptional<z.ZodNullable<z.ZodObject<{
519
+ message: z.ZodString;
520
+ linkText: z.ZodOptional<z.ZodString>;
521
+ coordinate: z.ZodOptional<z.ZodString>;
522
+ href: z.ZodOptional<z.ZodURL>;
523
+ }, z.core.$strip>>>;
524
+ }, z.core.$strip>;
525
+ /**
526
+ * Response returned by `POST /v1/sources` and `PATCH /v1/sources/:slug`.
527
+ *
528
+ * Pre-#794 these endpoints returned the bare drizzle row, leaving callers to
529
+ * round-trip a separate `GET` to confirm the resolved org/product attribution.
530
+ * Now they return the same source row plus a resolved `org { id, slug, name }`
531
+ * block and `productSlug`, so an agent can answer "did the write take?" from
532
+ * the response alone.
533
+ *
534
+ * Wire fields are loosely-typed (`z.unknown()`) for the timestamps/counters
535
+ * that aren't load-bearing for callers — the row is large and we don't want
536
+ * to hand-mirror every column. Stable, agent-relevant fields are typed.
537
+ */
538
+ export declare const SourceMutationResponseSchema: z.ZodObject<{
539
+ id: z.ZodString;
540
+ slug: z.ZodString;
541
+ name: z.ZodString;
542
+ type: z.ZodEnum<{
543
+ agent: "agent";
544
+ appstore: "appstore";
545
+ feed: "feed";
546
+ github: "github";
547
+ scrape: "scrape";
548
+ video: "video";
549
+ }>;
550
+ url: z.ZodString;
551
+ orgId: z.ZodNullable<z.ZodString>;
552
+ productId: z.ZodNullable<z.ZodString>;
553
+ productSlug: z.ZodNullable<z.ZodString>;
554
+ org: z.ZodNullable<z.ZodObject<{
555
+ id: z.ZodString;
556
+ slug: z.ZodString;
557
+ name: z.ZodString;
558
+ }, z.core.$strip>>;
559
+ metadata: z.ZodNullable<z.ZodString>;
560
+ isPrimary: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
561
+ isHidden: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
562
+ discovery: z.ZodOptional<z.ZodEnum<{
563
+ agent: "agent";
564
+ curated: "curated";
565
+ on_demand: "on_demand";
566
+ }>>;
567
+ createdAt: z.ZodOptional<z.ZodString>;
568
+ kind: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
569
+ desktop: "desktop";
570
+ docs: "docs";
571
+ integration: "integration";
572
+ mobile: "mobile";
573
+ platform: "platform";
574
+ sdk: "sdk";
575
+ tool: "tool";
576
+ }>>>;
577
+ }, z.core.$loose>;
578
+ /**
579
+ * Response from `POST /v1/sources/appstore` — materializes an App Store listing
580
+ * into a curated Org → Product → Source → first Release (modeled on the GitHub
581
+ * coordinate `LookupResponse`).
582
+ *
583
+ * Unlike `SourceMutationResponse`, the `source` here is the **bare inserted (or
584
+ * idempotently looked-up) drizzle row** the materialize handler returns verbatim:
585
+ * no resolved `org { id, slug, name }` block and no `productSlug`. `loose` so the
586
+ * untyped timestamp/counter columns on the row pass through.
587
+ *
588
+ * `status: "indexed"` is a brand-new source (HTTP 201); `"existing"` is the
589
+ * idempotent hit on a prior materialize of the same trackId (HTTP 200).
590
+ */
591
+ export declare const AppStoreMaterializeResponseSchema: z.ZodObject<{
592
+ status: z.ZodEnum<{
593
+ existing: "existing";
594
+ indexed: "indexed";
595
+ }>;
596
+ source: z.ZodObject<{
597
+ id: z.ZodString;
598
+ slug: z.ZodString;
599
+ name: z.ZodString;
600
+ type: z.ZodEnum<{
601
+ agent: "agent";
602
+ appstore: "appstore";
603
+ feed: "feed";
604
+ github: "github";
605
+ scrape: "scrape";
606
+ video: "video";
607
+ }>;
608
+ url: z.ZodString;
609
+ orgId: z.ZodNullable<z.ZodString>;
610
+ productId: z.ZodNullable<z.ZodString>;
611
+ metadata: z.ZodNullable<z.ZodString>;
612
+ kind: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
613
+ desktop: "desktop";
614
+ docs: "docs";
615
+ integration: "integration";
616
+ mobile: "mobile";
617
+ platform: "platform";
618
+ sdk: "sdk";
619
+ tool: "tool";
620
+ }>>>;
621
+ discovery: z.ZodOptional<z.ZodEnum<{
622
+ agent: "agent";
623
+ curated: "curated";
624
+ on_demand: "on_demand";
625
+ }>>;
626
+ isHidden: z.ZodOptional<z.ZodNullable<z.ZodBoolean>>;
627
+ createdAt: z.ZodOptional<z.ZodString>;
628
+ }, z.core.$loose>;
629
+ releaseCount: z.ZodNumber;
630
+ }, z.core.$strip>;
631
+ /** Body accepted by `PATCH /v1/sources/:slug`. */
632
+ export declare const SourcePatchInputSchema: z.ZodObject<{
633
+ name: z.ZodOptional<z.ZodString>;
634
+ url: z.ZodOptional<z.ZodString>;
635
+ type: z.ZodOptional<z.ZodEnum<{
636
+ agent: "agent";
637
+ appstore: "appstore";
638
+ feed: "feed";
639
+ github: "github";
640
+ scrape: "scrape";
641
+ video: "video";
642
+ }>>;
643
+ slug: z.ZodOptional<z.ZodString>;
644
+ metadata: z.ZodOptional<z.ZodString>;
645
+ orgId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
646
+ productId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
647
+ lastFetchedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
648
+ lastContentHash: z.ZodOptional<z.ZodNullable<z.ZodString>>;
649
+ fetchPriority: z.ZodOptional<z.ZodEnum<{
650
+ low: "low";
651
+ normal: "normal";
652
+ paused: "paused";
653
+ }>>;
654
+ consecutiveNoChange: z.ZodOptional<z.ZodNumber>;
655
+ consecutiveErrors: z.ZodOptional<z.ZodNumber>;
656
+ nextFetchAfter: z.ZodOptional<z.ZodNullable<z.ZodString>>;
657
+ isPrimary: z.ZodOptional<z.ZodBoolean>;
658
+ isHidden: z.ZodOptional<z.ZodBoolean>;
659
+ changeDetectedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
660
+ lastPolledAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
661
+ kind: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
662
+ desktop: "desktop";
663
+ docs: "docs";
664
+ integration: "integration";
665
+ mobile: "mobile";
666
+ platform: "platform";
667
+ sdk: "sdk";
668
+ tool: "tool";
669
+ }>>>;
670
+ discovery: z.ZodOptional<z.ZodEnum<{
671
+ agent: "agent";
672
+ curated: "curated";
673
+ on_demand: "on_demand";
674
+ }>>;
675
+ notice: z.ZodOptional<z.ZodNullable<z.ZodObject<{
676
+ message: z.ZodString;
677
+ linkText: z.ZodOptional<z.ZodString>;
678
+ coordinate: z.ZodOptional<z.ZodString>;
679
+ href: z.ZodOptional<z.ZodURL>;
680
+ }, z.core.$strip>>>;
681
+ }, z.core.$strip>;
682
+ /** Body accepted by `POST /v1/sources`. */
683
+ export declare const CreateSourceBodySchema: z.ZodObject<{
684
+ name: z.ZodString;
685
+ url: z.ZodString;
686
+ type: z.ZodOptional<z.ZodEnum<{
687
+ agent: "agent";
688
+ appstore: "appstore";
689
+ feed: "feed";
690
+ github: "github";
691
+ scrape: "scrape";
692
+ video: "video";
693
+ }>>;
694
+ slug: z.ZodOptional<z.ZodString>;
695
+ orgId: z.ZodOptional<z.ZodString>;
696
+ orgSlug: z.ZodOptional<z.ZodString>;
697
+ productId: z.ZodOptional<z.ZodString>;
698
+ productSlug: z.ZodOptional<z.ZodString>;
699
+ metadata: z.ZodOptional<z.ZodString>;
700
+ isPrimary: z.ZodOptional<z.ZodBoolean>;
701
+ kind: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
702
+ desktop: "desktop";
703
+ docs: "docs";
704
+ integration: "integration";
705
+ mobile: "mobile";
706
+ platform: "platform";
707
+ sdk: "sdk";
708
+ tool: "tool";
709
+ }>>>;
710
+ }, z.core.$strip>;
711
+ export declare const ChangelogFileSummarySchema: z.ZodObject<{
712
+ path: z.ZodString;
713
+ filename: z.ZodString;
714
+ url: z.ZodString;
715
+ bytes: z.ZodNumber;
716
+ fetchedAt: z.ZodString;
717
+ }, z.core.$strip>;
718
+ export declare const SourceChangelogResponseSchema: z.ZodObject<{
719
+ path: z.ZodString;
720
+ filename: z.ZodString;
721
+ url: z.ZodString;
722
+ rawUrl: z.ZodString;
723
+ content: z.ZodString;
724
+ bytes: z.ZodNumber;
725
+ fetchedAt: z.ZodString;
726
+ offset: z.ZodNumber;
727
+ limit: z.ZodNumber;
728
+ nextOffset: z.ZodNullable<z.ZodNumber>;
729
+ totalChars: z.ZodNumber;
730
+ tokens: z.ZodOptional<z.ZodNumber>;
731
+ sliceTokens: z.ZodOptional<z.ZodNumber>;
732
+ totalTokens: z.ZodNumber;
733
+ truncated: z.ZodBoolean;
734
+ truncatedAt: z.ZodNullable<z.ZodNumber>;
735
+ files: z.ZodArray<z.ZodObject<{
736
+ path: z.ZodString;
737
+ filename: z.ZodString;
738
+ url: z.ZodString;
739
+ bytes: z.ZodNumber;
740
+ fetchedAt: z.ZodString;
741
+ }, z.core.$strip>>;
742
+ }, z.core.$strip>;
743
+ /**
744
+ * Response shape for `GET /v1/sources/:slug/activity` and the org-scoped twin.
745
+ * Returns week-bucketed release counts for the full tracking lifetime of the source.
746
+ * Optional `?from=YYYY-MM-DD` and `?to=YYYY-MM-DD` narrow the range.
747
+ */
748
+ export declare const SourceActivityResponseSchema: z.ZodObject<{
749
+ source: z.ZodObject<{
750
+ slug: z.ZodString;
751
+ name: z.ZodString;
752
+ orgSlug: z.ZodNullable<z.ZodString>;
753
+ orgName: z.ZodNullable<z.ZodString>;
754
+ }, z.core.$strip>;
755
+ range: z.ZodObject<{
756
+ from: z.ZodString;
757
+ to: z.ZodString;
758
+ }, z.core.$strip>;
759
+ weeklyBuckets: z.ZodArray<z.ZodObject<{
760
+ weekStart: z.ZodString;
761
+ count: z.ZodNumber;
762
+ earliestVersion: z.ZodNullable<z.ZodString>;
763
+ latestVersion: z.ZodNullable<z.ZodString>;
764
+ }, z.core.$strip>>;
765
+ }, z.core.$strip>;
766
+ /**
767
+ * Response shape for `GET /v1/sources/:slug/heatmap` and the org-scoped twin.
768
+ * Returns daily release counts for the trailing 365 days — contribution-graph
769
+ * visualization for the source detail page.
770
+ */
771
+ export declare const SourceHeatmapResponseSchema: z.ZodObject<{
772
+ source: z.ZodObject<{
773
+ slug: z.ZodString;
774
+ name: z.ZodString;
775
+ }, z.core.$strip>;
776
+ range: z.ZodObject<{
777
+ from: z.ZodString;
778
+ to: z.ZodString;
779
+ }, z.core.$strip>;
780
+ dailyCounts: z.ZodArray<z.ZodObject<{
781
+ date: z.ZodString;
782
+ count: z.ZodNumber;
783
+ }, z.core.$strip>>;
784
+ total: z.ZodNumber;
785
+ }, z.core.$strip>;
786
+ /**
787
+ * Single row returned inside `GET /v1/sources/:slug/known-releases`. Minimal
788
+ * identifier set used by the incremental parsing agent to skip already-known
789
+ * versions without fetching full content.
790
+ */
791
+ export declare const SourceKnownReleaseItemSchema: z.ZodObject<{
792
+ version: z.ZodNullable<z.ZodString>;
793
+ title: z.ZodString;
794
+ publishedAt: z.ZodNullable<z.ZodString>;
795
+ }, z.core.$strip>;
796
+ /**
797
+ * Response shape for `GET /v1/sources/:slug/known-releases`. Returns the
798
+ * N most-recent non-suppressed releases (default N=10, max 500), ordered
799
+ * by `publishedAt` descending. Accepts `?limit=N`.
800
+ */
801
+ export declare const SourceKnownReleasesResponseSchema: z.ZodArray<z.ZodObject<{
802
+ version: z.ZodNullable<z.ZodString>;
803
+ title: z.ZodString;
804
+ publishedAt: z.ZodNullable<z.ZodString>;
805
+ }, z.core.$strip>>;
806
+ /**
807
+ * Response shape for `GET /v1/sources/:slug/recent-releases`. Returns the
808
+ * full release rows (non-suppressed, published at or after `?cutoff=`) ordered
809
+ * by `publishedAt` descending. Used by the summarization agent to retrieve the
810
+ * release window it needs to summarize. `?cutoff=` is required (ISO-8601 date
811
+ * string); missing `?cutoff=` returns 400.
812
+ */
813
+ export declare const SourceRecentReleasesResponseSchema: z.ZodArray<z.ZodObject<{
814
+ id: z.ZodString;
815
+ sourceId: z.ZodString;
816
+ version: z.ZodNullable<z.ZodString>;
817
+ title: z.ZodString;
818
+ content: z.ZodString;
819
+ url: z.ZodNullable<z.ZodString>;
820
+ publishedAt: z.ZodNullable<z.ZodString>;
821
+ fetchedAt: z.ZodOptional<z.ZodString>;
822
+ }, z.core.$loose>>;
823
+ /**
824
+ * Response shape for `GET /v1/sources/:slug/sessions`. Returns the active
825
+ * discovery session (if any) touching this source. The session object is the
826
+ * live DO state blob from the `StatusHub` Durable Object. Returns `{ sessions:
827
+ * [] }` when no active session references this source.
828
+ */
829
+ export declare const SourceSessionsResponseSchema: z.ZodObject<{
830
+ sessions: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
831
+ }, z.core.$strip>;
832
+ /**
833
+ * Full summary row as stored in `release_summaries`, returned by
834
+ * `GET /v1/sources/:slug/summaries`. Filter by `?type=rolling|monthly`,
835
+ * `?year=`, `?month=`.
836
+ */
837
+ export declare const SourceSummaryRowSchema: z.ZodObject<{
838
+ id: z.ZodOptional<z.ZodString>;
839
+ sourceId: z.ZodString;
840
+ orgId: z.ZodNullable<z.ZodString>;
841
+ type: z.ZodEnum<{
842
+ monthly: "monthly";
843
+ rolling: "rolling";
844
+ }>;
845
+ year: z.ZodNullable<z.ZodNumber>;
846
+ month: z.ZodNullable<z.ZodNumber>;
847
+ windowDays: z.ZodNullable<z.ZodNumber>;
848
+ summary: z.ZodString;
849
+ releaseCount: z.ZodNumber;
850
+ generatedAt: z.ZodString;
851
+ }, z.core.$strip>;
852
+ export declare const SourceSummariesResponseSchema: z.ZodArray<z.ZodObject<{
853
+ id: z.ZodOptional<z.ZodString>;
854
+ sourceId: z.ZodString;
855
+ orgId: z.ZodNullable<z.ZodString>;
856
+ type: z.ZodEnum<{
857
+ monthly: "monthly";
858
+ rolling: "rolling";
859
+ }>;
860
+ year: z.ZodNullable<z.ZodNumber>;
861
+ month: z.ZodNullable<z.ZodNumber>;
862
+ windowDays: z.ZodNullable<z.ZodNumber>;
863
+ summary: z.ZodString;
864
+ releaseCount: z.ZodNumber;
865
+ generatedAt: z.ZodString;
866
+ }, z.core.$strip>>;
867
+ /**
868
+ * Body accepted by `POST /v1/sources/:slug/summaries`.
869
+ *
870
+ * `month` is calendar-bounded (1..12) and `windowDays` must be a positive
871
+ * integer when present — silently dropping wrong-typed values masks client
872
+ * bugs, so the validator rejects them explicitly. `year` is not bound-checked
873
+ * (any cutoff would be arbitrary).
874
+ */
875
+ export declare const CreateSourceSummaryBodySchema: z.ZodObject<{
876
+ type: z.ZodEnum<{
877
+ monthly: "monthly";
878
+ rolling: "rolling";
879
+ }>;
880
+ year: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
881
+ month: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
882
+ windowDays: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
883
+ summary: z.ZodString;
884
+ releaseCount: z.ZodNumber;
885
+ }, z.core.$strip>;
886
+ /** Response for `POST /v1/sources/:slug/summaries` (upsert). */
887
+ export declare const CreateSourceSummaryResponseSchema: z.ZodObject<{
888
+ ok: z.ZodLiteral<true>;
889
+ }, z.core.$strip>;
890
+ /**
891
+ * Response shape for `POST /v1/sources/:slug/fetch`. Three branches:
892
+ * - Feed/GitHub/scraped-with-feed sources: `{ fetched: true, releasesInserted, … }`
893
+ * - Scrape/agent sources (flagged for CLI pickup): `{ queued: true, type: "flagged" }`
894
+ * - Render dry-run probe (`?dryRun=true` on a client-rendered scrape source):
895
+ * `{ renderCheck: true, rendered, candidateCount, sampleUrls, … }`
896
+ */
897
+ export declare const SourceFetchResponseSchema: z.ZodUnion<readonly [z.ZodObject<{
898
+ fetched: z.ZodLiteral<true>;
899
+ }, z.core.$loose>, z.ZodObject<{
900
+ queued: z.ZodLiteral<true>;
901
+ type: z.ZodString;
902
+ }, z.core.$strip>, z.ZodObject<{
903
+ renderCheck: z.ZodLiteral<true>;
904
+ status: z.ZodEnum<{
905
+ dry_run: "dry_run";
906
+ error: "error";
907
+ }>;
908
+ rendered: z.ZodBoolean;
909
+ candidateCount: z.ZodNumber;
910
+ sampleUrls: z.ZodArray<z.ZodString>;
911
+ durationMs: z.ZodNumber;
912
+ error: z.ZodOptional<z.ZodString>;
913
+ }, z.core.$loose>]>;
914
+ /** Response for `POST /v1/sources/:slug/content-hash`. */
915
+ export declare const SourceContentHashResponseSchema: z.ZodUnion<readonly [z.ZodObject<{
916
+ unchanged: z.ZodLiteral<true>;
917
+ }, z.core.$strip>, z.ZodObject<{
918
+ unchanged: z.ZodLiteral<false>;
919
+ }, z.core.$strip>]>;
920
+ /** Body for `POST /v1/sources/:slug/content-hash`. */
921
+ export declare const SourceContentHashBodySchema: z.ZodObject<{
922
+ contentHash: z.ZodString;
923
+ }, z.core.$strip>;
924
+ /** Response for `PATCH /v1/sources/:slug/changelog/tokens`. */
925
+ export declare const ChangelogTokensResponseSchema: z.ZodObject<{
926
+ path: z.ZodString;
927
+ oldTokens: z.ZodNullable<z.ZodNumber>;
928
+ tokens: z.ZodNumber;
929
+ }, z.core.$strip>;
930
+ /** Response for `PATCH /v1/sources/:slug/metadata`. Echoes the merged metadata object. */
931
+ export declare const SourceMetadataResponseSchema: z.ZodObject<{
932
+ metadata: z.ZodRecord<z.ZodString, z.ZodUnknown>;
933
+ }, z.core.$strip>;
934
+ /**
935
+ * A discovered CHANGELOG path returned by the probe. Mirrors
936
+ * `DiscoveredChangelogPath` from `@releases/adapters/github-discovery`:
937
+ * `origin` tags where the path came from (repo root, a workspace package, or
938
+ * an explicit `metadata.changelogPaths` override) and `exists` is true when a
939
+ * directory listing confirmed the file on HEAD.
940
+ */
941
+ export declare const DiscoveredChangelogPathSchema: z.ZodObject<{
942
+ path: z.ZodString;
943
+ origin: z.ZodEnum<{
944
+ override: "override";
945
+ root: "root";
946
+ workspace: "workspace";
947
+ }>;
948
+ exists: z.ZodBoolean;
949
+ }, z.core.$strip>;
950
+ /** Response for `POST /v1/sources/:slug/changelog/probe`. */
951
+ export declare const ChangelogProbeResponseSchema: z.ZodObject<{
952
+ sourceId: z.ZodString;
953
+ sourceSlug: z.ZodString;
954
+ url: z.ZodString;
955
+ paths: z.ZodArray<z.ZodObject<{
956
+ path: z.ZodString;
957
+ origin: z.ZodEnum<{
958
+ override: "override";
959
+ root: "root";
960
+ workspace: "workspace";
961
+ }>;
962
+ exists: z.ZodBoolean;
963
+ }, z.core.$strip>>;
964
+ }, z.core.$strip>;
965
+ /**
966
+ * Response for `DELETE /v1/sources/:slug`. Two shapes:
967
+ * - Soft delete: `{ deleted: true, deletedAt: "<iso>" }`
968
+ * - Hard delete (`?hard=true`): `{ deleted: true, hard: true }`
969
+ */
970
+ export declare const DeleteSourceResponseSchema: z.ZodUnion<readonly [z.ZodObject<{
971
+ deleted: z.ZodLiteral<true>;
972
+ deletedAt: z.ZodString;
973
+ }, z.core.$strip>, z.ZodObject<{
974
+ deleted: z.ZodLiteral<true>;
975
+ hard: z.ZodLiteral<true>;
976
+ }, z.core.$strip>]>;
977
+ /**
978
+ * Response for `DELETE /v1/sources/:slug/releases`. Two shapes:
979
+ * - Soft (`?hard` absent): `{ suppressed: N }` — releases hidden, not deleted
980
+ * - Hard (`?hard=true`): `{ deleted: N, hard: true }`
981
+ */
982
+ export declare const DeleteSourceReleasesResponseSchema: z.ZodUnion<readonly [z.ZodObject<{
983
+ suppressed: z.ZodNumber;
984
+ }, z.core.$strip>, z.ZodObject<{
985
+ deleted: z.ZodNumber;
986
+ hard: z.ZodLiteral<true>;
987
+ }, z.core.$strip>]>;
988
+ /**
989
+ * Response for `POST /v1/sources/:slug/releases`. Returns the inserted release
990
+ * row (201) or `{ skipped: true }` (200) on URL conflict.
991
+ */
992
+ export declare const InsertReleaseResponseSchema: z.ZodUnion<readonly [z.ZodObject<{
993
+ id: z.ZodString;
994
+ sourceId: z.ZodString;
995
+ title: z.ZodString;
996
+ }, z.core.$loose>, z.ZodObject<{
997
+ skipped: z.ZodLiteral<true>;
998
+ }, z.core.$strip>]>;
999
+ /** One release in a `POST /v1/sources/:slug/releases/batch` body. */
1000
+ export declare const BatchReleaseInputSchema: z.ZodObject<{
1001
+ title: z.ZodString;
1002
+ content: z.ZodString;
1003
+ version: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1004
+ url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1005
+ contentHash: z.ZodOptional<z.ZodString>;
1006
+ publishedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1007
+ media: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1008
+ type: z.ZodOptional<z.ZodEnum<{
1009
+ feature: "feature";
1010
+ rollup: "rollup";
1011
+ }>>;
1012
+ prerelease: z.ZodOptional<z.ZodBoolean>;
1013
+ }, z.core.$strip>;
1014
+ /**
1015
+ * Body for `POST /v1/sources/:slug/releases/batch`. Without `mode`, a URL that
1016
+ * already exists only has its empty fields filled. `mode: "upsert-content"`
1017
+ * overwrites content and media on a URL match, which is what publishers
1018
+ * (`actions/publish-changelog`, `releases publish`) send.
1019
+ */
1020
+ export declare const BatchReleasesBodySchema: z.ZodObject<{
1021
+ mode: z.ZodOptional<z.ZodLiteral<"upsert-content">>;
1022
+ releases: z.ZodArray<z.ZodObject<{
1023
+ title: z.ZodString;
1024
+ content: z.ZodString;
1025
+ version: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1026
+ url: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1027
+ contentHash: z.ZodOptional<z.ZodString>;
1028
+ publishedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1029
+ media: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1030
+ type: z.ZodOptional<z.ZodEnum<{
1031
+ feature: "feature";
1032
+ rollup: "rollup";
1033
+ }>>;
1034
+ prerelease: z.ZodOptional<z.ZodBoolean>;
1035
+ }, z.core.$strip>>;
1036
+ }, z.core.$strip>;
1037
+ /** Response for `POST /v1/sources/:slug/releases/batch`. */
1038
+ export declare const BatchReleasesResponseSchema: z.ZodObject<{
1039
+ inserted: z.ZodNumber;
1040
+ total: z.ZodNumber;
1041
+ insertedIds: z.ZodArray<z.ZodString>;
1042
+ }, z.core.$strip>;
1043
+ /**
1044
+ * Response for `POST /v1/sources/:slug/raw-snapshot` (#1283). On a store or a
1045
+ * content-hash dedup hit, all fields are present; `stored` is `false` for the
1046
+ * dedup case. When the `RAW_SNAPSHOTS` bucket is unbound the capture soft-fails
1047
+ * with `{ stored: false, reason: "no_binding" }` and the snapshot fields are
1048
+ * omitted — capture is best-effort and never errors ingest.
1049
+ */
1050
+ export declare const RawSnapshotResponseSchema: z.ZodObject<{
1051
+ stored: z.ZodBoolean;
1052
+ r2Key: z.ZodOptional<z.ZodString>;
1053
+ contentHash: z.ZodOptional<z.ZodString>;
1054
+ bytes: z.ZodOptional<z.ZodNumber>;
1055
+ reason: z.ZodOptional<z.ZodEnum<{
1056
+ no_binding: "no_binding";
1057
+ }>>;
1058
+ }, z.core.$strip>;
1059
+ /**
1060
+ * Row returned by `GET /v1/sources/changelog-files/oversized`. Each row is a
1061
+ * changelog file whose content length exceeds `?minBytes=` (default 256 KB).
1062
+ * Used by `scripts/backfill-changelog-tokens.ts` to find rows with estimated
1063
+ * (not exact) token counts.
1064
+ */
1065
+ export declare const OversizedChangelogFileRowSchema: z.ZodObject<{
1066
+ sourceId: z.ZodString;
1067
+ sourceSlug: z.ZodString;
1068
+ sourceName: z.ZodString;
1069
+ orgSlug: z.ZodString;
1070
+ path: z.ZodString;
1071
+ filename: z.ZodString;
1072
+ bytes: z.ZodNumber;
1073
+ tokens: z.ZodNullable<z.ZodNumber>;
1074
+ fetchedAt: z.ZodString;
1075
+ }, z.core.$strip>;
1076
+ export declare const OversizedChangelogFilesResponseSchema: z.ZodArray<z.ZodObject<{
1077
+ sourceId: z.ZodString;
1078
+ sourceSlug: z.ZodString;
1079
+ sourceName: z.ZodString;
1080
+ orgSlug: z.ZodString;
1081
+ path: z.ZodString;
1082
+ filename: z.ZodString;
1083
+ bytes: z.ZodNumber;
1084
+ tokens: z.ZodNullable<z.ZodNumber>;
1085
+ fetchedAt: z.ZodString;
1086
+ }, z.core.$strip>>;
1087
+ /**
1088
+ * Response for `GET /v1/sources/fetchable`. Returns raw source rows matching
1089
+ * the requested fetch mode (`?mode=unfetched|stale|retry_errors|all`).
1090
+ * Accepts `?staleHours=N` when `mode=stale`.
1091
+ */
1092
+ export declare const FetchableSourcesResponseSchema: z.ZodArray<z.ZodObject<{
1093
+ id: z.ZodString;
1094
+ slug: z.ZodString;
1095
+ name: z.ZodString;
1096
+ type: z.ZodEnum<{
1097
+ agent: "agent";
1098
+ appstore: "appstore";
1099
+ feed: "feed";
1100
+ github: "github";
1101
+ scrape: "scrape";
1102
+ video: "video";
1103
+ }>;
1104
+ url: z.ZodString;
1105
+ metadata: z.ZodNullable<z.ZodString>;
1106
+ }, z.core.$loose>>;
1107
+ /**
1108
+ * Response for `GET /v1/sources/feeds`. Returns visible source rows where
1109
+ * `metadata.feedUrl` is set and `fetchPriority != 'paused'`.
1110
+ */
1111
+ export declare const FeedSourcesResponseSchema: z.ZodArray<z.ZodObject<{
1112
+ id: z.ZodString;
1113
+ slug: z.ZodString;
1114
+ name: z.ZodString;
1115
+ type: z.ZodEnum<{
1116
+ agent: "agent";
1117
+ appstore: "appstore";
1118
+ feed: "feed";
1119
+ github: "github";
1120
+ scrape: "scrape";
1121
+ video: "video";
1122
+ }>;
1123
+ url: z.ZodString;
1124
+ metadata: z.ZodNullable<z.ZodString>;
1125
+ }, z.core.$loose>>;
1126
+ /**
1127
+ * Response for `GET /v1/sources/changes`. Returns visible source rows that
1128
+ * have a non-null `changeDetectedAt` — the set flagged for CLI pickup.
1129
+ */
1130
+ export declare const ChangedSourcesResponseSchema: z.ZodArray<z.ZodObject<{
1131
+ id: z.ZodString;
1132
+ slug: z.ZodString;
1133
+ name: z.ZodString;
1134
+ type: z.ZodEnum<{
1135
+ agent: "agent";
1136
+ appstore: "appstore";
1137
+ feed: "feed";
1138
+ github: "github";
1139
+ scrape: "scrape";
1140
+ video: "video";
1141
+ }>;
1142
+ url: z.ZodString;
1143
+ metadata: z.ZodNullable<z.ZodString>;
1144
+ }, z.core.$loose>>;
1145
+ //# sourceMappingURL=sources.d.ts.map