@expandai/sdk 0.19.0 → 0.20.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 (72) hide show
  1. package/README.md +130 -4
  2. package/build/dts/AppendixMarkers.d.ts +30 -0
  3. package/build/dts/AppendixMarkers.d.ts.map +1 -0
  4. package/build/dts/Client.d.ts +41 -6
  5. package/build/dts/Client.d.ts.map +1 -1
  6. package/build/dts/Crawls.d.ts +568 -0
  7. package/build/dts/Crawls.d.ts.map +1 -0
  8. package/build/dts/EnvProxyHttpClient.d.ts +28 -0
  9. package/build/dts/EnvProxyHttpClient.d.ts.map +1 -0
  10. package/build/dts/FetchJson.d.ts +444 -37
  11. package/build/dts/FetchJson.d.ts.map +1 -1
  12. package/build/dts/Generated.d.ts +1545 -788
  13. package/build/dts/Generated.d.ts.map +1 -1
  14. package/build/dts/HttpClientHelpers.d.ts +13 -0
  15. package/build/dts/HttpClientHelpers.d.ts.map +1 -1
  16. package/build/dts/Internal.d.ts +6 -4
  17. package/build/dts/Internal.d.ts.map +1 -1
  18. package/build/dts/ParseErrorBody.d.ts +26 -0
  19. package/build/dts/ParseErrorBody.d.ts.map +1 -0
  20. package/build/dts/Playground.d.ts +20 -0
  21. package/build/dts/Playground.d.ts.map +1 -1
  22. package/build/dts/RetryAfter.d.ts +40 -0
  23. package/build/dts/RetryAfter.d.ts.map +1 -0
  24. package/build/dts/Service.d.ts +94 -45
  25. package/build/dts/Service.d.ts.map +1 -1
  26. package/build/dts/StreamPage.d.ts +10 -0
  27. package/build/dts/StreamPage.d.ts.map +1 -0
  28. package/build/dts/index.d.ts +9 -2
  29. package/build/dts/index.d.ts.map +1 -1
  30. package/build/esm/AppendixMarkers.js +307 -0
  31. package/build/esm/AppendixMarkers.js.map +1 -0
  32. package/build/esm/Client.js +96 -15
  33. package/build/esm/Client.js.map +1 -1
  34. package/build/esm/Crawls.js +786 -0
  35. package/build/esm/Crawls.js.map +1 -0
  36. package/build/esm/EnvProxyHttpClient.js +55 -0
  37. package/build/esm/EnvProxyHttpClient.js.map +1 -0
  38. package/build/esm/FetchJson.js +48 -22
  39. package/build/esm/FetchJson.js.map +1 -1
  40. package/build/esm/Generated.js +540 -112
  41. package/build/esm/Generated.js.map +1 -1
  42. package/build/esm/HttpClientHelpers.js +36 -1
  43. package/build/esm/HttpClientHelpers.js.map +1 -1
  44. package/build/esm/Internal.js +140 -33
  45. package/build/esm/Internal.js.map +1 -1
  46. package/build/esm/ParseErrorBody.js +41 -0
  47. package/build/esm/ParseErrorBody.js.map +1 -0
  48. package/build/esm/Playground.js +38 -0
  49. package/build/esm/Playground.js.map +1 -1
  50. package/build/esm/RetryAfter.js +104 -0
  51. package/build/esm/RetryAfter.js.map +1 -0
  52. package/build/esm/Service.js +96 -17
  53. package/build/esm/Service.js.map +1 -1
  54. package/build/esm/StreamPage.js +46 -0
  55. package/build/esm/StreamPage.js.map +1 -0
  56. package/build/esm/index.js +5 -1
  57. package/build/esm/index.js.map +1 -1
  58. package/package.json +8 -2
  59. package/src/AppendixMarkers.ts +370 -0
  60. package/src/Client.ts +131 -16
  61. package/src/Crawls.ts +1387 -0
  62. package/src/EnvProxyHttpClient.ts +71 -0
  63. package/src/FetchJson.ts +63 -25
  64. package/src/Generated.ts +738 -162
  65. package/src/HttpClientHelpers.ts +48 -1
  66. package/src/Internal.ts +163 -105
  67. package/src/ParseErrorBody.ts +42 -0
  68. package/src/Playground.ts +48 -0
  69. package/src/RetryAfter.ts +138 -0
  70. package/src/Service.ts +208 -25
  71. package/src/StreamPage.ts +47 -0
  72. package/src/index.ts +29 -3
