firecrawl 4.39.0 → 4.41.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.
- package/README.md +46 -0
- package/dist/{chunk-4DPCCKWG.js → chunk-I2DFXQYR.js} +1 -1
- package/dist/index.cjs +169 -10
- package/dist/index.d.cts +167 -13
- package/dist/index.d.ts +167 -13
- package/dist/index.js +168 -10
- package/dist/{package-D2QZMRW7.js → package-V72LKFNW.js} +1 -1
- package/package.json +1 -1
- package/pnpm-workspace.yaml +2 -2
- package/src/__tests__/unit/v2/extract.unit.test.ts +23 -0
- package/src/__tests__/unit/v2/threat-protection.unit.test.ts +18 -1
- package/src/__tests__/unit/v2/tools.unit.test.ts +297 -0
- package/src/v2/client.ts +39 -3
- package/src/v2/methods/extract.ts +2 -1
- package/src/v2/methods/scrape.ts +3 -1
- package/src/v2/methods/search.ts +8 -1
- package/src/v2/methods/tools.ts +137 -0
- package/src/v2/types.ts +186 -9
- package/src/v2/utils/errorHandler.ts +19 -3
package/README.md
CHANGED
|
@@ -386,3 +386,49 @@ The Firecrawl Node SDK is licensed under the MIT License. This means you are fre
|
|
|
386
386
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
387
387
|
|
|
388
388
|
Please note that while this SDK is MIT licensed, it is part of a larger project which may be under different licensing terms. Always refer to the license information in the root directory of the main project for overall licensing details.
|
|
389
|
+
|
|
390
|
+
### Alexandria
|
|
391
|
+
|
|
392
|
+
With a matching API deployment, Search returns complete tool contracts in `tools`.
|
|
393
|
+
`domainTools: true` adds domain matches to that same array. Find Tools walks the catalogue
|
|
394
|
+
without executing the tools it returns.
|
|
395
|
+
|
|
396
|
+
```ts
|
|
397
|
+
const results = await firecrawl.search("podcast conversations about AI agents", {
|
|
398
|
+
sources: ["web", "alexandria"],
|
|
399
|
+
domainTools: true,
|
|
400
|
+
limit: 2,
|
|
401
|
+
});
|
|
402
|
+
console.log(results.tools?.[0].options);
|
|
403
|
+
|
|
404
|
+
const catalogue = await firecrawl.findTools({ providers: ["particle"], limit: 2 });
|
|
405
|
+
const next = catalogue.items[0]?.next;
|
|
406
|
+
if (next) console.log(await firecrawl.scrape({ alexandria: next }));
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
Execute a selected contract with `scrape({ alexandria, requestId })`, where `alexandria`
|
|
410
|
+
is one `{ provider, capability, options }` call or an array of up to ten calls:
|
|
411
|
+
|
|
412
|
+
```ts
|
|
413
|
+
const requestId = crypto.randomUUID();
|
|
414
|
+
const result = await firecrawl.scrape({
|
|
415
|
+
alexandria: {
|
|
416
|
+
provider: "particle",
|
|
417
|
+
capability: "podcasts/episodes/search",
|
|
418
|
+
options: { semantic_search: "AI agents" },
|
|
419
|
+
},
|
|
420
|
+
requestId,
|
|
421
|
+
});
|
|
422
|
+
for (const item of result.alexandria) {
|
|
423
|
+
if (item.error) console.error(item.error.code, item.error.message);
|
|
424
|
+
else console.log(item.data);
|
|
425
|
+
}
|
|
426
|
+
```
|
|
427
|
+
|
|
428
|
+
Check each returned `alexandria` item's `error` before using its `data`. The result and
|
|
429
|
+
execution errors expose `requestId`; reuse it with the identical payload for a retry.
|
|
430
|
+
Automatic retries retain the same ID. Find Tools costs zero credits; provider execution
|
|
431
|
+
uses its published price. A provider whose data terms have not been accepted rejects the
|
|
432
|
+
call with a 403 whose `SdkError` carries `code: "THIRD_PARTY_DATA_TERMS_REQUIRED"` and a
|
|
433
|
+
`requiresAction: { type: "accept_terms", terms, version, url }` pointing at the page where
|
|
434
|
+
an organization admin can accept them.
|
|
@@ -12,7 +12,7 @@ var require_package = __commonJS({
|
|
|
12
12
|
"package.json"(exports, module) {
|
|
13
13
|
module.exports = {
|
|
14
14
|
name: "@mendable/firecrawl-js",
|
|
15
|
-
version: "4.
|
|
15
|
+
version: "4.41.0",
|
|
16
16
|
description: "JavaScript SDK for the Firecrawl API: web scraping, crawling, web search, and scientific literature search over a research paper index of PubMed, bioRxiv, medRxiv and arXiv abstracts",
|
|
17
17
|
main: "dist/index.js",
|
|
18
18
|
types: "dist/index.d.ts",
|
package/dist/index.cjs
CHANGED
|
@@ -39,7 +39,7 @@ var require_package = __commonJS({
|
|
|
39
39
|
"package.json"(exports2, module2) {
|
|
40
40
|
module2.exports = {
|
|
41
41
|
name: "@mendable/firecrawl-js",
|
|
42
|
-
version: "4.
|
|
42
|
+
version: "4.41.0",
|
|
43
43
|
description: "JavaScript SDK for the Firecrawl API: web scraping, crawling, web search, and scientific literature search over a research paper index of PubMed, bioRxiv, medRxiv and arXiv abstracts",
|
|
44
44
|
main: "dist/index.js",
|
|
45
45
|
types: "dist/index.d.ts",
|
|
@@ -129,7 +129,8 @@ __export(index_exports, {
|
|
|
129
129
|
ResearchClient: () => ResearchClient,
|
|
130
130
|
SdkError: () => SdkError,
|
|
131
131
|
Watcher: () => Watcher,
|
|
132
|
-
default: () => index_default
|
|
132
|
+
default: () => index_default,
|
|
133
|
+
parseRequiresAction: () => parseRequiresAction
|
|
133
134
|
});
|
|
134
135
|
module.exports = __toCommonJS(index_exports);
|
|
135
136
|
|
|
@@ -269,18 +270,35 @@ var HttpClient = class {
|
|
|
269
270
|
};
|
|
270
271
|
|
|
271
272
|
// src/v2/types.ts
|
|
273
|
+
function parseRequiresAction(value) {
|
|
274
|
+
if (!value || typeof value !== "object") return void 0;
|
|
275
|
+
const record = value;
|
|
276
|
+
if (typeof record.type !== "string") return void 0;
|
|
277
|
+
const action = { type: record.type };
|
|
278
|
+
if (typeof record.terms === "string") action.terms = record.terms;
|
|
279
|
+
if (typeof record.version === "string") action.version = record.version;
|
|
280
|
+
if (typeof record.url === "string") action.url = record.url;
|
|
281
|
+
return action;
|
|
282
|
+
}
|
|
272
283
|
var SdkError = class extends Error {
|
|
284
|
+
requestId;
|
|
273
285
|
status;
|
|
274
286
|
code;
|
|
275
287
|
details;
|
|
276
288
|
jobId;
|
|
277
|
-
|
|
289
|
+
/** Present on exchange-mediated scrape failures that already captured credits. */
|
|
290
|
+
chargeId;
|
|
291
|
+
/** Present when the API needs an out-of-band step first, such as accepting provider terms. */
|
|
292
|
+
requiresAction;
|
|
293
|
+
constructor(message, status, code, details, jobId, chargeId, requiresAction) {
|
|
278
294
|
super(message);
|
|
279
295
|
this.name = "FirecrawlSdkError";
|
|
280
296
|
this.status = status;
|
|
281
297
|
this.code = code;
|
|
282
298
|
this.details = details;
|
|
283
299
|
this.jobId = jobId;
|
|
300
|
+
this.chargeId = chargeId;
|
|
301
|
+
this.requiresAction = requiresAction;
|
|
284
302
|
}
|
|
285
303
|
};
|
|
286
304
|
var JobTimeoutError = class extends SdkError {
|
|
@@ -532,14 +550,30 @@ function throwForBadResponse(resp, action) {
|
|
|
532
550
|
const status = resp.status;
|
|
533
551
|
const body = resp.data || {};
|
|
534
552
|
const msg = body?.error || body?.message || `Request failed (${status}) while trying to ${action}`;
|
|
535
|
-
throw new SdkError(
|
|
553
|
+
throw new SdkError(
|
|
554
|
+
msg,
|
|
555
|
+
status,
|
|
556
|
+
body?.code,
|
|
557
|
+
body?.details,
|
|
558
|
+
void 0,
|
|
559
|
+
body?.chargeId,
|
|
560
|
+
parseRequiresAction(body?.requiresAction)
|
|
561
|
+
);
|
|
536
562
|
}
|
|
537
563
|
function normalizeAxiosError(err, action) {
|
|
538
564
|
const status = err.response?.status;
|
|
539
565
|
const body = err.response?.data;
|
|
540
566
|
const message = body?.error || err.message || `Request failed${status ? ` (${status})` : ""} while trying to ${action}`;
|
|
541
567
|
const code = body?.code || err.code;
|
|
542
|
-
throw new SdkError(
|
|
568
|
+
throw new SdkError(
|
|
569
|
+
message,
|
|
570
|
+
status,
|
|
571
|
+
code,
|
|
572
|
+
body?.details ?? body,
|
|
573
|
+
void 0,
|
|
574
|
+
body?.chargeId,
|
|
575
|
+
parseRequiresAction(body?.requiresAction)
|
|
576
|
+
);
|
|
543
577
|
}
|
|
544
578
|
function isRetryableError(err) {
|
|
545
579
|
if (err instanceof JobTimeoutError) {
|
|
@@ -585,9 +619,10 @@ async function scrape(http, url, options, deps = {}) {
|
|
|
585
619
|
throw new Error("URL cannot be empty");
|
|
586
620
|
}
|
|
587
621
|
if (options) ensureValidScrapeOptions(options);
|
|
588
|
-
const { autoResume, ...requestOptions } = options ?? {};
|
|
622
|
+
const { autoResume, domainTools, ...requestOptions } = options ?? {};
|
|
589
623
|
const payload = { url: url.trim() };
|
|
590
624
|
Object.assign(payload, requestOptions);
|
|
625
|
+
if (domainTools) payload.domainTools = domainTools;
|
|
591
626
|
const requestTimeout = autoResume === false ? typeof options?.timeout === "number" ? { timeoutMs: options.timeout + 5e3 } : {} : {
|
|
592
627
|
timeoutMs: Math.max(
|
|
593
628
|
typeof options?.timeout === "number" ? options.timeout : 3e5,
|
|
@@ -744,6 +779,8 @@ function prepareSearchPayload(req) {
|
|
|
744
779
|
const payload = {
|
|
745
780
|
query: req.query
|
|
746
781
|
};
|
|
782
|
+
if (req.toolDetail != null) payload.toolDetail = req.toolDetail;
|
|
783
|
+
if (req.domainTools != null) payload.domainTools = req.domainTools;
|
|
747
784
|
if (req.sources) payload.sources = req.sources;
|
|
748
785
|
if (req.categories) payload.categories = req.categories;
|
|
749
786
|
if (req.includeDomains) payload.includeDomains = req.includeDomains;
|
|
@@ -796,10 +833,12 @@ async function search(http, request) {
|
|
|
796
833
|
}
|
|
797
834
|
const data = res.data.data || {};
|
|
798
835
|
const out = {};
|
|
836
|
+
if (res.data.warning) out.warning = res.data.warning;
|
|
799
837
|
if (data.web) out.web = transformArray(data.web);
|
|
800
838
|
if (data.news) out.news = transformArray(data.news);
|
|
801
839
|
if (data.images)
|
|
802
840
|
out.images = transformArray(data.images);
|
|
841
|
+
if (data.tools) out.tools = data.tools;
|
|
803
842
|
Object.defineProperty(out, "data", {
|
|
804
843
|
get() {
|
|
805
844
|
const parts = [];
|
|
@@ -807,7 +846,9 @@ async function search(http, request) {
|
|
|
807
846
|
if (out.news?.length) parts.push(`.news (${out.news.length} results)`);
|
|
808
847
|
if (out.images?.length)
|
|
809
848
|
parts.push(`.images (${out.images.length} results)`);
|
|
810
|
-
|
|
849
|
+
if (out.tools?.length)
|
|
850
|
+
parts.push(`.tools (${out.tools.length} results)`);
|
|
851
|
+
const available = parts.length ? parts.join(", ") : ".web, .news, .images, or .tools";
|
|
811
852
|
throw new Error(
|
|
812
853
|
`SearchData has no '.data'. Results are grouped by source: ${available}`
|
|
813
854
|
);
|
|
@@ -822,6 +863,101 @@ async function search(http, request) {
|
|
|
822
863
|
}
|
|
823
864
|
}
|
|
824
865
|
|
|
866
|
+
// src/v2/methods/tools.ts
|
|
867
|
+
var ALEXANDRIA_MAX_CALLS = 10;
|
|
868
|
+
function prepareAlexandriaPayload(calls, opts) {
|
|
869
|
+
if (!Array.isArray(calls) || calls.length === 0) {
|
|
870
|
+
throw new Error("alexandria requires at least one call");
|
|
871
|
+
}
|
|
872
|
+
if (calls.length > ALEXANDRIA_MAX_CALLS) {
|
|
873
|
+
throw new Error(`alexandria accepts at most ${ALEXANDRIA_MAX_CALLS} calls`);
|
|
874
|
+
}
|
|
875
|
+
const alexandria = calls.map((call, index) => {
|
|
876
|
+
if (!call || typeof call.provider !== "string" || !call.provider.trim()) {
|
|
877
|
+
throw new Error(`alexandria[${index}].provider cannot be empty`);
|
|
878
|
+
}
|
|
879
|
+
if (typeof call.capability !== "string" || !call.capability.trim()) {
|
|
880
|
+
throw new Error(`alexandria[${index}].capability cannot be empty`);
|
|
881
|
+
}
|
|
882
|
+
if (Object.keys(call).some(
|
|
883
|
+
(key) => !["provider", "capability", "options"].includes(key)
|
|
884
|
+
))
|
|
885
|
+
throw new Error("Unknown alexandria call option");
|
|
886
|
+
const item = {
|
|
887
|
+
provider: call.provider.trim(),
|
|
888
|
+
capability: call.capability.trim()
|
|
889
|
+
};
|
|
890
|
+
if (call.options != null) {
|
|
891
|
+
if (typeof call.options !== "object" || Array.isArray(call.options)) {
|
|
892
|
+
throw new Error(`alexandria[${index}].options must be an object`);
|
|
893
|
+
}
|
|
894
|
+
item.options = call.options;
|
|
895
|
+
}
|
|
896
|
+
return item;
|
|
897
|
+
});
|
|
898
|
+
if (opts.timeout != null && (!Number.isInteger(opts.timeout) || opts.timeout <= 0)) {
|
|
899
|
+
throw new Error("timeout must be a positive integer");
|
|
900
|
+
}
|
|
901
|
+
const payload = { alexandria };
|
|
902
|
+
if (opts.timeout != null) payload.timeout = opts.timeout;
|
|
903
|
+
if (opts.integration && opts.integration.trim())
|
|
904
|
+
payload.integration = opts.integration.trim();
|
|
905
|
+
if (opts.origin) payload.origin = opts.origin;
|
|
906
|
+
return payload;
|
|
907
|
+
}
|
|
908
|
+
async function scrapeAlexandria(http, calls, opts = {}) {
|
|
909
|
+
const payload = prepareAlexandriaPayload(calls, opts);
|
|
910
|
+
const requestId = opts.requestId ?? crypto.randomUUID();
|
|
911
|
+
if (!/^[A-Za-z0-9._:-]{1,128}$/.test(requestId))
|
|
912
|
+
throw new Error("Invalid requestId");
|
|
913
|
+
try {
|
|
914
|
+
const res = await http.post("/v2/scrape", payload, {
|
|
915
|
+
headers: { "x-request-id": requestId },
|
|
916
|
+
// Allow response delivery after the API's capped execution deadline.
|
|
917
|
+
timeoutMs: Math.min(opts.timeout ?? 5e4, 5e4) + 3e4
|
|
918
|
+
});
|
|
919
|
+
if (res.status !== 200 || !res.data?.success) {
|
|
920
|
+
throwForBadResponse(res, "alexandria");
|
|
921
|
+
}
|
|
922
|
+
const data = res.data.data;
|
|
923
|
+
if (!data || !Array.isArray(data.alexandria) || typeof data.creditsCost !== "number" || !Number.isInteger(data.creditsCost) || data.creditsCost < 0) {
|
|
924
|
+
throw new SdkError("Invalid alexandria response");
|
|
925
|
+
}
|
|
926
|
+
return {
|
|
927
|
+
scrapeId: res.data.scrape_id ?? "",
|
|
928
|
+
requestId,
|
|
929
|
+
alexandria: data.alexandria,
|
|
930
|
+
creditsCost: data.creditsCost
|
|
931
|
+
};
|
|
932
|
+
} catch (err) {
|
|
933
|
+
try {
|
|
934
|
+
if (err?.isAxiosError) normalizeAxiosError(err, "alexandria");
|
|
935
|
+
throw err;
|
|
936
|
+
} catch (error) {
|
|
937
|
+
if (error && typeof error === "object")
|
|
938
|
+
Object.assign(error, { requestId });
|
|
939
|
+
throw error;
|
|
940
|
+
}
|
|
941
|
+
}
|
|
942
|
+
}
|
|
943
|
+
async function findTools(http, options = {}) {
|
|
944
|
+
const result = await scrapeAlexandria(http, [
|
|
945
|
+
{
|
|
946
|
+
provider: "firecrawl",
|
|
947
|
+
capability: "find-tools",
|
|
948
|
+
options: { ...options }
|
|
949
|
+
}
|
|
950
|
+
]);
|
|
951
|
+
const item = result.alexandria[0];
|
|
952
|
+
if (!item) throw new SdkError("Missing Find Tools result");
|
|
953
|
+
if (item.error)
|
|
954
|
+
throw Object.assign(
|
|
955
|
+
new SdkError(item.error.message, item.error.status, item.error.code),
|
|
956
|
+
{ requestId: result.requestId }
|
|
957
|
+
);
|
|
958
|
+
return item.data;
|
|
959
|
+
}
|
|
960
|
+
|
|
825
961
|
// src/v2/methods/developer.ts
|
|
826
962
|
var ENDPOINT = "/v2/search/developer";
|
|
827
963
|
async function developerSearch(http, query, options = {}) {
|
|
@@ -1312,7 +1448,8 @@ function prepareExtractPayload(args) {
|
|
|
1312
1448
|
body.threatProtection = args.threatProtection;
|
|
1313
1449
|
if (args.scrapeOptions) {
|
|
1314
1450
|
ensureValidScrapeOptions(args.scrapeOptions);
|
|
1315
|
-
|
|
1451
|
+
const { toolDetail, domainTools, ...scrapeOptions } = args.scrapeOptions;
|
|
1452
|
+
body.scrapeOptions = scrapeOptions;
|
|
1316
1453
|
}
|
|
1317
1454
|
return body;
|
|
1318
1455
|
}
|
|
@@ -2149,7 +2286,28 @@ var FirecrawlClient = class {
|
|
|
2149
2286
|
});
|
|
2150
2287
|
}
|
|
2151
2288
|
async scrape(url, options) {
|
|
2152
|
-
return scrape(this.http, url, options);
|
|
2289
|
+
if (typeof url === "string") return scrape(this.http, url, options);
|
|
2290
|
+
if (!url || options !== void 0 || Object.keys(url).some(
|
|
2291
|
+
(key) => ![
|
|
2292
|
+
"alexandria",
|
|
2293
|
+
"requestId",
|
|
2294
|
+
"timeout",
|
|
2295
|
+
"integration",
|
|
2296
|
+
"origin"
|
|
2297
|
+
].includes(key)
|
|
2298
|
+
)) {
|
|
2299
|
+
throw new Error("Provide an alexandria request without URL scrape options");
|
|
2300
|
+
}
|
|
2301
|
+
const { alexandria, ...opts } = url;
|
|
2302
|
+
return scrapeAlexandria(
|
|
2303
|
+
this.http,
|
|
2304
|
+
Array.isArray(alexandria) ? alexandria : [alexandria],
|
|
2305
|
+
opts
|
|
2306
|
+
);
|
|
2307
|
+
}
|
|
2308
|
+
/** Explore the catalogue without executing the tools it returns. */
|
|
2309
|
+
async findTools(options) {
|
|
2310
|
+
return findTools(this.http, options);
|
|
2153
2311
|
}
|
|
2154
2312
|
/**
|
|
2155
2313
|
* Interact with the browser session associated with a scrape job.
|
|
@@ -4041,5 +4199,6 @@ var index_default = Firecrawl;
|
|
|
4041
4199
|
JobTimeoutError,
|
|
4042
4200
|
ResearchClient,
|
|
4043
4201
|
SdkError,
|
|
4044
|
-
Watcher
|
|
4202
|
+
Watcher,
|
|
4203
|
+
parseRequiresAction
|
|
4045
4204
|
});
|
package/dist/index.d.cts
CHANGED
|
@@ -118,6 +118,15 @@ type ActionOption = WaitAction | ScreenshotAction | ClickAction | WriteAction |
|
|
|
118
118
|
interface AuditMetadata$1 {
|
|
119
119
|
username: string;
|
|
120
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* OCR raster images (PNG, JPEG, JPEG 2000, TIFF, GIF, BMP, WebP, AVIF) as
|
|
123
|
+
* one-page documents. Part of the default parsers list next to "pdf"; takes
|
|
124
|
+
* no options, so the string "image" is equivalent. Omit it from an explicit
|
|
125
|
+
* list to keep image URLs failing as unsupported files.
|
|
126
|
+
*/
|
|
127
|
+
type ImageParser = {
|
|
128
|
+
type: "image";
|
|
129
|
+
};
|
|
121
130
|
type PDFParser = {
|
|
122
131
|
type: "pdf";
|
|
123
132
|
mode?: "fast" | "auto" | "ocr";
|
|
@@ -174,7 +183,7 @@ interface ScrapeOptions {
|
|
|
174
183
|
timeout?: number;
|
|
175
184
|
waitFor?: number;
|
|
176
185
|
mobile?: boolean;
|
|
177
|
-
parsers?: Array<string | PDFParser>;
|
|
186
|
+
parsers?: Array<string | PDFParser | ImageParser>;
|
|
178
187
|
actions?: ActionOption[];
|
|
179
188
|
location?: LocationConfig$1;
|
|
180
189
|
skipTlsVerification?: boolean;
|
|
@@ -200,6 +209,10 @@ interface ScrapeOptions {
|
|
|
200
209
|
};
|
|
201
210
|
integration?: string;
|
|
202
211
|
origin?: string;
|
|
212
|
+
/** Include domain-matched Alexandria tools for this URL in `tools`. Default off. */
|
|
213
|
+
domainTools?: boolean;
|
|
214
|
+
/** Summary by default; compact returns identity and description, full includes contracts. */
|
|
215
|
+
toolDetail?: "compact" | "summary" | "full";
|
|
203
216
|
}
|
|
204
217
|
type RedactPIIEntity = "PERSON" | "EMAIL" | "PHONE" | "LOCATION" | "FINANCIAL" | "SECRET";
|
|
205
218
|
interface RedactPIIOptions {
|
|
@@ -225,8 +238,14 @@ interface RedactPIIOptions {
|
|
|
225
238
|
* fields you provide replace the team policy's values.
|
|
226
239
|
*/
|
|
227
240
|
interface ThreatProtectionOptions {
|
|
228
|
-
/**
|
|
229
|
-
|
|
241
|
+
/**
|
|
242
|
+
* "off" disables scanning for this request; "manual-only" enforces only the
|
|
243
|
+
* blacklist / whitelist / blocked TLDs (no provider scan, no scan fee);
|
|
244
|
+
* "normal" scans with Google Web Risk; "zscaler" classifies through your
|
|
245
|
+
* organization's Zscaler connection. Enforced teams may raise the mode per
|
|
246
|
+
* request but never lower it.
|
|
247
|
+
*/
|
|
248
|
+
mode?: "off" | "manual-only" | "normal" | "zscaler";
|
|
230
249
|
/** Block verdicts at or above this risk score (integer 0-100). */
|
|
231
250
|
riskScoreThreshold?: number;
|
|
232
251
|
/** Exact domains or globs like "*.example.com" to always block (max 1000). */
|
|
@@ -244,7 +263,7 @@ interface ParseFile {
|
|
|
244
263
|
filename: string;
|
|
245
264
|
contentType?: string;
|
|
246
265
|
}
|
|
247
|
-
type ParseOptions = Omit<ScrapeOptions, "formats" | "waitFor" | "mobile" | "actions" | "location" | "maxAge" | "minAge" | "storeInCache" | "lockdown" | "proxy" | "threatProtection"> & {
|
|
266
|
+
type ParseOptions = Omit<ScrapeOptions, "formats" | "waitFor" | "mobile" | "actions" | "location" | "maxAge" | "minAge" | "storeInCache" | "lockdown" | "proxy" | "threatProtection" | "toolDetail"> & {
|
|
248
267
|
formats?: ParseFormatOption[];
|
|
249
268
|
proxy?: "basic" | "auto";
|
|
250
269
|
};
|
|
@@ -549,6 +568,8 @@ interface Document {
|
|
|
549
568
|
pages?: PdfPage[];
|
|
550
569
|
/** Typed PDF layout blocks, present only when `parsers[].blocks` is true. */
|
|
551
570
|
blocks?: PdfPageBlocks[];
|
|
571
|
+
/** Present when `domainTools` discovered contracts matching this URL. */
|
|
572
|
+
tools?: DiscoveredTool[];
|
|
552
573
|
}
|
|
553
574
|
interface PaginationConfig {
|
|
554
575
|
/** When true (default), automatically follow `next` links and aggregate all documents. */
|
|
@@ -650,9 +671,122 @@ interface SearchResultImages {
|
|
|
650
671
|
position?: number;
|
|
651
672
|
}
|
|
652
673
|
interface SearchData {
|
|
674
|
+
warning?: string;
|
|
653
675
|
web?: Array<SearchResultWeb | Document>;
|
|
654
676
|
news?: Array<SearchResultNews | Document>;
|
|
655
677
|
images?: Array<SearchResultImages | Document>;
|
|
678
|
+
tools?: DiscoveredTool[];
|
|
679
|
+
}
|
|
680
|
+
/** A complete tool contract returned by semantic or contextual discovery. */
|
|
681
|
+
interface DiscoveredTool {
|
|
682
|
+
next?: AlexandriaCall;
|
|
683
|
+
id?: string;
|
|
684
|
+
provider: string;
|
|
685
|
+
capability: string;
|
|
686
|
+
name?: string;
|
|
687
|
+
description: string;
|
|
688
|
+
creditsCost?: number;
|
|
689
|
+
perRecord?: boolean;
|
|
690
|
+
options?: Array<{
|
|
691
|
+
name: string;
|
|
692
|
+
type: string;
|
|
693
|
+
required?: boolean;
|
|
694
|
+
[key: string]: unknown;
|
|
695
|
+
}>;
|
|
696
|
+
requiresOneOf?: string[][];
|
|
697
|
+
response?: {
|
|
698
|
+
about?: string;
|
|
699
|
+
key?: string;
|
|
700
|
+
fields?: Array<{
|
|
701
|
+
name: string;
|
|
702
|
+
type: string;
|
|
703
|
+
[key: string]: unknown;
|
|
704
|
+
}>;
|
|
705
|
+
[key: string]: unknown;
|
|
706
|
+
};
|
|
707
|
+
examples?: Partial<Record<"javascript" | "python" | "curl", string>> & Record<string, string>;
|
|
708
|
+
example?: {
|
|
709
|
+
recordedAt: string;
|
|
710
|
+
request: Record<string, unknown>;
|
|
711
|
+
response: unknown;
|
|
712
|
+
};
|
|
713
|
+
label?: string;
|
|
714
|
+
whenToUse?: string;
|
|
715
|
+
returns?: unknown;
|
|
716
|
+
discovery?: unknown;
|
|
717
|
+
attribution?: unknown;
|
|
718
|
+
matchedBy?: Array<"semantic" | "domain">;
|
|
719
|
+
matchedUrls?: string[];
|
|
720
|
+
concept?: string;
|
|
721
|
+
cohorts?: string[];
|
|
722
|
+
similarity?: number;
|
|
723
|
+
}
|
|
724
|
+
interface FindToolsOptions {
|
|
725
|
+
urls?: string[];
|
|
726
|
+
providers?: string[];
|
|
727
|
+
categories?: string[];
|
|
728
|
+
groups?: string[];
|
|
729
|
+
capabilities?: string[];
|
|
730
|
+
level?: "providers" | "groups" | "tools";
|
|
731
|
+
expand?: Array<"options" | "response" | "examples">;
|
|
732
|
+
limit?: number;
|
|
733
|
+
offset?: number;
|
|
734
|
+
}
|
|
735
|
+
interface FindToolsData {
|
|
736
|
+
level: "providers" | "groups" | "tools";
|
|
737
|
+
items: Array<{
|
|
738
|
+
id: string;
|
|
739
|
+
name: string;
|
|
740
|
+
next?: AlexandriaCall;
|
|
741
|
+
execute?: Pick<AlexandriaCall, "provider" | "capability">;
|
|
742
|
+
[key: string]: unknown;
|
|
743
|
+
}>;
|
|
744
|
+
total: number;
|
|
745
|
+
next: AlexandriaCall | null;
|
|
746
|
+
}
|
|
747
|
+
interface AlexandriaScrapeRequest extends AlexandriaOptions {
|
|
748
|
+
alexandria: AlexandriaCall | AlexandriaCall[];
|
|
749
|
+
}
|
|
750
|
+
interface AlexandriaCall {
|
|
751
|
+
provider: string;
|
|
752
|
+
capability: string;
|
|
753
|
+
options?: Record<string, unknown>;
|
|
754
|
+
}
|
|
755
|
+
interface AlexandriaScrapeError {
|
|
756
|
+
code: string;
|
|
757
|
+
message: string;
|
|
758
|
+
status?: number;
|
|
759
|
+
/** Present when credits were captured before the failure. */
|
|
760
|
+
chargeId?: string;
|
|
761
|
+
}
|
|
762
|
+
type AlexandriaScrapeResult = {
|
|
763
|
+
provider: string;
|
|
764
|
+
capability: string;
|
|
765
|
+
creditsCost: number;
|
|
766
|
+
data: unknown;
|
|
767
|
+
records?: number;
|
|
768
|
+
upstreamStatus?: number;
|
|
769
|
+
recordedAt?: string;
|
|
770
|
+
error?: undefined;
|
|
771
|
+
[key: string]: unknown;
|
|
772
|
+
} | {
|
|
773
|
+
provider?: string;
|
|
774
|
+
capability?: string;
|
|
775
|
+
error: AlexandriaScrapeError;
|
|
776
|
+
[key: string]: unknown;
|
|
777
|
+
};
|
|
778
|
+
interface AlexandriaScrapeData {
|
|
779
|
+
scrapeId: string;
|
|
780
|
+
requestId: string;
|
|
781
|
+
alexandria: AlexandriaScrapeResult[];
|
|
782
|
+
creditsCost: number;
|
|
783
|
+
}
|
|
784
|
+
interface AlexandriaOptions {
|
|
785
|
+
/** Reuse this ID with the identical payload when retrying an execution. */
|
|
786
|
+
requestId?: string;
|
|
787
|
+
timeout?: number;
|
|
788
|
+
integration?: string;
|
|
789
|
+
origin?: string;
|
|
656
790
|
}
|
|
657
791
|
/**
|
|
658
792
|
* Narrows ordinary **web search**. A category does not switch `search()` to a
|
|
@@ -681,8 +815,12 @@ interface CategoryOption {
|
|
|
681
815
|
}
|
|
682
816
|
interface SearchRequest {
|
|
683
817
|
query: string;
|
|
684
|
-
|
|
685
|
-
|
|
818
|
+
/** Include domain-matched tools in tools alongside semantic matches. */
|
|
819
|
+
domainTools?: boolean;
|
|
820
|
+
/** Compact by default; summary adds metadata, full includes contracts. */
|
|
821
|
+
toolDetail?: "compact" | "summary" | "full";
|
|
822
|
+
sources?: Array<"web" | "news" | "images" | "alexandria" | {
|
|
823
|
+
type: "web" | "news" | "images" | "alexandria";
|
|
686
824
|
}>;
|
|
687
825
|
/**
|
|
688
826
|
* Narrow web search by category. See {@link CategoryOption}.
|
|
@@ -704,7 +842,7 @@ interface SearchRequest {
|
|
|
704
842
|
timeout?: number;
|
|
705
843
|
/** Generate query-relevant highlights for search results. Defaults to true. */
|
|
706
844
|
highlights?: boolean;
|
|
707
|
-
scrapeOptions?: ScrapeOptions
|
|
845
|
+
scrapeOptions?: Omit<ScrapeOptions, "toolDetail">;
|
|
708
846
|
/**
|
|
709
847
|
* Enterprise search options. Use `["zdr"]` for end-to-end Zero Data
|
|
710
848
|
* Retention or `["anon"]` for anonymized search. Must be enabled for
|
|
@@ -732,7 +870,7 @@ interface CrawlOptions {
|
|
|
732
870
|
delay?: number | null;
|
|
733
871
|
maxConcurrency?: number | null;
|
|
734
872
|
webhook?: string | WebhookConfig | null;
|
|
735
|
-
scrapeOptions?: ScrapeOptions | null;
|
|
873
|
+
scrapeOptions?: Omit<ScrapeOptions, "toolDetail"> | null;
|
|
736
874
|
regexOnFullURL?: boolean;
|
|
737
875
|
zeroDataRetention?: boolean;
|
|
738
876
|
integration?: string;
|
|
@@ -753,7 +891,7 @@ interface CrawlJob {
|
|
|
753
891
|
data: Document[];
|
|
754
892
|
}
|
|
755
893
|
interface BatchScrapeOptions {
|
|
756
|
-
options?: ScrapeOptions
|
|
894
|
+
options?: Omit<ScrapeOptions, "toolDetail">;
|
|
757
895
|
webhook?: string | WebhookConfig;
|
|
758
896
|
appendToId?: string;
|
|
759
897
|
ignoreInvalidURLs?: boolean;
|
|
@@ -887,14 +1025,14 @@ interface MonitorScrapeTarget {
|
|
|
887
1025
|
id?: string;
|
|
888
1026
|
type: "scrape";
|
|
889
1027
|
urls: string[];
|
|
890
|
-
scrapeOptions?: ScrapeOptions
|
|
1028
|
+
scrapeOptions?: Omit<ScrapeOptions, "toolDetail">;
|
|
891
1029
|
}
|
|
892
1030
|
interface MonitorCrawlTarget {
|
|
893
1031
|
id?: string;
|
|
894
1032
|
type: "crawl";
|
|
895
1033
|
url: string;
|
|
896
1034
|
crawlOptions?: CrawlOptions;
|
|
897
|
-
scrapeOptions?: ScrapeOptions
|
|
1035
|
+
scrapeOptions?: Omit<ScrapeOptions, "toolDetail">;
|
|
898
1036
|
}
|
|
899
1037
|
interface MonitorSearchTarget {
|
|
900
1038
|
id?: string;
|
|
@@ -1441,12 +1579,25 @@ interface ErrorDetails {
|
|
|
1441
1579
|
details?: Record<string, unknown>;
|
|
1442
1580
|
status?: number;
|
|
1443
1581
|
}
|
|
1582
|
+
/** An out-of-band step the API requires before the request can succeed. */
|
|
1583
|
+
interface RequiresAction {
|
|
1584
|
+
type: "accept_terms" | (string & {});
|
|
1585
|
+
terms?: string;
|
|
1586
|
+
version?: string;
|
|
1587
|
+
url?: string;
|
|
1588
|
+
}
|
|
1589
|
+
declare function parseRequiresAction(value: unknown): RequiresAction | undefined;
|
|
1444
1590
|
declare class SdkError extends Error {
|
|
1591
|
+
requestId?: string;
|
|
1445
1592
|
status?: number;
|
|
1446
1593
|
code?: string;
|
|
1447
1594
|
details?: unknown;
|
|
1448
1595
|
jobId?: string;
|
|
1449
|
-
|
|
1596
|
+
/** Present on exchange-mediated scrape failures that already captured credits. */
|
|
1597
|
+
chargeId?: string;
|
|
1598
|
+
/** Present when the API needs an out-of-band step first, such as accepting provider terms. */
|
|
1599
|
+
requiresAction?: RequiresAction;
|
|
1600
|
+
constructor(message: string, status?: number, code?: string, details?: unknown, jobId?: string, chargeId?: string, requiresAction?: RequiresAction);
|
|
1450
1601
|
}
|
|
1451
1602
|
declare class JobTimeoutError extends SdkError {
|
|
1452
1603
|
timeoutSeconds: number;
|
|
@@ -1972,6 +2123,9 @@ declare class FirecrawlClient {
|
|
|
1972
2123
|
json?: InferredJsonFromOptions<Opts>;
|
|
1973
2124
|
}>;
|
|
1974
2125
|
scrape(url: string, options?: ScrapeCallOptions): Promise<Document>;
|
|
2126
|
+
scrape(request: AlexandriaScrapeRequest): Promise<AlexandriaScrapeData>;
|
|
2127
|
+
/** Explore the catalogue without executing the tools it returns. */
|
|
2128
|
+
findTools(options?: FindToolsOptions): Promise<FindToolsData>;
|
|
1975
2129
|
/**
|
|
1976
2130
|
* Interact with the browser session associated with a scrape job.
|
|
1977
2131
|
* @param jobId Scrape job id.
|
|
@@ -3255,4 +3409,4 @@ declare class Firecrawl extends FirecrawlClient {
|
|
|
3255
3409
|
get v1(): FirecrawlApp;
|
|
3256
3410
|
}
|
|
3257
3411
|
|
|
3258
|
-
export { type ActionOption, type ActiveCrawl, type ActiveCrawlsResponse, type AgentEffort, type AgentExchangeOptions, type AgentExchangeSummary, type AgentListItem, type AgentListOptions, type AgentListResponse, type AgentMode, type AgentOptions$1 as AgentOptions, type AgentResponse, type AgentSnapshotResponse, type AgentStatusResponse, type AgentSuggestion, type AgentThread, type AgentThreadResponse, type AgentThreadRun, type AgentTraceActiveBrowserSession, type AgentTraceAgentFinishedEvent, type AgentTraceAgentIdentity, type AgentTraceAgentRole, type AgentTraceAgentStartedEvent, type AgentTraceArtifactChange, type AgentTraceArtifactUpdatedEvent, type AgentTraceBrowserSessionFinishedEvent, type AgentTraceBrowserSessionStartedEvent, type AgentTraceError, type AgentTraceErrorOccurredEvent, type AgentTraceEvent, type AgentTraceProgressReportedEvent, type AgentTraceReasoningSummaryEvent, type AgentTraceResponse, type AgentTraceRunCancelRequestedEvent, type AgentTraceRunFinishedEvent, type AgentTraceRunStartedEvent, type AgentTraceToolCallFinishedEvent, type AgentTraceToolCallStartedEvent, type AgentWebhookConfig, type AgentWebhookEvent, type AttributesFormat, type AuditMetadata$1 as AuditMetadata, type BatchScrapeJob, type BatchScrapeOptions, type BatchScrapeResponse$1 as BatchScrapeResponse, type BrandingProfile, type BrowserCreateResponse, type BrowserDeleteResponse, type BrowserExecuteResponse, type BrowserListResponse, type BrowserSession, type CategoryOption, type ChangeTrackingFormat, type ClickAction, type ConcurrencyCheck, type CrawlErrorsResponse$1 as CrawlErrorsResponse, type CrawlJob, type CrawlOptions, type CrawlResponse$1 as CrawlResponse, type CreateMonitorRequest, type CreditUsage, type CreditUsageHistoricalPeriod, type CreditUsageHistoricalResponse, type DeveloperSearchLicenseDisclosure, type DeveloperSearchOptions, type DeveloperSearchPassage, type DeveloperSearchRepoStatus, type DeveloperSearchResponse, type DeveloperSearchResult, type DeveloperSearchSourceStatus, type DeveloperSearchType, type Document, type DocumentMetadata, type EndpointFeedbackEndpoint, type EndpointFeedbackRequest, type ErrorDetails, type ExecuteJavascriptAction, type ExtractResponse$1 as ExtractResponse, type FeedbackMissingContent, type FeedbackRating, type FeedbackResponse, type FeedbackValuableSource, Firecrawl, FirecrawlApp as FirecrawlAppV1, FirecrawlClient, type FirecrawlClientInput, type FirecrawlClientOptions, type Format, type FormatOption, type FormatString, type GetMonitorCheckOptions, type GetPaperOptions, type GitHubScoreBreakdown, type GitHubSearchItem, type GitHubSearchResponse, type HighlightsFormat, type IdMap, JobTimeoutError, type JsonFormat, type ListMonitorChecksOptions, type ListMonitorsOptions, type LocationConfig$1 as LocationConfig, type MapData, type MapOptions, type MenuAvailability, type MenuImage, type MenuItem, type MenuItemIdentifiers, type MenuMerchant, type MenuPrice, type MenuProfile, type MenuSection, type Monitor, type MonitorCheck, type MonitorCheckDetail, type MonitorCheckPage, type MonitorCrawlTarget, type MonitorCrawlTargetResult, type MonitorEmailNotification, type MonitorEmailRecipientSubscription, type MonitorJsonFieldDiff, type MonitorNotification, type MonitorPageDiff, type MonitorPageJudgment, type MonitorPageSnapshot, type MonitorSchedule, type MonitorScrapeTarget, type MonitorScrapeTargetResult, type MonitorSearchTarget, type MonitorSearchTargetResult, type MonitorSummary, type MonitorTarget, type MonitorTargetResult, type MonitorWebhookConfig, type PDFAction, type PDFParser, type PaginationConfig, type PaperMetadata, type PaperMetadataResponse, type PaperResult, type PaperSignals, type ParseFile, type ParseFileData, type ParseFormat, type ParseFormatOption, type ParseFormatString, type ParseOptions, type Passage, type PdfBlockConfidence, type PdfBlockItem, type PdfPage, type PdfPageBlocks, type PendingApproval, type PressAction, type ProductAvailability, type ProductImage, type ProductPrice, type ProductProfile, type ProductSale, type ProductVariant, type QueryFormat, type QuestionFormat, type QueueStatusResponse$1 as QueueStatusResponse, type ReadPaperResponse, type RedactPIIEntity, type RedactPIIOptions, ResearchClient, type ScrapeAction, type ScrapeBrowserDeleteResponse, type ScrapeExecuteRequest, type ScrapeExecuteResponse, type ScrapeOptions, type ScreenshotAction, type ScreenshotFormat, type ScrollAction, SdkError, type SearchData, type SearchFeedbackRequest, type SearchGithubOptions, type SearchPapersOptions, type SearchPapersResponse, type SearchRequest, type SearchResultImages, type SearchResultNews, type SearchResultWeb, type SimilarPapersOptions, type SimilarPapersResponse, type ThreatProtectionOptions, type TokenUsage, type TokenUsageHistoricalPeriod, type TokenUsageHistoricalResponse, type UpdateMonitorRequest, type Viewport, type WaitAction, Watcher, type WatcherOptions, type WebhookConfig, type WriteAction, Firecrawl as default };
|
|
3412
|
+
export { type ActionOption, type ActiveCrawl, type ActiveCrawlsResponse, type AgentEffort, type AgentExchangeOptions, type AgentExchangeSummary, type AgentListItem, type AgentListOptions, type AgentListResponse, type AgentMode, type AgentOptions$1 as AgentOptions, type AgentResponse, type AgentSnapshotResponse, type AgentStatusResponse, type AgentSuggestion, type AgentThread, type AgentThreadResponse, type AgentThreadRun, type AgentTraceActiveBrowserSession, type AgentTraceAgentFinishedEvent, type AgentTraceAgentIdentity, type AgentTraceAgentRole, type AgentTraceAgentStartedEvent, type AgentTraceArtifactChange, type AgentTraceArtifactUpdatedEvent, type AgentTraceBrowserSessionFinishedEvent, type AgentTraceBrowserSessionStartedEvent, type AgentTraceError, type AgentTraceErrorOccurredEvent, type AgentTraceEvent, type AgentTraceProgressReportedEvent, type AgentTraceReasoningSummaryEvent, type AgentTraceResponse, type AgentTraceRunCancelRequestedEvent, type AgentTraceRunFinishedEvent, type AgentTraceRunStartedEvent, type AgentTraceToolCallFinishedEvent, type AgentTraceToolCallStartedEvent, type AgentWebhookConfig, type AgentWebhookEvent, type AlexandriaCall, type AlexandriaOptions, type AlexandriaScrapeData, type AlexandriaScrapeError, type AlexandriaScrapeRequest, type AlexandriaScrapeResult, type AttributesFormat, type AuditMetadata$1 as AuditMetadata, type BatchScrapeJob, type BatchScrapeOptions, type BatchScrapeResponse$1 as BatchScrapeResponse, type BrandingProfile, type BrowserCreateResponse, type BrowserDeleteResponse, type BrowserExecuteResponse, type BrowserListResponse, type BrowserSession, type CategoryOption, type ChangeTrackingFormat, type ClickAction, type ConcurrencyCheck, type CrawlErrorsResponse$1 as CrawlErrorsResponse, type CrawlJob, type CrawlOptions, type CrawlResponse$1 as CrawlResponse, type CreateMonitorRequest, type CreditUsage, type CreditUsageHistoricalPeriod, type CreditUsageHistoricalResponse, type DeveloperSearchLicenseDisclosure, type DeveloperSearchOptions, type DeveloperSearchPassage, type DeveloperSearchRepoStatus, type DeveloperSearchResponse, type DeveloperSearchResult, type DeveloperSearchSourceStatus, type DeveloperSearchType, type DiscoveredTool, type Document, type DocumentMetadata, type EndpointFeedbackEndpoint, type EndpointFeedbackRequest, type ErrorDetails, type ExecuteJavascriptAction, type ExtractResponse$1 as ExtractResponse, type FeedbackMissingContent, type FeedbackRating, type FeedbackResponse, type FeedbackValuableSource, type FindToolsData, type FindToolsOptions, Firecrawl, FirecrawlApp as FirecrawlAppV1, FirecrawlClient, type FirecrawlClientInput, type FirecrawlClientOptions, type Format, type FormatOption, type FormatString, type GetMonitorCheckOptions, type GetPaperOptions, type GitHubScoreBreakdown, type GitHubSearchItem, type GitHubSearchResponse, type HighlightsFormat, type IdMap, type ImageParser, JobTimeoutError, type JsonFormat, type ListMonitorChecksOptions, type ListMonitorsOptions, type LocationConfig$1 as LocationConfig, type MapData, type MapOptions, type MenuAvailability, type MenuImage, type MenuItem, type MenuItemIdentifiers, type MenuMerchant, type MenuPrice, type MenuProfile, type MenuSection, type Monitor, type MonitorCheck, type MonitorCheckDetail, type MonitorCheckPage, type MonitorCrawlTarget, type MonitorCrawlTargetResult, type MonitorEmailNotification, type MonitorEmailRecipientSubscription, type MonitorJsonFieldDiff, type MonitorNotification, type MonitorPageDiff, type MonitorPageJudgment, type MonitorPageSnapshot, type MonitorSchedule, type MonitorScrapeTarget, type MonitorScrapeTargetResult, type MonitorSearchTarget, type MonitorSearchTargetResult, type MonitorSummary, type MonitorTarget, type MonitorTargetResult, type MonitorWebhookConfig, type PDFAction, type PDFParser, type PaginationConfig, type PaperMetadata, type PaperMetadataResponse, type PaperResult, type PaperSignals, type ParseFile, type ParseFileData, type ParseFormat, type ParseFormatOption, type ParseFormatString, type ParseOptions, type Passage, type PdfBlockConfidence, type PdfBlockItem, type PdfPage, type PdfPageBlocks, type PendingApproval, type PressAction, type ProductAvailability, type ProductImage, type ProductPrice, type ProductProfile, type ProductSale, type ProductVariant, type QueryFormat, type QuestionFormat, type QueueStatusResponse$1 as QueueStatusResponse, type ReadPaperResponse, type RedactPIIEntity, type RedactPIIOptions, type RequiresAction, ResearchClient, type ScrapeAction, type ScrapeBrowserDeleteResponse, type ScrapeExecuteRequest, type ScrapeExecuteResponse, type ScrapeOptions, type ScreenshotAction, type ScreenshotFormat, type ScrollAction, SdkError, type SearchData, type SearchFeedbackRequest, type SearchGithubOptions, type SearchPapersOptions, type SearchPapersResponse, type SearchRequest, type SearchResultImages, type SearchResultNews, type SearchResultWeb, type SimilarPapersOptions, type SimilarPapersResponse, type ThreatProtectionOptions, type TokenUsage, type TokenUsageHistoricalPeriod, type TokenUsageHistoricalResponse, type UpdateMonitorRequest, type Viewport, type WaitAction, Watcher, type WatcherOptions, type WebhookConfig, type WriteAction, Firecrawl as default, parseRequiresAction };
|