firecrawl-cli 1.19.12 → 1.19.15

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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=launch.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/commands/launch.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const child_process_1 = require("child_process");
4
+ const vitest_1 = require("vitest");
5
+ const launch_1 = require("../../commands/launch");
6
+ const setup_1 = require("../../commands/setup");
7
+ vitest_1.vi.mock('child_process', () => ({
8
+ spawnSync: vitest_1.vi.fn(),
9
+ }));
10
+ vitest_1.vi.mock('../../commands/setup', () => ({
11
+ installHermesMcp: vitest_1.vi.fn(async () => undefined),
12
+ installMcp: vitest_1.vi.fn(async () => undefined),
13
+ installOpenClawMcp: vitest_1.vi.fn(async () => undefined),
14
+ installSkillsForAgent: vitest_1.vi.fn(async () => undefined),
15
+ }));
16
+ (0, vitest_1.describe)('handleLaunchCommand', () => {
17
+ (0, vitest_1.beforeEach)(() => {
18
+ vitest_1.vi.clearAllMocks();
19
+ vitest_1.vi.mocked(child_process_1.spawnSync).mockReturnValue({ status: 0 });
20
+ });
21
+ (0, vitest_1.it)('installs Claude Code MCP without launching in install mode', async () => {
22
+ await (0, launch_1.handleLaunchCommand)('claude', { install: true });
23
+ (0, vitest_1.expect)(setup_1.installMcp).toHaveBeenCalledWith({
24
+ agent: 'claude-code',
25
+ global: true,
26
+ yes: true,
27
+ });
28
+ (0, vitest_1.expect)(setup_1.installSkillsForAgent).toHaveBeenCalledWith('claude-code', {
29
+ global: true,
30
+ yes: true,
31
+ });
32
+ (0, vitest_1.expect)(child_process_1.spawnSync).not.toHaveBeenCalled();
33
+ });
34
+ (0, vitest_1.it)('supports setup and config as install-mode aliases', async () => {
35
+ await (0, launch_1.handleLaunchCommand)('claude', { setup: true });
36
+ await (0, launch_1.handleLaunchCommand)('codex', { config: true });
37
+ (0, vitest_1.expect)(setup_1.installMcp).toHaveBeenCalledTimes(2);
38
+ (0, vitest_1.expect)(setup_1.installSkillsForAgent).toHaveBeenCalledTimes(2);
39
+ (0, vitest_1.expect)(child_process_1.spawnSync).not.toHaveBeenCalled();
40
+ });
41
+ (0, vitest_1.it)('configures VS Code MCP and launches code with the current workspace', async () => {
42
+ await (0, launch_1.handleLaunchCommand)('code');
43
+ (0, vitest_1.expect)(setup_1.installMcp).toHaveBeenCalledWith({
44
+ agent: 'vscode',
45
+ global: true,
46
+ yes: true,
47
+ });
48
+ (0, vitest_1.expect)(setup_1.installSkillsForAgent).not.toHaveBeenCalled();
49
+ (0, vitest_1.expect)(child_process_1.spawnSync).toHaveBeenNthCalledWith(1, 'code', ['--version'], {
50
+ stdio: 'ignore',
51
+ });
52
+ (0, vitest_1.expect)(child_process_1.spawnSync).toHaveBeenNthCalledWith(2, 'code', ['.'], vitest_1.expect.objectContaining({ stdio: 'inherit' }));
53
+ });
54
+ (0, vitest_1.it)('passes extra arguments through to Codex', async () => {
55
+ await (0, launch_1.handleLaunchCommand)('codex', {}, ['--sandbox', 'workspace-write']);
56
+ (0, vitest_1.expect)(setup_1.installMcp).toHaveBeenCalledWith({
57
+ agent: 'codex',
58
+ global: true,
59
+ yes: true,
60
+ });
61
+ (0, vitest_1.expect)(setup_1.installSkillsForAgent).toHaveBeenCalledWith('codex', {
62
+ global: true,
63
+ yes: true,
64
+ });
65
+ (0, vitest_1.expect)(child_process_1.spawnSync).toHaveBeenNthCalledWith(2, 'codex', ['--sandbox', 'workspace-write'], vitest_1.expect.objectContaining({ stdio: 'inherit' }));
66
+ });
67
+ (0, vitest_1.it)('configures Codex MCP and opens Codex App separately from the CLI', async () => {
68
+ await (0, launch_1.handleLaunchCommand)('codex-app');
69
+ (0, vitest_1.expect)(setup_1.installMcp).toHaveBeenCalledWith({
70
+ agent: 'codex',
71
+ global: true,
72
+ yes: true,
73
+ });
74
+ (0, vitest_1.expect)(setup_1.installSkillsForAgent).toHaveBeenCalledWith('codex', {
75
+ global: true,
76
+ yes: true,
77
+ });
78
+ (0, vitest_1.expect)(child_process_1.spawnSync).toHaveBeenNthCalledWith(1, 'open', ['--version'], {
79
+ stdio: 'ignore',
80
+ });
81
+ (0, vitest_1.expect)(child_process_1.spawnSync).toHaveBeenNthCalledWith(2, 'open', ['-b', 'com.openai.codex'], vitest_1.expect.objectContaining({ stdio: 'inherit' }));
82
+ });
83
+ (0, vitest_1.it)('does not pass extra arguments to Codex App', async () => {
84
+ await (0, vitest_1.expect)((0, launch_1.handleLaunchCommand)('codex-app', {}, ['--foo'])).rejects.toThrow('Codex App does not accept extra arguments');
85
+ });
86
+ (0, vitest_1.it)('can launch without touching MCP', async () => {
87
+ await (0, launch_1.handleLaunchCommand)('opencode', { skipMcp: true });
88
+ (0, vitest_1.expect)(setup_1.installMcp).not.toHaveBeenCalled();
89
+ (0, vitest_1.expect)(setup_1.installSkillsForAgent).toHaveBeenCalledWith('opencode', {
90
+ global: true,
91
+ yes: true,
92
+ });
93
+ (0, vitest_1.expect)(child_process_1.spawnSync).toHaveBeenNthCalledWith(1, 'opencode', ['--version'], {
94
+ stdio: 'ignore',
95
+ });
96
+ });
97
+ (0, vitest_1.it)('can skip skills for a launch target that normally supports them', async () => {
98
+ await (0, launch_1.handleLaunchCommand)('opencode', { skipMcp: true, skipSkills: true });
99
+ (0, vitest_1.expect)(setup_1.installMcp).not.toHaveBeenCalled();
100
+ (0, vitest_1.expect)(setup_1.installSkillsForAgent).not.toHaveBeenCalled();
101
+ });
102
+ (0, vitest_1.it)('configures Hermes MCP and skills, then launches Hermes Agent', async () => {
103
+ await (0, launch_1.handleLaunchCommand)('hermes');
104
+ (0, vitest_1.expect)(setup_1.installHermesMcp).toHaveBeenCalled();
105
+ (0, vitest_1.expect)(setup_1.installSkillsForAgent).toHaveBeenCalledWith('hermes-agent', {
106
+ global: true,
107
+ yes: true,
108
+ });
109
+ (0, vitest_1.expect)(child_process_1.spawnSync).toHaveBeenNthCalledWith(1, 'hermes', ['--version'], {
110
+ stdio: 'ignore',
111
+ });
112
+ (0, vitest_1.expect)(child_process_1.spawnSync).toHaveBeenNthCalledWith(2, 'hermes', [], vitest_1.expect.objectContaining({ stdio: 'inherit' }));
113
+ });
114
+ (0, vitest_1.it)('configures OpenClaw MCP and skills, then launches the TUI', async () => {
115
+ await (0, launch_1.handleLaunchCommand)('openclaw');
116
+ (0, vitest_1.expect)(setup_1.installOpenClawMcp).toHaveBeenCalled();
117
+ (0, vitest_1.expect)(setup_1.installSkillsForAgent).toHaveBeenCalledWith('openclaw', {
118
+ global: true,
119
+ yes: true,
120
+ });
121
+ (0, vitest_1.expect)(child_process_1.spawnSync).toHaveBeenNthCalledWith(1, 'openclaw', ['--version'], {
122
+ stdio: 'ignore',
123
+ });
124
+ (0, vitest_1.expect)(child_process_1.spawnSync).toHaveBeenNthCalledWith(2, 'openclaw', ['tui'], vitest_1.expect.objectContaining({ stdio: 'inherit' }));
125
+ });
126
+ (0, vitest_1.it)('can skip skills for Hermes and OpenClaw launch targets', async () => {
127
+ await (0, launch_1.handleLaunchCommand)('hermes', { skipSkills: true });
128
+ (0, vitest_1.expect)(setup_1.installHermesMcp).toHaveBeenCalled();
129
+ (0, vitest_1.expect)(setup_1.installSkillsForAgent).not.toHaveBeenCalled();
130
+ });
131
+ (0, vitest_1.it)('requires an explicit target in non-interactive mode', async () => {
132
+ const originalIsTty = process.stdin.isTTY;
133
+ Object.defineProperty(process.stdin, 'isTTY', {
134
+ configurable: true,
135
+ value: false,
136
+ });
137
+ try {
138
+ await (0, vitest_1.expect)((0, launch_1.handleLaunchCommand)()).rejects.toThrow('Launch target is required in non-interactive mode');
139
+ }
140
+ finally {
141
+ Object.defineProperty(process.stdin, 'isTTY', {
142
+ configurable: true,
143
+ value: originalIsTty,
144
+ });
145
+ }
146
+ });
147
+ });
148
+ //# sourceMappingURL=launch.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch.test.js","sourceRoot":"","sources":["../../../src/__tests__/commands/launch.test.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,37 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  const vitest_1 = require("vitest");
4
7
  const child_process_1 = require("child_process");
8
+ const fs_1 = require("fs");
9
+ const os_1 = __importDefault(require("os"));
10
+ const path_1 = __importDefault(require("path"));
5
11
  const setup_1 = require("../../commands/setup");
6
12
  const web_defaults_1 = require("../../utils/web-defaults");
13
+ const config_1 = require("../../utils/config");
7
14
  vitest_1.vi.mock('child_process', () => ({
8
15
  execSync: vitest_1.vi.fn(),
9
16
  }));
10
17
  vitest_1.vi.mock('../../utils/web-defaults', () => ({
11
18
  configureWebDefaults: vitest_1.vi.fn(async () => []),
12
19
  }));
20
+ vitest_1.vi.mock('../../utils/config', () => ({
21
+ getApiKey: vitest_1.vi.fn(() => 'fc-test-key'),
22
+ }));
13
23
  (0, vitest_1.describe)('handleSetupCommand', () => {
24
+ let originalHome;
14
25
  (0, vitest_1.beforeEach)(() => {
15
26
  vitest_1.vi.clearAllMocks();
27
+ vitest_1.vi.mocked(config_1.getApiKey).mockReturnValue('fc-test-key');
28
+ originalHome = process.env.HOME;
16
29
  });
17
30
  (0, vitest_1.afterEach)(() => {
31
+ if (originalHome === undefined)
32
+ delete process.env.HOME;
33
+ else
34
+ process.env.HOME = originalHome;
18
35
  vitest_1.vi.restoreAllMocks();
19
36
  });
20
37
  (0, vitest_1.it)('installs core and build skills globally across all detected agents by default', async () => {
@@ -31,6 +48,30 @@ vitest_1.vi.mock('../../utils/web-defaults', () => ({
31
48
  await (0, setup_1.handleSetupCommand)('workflows', {});
32
49
  (0, vitest_1.expect)(child_process_1.execSync).toHaveBeenCalledWith('npx -y skills add firecrawl/firecrawl-workflows --full-depth --global --all', vitest_1.expect.objectContaining({ stdio: 'inherit' }));
33
50
  });
51
+ (0, vitest_1.it)('installs the default setup bundle with --yes', async () => {
52
+ await (0, setup_1.handleSetupCommand)(undefined, { yes: true });
53
+ (0, vitest_1.expect)(child_process_1.execSync).toHaveBeenCalledWith('npx -y skills add firecrawl/cli --full-depth --global --all', vitest_1.expect.objectContaining({ stdio: 'inherit' }));
54
+ (0, vitest_1.expect)(child_process_1.execSync).toHaveBeenCalledWith('npx -y skills add firecrawl/skills --full-depth --global --all', vitest_1.expect.objectContaining({ stdio: 'inherit' }));
55
+ (0, vitest_1.expect)(child_process_1.execSync).toHaveBeenCalledWith('npx -y add-mcp "https://mcp.firecrawl.dev/fc-test-key/v2/mcp" --name firecrawl --transport http --global --yes', vitest_1.expect.objectContaining({
56
+ stdio: 'inherit',
57
+ }));
58
+ });
59
+ (0, vitest_1.it)('requires a subcommand for bare setup in non-interactive mode', async () => {
60
+ const originalIsTty = process.stdin.isTTY;
61
+ Object.defineProperty(process.stdin, 'isTTY', {
62
+ configurable: true,
63
+ value: false,
64
+ });
65
+ try {
66
+ await (0, vitest_1.expect)((0, setup_1.handleSetupCommand)()).rejects.toThrow('Setup subcommand is required in non-interactive mode');
67
+ }
68
+ finally {
69
+ Object.defineProperty(process.stdin, 'isTTY', {
70
+ configurable: true,
71
+ value: originalIsTty,
72
+ });
73
+ }
74
+ });
34
75
  (0, vitest_1.it)('configures Firecrawl as the default web provider', async () => {
35
76
  await (0, setup_1.handleSetupCommand)('defaults', { yes: true });
36
77
  (0, vitest_1.expect)(web_defaults_1.configureWebDefaults).toHaveBeenCalledWith({
@@ -52,6 +93,70 @@ vitest_1.vi.mock('../../utils/web-defaults', () => ({
52
93
  agents: ['Codex'],
53
94
  });
54
95
  });
96
+ (0, vitest_1.it)('installs MCP with the hosted Firecrawl URL when credentials exist', async () => {
97
+ await (0, setup_1.handleSetupCommand)('mcp', {
98
+ agent: 'claude-code',
99
+ global: true,
100
+ yes: true,
101
+ });
102
+ (0, vitest_1.expect)(child_process_1.execSync).toHaveBeenCalledWith('npx -y add-mcp "https://mcp.firecrawl.dev/fc-test-key/v2/mcp" --name firecrawl --transport http --global --agent claude-code --yes', vitest_1.expect.objectContaining({
103
+ stdio: 'inherit',
104
+ }));
105
+ });
106
+ (0, vitest_1.it)('normalizes launch aliases when reinstalling MCP after auth changes', async () => {
107
+ await (0, setup_1.handleSetupCommand)('mcp', {
108
+ agent: 'codex-app',
109
+ global: true,
110
+ yes: true,
111
+ });
112
+ (0, vitest_1.expect)(child_process_1.execSync).toHaveBeenCalledWith('npx -y add-mcp "https://mcp.firecrawl.dev/fc-test-key/v2/mcp" --name firecrawl --transport http --global --agent codex --yes', vitest_1.expect.objectContaining({ stdio: 'inherit' }));
113
+ });
114
+ (0, vitest_1.it)('installs MCP with the keyless hosted Firecrawl URL without credentials', async () => {
115
+ vitest_1.vi.mocked(config_1.getApiKey).mockReturnValue(undefined);
116
+ await (0, setup_1.handleSetupCommand)('mcp', {
117
+ agent: 'claude-code',
118
+ global: true,
119
+ yes: true,
120
+ });
121
+ (0, vitest_1.expect)(child_process_1.execSync).toHaveBeenCalledWith('npx -y add-mcp "https://mcp.firecrawl.dev/v2/mcp" --name firecrawl --transport http --global --agent claude-code --yes', vitest_1.expect.objectContaining({ stdio: 'inherit' }));
122
+ });
123
+ (0, vitest_1.it)('writes Hermes MCP config with Firecrawl credentials', async () => {
124
+ const home = (0, fs_1.mkdtempSync)(path_1.default.join(os_1.default.tmpdir(), 'firecrawl-hermes-test-'));
125
+ process.env.HOME = home;
126
+ try {
127
+ await (0, setup_1.installHermesMcp)();
128
+ const config = (0, fs_1.readFileSync)(path_1.default.join(home, '.hermes', 'config.yaml'), 'utf-8');
129
+ (0, vitest_1.expect)(config).toContain('mcp_servers:');
130
+ (0, vitest_1.expect)(config).toContain('firecrawl:');
131
+ (0, vitest_1.expect)(config).toContain('url: https://mcp.firecrawl.dev/fc-test-key/v2/mcp');
132
+ }
133
+ finally {
134
+ (0, fs_1.rmSync)(home, { recursive: true, force: true });
135
+ }
136
+ });
137
+ (0, vitest_1.it)('configures OpenClaw MCP with its native CLI command', async () => {
138
+ await (0, setup_1.installOpenClawMcp)();
139
+ (0, vitest_1.expect)(child_process_1.execSync).toHaveBeenCalledWith('openclaw mcp set firecrawl "{\\"url\\":\\"https://mcp.firecrawl.dev/fc-test-key/v2/mcp\\",\\"transport\\":\\"streamable-http\\"}"', vitest_1.expect.objectContaining({
140
+ stdio: 'inherit',
141
+ }));
142
+ });
143
+ (0, vitest_1.it)('reinstalls MCP for all launch integrations with --agent all', async () => {
144
+ const home = (0, fs_1.mkdtempSync)(path_1.default.join(os_1.default.tmpdir(), 'firecrawl-all-mcp-test-'));
145
+ process.env.HOME = home;
146
+ try {
147
+ await (0, setup_1.handleSetupCommand)('mcp', {
148
+ agent: 'all',
149
+ global: true,
150
+ yes: true,
151
+ });
152
+ (0, vitest_1.expect)(child_process_1.execSync).toHaveBeenCalledWith('npx -y add-mcp "https://mcp.firecrawl.dev/fc-test-key/v2/mcp" --name firecrawl --transport http --global --all --yes', vitest_1.expect.objectContaining({ stdio: 'inherit' }));
153
+ (0, vitest_1.expect)((0, fs_1.readFileSync)(path_1.default.join(home, '.hermes', 'config.yaml'), 'utf-8')).toContain('url: https://mcp.firecrawl.dev/fc-test-key/v2/mcp');
154
+ (0, vitest_1.expect)(child_process_1.execSync).toHaveBeenCalledWith('openclaw mcp set firecrawl "{\\"url\\":\\"https://mcp.firecrawl.dev/fc-test-key/v2/mcp\\",\\"transport\\":\\"streamable-http\\"}"', vitest_1.expect.objectContaining({ stdio: 'inherit' }));
155
+ }
156
+ finally {
157
+ (0, fs_1.rmSync)(home, { recursive: true, force: true });
158
+ }
159
+ });
55
160
  (0, vitest_1.it)('strips inherited npm_* env vars before nested npx calls', async () => {
56
161
  // Reproduces the bug where running this CLI under `npx -y firecrawl-cli@VERSION`
57
162
  // leaks npm_command/npm_lifecycle_event/npm_execpath into nested
@@ -1 +1 @@
1
- {"version":3,"file":"setup.test.js","sourceRoot":"","sources":["../../../src/__tests__/commands/setup.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.test.js","sourceRoot":"","sources":["../../../src/__tests__/commands/setup.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export interface LaunchOptions {
2
+ config?: boolean;
3
+ install?: boolean;
4
+ setup?: boolean;
5
+ global?: boolean;
6
+ yes?: boolean;
7
+ skipMcp?: boolean;
8
+ skipSkills?: boolean;
9
+ }
10
+ export declare function handleLaunchCommand(targetName?: string, options?: LaunchOptions, extraArgs?: string[]): Promise<void>;
11
+ //# sourceMappingURL=launch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch.d.ts","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAoLD,wBAAsB,mBAAmB,CACvC,UAAU,CAAC,EAAE,MAAM,EACnB,OAAO,GAAE,aAAkB,EAC3B,SAAS,GAAE,MAAM,EAAO,GACvB,OAAO,CAAC,IAAI,CAAC,CAkDf"}
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.handleLaunchCommand = handleLaunchCommand;
7
+ const fs_1 = require("fs");
8
+ const os_1 = __importDefault(require("os"));
9
+ const path_1 = __importDefault(require("path"));
10
+ const readline_1 = __importDefault(require("readline"));
11
+ const child_process_1 = require("child_process");
12
+ const setup_1 = require("./setup");
13
+ const TARGETS = [
14
+ {
15
+ aliases: ['claude', 'claude-code'],
16
+ displayName: 'Claude Code',
17
+ mcpAgent: 'claude-code',
18
+ skillsAgent: 'claude-code',
19
+ command: 'claude',
20
+ fallbackCommand: () => {
21
+ const localClaude = path_1.default.join(os_1.default.homedir(), '.claude', 'local', 'claude');
22
+ return (0, fs_1.existsSync)(localClaude)
23
+ ? { command: localClaude, args: [] }
24
+ : null;
25
+ },
26
+ },
27
+ {
28
+ aliases: ['code', 'vscode', 'vs-code'],
29
+ displayName: 'VS Code',
30
+ mcpAgent: 'vscode',
31
+ command: 'code',
32
+ args: ['.'],
33
+ fallbackCommand: () => {
34
+ if (process.platform !== 'darwin')
35
+ return null;
36
+ return {
37
+ command: 'open',
38
+ args: ['-a', 'Visual Studio Code', process.cwd()],
39
+ };
40
+ },
41
+ },
42
+ {
43
+ aliases: ['codex'],
44
+ displayName: 'Codex',
45
+ mcpAgent: 'codex',
46
+ skillsAgent: 'codex',
47
+ command: 'codex',
48
+ },
49
+ {
50
+ aliases: ['codex-app', 'codex-desktop', 'codex-gui'],
51
+ displayName: 'Codex App',
52
+ mcpAgent: 'codex',
53
+ skillsAgent: 'codex',
54
+ command: 'open',
55
+ args: ['-b', 'com.openai.codex'],
56
+ supportsExtraArgs: false,
57
+ fallbackCommand: () => {
58
+ if (process.platform !== 'darwin')
59
+ return null;
60
+ return {
61
+ command: 'open',
62
+ args: ['-a', 'Codex'],
63
+ };
64
+ },
65
+ },
66
+ {
67
+ aliases: ['opencode', 'open-code'],
68
+ displayName: 'OpenCode',
69
+ mcpAgent: 'opencode',
70
+ skillsAgent: 'opencode',
71
+ command: 'opencode',
72
+ },
73
+ {
74
+ aliases: ['hermes', 'hermes-agent'],
75
+ displayName: 'Hermes Agent',
76
+ mcpInstaller: setup_1.installHermesMcp,
77
+ skillsAgent: 'hermes-agent',
78
+ command: 'hermes',
79
+ },
80
+ {
81
+ aliases: ['openclaw'],
82
+ displayName: 'OpenClaw',
83
+ mcpInstaller: setup_1.installOpenClawMcp,
84
+ skillsAgent: 'openclaw',
85
+ command: 'openclaw',
86
+ args: ['tui'],
87
+ },
88
+ ];
89
+ function findTarget(name) {
90
+ if (!name)
91
+ return undefined;
92
+ const normalized = name.trim().toLowerCase();
93
+ return TARGETS.find((target) => target.aliases.includes(normalized));
94
+ }
95
+ function supportedTargets() {
96
+ return TARGETS.flatMap((candidate) => candidate.aliases)
97
+ .filter((alias, index, aliases) => aliases.indexOf(alias) === index)
98
+ .join(', ');
99
+ }
100
+ function promptInput(question) {
101
+ const rl = readline_1.default.createInterface({
102
+ input: process.stdin,
103
+ output: process.stdout,
104
+ });
105
+ return new Promise((resolve) => {
106
+ rl.question(question, (answer) => {
107
+ rl.close();
108
+ resolve(answer.trim());
109
+ });
110
+ });
111
+ }
112
+ async function pickLaunchTarget() {
113
+ if (!process.stdin.isTTY) {
114
+ throw new Error(`Launch target is required in non-interactive mode. Supported: ${supportedTargets()}`);
115
+ }
116
+ console.log('Choose an app to configure and launch:');
117
+ TARGETS.forEach((target, index) => {
118
+ console.log(` ${index + 1}. ${target.displayName}`);
119
+ });
120
+ console.log('');
121
+ const answer = await promptInput('Launch app: ');
122
+ const byNumber = Number.parseInt(answer, 10);
123
+ if (Number.isInteger(byNumber) &&
124
+ byNumber >= 1 &&
125
+ byNumber <= TARGETS.length) {
126
+ return TARGETS[byNumber - 1];
127
+ }
128
+ const target = findTarget(answer);
129
+ if (target)
130
+ return target;
131
+ throw new Error(`Unknown launch target "${answer}". Supported: ${supportedTargets()}`);
132
+ }
133
+ function commandExists(command) {
134
+ const result = (0, child_process_1.spawnSync)(command, ['--version'], { stdio: 'ignore' });
135
+ return (!result.error || result.error.code !== 'ENOENT');
136
+ }
137
+ function resolveLaunchCommand(target, extraArgs) {
138
+ if (extraArgs.length > 0 && target.supportsExtraArgs === false) {
139
+ throw new Error(`${target.displayName} does not accept extra arguments.`);
140
+ }
141
+ if (commandExists(target.command)) {
142
+ return {
143
+ command: target.command,
144
+ args: [...(target.args || []), ...extraArgs],
145
+ };
146
+ }
147
+ const fallback = target.fallbackCommand?.();
148
+ if (fallback) {
149
+ return {
150
+ command: fallback.command,
151
+ args: [...fallback.args, ...extraArgs],
152
+ };
153
+ }
154
+ throw new Error(`${target.displayName} is not installed or its command was not found on PATH.`);
155
+ }
156
+ async function handleLaunchCommand(targetName, options = {}, extraArgs = []) {
157
+ if (!targetName && extraArgs.length > 0) {
158
+ throw new Error('Extra launch arguments require an explicit launch target.');
159
+ }
160
+ const target = targetName ? findTarget(targetName) : await pickLaunchTarget();
161
+ if (!target) {
162
+ throw new Error(`Unknown launch target "${targetName}". Supported: ${supportedTargets()}`);
163
+ }
164
+ if (!options.skipMcp) {
165
+ if (target.mcpInstaller) {
166
+ await target.mcpInstaller();
167
+ }
168
+ else if (target.mcpAgent) {
169
+ await (0, setup_1.installMcp)({
170
+ agent: target.mcpAgent,
171
+ global: options.global !== false,
172
+ yes: options.yes ?? true,
173
+ });
174
+ }
175
+ }
176
+ if (target.skillsAgent && !options.skipSkills) {
177
+ await (0, setup_1.installSkillsForAgent)(target.skillsAgent, {
178
+ global: options.global !== false,
179
+ yes: options.yes ?? true,
180
+ });
181
+ }
182
+ if (options.config || options.install || options.setup) {
183
+ console.log(`${target.displayName} is configured with Firecrawl MCP.`);
184
+ return;
185
+ }
186
+ const launch = resolveLaunchCommand(target, extraArgs);
187
+ const result = (0, child_process_1.spawnSync)(launch.command, launch.args, {
188
+ stdio: 'inherit',
189
+ env: process.env,
190
+ });
191
+ if (result.error) {
192
+ throw result.error;
193
+ }
194
+ if (typeof result.status === 'number' && result.status !== 0) {
195
+ process.exit(result.status);
196
+ }
197
+ }
198
+ //# sourceMappingURL=launch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"launch.js","sourceRoot":"","sources":["../../src/commands/launch.ts"],"names":[],"mappings":";;;;;AAwMA,kDAsDC;AA9PD,2BAAgC;AAChC,4CAAoB;AACpB,gDAAwB;AACxB,wDAAgC;AAChC,iDAA0C;AAC1C,mCAKiB;AAwBjB,MAAM,OAAO,GAAmB;IAC9B;QACE,OAAO,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;QAClC,WAAW,EAAE,aAAa;QAC1B,QAAQ,EAAE,aAAa;QACvB,WAAW,EAAE,aAAa;QAC1B,OAAO,EAAE,QAAQ;QACjB,eAAe,EAAE,GAAG,EAAE;YACpB,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC1E,OAAO,IAAA,eAAU,EAAC,WAAW,CAAC;gBAC5B,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE;gBACpC,CAAC,CAAC,IAAI,CAAC;QACX,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC;QACtC,WAAW,EAAE,SAAS;QACtB,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,CAAC,GAAG,CAAC;QACX,eAAe,EAAE,GAAG,EAAE;YACpB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YAC/C,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;aAClD,CAAC;QACJ,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC,OAAO,CAAC;QAClB,WAAW,EAAE,OAAO;QACpB,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,OAAO;QACpB,OAAO,EAAE,OAAO;KACjB;IACD;QACE,OAAO,EAAE,CAAC,WAAW,EAAE,eAAe,EAAE,WAAW,CAAC;QACpD,WAAW,EAAE,WAAW;QACxB,QAAQ,EAAE,OAAO;QACjB,WAAW,EAAE,OAAO;QACpB,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,CAAC,IAAI,EAAE,kBAAkB,CAAC;QAChC,iBAAiB,EAAE,KAAK;QACxB,eAAe,EAAE,GAAG,EAAE;YACpB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC;YAC/C,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;aACtB,CAAC;QACJ,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC;QAClC,WAAW,EAAE,UAAU;QACvB,QAAQ,EAAE,UAAU;QACpB,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE,UAAU;KACpB;IACD;QACE,OAAO,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC;QACnC,WAAW,EAAE,cAAc;QAC3B,YAAY,EAAE,wBAAgB;QAC9B,WAAW,EAAE,cAAc;QAC3B,OAAO,EAAE,QAAQ;KAClB;IACD;QACE,OAAO,EAAE,CAAC,UAAU,CAAC;QACrB,WAAW,EAAE,UAAU;QACvB,YAAY,EAAE,0BAAkB;QAChC,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,CAAC,KAAK,CAAC;KACd;CACF,CAAC;AAEF,SAAS,UAAU,CAAC,IAAwB;IAC1C,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7C,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC;SACrD,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;SACnE,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB;IACnC,MAAM,EAAE,GAAG,kBAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IACH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAc,EAAE,EAAE;YACvC,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC7B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,iEAAiE,gBAAgB,EAAE,EAAE,CACtF,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IACtD,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QAChC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,cAAc,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC7C,IACE,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC;QAC1B,QAAQ,IAAI,CAAC;QACb,QAAQ,IAAI,OAAO,CAAC,MAAM,EAC1B,CAAC;QACD,OAAO,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAClC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,IAAI,KAAK,CACb,0BAA0B,MAAM,iBAAiB,gBAAgB,EAAE,EAAE,CACtE,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,MAAM,GAAG,IAAA,yBAAS,EAAC,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtE,OAAO,CACL,CAAC,MAAM,CAAC,KAAK,IAAK,MAAM,CAAC,KAA+B,CAAC,IAAI,KAAK,QAAQ,CAC3E,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAC3B,MAAoB,EACpB,SAAmB;IAEnB,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,iBAAiB,KAAK,KAAK,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,WAAW,mCAAmC,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC;SAC7C,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;IAC5C,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,IAAI,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC;SACvC,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CACb,GAAG,MAAM,CAAC,WAAW,yDAAyD,CAC/E,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,mBAAmB,CACvC,UAAmB,EACnB,UAAyB,EAAE,EAC3B,YAAsB,EAAE;IAExB,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,gBAAgB,EAAE,CAAC;IAC9E,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,0BAA0B,UAAU,iBAAiB,gBAAgB,EAAE,EAAE,CAC1E,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,MAAM,CAAC,YAAY,EAAE,CAAC;QAC9B,CAAC;aAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YAC3B,MAAM,IAAA,kBAAU,EAAC;gBACf,KAAK,EAAE,MAAM,CAAC,QAAQ;gBACtB,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,KAAK;gBAChC,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,IAAI;aACzB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC9C,MAAM,IAAA,6BAAqB,EAAC,MAAM,CAAC,WAAW,EAAE;YAC9C,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,KAAK;YAChC,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,IAAI;SACzB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,WAAW,oCAAoC,CAAC,CAAC;QACvE,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACvD,MAAM,MAAM,GAAG,IAAA,yBAAS,EAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE;QACpD,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,MAAM,CAAC,KAAK,CAAC;IACrB,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { InspectPaperOptions, ReadPaperOptions, RelatedPapersOptions, SearchGitHubOptions, SearchPapersOptions } from '../types/research';
2
+ export declare function handleSearchPapersCommand(options: SearchPapersOptions): Promise<void>;
3
+ export declare function handleInspectPaperCommand(options: InspectPaperOptions): Promise<void>;
4
+ export declare function handleRelatedPapersCommand(options: RelatedPapersOptions): Promise<void>;
5
+ export declare function handleReadPaperCommand(options: ReadPaperOptions): Promise<void>;
6
+ export declare function handleSearchGitHubCommand(options: SearchGitHubOptions): Promise<void>;
7
+ //# sourceMappingURL=research.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"research.d.ts","sourceRoot":"","sources":["../../src/commands/research.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,mBAAmB,EAEnB,gBAAgB,EAChB,oBAAoB,EAEpB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAuL3B,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAUf;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,IAAI,CAAC,CA6Bf;AAED,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CAuBf;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAaf"}