scoutline 0.9.0 → 0.10.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 +23 -20
- package/dist/capabilities/quota.d.ts +1 -1
- package/dist/capabilities/quota.d.ts.map +1 -1
- package/dist/commands/crawl.js +1 -1
- package/dist/commands/doctor.js +1 -1
- package/dist/commands/map.js +1 -1
- package/dist/commands/read.js +1 -1
- package/dist/commands/research.js +5 -5
- package/dist/commands/research.js.map +1 -1
- package/dist/commands/search.js +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/async-job-state.d.ts +119 -0
- package/dist/lib/async-job-state.d.ts.map +1 -0
- package/dist/lib/{research-state.js → async-job-state.js} +43 -34
- package/dist/lib/async-job-state.js.map +1 -0
- package/dist/lib/cache.d.ts +16 -8
- package/dist/lib/cache.d.ts.map +1 -1
- package/dist/lib/cache.js +33 -8
- package/dist/lib/cache.js.map +1 -1
- package/dist/lib/execution.d.ts.map +1 -1
- package/dist/lib/execution.js +8 -4
- package/dist/lib/execution.js.map +1 -1
- package/dist/lib/redact.d.ts +1 -1
- package/dist/lib/redact.d.ts.map +1 -1
- package/dist/lib/redact.js +9 -1
- package/dist/lib/redact.js.map +1 -1
- package/dist/providers/exa/adapter.d.ts +2 -2
- package/dist/providers/exa/adapter.d.ts.map +1 -1
- package/dist/providers/exa/adapter.js +5 -3
- package/dist/providers/exa/adapter.js.map +1 -1
- package/dist/providers/firecrawl/adapter.d.ts +53 -0
- package/dist/providers/firecrawl/adapter.d.ts.map +1 -0
- package/dist/providers/firecrawl/adapter.js +962 -0
- package/dist/providers/firecrawl/adapter.js.map +1 -0
- package/dist/providers/firecrawl/client.d.ts +182 -0
- package/dist/providers/firecrawl/client.d.ts.map +1 -0
- package/dist/providers/firecrawl/client.js +426 -0
- package/dist/providers/firecrawl/client.js.map +1 -0
- package/dist/providers/firecrawl/credentials.d.ts +38 -0
- package/dist/providers/firecrawl/credentials.d.ts.map +1 -0
- package/dist/providers/firecrawl/credentials.js +60 -0
- package/dist/providers/firecrawl/credentials.js.map +1 -0
- package/dist/providers/firecrawl/diagnostics.d.ts +36 -0
- package/dist/providers/firecrawl/diagnostics.d.ts.map +1 -0
- package/dist/providers/firecrawl/diagnostics.js +65 -0
- package/dist/providers/firecrawl/diagnostics.js.map +1 -0
- package/dist/providers/firecrawl/quota.d.ts +46 -0
- package/dist/providers/firecrawl/quota.d.ts.map +1 -0
- package/dist/providers/firecrawl/quota.js +120 -0
- package/dist/providers/firecrawl/quota.js.map +1 -0
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js +2 -0
- package/dist/providers/registry.js.map +1 -1
- package/dist/providers/tavily/adapter.d.ts +2 -2
- package/dist/providers/tavily/adapter.d.ts.map +1 -1
- package/dist/providers/tavily/adapter.js +5 -3
- package/dist/providers/tavily/adapter.js.map +1 -1
- package/dist/providers/types.d.ts +1 -1
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js +1 -1
- package/dist/providers/types.js.map +1 -1
- package/package.json +1 -1
- package/dist/lib/research-state.d.ts +0 -104
- package/dist/lib/research-state.d.ts.map +0 -1
- package/dist/lib/research-state.js.map +0 -1
- package/dist/providers/minimax/sdk-client.d.ts +0 -29
- package/dist/providers/minimax/sdk-client.d.ts.map +0 -1
- package/dist/providers/minimax/sdk-client.js +0 -50
- package/dist/providers/minimax/sdk-client.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/providers/firecrawl/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Firecrawl credential resolution (DESIGN.md §6, firecrawl tech-plan §3).
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for the Firecrawl API key. Whitespace-only values
|
|
5
|
+
* are treated as absent, matching the descriptor's `isConfigured` contract.
|
|
6
|
+
*
|
|
7
|
+
* Firecrawl keys are `fc-`-prefixed and sent as `Authorization: Bearer fc-…`
|
|
8
|
+
* on every request (transport arrives in FC-03). This module resolves the
|
|
9
|
+
* raw env value only; it performs no transport and reads no other Provider's
|
|
10
|
+
* credentials.
|
|
11
|
+
*
|
|
12
|
+
* Boundary rules (ARCHITECTURE.md §2):
|
|
13
|
+
* - May import the normalized-error contract only.
|
|
14
|
+
* - Must NOT import transport, command presentation, or another
|
|
15
|
+
* Provider's Adapter.
|
|
16
|
+
*
|
|
17
|
+
* Missing credentials are surfaced as {@link ConfigurationError}
|
|
18
|
+
* (exit 3), distinct from {@link AuthError} (exit 1) which means the
|
|
19
|
+
* Provider REJECTED a presented credential.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Resolve the Firecrawl API key without throwing. Returns `undefined`
|
|
23
|
+
* when no non-blank value is present.
|
|
24
|
+
*/
|
|
25
|
+
export declare function resolveFirecrawlApiKey(env: NodeJS.ProcessEnv): string | undefined;
|
|
26
|
+
/**
|
|
27
|
+
* Resolve the Firecrawl API key or throw {@link ConfigurationError}
|
|
28
|
+
* (exit 3) when it is missing. Call this at every capability
|
|
29
|
+
* invocation gate.
|
|
30
|
+
*/
|
|
31
|
+
export declare function requireFirecrawlApiKey(env: NodeJS.ProcessEnv): string;
|
|
32
|
+
/**
|
|
33
|
+
* True when a non-blank Firecrawl API key is configured. Metadata-only:
|
|
34
|
+
* performs no transport construction and reads no other Provider's
|
|
35
|
+
* credentials.
|
|
36
|
+
*/
|
|
37
|
+
export declare function isFirecrawlConfigured(env: NodeJS.ProcessEnv): boolean;
|
|
38
|
+
//# sourceMappingURL=credentials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../src/providers/firecrawl/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAgBH;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,GAAG,SAAS,CAEjF;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CASrE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,OAAO,CAErE"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Firecrawl credential resolution (DESIGN.md §6, firecrawl tech-plan §3).
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for the Firecrawl API key. Whitespace-only values
|
|
5
|
+
* are treated as absent, matching the descriptor's `isConfigured` contract.
|
|
6
|
+
*
|
|
7
|
+
* Firecrawl keys are `fc-`-prefixed and sent as `Authorization: Bearer fc-…`
|
|
8
|
+
* on every request (transport arrives in FC-03). This module resolves the
|
|
9
|
+
* raw env value only; it performs no transport and reads no other Provider's
|
|
10
|
+
* credentials.
|
|
11
|
+
*
|
|
12
|
+
* Boundary rules (ARCHITECTURE.md §2):
|
|
13
|
+
* - May import the normalized-error contract only.
|
|
14
|
+
* - Must NOT import transport, command presentation, or another
|
|
15
|
+
* Provider's Adapter.
|
|
16
|
+
*
|
|
17
|
+
* Missing credentials are surfaced as {@link ConfigurationError}
|
|
18
|
+
* (exit 3), distinct from {@link AuthError} (exit 1) which means the
|
|
19
|
+
* Provider REJECTED a presented credential.
|
|
20
|
+
*/
|
|
21
|
+
import { ConfigurationError } from "../../lib/errors.js";
|
|
22
|
+
const MISSING_KEY_HELP = 'export FIRECRAWL_API_KEY="your-api-key"';
|
|
23
|
+
/**
|
|
24
|
+
* Pick a non-blank raw value from the environment. Returns the original
|
|
25
|
+
* (untrimmed) string when it contains at least one non-whitespace
|
|
26
|
+
* character, otherwise `undefined`.
|
|
27
|
+
*/
|
|
28
|
+
function pickNonBlank(raw) {
|
|
29
|
+
if (typeof raw !== "string")
|
|
30
|
+
return undefined;
|
|
31
|
+
return raw.trim().length > 0 ? raw : undefined;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Resolve the Firecrawl API key without throwing. Returns `undefined`
|
|
35
|
+
* when no non-blank value is present.
|
|
36
|
+
*/
|
|
37
|
+
export function resolveFirecrawlApiKey(env) {
|
|
38
|
+
return pickNonBlank(env.FIRECRAWL_API_KEY);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Resolve the Firecrawl API key or throw {@link ConfigurationError}
|
|
42
|
+
* (exit 3) when it is missing. Call this at every capability
|
|
43
|
+
* invocation gate.
|
|
44
|
+
*/
|
|
45
|
+
export function requireFirecrawlApiKey(env) {
|
|
46
|
+
const key = resolveFirecrawlApiKey(env);
|
|
47
|
+
if (key === undefined) {
|
|
48
|
+
throw new ConfigurationError("FIRECRAWL_API_KEY environment variable is required", MISSING_KEY_HELP);
|
|
49
|
+
}
|
|
50
|
+
return key;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* True when a non-blank Firecrawl API key is configured. Metadata-only:
|
|
54
|
+
* performs no transport construction and reads no other Provider's
|
|
55
|
+
* credentials.
|
|
56
|
+
*/
|
|
57
|
+
export function isFirecrawlConfigured(env) {
|
|
58
|
+
return resolveFirecrawlApiKey(env) !== undefined;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../../src/providers/firecrawl/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,gBAAgB,GAAG,yCAAyC,CAAC;AAEnE;;;;GAIG;AACH,SAAS,YAAY,CAAC,GAAY;IAChC,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAC9C,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAsB;IAC3D,OAAO,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;AAC7C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAsB;IAC3D,MAAM,GAAG,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,MAAM,IAAI,kBAAkB,CAC1B,oDAAoD,EACpD,gBAAgB,CACjB,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAsB;IAC1D,OAAO,sBAAsB,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC;AACnD,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Firecrawl Diagnostics Capability (firecrawl tech-plan §3, D8).
|
|
3
|
+
*
|
|
4
|
+
* Probes Firecrawl connectivity with a single, cheapest-possible request
|
|
5
|
+
* — one basic /v2/scrape of a small stub URL — so the doctor command can
|
|
6
|
+
* verify a credential authenticates without burning many credits.
|
|
7
|
+
*
|
|
8
|
+
* The probe intentionally avoids /team/credit-usage (rate-limit safety,
|
|
9
|
+
* mirroring the Tavily doctor which probes with /search rather than the
|
|
10
|
+
* throttled /usage endpoint). A basic scrape costs one credit and is
|
|
11
|
+
* bounded by the scrape rate limit.
|
|
12
|
+
*
|
|
13
|
+
* Boundary rules (ARCHITECTURE.md §2):
|
|
14
|
+
* - May import the diagnostics contract, Adapter-local config,
|
|
15
|
+
* Adapter-local scrape transport, and normalized errors.
|
|
16
|
+
* - Must NOT import command presentation or another Provider's Adapter.
|
|
17
|
+
*/
|
|
18
|
+
import type { DiagnosticsCapability } from "../../capabilities/diagnostics.js";
|
|
19
|
+
import { type FirecrawlTransportDeps } from "./client.js";
|
|
20
|
+
export interface FirecrawlDiagnosticsCapabilityOptions {
|
|
21
|
+
readonly env: NodeJS.ProcessEnv;
|
|
22
|
+
readonly transport?: FirecrawlTransportDeps;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Build the Firecrawl DiagnosticsCapability. The probe performs ONE
|
|
26
|
+
* /v2/scrape of a small stub URL (`formats:["markdown"]`, `proxy:"basic"`)
|
|
27
|
+
* so it costs a single credit — the cheapest credible authentication
|
|
28
|
+
* probe. Shared execution owns the retry policy; this transport performs
|
|
29
|
+
* exactly one attempt per invocation.
|
|
30
|
+
*
|
|
31
|
+
* When `diagOptions.probe` is false, `invoke` resolves immediately without
|
|
32
|
+
* touching the network — the doctor command skips probing unconfigured or
|
|
33
|
+
* tools-disabled Providers before reaching this Capability.
|
|
34
|
+
*/
|
|
35
|
+
export declare function createFirecrawlDiagnosticsCapability(options: FirecrawlDiagnosticsCapabilityOptions): DiagnosticsCapability;
|
|
36
|
+
//# sourceMappingURL=diagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../../src/providers/firecrawl/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAqB,MAAM,mCAAmC,CAAC;AASlG,OAAO,EAAwB,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAqBhF,MAAM,WAAW,qCAAqC;IACpD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,sBAAsB,CAAC;CAC7C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,oCAAoC,CAClD,OAAO,EAAE,qCAAqC,GAC7C,qBAAqB,CAmBvB"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Firecrawl Diagnostics Capability (firecrawl tech-plan §3, D8).
|
|
3
|
+
*
|
|
4
|
+
* Probes Firecrawl connectivity with a single, cheapest-possible request
|
|
5
|
+
* — one basic /v2/scrape of a small stub URL — so the doctor command can
|
|
6
|
+
* verify a credential authenticates without burning many credits.
|
|
7
|
+
*
|
|
8
|
+
* The probe intentionally avoids /team/credit-usage (rate-limit safety,
|
|
9
|
+
* mirroring the Tavily doctor which probes with /search rather than the
|
|
10
|
+
* throttled /usage endpoint). A basic scrape costs one credit and is
|
|
11
|
+
* bounded by the scrape rate limit.
|
|
12
|
+
*
|
|
13
|
+
* Boundary rules (ARCHITECTURE.md §2):
|
|
14
|
+
* - May import the diagnostics contract, Adapter-local config,
|
|
15
|
+
* Adapter-local scrape transport, and normalized errors.
|
|
16
|
+
* - Must NOT import command presentation or another Provider's Adapter.
|
|
17
|
+
*/
|
|
18
|
+
import { ApiError, AuthError, ConfigurationError, NetworkError, TimeoutError, } from "../../lib/errors.js";
|
|
19
|
+
import { requireFirecrawlApiKey } from "./credentials.js";
|
|
20
|
+
import { fetchFirecrawlScrape } from "./client.js";
|
|
21
|
+
/**
|
|
22
|
+
* Probe failure wrapper. Mirrors the Adapter's `normalizeFirecrawlError`
|
|
23
|
+
* for the subset of errors the probe can surface. The probe throws on
|
|
24
|
+
* failure; the doctor command catches the throw and records a redacted
|
|
25
|
+
* error entry. We never embed raw Provider bodies.
|
|
26
|
+
*/
|
|
27
|
+
function normalizeProbeError(error) {
|
|
28
|
+
if (error instanceof AuthError ||
|
|
29
|
+
error instanceof ApiError ||
|
|
30
|
+
error instanceof NetworkError ||
|
|
31
|
+
error instanceof TimeoutError ||
|
|
32
|
+
error instanceof ConfigurationError) {
|
|
33
|
+
return error;
|
|
34
|
+
}
|
|
35
|
+
return new ApiError("Firecrawl diagnostics probe failed", 500);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Build the Firecrawl DiagnosticsCapability. The probe performs ONE
|
|
39
|
+
* /v2/scrape of a small stub URL (`formats:["markdown"]`, `proxy:"basic"`)
|
|
40
|
+
* so it costs a single credit — the cheapest credible authentication
|
|
41
|
+
* probe. Shared execution owns the retry policy; this transport performs
|
|
42
|
+
* exactly one attempt per invocation.
|
|
43
|
+
*
|
|
44
|
+
* When `diagOptions.probe` is false, `invoke` resolves immediately without
|
|
45
|
+
* touching the network — the doctor command skips probing unconfigured or
|
|
46
|
+
* tools-disabled Providers before reaching this Capability.
|
|
47
|
+
*/
|
|
48
|
+
export function createFirecrawlDiagnosticsCapability(options) {
|
|
49
|
+
const { env, transport } = options;
|
|
50
|
+
return {
|
|
51
|
+
async invoke(diagOptions) {
|
|
52
|
+
if (!diagOptions.probe)
|
|
53
|
+
return;
|
|
54
|
+
const apiKey = requireFirecrawlApiKey(env);
|
|
55
|
+
try {
|
|
56
|
+
// One basic scrape — cheapest credible probe (1 credit).
|
|
57
|
+
await fetchFirecrawlScrape(apiKey, "https://example.com", { formats: ["markdown"], proxy: "basic" }, transport);
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
throw normalizeProbeError(error);
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../../src/providers/firecrawl/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EACL,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAA+B,MAAM,aAAa,CAAC;AAEhF;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,KAAc;IACzC,IACE,KAAK,YAAY,SAAS;QAC1B,KAAK,YAAY,QAAQ;QACzB,KAAK,YAAY,YAAY;QAC7B,KAAK,YAAY,YAAY;QAC7B,KAAK,YAAY,kBAAkB,EACnC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,QAAQ,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;AACjE,CAAC;AAOD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,oCAAoC,CAClD,OAA8C;IAE9C,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACnC,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,WAA8B;YACzC,IAAI,CAAC,WAAW,CAAC,KAAK;gBAAE,OAAO;YAC/B,MAAM,MAAM,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,CAAC;gBACH,yDAAyD;gBACzD,MAAM,oBAAoB,CACxB,MAAM,EACN,qBAAqB,EACrB,EAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,EACzC,SAAS,CACV,CAAC;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Firecrawl Quota Capability (firecrawl tech-plan D8, critique C4).
|
|
3
|
+
*
|
|
4
|
+
* Maps the Firecrawl /v2/team/credit-usage response into one normalized
|
|
5
|
+
* `QuotaCategory` with `unit:"credits"` and `name:"Credits"`. The
|
|
6
|
+
* normalizer is pure; the capability factory owns configuration
|
|
7
|
+
* resolution, the single direct transport attempt, and failure
|
|
8
|
+
* normalization. Shared execution owns retry policy.
|
|
9
|
+
*
|
|
10
|
+
* Credit-usage shape: the live endpoint surfaces "remaining credits"
|
|
11
|
+
* (investigation §1.2). The exact field names are a non-gating verify
|
|
12
|
+
* item (tech-plan §7 #4), so the normalizer extracts `remaining` + `used`
|
|
13
|
+
* defensively across common variants and derives `limit = used +
|
|
14
|
+
* remaining`. Field names are tuned during live verification (FC-06).
|
|
15
|
+
*
|
|
16
|
+
* Boundary rules (ARCHITECTURE.md §2):
|
|
17
|
+
* - May import the quota contract, Adapter-local config, Adapter-local
|
|
18
|
+
* quota client, and normalized errors.
|
|
19
|
+
* - Must NOT import command presentation or another Provider's Adapter.
|
|
20
|
+
*/
|
|
21
|
+
import type { ProviderQuotaSuccess, QuotaCapability } from "../../capabilities/quota.js";
|
|
22
|
+
import { type FirecrawlTransportDeps } from "./client.js";
|
|
23
|
+
/**
|
|
24
|
+
* Normalize a raw credit-usage payload into the shared Interface. Builds
|
|
25
|
+
* one "Credits" category (`unit:"credits"`).
|
|
26
|
+
*
|
|
27
|
+
* Live-confirmed shape (FC-06): `data.{ remainingCredits, planCredits,
|
|
28
|
+
* billingPeriodStart, billingPeriodEnd }`. Firecrawl reports a remaining
|
|
29
|
+
* balance against a per-period plan allotment — `remainingCredits` may
|
|
30
|
+
* exceed `planCredits` (banked credits), so the window is built against
|
|
31
|
+
* the plan allotment and `used` is clamped ≥ 0. Throws `ApiError` 500 when
|
|
32
|
+
* `remainingCredits`/`planCredits` are absent or invalid.
|
|
33
|
+
*/
|
|
34
|
+
export declare function normalizeFirecrawlQuota(raw: unknown): ProviderQuotaSuccess;
|
|
35
|
+
export interface FirecrawlQuotaCapabilityOptions {
|
|
36
|
+
readonly env: NodeJS.ProcessEnv;
|
|
37
|
+
readonly transport?: FirecrawlTransportDeps;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Build the Firecrawl QuotaCapability. `invoke` resolves the API key,
|
|
41
|
+
* performs one direct /team/credit-usage attempt, and normalizes the
|
|
42
|
+
* response into a single "Credits" category. Shared execution wraps this
|
|
43
|
+
* in the retry policy; quota never uses the response cache.
|
|
44
|
+
*/
|
|
45
|
+
export declare function createFirecrawlQuotaCapability(options: FirecrawlQuotaCapabilityOptions): QuotaCapability;
|
|
46
|
+
//# sourceMappingURL=quota.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quota.d.ts","sourceRoot":"","sources":["../../../src/providers/firecrawl/quota.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EAEhB,MAAM,6BAA6B,CAAC;AAUrC,OAAO,EAA6B,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAuBrF;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,CAiC1E;AAmBD,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,sBAAsB,CAAC;CAC7C;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,+BAA+B,GACvC,eAAe,CAajB"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Firecrawl Quota Capability (firecrawl tech-plan D8, critique C4).
|
|
3
|
+
*
|
|
4
|
+
* Maps the Firecrawl /v2/team/credit-usage response into one normalized
|
|
5
|
+
* `QuotaCategory` with `unit:"credits"` and `name:"Credits"`. The
|
|
6
|
+
* normalizer is pure; the capability factory owns configuration
|
|
7
|
+
* resolution, the single direct transport attempt, and failure
|
|
8
|
+
* normalization. Shared execution owns retry policy.
|
|
9
|
+
*
|
|
10
|
+
* Credit-usage shape: the live endpoint surfaces "remaining credits"
|
|
11
|
+
* (investigation §1.2). The exact field names are a non-gating verify
|
|
12
|
+
* item (tech-plan §7 #4), so the normalizer extracts `remaining` + `used`
|
|
13
|
+
* defensively across common variants and derives `limit = used +
|
|
14
|
+
* remaining`. Field names are tuned during live verification (FC-06).
|
|
15
|
+
*
|
|
16
|
+
* Boundary rules (ARCHITECTURE.md §2):
|
|
17
|
+
* - May import the quota contract, Adapter-local config, Adapter-local
|
|
18
|
+
* quota client, and normalized errors.
|
|
19
|
+
* - Must NOT import command presentation or another Provider's Adapter.
|
|
20
|
+
*/
|
|
21
|
+
import { buildQuotaWindow } from "../../capabilities/quota.js";
|
|
22
|
+
import { ApiError, AuthError, ConfigurationError, NetworkError, TimeoutError, } from "../../lib/errors.js";
|
|
23
|
+
import { requireFirecrawlApiKey } from "./credentials.js";
|
|
24
|
+
import { fetchFirecrawlCreditUsage } from "./client.js";
|
|
25
|
+
function readNumber(value) {
|
|
26
|
+
return typeof value === "number" && Number.isFinite(value) ? value : undefined;
|
|
27
|
+
}
|
|
28
|
+
function isPlainObject(value) {
|
|
29
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Resolve the credit-usage record. Firecrawl wraps some responses in a
|
|
33
|
+
* `data` array/object; accept either a top-level object or a `data`
|
|
34
|
+
* wrapper (first array element when `data` is an array).
|
|
35
|
+
*/
|
|
36
|
+
function resolveUsageRecord(raw) {
|
|
37
|
+
if (!isPlainObject(raw))
|
|
38
|
+
return undefined;
|
|
39
|
+
const data = raw.data;
|
|
40
|
+
if (Array.isArray(data) && isPlainObject(data[0]))
|
|
41
|
+
return data[0];
|
|
42
|
+
if (isPlainObject(data))
|
|
43
|
+
return data;
|
|
44
|
+
return raw;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Normalize a raw credit-usage payload into the shared Interface. Builds
|
|
48
|
+
* one "Credits" category (`unit:"credits"`).
|
|
49
|
+
*
|
|
50
|
+
* Live-confirmed shape (FC-06): `data.{ remainingCredits, planCredits,
|
|
51
|
+
* billingPeriodStart, billingPeriodEnd }`. Firecrawl reports a remaining
|
|
52
|
+
* balance against a per-period plan allotment — `remainingCredits` may
|
|
53
|
+
* exceed `planCredits` (banked credits), so the window is built against
|
|
54
|
+
* the plan allotment and `used` is clamped ≥ 0. Throws `ApiError` 500 when
|
|
55
|
+
* `remainingCredits`/`planCredits` are absent or invalid.
|
|
56
|
+
*/
|
|
57
|
+
export function normalizeFirecrawlQuota(raw) {
|
|
58
|
+
const record = resolveUsageRecord(raw);
|
|
59
|
+
if (record === undefined) {
|
|
60
|
+
throw new ApiError("Firecrawl quota returned a malformed response", 500);
|
|
61
|
+
}
|
|
62
|
+
const remaining = readNumber(record.remainingCredits ?? record.remaining_credits);
|
|
63
|
+
const planCredits = readNumber(record.planCredits ?? record.plan_credits);
|
|
64
|
+
if (remaining === undefined || planCredits === undefined || planCredits <= 0) {
|
|
65
|
+
throw new ApiError("Firecrawl quota returned a malformed response", 500);
|
|
66
|
+
}
|
|
67
|
+
// Window against the per-period allotment. `used` = the plan portion
|
|
68
|
+
// consumed this period, clamped to [0, planCredits] so a negative
|
|
69
|
+
// remaining degrades to a depleted (0%) window rather than throwing.
|
|
70
|
+
const used = Math.min(Math.max(planCredits - remaining, 0), planCredits);
|
|
71
|
+
const periodEnd = typeof record.billingPeriodEnd === "string" ? record.billingPeriodEnd : undefined;
|
|
72
|
+
const periodStart = typeof record.billingPeriodStart === "string" ? record.billingPeriodStart : undefined;
|
|
73
|
+
const endMs = periodEnd !== undefined ? Date.parse(periodEnd) : NaN;
|
|
74
|
+
const startMs = periodStart !== undefined ? Date.parse(periodStart) : NaN;
|
|
75
|
+
const window = buildQuotaWindow({
|
|
76
|
+
used,
|
|
77
|
+
limit: planCredits,
|
|
78
|
+
...(Number.isFinite(endMs) && endMs > 0 ? { resetsAtEpochMs: endMs } : {}),
|
|
79
|
+
...(Number.isFinite(startMs) && Number.isFinite(endMs)
|
|
80
|
+
? { durationSeconds: Math.max(Math.round((endMs - startMs) / 1000), 0) }
|
|
81
|
+
: {}),
|
|
82
|
+
});
|
|
83
|
+
const category = { name: "Credits", unit: "credits", current: window };
|
|
84
|
+
return { provider: "firecrawl", status: "ok", categories: [category] };
|
|
85
|
+
}
|
|
86
|
+
// ---------------------------------------------------------------------------
|
|
87
|
+
// Capability factory
|
|
88
|
+
// ---------------------------------------------------------------------------
|
|
89
|
+
function normalizeFirecrawlQuotaError(error) {
|
|
90
|
+
if (error instanceof AuthError ||
|
|
91
|
+
error instanceof ApiError ||
|
|
92
|
+
error instanceof NetworkError ||
|
|
93
|
+
error instanceof TimeoutError ||
|
|
94
|
+
error instanceof ConfigurationError) {
|
|
95
|
+
return error;
|
|
96
|
+
}
|
|
97
|
+
return new ApiError("Firecrawl quota request failed", 500);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Build the Firecrawl QuotaCapability. `invoke` resolves the API key,
|
|
101
|
+
* performs one direct /team/credit-usage attempt, and normalizes the
|
|
102
|
+
* response into a single "Credits" category. Shared execution wraps this
|
|
103
|
+
* in the retry policy; quota never uses the response cache.
|
|
104
|
+
*/
|
|
105
|
+
export function createFirecrawlQuotaCapability(options) {
|
|
106
|
+
const { env, transport } = options;
|
|
107
|
+
return {
|
|
108
|
+
async invoke() {
|
|
109
|
+
const apiKey = requireFirecrawlApiKey(env);
|
|
110
|
+
try {
|
|
111
|
+
const raw = await fetchFirecrawlCreditUsage(apiKey, transport);
|
|
112
|
+
return normalizeFirecrawlQuota(raw);
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
throw normalizeFirecrawlQuotaError(error);
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=quota.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quota.js","sourceRoot":"","sources":["../../../src/providers/firecrawl/quota.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAOH,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EACL,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,YAAY,GACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAA+B,MAAM,aAAa,CAAC;AAErF,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACjF,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,GAAY;IACtC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACtB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC,CAAC,CAA4B,CAAC;IAC7F,IAAI,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAY;IAClD,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,IAAI,QAAQ,CAAC,+CAA+C,EAAE,GAAG,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAClF,MAAM,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;IAC1E,IAAI,SAAS,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QAC7E,MAAM,IAAI,QAAQ,CAAC,+CAA+C,EAAE,GAAG,CAAC,CAAC;IAC3E,CAAC;IACD,qEAAqE;IACrE,kEAAkE;IAClE,qEAAqE;IACrE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,SAAS,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;IAEzE,MAAM,SAAS,GACb,OAAO,MAAM,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,MAAM,WAAW,GACf,OAAO,MAAM,CAAC,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;IACxF,MAAM,KAAK,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACpE,MAAM,OAAO,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAE1E,MAAM,MAAM,GAAG,gBAAgB,CAAC;QAC9B,IAAI;QACJ,KAAK,EAAE,WAAW;QAClB,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YACpD,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE;YACxE,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAkB,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IACtF,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;AACzE,CAAC;AAED,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,SAAS,4BAA4B,CAAC,KAAc;IAClD,IACE,KAAK,YAAY,SAAS;QAC1B,KAAK,YAAY,QAAQ;QACzB,KAAK,YAAY,YAAY;QAC7B,KAAK,YAAY,YAAY;QAC7B,KAAK,YAAY,kBAAkB,EACnC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,QAAQ,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;AAC7D,CAAC;AAOD;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAC5C,OAAwC;IAExC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IACnC,OAAO;QACL,KAAK,CAAC,MAAM;YACV,MAAM,MAAM,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,MAAM,yBAAyB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAC/D,OAAO,uBAAuB,CAAC,GAAG,CAAC,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,4BAA4B,CAAC,KAAK,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAQH,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAMjE;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,SAAS,kBAAkB,EAOtE,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,UAAU,EACd,WAAW,GAAE,SAAS,kBAAkB,EAAkC,GACzE,kBAAkB,CAEpB;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,MAAM,CAAC,UAAU,EACtB,WAAW,GAAE,SAAS,kBAAkB,EAAkC,GACzE,SAAS,kBAAkB,EAAE,CAE/B"}
|
|
@@ -19,6 +19,7 @@ import { createMiniMaxDescriptor } from "./minimax/adapter.js";
|
|
|
19
19
|
import { createTavilyDescriptor } from "./tavily/adapter.js";
|
|
20
20
|
import { createExaDescriptor } from "./exa/adapter.js";
|
|
21
21
|
import { createBraveDescriptor } from "./brave/adapter.js";
|
|
22
|
+
import { createFirecrawlDescriptor } from "./firecrawl/adapter.js";
|
|
22
23
|
import { getProviderDescriptor as lookupProviderDescriptor, getConfiguredProviderDescriptors as lookupConfigured, } from "./types.js";
|
|
23
24
|
/**
|
|
24
25
|
* Built-in Provider Descriptors in canonical order. Each Descriptor is
|
|
@@ -32,6 +33,7 @@ export const BUILT_IN_PROVIDER_DESCRIPTORS = [
|
|
|
32
33
|
createTavilyDescriptor(),
|
|
33
34
|
createExaDescriptor(),
|
|
34
35
|
createBraveDescriptor(),
|
|
36
|
+
createFirecrawlDescriptor(),
|
|
35
37
|
];
|
|
36
38
|
/**
|
|
37
39
|
* Look up a built-in Descriptor by ID. The optional `descriptors`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,OAAO,EACL,qBAAqB,IAAI,wBAAwB,EACjD,gCAAgC,IAAI,gBAAgB,GACrD,MAAM,YAAY,CAAC;AAEpB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAkC;IAC1E,mBAAmB,EAAE;IACrB,uBAAuB,EAAE;IACzB,sBAAsB,EAAE;IACxB,mBAAmB,EAAE;IACrB,qBAAqB,EAAE;IACvB,yBAAyB,EAAE;CAC5B,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACnC,EAAc,EACd,WAAW,GAAkC,6BAA6B;IAE1E,OAAO,wBAAwB,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gCAAgC,CAC9C,GAAsB,EACtB,WAAW,GAAkC,6BAA6B;IAE1E,OAAO,gBAAgB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
* location -> REJECTED (UnsupportedOptionError)
|
|
33
33
|
*/
|
|
34
34
|
import type { ProviderDescriptor } from "../types.js";
|
|
35
|
-
import type {
|
|
35
|
+
import type { AsyncJobStateFile } from "../../lib/async-job-state.js";
|
|
36
36
|
import { type TavilyTransportDeps } from "./client.js";
|
|
37
37
|
/**
|
|
38
38
|
* Dependencies the Tavily Adapter accepts. The unified `transport`
|
|
@@ -46,7 +46,7 @@ export interface TavilyAdapterDependencies {
|
|
|
46
46
|
/** Optional transport injection (fetch, timers, env). */
|
|
47
47
|
readonly transport?: TavilyTransportDeps;
|
|
48
48
|
/** Optional Research state-file port (tech-plan §3). */
|
|
49
|
-
readonly researchStateFile?:
|
|
49
|
+
readonly researchStateFile?: AsyncJobStateFile;
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
52
52
|
* Build the Tavily Provider Descriptor. The descriptor advertises the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/providers/tavily/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAIH,OAAO,KAAK,EAIV,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAmCrB,OAAO,KAAK,EAAiB,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/providers/tavily/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAIH,OAAO,KAAK,EAIV,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAmCrB,OAAO,KAAK,EAAiB,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAmBrF,OAAO,EAaL,KAAK,mBAAmB,EACzB,MAAM,aAAa,CAAC;AAIrB;;;;;;;GAOG;AACH,MAAM,WAAW,yBAAyB;IACxC,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC;IACzC,wDAAwD;IACxD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CAChD;AA+/BD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,CAAC,EAAE,yBAAyB,GACvC,kBAAkB,CAuDpB"}
|
|
@@ -36,8 +36,9 @@ import { decodeReaderFetchResult } from "../../capabilities/reader.js";
|
|
|
36
36
|
import { decodeCrawlResult } from "../../capabilities/crawl.js";
|
|
37
37
|
import { decodeMapResult } from "../../capabilities/map.js";
|
|
38
38
|
import { decodeResearchResult } from "../../capabilities/research.js";
|
|
39
|
-
import {
|
|
39
|
+
import { computeAsyncJobStateHash, createProductionAsyncJobStateFile, } from "../../lib/async-job-state.js";
|
|
40
40
|
import { ApiError, AuthError, ConfigurationError, NetworkError, QuotaError, TimeoutError, UnsupportedOptionError, ValidationError, } from "../../lib/errors.js";
|
|
41
|
+
import { asyncJobStateDir } from "../../lib/cache.js";
|
|
41
42
|
import { requireTavilyApiKey, isTavilyConfigured } from "./credentials.js";
|
|
42
43
|
import { fetchTavilySearch, fetchTavilyExtract, fetchTavilyCrawl, fetchTavilyMap, createTavilyResearch, pollTavilyResearch, } from "./client.js";
|
|
43
44
|
import { createTavilyQuotaCapability } from "./quota.js";
|
|
@@ -796,7 +797,7 @@ function createTavilyResearchCapability(options) {
|
|
|
796
797
|
run.validate(request);
|
|
797
798
|
const apiKey = resolveApiKey(env);
|
|
798
799
|
const credFingerprint = credentialFingerprint(apiKey);
|
|
799
|
-
const identityHash =
|
|
800
|
+
const identityHash = computeAsyncJobStateHash({
|
|
800
801
|
provider: "tavily",
|
|
801
802
|
capability: "research",
|
|
802
803
|
credentialFingerprint: credFingerprint,
|
|
@@ -921,7 +922,8 @@ async function createResearchTask(apiKey, request, identityHash, stateFile, tran
|
|
|
921
922
|
*/
|
|
922
923
|
export function createTavilyDescriptor(dependencies) {
|
|
923
924
|
const transport = dependencies?.transport;
|
|
924
|
-
const researchStateFile = dependencies?.researchStateFile ??
|
|
925
|
+
const researchStateFile = dependencies?.researchStateFile ??
|
|
926
|
+
createProductionAsyncJobStateFile(asyncJobStateDir("research"));
|
|
925
927
|
return {
|
|
926
928
|
id: "tavily",
|
|
927
929
|
isConfigured(env) {
|