@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.
Files changed (2) hide show
  1. package/dist/index.js +11 -25
  2. 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}/sse` },
1180
- vault: { url: `http://${host}:${config.ports.vault_mcp}/sse` },
1181
- forge: { url: `http://${host}:${config.ports.forge}/sse` }
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, stdioServers);
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
  );
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arkhera30/cli",
3
- "version": "0.3.12",
3
+ "version": "0.3.15",
4
4
  "description": "CLI for managing the Horus AI development stack",
5
5
  "type": "module",
6
6
  "bin": {