@solidxai/solidctl 0.1.26-beta.0 → 0.1.26-beta.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.
@@ -1,40 +1,89 @@
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
  exports.registerMcpCommand = registerMcpCommand;
4
7
  const child_process_1 = require("child_process");
8
+ const path_1 = __importDefault(require("path"));
9
+ const dotenv_1 = require("dotenv");
5
10
  const helper_1 = require("../helper");
11
+ function resolveDatabaseUrl() {
12
+ if (process.env.DATABASE_URL)
13
+ return process.env.DATABASE_URL;
14
+ const host = process.env.DEFAULT_DATABASE_HOST;
15
+ const port = process.env.DEFAULT_DATABASE_PORT;
16
+ const user = process.env.DEFAULT_DATABASE_USER;
17
+ const password = process.env.DEFAULT_DATABASE_PASSWORD;
18
+ const name = process.env.DEFAULT_DATABASE_NAME;
19
+ if (host && port && user && name) {
20
+ return `postgresql://${user}${password ? ':' + password : ''}@${host}:${port}/${name}`;
21
+ }
22
+ return undefined;
23
+ }
24
+ function buildBridgedEnv() {
25
+ const projectRoot = process.cwd();
26
+ (0, dotenv_1.config)({ path: path_1.default.join(projectRoot, 'solid-api', '.env') });
27
+ const databaseUrl = resolveDatabaseUrl();
28
+ return {
29
+ ...process.env,
30
+ SOLIDX_PROJECT_ROOT: projectRoot,
31
+ ...(databaseUrl ? { DATABASE_URL: databaseUrl } : {}),
32
+ ...(process.env.BASE_URL ? { BASE_URL: process.env.BASE_URL } : {}),
33
+ ...(process.env.APP_ENCRYPTION_KEY ? { APP_ENCRYPTION_KEY: process.env.APP_ENCRYPTION_KEY } : {}),
34
+ };
35
+ }
36
+ function printBridgeSummary(env) {
37
+ const bridgedKeys = ['DATABASE_URL', 'SOLIDX_PROJECT_ROOT', 'BASE_URL', 'APP_ENCRYPTION_KEY'];
38
+ const bridged = bridgedKeys.filter((k) => env[k]);
39
+ const missing = bridgedKeys.filter((k) => !env[k]);
40
+ console.log(`✔ Bridged env: ${bridged.join(', ') || 'none'}`);
41
+ if (missing.length)
42
+ console.warn(`⚠ Missing env: ${missing.join(', ')}`);
43
+ }
6
44
  function registerMcpCommand(program) {
7
- program
45
+ const mcp = program
8
46
  .command('mcp')
9
- .description('Used to run the SolidX MCP server')
10
- .helpOption(false)
11
- .allowUnknownOption(true)
12
- .allowExcessArguments(true)
13
- .action((_options, command) => {
47
+ .description('SolidX MCP Server (Streamable HTTP) for remote clients (Cursor, Codex, cloud desktops)');
48
+ mcp
49
+ .command('start')
50
+ .description('Start the MCP server using Streamable HTTP transport')
51
+ .option('-p, --port <port>', 'Port number', '9000')
52
+ .option('-H, --host <host>', 'Host to bind', '0.0.0.0')
53
+ .option('-l, --log-level <level>', 'Logging level', 'INFO')
54
+ .option('--mount-path <path>', 'Path under which to mount the MCP app', '/mcp')
55
+ .action((options) => {
14
56
  (0, helper_1.validateProjectRoot)();
15
- const projectRoot = process.cwd();
16
- const solidApiDir = `${projectRoot}/solid-api`;
17
- const rawArgs = command.parent ? command.parent.rawArgs : process.argv;
18
- const mcpIndex = rawArgs.lastIndexOf('mcp');
19
- const passthroughArgs = mcpIndex >= 0 ? rawArgs.slice(mcpIndex + 1) : [];
20
- const args = ['mcp', ...passthroughArgs];
21
- console.log('▶ Running solid mcp');
22
- const solidCommand = process.platform === 'win32' ? 'solid.cmd' : 'solid';
23
- const result = (0, child_process_1.spawnSync)(solidCommand, args, {
24
- cwd: solidApiDir,
57
+ const env = buildBridgedEnv();
58
+ if (!env.DATABASE_URL) {
59
+ console.error('❌ DATABASE_URL is required for MCP mode.\n' +
60
+ ' It is needed to validate API keys and write audit logs.\n' +
61
+ ' Set it in your solid-api/.env or environment.');
62
+ process.exit(1);
63
+ }
64
+ printBridgeSummary(env);
65
+ console.log(`▶ Starting SolidX MCP Server on ${options.host}:${options.port}`);
66
+ const agentCommand = process.platform === 'win32' ? 'solidx-agent.cmd' : 'solidx-agent';
67
+ const result = (0, child_process_1.spawnSync)(agentCommand, [
68
+ 'mcp-remote',
69
+ '--host', options.host,
70
+ '--port', options.port,
71
+ '--log-level', options.logLevel,
72
+ '--mount-path', options.mountPath,
73
+ ], {
74
+ cwd: env.SOLIDX_PROJECT_ROOT,
25
75
  stdio: 'inherit',
26
- env: process.env,
27
- shell: process.platform === 'win32' ? true : false,
76
+ env,
77
+ shell: process.platform === 'win32',
28
78
  });
29
79
  if (result.error) {
30
- console.error('❌ Failed to run solid mcp:', result.error.message);
80
+ console.error('❌ Failed to start MCP server:', result.error.message);
31
81
  process.exit(1);
32
82
  }
33
83
  if (result.status !== 0) {
34
- console.error('❌ solid mcp exited with code', result.status);
84
+ console.error('❌ MCP server exited with code', result.status);
35
85
  process.exit(result.status ?? 1);
36
86
  }
37
- console.log('✔ solid mcp completed');
38
87
  });
39
88
  }
40
89
  //# sourceMappingURL=mcp.command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.command.js","sourceRoot":"","sources":["../../src/commands/mcp.command.ts"],"names":[],"mappings":";;AAIA,gDAsCC;AAzCD,iDAA0C;AAC1C,sCAAgD;AAEhD,SAAgB,kBAAkB,CAAC,OAAgB;IACjD,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,mCAAmC,CAAC;SAChD,UAAU,CAAC,KAAK,CAAC;SACjB,kBAAkB,CAAC,IAAI,CAAC;SACxB,oBAAoB,CAAC,IAAI,CAAC;SAC1B,MAAM,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QAC5B,IAAA,4BAAmB,GAAE,CAAC;QACtB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,GAAG,WAAW,YAAY,CAAC;QAE/C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;QACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,eAAe,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,GAAG,eAAe,CAAC,CAAC;QAEzC,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;QAC1E,MAAM,MAAM,GAAG,IAAA,yBAAS,EAAC,YAAY,EAAE,IAAI,EAAE;YAC3C,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;SACjD,CAAC,CAAC;QAEL,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;QACnC,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"mcp.command.js","sourceRoot":"","sources":["../../src/commands/mcp.command.ts"],"names":[],"mappings":"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"}