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.
Files changed (69) hide show
  1. package/README.md +23 -20
  2. package/dist/capabilities/quota.d.ts +1 -1
  3. package/dist/capabilities/quota.d.ts.map +1 -1
  4. package/dist/commands/crawl.js +1 -1
  5. package/dist/commands/doctor.js +1 -1
  6. package/dist/commands/map.js +1 -1
  7. package/dist/commands/read.js +1 -1
  8. package/dist/commands/research.js +5 -5
  9. package/dist/commands/research.js.map +1 -1
  10. package/dist/commands/search.js +1 -1
  11. package/dist/index.js +1 -1
  12. package/dist/lib/async-job-state.d.ts +119 -0
  13. package/dist/lib/async-job-state.d.ts.map +1 -0
  14. package/dist/lib/{research-state.js → async-job-state.js} +43 -34
  15. package/dist/lib/async-job-state.js.map +1 -0
  16. package/dist/lib/cache.d.ts +16 -8
  17. package/dist/lib/cache.d.ts.map +1 -1
  18. package/dist/lib/cache.js +33 -8
  19. package/dist/lib/cache.js.map +1 -1
  20. package/dist/lib/execution.d.ts.map +1 -1
  21. package/dist/lib/execution.js +8 -4
  22. package/dist/lib/execution.js.map +1 -1
  23. package/dist/lib/redact.d.ts +1 -1
  24. package/dist/lib/redact.d.ts.map +1 -1
  25. package/dist/lib/redact.js +9 -1
  26. package/dist/lib/redact.js.map +1 -1
  27. package/dist/providers/exa/adapter.d.ts +2 -2
  28. package/dist/providers/exa/adapter.d.ts.map +1 -1
  29. package/dist/providers/exa/adapter.js +5 -3
  30. package/dist/providers/exa/adapter.js.map +1 -1
  31. package/dist/providers/firecrawl/adapter.d.ts +53 -0
  32. package/dist/providers/firecrawl/adapter.d.ts.map +1 -0
  33. package/dist/providers/firecrawl/adapter.js +962 -0
  34. package/dist/providers/firecrawl/adapter.js.map +1 -0
  35. package/dist/providers/firecrawl/client.d.ts +182 -0
  36. package/dist/providers/firecrawl/client.d.ts.map +1 -0
  37. package/dist/providers/firecrawl/client.js +426 -0
  38. package/dist/providers/firecrawl/client.js.map +1 -0
  39. package/dist/providers/firecrawl/credentials.d.ts +38 -0
  40. package/dist/providers/firecrawl/credentials.d.ts.map +1 -0
  41. package/dist/providers/firecrawl/credentials.js +60 -0
  42. package/dist/providers/firecrawl/credentials.js.map +1 -0
  43. package/dist/providers/firecrawl/diagnostics.d.ts +36 -0
  44. package/dist/providers/firecrawl/diagnostics.d.ts.map +1 -0
  45. package/dist/providers/firecrawl/diagnostics.js +65 -0
  46. package/dist/providers/firecrawl/diagnostics.js.map +1 -0
  47. package/dist/providers/firecrawl/quota.d.ts +46 -0
  48. package/dist/providers/firecrawl/quota.d.ts.map +1 -0
  49. package/dist/providers/firecrawl/quota.js +120 -0
  50. package/dist/providers/firecrawl/quota.js.map +1 -0
  51. package/dist/providers/registry.d.ts.map +1 -1
  52. package/dist/providers/registry.js +2 -0
  53. package/dist/providers/registry.js.map +1 -1
  54. package/dist/providers/tavily/adapter.d.ts +2 -2
  55. package/dist/providers/tavily/adapter.d.ts.map +1 -1
  56. package/dist/providers/tavily/adapter.js +5 -3
  57. package/dist/providers/tavily/adapter.js.map +1 -1
  58. package/dist/providers/types.d.ts +1 -1
  59. package/dist/providers/types.d.ts.map +1 -1
  60. package/dist/providers/types.js +1 -1
  61. package/dist/providers/types.js.map +1 -1
  62. package/package.json +1 -1
  63. package/dist/lib/research-state.d.ts +0 -104
  64. package/dist/lib/research-state.d.ts.map +0 -1
  65. package/dist/lib/research-state.js.map +0 -1
  66. package/dist/providers/minimax/sdk-client.d.ts +0 -29
  67. package/dist/providers/minimax/sdk-client.d.ts.map +0 -1
  68. package/dist/providers/minimax/sdk-client.js +0 -50
  69. 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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAMjE;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,SAAS,kBAAkB,EAMtE,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"}
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;AAE3D,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;CACxB,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"}
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 { ResearchStateFile } from "../../lib/research-state.js";
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?: 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,6BAA6B,CAAC;AAkBpF,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,CAqDpB"}
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 { computeResearchStateHash, createProductionResearchStateFile, } from "../../lib/research-state.js";
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 = computeResearchStateHash({
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 ?? createProductionResearchStateFile();
925
+ const researchStateFile = dependencies?.researchStateFile ??
926
+ createProductionAsyncJobStateFile(asyncJobStateDir("research"));
925
927
  return {
926
928
  id: "tavily",
927
929
  isConfigured(env) {