@@ -0,0 +1,568 @@
1
+ import { ExpandClientApiError, ExpandClientError } from './Error.js';
2
+ export type CrawlOffset = string;
3
+ export type CrawlId = string;
4
+ export type CrawlPageId = string;
5
+ export type CrawlJsonValue = string | number | boolean | null | readonly CrawlJsonValue[] | {
6
+ readonly [key: string]: CrawlJsonValue;
7
+ };
8
+ export interface CrawlSource {
9
+ readonly url: string;
10
+ readonly kind?: 'seed' | 'sitemap';
11
+ /** Which pages end up in the results. Non-matching pages may still be opened to follow their links. */
12
+ readonly include?: readonly string[];
13
+ /** Pages the crawler never opens. */
14
+ readonly exclude?: readonly string[];
15
+ readonly maxPages?: number;
16
+ /**
17
+ * Clicks from `url`: 0 is the URL alone, 1 adds the pages it links to, the site's sitemap and
18
+ * search results. A sitemap source's own listings count as depth 0. Defaults to 50.
19
+ */
20
+ readonly maxDepth?: number;
21
+ }
22
+ export interface CrawlChangePolicy {
23
+ readonly ignore?: readonly string[];
24
+ readonly volatile?: readonly string[];
25
+ }
26
+ export interface CrawlSyncPolicy {
27
+ /** How often every page is checked for changes, such as `24h` or `7d`. */
28
+ readonly freshness: string;
29
+ readonly budget?: {
30
+ readonly rendersPerDay?: number;
31
+ };
32
+ }
33
+ export interface CrawlRequest {
34
+ readonly sources: readonly (string | CrawlSource)[];
35
+ readonly formats?: readonly ('markdown' | 'stateJson' | 'html')[];
36
+ readonly maxPages?: number;
37
+ readonly changePolicy?: CrawlChangePolicy;
38
+ readonly sync?: CrawlSyncPolicy;
39
+ /** A label for the crawl, 1–120 characters. Every crawl the request creates gets it. */
40
+ readonly name?: string;
41
+ }
42
+ export interface CrawlPageMeta {
43
+ readonly title?: string;
44
+ readonly description?: string;
45
+ readonly canonicalUrl?: string;
46
+ readonly language?: string;
47
+ readonly pageType: string;
48
+ readonly author?: string;
49
+ readonly publishedAt?: string;
50
+ readonly updatedAt?: string;
51
+ readonly image?: string;
52
+ readonly openGraph?: Readonly<Record<string, string>>;
53
+ readonly twitter?: Readonly<Record<string, string>>;
54
+ /**
55
+ * Present when the capture behind this page ran at reduced fidelity, naming what was
56
+ * reduced (`bestEffort`, `skipped-modelInputTooLarge`, `hfc-local-fallback`, …). The
57
+ * page and its content are real; the field says how much of the extraction ran.
58
+ */
59
+ readonly reducedCapture?: string;
60
+ }
61
+ export interface CrawlEvidence {
62
+ readonly key: string;
63
+ readonly kind: 'inline' | 'network';
64
+ readonly role: string;
65
+ /** Evidence relevance weight. Higher means more relevant; not a probability, so it can exceed 1. */
66
+ readonly score: number;
67
+ readonly url?: string;
68
+ readonly method?: string;
69
+ readonly body?: CrawlJsonValue;
70
+ readonly bodyUrl?: string;
71
+ readonly approxTokens?: number;
72
+ readonly keys?: readonly string[];
73
+ }
74
+ export interface CrawlStateJson {
75
+ readonly captureId: string;
76
+ readonly evidence: readonly CrawlEvidence[];
77
+ }
78
+ export interface CrawlPageContent {
79
+ readonly markdown?: string;
80
+ readonly stateJson?: CrawlStateJson;
81
+ readonly html?: string;
82
+ readonly truncated: readonly ('markdown' | 'stateJson' | 'html')[];
83
+ }
84
+ interface CrawlEventBase {
85
+ readonly offset: CrawlOffset;
86
+ readonly id: string;
87
+ readonly observedAt: string;
88
+ readonly crawlId: CrawlId;
89
+ }
90
+ export interface CrawlPageAdded extends CrawlEventBase {
91
+ readonly type: 'page.added';
92
+ readonly pageId: CrawlPageId;
93
+ readonly url: string;
94
+ readonly captureId: string;
95
+ readonly discoveredBy: 'seed' | 'sitemap' | 'link' | 'search';
96
+ readonly depth: number;
97
+ readonly meta: CrawlPageMeta;
98
+ readonly page: CrawlPageContent;
99
+ }
100
+ export interface CrawlPageChanged extends CrawlEventBase {
101
+ readonly type: 'page.changed';
102
+ readonly pageId: CrawlPageId;
103
+ readonly url: string;
104
+ readonly captureId: string;
105
+ readonly previousCaptureId: string;
106
+ readonly changed: {
107
+ readonly content: boolean;
108
+ readonly stateJson: boolean;
109
+ readonly extraction: boolean;
110
+ };
111
+ readonly diff: {
112
+ readonly stateJson: Readonly<Record<string, {
113
+ readonly from?: CrawlJsonValue;
114
+ readonly to?: CrawlJsonValue;
115
+ }>>;
116
+ readonly markdown: string;
117
+ readonly truncated: boolean;
118
+ };
119
+ readonly meta: CrawlPageMeta;
120
+ readonly page: CrawlPageContent;
121
+ }
122
+ export interface CrawlPageRemoved extends CrawlEventBase {
123
+ readonly type: 'page.removed';
124
+ readonly pageId: CrawlPageId;
125
+ readonly url: string;
126
+ readonly previousCaptureId: string;
127
+ readonly evidence: {
128
+ readonly kind: 'http-404' | 'http-410' | 'content-gone' | 'redirected-away';
129
+ readonly checks: readonly {
130
+ readonly captureId: string;
131
+ readonly observedAt: string;
132
+ readonly status: number;
133
+ readonly finalUrl: string;
134
+ }[];
135
+ readonly sitemapDisappeared: boolean;
136
+ };
137
+ }
138
+ export interface CrawlPageFailed extends CrawlEventBase {
139
+ readonly type: 'page.failed';
140
+ readonly url: string;
141
+ readonly reason: 'blocked' | 'not-found' | 'timeout' | 'error' | 'robots-disallowed' | 'robots-unreachable' | 'out-of-scope';
142
+ /** The precise cause behind `reason`, when the check knew one (`quality-degraded`, `http-503`, …). */
143
+ readonly detail?: string;
144
+ readonly retriesExhausted: boolean;
145
+ }
146
+ export type CrawlEvent = CrawlPageAdded | CrawlPageChanged | CrawlPageRemoved | CrawlPageFailed;
147
+ /**
148
+ * One batch of URL transitions on the activity stream (`GET /v1/crawls/:id/activity`): what was
149
+ * discovered, admitted, claimed, rendered or deferred, which sitemaps and robots files resolved,
150
+ * and the run lifecycle. No content; the page stream (`events`) carries that. `eventsOffset` is a
151
+ * lower bound on the page stream: every page event at or below it committed before this one.
152
+ */
153
+ export interface CrawlActivityEvent {
154
+ readonly offset: CrawlOffset;
155
+ readonly id: string;
156
+ readonly crawlId: CrawlId;
157
+ readonly runId: string | null;
158
+ /** ISO date-time. */
159
+ readonly observedAt: string;
160
+ /** `discovery.batch`, `admission.batch`, `claim.batch`, `render.settled`, `sitemap.fetched`, `sitemap.failed`, `robots.resolved`, `search.resolved`, `alias.batch`, `run.started`, `run.discovery-closed`, `run.finished`, `run.canceled`, … */
161
+ readonly type: string;
162
+ readonly eventsOffset: CrawlOffset;
163
+ readonly payload: Record<string, unknown>;
164
+ }
165
+ export type CrawlAdmissionReason = 'no-fleet-snapshot' | 'no-fleet-capacity' | 'billing-blocked' | 'disabled' | 'none';
166
+ export interface CrawlAdmission {
167
+ readonly paused: boolean;
168
+ readonly reason: CrawlAdmissionReason;
169
+ }
170
+ /** The canonical source configuration a crawl was created with. */
171
+ export interface CrawlConfigSummary {
172
+ readonly sources: readonly {
173
+ readonly url: string;
174
+ readonly kind: 'seed' | 'sitemap';
175
+ readonly include: readonly string[];
176
+ readonly exclude: readonly string[];
177
+ readonly maxPages?: number;
178
+ readonly maxDepth: number;
179
+ }[];
180
+ /** How the include and exclude entries are read: RE2 searched in the path, or path globs. */
181
+ readonly patternSyntax: 're2' | 'glob';
182
+ readonly formats: readonly ('markdown' | 'stateJson' | 'html')[];
183
+ readonly maxPages: number;
184
+ readonly changePolicy: {
185
+ readonly ignore: readonly string[];
186
+ readonly volatile: readonly string[];
187
+ };
188
+ }
189
+ /** The most recent run of a crawl, whatever its outcome. */
190
+ export interface CrawlRunSummary {
191
+ readonly kind: 'INITIAL' | 'MANUAL' | 'DISCOVERY';
192
+ readonly status: 'RUNNING' | 'DONE' | 'FAILED' | 'CANCELED';
193
+ /** ISO date-time. */
194
+ readonly startedAt: string;
195
+ /** ISO date-time; absent while the run is still going. */
196
+ readonly completedAt?: string;
197
+ /** `stalled` when the run was stopped because nothing settled for the stall timeout (an hour). */
198
+ readonly endReason?: 'stalled';
199
+ }
200
+ export interface CrawlStatus {
201
+ readonly id: CrawlId;
202
+ readonly state: 'crawling' | 'done' | 'syncing' | 'failed' | 'paused' | 'canceled';
203
+ /** ISO date-time the crawl was created. */
204
+ readonly createdAt?: string;
205
+ /** Registrable domain the crawl is scoped to. */
206
+ readonly domain?: string;
207
+ /** The crawl's label; absent when it is shown by its domain. */
208
+ readonly name?: string;
209
+ /** ISO date-time the crawl was archived. Archived crawls are canceled and left out of `list()`. */
210
+ readonly archivedAt?: string;
211
+ /** ISO date-time retention deletes an archived crawl, unless it is unarchived first. */
212
+ readonly deletesAt?: string;
213
+ readonly pages: number;
214
+ readonly failed: number;
215
+ /** How many of `failed` were skips: URLs given up after one attempt so their slot could move on. */
216
+ readonly skipped?: number;
217
+ readonly config?: CrawlConfigSummary;
218
+ readonly run?: CrawlRunSummary;
219
+ readonly sync?: CrawlSyncPolicy;
220
+ readonly freshness?: {
221
+ readonly pagesPastDue: number;
222
+ readonly maxOverdue: string;
223
+ readonly probeMisses: number;
224
+ readonly causes: readonly {
225
+ readonly kind: string;
226
+ readonly pages: number;
227
+ }[];
228
+ };
229
+ readonly coverage: {
230
+ readonly complete: boolean;
231
+ readonly pendingAtCap: number;
232
+ readonly sourcePartial: number;
233
+ readonly causes: readonly string[];
234
+ };
235
+ readonly progress: {
236
+ readonly queued: number;
237
+ readonly inFlight: number;
238
+ readonly done: number;
239
+ /** Page work alone; `queued` and `inFlight` also count robots and sitemap operations. */
240
+ readonly pages?: {
241
+ readonly queued: number;
242
+ readonly inFlight: number;
243
+ readonly skipped?: number;
244
+ };
245
+ };
246
+ /** Only meaningful while work is queued: why nothing is being rendered right now. */
247
+ readonly admission?: CrawlAdmission;
248
+ /** Trailing 24 hours; `budgetPerDay` is null when the sync policy sets no render budget. */
249
+ readonly renders?: {
250
+ readonly usedToday: number;
251
+ readonly budgetPerDay: number | null;
252
+ };
253
+ /** Renders settled in each of the last 60 minutes, oldest first, and the latest settle time. Single-crawl status only. */
254
+ readonly throughput?: {
255
+ readonly perMinute: ReadonlyArray<number>;
256
+ readonly lastSettledAt?: string;
257
+ };
258
+ readonly offset: CrawlOffset;
259
+ /** The activity stream's tail; absent for a crawl that has no activity yet. */
260
+ readonly activityOffset?: CrawlOffset;
261
+ }
262
+ export interface CrawlReadOptions {
263
+ readonly from?: CrawlOffset;
264
+ readonly live?: boolean;
265
+ readonly signal?: AbortSignal;
266
+ }
267
+ export interface MergedCrawlReadOptions {
268
+ readonly from?: Readonly<Record<CrawlId, CrawlOffset>>;
269
+ readonly live?: boolean;
270
+ readonly signal?: AbortSignal;
271
+ }
272
+ export interface CrawlListOptions {
273
+ /** 1..200, defaults to 50. */
274
+ readonly limit?: number;
275
+ /** Lists archived crawls instead of the rest. */
276
+ readonly archived?: boolean;
277
+ readonly signal?: AbortSignal;
278
+ }
279
+ export interface CrawlListResponse {
280
+ readonly crawls: CrawlStatus[];
281
+ }
282
+ export interface CrawlCreateOptions {
283
+ readonly idempotencyKey: string;
284
+ }
285
+ export interface CrawlRunOptions {
286
+ readonly idempotencyKey: string;
287
+ /** Recover an existing command, or fail without creating a replacement run. */
288
+ readonly replayOnly?: boolean;
289
+ }
290
+ export interface CrawlDoneResult {
291
+ readonly lastOffset: CrawlOffset;
292
+ readonly status: CrawlStatus;
293
+ }
294
+ export declare class CrawlClientError extends ExpandClientError {
295
+ readonly code?: string | undefined;
296
+ readonly status?: number | undefined;
297
+ readonly retryable: boolean;
298
+ readonly name: string;
299
+ constructor(message: string, code?: string | undefined, status?: number | undefined, retryable?: boolean);
300
+ }
301
+ /** API refusal with the Crawl error code and original response envelope. */
302
+ export declare class CrawlClientApiError extends ExpandClientApiError {
303
+ readonly code: string | undefined;
304
+ readonly retryable: boolean;
305
+ constructor(message: string, code: string | undefined, status: number, retryable?: boolean, body?: unknown);
306
+ }
307
+ export declare class CrawlOffsetExpiredError extends CrawlClientApiError {
308
+ readonly name: string;
309
+ }
310
+ interface CrawlTransportOptions {
311
+ readonly apiKey: string;
312
+ readonly baseUrl: string;
313
+ readonly fetch?: typeof globalThis.fetch;
314
+ readonly timeoutMs?: number;
315
+ readonly maxRetries?: number;
316
+ readonly signal?: AbortSignal;
317
+ }
318
+ export interface CrawlProjectionOptions {
319
+ readonly signal?: AbortSignal;
320
+ readonly timeoutMs?: number;
321
+ }
322
+ export interface CrawlListPage<T> {
323
+ readonly items: readonly T[];
324
+ readonly nextCursor?: string;
325
+ }
326
+ /** Await one page, iterate individual items, or use pages() for bounded batches. */
327
+ export declare class CrawlList<T> implements AsyncIterable<T>, PromiseLike<CrawlListPage<T>> {
328
+ private readonly fetchPage;
329
+ private readonly cursor?;
330
+ private readonly signal?;
331
+ private firstPage?;
332
+ constructor(fetchPage: (cursor?: string) => Promise<CrawlListPage<T>>, cursor?: string | undefined, signal?: AbortSignal | undefined);
333
+ private first;
334
+ then<TResult1 = CrawlListPage<T>, TResult2 = never>(onfulfilled?: ((value: CrawlListPage<T>) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null): PromiseLike<TResult1 | TResult2>;
335
+ pages(): AsyncGenerator<CrawlListPage<T>>;
336
+ [Symbol.asyncIterator](): AsyncGenerator<T>;
337
+ collect(options: {
338
+ readonly limit: number;
339
+ }): Promise<T[]>;
340
+ }
341
+ /** A discovered URL in any admission state (`GET /v1/crawls/:id/urls`), the snapshot half of the URL view. */
342
+ export interface CrawlUrl {
343
+ readonly id: string;
344
+ readonly url: string;
345
+ readonly state: 'pending' | 'candidate' | 'reserved' | 'admitted' | 'traversal';
346
+ readonly sourceId: string;
347
+ readonly depth: number;
348
+ readonly discoveredBy: 'seed' | 'sitemap' | 'link' | 'search';
349
+ /** ISO date-time. */
350
+ readonly discoveredAt: string;
351
+ /** Apply an activity event to this row only when `event.offset > activitySeq`. */
352
+ readonly activitySeq: CrawlOffset;
353
+ readonly pageId?: string;
354
+ /** Why the URL is where it is (`canceled`, `out-of-scope`, `skipped`, …). */
355
+ readonly reason?: string;
356
+ readonly excludedReason?: string;
357
+ /** What the render told us when `reason` is `skipped` (`http-500`, `timeout`). */
358
+ readonly skipDetail?: string;
359
+ /** ISO date-time: when a skipped URL may be rearmed by a later run. */
360
+ readonly availableAt?: string;
361
+ }
362
+ export interface CrawlUrlListPage {
363
+ readonly urls: readonly CrawlUrl[];
364
+ readonly nextCursor?: string;
365
+ readonly truncated: boolean;
366
+ /** The activity stream's tail, read before the rows: tail `crawl.activity({ from })` from here. */
367
+ readonly activityOffset: CrawlOffset;
368
+ /** Rows per state for the whole crawl under the same `source` and `search` filters, not just this page. */
369
+ readonly counts: Readonly<Record<string, number>>;
370
+ }
371
+ export interface CrawlCatalogPage {
372
+ readonly id: string;
373
+ readonly url: string;
374
+ readonly status: 'live' | 'removed';
375
+ readonly latestCaptureId?: string;
376
+ readonly changedAt?: string;
377
+ }
378
+ export interface CrawlCurrentPage {
379
+ readonly id: string;
380
+ readonly url: string;
381
+ readonly status: 'live' | 'removed';
382
+ readonly captureId?: string;
383
+ readonly meta?: CrawlPageMeta;
384
+ readonly page?: CrawlPageContent;
385
+ }
386
+ export interface CrawlArtifactLinks {
387
+ readonly markdown: string;
388
+ readonly html: string;
389
+ readonly stateJson: string;
390
+ readonly screenshot?: {
391
+ readonly url: string;
392
+ readonly fullPage: boolean;
393
+ };
394
+ readonly replay: string;
395
+ readonly playground: string;
396
+ readonly assets: string;
397
+ }
398
+ export interface CrawlPageVersion {
399
+ readonly captureId: string;
400
+ readonly observedAt: string;
401
+ readonly offset: CrawlOffset;
402
+ readonly contentSha256: string;
403
+ readonly http: {
404
+ readonly status: number;
405
+ readonly finalUrl: string;
406
+ };
407
+ readonly quality: 'complete' | 'best-effort' | 'degraded';
408
+ readonly meta: CrawlPageMeta;
409
+ readonly artifacts: CrawlArtifactLinks;
410
+ }
411
+ export interface CrawlCaptureContent {
412
+ readonly captureId: string;
413
+ readonly meta: CrawlPageMeta;
414
+ readonly page: CrawlPageContent;
415
+ readonly artifacts: CrawlArtifactLinks;
416
+ }
417
+ export declare class CrawlCaptureResource {
418
+ readonly id: string;
419
+ private readonly transport;
420
+ constructor(id: string, transport: CrawlTransportOptions);
421
+ get(options?: CrawlProjectionOptions): Promise<CrawlCaptureContent>;
422
+ stateJson(options?: CrawlProjectionOptions): Promise<CrawlStateJson>;
423
+ evidence(key: string, options?: CrawlProjectionOptions): Promise<CrawlJsonValue>;
424
+ markdown(options?: CrawlProjectionOptions): Promise<string>;
425
+ html(options?: CrawlProjectionOptions): Promise<string>;
426
+ playgroundUrl(): string;
427
+ }
428
+ export declare class CrawlPageResource {
429
+ readonly id: string;
430
+ private readonly transport;
431
+ constructor(id: string, transport: CrawlTransportOptions);
432
+ versions(options?: CrawlProjectionOptions & {
433
+ readonly limit?: number;
434
+ readonly before?: string;
435
+ readonly at?: string;
436
+ }): CrawlList<CrawlPageVersion>;
437
+ diff(options: CrawlProjectionOptions & {
438
+ readonly from: string;
439
+ readonly to: string;
440
+ }): Promise<CrawlPageChanged['diff']>;
441
+ }
442
+ /** Shares the Crawl transport without exposing its API key to arbitrary body URLs. */
443
+ export declare function makeCrawlProjectionsClient(transport: CrawlTransportOptions): {
444
+ captures(id: string): CrawlCaptureResource;
445
+ pages(id: string): CrawlPageResource;
446
+ fetchJson(url: string, options?: CrawlProjectionOptions): Promise<unknown>;
447
+ };
448
+ export interface CrawlStreamPage<T> {
449
+ readonly crawlId: CrawlId;
450
+ readonly items: readonly T[];
451
+ readonly nextOffset: CrawlOffset;
452
+ readonly upToDate: boolean;
453
+ readonly streamClosed: boolean;
454
+ }
455
+ export type CrawlEventPage = CrawlStreamPage<CrawlEvent>;
456
+ export type CrawlActivityPage = CrawlStreamPage<CrawlActivityEvent>;
457
+ declare class CrawlIterable<T> implements AsyncIterable<T> {
458
+ private readonly factory;
459
+ protected readonly externalSignal?: AbortSignal | undefined;
460
+ constructor(factory: (signal: AbortSignal) => AsyncGenerator<T>, externalSignal?: AbortSignal | undefined);
461
+ [Symbol.asyncIterator](): AsyncIterator<T>;
462
+ collect(options: {
463
+ readonly limit: number;
464
+ }): Promise<T[]>;
465
+ }
466
+ export declare class CrawlStreamPageIterable<T> extends CrawlIterable<CrawlStreamPage<T>> implements PromiseLike<CrawlStreamPage<T> | undefined> {
467
+ then<TResult1 = CrawlStreamPage<T> | undefined, TResult2 = never>(onfulfilled?: ((page: CrawlStreamPage<T> | undefined) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null): PromiseLike<TResult1 | TResult2>;
468
+ }
469
+ export declare class CrawlStreamIterable<T> extends CrawlIterable<T> implements PromiseLike<CrawlStreamPage<T> | undefined> {
470
+ private readonly pageFactory;
471
+ constructor(factory: (signal: AbortSignal) => AsyncGenerator<T>, pageFactory: (signal: AbortSignal) => AsyncGenerator<CrawlStreamPage<T>>, signal?: AbortSignal);
472
+ pages(): CrawlStreamPageIterable<T>;
473
+ then<TResult1 = CrawlStreamPage<T> | undefined, TResult2 = never>(onfulfilled?: ((page: CrawlStreamPage<T> | undefined) => TResult1 | PromiseLike<TResult1>) | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null): PromiseLike<TResult1 | TResult2>;
474
+ }
475
+ export declare class CrawlEventPageIterable extends CrawlStreamPageIterable<CrawlEvent> {
476
+ }
477
+ export declare class CrawlEventIterable extends CrawlStreamIterable<CrawlEvent> {
478
+ }
479
+ export declare class CrawlActivityPageIterable extends CrawlStreamPageIterable<CrawlActivityEvent> {
480
+ }
481
+ export declare class CrawlActivityIterable extends CrawlStreamIterable<CrawlActivityEvent> {
482
+ }
483
+ export declare class CrawlResource {
484
+ readonly id: CrawlId;
485
+ private readonly transport;
486
+ constructor(id: CrawlId, transport: CrawlTransportOptions);
487
+ events(options?: CrawlReadOptions): CrawlEventIterable;
488
+ /**
489
+ * The activity stream: batches of URL transitions without content, for progress and
490
+ * operator views. Same shape as `events`; a one-off's iteration ends on stream closure.
491
+ */
492
+ activity(options?: CrawlReadOptions): CrawlActivityIterable;
493
+ /** A pinned live-catalog snapshot. Resume /events from the final page's nextOffset. */
494
+ snapshot(options?: CrawlProjectionOptions & {
495
+ readonly from?: string;
496
+ }): CrawlEventIterable;
497
+ private readSnapshotItems;
498
+ private readSnapshotPages;
499
+ private readStreamPages;
500
+ pages(options?: CrawlProjectionOptions & {
501
+ readonly limit?: number;
502
+ readonly cursor?: string;
503
+ readonly prefix?: string;
504
+ readonly status?: 'live' | 'removed';
505
+ readonly changedSince?: string;
506
+ }): CrawlList<CrawlCatalogPage>;
507
+ /**
508
+ * Every discovered URL in any admission state, cursor-paginated and filterable by state,
509
+ * source and a URL substring (`search`, matched literally and case-insensitively across the
510
+ * whole crawl). The first page's `activityOffset` is where to start an activity tail that
511
+ * keeps the snapshot current: apply an event to a URL only when `event.offset > url.activitySeq`.
512
+ */
513
+ urls(options?: CrawlProjectionOptions & {
514
+ readonly limit?: number;
515
+ readonly cursor?: string;
516
+ readonly state?: CrawlUrl['state'];
517
+ readonly source?: string;
518
+ readonly search?: string;
519
+ }): CrawlList<CrawlUrl>;
520
+ /** One page of the discovered-URLs view with its counts and activity offset, for callers that need the envelope. */
521
+ urlsPage(options?: CrawlProjectionOptions & {
522
+ readonly limit?: number;
523
+ readonly cursor?: string;
524
+ readonly state?: CrawlUrl['state'];
525
+ readonly source?: string;
526
+ readonly search?: string;
527
+ }): Promise<CrawlUrlListPage>;
528
+ page(id: string, options?: CrawlProjectionOptions): Promise<CrawlCurrentPage>;
529
+ pageByUrl(url: string, options?: CrawlProjectionOptions): Promise<CrawlCurrentPage>;
530
+ private readStream;
531
+ status(options?: {
532
+ readonly signal?: AbortSignal;
533
+ }): Promise<CrawlStatus>;
534
+ done(options?: {
535
+ readonly signal?: AbortSignal;
536
+ readonly pollIntervalMs?: number;
537
+ }): Promise<CrawlDoneResult>;
538
+ update(patch: {
539
+ readonly sync?: CrawlSyncPolicy | null;
540
+ readonly changePolicy?: CrawlChangePolicy;
541
+ readonly maxPages?: number;
542
+ /** `null` clears the name. A name can be changed even on a closed or archived crawl. */
543
+ readonly name?: string | null;
544
+ }): Promise<CrawlStatus>;
545
+ cancel(): Promise<CrawlStatus>;
546
+ /** Cancels the crawl if it is live and hides it from `list()`. It is deleted 90 days later unless unarchived. */
547
+ archive(): Promise<CrawlStatus>;
548
+ /** Returns an archived crawl to `list()`, still canceled, and keeps it for at least 90 more days. */
549
+ unarchive(): Promise<CrawlStatus>;
550
+ run(options: CrawlRunOptions): Promise<CrawlStatus>;
551
+ }
552
+ export declare class MergedCrawlResource {
553
+ private readonly crawls;
554
+ constructor(crawls: readonly CrawlResource[]);
555
+ events(options?: MergedCrawlReadOptions): CrawlEventIterable;
556
+ private readItems;
557
+ }
558
+ /** Create, list and control crawls. */
559
+ export interface CrawlsClient {
560
+ (id: string): CrawlResource;
561
+ create(request: CrawlRequest, options: CrawlCreateOptions): Promise<CrawlResource[]>;
562
+ /** The organization's crawls, newest first, each with its current status. */
563
+ list(options?: CrawlListOptions): Promise<CrawlListResponse>;
564
+ merge(crawls: readonly CrawlResource[]): MergedCrawlResource;
565
+ }
566
+ export declare function makeCrawlsClient(options: CrawlTransportOptions): CrawlsClient;
567
+ export {};
568
+ //# sourceMappingURL=Crawls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Crawls.d.ts","sourceRoot":"","sources":["../../src/Crawls.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { HttpClient } from '@effect/platform';
2
+ import { Layer, Option } from 'effect';
3
+ /**
4
+ * Describes the first configured proxy environment variable whose value is not
5
+ * a valid URL, or `None` when the proxy configuration is usable. Undici's
6
+ * `EnvHttpProxyAgent` throws a raw `TypeError: Invalid URL` mid-construction
7
+ * on such a value; callers surface this message early instead (the SDK's
8
+ * `buildServiceConfig`, the CLI's startup preflight). Checked with the same
9
+ * effective-value precedence undici applies, so a value undici would never
10
+ * parse is never rejected here.
11
+ */
12
+ export declare function invalidProxyEnvMessage(): Option.Option<string>;
13
+ /**
14
+ * `HttpClient` layer honoring the standard proxy environment variables
15
+ * `HTTP_PROXY`, `HTTPS_PROXY`, and `NO_PROXY` (upper- or lowercase).
16
+ *
17
+ * Requests dispatch through undici's `EnvHttpProxyAgent`, which resolves the
18
+ * proxy configuration at acquisition and degrades to a plain undici `Agent`
19
+ * when no proxy variable is set.
20
+ *
21
+ * A malformed proxy URL dies with a descriptive `ExpandSdkError` rather than
22
+ * failing typed: an error channel here would ripple through every dependent
23
+ * service's `Default` layer type, and the callers that can act on the problem
24
+ * already validate eagerly via {@link invalidProxyEnvMessage}. The die is the
25
+ * safety net for paths that skip that, e.g. the CLI's exported MCP server.
26
+ */
27
+ export declare const layer: Layer.Layer<HttpClient.HttpClient>;
28
+ //# sourceMappingURL=EnvProxyHttpClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EnvProxyHttpClient.d.ts","sourceRoot":"","sources":["../../src/EnvProxyHttpClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAU,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAW9C;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAiB9D;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAepD,CAAA"}