conare 0.4.1 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +30 -22
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1511,7 +1511,7 @@ async function selectChatSources(targets) {
|
|
|
1511
1511
|
return ensureValue(await fe({
|
|
1512
1512
|
message: "Select chat sources",
|
|
1513
1513
|
required: false,
|
|
1514
|
-
initialValues: targets.filter((target) => target.available !== false).map((target) => target.id),
|
|
1514
|
+
initialValues: targets.filter((target) => target.available !== false && (target.detectedCount ?? 0) > 0).map((target) => target.id),
|
|
1515
1515
|
options: targets.map((target) => ({
|
|
1516
1516
|
value: target.id,
|
|
1517
1517
|
label: target.label,
|
|
@@ -1523,7 +1523,7 @@ async function selectMcpTargets(targets) {
|
|
|
1523
1523
|
return ensureValue(await fe({
|
|
1524
1524
|
message: "Select where to install the MCP",
|
|
1525
1525
|
required: false,
|
|
1526
|
-
initialValues: targets.filter((target) => target.available !== false).map((target) => target.id),
|
|
1526
|
+
initialValues: targets.filter((target) => target.available !== false && (target.detectedCount ?? 0) > 0).map((target) => target.id),
|
|
1527
1527
|
options: targets.map((target) => ({
|
|
1528
1528
|
value: target.id,
|
|
1529
1529
|
label: target.label,
|
|
@@ -2357,7 +2357,7 @@ function configureClaude(apiKey) {
|
|
|
2357
2357
|
stdio: "ignore",
|
|
2358
2358
|
shell: platform5() === "win32"
|
|
2359
2359
|
}).status === 0) {
|
|
2360
|
-
return "Claude Code
|
|
2360
|
+
return "\x1B[32m✓\x1B[0m Claude Code";
|
|
2361
2361
|
}
|
|
2362
2362
|
const config = readJsonFile(claudeConfigPath);
|
|
2363
2363
|
if (!config.mcpServers || typeof config.mcpServers !== "object") {
|
|
@@ -2373,7 +2373,7 @@ function configureClaude(apiKey) {
|
|
|
2373
2373
|
mcpConfig.mcpServers[SERVER_NAME] = getServerConfig(apiKey);
|
|
2374
2374
|
writeJsonFile(claudeMcpPath, mcpConfig);
|
|
2375
2375
|
}
|
|
2376
|
-
return
|
|
2376
|
+
return "\x1B[32m✓\x1B[0m Claude Code";
|
|
2377
2377
|
}
|
|
2378
2378
|
function configureCodex(apiKey) {
|
|
2379
2379
|
const configPath = join7(homedir5(), ".codex", "config.toml");
|
|
@@ -2381,7 +2381,7 @@ function configureCodex(apiKey) {
|
|
|
2381
2381
|
stdio: "ignore",
|
|
2382
2382
|
shell: platform5() === "win32"
|
|
2383
2383
|
}).status === 0) {
|
|
2384
|
-
return "Codex
|
|
2384
|
+
return "\x1B[32m✓\x1B[0m Codex";
|
|
2385
2385
|
}
|
|
2386
2386
|
let toml = "";
|
|
2387
2387
|
try {
|
|
@@ -2424,7 +2424,7 @@ ${newSection}
|
|
|
2424
2424
|
}
|
|
2425
2425
|
}
|
|
2426
2426
|
} catch {}
|
|
2427
|
-
return
|
|
2427
|
+
return "\x1B[32m✓\x1B[0m Codex";
|
|
2428
2428
|
}
|
|
2429
2429
|
function configureCursor(apiKey) {
|
|
2430
2430
|
const configPath = join7(homedir5(), ".cursor", "mcp.json");
|
|
@@ -2437,7 +2437,7 @@ function configureCursor(apiKey) {
|
|
|
2437
2437
|
headers: { Authorization: `Bearer ${apiKey}` }
|
|
2438
2438
|
};
|
|
2439
2439
|
writeJsonFile(configPath, config);
|
|
2440
|
-
return
|
|
2440
|
+
return "\x1B[32m✓\x1B[0m Cursor";
|
|
2441
2441
|
}
|
|
2442
2442
|
function configureWindsurf(apiKey) {
|
|
2443
2443
|
const configPath = join7(homedir5(), ".codeium", "windsurf", "mcp_config.json");
|
|
@@ -2450,7 +2450,7 @@ function configureWindsurf(apiKey) {
|
|
|
2450
2450
|
headers: { Authorization: `Bearer ${apiKey}` }
|
|
2451
2451
|
};
|
|
2452
2452
|
writeJsonFile(configPath, config);
|
|
2453
|
-
return
|
|
2453
|
+
return "\x1B[32m✓\x1B[0m Windsurf";
|
|
2454
2454
|
}
|
|
2455
2455
|
function configureVscode(apiKey) {
|
|
2456
2456
|
const os = platform5();
|
|
@@ -2472,7 +2472,7 @@ function configureVscode(apiKey) {
|
|
|
2472
2472
|
headers: { Authorization: `Bearer ${apiKey}` }
|
|
2473
2473
|
};
|
|
2474
2474
|
writeJsonFile(configPath, config);
|
|
2475
|
-
return
|
|
2475
|
+
return "\x1B[32m✓\x1B[0m VS Code Copilot";
|
|
2476
2476
|
}
|
|
2477
2477
|
function configureCline(apiKey) {
|
|
2478
2478
|
const os = platform5();
|
|
@@ -2494,7 +2494,7 @@ function configureCline(apiKey) {
|
|
|
2494
2494
|
disabled: false
|
|
2495
2495
|
};
|
|
2496
2496
|
writeJsonFile(configPath, config);
|
|
2497
|
-
return
|
|
2497
|
+
return "\x1B[32m✓\x1B[0m Cline";
|
|
2498
2498
|
}
|
|
2499
2499
|
function configureZed(apiKey) {
|
|
2500
2500
|
const os = platform5();
|
|
@@ -2520,7 +2520,7 @@ function configureZed(apiKey) {
|
|
|
2520
2520
|
env: {}
|
|
2521
2521
|
};
|
|
2522
2522
|
writeJsonFile(configPath, config);
|
|
2523
|
-
return
|
|
2523
|
+
return "\x1B[32m✓\x1B[0m Zed";
|
|
2524
2524
|
}
|
|
2525
2525
|
function configureOpenclaw(apiKey) {
|
|
2526
2526
|
const configPath = join7(homedir5(), ".openclaw", "openclaw.json");
|
|
@@ -2534,7 +2534,7 @@ function configureOpenclaw(apiKey) {
|
|
|
2534
2534
|
headers: { Authorization: `Bearer ${apiKey}` }
|
|
2535
2535
|
};
|
|
2536
2536
|
writeJsonFile(configPath, config);
|
|
2537
|
-
return
|
|
2537
|
+
return "\x1B[32m✓\x1B[0m OpenClaw";
|
|
2538
2538
|
}
|
|
2539
2539
|
var CLIENT_CONFIGURATORS = {
|
|
2540
2540
|
claude: configureClaude,
|
|
@@ -2642,14 +2642,14 @@ function installSkill() {
|
|
|
2642
2642
|
if (existsSync6(claudeSkillDir)) {
|
|
2643
2643
|
try {
|
|
2644
2644
|
if (readlinkSync(claudeSkillDir) === skillDir)
|
|
2645
|
-
return "Agent Skill
|
|
2645
|
+
return "\x1B[32m✓\x1B[0m Agent Skill";
|
|
2646
2646
|
} catch {}
|
|
2647
2647
|
rmSync(claudeSkillDir, { recursive: true, force: true });
|
|
2648
2648
|
}
|
|
2649
2649
|
symlinkSync(skillDir, claudeSkillDir);
|
|
2650
2650
|
}
|
|
2651
2651
|
} catch {}
|
|
2652
|
-
return "Agent Skill
|
|
2652
|
+
return "\x1B[32m✓\x1B[0m Agent Skill";
|
|
2653
2653
|
}
|
|
2654
2654
|
function configureMcp(apiKey, targets = ["claude", "codex"]) {
|
|
2655
2655
|
const results = [];
|
|
@@ -3384,8 +3384,8 @@ async function runInstall() {
|
|
|
3384
3384
|
const detected = detectedTools.find((d3) => d3.id === t.id);
|
|
3385
3385
|
return detected?.available || t.defaultSelected;
|
|
3386
3386
|
}).map((t) => t.id);
|
|
3387
|
-
const
|
|
3388
|
-
for (const line of
|
|
3387
|
+
const mcpLines = configureMcp(apiKey, targets);
|
|
3388
|
+
for (const line of mcpLines)
|
|
3389
3389
|
console.log(` ${line}`);
|
|
3390
3390
|
console.log("");
|
|
3391
3391
|
console.log(" \x1B[32m✓\x1B[0m MCP installed. Restart your AI tool to connect.");
|
|
@@ -3462,8 +3462,10 @@ async function main() {
|
|
|
3462
3462
|
apiKey = authResult || apiKey;
|
|
3463
3463
|
}
|
|
3464
3464
|
}
|
|
3465
|
-
|
|
3466
|
-
|
|
3465
|
+
const INGESTIBLE_SOURCES = new Set(["claude", "codex", "cursor"]);
|
|
3466
|
+
const ingestibleTargets = interactiveTargets.filter((t) => INGESTIBLE_SOURCES.has(t.id));
|
|
3467
|
+
showDetectedApps(ingestibleTargets);
|
|
3468
|
+
selectedSources = await selectChatSources(ingestibleTargets);
|
|
3467
3469
|
interactiveMode = true;
|
|
3468
3470
|
}
|
|
3469
3471
|
if (opts.uninstallSync) {
|
|
@@ -3525,8 +3527,10 @@ async function main() {
|
|
|
3525
3527
|
if (!opts.dryRun) {
|
|
3526
3528
|
const mcpSpinner = Y2();
|
|
3527
3529
|
mcpSpinner.start("Configuring MCP...");
|
|
3528
|
-
const
|
|
3529
|
-
mcpSpinner.stop(
|
|
3530
|
+
const mcpLines = configureMcp(apiKey, selectedTargets);
|
|
3531
|
+
mcpSpinner.stop("MCP configured");
|
|
3532
|
+
for (const line of mcpLines)
|
|
3533
|
+
log(` ${line}`);
|
|
3530
3534
|
}
|
|
3531
3535
|
log("");
|
|
3532
3536
|
log("Done! Conare MCP is configured.");
|
|
@@ -3618,7 +3622,9 @@ Nothing new to index.`);
|
|
|
3618
3622
|
const mcpSpinner = Y2();
|
|
3619
3623
|
mcpSpinner.start("Configuring MCP...");
|
|
3620
3624
|
const mcpLines = configureMcp(apiKey, selectedTargets);
|
|
3621
|
-
mcpSpinner.stop(
|
|
3625
|
+
mcpSpinner.stop("MCP configured");
|
|
3626
|
+
for (const line of mcpLines)
|
|
3627
|
+
log(` ${line}`);
|
|
3622
3628
|
}
|
|
3623
3629
|
log("Done! Your codebase is now searchable via recall.");
|
|
3624
3630
|
return;
|
|
@@ -3777,7 +3783,9 @@ Nothing new to index.`);
|
|
|
3777
3783
|
const mcpSpinner = Y2();
|
|
3778
3784
|
mcpSpinner.start("Configuring MCP...");
|
|
3779
3785
|
const mcpLines = configureMcp(apiKey, selectedTargets);
|
|
3780
|
-
mcpSpinner.stop(
|
|
3786
|
+
mcpSpinner.stop("MCP configured");
|
|
3787
|
+
for (const line of mcpLines)
|
|
3788
|
+
log(` ${line}`);
|
|
3781
3789
|
}
|
|
3782
3790
|
if (postIngestIndexPath) {
|
|
3783
3791
|
const { resolve: resolve2 } = await import("node:path");
|