webfox 4.4.2 → 4.5.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/dist/{adapter-RL7JNB22.js → adapter-BQUN3ME2.js} +1 -1
- package/dist/{chunk-J3QO44LO.js → chunk-D4HCJRBE.js} +2 -2
- package/dist/{chunk-VYMIR35R.js → chunk-KH54YH7D.js} +23 -2
- package/dist/{chunk-MNN3BEPJ.js → chunk-VI3473TU.js} +2 -2
- package/dist/cli.js +3 -3
- package/dist/config.schema.json +18 -1
- package/dist/index.js +3 -3
- package/dist/pi.js +4 -8
- package/docs/provider.md +20 -0
- package/package.json +1 -1
|
@@ -6,14 +6,14 @@ import {
|
|
|
6
6
|
} from "./chunk-WCTOYZVB.js";
|
|
7
7
|
import {
|
|
8
8
|
configurationSchema
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-VI3473TU.js";
|
|
10
10
|
import {
|
|
11
11
|
effectiveOptions,
|
|
12
12
|
optionSchema,
|
|
13
13
|
providers,
|
|
14
14
|
selectProvider,
|
|
15
15
|
validateConfiguredOptions
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-KH54YH7D.js";
|
|
17
17
|
import {
|
|
18
18
|
cancelProcessGroup,
|
|
19
19
|
killProcessGroup
|
|
@@ -637,6 +637,11 @@ var customProvider = defineProvider({
|
|
|
637
637
|
});
|
|
638
638
|
|
|
639
639
|
// src/providers/exa/definition.ts
|
|
640
|
+
var snapshotAsOf = {
|
|
641
|
+
type: "string",
|
|
642
|
+
minLength: 1,
|
|
643
|
+
description: "ISO datetime cutoff, such as '2026-07-01T00:00:00Z'. Return the newest stored page version at or before this instant; pages without an eligible version are omitted. Do not combine with maxAgeHours, livecrawlTimeout, or subpages."
|
|
644
|
+
};
|
|
640
645
|
var exaProvider = defineProvider({
|
|
641
646
|
id: "exa",
|
|
642
647
|
label: "Exa",
|
|
@@ -844,6 +849,7 @@ var exaProvider = defineProvider({
|
|
|
844
849
|
],
|
|
845
850
|
description: "Include AI-generated summary."
|
|
846
851
|
},
|
|
852
|
+
snapshotAsOf,
|
|
847
853
|
livecrawlTimeout: {
|
|
848
854
|
type: "integer",
|
|
849
855
|
minimum: 1,
|
|
@@ -897,7 +903,7 @@ var exaProvider = defineProvider({
|
|
|
897
903
|
}
|
|
898
904
|
},
|
|
899
905
|
additionalProperties: false,
|
|
900
|
-
description: "Content extraction and
|
|
906
|
+
description: "Content extraction, freshness, and historical snapshot controls. Put text, highlights, summary, snapshotAsOf, maxAgeHours, and livecrawlTimeout here, not directly in options."
|
|
901
907
|
}
|
|
902
908
|
},
|
|
903
909
|
description: "Exa search options."
|
|
@@ -908,12 +914,27 @@ var exaProvider = defineProvider({
|
|
|
908
914
|
"Set includeDomains or excludeDomains when the task names preferred sources, requires primary sources, or needs noisy domains filtered out.",
|
|
909
915
|
"For fresh Exa search content, use options.contents.maxAgeHours=0; for cache-only retrieval use -1. Never put maxAgeHours at the top level of options.",
|
|
910
916
|
"Do not send deprecated livecrawl, even alongside maxAgeHours. Remove livecrawl rather than moving it into contents. Exa ignores startCrawlDate/endCrawlDate; use startPublishedDate/endPublishedDate to filter publication dates, not cache freshness.",
|
|
917
|
+
"For historical page versions, set options.contents.snapshotAsOf to an ISO datetime. Use type auto, fast, or instant; omit category, maxAgeHours, livecrawl, livecrawlTimeout, and subpages. Snapshot bounds content, not ranking: Exa still discovers URLs using current retrieval signals. Snapshot is a research preview with limited access and lookback.",
|
|
911
918
|
"Use includeText/excludeText for short required or forbidden phrases in page text.",
|
|
912
919
|
"Request contents.text, contents.highlights, or contents.summary only when snippets are insufficient and richer source context is needed directly in search results."
|
|
913
920
|
],
|
|
914
921
|
retrySafe: true
|
|
915
922
|
},
|
|
916
923
|
contents: {
|
|
924
|
+
options: {
|
|
925
|
+
type: "object",
|
|
926
|
+
properties: {
|
|
927
|
+
snapshotAsOf,
|
|
928
|
+
text: {
|
|
929
|
+
type: "boolean",
|
|
930
|
+
description: "Include text content."
|
|
931
|
+
}
|
|
932
|
+
},
|
|
933
|
+
description: "Exa contents options."
|
|
934
|
+
},
|
|
935
|
+
promptGuidelines: [
|
|
936
|
+
"For historical page versions, set options.snapshotAsOf to an ISO datetime (not nested inside contents). Exa returns the newest stored version at or before that instant and omits pages without an eligible version. Snapshot is a research preview with limited access and lookback."
|
|
937
|
+
],
|
|
917
938
|
retrySafe: true
|
|
918
939
|
},
|
|
919
940
|
answer: {
|
|
@@ -1970,7 +1991,7 @@ var serpbaseProvider = defineProvider({
|
|
|
1970
1991
|
retrySafe: true
|
|
1971
1992
|
}
|
|
1972
1993
|
},
|
|
1973
|
-
load: async () => (await import("./adapter-
|
|
1994
|
+
load: async () => (await import("./adapter-BQUN3ME2.js")).adapter
|
|
1974
1995
|
});
|
|
1975
1996
|
|
|
1976
1997
|
// src/providers/serper/definition.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
optionSchema,
|
|
3
3
|
providers
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-KH54YH7D.js";
|
|
5
5
|
import {
|
|
6
6
|
CAPABILITIES
|
|
7
7
|
} from "./chunk-GPACLYNT.js";
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
// package.json
|
|
10
10
|
var package_default = {
|
|
11
11
|
name: "webfox",
|
|
12
|
-
version: "4.
|
|
12
|
+
version: "4.5.0",
|
|
13
13
|
description: "Search the web, extract pages, get grounded answers, and run deep research with the web CLI, a TypeScript library, and a pi extension. Bring your own providers and API keys.",
|
|
14
14
|
type: "module",
|
|
15
15
|
files: [
|
package/dist/cli.js
CHANGED
|
@@ -11,14 +11,14 @@ import {
|
|
|
11
11
|
redactConfig,
|
|
12
12
|
resolveConfigPath,
|
|
13
13
|
setCapabilityDefault
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-D4HCJRBE.js";
|
|
15
15
|
import "./chunk-WCTOYZVB.js";
|
|
16
16
|
import {
|
|
17
17
|
PACKAGE_VERSION
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-VI3473TU.js";
|
|
19
19
|
import {
|
|
20
20
|
validateConfiguredOptions
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-KH54YH7D.js";
|
|
22
22
|
import "./chunk-ZVTVERW5.js";
|
|
23
23
|
import {
|
|
24
24
|
CAPABILITIES,
|
package/dist/config.schema.json
CHANGED
|
@@ -1388,6 +1388,11 @@
|
|
|
1388
1388
|
],
|
|
1389
1389
|
"description": "Include AI-generated summary."
|
|
1390
1390
|
},
|
|
1391
|
+
"snapshotAsOf": {
|
|
1392
|
+
"type": "string",
|
|
1393
|
+
"minLength": 1,
|
|
1394
|
+
"description": "ISO datetime cutoff, such as '2026-07-01T00:00:00Z'. Return the newest stored page version at or before this instant; pages without an eligible version are omitted. Do not combine with maxAgeHours, livecrawlTimeout, or subpages."
|
|
1395
|
+
},
|
|
1391
1396
|
"livecrawlTimeout": {
|
|
1392
1397
|
"type": "integer",
|
|
1393
1398
|
"minimum": 1,
|
|
@@ -1441,7 +1446,7 @@
|
|
|
1441
1446
|
}
|
|
1442
1447
|
},
|
|
1443
1448
|
"additionalProperties": false,
|
|
1444
|
-
"description": "Content extraction and
|
|
1449
|
+
"description": "Content extraction, freshness, and historical snapshot controls. Put text, highlights, summary, snapshotAsOf, maxAgeHours, and livecrawlTimeout here, not directly in options."
|
|
1445
1450
|
}
|
|
1446
1451
|
},
|
|
1447
1452
|
"description": "Exa search options.",
|
|
@@ -1449,6 +1454,18 @@
|
|
|
1449
1454
|
},
|
|
1450
1455
|
"contents": {
|
|
1451
1456
|
"type": "object",
|
|
1457
|
+
"properties": {
|
|
1458
|
+
"snapshotAsOf": {
|
|
1459
|
+
"type": "string",
|
|
1460
|
+
"minLength": 1,
|
|
1461
|
+
"description": "ISO datetime cutoff, such as '2026-07-01T00:00:00Z'. Return the newest stored page version at or before this instant; pages without an eligible version are omitted. Do not combine with maxAgeHours, livecrawlTimeout, or subpages."
|
|
1462
|
+
},
|
|
1463
|
+
"text": {
|
|
1464
|
+
"type": "boolean",
|
|
1465
|
+
"description": "Include text content."
|
|
1466
|
+
}
|
|
1467
|
+
},
|
|
1468
|
+
"description": "Exa contents options.",
|
|
1452
1469
|
"additionalProperties": false
|
|
1453
1470
|
},
|
|
1454
1471
|
"answer": {
|
package/dist/index.js
CHANGED
|
@@ -6,14 +6,14 @@ import {
|
|
|
6
6
|
resolveConfigPath,
|
|
7
7
|
setCapabilityDefault,
|
|
8
8
|
validateConfig
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-D4HCJRBE.js";
|
|
10
10
|
import "./chunk-WCTOYZVB.js";
|
|
11
11
|
import {
|
|
12
12
|
CONFIG_SCHEMA_URL
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-VI3473TU.js";
|
|
14
14
|
import {
|
|
15
15
|
validateConfiguredOptions
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-KH54YH7D.js";
|
|
17
17
|
import "./chunk-ZVTVERW5.js";
|
|
18
18
|
import {
|
|
19
19
|
CAPABILITIES,
|
package/dist/pi.js
CHANGED
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
createWebfox,
|
|
6
6
|
resolveConfigPath
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-D4HCJRBE.js";
|
|
8
8
|
import "./chunk-WCTOYZVB.js";
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-VI3473TU.js";
|
|
10
|
+
import "./chunk-KH54YH7D.js";
|
|
11
11
|
import "./chunk-ZVTVERW5.js";
|
|
12
12
|
import {
|
|
13
13
|
CAPABILITIES
|
|
@@ -288,11 +288,7 @@ var WebCall = class {
|
|
|
288
288
|
const { args, theme, capability } = this;
|
|
289
289
|
const title = theme.fg("toolTitle", theme.bold(`web ${capability}`));
|
|
290
290
|
let text = title;
|
|
291
|
-
const parameters = callParameters(
|
|
292
|
-
capability,
|
|
293
|
-
args,
|
|
294
|
-
(key2) => theme.bold(key2)
|
|
295
|
-
);
|
|
291
|
+
const parameters = callParameters(capability, args);
|
|
296
292
|
if (parameters) text += theme.fg("dim", ` ${parameters}`);
|
|
297
293
|
if (this.expanded)
|
|
298
294
|
return visibleWidth2(text) <= width ? [text] : new Text2(text, 0, 0).render(width).map((line) => truncateLine(line, width));
|
package/docs/provider.md
CHANGED
|
@@ -74,6 +74,26 @@ web search "Node.js release notes" --provider exa
|
|
|
74
74
|
web research "Compare databases for an analytics service" --provider exa --timeout 20m
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
+
Use [Exa Snapshot](https://exa.ai/docs/search/snapshot) to retrieve the newest
|
|
78
|
+
stored page version at or before an ISO datetime. For search, set
|
|
79
|
+
`options.contents.snapshotAsOf`; for page extraction, set `options.snapshotAsOf`.
|
|
80
|
+
Both options are also exposed to the model when Exa is selected in pi.
|
|
81
|
+
|
|
82
|
+
```sh
|
|
83
|
+
web search "Python release notes" --provider exa \
|
|
84
|
+
--options-json '{"contents":{"snapshotAsOf":"2026-07-01T00:00:00Z"}}'
|
|
85
|
+
web contents https://docs.python.org/3/whatsnew/ --provider exa \
|
|
86
|
+
--options-json '{"snapshotAsOf":"2026-07-01T00:00:00Z","text":true}'
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Snapshot search supports `auto`, `fast`, and `instant`, without `category`.
|
|
90
|
+
Do not combine snapshots with `maxAgeHours`, `livecrawl`, `livecrawlTimeout`, or
|
|
91
|
+
`subpages`, including saved defaults. Pages without an eligible snapshot are
|
|
92
|
+
omitted by Exa; page extraction reports those URLs as failures. The cutoff bounds
|
|
93
|
+
page content, not ranking: Exa still discovers candidate URLs using current
|
|
94
|
+
retrieval signals. Snapshot is a research preview with limited access and
|
|
95
|
+
lookback; consult Exa's documentation for current limits.
|
|
96
|
+
|
|
77
97
|
## Firecrawl
|
|
78
98
|
|
|
79
99
|
Supports search, page extraction, and page-scoped answers. Set `FIRECRAWL_API_KEY`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "webfox",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.5.0",
|
|
4
4
|
"description": "Search the web, extract pages, get grounded answers, and run deep research with the web CLI, a TypeScript library, and a pi extension. Bring your own providers and API keys.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|