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.
Files changed (95) hide show
  1. package/README.md +13 -35
  2. package/dist/__tests__/commands/init.test.js +4 -2
  3. package/dist/__tests__/commands/init.test.js.map +1 -1
  4. package/dist/__tests__/commands/setup.test.js +6 -2
  5. package/dist/__tests__/commands/setup.test.js.map +1 -1
  6. package/dist/commands/init.d.ts.map +1 -1
  7. package/dist/commands/init.js +27 -4
  8. package/dist/commands/init.js.map +1 -1
  9. package/dist/commands/monitor.d.ts +23 -0
  10. package/dist/commands/monitor.d.ts.map +1 -0
  11. package/dist/commands/monitor.js +395 -0
  12. package/dist/commands/monitor.js.map +1 -0
  13. package/dist/commands/setup.d.ts +1 -1
  14. package/dist/commands/setup.d.ts.map +1 -1
  15. package/dist/commands/setup.js +9 -5
  16. package/dist/commands/setup.js.map +1 -1
  17. package/dist/commands/skills-install.d.ts +9 -1
  18. package/dist/commands/skills-install.d.ts.map +1 -1
  19. package/dist/commands/skills-install.js +13 -2
  20. package/dist/commands/skills-install.js.map +1 -1
  21. package/dist/index.js +7 -8
  22. package/dist/index.js.map +1 -1
  23. package/package.json +2 -2
  24. package/dist/commands/experimental/backends.d.ts +0 -19
  25. package/dist/commands/experimental/backends.d.ts.map +0 -1
  26. package/dist/commands/experimental/backends.js +0 -74
  27. package/dist/commands/experimental/backends.js.map +0 -1
  28. package/dist/commands/experimental/index.d.ts +0 -13
  29. package/dist/commands/experimental/index.d.ts.map +0 -1
  30. package/dist/commands/experimental/index.js +0 -200
  31. package/dist/commands/experimental/index.js.map +0 -1
  32. package/dist/commands/experimental/shared.d.ts +0 -17
  33. package/dist/commands/experimental/shared.d.ts.map +0 -1
  34. package/dist/commands/experimental/shared.js +0 -152
  35. package/dist/commands/experimental/shared.js.map +0 -1
  36. package/dist/commands/experimental/workflows/company-directories.d.ts +0 -11
  37. package/dist/commands/experimental/workflows/company-directories.d.ts.map +0 -1
  38. package/dist/commands/experimental/workflows/company-directories.js +0 -245
  39. package/dist/commands/experimental/workflows/company-directories.js.map +0 -1
  40. package/dist/commands/experimental/workflows/competitive-intel.d.ts +0 -11
  41. package/dist/commands/experimental/workflows/competitive-intel.d.ts.map +0 -1
  42. package/dist/commands/experimental/workflows/competitive-intel.js +0 -226
  43. package/dist/commands/experimental/workflows/competitive-intel.js.map +0 -1
  44. package/dist/commands/experimental/workflows/competitor-analysis.d.ts +0 -10
  45. package/dist/commands/experimental/workflows/competitor-analysis.d.ts.map +0 -1
  46. package/dist/commands/experimental/workflows/competitor-analysis.js +0 -196
  47. package/dist/commands/experimental/workflows/competitor-analysis.js.map +0 -1
  48. package/dist/commands/experimental/workflows/dashboard-reporting.d.ts +0 -11
  49. package/dist/commands/experimental/workflows/dashboard-reporting.d.ts.map +0 -1
  50. package/dist/commands/experimental/workflows/dashboard-reporting.js +0 -254
  51. package/dist/commands/experimental/workflows/dashboard-reporting.js.map +0 -1
  52. package/dist/commands/experimental/workflows/deep-research.d.ts +0 -11
  53. package/dist/commands/experimental/workflows/deep-research.d.ts.map +0 -1
  54. package/dist/commands/experimental/workflows/deep-research.js +0 -159
  55. package/dist/commands/experimental/workflows/deep-research.js.map +0 -1
  56. package/dist/commands/experimental/workflows/demo.d.ts +0 -11
  57. package/dist/commands/experimental/workflows/demo.d.ts.map +0 -1
  58. package/dist/commands/experimental/workflows/demo.js +0 -190
  59. package/dist/commands/experimental/workflows/demo.js.map +0 -1
  60. package/dist/commands/experimental/workflows/knowledge-base.d.ts +0 -11
  61. package/dist/commands/experimental/workflows/knowledge-base.d.ts.map +0 -1
  62. package/dist/commands/experimental/workflows/knowledge-base.js +0 -319
  63. package/dist/commands/experimental/workflows/knowledge-base.js.map +0 -1
  64. package/dist/commands/experimental/workflows/knowledge-ingest.d.ts +0 -12
  65. package/dist/commands/experimental/workflows/knowledge-ingest.d.ts.map +0 -1
  66. package/dist/commands/experimental/workflows/knowledge-ingest.js +0 -251
  67. package/dist/commands/experimental/workflows/knowledge-ingest.js.map +0 -1
  68. package/dist/commands/experimental/workflows/lead-gen.d.ts +0 -11
  69. package/dist/commands/experimental/workflows/lead-gen.d.ts.map +0 -1
  70. package/dist/commands/experimental/workflows/lead-gen.js +0 -257
  71. package/dist/commands/experimental/workflows/lead-gen.js.map +0 -1
  72. package/dist/commands/experimental/workflows/lead-research.d.ts +0 -11
  73. package/dist/commands/experimental/workflows/lead-research.d.ts.map +0 -1
  74. package/dist/commands/experimental/workflows/lead-research.js +0 -146
  75. package/dist/commands/experimental/workflows/lead-research.js.map +0 -1
  76. package/dist/commands/experimental/workflows/market-research.d.ts +0 -11
  77. package/dist/commands/experimental/workflows/market-research.d.ts.map +0 -1
  78. package/dist/commands/experimental/workflows/market-research.js +0 -260
  79. package/dist/commands/experimental/workflows/market-research.js.map +0 -1
  80. package/dist/commands/experimental/workflows/qa.d.ts +0 -11
  81. package/dist/commands/experimental/workflows/qa.d.ts.map +0 -1
  82. package/dist/commands/experimental/workflows/qa.js +0 -184
  83. package/dist/commands/experimental/workflows/qa.js.map +0 -1
  84. package/dist/commands/experimental/workflows/research-papers.d.ts +0 -11
  85. package/dist/commands/experimental/workflows/research-papers.d.ts.map +0 -1
  86. package/dist/commands/experimental/workflows/research-papers.js +0 -151
  87. package/dist/commands/experimental/workflows/research-papers.js.map +0 -1
  88. package/dist/commands/experimental/workflows/seo-audit.d.ts +0 -11
  89. package/dist/commands/experimental/workflows/seo-audit.d.ts.map +0 -1
  90. package/dist/commands/experimental/workflows/seo-audit.js +0 -155
  91. package/dist/commands/experimental/workflows/seo-audit.js.map +0 -1
  92. package/dist/commands/experimental/workflows/shop.d.ts +0 -11
  93. package/dist/commands/experimental/workflows/shop.d.ts.map +0 -1
  94. package/dist/commands/experimental/workflows/shop.js +0 -155
  95. 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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"}
@@ -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;AAWH,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE/C,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,CAiBf"}
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"}
@@ -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 Install firecrawl skill into AI coding agents');
27
- console.log(' mcp Install firecrawl MCP server into editors (Cursor, Claude Code, VS Code, etc.)');
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 skills_install_1.SKILL_REPOS) {
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":"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"}
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
- * Both are installed during `firecrawl init` and `firecrawl setup skills`.
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;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,gDAAiD,CAAC;AAE1E,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
+ {"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
- * Both are installed during `firecrawl init` and `firecrawl setup skills`.
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":";;;AAoBA,wDA6BC;AAaD,kCAQC;AAtED;;;;;;;GAOG;AACU,QAAA,WAAW,GAAG,CAAC,eAAe,EAAE,kBAAkB,CAAU,CAAC;AAY1E,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"}
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, AI workflow commands
1208
+ // Experimental: download command
1207
1209
  const experimental = new commander_1.Command('experimental')
1208
- .description('Experimental commands (download, AI workflows)')
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) => {