@brightdata/cli 0.1.6 → 0.1.7
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 +56 -0
- package/dist/__tests__/commands/discover.test.d.ts +2 -0
- package/dist/__tests__/commands/discover.test.d.ts.map +1 -0
- package/dist/__tests__/commands/discover.test.js +220 -0
- package/dist/__tests__/commands/discover.test.js.map +1 -0
- package/dist/commands/discover.d.ts +10 -0
- package/dist/commands/discover.d.ts.map +1 -0
- package/dist/commands/discover.js +156 -0
- package/dist/commands/discover.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/types/discover.d.ts +50 -0
- package/dist/types/discover.d.ts.map +1 -0
- package/dist/types/discover.js +3 -0
- package/dist/types/discover.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
|---|---|
|
|
25
25
|
| `brightdata scrape` | Scrape any URL — bypasses CAPTCHAs, JS rendering, anti-bot protections |
|
|
26
26
|
| `brightdata search` | Google / Bing / Yandex search with structured JSON output |
|
|
27
|
+
| `brightdata discover` | AI-powered web discovery - find and rank results by intent with optional full-page content |
|
|
27
28
|
| `brightdata pipelines` | Extract structured data from 40+ platforms (Amazon, LinkedIn, TikTok…) |
|
|
28
29
|
| `brightdata browser` | Control a real browser via Bright Data's Scraping Browser — navigate, snapshot, click, type, and more |
|
|
29
30
|
| `brightdata zones` | List and inspect your Bright Data proxy zones |
|
|
@@ -44,6 +45,7 @@
|
|
|
44
45
|
- [init](#init)
|
|
45
46
|
- [scrape](#scrape)
|
|
46
47
|
- [search](#search)
|
|
48
|
+
- [discover](#discover)
|
|
47
49
|
- [pipelines](#pipelines)
|
|
48
50
|
- [browser](#browser)
|
|
49
51
|
- [status](#status)
|
|
@@ -246,6 +248,60 @@ brightdata search "bright data pricing" --engine bing
|
|
|
246
248
|
|
|
247
249
|
---
|
|
248
250
|
|
|
251
|
+
### `discover`
|
|
252
|
+
|
|
253
|
+
AI-powered web discovery. Submit a query with optional intent, and Bright Data finds, ranks, and optionally extracts full-page content for each result.
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
brightdata discover <query> [options]
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
| Flag | Description |
|
|
260
|
+
|---|---|
|
|
261
|
+
| `--intent <text>` | AI intent to evaluate and rank result relevance |
|
|
262
|
+
| `--country <code>` | ISO country code (default: `US`) |
|
|
263
|
+
| `--city <name>` | City for localized results (e.g. `"New York"`) |
|
|
264
|
+
| `--language <code>` | Language code (default: `en`) |
|
|
265
|
+
| `--num-results <n>` | Number of results to return |
|
|
266
|
+
| `--filter-keywords <words>` | Comma-separated keywords that must appear in results |
|
|
267
|
+
| `--include-content` | Include full page content in each result |
|
|
268
|
+
| `--no-remove-duplicates` | Keep duplicate results |
|
|
269
|
+
| `--start-date <date>` | Only content updated from date (`YYYY-MM-DD`) |
|
|
270
|
+
| `--end-date <date>` | Only content updated until date (`YYYY-MM-DD`) |
|
|
271
|
+
| `--timeout <seconds>` | Polling timeout (default: `600`) |
|
|
272
|
+
| `-o, --output <path>` | Write output to file |
|
|
273
|
+
| `--json` / `--pretty` | JSON output (raw / indented) |
|
|
274
|
+
| `-k, --api-key <key>` | Override API key |
|
|
275
|
+
|
|
276
|
+
**Examples**
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
# Basic discovery — table output
|
|
280
|
+
brightdata discover "AI trends"
|
|
281
|
+
|
|
282
|
+
# With AI intent for relevance ranking
|
|
283
|
+
brightdata discover "AI trends" \
|
|
284
|
+
--intent "Prioritize institutional reports for VC research"
|
|
285
|
+
|
|
286
|
+
# Include full page content as markdown
|
|
287
|
+
brightdata discover "AI trends" --include-content --num-results 5
|
|
288
|
+
|
|
289
|
+
# Geo-targeted with date range
|
|
290
|
+
brightdata discover "best restaurants" --country US --city "New York" \
|
|
291
|
+
--start-date 2025-01-01 --end-date 2025-12-31
|
|
292
|
+
|
|
293
|
+
# Filter results by keywords
|
|
294
|
+
brightdata discover "generative AI SaaS" --filter-keywords "revenue,SaaS"
|
|
295
|
+
|
|
296
|
+
# JSON output to file
|
|
297
|
+
brightdata discover "AI trends" --num-results 10 --pretty -o results.json
|
|
298
|
+
|
|
299
|
+
# Pipe-friendly — redirected stdout outputs JSON automatically
|
|
300
|
+
brightdata discover "AI trends" --include-content --num-results 3 > results.json
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
249
305
|
### `pipelines`
|
|
250
306
|
|
|
251
307
|
Extract structured data from 40+ platforms using Bright Data's Web Scraper API. Triggers an async collection job, polls until ready, and returns results.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/commands/discover.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const mocks = vitest_1.vi.hoisted(() => ({
|
|
5
|
+
post: vitest_1.vi.fn(),
|
|
6
|
+
get: vitest_1.vi.fn(),
|
|
7
|
+
ensure_authenticated: vitest_1.vi.fn(),
|
|
8
|
+
stop: vitest_1.vi.fn(),
|
|
9
|
+
start: vitest_1.vi.fn(),
|
|
10
|
+
print: vitest_1.vi.fn(),
|
|
11
|
+
print_table: vitest_1.vi.fn(),
|
|
12
|
+
fail: vitest_1.vi.fn((msg) => { throw new Error(`fail:${msg}`); }),
|
|
13
|
+
dim: vitest_1.vi.fn((msg) => msg),
|
|
14
|
+
parse_timeout: vitest_1.vi.fn(),
|
|
15
|
+
poll_until: vitest_1.vi.fn(),
|
|
16
|
+
}));
|
|
17
|
+
vitest_1.vi.mock('../../utils/client', () => ({
|
|
18
|
+
post: mocks.post,
|
|
19
|
+
get: mocks.get,
|
|
20
|
+
}));
|
|
21
|
+
vitest_1.vi.mock('../../utils/auth', () => ({
|
|
22
|
+
ensure_authenticated: mocks.ensure_authenticated,
|
|
23
|
+
}));
|
|
24
|
+
vitest_1.vi.mock('../../utils/spinner', () => ({
|
|
25
|
+
start: mocks.start,
|
|
26
|
+
}));
|
|
27
|
+
vitest_1.vi.mock('../../utils/output', () => ({
|
|
28
|
+
print: mocks.print,
|
|
29
|
+
print_table: mocks.print_table,
|
|
30
|
+
fail: mocks.fail,
|
|
31
|
+
dim: mocks.dim,
|
|
32
|
+
}));
|
|
33
|
+
vitest_1.vi.mock('../../utils/polling', () => ({
|
|
34
|
+
parse_timeout: mocks.parse_timeout,
|
|
35
|
+
poll_until: mocks.poll_until,
|
|
36
|
+
}));
|
|
37
|
+
const discover_1 = require("../../commands/discover");
|
|
38
|
+
(0, vitest_1.describe)('commands/discover', () => {
|
|
39
|
+
(0, vitest_1.beforeEach)(() => {
|
|
40
|
+
vitest_1.vi.clearAllMocks();
|
|
41
|
+
mocks.ensure_authenticated.mockReturnValue('api_key');
|
|
42
|
+
mocks.parse_timeout.mockReturnValue(600);
|
|
43
|
+
mocks.start.mockReturnValue({ stop: mocks.stop });
|
|
44
|
+
});
|
|
45
|
+
(0, vitest_1.describe)('build_request', () => {
|
|
46
|
+
(0, vitest_1.it)('builds minimal request with only query', () => {
|
|
47
|
+
const req = (0, discover_1.build_request)('AI trends', {});
|
|
48
|
+
(0, vitest_1.expect)(req).toEqual({ query: 'AI trends' });
|
|
49
|
+
});
|
|
50
|
+
(0, vitest_1.it)('includes all optional params', () => {
|
|
51
|
+
const req = (0, discover_1.build_request)('AI trends', {
|
|
52
|
+
intent: 'find research papers',
|
|
53
|
+
city: 'New York',
|
|
54
|
+
country: 'US',
|
|
55
|
+
language: 'en',
|
|
56
|
+
numResults: '10',
|
|
57
|
+
filterKeywords: 'AI, machine learning',
|
|
58
|
+
includeContent: true,
|
|
59
|
+
startDate: '2025-01-01',
|
|
60
|
+
endDate: '2025-12-31',
|
|
61
|
+
});
|
|
62
|
+
(0, vitest_1.expect)(req).toEqual({
|
|
63
|
+
query: 'AI trends',
|
|
64
|
+
intent: 'find research papers',
|
|
65
|
+
city: 'New York',
|
|
66
|
+
country: 'US',
|
|
67
|
+
language: 'en',
|
|
68
|
+
num_results: 10,
|
|
69
|
+
filter_keywords: ['AI', 'machine learning'],
|
|
70
|
+
include_content: true,
|
|
71
|
+
start_date: '2025-01-01',
|
|
72
|
+
end_date: '2025-12-31',
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
(0, vitest_1.it)('parses comma-separated filter keywords with whitespace', () => {
|
|
76
|
+
const req = (0, discover_1.build_request)('q', { filterKeywords: ' a , b , c ' });
|
|
77
|
+
(0, vitest_1.expect)(req.filter_keywords).toEqual(['a', 'b', 'c']);
|
|
78
|
+
});
|
|
79
|
+
(0, vitest_1.it)('does not set format by default (API returns JSON)', () => {
|
|
80
|
+
const req = (0, discover_1.build_request)('test', {});
|
|
81
|
+
(0, vitest_1.expect)(req.format).toBeUndefined();
|
|
82
|
+
});
|
|
83
|
+
(0, vitest_1.it)('does not set format when include-content is used', () => {
|
|
84
|
+
const req = (0, discover_1.build_request)('test', { includeContent: true });
|
|
85
|
+
(0, vitest_1.expect)(req.format).toBeUndefined();
|
|
86
|
+
(0, vitest_1.expect)(req.include_content).toBe(true);
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
(0, vitest_1.describe)('extract_status', () => {
|
|
90
|
+
(0, vitest_1.it)('returns status from valid response', () => {
|
|
91
|
+
(0, vitest_1.expect)((0, discover_1.extract_status)({ status: 'processing' })).toBe('processing');
|
|
92
|
+
(0, vitest_1.expect)((0, discover_1.extract_status)({ status: 'done' })).toBe('done');
|
|
93
|
+
});
|
|
94
|
+
(0, vitest_1.it)('returns undefined for invalid input', () => {
|
|
95
|
+
(0, vitest_1.expect)((0, discover_1.extract_status)(null)).toBeUndefined();
|
|
96
|
+
(0, vitest_1.expect)((0, discover_1.extract_status)(undefined)).toBeUndefined();
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
(0, vitest_1.describe)('format_markdown', () => {
|
|
100
|
+
(0, vitest_1.it)('formats results as markdown', () => {
|
|
101
|
+
const md = (0, discover_1.format_markdown)([
|
|
102
|
+
{
|
|
103
|
+
link: 'https://example.com',
|
|
104
|
+
title: 'Example',
|
|
105
|
+
description: 'A description',
|
|
106
|
+
relevance_score: 0.95,
|
|
107
|
+
},
|
|
108
|
+
], 'test query');
|
|
109
|
+
(0, vitest_1.expect)(md).toContain('# Discover results for "test query"');
|
|
110
|
+
(0, vitest_1.expect)(md).toContain('**1. [Example](https://example.com)** (95.0%)');
|
|
111
|
+
(0, vitest_1.expect)(md).toContain('A description');
|
|
112
|
+
});
|
|
113
|
+
(0, vitest_1.it)('includes content when present', () => {
|
|
114
|
+
const md = (0, discover_1.format_markdown)([
|
|
115
|
+
{
|
|
116
|
+
link: 'https://example.com',
|
|
117
|
+
title: 'Example',
|
|
118
|
+
description: 'Desc',
|
|
119
|
+
relevance_score: 0.5,
|
|
120
|
+
content: '# Page content here',
|
|
121
|
+
},
|
|
122
|
+
], 'q');
|
|
123
|
+
(0, vitest_1.expect)(md).toContain('# Page content here');
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
(0, vitest_1.describe)('print_discover_table', () => {
|
|
127
|
+
(0, vitest_1.it)('calls print_table with formatted rows', () => {
|
|
128
|
+
const results = [
|
|
129
|
+
{
|
|
130
|
+
link: 'https://example.com',
|
|
131
|
+
title: 'Example Title',
|
|
132
|
+
description: 'Desc',
|
|
133
|
+
relevance_score: 0.98184747,
|
|
134
|
+
},
|
|
135
|
+
];
|
|
136
|
+
(0, discover_1.print_discover_table)(results);
|
|
137
|
+
(0, vitest_1.expect)(mocks.print_table).toHaveBeenCalledWith([{
|
|
138
|
+
'#': '1',
|
|
139
|
+
title: 'Example Title',
|
|
140
|
+
score: '98.2%',
|
|
141
|
+
url: 'https://example.com',
|
|
142
|
+
}], ['#', 'title', 'score', 'url']);
|
|
143
|
+
});
|
|
144
|
+
(0, vitest_1.it)('prints dim message when no results', () => {
|
|
145
|
+
const log = vitest_1.vi.spyOn(console, 'log').mockImplementation(() => { });
|
|
146
|
+
(0, discover_1.print_discover_table)([]);
|
|
147
|
+
(0, vitest_1.expect)(log).toHaveBeenCalled();
|
|
148
|
+
(0, vitest_1.expect)(mocks.print_table).not.toHaveBeenCalled();
|
|
149
|
+
log.mockRestore();
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
(0, vitest_1.describe)('handle_discover', () => {
|
|
153
|
+
(0, vitest_1.it)('triggers and polls then prints table', async () => {
|
|
154
|
+
mocks.post.mockResolvedValue({ status: 'ok', task_id: 'abc123' });
|
|
155
|
+
mocks.poll_until.mockResolvedValue({
|
|
156
|
+
result: {
|
|
157
|
+
status: 'done',
|
|
158
|
+
duration_seconds: 5,
|
|
159
|
+
results: [
|
|
160
|
+
{
|
|
161
|
+
link: 'https://example.com',
|
|
162
|
+
title: 'Result',
|
|
163
|
+
description: 'Desc',
|
|
164
|
+
relevance_score: 0.9,
|
|
165
|
+
},
|
|
166
|
+
],
|
|
167
|
+
},
|
|
168
|
+
attempts: 3,
|
|
169
|
+
});
|
|
170
|
+
await (0, discover_1.handle_discover)('AI trends', {});
|
|
171
|
+
(0, vitest_1.expect)(mocks.post).toHaveBeenCalledWith('api_key', '/discover', { query: 'AI trends' }, { timing: undefined });
|
|
172
|
+
(0, vitest_1.expect)(mocks.poll_until).toHaveBeenCalledTimes(1);
|
|
173
|
+
(0, vitest_1.expect)(mocks.print_table).toHaveBeenCalledTimes(1);
|
|
174
|
+
});
|
|
175
|
+
(0, vitest_1.it)('prints json when --json is set', async () => {
|
|
176
|
+
const response = {
|
|
177
|
+
status: 'done',
|
|
178
|
+
duration_seconds: 2,
|
|
179
|
+
results: [{
|
|
180
|
+
link: 'https://example.com',
|
|
181
|
+
title: 'R',
|
|
182
|
+
description: 'D',
|
|
183
|
+
relevance_score: 0.8,
|
|
184
|
+
}],
|
|
185
|
+
};
|
|
186
|
+
mocks.post.mockResolvedValue({ status: 'ok', task_id: 't1' });
|
|
187
|
+
mocks.poll_until.mockResolvedValue({ result: response, attempts: 1 });
|
|
188
|
+
await (0, discover_1.handle_discover)('q', { json: true });
|
|
189
|
+
(0, vitest_1.expect)(mocks.print).toHaveBeenCalledWith(response, { json: true, pretty: undefined, output: undefined });
|
|
190
|
+
(0, vitest_1.expect)(mocks.print_table).not.toHaveBeenCalled();
|
|
191
|
+
});
|
|
192
|
+
(0, vitest_1.it)('prints raw JSON when --output is set', async () => {
|
|
193
|
+
const response = {
|
|
194
|
+
status: 'done',
|
|
195
|
+
results: [{
|
|
196
|
+
link: 'https://example.com',
|
|
197
|
+
title: 'R',
|
|
198
|
+
description: 'D',
|
|
199
|
+
relevance_score: 0.7,
|
|
200
|
+
}],
|
|
201
|
+
};
|
|
202
|
+
mocks.post.mockResolvedValue({ status: 'ok', task_id: 't2' });
|
|
203
|
+
mocks.poll_until.mockResolvedValue({ result: response, attempts: 1 });
|
|
204
|
+
await (0, discover_1.handle_discover)('q', { output: 'out.json' });
|
|
205
|
+
(0, vitest_1.expect)(mocks.print).toHaveBeenCalledWith(response, { json: undefined, pretty: undefined, output: 'out.json' });
|
|
206
|
+
});
|
|
207
|
+
(0, vitest_1.it)('fails when trigger returns no task_id', async () => {
|
|
208
|
+
mocks.post.mockResolvedValue({ status: 'ok' });
|
|
209
|
+
const exit = vitest_1.vi.spyOn(process, 'exit')
|
|
210
|
+
.mockImplementation(() => undefined);
|
|
211
|
+
const error = vitest_1.vi.spyOn(console, 'error')
|
|
212
|
+
.mockImplementation(() => { });
|
|
213
|
+
await (0, discover_1.handle_discover)('q', {});
|
|
214
|
+
(0, vitest_1.expect)(mocks.fail).toHaveBeenCalled();
|
|
215
|
+
exit.mockRestore();
|
|
216
|
+
error.mockRestore();
|
|
217
|
+
});
|
|
218
|
+
});
|
|
219
|
+
});
|
|
220
|
+
//# sourceMappingURL=discover.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.test.js","sourceRoot":"","sources":["../../../src/__tests__/commands/discover.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import type { Discover_request, Discover_result, Discover_poll_response, Discover_opts } from '../types/discover';
|
|
3
|
+
declare const build_request: (query: string, opts: Discover_opts) => Discover_request;
|
|
4
|
+
declare const format_markdown: (results: Discover_result[], query: string) => string;
|
|
5
|
+
declare const print_discover_table: (results: Discover_result[]) => void;
|
|
6
|
+
declare const extract_status: (result: Discover_poll_response) => string | undefined;
|
|
7
|
+
declare const handle_discover: (query: string, opts: Discover_opts) => Promise<void>;
|
|
8
|
+
declare const discover_command: Command;
|
|
9
|
+
export { discover_command, handle_discover, build_request, extract_status, format_markdown, print_discover_table };
|
|
10
|
+
//# sourceMappingURL=discover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/commands/discover.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAMlC,OAAO,KAAK,EACR,gBAAgB,EAEhB,eAAe,EACf,sBAAsB,EACtB,aAAa,EAChB,MAAM,mBAAmB,CAAC;AAK3B,QAAA,MAAM,aAAa,GAAI,OAAO,MAAM,EAAE,MAAM,aAAa,KAAG,gBAyB3D,CAAC;AAEF,QAAA,MAAM,eAAe,GACjB,SAAS,eAAe,EAAE,EAC1B,OAAO,MAAM,KACd,MAqBF,CAAC;AAEF,QAAA,MAAM,oBAAoB,GAAI,SAAS,eAAe,EAAE,SAavD,CAAC;AAEF,QAAA,MAAM,cAAc,GAAI,QAAQ,sBAAsB,KAAG,MAAM,GAAC,SAI/D,CAAC;AAEF,QAAA,MAAM,eAAe,GAAS,OAAO,MAAM,EAAE,MAAM,aAAa,kBAoE/D,CAAC;AAEF,QAAA,MAAM,gBAAgB,SAuBM,CAAC;AAE7B,OAAO,EAAC,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EACpE,eAAe,EAAE,oBAAoB,EAAC,CAAC"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.print_discover_table = exports.format_markdown = exports.extract_status = exports.build_request = exports.handle_discover = exports.discover_command = void 0;
|
|
4
|
+
const commander_1 = require("commander");
|
|
5
|
+
const client_1 = require("../utils/client");
|
|
6
|
+
const auth_1 = require("../utils/auth");
|
|
7
|
+
const spinner_1 = require("../utils/spinner");
|
|
8
|
+
const polling_1 = require("../utils/polling");
|
|
9
|
+
const output_1 = require("../utils/output");
|
|
10
|
+
const ENDPOINT = '/discover';
|
|
11
|
+
const RUNNING_STATUSES = ['processing'];
|
|
12
|
+
const build_request = (query, opts) => {
|
|
13
|
+
const req = { query };
|
|
14
|
+
if (opts.intent)
|
|
15
|
+
req.intent = opts.intent;
|
|
16
|
+
if (opts.city)
|
|
17
|
+
req.city = opts.city;
|
|
18
|
+
if (opts.country)
|
|
19
|
+
req.country = opts.country;
|
|
20
|
+
if (opts.language)
|
|
21
|
+
req.language = opts.language;
|
|
22
|
+
if (opts.numResults)
|
|
23
|
+
req.num_results = +opts.numResults;
|
|
24
|
+
if (opts.filterKeywords)
|
|
25
|
+
req.filter_keywords = opts.filterKeywords.split(',').map(k => k.trim());
|
|
26
|
+
if (opts.includeContent) {
|
|
27
|
+
req.include_content = true;
|
|
28
|
+
}
|
|
29
|
+
if (opts.removeDuplicates === false)
|
|
30
|
+
req.remove_duplicates = false;
|
|
31
|
+
if (opts.startDate)
|
|
32
|
+
req.start_date = opts.startDate;
|
|
33
|
+
if (opts.endDate)
|
|
34
|
+
req.end_date = opts.endDate;
|
|
35
|
+
return req;
|
|
36
|
+
};
|
|
37
|
+
exports.build_request = build_request;
|
|
38
|
+
const format_markdown = (results, query) => {
|
|
39
|
+
const lines = [];
|
|
40
|
+
lines.push(`# Discover results for "${query}"`);
|
|
41
|
+
lines.push(`_${results.length} results_`);
|
|
42
|
+
lines.push('');
|
|
43
|
+
for (let i = 0; i < results.length; i++) {
|
|
44
|
+
const r = results[i];
|
|
45
|
+
const score = (r.relevance_score * 100).toFixed(1);
|
|
46
|
+
lines.push(`**${i + 1}. [${r.title}](${r.link})** (${score}%)`);
|
|
47
|
+
if (r.description)
|
|
48
|
+
lines.push(r.description);
|
|
49
|
+
lines.push(`<${r.link}>`);
|
|
50
|
+
if (r.content) {
|
|
51
|
+
lines.push('');
|
|
52
|
+
lines.push(r.content);
|
|
53
|
+
}
|
|
54
|
+
lines.push('');
|
|
55
|
+
}
|
|
56
|
+
return lines.join('\n');
|
|
57
|
+
};
|
|
58
|
+
exports.format_markdown = format_markdown;
|
|
59
|
+
const print_discover_table = (results) => {
|
|
60
|
+
if (!results.length) {
|
|
61
|
+
console.log((0, output_1.dim)('No results found.'));
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const rows = results.map((r, i) => ({
|
|
65
|
+
'#': String(i + 1),
|
|
66
|
+
title: (r.title ?? '').slice(0, 50),
|
|
67
|
+
score: (r.relevance_score * 100).toFixed(1) + '%',
|
|
68
|
+
url: (r.link ?? '').slice(0, 60),
|
|
69
|
+
}));
|
|
70
|
+
(0, output_1.print_table)(rows, ['#', 'title', 'score', 'url']);
|
|
71
|
+
};
|
|
72
|
+
exports.print_discover_table = print_discover_table;
|
|
73
|
+
const extract_status = (result) => {
|
|
74
|
+
if (!result || typeof result != 'object')
|
|
75
|
+
return undefined;
|
|
76
|
+
return result.status;
|
|
77
|
+
};
|
|
78
|
+
exports.extract_status = extract_status;
|
|
79
|
+
const handle_discover = async (query, opts) => {
|
|
80
|
+
const api_key = (0, auth_1.ensure_authenticated)(opts.apiKey);
|
|
81
|
+
let timeout = 600;
|
|
82
|
+
try {
|
|
83
|
+
timeout = (0, polling_1.parse_timeout)(opts.timeout);
|
|
84
|
+
}
|
|
85
|
+
catch (e) {
|
|
86
|
+
(0, output_1.fail)(e.message);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const body = build_request(query, opts);
|
|
90
|
+
const spinner = (0, spinner_1.start)(`Discovering results for "${query}"...`);
|
|
91
|
+
try {
|
|
92
|
+
const trigger = await (0, client_1.post)(api_key, ENDPOINT, body, { timing: opts.timing });
|
|
93
|
+
const task_id = trigger.task_id;
|
|
94
|
+
if (!task_id) {
|
|
95
|
+
spinner.stop();
|
|
96
|
+
(0, output_1.fail)('Failed to trigger discover (missing task_id).');
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
spinner.stop();
|
|
100
|
+
console.error((0, output_1.dim)(`Task submitted: ${task_id}`));
|
|
101
|
+
const poll_spinner = (0, spinner_1.start)('Waiting for results...');
|
|
102
|
+
const poll_result = await (0, polling_1.poll_until)({
|
|
103
|
+
timeout_seconds: timeout,
|
|
104
|
+
fetch_once: () => (0, client_1.get)(api_key, `${ENDPOINT}?task_id=${task_id}`, { timing: opts.timing }),
|
|
105
|
+
get_status: extract_status,
|
|
106
|
+
running_statuses: RUNNING_STATUSES,
|
|
107
|
+
timeout_label: 'discover results',
|
|
108
|
+
on_running: ({ attempt, timeout_seconds, status }) => {
|
|
109
|
+
console.error((0, output_1.dim)(`Status: ${status} — polling `
|
|
110
|
+
+ `(attempt ${attempt}/${timeout_seconds})`));
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
poll_spinner.stop();
|
|
114
|
+
const response = poll_result.result;
|
|
115
|
+
const results = response.results ?? [];
|
|
116
|
+
if (response.duration_seconds != null) {
|
|
117
|
+
console.error((0, output_1.dim)(`Done in ${response.duration_seconds}s `
|
|
118
|
+
+ `(${poll_result.attempts} poll attempts)`));
|
|
119
|
+
}
|
|
120
|
+
const print_opts = { json: opts.json, pretty: opts.pretty,
|
|
121
|
+
output: opts.output };
|
|
122
|
+
if (opts.json || opts.pretty || opts.output || !output_1.is_tty) {
|
|
123
|
+
(0, output_1.print)(response, print_opts);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
print_discover_table(results);
|
|
127
|
+
}
|
|
128
|
+
catch (e) {
|
|
129
|
+
spinner.stop();
|
|
130
|
+
console.error(e.message);
|
|
131
|
+
process.exit(1);
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
exports.handle_discover = handle_discover;
|
|
135
|
+
const discover_command = new commander_1.Command('discover')
|
|
136
|
+
.description('Search and rank web results using AI-driven intent')
|
|
137
|
+
.argument('<query>', 'Search query')
|
|
138
|
+
.option('--intent <text>', 'AI intent to evaluate and rank result relevance')
|
|
139
|
+
.option('--country <code>', 'ISO country code for localized results (default: US)')
|
|
140
|
+
.option('--city <name>', 'City for localized results (e.g. "New York")')
|
|
141
|
+
.option('--language <code>', 'Language code (default: en)')
|
|
142
|
+
.option('--num-results <n>', 'Number of results to return')
|
|
143
|
+
.option('--filter-keywords <words>', 'Comma-separated keywords that must appear in results')
|
|
144
|
+
.option('--include-content', 'Include page content in markdown format')
|
|
145
|
+
.option('--no-remove-duplicates', 'Keep duplicate results')
|
|
146
|
+
.option('--start-date <date>', 'Only content updated from date (YYYY-MM-DD)')
|
|
147
|
+
.option('--end-date <date>', 'Only content updated until date (YYYY-MM-DD)')
|
|
148
|
+
.option('--timeout <seconds>', 'Polling timeout in seconds (default: 600)')
|
|
149
|
+
.option('-o, --output <path>', 'Write output to file')
|
|
150
|
+
.option('--json', 'Force JSON output')
|
|
151
|
+
.option('--pretty', 'Pretty-print JSON output')
|
|
152
|
+
.option('--timing', 'Show request timing')
|
|
153
|
+
.option('-k, --api-key <key>', 'Override API key')
|
|
154
|
+
.action(handle_discover);
|
|
155
|
+
exports.discover_command = discover_command;
|
|
156
|
+
//# sourceMappingURL=discover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/commands/discover.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -20,6 +20,7 @@ const skill_1 = require("./commands/skill");
|
|
|
20
20
|
const budget_1 = require("./commands/budget");
|
|
21
21
|
const browser_1 = require("./commands/browser");
|
|
22
22
|
const add_mcp_1 = require("./commands/add-mcp");
|
|
23
|
+
const discover_1 = require("./commands/discover");
|
|
23
24
|
const package_json_1 = __importDefault(require("../package.json"));
|
|
24
25
|
const build_program = () => {
|
|
25
26
|
const program = new commander_1.Command();
|
|
@@ -46,6 +47,7 @@ const build_program = () => {
|
|
|
46
47
|
program.addCommand(skill_1.skill_command);
|
|
47
48
|
program.addCommand(budget_1.budget_command);
|
|
48
49
|
program.addCommand(browser_1.browser_command);
|
|
50
|
+
program.addCommand(discover_1.discover_command);
|
|
49
51
|
program.addCommand(add_command);
|
|
50
52
|
return program;
|
|
51
53
|
};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AACA,yCAAkC;AAClC,qDAA8D;AAC9D,4CAA+C;AAC/C,8CAAiD;AACjD,8CAAiD;AACjD,8CAAiD;AACjD,gDAAqD;AACrD,8CAAiD;AACjD,4CAA+C;AAC/C,8CAAiD;AACjD,0CAA6C;AAC7C,gDAAmD;AACnD,4CAA+C;AAC/C,8CAAiD;AACjD,gDAAmD;AACnD,gDAAmD;AACnD,mEAA0C;AAE1C,MAAM,aAAa,GAAG,GAAE,EAAE;IACtB,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAC9B,MAAM,WAAW,GAAG,IAAI,mBAAO,CAAC,KAAK,CAAC;SACjC,WAAW,CAAC,yDAAyD,CAAC;SACtE,UAAU,CAAC,yBAAe,CAAC,CAAC;IAEjC,OAAO;SACF,IAAI,CAAC,YAAY,CAAC;SAClB,WAAW,CACR,0DAA0D;UACzD,oEAAoE,CACxE;SACA,OAAO,CAAC,sBAAW,CAAC,OAAO,EAAE,eAAe,CAAC;SAC7C,MAAM,CAAC,qBAAqB,EAAE,4CAA4C,CAAC;SAC3E,MAAM,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;IAE/C,OAAO,CAAC,UAAU,CAAC,qBAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,uBAAc,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,uBAAc,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,uBAAc,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,2BAAiB,CAAC,CAAC;IACtC,OAAO,CAAC,UAAU,CAAC,uBAAc,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,qBAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,uBAAc,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,mBAAY,CAAC,CAAC;IACjC,OAAO,CAAC,UAAU,CAAC,yBAAe,CAAC,CAAC;IACpC,OAAO,CAAC,UAAU,CAAC,qBAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,uBAAc,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,yBAAe,CAAC,CAAC;IACpC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAEhC,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,KAAK,IAAE,EAAE;IAClB,IAAI,MAAM,IAAA,qCAAwB,GAAE;QAChC,OAAO;IACX,aAAa,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAA,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AACA,yCAAkC;AAClC,qDAA8D;AAC9D,4CAA+C;AAC/C,8CAAiD;AACjD,8CAAiD;AACjD,8CAAiD;AACjD,gDAAqD;AACrD,8CAAiD;AACjD,4CAA+C;AAC/C,8CAAiD;AACjD,0CAA6C;AAC7C,gDAAmD;AACnD,4CAA+C;AAC/C,8CAAiD;AACjD,gDAAmD;AACnD,gDAAmD;AACnD,kDAAqD;AACrD,mEAA0C;AAE1C,MAAM,aAAa,GAAG,GAAE,EAAE;IACtB,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;IAC9B,MAAM,WAAW,GAAG,IAAI,mBAAO,CAAC,KAAK,CAAC;SACjC,WAAW,CAAC,yDAAyD,CAAC;SACtE,UAAU,CAAC,yBAAe,CAAC,CAAC;IAEjC,OAAO;SACF,IAAI,CAAC,YAAY,CAAC;SAClB,WAAW,CACR,0DAA0D;UACzD,oEAAoE,CACxE;SACA,OAAO,CAAC,sBAAW,CAAC,OAAO,EAAE,eAAe,CAAC;SAC7C,MAAM,CAAC,qBAAqB,EAAE,4CAA4C,CAAC;SAC3E,MAAM,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;IAE/C,OAAO,CAAC,UAAU,CAAC,qBAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,uBAAc,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,uBAAc,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,uBAAc,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,2BAAiB,CAAC,CAAC;IACtC,OAAO,CAAC,UAAU,CAAC,uBAAc,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,qBAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,uBAAc,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,mBAAY,CAAC,CAAC;IACjC,OAAO,CAAC,UAAU,CAAC,yBAAe,CAAC,CAAC;IACpC,OAAO,CAAC,UAAU,CAAC,qBAAa,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,uBAAc,CAAC,CAAC;IACnC,OAAO,CAAC,UAAU,CAAC,yBAAe,CAAC,CAAC;IACpC,OAAO,CAAC,UAAU,CAAC,2BAAgB,CAAC,CAAC;IACrC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAEhC,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,IAAI,GAAG,KAAK,IAAE,EAAE;IAClB,IAAI,MAAM,IAAA,qCAAwB,GAAE;QAChC,OAAO;IACX,aAAa,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAA,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
type Discover_request = {
|
|
2
|
+
query: string;
|
|
3
|
+
intent?: string;
|
|
4
|
+
city?: string;
|
|
5
|
+
country?: string;
|
|
6
|
+
filter_keywords?: string[];
|
|
7
|
+
format?: 'json' | 'md';
|
|
8
|
+
include_content?: boolean;
|
|
9
|
+
language?: string;
|
|
10
|
+
num_results?: number;
|
|
11
|
+
remove_duplicates?: boolean;
|
|
12
|
+
start_date?: string;
|
|
13
|
+
end_date?: string;
|
|
14
|
+
};
|
|
15
|
+
type Discover_trigger_response = {
|
|
16
|
+
status: string;
|
|
17
|
+
task_id: string;
|
|
18
|
+
};
|
|
19
|
+
type Discover_result = {
|
|
20
|
+
link: string;
|
|
21
|
+
title: string;
|
|
22
|
+
description: string;
|
|
23
|
+
relevance_score: number;
|
|
24
|
+
content?: string | null;
|
|
25
|
+
};
|
|
26
|
+
type Discover_poll_response = {
|
|
27
|
+
status: string;
|
|
28
|
+
duration_seconds?: number;
|
|
29
|
+
results?: Discover_result[];
|
|
30
|
+
};
|
|
31
|
+
type Discover_opts = {
|
|
32
|
+
intent?: string;
|
|
33
|
+
city?: string;
|
|
34
|
+
country?: string;
|
|
35
|
+
language?: string;
|
|
36
|
+
numResults?: string;
|
|
37
|
+
filterKeywords?: string;
|
|
38
|
+
includeContent?: boolean;
|
|
39
|
+
removeDuplicates?: boolean;
|
|
40
|
+
startDate?: string;
|
|
41
|
+
endDate?: string;
|
|
42
|
+
timeout?: string;
|
|
43
|
+
output?: string;
|
|
44
|
+
json?: boolean;
|
|
45
|
+
pretty?: boolean;
|
|
46
|
+
timing?: boolean;
|
|
47
|
+
apiKey?: string;
|
|
48
|
+
};
|
|
49
|
+
export type { Discover_request, Discover_trigger_response, Discover_result, Discover_poll_response, Discover_opts, };
|
|
50
|
+
//# sourceMappingURL=discover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.d.ts","sourceRoot":"","sources":["../../src/types/discover.ts"],"names":[],"mappings":"AAAA,KAAK,gBAAgB,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,GAAC,IAAI,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,KAAK,yBAAyB,GAAG;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,eAAe,GAAG;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,GAAC,IAAI,CAAC;CACzB,CAAC;AAEF,KAAK,sBAAsB,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;CAC/B,CAAC;AAEF,KAAK,aAAa,GAAG;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,YAAY,EACR,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,sBAAsB,EACtB,aAAa,GAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/types/discover.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED