firecrawl-cli 1.19.28 → 1.19.29
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
CHANGED
|
@@ -364,7 +364,7 @@ firecrawl developer "axum middleware ordering"
|
|
|
364
364
|
|
|
365
365
|
| Option | Description |
|
|
366
366
|
| --------------------- | ----------------------------------------- |
|
|
367
|
-
| `--limit <n>` | Number of results (default:
|
|
367
|
+
| `--limit <n>` | Number of results (default: 10, max: 100) |
|
|
368
368
|
| `--skills-only` | Search only agent-skill files |
|
|
369
369
|
| `-o, --output <path>` | Save to file |
|
|
370
370
|
| `--json` | Output as compact JSON |
|
|
@@ -20,7 +20,7 @@ vitest_1.vi.mock('../../utils/client', async () => {
|
|
|
20
20
|
(0, vitest_1.describe)('handleDeveloperSearchCommand', () => {
|
|
21
21
|
let mockHttpGet;
|
|
22
22
|
// Wrap a payload in the axios envelope returned by `client.http.get`.
|
|
23
|
-
// Mirrors the `/v2/developer
|
|
23
|
+
// Mirrors the `/v2/search/developer` response shape:
|
|
24
24
|
// { success, results: [{ id, type, url, title, passages: [{ text }] }] }
|
|
25
25
|
const mockDeveloperResponse = (results) => ({
|
|
26
26
|
data: { success: true, results },
|
|
@@ -48,11 +48,11 @@ vitest_1.vi.mock('../../utils/client', async () => {
|
|
|
48
48
|
vitest_1.vi.clearAllMocks();
|
|
49
49
|
});
|
|
50
50
|
(0, vitest_1.describe)('API call generation', () => {
|
|
51
|
-
(0, vitest_1.it)('calls /v2/developer
|
|
51
|
+
(0, vitest_1.it)('calls /v2/search/developer with the query and integration tag', async () => {
|
|
52
52
|
mockHttpGet.mockResolvedValue(mockDeveloperResponse([sampleResult]));
|
|
53
53
|
await (0, developer_1.handleDeveloperSearchCommand)({ query: 'tokio spawn_blocking' });
|
|
54
54
|
(0, vitest_1.expect)(mockHttpGet).toHaveBeenCalledTimes(1);
|
|
55
|
-
(0, vitest_1.expect)(mockHttpGet).toHaveBeenCalledWith('/v2/developer
|
|
55
|
+
(0, vitest_1.expect)(mockHttpGet).toHaveBeenCalledWith('/v2/search/developer?query=tokio+spawn_blocking&integration=cli');
|
|
56
56
|
});
|
|
57
57
|
(0, vitest_1.it)('passes skills=only when skillsOnly is set', async () => {
|
|
58
58
|
mockHttpGet.mockResolvedValue(mockDeveloperResponse([sampleResult]));
|
|
@@ -60,7 +60,7 @@ vitest_1.vi.mock('../../utils/client', async () => {
|
|
|
60
60
|
query: 'tokio spawn_blocking',
|
|
61
61
|
skillsOnly: true,
|
|
62
62
|
});
|
|
63
|
-
(0, vitest_1.expect)(mockHttpGet).toHaveBeenCalledWith('/v2/developer
|
|
63
|
+
(0, vitest_1.expect)(mockHttpGet).toHaveBeenCalledWith('/v2/search/developer?query=tokio+spawn_blocking&skills=only&integration=cli');
|
|
64
64
|
});
|
|
65
65
|
(0, vitest_1.it)('passes k when a limit is provided', async () => {
|
|
66
66
|
mockHttpGet.mockResolvedValue(mockDeveloperResponse([sampleResult]));
|
|
@@ -68,7 +68,7 @@ vitest_1.vi.mock('../../utils/client', async () => {
|
|
|
68
68
|
query: 'tokio spawn_blocking',
|
|
69
69
|
k: 5,
|
|
70
70
|
});
|
|
71
|
-
(0, vitest_1.expect)(mockHttpGet).toHaveBeenCalledWith('/v2/developer
|
|
71
|
+
(0, vitest_1.expect)(mockHttpGet).toHaveBeenCalledWith('/v2/search/developer?query=tokio+spawn_blocking&k=5&integration=cli');
|
|
72
72
|
});
|
|
73
73
|
(0, vitest_1.it)('passes apiUrl and apiKey to getClient when provided', async () => {
|
|
74
74
|
mockHttpGet.mockResolvedValue(mockDeveloperResponse([]));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"developer.d.ts","sourceRoot":"","sources":["../../src/commands/developer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"developer.d.ts","sourceRoot":"","sources":["../../src/commands/developer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAiB,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAgEhF,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAcf"}
|
|
@@ -3,7 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.handleDeveloperSearchCommand = handleDeveloperSearchCommand;
|
|
4
4
|
const client_1 = require("../utils/client");
|
|
5
5
|
const output_1 = require("../utils/output");
|
|
6
|
-
|
|
6
|
+
// The other mount, /v2/developer/search, rejects keyless callers and may be
|
|
7
|
+
// withdrawn.
|
|
8
|
+
const BASE = '/v2/search/developer';
|
|
7
9
|
const MAX_PASSAGE_CHARS = 1200;
|
|
8
10
|
async function getDeveloper(path, options) {
|
|
9
11
|
const url = `${path}${path.includes('?') ? '&' : '?'}integration=cli`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"developer.js","sourceRoot":"","sources":["../../src/commands/developer.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"developer.js","sourceRoot":"","sources":["../../src/commands/developer.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -747,7 +747,7 @@ function createDeveloperCommand() {
|
|
|
747
747
|
const developerCmd = new commander_1.Command('developer')
|
|
748
748
|
.description('Search an index built for coding agents: GitHub issues, merged PRs, repository READMEs, and curated documentation sites. Use it for a programming question: code behaviour, a library or framework, an API contract, an error message, or a known bug. Returns ranked results with id, type, url, title, and the matched passages in markdown.')
|
|
749
749
|
.argument('<query>', 'Natural-language developer question or search phrase')
|
|
750
|
-
.option('--limit <number>', 'Number of results to return (default:
|
|
750
|
+
.option('--limit <number>', 'Number of results to return (default: 10, max: 100)', parseInt)
|
|
751
751
|
.addOption(new commander_1.Option('--k <number>').argParser(parseInt).hideHelp())
|
|
752
752
|
.option('--skills-only', 'Search only agent-skill files', false)
|
|
753
753
|
.option('-k, --api-key <key>', 'Firecrawl API key (overrides global --api-key)')
|
package/package.json
CHANGED