@arkhera30/cli 0.3.12 → 0.3.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.
- package/dist/index.js +11 -25
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -613,9 +613,14 @@ var ANVIL_SERVICE = ` # \u2500\u2500 Anvil \u2500\u2500\u2500\u2500\u2500\u2500
|
|
|
613
613
|
- TYPESENSE_HOST=typesense
|
|
614
614
|
- TYPESENSE_PORT=8108
|
|
615
615
|
- TYPESENSE_API_KEY=\${TYPESENSE_API_KEY:-horus-local-key}
|
|
616
|
+
- NEO4J_URI=bolt://neo4j:7687
|
|
617
|
+
- NEO4J_USER=neo4j
|
|
618
|
+
- NEO4J_PASSWORD=horus-neo4j
|
|
616
619
|
depends_on:
|
|
617
620
|
typesense:
|
|
618
621
|
condition: service_healthy
|
|
622
|
+
neo4j:
|
|
623
|
+
condition: service_healthy
|
|
619
624
|
networks:
|
|
620
625
|
- horus-net
|
|
621
626
|
restart: unless-stopped
|
|
@@ -1078,16 +1083,6 @@ function mergeAndWriteConfig(configPath, mcpServers) {
|
|
|
1078
1083
|
mkdirSync2(dir, { recursive: true });
|
|
1079
1084
|
writeFileSync3(configPath, JSON.stringify(existing, null, 2) + "\n", "utf-8");
|
|
1080
1085
|
}
|
|
1081
|
-
function getMcpRemoteWrapperPath() {
|
|
1082
|
-
return join2(homedir3(), ".forge", "bin", "mcp-remote-wrapper");
|
|
1083
|
-
}
|
|
1084
|
-
function buildStdioServers(config, wrapperPath, host) {
|
|
1085
|
-
return {
|
|
1086
|
-
anvil: { command: wrapperPath, args: [`http://${host}:${config.ports.anvil}/mcp`, "--transport", "http-only"] },
|
|
1087
|
-
vault: { command: wrapperPath, args: [`http://${host}:${config.ports.vault_mcp}/mcp`, "--transport", "http-only"] },
|
|
1088
|
-
forge: { command: wrapperPath, args: [`http://${host}:${config.ports.forge}/mcp`, "--transport", "http-only"] }
|
|
1089
|
-
};
|
|
1090
|
-
}
|
|
1091
1086
|
async function isClaudeCliAvailable() {
|
|
1092
1087
|
try {
|
|
1093
1088
|
const result = await execa2("claude", ["--version"], { reject: false });
|
|
@@ -1100,7 +1095,7 @@ async function registerWithClaudeCode(mcpServers) {
|
|
|
1100
1095
|
const registered = [];
|
|
1101
1096
|
const failed = [];
|
|
1102
1097
|
for (const [name, entry] of Object.entries(mcpServers)) {
|
|
1103
|
-
const baseUrl = entry.url.replace(/\/sse$/, "");
|
|
1098
|
+
const baseUrl = entry.url.replace(/\/(mcp|sse)$/, "");
|
|
1104
1099
|
await execa2("claude", ["mcp", "remove", "--scope", "user", name], { reject: false });
|
|
1105
1100
|
const result = await execa2(
|
|
1106
1101
|
"claude",
|
|
@@ -1176,26 +1171,17 @@ function printNextSteps(targets) {
|
|
|
1176
1171
|
}
|
|
1177
1172
|
async function runConnect(config, runtime, targets, host = "localhost") {
|
|
1178
1173
|
const httpServers = {
|
|
1179
|
-
anvil: { url: `http://${host}:${config.ports.anvil}/
|
|
1180
|
-
vault: { url: `http://${host}:${config.ports.vault_mcp}/
|
|
1181
|
-
forge: { url: `http://${host}:${config.ports.forge}/
|
|
1174
|
+
anvil: { url: `http://${host}:${config.ports.anvil}/mcp` },
|
|
1175
|
+
vault: { url: `http://${host}:${config.ports.vault_mcp}/mcp` },
|
|
1176
|
+
forge: { url: `http://${host}:${config.ports.forge}/mcp` }
|
|
1182
1177
|
};
|
|
1183
1178
|
const configured = [];
|
|
1184
1179
|
for (const target of targets) {
|
|
1185
1180
|
if (target === "claude-desktop") {
|
|
1186
1181
|
const desktopSpinner = ora(`Configuring ${chalk.cyan("claude-desktop")}...`).start();
|
|
1187
|
-
const wrapperPath = getMcpRemoteWrapperPath();
|
|
1188
|
-
if (!existsSync4(wrapperPath)) {
|
|
1189
|
-
desktopSpinner.fail("mcp-remote-wrapper not found");
|
|
1190
|
-
console.log(chalk.dim(`Expected at: ${wrapperPath}`));
|
|
1191
|
-
console.log(chalk.dim("Install it with: npx --yes mcp-remote --help"));
|
|
1192
|
-
console.log(chalk.dim("Then place the wrapper script at the path above."));
|
|
1193
|
-
continue;
|
|
1194
|
-
}
|
|
1195
1182
|
try {
|
|
1196
|
-
const stdioServers = buildStdioServers(config, wrapperPath, host);
|
|
1197
1183
|
const configPath = getConfigPath(target);
|
|
1198
|
-
mergeAndWriteConfig(configPath,
|
|
1184
|
+
mergeAndWriteConfig(configPath, httpServers);
|
|
1199
1185
|
desktopSpinner.succeed(`Configured ${chalk.cyan("claude-desktop")} \u2014 ${chalk.dim(configPath)}`);
|
|
1200
1186
|
configured.push(target);
|
|
1201
1187
|
} catch (error) {
|
|
@@ -1223,7 +1209,7 @@ async function runConnect(config, runtime, targets, host = "localhost") {
|
|
|
1223
1209
|
} else {
|
|
1224
1210
|
cliSpinner.warn("claude CLI not found on PATH \u2014 register manually:");
|
|
1225
1211
|
for (const [name, entry] of Object.entries(httpServers)) {
|
|
1226
|
-
const baseUrl = entry.url.replace(/\/sse$/, "");
|
|
1212
|
+
const baseUrl = entry.url.replace(/\/(mcp|sse)$/, "");
|
|
1227
1213
|
console.log(
|
|
1228
1214
|
chalk.dim(` claude mcp add --transport http --scope user ${name} ${baseUrl}`)
|
|
1229
1215
|
);
|