firecrawl-cli 1.16.2 → 1.17.1

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 (103) hide show
  1. package/README.md +15 -37
  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/search.test.js +134 -179
  5. package/dist/__tests__/commands/search.test.js.map +1 -1
  6. package/dist/__tests__/commands/setup.test.js +6 -2
  7. package/dist/__tests__/commands/setup.test.js.map +1 -1
  8. package/dist/commands/init.d.ts.map +1 -1
  9. package/dist/commands/init.js +27 -4
  10. package/dist/commands/init.js.map +1 -1
  11. package/dist/commands/search-feedback.d.ts +44 -0
  12. package/dist/commands/search-feedback.d.ts.map +1 -0
  13. package/dist/commands/search-feedback.js +357 -0
  14. package/dist/commands/search-feedback.js.map +1 -0
  15. package/dist/commands/search.d.ts.map +1 -1
  16. package/dist/commands/search.js +19 -28
  17. package/dist/commands/search.js.map +1 -1
  18. package/dist/commands/setup.d.ts +1 -1
  19. package/dist/commands/setup.d.ts.map +1 -1
  20. package/dist/commands/setup.js +9 -5
  21. package/dist/commands/setup.js.map +1 -1
  22. package/dist/commands/skills-install.d.ts +9 -1
  23. package/dist/commands/skills-install.d.ts.map +1 -1
  24. package/dist/commands/skills-install.js +13 -2
  25. package/dist/commands/skills-install.js.map +1 -1
  26. package/dist/commands/status.d.ts.map +1 -1
  27. package/dist/commands/status.js +4 -0
  28. package/dist/commands/status.js.map +1 -1
  29. package/dist/index.js +68 -8
  30. package/dist/index.js.map +1 -1
  31. package/package.json +1 -1
  32. package/dist/commands/experimental/backends.d.ts +0 -19
  33. package/dist/commands/experimental/backends.d.ts.map +0 -1
  34. package/dist/commands/experimental/backends.js +0 -74
  35. package/dist/commands/experimental/backends.js.map +0 -1
  36. package/dist/commands/experimental/index.d.ts +0 -13
  37. package/dist/commands/experimental/index.d.ts.map +0 -1
  38. package/dist/commands/experimental/index.js +0 -200
  39. package/dist/commands/experimental/index.js.map +0 -1
  40. package/dist/commands/experimental/shared.d.ts +0 -17
  41. package/dist/commands/experimental/shared.d.ts.map +0 -1
  42. package/dist/commands/experimental/shared.js +0 -152
  43. package/dist/commands/experimental/shared.js.map +0 -1
  44. package/dist/commands/experimental/workflows/company-directories.d.ts +0 -11
  45. package/dist/commands/experimental/workflows/company-directories.d.ts.map +0 -1
  46. package/dist/commands/experimental/workflows/company-directories.js +0 -245
  47. package/dist/commands/experimental/workflows/company-directories.js.map +0 -1
  48. package/dist/commands/experimental/workflows/competitive-intel.d.ts +0 -11
  49. package/dist/commands/experimental/workflows/competitive-intel.d.ts.map +0 -1
  50. package/dist/commands/experimental/workflows/competitive-intel.js +0 -226
  51. package/dist/commands/experimental/workflows/competitive-intel.js.map +0 -1
  52. package/dist/commands/experimental/workflows/competitor-analysis.d.ts +0 -10
  53. package/dist/commands/experimental/workflows/competitor-analysis.d.ts.map +0 -1
  54. package/dist/commands/experimental/workflows/competitor-analysis.js +0 -196
  55. package/dist/commands/experimental/workflows/competitor-analysis.js.map +0 -1
  56. package/dist/commands/experimental/workflows/dashboard-reporting.d.ts +0 -11
  57. package/dist/commands/experimental/workflows/dashboard-reporting.d.ts.map +0 -1
  58. package/dist/commands/experimental/workflows/dashboard-reporting.js +0 -254
  59. package/dist/commands/experimental/workflows/dashboard-reporting.js.map +0 -1
  60. package/dist/commands/experimental/workflows/deep-research.d.ts +0 -11
  61. package/dist/commands/experimental/workflows/deep-research.d.ts.map +0 -1
  62. package/dist/commands/experimental/workflows/deep-research.js +0 -159
  63. package/dist/commands/experimental/workflows/deep-research.js.map +0 -1
  64. package/dist/commands/experimental/workflows/demo.d.ts +0 -11
  65. package/dist/commands/experimental/workflows/demo.d.ts.map +0 -1
  66. package/dist/commands/experimental/workflows/demo.js +0 -190
  67. package/dist/commands/experimental/workflows/demo.js.map +0 -1
  68. package/dist/commands/experimental/workflows/knowledge-base.d.ts +0 -11
  69. package/dist/commands/experimental/workflows/knowledge-base.d.ts.map +0 -1
  70. package/dist/commands/experimental/workflows/knowledge-base.js +0 -319
  71. package/dist/commands/experimental/workflows/knowledge-base.js.map +0 -1
  72. package/dist/commands/experimental/workflows/knowledge-ingest.d.ts +0 -12
  73. package/dist/commands/experimental/workflows/knowledge-ingest.d.ts.map +0 -1
  74. package/dist/commands/experimental/workflows/knowledge-ingest.js +0 -251
  75. package/dist/commands/experimental/workflows/knowledge-ingest.js.map +0 -1
  76. package/dist/commands/experimental/workflows/lead-gen.d.ts +0 -11
  77. package/dist/commands/experimental/workflows/lead-gen.d.ts.map +0 -1
  78. package/dist/commands/experimental/workflows/lead-gen.js +0 -257
  79. package/dist/commands/experimental/workflows/lead-gen.js.map +0 -1
  80. package/dist/commands/experimental/workflows/lead-research.d.ts +0 -11
  81. package/dist/commands/experimental/workflows/lead-research.d.ts.map +0 -1
  82. package/dist/commands/experimental/workflows/lead-research.js +0 -146
  83. package/dist/commands/experimental/workflows/lead-research.js.map +0 -1
  84. package/dist/commands/experimental/workflows/market-research.d.ts +0 -11
  85. package/dist/commands/experimental/workflows/market-research.d.ts.map +0 -1
  86. package/dist/commands/experimental/workflows/market-research.js +0 -260
  87. package/dist/commands/experimental/workflows/market-research.js.map +0 -1
  88. package/dist/commands/experimental/workflows/qa.d.ts +0 -11
  89. package/dist/commands/experimental/workflows/qa.d.ts.map +0 -1
  90. package/dist/commands/experimental/workflows/qa.js +0 -184
  91. package/dist/commands/experimental/workflows/qa.js.map +0 -1
  92. package/dist/commands/experimental/workflows/research-papers.d.ts +0 -11
  93. package/dist/commands/experimental/workflows/research-papers.d.ts.map +0 -1
  94. package/dist/commands/experimental/workflows/research-papers.js +0 -151
  95. package/dist/commands/experimental/workflows/research-papers.js.map +0 -1
  96. package/dist/commands/experimental/workflows/seo-audit.d.ts +0 -11
  97. package/dist/commands/experimental/workflows/seo-audit.d.ts.map +0 -1
  98. package/dist/commands/experimental/workflows/seo-audit.js +0 -155
  99. package/dist/commands/experimental/workflows/seo-audit.js.map +0 -1
  100. package/dist/commands/experimental/workflows/shop.d.ts +0 -11
  101. package/dist/commands/experimental/workflows/shop.d.ts.map +0 -1
  102. package/dist/commands/experimental/workflows/shop.js +0 -155
  103. package/dist/commands/experimental/workflows/shop.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"company-directories.js","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/company-directories.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Workflow: Competitive Intelligence
