firecrawl-cli 1.17.0 → 1.18.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 +13 -35
- package/dist/__tests__/commands/init.test.js +4 -2
- package/dist/__tests__/commands/init.test.js.map +1 -1
- package/dist/__tests__/commands/setup.test.js +6 -2
- package/dist/__tests__/commands/setup.test.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +27 -4
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/monitor.d.ts +23 -0
- package/dist/commands/monitor.d.ts.map +1 -0
- package/dist/commands/monitor.js +395 -0
- package/dist/commands/monitor.js.map +1 -0
- package/dist/commands/setup.d.ts +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +9 -5
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/skills-install.d.ts +9 -1
- package/dist/commands/skills-install.d.ts.map +1 -1
- package/dist/commands/skills-install.js +13 -2
- package/dist/commands/skills-install.js.map +1 -1
- package/dist/index.js +7 -8
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/commands/experimental/backends.d.ts +0 -19
- package/dist/commands/experimental/backends.d.ts.map +0 -1
- package/dist/commands/experimental/backends.js +0 -74
- package/dist/commands/experimental/backends.js.map +0 -1
- package/dist/commands/experimental/index.d.ts +0 -13
- package/dist/commands/experimental/index.d.ts.map +0 -1
- package/dist/commands/experimental/index.js +0 -200
- package/dist/commands/experimental/index.js.map +0 -1
- package/dist/commands/experimental/shared.d.ts +0 -17
- package/dist/commands/experimental/shared.d.ts.map +0 -1
- package/dist/commands/experimental/shared.js +0 -152
- package/dist/commands/experimental/shared.js.map +0 -1
- package/dist/commands/experimental/workflows/company-directories.d.ts +0 -11
- package/dist/commands/experimental/workflows/company-directories.d.ts.map +0 -1
- package/dist/commands/experimental/workflows/company-directories.js +0 -245
- package/dist/commands/experimental/workflows/company-directories.js.map +0 -1
- package/dist/commands/experimental/workflows/competitive-intel.d.ts +0 -11
- package/dist/commands/experimental/workflows/competitive-intel.d.ts.map +0 -1
- package/dist/commands/experimental/workflows/competitive-intel.js +0 -226
- package/dist/commands/experimental/workflows/competitive-intel.js.map +0 -1
- package/dist/commands/experimental/workflows/competitor-analysis.d.ts +0 -10
- package/dist/commands/experimental/workflows/competitor-analysis.d.ts.map +0 -1
- package/dist/commands/experimental/workflows/competitor-analysis.js +0 -196
- package/dist/commands/experimental/workflows/competitor-analysis.js.map +0 -1
- package/dist/commands/experimental/workflows/dashboard-reporting.d.ts +0 -11
- package/dist/commands/experimental/workflows/dashboard-reporting.d.ts.map +0 -1
- package/dist/commands/experimental/workflows/dashboard-reporting.js +0 -254
- package/dist/commands/experimental/workflows/dashboard-reporting.js.map +0 -1
- package/dist/commands/experimental/workflows/deep-research.d.ts +0 -11
- package/dist/commands/experimental/workflows/deep-research.d.ts.map +0 -1
- package/dist/commands/experimental/workflows/deep-research.js +0 -159
- package/dist/commands/experimental/workflows/deep-research.js.map +0 -1
- package/dist/commands/experimental/workflows/demo.d.ts +0 -11
- package/dist/commands/experimental/workflows/demo.d.ts.map +0 -1
- package/dist/commands/experimental/workflows/demo.js +0 -190
- package/dist/commands/experimental/workflows/demo.js.map +0 -1
- package/dist/commands/experimental/workflows/knowledge-base.d.ts +0 -11
- package/dist/commands/experimental/workflows/knowledge-base.d.ts.map +0 -1
- package/dist/commands/experimental/workflows/knowledge-base.js +0 -319
- package/dist/commands/experimental/workflows/knowledge-base.js.map +0 -1
- package/dist/commands/experimental/workflows/knowledge-ingest.d.ts +0 -12
- package/dist/commands/experimental/workflows/knowledge-ingest.d.ts.map +0 -1
- package/dist/commands/experimental/workflows/knowledge-ingest.js +0 -251
- package/dist/commands/experimental/workflows/knowledge-ingest.js.map +0 -1
- package/dist/commands/experimental/workflows/lead-gen.d.ts +0 -11
- package/dist/commands/experimental/workflows/lead-gen.d.ts.map +0 -1
- package/dist/commands/experimental/workflows/lead-gen.js +0 -257
- package/dist/commands/experimental/workflows/lead-gen.js.map +0 -1
- package/dist/commands/experimental/workflows/lead-research.d.ts +0 -11
- package/dist/commands/experimental/workflows/lead-research.d.ts.map +0 -1
- package/dist/commands/experimental/workflows/lead-research.js +0 -146
- package/dist/commands/experimental/workflows/lead-research.js.map +0 -1
- package/dist/commands/experimental/workflows/market-research.d.ts +0 -11
- package/dist/commands/experimental/workflows/market-research.d.ts.map +0 -1
- package/dist/commands/experimental/workflows/market-research.js +0 -260
- package/dist/commands/experimental/workflows/market-research.js.map +0 -1
- package/dist/commands/experimental/workflows/qa.d.ts +0 -11
- package/dist/commands/experimental/workflows/qa.d.ts.map +0 -1
- package/dist/commands/experimental/workflows/qa.js +0 -184
- package/dist/commands/experimental/workflows/qa.js.map +0 -1
- package/dist/commands/experimental/workflows/research-papers.d.ts +0 -11
- package/dist/commands/experimental/workflows/research-papers.d.ts.map +0 -1
- package/dist/commands/experimental/workflows/research-papers.js +0 -151
- package/dist/commands/experimental/workflows/research-papers.js.map +0 -1
- package/dist/commands/experimental/workflows/seo-audit.d.ts +0 -11
- package/dist/commands/experimental/workflows/seo-audit.d.ts.map +0 -1
- package/dist/commands/experimental/workflows/seo-audit.js +0 -155
- package/dist/commands/experimental/workflows/seo-audit.js.map +0 -1
- package/dist/commands/experimental/workflows/shop.d.ts +0 -11
- package/dist/commands/experimental/workflows/shop.d.ts.map +0 -1
- package/dist/commands/experimental/workflows/shop.js +0 -155
- package/dist/commands/experimental/workflows/shop.js.map +0 -1
|
@@ -0,0 +1,395 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `firecrawl monitor` — manage Firecrawl monitors.
|
|
4
|
+
*
|
|
5
|
+
* Monitors run recurring scrapes/crawls and diff each result against the last
|
|
6
|
+
* retained snapshot. See features/monitoring in the docs.
|
|
7
|
+
*
|
|
8
|
+
* @mendable/firecrawl-js@4.22.2 exposes monitor methods (createMonitor,
|
|
9
|
+
* listMonitors, getMonitor, updateMonitor, deleteMonitor, runMonitor,
|
|
10
|
+
* listMonitorChecks, getMonitorCheck), but its HttpClient injects a top-level
|
|
11
|
+
* `origin: js-sdk@<version>` field into every POST/PATCH body and the
|
|
12
|
+
* /v2/monitor endpoint rejects that with "Unrecognized key in body". Until the
|
|
13
|
+
* SDK strips `origin` for monitor requests (or the API accepts it), we hit
|
|
14
|
+
* /v2/monitor directly via fetch — same pattern parse.ts uses.
|
|
15
|
+
*
|
|
16
|
+
* Subcommands:
|
|
17
|
+
* create | list | get | update | delete | run | checks | check
|
|
18
|
+
*/
|
|
19
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
20
|
+
if (k2 === undefined) k2 = k;
|
|
21
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
22
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
23
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
24
|
+
}
|
|
25
|
+
Object.defineProperty(o, k2, desc);
|
|
26
|
+
}) : (function(o, m, k, k2) {
|
|
27
|
+
if (k2 === undefined) k2 = k;
|
|
28
|
+
o[k2] = m[k];
|
|
29
|
+
}));
|
|
30
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
31
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
32
|
+
}) : function(o, v) {
|
|
33
|
+
o["default"] = v;
|
|
34
|
+
});
|
|
35
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
36
|
+
var ownKeys = function(o) {
|
|
37
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
38
|
+
var ar = [];
|
|
39
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
40
|
+
return ar;
|
|
41
|
+
};
|
|
42
|
+
return ownKeys(o);
|
|
43
|
+
};
|
|
44
|
+
return function (mod) {
|
|
45
|
+
if (mod && mod.__esModule) return mod;
|
|
46
|
+
var result = {};
|
|
47
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
48
|
+
__setModuleDefault(result, mod);
|
|
49
|
+
return result;
|
|
50
|
+
};
|
|
51
|
+
})();
|
|
52
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
+
exports.createMonitorCommand = createMonitorCommand;
|
|
54
|
+
const fs = __importStar(require("fs"));
|
|
55
|
+
const commander_1 = require("commander");
|
|
56
|
+
const config_1 = require("../utils/config");
|
|
57
|
+
const output_1 = require("../utils/output");
|
|
58
|
+
const DEFAULT_API_URL = 'https://api.firecrawl.dev';
|
|
59
|
+
async function monitorRequest(path, options, init = {}) {
|
|
60
|
+
const config = (0, config_1.getConfig)();
|
|
61
|
+
const apiKey = options.apiKey || config.apiKey;
|
|
62
|
+
(0, config_1.validateConfig)(apiKey);
|
|
63
|
+
const baseUrl = (options.apiUrl || config.apiUrl || DEFAULT_API_URL).replace(/\/$/, '');
|
|
64
|
+
let url = `${baseUrl}/v2${path}`;
|
|
65
|
+
if (init.query) {
|
|
66
|
+
const qs = new URLSearchParams();
|
|
67
|
+
for (const [k, v] of Object.entries(init.query)) {
|
|
68
|
+
if (v !== undefined && v !== null && v !== '')
|
|
69
|
+
qs.set(k, String(v));
|
|
70
|
+
}
|
|
71
|
+
const s = qs.toString();
|
|
72
|
+
if (s)
|
|
73
|
+
url += `?${s}`;
|
|
74
|
+
}
|
|
75
|
+
const headers = {
|
|
76
|
+
Authorization: `Bearer ${apiKey}`,
|
|
77
|
+
'X-Origin': 'cli',
|
|
78
|
+
};
|
|
79
|
+
if (init.body !== undefined)
|
|
80
|
+
headers['Content-Type'] = 'application/json';
|
|
81
|
+
const response = await fetch(url, {
|
|
82
|
+
method: init.method ?? 'GET',
|
|
83
|
+
headers,
|
|
84
|
+
body: init.body !== undefined ? JSON.stringify(init.body) : undefined,
|
|
85
|
+
});
|
|
86
|
+
const payload = (await response.json().catch(() => ({})));
|
|
87
|
+
if (!response.ok || payload?.success === false) {
|
|
88
|
+
const message = payload?.error ||
|
|
89
|
+
`HTTP ${response.status}: ${response.statusText || 'Request failed'}`;
|
|
90
|
+
throw new Error(message);
|
|
91
|
+
}
|
|
92
|
+
return payload;
|
|
93
|
+
}
|
|
94
|
+
function emit(payload, options) {
|
|
95
|
+
const text = JSON.stringify(payload, null, options.pretty ? 2 : 0);
|
|
96
|
+
(0, output_1.writeOutput)(text, options.output, !!options.output);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Read a JSON payload from a positional arg or piped stdin.
|
|
100
|
+
*
|
|
101
|
+
* - `file` is a path to a .json file, or `-` to read stdin explicitly.
|
|
102
|
+
* - If `file` is omitted and stdin is a pipe, stdin is used.
|
|
103
|
+
* - Returns `undefined` when no source is provided — caller falls back to flags.
|
|
104
|
+
*/
|
|
105
|
+
async function readJsonPayload(file) {
|
|
106
|
+
if (file === '-' || (!file && !process.stdin.isTTY)) {
|
|
107
|
+
const chunks = [];
|
|
108
|
+
for await (const chunk of process.stdin)
|
|
109
|
+
chunks.push(chunk);
|
|
110
|
+
const raw = Buffer.concat(chunks).toString('utf-8').trim();
|
|
111
|
+
if (!raw)
|
|
112
|
+
return undefined;
|
|
113
|
+
return JSON.parse(raw);
|
|
114
|
+
}
|
|
115
|
+
if (file) {
|
|
116
|
+
const raw = fs.readFileSync(file, 'utf-8');
|
|
117
|
+
return JSON.parse(raw);
|
|
118
|
+
}
|
|
119
|
+
return undefined;
|
|
120
|
+
}
|
|
121
|
+
function parseCommaList(value) {
|
|
122
|
+
return value
|
|
123
|
+
.split(',')
|
|
124
|
+
.map((s) => s.trim())
|
|
125
|
+
.filter(Boolean);
|
|
126
|
+
}
|
|
127
|
+
function fail(error) {
|
|
128
|
+
console.error('Error:', error instanceof Error ? error.message : error);
|
|
129
|
+
process.exit(1);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Build the request body for `monitor create` from CLI flags.
|
|
133
|
+
*
|
|
134
|
+
* For full control, callers can pass a JSON file path positionally or pipe
|
|
135
|
+
* JSON on stdin instead. The flags cover the common scrape-target shape.
|
|
136
|
+
*/
|
|
137
|
+
function buildCreateBody(opts) {
|
|
138
|
+
if (!opts.name) {
|
|
139
|
+
throw new Error('--name is required (or pass a JSON file / stdin payload)');
|
|
140
|
+
}
|
|
141
|
+
if (!opts.cron && !opts.scheduleText) {
|
|
142
|
+
throw new Error('--cron or --schedule is required');
|
|
143
|
+
}
|
|
144
|
+
const hasScrape = opts.urls && opts.urls.length > 0;
|
|
145
|
+
const hasCrawl = !!opts.crawlUrl;
|
|
146
|
+
if (!hasScrape && !hasCrawl) {
|
|
147
|
+
throw new Error('Provide --scrape-urls or --crawl-url');
|
|
148
|
+
}
|
|
149
|
+
const schedule = {};
|
|
150
|
+
if (opts.cron)
|
|
151
|
+
schedule.cron = opts.cron;
|
|
152
|
+
if (opts.scheduleText)
|
|
153
|
+
schedule.text = opts.scheduleText;
|
|
154
|
+
if (opts.timezone)
|
|
155
|
+
schedule.timezone = opts.timezone;
|
|
156
|
+
const targets = [];
|
|
157
|
+
if (hasScrape)
|
|
158
|
+
targets.push({ type: 'scrape', urls: opts.urls });
|
|
159
|
+
if (hasCrawl)
|
|
160
|
+
targets.push({ type: 'crawl', url: opts.crawlUrl });
|
|
161
|
+
const body = {
|
|
162
|
+
name: opts.name,
|
|
163
|
+
schedule,
|
|
164
|
+
targets,
|
|
165
|
+
};
|
|
166
|
+
if (opts.webhookUrl) {
|
|
167
|
+
body.webhook = {
|
|
168
|
+
url: opts.webhookUrl,
|
|
169
|
+
...(opts.webhookEvents && opts.webhookEvents.length > 0
|
|
170
|
+
? { events: opts.webhookEvents }
|
|
171
|
+
: {}),
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
if (opts.emailRecipients && opts.emailRecipients.length > 0) {
|
|
175
|
+
body.notification = {
|
|
176
|
+
email: {
|
|
177
|
+
enabled: true,
|
|
178
|
+
recipients: opts.emailRecipients,
|
|
179
|
+
},
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
if (opts.retentionDays !== undefined)
|
|
183
|
+
body.retentionDays = opts.retentionDays;
|
|
184
|
+
return body;
|
|
185
|
+
}
|
|
186
|
+
function commonOptions(cmd) {
|
|
187
|
+
return cmd
|
|
188
|
+
.option('-k, --api-key <key>', 'Firecrawl API key (overrides global --api-key)')
|
|
189
|
+
.option('--api-url <url>', 'API URL (overrides global --api-url)')
|
|
190
|
+
.option('-o, --output <path>', 'Output file path (default: stdout)')
|
|
191
|
+
.option('--pretty', 'Pretty print JSON output', false);
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Build the `firecrawl monitor` command tree.
|
|
195
|
+
*/
|
|
196
|
+
function createMonitorCommand() {
|
|
197
|
+
const monitor = new commander_1.Command('monitor').description('Schedule recurring scrapes/crawls and track content changes');
|
|
198
|
+
// create
|
|
199
|
+
commonOptions(monitor
|
|
200
|
+
.command('create')
|
|
201
|
+
.description('Create a monitor (flags, or JSON from file/stdin)')
|
|
202
|
+
.argument('[file]', 'Path to JSON payload (use "-" or pipe stdin to read from stdin)')
|
|
203
|
+
.option('--name <name>', 'Monitor name')
|
|
204
|
+
.option('--cron <expression>', 'Cron schedule (e.g. "*/30 * * * *")')
|
|
205
|
+
.option('--schedule <text>', 'Natural-language schedule (e.g. "every 30 minutes")')
|
|
206
|
+
.option('--timezone <tz>', 'Schedule timezone', 'UTC')
|
|
207
|
+
.option('--scrape-urls <list>', 'Comma-separated URLs to scrape on each check', parseCommaList)
|
|
208
|
+
.option('--crawl-url <url>', 'Root URL for a crawl target')
|
|
209
|
+
.option('--webhook-url <url>', 'Webhook destination')
|
|
210
|
+
.option('--webhook-events <list>', 'Comma-separated events (monitor.page, monitor.check.completed)', parseCommaList)
|
|
211
|
+
.option('--email <list>', 'Comma-separated email recipients for change notifications', parseCommaList)
|
|
212
|
+
.option('--retention-days <n>', 'Snapshot retention window', parseInt)).action(async (file, options) => {
|
|
213
|
+
try {
|
|
214
|
+
const fromJson = await readJsonPayload(file);
|
|
215
|
+
const body = fromJson ??
|
|
216
|
+
buildCreateBody({
|
|
217
|
+
name: options.name,
|
|
218
|
+
cron: options.cron,
|
|
219
|
+
scheduleText: options.schedule,
|
|
220
|
+
timezone: options.timezone,
|
|
221
|
+
urls: options.scrapeUrls,
|
|
222
|
+
crawlUrl: options.crawlUrl,
|
|
223
|
+
webhookUrl: options.webhookUrl,
|
|
224
|
+
webhookEvents: options.webhookEvents,
|
|
225
|
+
emailRecipients: options.email,
|
|
226
|
+
retentionDays: options.retentionDays,
|
|
227
|
+
});
|
|
228
|
+
const payload = await monitorRequest('/monitor', options, {
|
|
229
|
+
method: 'POST',
|
|
230
|
+
body,
|
|
231
|
+
});
|
|
232
|
+
emit(payload, options);
|
|
233
|
+
}
|
|
234
|
+
catch (err) {
|
|
235
|
+
fail(err);
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
// list
|
|
239
|
+
commonOptions(monitor
|
|
240
|
+
.command('list')
|
|
241
|
+
.description('List monitors')
|
|
242
|
+
.option('--limit <n>', 'Maximum results', parseInt)
|
|
243
|
+
.option('--offset <n>', 'Result offset', parseInt)).action(async (options) => {
|
|
244
|
+
try {
|
|
245
|
+
const payload = await monitorRequest('/monitor', options, {
|
|
246
|
+
query: { limit: options.limit, offset: options.offset },
|
|
247
|
+
});
|
|
248
|
+
emit(payload, options);
|
|
249
|
+
}
|
|
250
|
+
catch (err) {
|
|
251
|
+
fail(err);
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
// get
|
|
255
|
+
commonOptions(monitor
|
|
256
|
+
.command('get')
|
|
257
|
+
.description('Get a monitor by ID')
|
|
258
|
+
.argument('<monitorId>', 'Monitor ID')).action(async (monitorId, options) => {
|
|
259
|
+
try {
|
|
260
|
+
const payload = await monitorRequest(`/monitor/${encodeURIComponent(monitorId)}`, options);
|
|
261
|
+
emit(payload, options);
|
|
262
|
+
}
|
|
263
|
+
catch (err) {
|
|
264
|
+
fail(err);
|
|
265
|
+
}
|
|
266
|
+
});
|
|
267
|
+
// update
|
|
268
|
+
commonOptions(monitor
|
|
269
|
+
.command('update')
|
|
270
|
+
.description('Update a monitor (flags, or JSON from file/stdin)')
|
|
271
|
+
.argument('<monitorId>', 'Monitor ID')
|
|
272
|
+
.argument('[file]', 'Path to JSON payload (use "-" or pipe stdin to read from stdin)')
|
|
273
|
+
.option('--name <name>', 'New name')
|
|
274
|
+
.option('--cron <expression>', 'New cron schedule')
|
|
275
|
+
.option('--schedule <text>', 'New natural-language schedule')
|
|
276
|
+
.option('--timezone <tz>', 'Schedule timezone')
|
|
277
|
+
.option('--state <state>', 'active | paused')
|
|
278
|
+
.option('--retention-days <n>', 'Snapshot retention window', parseInt)).action(async (monitorId, file, options) => {
|
|
279
|
+
try {
|
|
280
|
+
const fromJson = await readJsonPayload(file);
|
|
281
|
+
let body;
|
|
282
|
+
if (fromJson) {
|
|
283
|
+
body = fromJson;
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
body = {};
|
|
287
|
+
if (options.name)
|
|
288
|
+
body.name = options.name;
|
|
289
|
+
if (options.state)
|
|
290
|
+
body.status = options.state;
|
|
291
|
+
if (options.retentionDays !== undefined)
|
|
292
|
+
body.retentionDays = options.retentionDays;
|
|
293
|
+
if (options.cron || options.schedule || options.timezone) {
|
|
294
|
+
const schedule = {};
|
|
295
|
+
if (options.cron)
|
|
296
|
+
schedule.cron = options.cron;
|
|
297
|
+
if (options.schedule)
|
|
298
|
+
schedule.text = options.schedule;
|
|
299
|
+
if (options.timezone)
|
|
300
|
+
schedule.timezone = options.timezone;
|
|
301
|
+
body.schedule = schedule;
|
|
302
|
+
}
|
|
303
|
+
if (Object.keys(body).length === 0) {
|
|
304
|
+
throw new Error('Provide at least one field to update (or a JSON file / stdin payload)');
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
const payload = await monitorRequest(`/monitor/${encodeURIComponent(monitorId)}`, options, { method: 'PATCH', body });
|
|
308
|
+
emit(payload, options);
|
|
309
|
+
}
|
|
310
|
+
catch (err) {
|
|
311
|
+
fail(err);
|
|
312
|
+
}
|
|
313
|
+
});
|
|
314
|
+
// delete
|
|
315
|
+
commonOptions(monitor
|
|
316
|
+
.command('delete')
|
|
317
|
+
.description('Delete a monitor')
|
|
318
|
+
.argument('<monitorId>', 'Monitor ID')).action(async (monitorId, options) => {
|
|
319
|
+
try {
|
|
320
|
+
const payload = await monitorRequest(`/monitor/${encodeURIComponent(monitorId)}`, options, { method: 'DELETE' });
|
|
321
|
+
emit(payload, options);
|
|
322
|
+
}
|
|
323
|
+
catch (err) {
|
|
324
|
+
fail(err);
|
|
325
|
+
}
|
|
326
|
+
});
|
|
327
|
+
// run
|
|
328
|
+
commonOptions(monitor
|
|
329
|
+
.command('run')
|
|
330
|
+
.description('Trigger a check immediately')
|
|
331
|
+
.argument('<monitorId>', 'Monitor ID')).action(async (monitorId, options) => {
|
|
332
|
+
try {
|
|
333
|
+
const payload = await monitorRequest(`/monitor/${encodeURIComponent(monitorId)}/run`, options, { method: 'POST' });
|
|
334
|
+
emit(payload, options);
|
|
335
|
+
}
|
|
336
|
+
catch (err) {
|
|
337
|
+
fail(err);
|
|
338
|
+
}
|
|
339
|
+
});
|
|
340
|
+
// checks (list)
|
|
341
|
+
commonOptions(monitor
|
|
342
|
+
.command('checks')
|
|
343
|
+
.description('List checks for a monitor')
|
|
344
|
+
.argument('<monitorId>', 'Monitor ID')
|
|
345
|
+
.option('--limit <n>', 'Maximum results', parseInt)
|
|
346
|
+
.option('--offset <n>', 'Result offset', parseInt)).action(async (monitorId, options) => {
|
|
347
|
+
try {
|
|
348
|
+
const payload = await monitorRequest(`/monitor/${encodeURIComponent(monitorId)}/checks`, options, { query: { limit: options.limit, offset: options.offset } });
|
|
349
|
+
emit(payload, options);
|
|
350
|
+
}
|
|
351
|
+
catch (err) {
|
|
352
|
+
fail(err);
|
|
353
|
+
}
|
|
354
|
+
});
|
|
355
|
+
// check (get one)
|
|
356
|
+
commonOptions(monitor
|
|
357
|
+
.command('check')
|
|
358
|
+
.description('Get a specific check, with page-level results')
|
|
359
|
+
.argument('<monitorId>', 'Monitor ID')
|
|
360
|
+
.argument('<checkId>', 'Check ID')
|
|
361
|
+
.option('--limit <n>', 'Max page results', parseInt)
|
|
362
|
+
.option('--skip <n>', 'Skip page results', parseInt)
|
|
363
|
+
.option('--page-status <state>', 'Filter page results: same, new, changed, removed, error')).action(async (monitorId, checkId, options) => {
|
|
364
|
+
try {
|
|
365
|
+
const payload = await monitorRequest(`/monitor/${encodeURIComponent(monitorId)}/checks/${encodeURIComponent(checkId)}`, options, {
|
|
366
|
+
query: {
|
|
367
|
+
limit: options.limit,
|
|
368
|
+
skip: options.skip,
|
|
369
|
+
status: options.pageStatus,
|
|
370
|
+
},
|
|
371
|
+
});
|
|
372
|
+
emit(payload, options);
|
|
373
|
+
}
|
|
374
|
+
catch (err) {
|
|
375
|
+
fail(err);
|
|
376
|
+
}
|
|
377
|
+
});
|
|
378
|
+
monitor.addHelpText('after', `
|
|
379
|
+
Examples:
|
|
380
|
+
$ firecrawl monitor create --name "Blog" \\
|
|
381
|
+
--schedule "every 30 minutes" \\
|
|
382
|
+
--scrape-urls https://example.com/blog \\
|
|
383
|
+
--email alerts@example.com
|
|
384
|
+
$ firecrawl monitor create monitor.json
|
|
385
|
+
$ cat monitor.json | firecrawl monitor create
|
|
386
|
+
$ firecrawl monitor list --limit 20
|
|
387
|
+
$ firecrawl monitor get mon_abc123
|
|
388
|
+
$ firecrawl monitor update mon_abc123 --state paused
|
|
389
|
+
$ firecrawl monitor run mon_abc123
|
|
390
|
+
$ firecrawl monitor checks mon_abc123 --limit 10
|
|
391
|
+
$ firecrawl monitor check mon_abc123 chk_xyz --page-status changed
|
|
392
|
+
`);
|
|
393
|
+
return monitor;
|
|
394
|
+
}
|
|
395
|
+
//# sourceMappingURL=monitor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/commands/monitor.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/setup.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Setup command implementation
|
|
3
3
|
* Installs firecrawl skill files and MCP server into AI coding agents
|
|
4
4
|
*/
|
|
5
|
-
export type SetupSubcommand = 'skills' | 'mcp';
|
|
5
|
+
export type SetupSubcommand = 'skills' | 'workflows' | 'mcp';
|
|
6
6
|
export interface SetupOptions {
|
|
7
7
|
global?: boolean;
|
|
8
8
|
agent?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAC;AAE7D,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,eAAe,EAC3B,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAyBf"}
|
package/dist/commands/setup.js
CHANGED
|
@@ -15,7 +15,10 @@ const skills_native_1 = require("./skills-native");
|
|
|
15
15
|
async function handleSetupCommand(subcommand, options = {}) {
|
|
16
16
|
switch (subcommand) {
|
|
17
17
|
case 'skills':
|
|
18
|
-
await installSkills(options);
|
|
18
|
+
await installSkills(options, skills_install_1.SKILL_REPOS);
|
|
19
|
+
break;
|
|
20
|
+
case 'workflows':
|
|
21
|
+
await installSkills(options, skills_install_1.WORKFLOW_SKILL_REPOS);
|
|
19
22
|
break;
|
|
20
23
|
case 'mcp':
|
|
21
24
|
await installMcp(options);
|
|
@@ -23,13 +26,14 @@ async function handleSetupCommand(subcommand, options = {}) {
|
|
|
23
26
|
default:
|
|
24
27
|
console.error(`Unknown setup subcommand: ${subcommand}`);
|
|
25
28
|
console.log('\nAvailable subcommands:');
|
|
26
|
-
console.log(' skills
|
|
27
|
-
console.log('
|
|
29
|
+
console.log(' skills Install core/build Firecrawl skills into AI coding agents');
|
|
30
|
+
console.log(' workflows Install Firecrawl workflow skills into AI coding agents');
|
|
31
|
+
console.log(' mcp Install firecrawl MCP server into editors (Cursor, Claude Code, VS Code, etc.)');
|
|
28
32
|
process.exit(1);
|
|
29
33
|
}
|
|
30
34
|
}
|
|
31
|
-
async function installSkills(options) {
|
|
32
|
-
for (const repo of
|
|
35
|
+
async function installSkills(options, repos) {
|
|
36
|
+
for (const repo of repos) {
|
|
33
37
|
if ((0, skills_native_1.hasNpx)()) {
|
|
34
38
|
const args = (0, skills_install_1.buildSkillsInstallArgs)({
|
|
35
39
|
repo,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":";AAAA;;;GAGG;;
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,17 @@
|
|
|
4
4
|
* - firecrawl/cli: core CLI skills bundled with this repo
|
|
5
5
|
* - firecrawl/skills: additional "build" skills for working with Firecrawl
|
|
6
6
|
*
|
|
7
|
-
*
|
|
7
|
+
* Workflow skills live in a separate installable repo:
|
|
8
|
+
*
|
|
9
|
+
* - firecrawl/firecrawl-workflows: outcome-focused Firecrawl workflow skills
|
|
10
|
+
*
|
|
11
|
+
* `firecrawl init` installs both groups by default. `firecrawl setup skills`
|
|
12
|
+
* installs core/build skills, and `firecrawl setup workflows` installs workflow
|
|
13
|
+
* skills.
|
|
8
14
|
*/
|
|
9
15
|
export declare const SKILL_REPOS: readonly ["firecrawl/cli", "firecrawl/skills"];
|
|
16
|
+
export declare const WORKFLOW_SKILL_REPOS: readonly ["firecrawl/firecrawl-workflows"];
|
|
17
|
+
export declare const ALL_SKILL_REPOS: readonly ["firecrawl/cli", "firecrawl/skills", "firecrawl/firecrawl-workflows"];
|
|
10
18
|
export interface SkillsInstallCommandOptions {
|
|
11
19
|
agent?: string;
|
|
12
20
|
all?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills-install.d.ts","sourceRoot":"","sources":["../../src/commands/skills-install.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"skills-install.d.ts","sourceRoot":"","sources":["../../src/commands/skills-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,WAAW,gDAAiD,CAAC;AAE1E,eAAO,MAAM,oBAAoB,4CAA6C,CAAC;AAE/E,eAAO,MAAM,eAAe,iFAGlB,CAAC;AAEX,MAAM,WAAW,2BAA2B;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,sBAAsB,CACpC,OAAO,GAAE,2BAAgC,GACxC,MAAM,EAAE,CA2BV;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAAC,UAAU,CAQ/C"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SKILL_REPOS = void 0;
|
|
3
|
+
exports.ALL_SKILL_REPOS = exports.WORKFLOW_SKILL_REPOS = exports.SKILL_REPOS = void 0;
|
|
4
4
|
exports.buildSkillsInstallArgs = buildSkillsInstallArgs;
|
|
5
5
|
exports.cleanNpmEnv = cleanNpmEnv;
|
|
6
6
|
/**
|
|
@@ -9,9 +9,20 @@ exports.cleanNpmEnv = cleanNpmEnv;
|
|
|
9
9
|
* - firecrawl/cli: core CLI skills bundled with this repo
|
|
10
10
|
* - firecrawl/skills: additional "build" skills for working with Firecrawl
|
|
11
11
|
*
|
|
12
|
-
*
|
|
12
|
+
* Workflow skills live in a separate installable repo:
|
|
13
|
+
*
|
|
14
|
+
* - firecrawl/firecrawl-workflows: outcome-focused Firecrawl workflow skills
|
|
15
|
+
*
|
|
16
|
+
* `firecrawl init` installs both groups by default. `firecrawl setup skills`
|
|
17
|
+
* installs core/build skills, and `firecrawl setup workflows` installs workflow
|
|
18
|
+
* skills.
|
|
13
19
|
*/
|
|
14
20
|
exports.SKILL_REPOS = ['firecrawl/cli', 'firecrawl/skills'];
|
|
21
|
+
exports.WORKFLOW_SKILL_REPOS = ['firecrawl/firecrawl-workflows'];
|
|
22
|
+
exports.ALL_SKILL_REPOS = [
|
|
23
|
+
...exports.SKILL_REPOS,
|
|
24
|
+
...exports.WORKFLOW_SKILL_REPOS,
|
|
25
|
+
];
|
|
15
26
|
function buildSkillsInstallArgs(options = {}) {
|
|
16
27
|
const args = ['npx'];
|
|
17
28
|
if (options.includeNpxYes) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills-install.js","sourceRoot":"","sources":["../../src/commands/skills-install.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"skills-install.js","sourceRoot":"","sources":["../../src/commands/skills-install.ts"],"names":[],"mappings":";;;AAiCA,wDA6BC;AAaD,kCAQC;AAnFD;;;;;;;;;;;;;GAaG;AACU,QAAA,WAAW,GAAG,CAAC,eAAe,EAAE,kBAAkB,CAAU,CAAC;AAE7D,QAAA,oBAAoB,GAAG,CAAC,+BAA+B,CAAU,CAAC;AAElE,QAAA,eAAe,GAAG;IAC7B,GAAG,mBAAW;IACd,GAAG,4BAAoB;CACf,CAAC;AAYX,SAAgB,sBAAsB,CACpC,UAAuC,EAAE;IAEzC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IAErB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,IAAI,eAAe,EAAE,cAAc,CAAC,CAAC;IAE5E,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC;IAED,MAAM,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;IACzE,IAAI,kBAAkB,EAAE,CAAC;QACvB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,WAAW;IACzB,MAAM,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;YAC1E,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -50,6 +50,7 @@ const credit_usage_1 = require("./commands/credit-usage");
|
|
|
50
50
|
const crawl_1 = require("./commands/crawl");
|
|
51
51
|
const map_1 = require("./commands/map");
|
|
52
52
|
const parse_1 = require("./commands/parse");
|
|
53
|
+
const monitor_1 = require("./commands/monitor");
|
|
53
54
|
const search_1 = require("./commands/search");
|
|
54
55
|
const search_feedback_1 = require("./commands/search-feedback");
|
|
55
56
|
const agent_1 = require("./commands/agent");
|
|
@@ -67,7 +68,6 @@ const options_1 = require("./utils/options");
|
|
|
67
68
|
const job_1 = require("./utils/job");
|
|
68
69
|
const auth_1 = require("./utils/auth");
|
|
69
70
|
const package_json_1 = __importDefault(require("../package.json"));
|
|
70
|
-
const experimental_1 = require("./commands/experimental");
|
|
71
71
|
const create_1 = require("./commands/create");
|
|
72
72
|
// Initialize global configuration from environment variables
|
|
73
73
|
(0, config_1.initializeConfig)();
|
|
@@ -84,6 +84,7 @@ const AUTH_REQUIRED_COMMANDS = [
|
|
|
84
84
|
'browser',
|
|
85
85
|
'interact',
|
|
86
86
|
'credit-usage',
|
|
87
|
+
'monitor',
|
|
87
88
|
];
|
|
88
89
|
const commandSet = new Set([]);
|
|
89
90
|
function collectTopLevelCommands() {
|
|
@@ -1193,6 +1194,7 @@ Examples:
|
|
|
1193
1194
|
program.addCommand(createCrawlCommand());
|
|
1194
1195
|
program.addCommand(createMapCommand());
|
|
1195
1196
|
program.addCommand(createParseCommand());
|
|
1197
|
+
program.addCommand((0, monitor_1.createMonitorCommand)());
|
|
1196
1198
|
program.addCommand(createSearchCommand());
|
|
1197
1199
|
program.addCommand(createSearchFeedbackCommand());
|
|
1198
1200
|
program.addCommand(createAgentCommand());
|
|
@@ -1203,17 +1205,14 @@ program.addCommand(createBrowserCommand(), { hidden: true });
|
|
|
1203
1205
|
// Undocumented until `firecrawl-agent-cli` is published to npm; flip to
|
|
1204
1206
|
// visible by removing `{ hidden: true }`.
|
|
1205
1207
|
program.addCommand((0, create_1.createCreateCommand)(), { hidden: true });
|
|
1206
|
-
// Experimental: download
|
|
1208
|
+
// Experimental: download command
|
|
1207
1209
|
const experimental = new commander_1.Command('experimental')
|
|
1208
|
-
.description('Experimental commands (download
|
|
1210
|
+
.description('Experimental commands (download)')
|
|
1209
1211
|
.alias('x')
|
|
1210
1212
|
.addHelpText('after', `
|
|
1211
1213
|
Shorthand: "firecrawl x" is an alias for "firecrawl experimental".
|
|
1212
1214
|
`);
|
|
1213
1215
|
experimental.addCommand(createDownloadCommand());
|
|
1214
|
-
experimental.addCommand((0, experimental_1.createClaudeCommand)());
|
|
1215
|
-
experimental.addCommand((0, experimental_1.createCodexCommand)());
|
|
1216
|
-
experimental.addCommand((0, experimental_1.createOpenCodeCommand)());
|
|
1217
1216
|
program.addCommand(experimental);
|
|
1218
1217
|
program
|
|
1219
1218
|
.command('config')
|
|
@@ -1290,8 +1289,8 @@ program
|
|
|
1290
1289
|
});
|
|
1291
1290
|
program
|
|
1292
1291
|
.command('setup')
|
|
1293
|
-
.description('Set up individual firecrawl integrations (skills, mcp)')
|
|
1294
|
-
.argument('<subcommand>', 'What to set up: "skills" or "mcp"')
|
|
1292
|
+
.description('Set up individual firecrawl integrations (skills, workflows, mcp)')
|
|
1293
|
+
.argument('<subcommand>', 'What to set up: "skills", "workflows", or "mcp"')
|
|
1295
1294
|
.option('-g, --global', 'Install globally (user-level)')
|
|
1296
1295
|
.option('-a, --agent <agent>', 'Install to a specific agent')
|
|
1297
1296
|
.action(async (subcommand, options) => {
|