3
- *
4
- * Logs into competitor dashboards using saved browser profiles, clicks through
5
- * pricing tiers, feature pages, and changelogs to detect plan changes.
6
- * Designed for weekly monitoring runs with structured diff output.
7
- */
8
- import { Command } from 'commander';
9
- import { type Backend } from '../backends';
10
- export declare function register(parentCmd: Command, backend: Backend): void;
11
- //# sourceMappingURL=competitive-intel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"competitive-intel.d.ts","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/competitive-intel.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,OAAO,EAAyB,MAAM,aAAa,CAAC;AAsMlE,wBAAgB,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAmCnE"}
@@ -1,226 +0,0 @@
1
- "use strict";
2
- /**
3
- * Workflow: Competitive Intelligence
4
- *
5
- * Logs into competitor dashboards using saved browser profiles, clicks through
6
- * pricing tiers, feature pages, and changelogs to detect plan changes.
7
- * Designed for weekly monitoring runs with structured diff output.
8
- */
9
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- var desc = Object.getOwnPropertyDescriptor(m, k);
12
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
- desc = { enumerable: true, get: function() { return m[k]; } };
14
- }
15
- Object.defineProperty(o, k2, desc);
16
- }) : (function(o, m, k, k2) {
17
- if (k2 === undefined) k2 = k;
18
- o[k2] = m[k];
19
- }));
20
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
- Object.defineProperty(o, "default", { enumerable: true, value: v });
22
- }) : function(o, v) {
23
- o["default"] = v;
24
- });
25
- var __importStar = (this && this.__importStar) || (function () {
26
- var ownKeys = function(o) {
27
- ownKeys = Object.getOwnPropertyNames || function (o) {
28
- var ar = [];
29
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
- return ar;
31
- };
32
- return ownKeys(o);
33
- };
34
- return function (mod) {
35
- if (mod && mod.__esModule) return mod;
36
- var result = {};
37
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
- __setModuleDefault(result, mod);
39
- return result;
40
- };
41
- })();
42
- Object.defineProperty(exports, "__esModule", { value: true });
43
- exports.register = register;
44
- const backends_1 = require("../backends");
45
- const shared_1 = require("../shared");
46
- // ─── Input gathering ────────────────────────────────────────────────────────
47
- async function gatherInputs(prefill) {
48
- if (prefill?.competitors) {
49
- return {
50
- competitors: prefill.competitors,
51
- focus: 'all',
52
- profile: '',
53
- output: 'json',
54
- context: '',
55
- };
56
- }
57
- const { input, select } = await Promise.resolve().then(() => __importStar(require('@inquirer/prompts')));
58
- const competitors = await input({
59
- message: 'Which competitors to monitor? (URLs or names, comma-separated)',
60
- validate: (0, shared_1.validateRequired)('At least one competitor'),
61
- });
62
- const focus = await select({
63
- message: 'What should the agent focus on?',
64
- choices: [
65
- { name: 'Everything (pricing, features, changelog)', value: 'all' },
66
- { name: 'Pricing tiers & plan changes only', value: 'pricing' },
67
- { name: 'Feature pages & product updates', value: 'features' },
68
- { name: 'Blog / changelog / release notes', value: 'changelog' },
69
- ],
70
- });
71
- const profile = await input({
72
- message: 'Browser profile to use for auth? (leave blank for anonymous browsing)',
73
- default: '',
74
- });
75
- const output = await select({
76
- message: 'How should the report be delivered?',
77
- choices: [
78
- { name: 'Print to terminal', value: 'terminal' },
79
- { name: 'Save as JSON (structured diffs)', value: 'json' },
80
- { name: 'Save as Markdown file', value: 'markdown' },
81
- ],
82
- });
83
- const context = await input({
84
- message: 'Any other context? (e.g., "compare to our Pro plan", "focus on API limits")',
85
- default: '',
86
- });
87
- return { competitors, focus, profile, output, context };
88
- }
89
- // ─── System prompt ──────────────────────────────────────────────────────────
90
- function buildSystemPrompt(opts) {
91
- const focusInstructions = {
92
- all: 'Extract pricing tiers (plan names, prices, feature lists, limits), product feature pages, and recent changelog/blog entries.',
93
- pricing: 'Focus exclusively on pricing pages. Extract every plan name, price, billing period, feature list, and usage limit. Note any "Contact Sales" tiers.',
94
- features: 'Focus on product/feature pages. Extract feature names, descriptions, availability per plan, and any recent additions or deprecations.',
95
- changelog: 'Focus on blogs, changelogs, and release notes. Extract recent product updates, new features, breaking changes, and deprecation notices.',
96
- };
97
- const profileBlock = opts.profile
98
- ? `\n### Browser Profile\n\nUse the saved browser profile \`${opts.profile}\` to access auth-gated pages:\n\`\`\`bash\nfirecrawl browser "open <url>" --profile ${opts.profile}\n\`\`\`\nAfter the first \`open\` with \`--profile\`, subsequent browser commands don't need the flag.`
99
- : '';
100
- const outputInstructions = {
101
- terminal: 'Print the full intelligence report to the terminal in well-formatted markdown.',
102
- json: `Save the report as structured JSON to \`competitive-intel.json\` in the current directory. Tell the user the file path when done.
103
-
104
- Use this schema:
105
- \`\`\`json
106
- {
107
- "generatedAt": "ISO-8601",
108
- "competitors": [
109
- {
110
- "name": "string",
111
- "url": "string",
112
- "pricing": {
113
- "lastChecked": "ISO-8601",
114
- "tiers": [{ "name": "string", "price": "string", "period": "string", "features": ["string"], "limits": {} }]
115
- },
116
- "recentChanges": [{ "date": "string", "type": "pricing | feature | deprecation", "summary": "string", "details": "string", "source": "url" }],
117
- "features": [{ "name": "string", "description": "string", "availableOn": ["plan names"] }],
118
- "sources": ["url"]
119
- }
120
- ]
121
- }
122
- \`\`\``,
123
- markdown: 'Save the report to a file called `competitive-intel.md` in the current directory. Tell the user the file path when done.',
124
- };
125
- return `You are a competitive intelligence agent powered by Firecrawl. You use a real cloud browser to visit competitor sites, navigate dashboards, and extract pricing and feature data.
126
-
127
- ## STEP 1: Launch Browser and Open Live View
128
-
129
- Before anything else, launch a browser session so the user can watch:
130
-
131
- \`\`\`bash
132
- firecrawl browser launch-session --json
133
- \`\`\`
134
-
135
- Extract the \`interactiveLiveViewUrl\` from the JSON output and open it (NOT the regular \`liveViewUrl\` -- the interactive one lets the user click and interact):
136
-
137
- \`\`\`bash
138
- open "<interactiveLiveViewUrl>" # macOS
139
- xdg-open "<interactiveLiveViewUrl>" # Linux
140
- \`\`\`
141
-
142
- If the \`open\` command fails, print the URL clearly so the user can copy-paste it.
143
- ${profileBlock}
144
-
145
- ## STEP 2: Visit Each Competitor
146
-
147
- For each competitor:
148
-
149
- 1. Navigate to their main site
150
- 2. Find and visit their **pricing page** -- click through every tier, toggle annual/monthly, expand feature comparison tables
151
- 3. Find **feature/product pages** -- click into each feature, note capabilities and limits
152
- 4. Find **changelog / blog / release notes** -- look for recent updates in the last 30 days
153
- 5. Take snapshots at each step to extract data
154
-
155
- ### Browser commands:
156
- \`\`\`bash
157
- firecrawl browser "open <url>"
158
- firecrawl browser "snapshot"
159
- firecrawl browser "click @<ref>"
160
- firecrawl browser "type @<ref> <text>"
161
- firecrawl browser "scroll down"
162
- firecrawl browser "scrape"
163
- \`\`\`
164
-
165
- You can also use \`firecrawl scrape <url>\` for quick page grabs when browser interaction isn't needed.
166
-
167
- ## Focus
168
-
169
- ${focusInstructions[opts.focus]}
170
-
171
- ## Output Format
172
-
173
- ${outputInstructions[opts.output]}
174
-
175
- Structure your report with:
176
-
177
- ### Per-Competitor Breakdown
178
- - Company name & URL
179
- - Pricing tiers (plan name, price, billing period, key features, limits)
180
- - Recent changes detected (with dates and source URLs)
181
- - Feature inventory
182
-
183
- ### Cross-Competitor Comparison
184
- - Pricing comparison table (plans side-by-side)
185
- - Feature matrix
186
- - Key differentiators
187
-
188
- ### Alerts & Insights
189
- - Notable pricing changes or new tiers
190
- - Feature gaps or opportunities
191
- - Market positioning shifts
192
-
193
- ### Sources
194
- - Every URL visited with what was found
195
-
196
- ---
197
-
198
- Do everything sequentially -- visit one competitor at a time. Be thorough: click toggle switches, expand accordions, scroll to load lazy content. Extract real data, not summaries of page titles.
199
-
200
- Start immediately.`;
201
- }
202
- // ─── Command registration ───────────────────────────────────────────────────
203
- function register(parentCmd, backend) {
204
- const config = backends_1.BACKENDS[backend];
205
- parentCmd
206
- .command('competitive-intel')
207
- .description('Monitor competitor pricing, features, and changes via browser')
208
- .argument('[competitors...]', 'Competitor URLs or names')
209
- .option('-y, --yes', 'Auto-approve all tool permissions')
210
- .action(async (competitorParts, options) => {
211
- const prefillCompetitors = competitorParts.length > 0 ? competitorParts.join(' ') : undefined;
212
- const inputs = await gatherInputs(prefillCompetitors ? { competitors: prefillCompetitors } : undefined);
213
- const parts = [`Monitor these competitors: ${inputs.competitors}`];
214
- if (inputs.context)
215
- parts.push(inputs.context);
216
- const userMessage = parts.join('. ') + '.';
217
- const skipPermissions = true;
218
- console.log(`\nLaunching ${config.displayName}...\n`);
219
- (0, backends_1.launchAgent)(backend, buildSystemPrompt({
220
- focus: inputs.focus,
221
- profile: inputs.profile,
222
- output: inputs.output,
223
- }), userMessage, skipPermissions);
224
- });
225
- }
226
- //# sourceMappingURL=competitive-intel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"competitive-intel.js","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/competitive-intel.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- /**
2
- * Workflow: Competitor Analysis
3
- *
4
- * Spawns parallel agents -- one per company -- to scrape and profile the target
5
- * and each competitor simultaneously. Synthesizes into a full competitive report.
6
- */
7
- import { Command } from 'commander';
8
- import { type Backend } from '../backends';
9
- export declare function register(parentCmd: Command, backend: Backend): void;
10
- //# sourceMappingURL=competitor-analysis.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"competitor-analysis.d.ts","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/competitor-analysis.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,OAAO,EAAyB,MAAM,aAAa,CAAC;AAuKlE,wBAAgB,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAyBnE"}
@@ -1,196 +0,0 @@
1
- "use strict";
2
- /**
3
- * Workflow: Competitor Analysis
4
- *
5
- * Spawns parallel agents -- one per company -- to scrape and profile the target
6
- * and each competitor simultaneously. Synthesizes into a full competitive report.
7
- */
8
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
- if (k2 === undefined) k2 = k;
10
- var desc = Object.getOwnPropertyDescriptor(m, k);
11
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
- desc = { enumerable: true, get: function() { return m[k]; } };
13
- }
14
- Object.defineProperty(o, k2, desc);
15
- }) : (function(o, m, k, k2) {
16
- if (k2 === undefined) k2 = k;
17
- o[k2] = m[k];
18
- }));
19
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
- Object.defineProperty(o, "default", { enumerable: true, value: v });
21
- }) : function(o, v) {
22
- o["default"] = v;
23
- });
24
- var __importStar = (this && this.__importStar) || (function () {
25
- var ownKeys = function(o) {
26
- ownKeys = Object.getOwnPropertyNames || function (o) {
27
- var ar = [];
28
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
- return ar;
30
- };
31
- return ownKeys(o);
32
- };
33
- return function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
- __setModuleDefault(result, mod);
38
- return result;
39
- };
40
- })();
41
- Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.register = register;
43
- const backends_1 = require("../backends");
44
- const shared_1 = require("../shared");
45
- // ─── Input gathering ────────────────────────────────────────────────────────
46
- async function gatherInputs(prefill) {
47
- const { input, select } = await Promise.resolve().then(() => __importStar(require('@inquirer/prompts')));
48
- const rawUrl = prefill?.url ||
49
- (await input({
50
- message: "What's the URL of the site you want to analyze?",
51
- validate: shared_1.validateUrl,
52
- }));
53
- const competitors = await input({
54
- message: 'Are there particular competitors you want to flag? (leave blank to auto-discover)',
55
- default: '',
56
- });
57
- const context = await input({
58
- message: 'Anything else I should know? (leave blank to skip)',
59
- default: '',
60
- });
61
- const output = await select({
62
- message: 'How should the report be delivered?',
63
- choices: [
64
- { name: 'Print to terminal', value: 'terminal' },
65
- { name: 'Save as Markdown file', value: 'markdown' },
66
- { name: 'Save as JSON (structured data)', value: 'json' },
67
- ],
68
- });
69
- return { url: (0, shared_1.normalizeUrl)(rawUrl), competitors, context, output };
70
- }
71
- // ─── System prompt ──────────────────────────────────────────────────────────
72
- function buildSystemPrompt(opts) {
73
- const outputInstructions = {
74
- terminal: 'Print the full report to the terminal in well-formatted markdown.',
75
- markdown: 'Save the report to a file called `competitor-analysis.md` in the current directory. Tell the user the file path when done.',
76
- json: `Save the report as structured JSON to \`competitor-analysis.json\` in the current directory. Tell the user the file path when done.
77
-
78
- Use this exact schema:
79
- \`\`\`json
80
- {
81
- "target": {
82
- "name": "string",
83
- "url": "string",
84
- "description": "string",
85
- "features": ["string"],
86
- "pricing": { "model": "string", "tiers": [{ "name": "string", "price": "string", "features": ["string"] }] },
87
- "targetAudience": "string",
88
- "valueProposition": "string",
89
- "sources": ["url"]
90
- },
91
- "competitors": [
92
- {
93
- "name": "string",
94
- "url": "string",
95
- "description": "string",
96
- "features": ["string"],
97
- "pricing": { "model": "string", "tiers": [{ "name": "string", "price": "string", "features": ["string"] }] },
98
- "targetAudience": "string",
99
- "sources": ["url"]
100
- }
101
- ],
102
- "featureMatrix": {
103
- "features": ["string"],
104
- "comparison": { "companyName": { "featureName": "yes | no | partial | string" } }
105
- },
106
- "positioning": [{ "company": "string", "tone": "string", "keyClaims": ["string"], "differentiators": ["string"] }],
107
- "strengths": ["string"],
108
- "weaknesses": ["string"],
109
- "opportunities": ["string"],
110
- "sources": [{ "url": "string", "title": "string", "usedFor": "string" }]
111
- }
112
- \`\`\``,
113
- };
114
- return `You are a competitive analysis team lead powered by Firecrawl. You orchestrate parallel research agents to analyze a target company and its competitors simultaneously.
115
-
116
- ${shared_1.FIRECRAWL_TOOLS_BLOCK}
117
-
118
- ## Your Strategy
119
-
120
- You are a **team lead**, not a solo researcher. Your job is to:
121
-
122
- 1. **Identify the landscape** -- Do a quick search yourself to find competitors if not provided. Search for "<product> alternatives", "<product> vs", "<industry> tools".
123
- 2. **Spawn parallel subagents** -- Launch one agent per company (target + each competitor). Each agent scrapes and profiles one company in depth.
124
- 3. **Collect results** -- Each agent reports back structured company data with source URLs.
125
- 4. **Synthesize** -- Build the comparative analysis, feature matrix, positioning breakdown, and recommendations from all agent findings.
126
-
127
- ## Agent Assignments
128
-
129
- Spawn these agents in parallel:
130
- 1. **Target Company Agent** -- Scrape the target site thoroughly. Extract: features, pricing, positioning, messaging, target audience, value proposition, content strategy. Return all findings with source URLs.
131
- 2. **Competitor Agent** (one per competitor) -- Each agent scrapes one competitor's site. Extract: company name, URL, what they do, key features, pricing (if public), target audience, value proposition. Return findings with source URLs.
132
-
133
- ${shared_1.SUBAGENT_INSTRUCTIONS}
134
-
135
- ## Output Format
136
-
137
- ${outputInstructions[opts.output]}
138
-
139
- Produce a comprehensive competitive analysis report with:
140
-
141
- ### 1. Target Company Overview
142
- - What they do (one paragraph)
143
- - Key features / product offerings
144
- - Pricing model (if public)
145
- - Target audience
146
- - Unique value proposition
147
-
148
- ### 2. Competitor Profiles
149
- For each competitor:
150
- - Company name & URL
151
- - What they do
152
- - Key features
153
- - Pricing (if public)
154
- - Target audience
155
-
156
- ### 3. Feature Comparison Matrix
157
- A markdown table comparing features across all companies.
158
-
159
- ### 4. Positioning & Messaging Analysis
160
- How each company positions itself -- tone, key claims, differentiators.
161
-
162
- ### 5. Strengths & Weaknesses
163
- For the target company relative to competitors.
164
-
165
- ### 6. Opportunities & Recommendations
166
- Actionable insights based on competitive gaps.
167
-
168
- ### 7. Sources & Citations
169
- For every claim, cite the source URL where you found the information. List all URLs scraped at the end with a one-line note on what was found there.
170
-
171
- ---
172
-
173
- Be thorough. Scrape real pages, extract real data. Do not make things up -- if pricing isn't public, say so. If a page fails to scrape, try an alternative URL or note the limitation.
174
-
175
- Start working immediately when given a target.`;
176
- }
177
- // ─── Command registration ───────────────────────────────────────────────────
178
- function register(parentCmd, backend) {
179
- const config = backends_1.BACKENDS[backend];
180
- parentCmd
181
- .command('competitor-analysis')
182
- .description('Analyze a website and its competitive landscape')
183
- .argument('[url]', 'URL to analyze')
184
- .option('-y, --yes', 'Auto-approve all tool permissions')
185
- .action(async (url, options) => {
186
- const inputs = await gatherInputs(url ? { url } : undefined);
187
- const skipPermissions = options.yes || (await (0, shared_1.askPermissionMode)(backend));
188
- console.log(`\nLaunching ${config.displayName}...\n`);
189
- (0, backends_1.launchAgent)(backend, buildSystemPrompt({ output: inputs.output }), (0, shared_1.buildMessage)([
190
- `Analyze ${inputs.url}`,
191
- inputs.competitors && `Competitors to include: ${inputs.competitors}`,
192
- inputs.context,
193
- ]), skipPermissions);
194
- });
195
- }
196
- //# sourceMappingURL=competitor-analysis.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"competitor-analysis.js","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/competitor-analysis.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Workflow: Dashboard Reporting
3
- *
4
- * Uses saved browser profiles to log into analytics platforms and internal
5
- * tools, navigate dashboards, extract metrics, trigger exports, and compile
6
- * cross-platform reports. Supports any login-gated web dashboard.
7
- */
8
- import { Command } from 'commander';
9
- import { type Backend } from '../backends';
10
- export declare function register(parentCmd: Command, backend: Backend): void;
11
- //# sourceMappingURL=dashboard-reporting.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dashboard-reporting.d.ts","sourceRoot":"","sources":["../../../../src/commands/experimental/workflows/dashboard-reporting.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,OAAO,EAAyB,MAAM,aAAa,CAAC;AA6NlE,wBAAgB,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAuCnE"}