@solidxai/solidctl 0.1.28-beta.3 → 0.1.28-beta.31

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/README.md CHANGED
@@ -135,6 +135,9 @@ Upgrades the core SolidX dependencies in both `solid-api` and `solid-ui` to the
135
135
  # Upgrade to the latest beta pre-release (default)
136
136
  npx @solidxai/solidctl upgrade
137
137
 
138
+ # Upgrade to the latest alpha pre-release
139
+ npx @solidxai/solidctl upgrade --alpha
140
+
138
141
  # Upgrade to the latest stable release
139
142
  npx @solidxai/solidctl upgrade --stable
140
143
 
@@ -1 +1,3 @@
1
1
  export declare function ensureAgentInstalled(): string;
2
+ export declare function ensureAgentInstalledLocal(): string;
3
+ export declare function ensureAgentUIInstalled(): string;
@@ -4,14 +4,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ensureAgentInstalled = ensureAgentInstalled;
7
+ exports.ensureAgentInstalledLocal = ensureAgentInstalledLocal;
8
+ exports.ensureAgentUIInstalled = ensureAgentUIInstalled;
7
9
  const child_process_1 = require("child_process");
8
10
  const fs_1 = __importDefault(require("fs"));
9
11
  const path_1 = __importDefault(require("path"));
10
12
  const os_1 = __importDefault(require("os"));
11
13
  const AGENT_PACKAGE = 'solidx-ai-agent';
14
+ const AGENT_UI_PACKAGE = '@solidxai/agent-ui';
12
15
  const VENV_DIR = path_1.default.join(os_1.default.homedir(), '.solidx', 'venv');
13
16
  const VENV_BIN = path_1.default.join(VENV_DIR, process.platform === 'win32' ? 'Scripts' : 'bin');
14
17
  const VENV_AGENT_BIN = path_1.default.join(VENV_BIN, process.platform === 'win32' ? 'solidx-agent.exe' : 'solidx-agent');
18
+ const AGENT_UI_DIR = path_1.default.join(os_1.default.homedir(), '.solidx', 'agent-ui');
19
+ const AGENT_UI_PKG_DIR = path_1.default.join(AGENT_UI_DIR, 'node_modules', '@solidxai', 'agent-ui');
20
+ const npmCommand = process.platform === 'win32' ? 'npm.cmd' : 'npm';
15
21
  function commandExists(cmd) {
16
22
  const result = (0, child_process_1.spawnSync)(process.platform === 'win32' ? 'where' : 'which', [cmd], { stdio: 'pipe' });
17
23
  return result.status === 0;
@@ -40,7 +46,11 @@ function findPython() {
40
46
  return null;
41
47
  }
42
48
  function findUv() {
43
- if (commandExists('uv')) {
49
+ if (!commandExists('uv')) {
50
+ return null;
51
+ }
52
+ const result = (0, child_process_1.spawnSync)('uv', ['--version'], { stdio: 'pipe' });
53
+ if (result.status === 0) {
44
54
  return 'uv';
45
55
  }
46
56
  return null;
@@ -116,4 +126,190 @@ function ensureAgentInstalled() {
116
126
  console.log(`✔ ${AGENT_PACKAGE} installed successfully`);
117
127
  return VENV_AGENT_BIN;
118
128
  }
129
+ function resolveLocalAgentSource() {
130
+ const envPath = process.env.SOLIDX_AI_AGENT_PATH;
131
+ if (!envPath) {
132
+ console.error('❌ --local requires SOLIDX_AI_AGENT_PATH to be set.\n' +
133
+ ' Example: SOLIDX_AI_AGENT_PATH=/path/to/solidx-ai-agent solidctl agent start --local');
134
+ process.exit(1);
135
+ }
136
+ const resolved = path_1.default.resolve(envPath);
137
+ if (!fs_1.default.existsSync(path_1.default.join(resolved, 'pyproject.toml'))) {
138
+ console.error(`❌ SOLIDX_AI_AGENT_PATH points to an invalid directory: ${resolved}\n` +
139
+ ' Expected pyproject.toml to exist in that directory.');
140
+ process.exit(1);
141
+ }
142
+ return resolved;
143
+ }
144
+ function installLocalAgent(agentSourceDir) {
145
+ const localVenvDir = path_1.default.join(agentSourceDir, '.venv');
146
+ const localVenvBin = path_1.default.join(localVenvDir, process.platform === 'win32' ? 'Scripts' : 'bin');
147
+ const pythonBin = path_1.default.join(localVenvBin, process.platform === 'win32' ? 'python.exe' : 'python');
148
+ console.log(`📦 Installing local ${AGENT_PACKAGE} from ${agentSourceDir} into ${localVenvDir}...`);
149
+ const uvCmd = findUv();
150
+ if (uvCmd) {
151
+ const result = (0, child_process_1.spawnSync)(uvCmd, ['pip', 'install', '-e', `${agentSourceDir}[full]`, '--python', pythonBin], {
152
+ stdio: 'inherit',
153
+ });
154
+ if (result.status === 0)
155
+ return true;
156
+ console.warn('⚠ uv pip install -e failed, falling back to python -m pip');
157
+ }
158
+ const result = (0, child_process_1.spawnSync)(pythonBin, ['-m', 'pip', 'install', '-e', `${agentSourceDir}[full]`], {
159
+ stdio: 'inherit',
160
+ shell: process.platform === 'win32',
161
+ });
162
+ return result.status === 0;
163
+ }
164
+ function ensureAgentInstalledLocal() {
165
+ const agentSourceDir = resolveLocalAgentSource();
166
+ const localVenvDir = path_1.default.join(agentSourceDir, '.venv');
167
+ const localVenvBin = path_1.default.join(localVenvDir, process.platform === 'win32' ? 'Scripts' : 'bin');
168
+ const localAgentBin = path_1.default.join(localVenvBin, process.platform === 'win32' ? 'solidx-agent.exe' : 'solidx-agent');
169
+ if (fs_1.default.existsSync(localAgentBin)) {
170
+ console.log(`📦 Using local agent from ${localAgentBin}`);
171
+ return localAgentBin;
172
+ }
173
+ console.log(`📦 Using local agent source: ${agentSourceDir}`);
174
+ const pythonCmd = findPython();
175
+ if (!pythonCmd) {
176
+ console.error('❌ Python 3.11+ is required but not found.\n' +
177
+ ' Install Python 3.11+ and try again.');
178
+ process.exit(1);
179
+ }
180
+ const uvCmd = findUv();
181
+ const localPythonBin = path_1.default.join(localVenvBin, process.platform === 'win32' ? 'python.exe' : 'python');
182
+ let venvNeedsCreation = !fs_1.default.existsSync(path_1.default.join(localVenvDir, 'pyvenv.cfg'));
183
+ if (!venvNeedsCreation && fs_1.default.existsSync(localPythonBin)) {
184
+ const pipCheck = (0, child_process_1.spawnSync)(localPythonBin, ['-m', 'pip', '--version'], { stdio: 'pipe' });
185
+ if (pipCheck.status !== 0) {
186
+ console.warn(`⚠ ${localVenvDir} exists but pip is missing; recreating venv...`);
187
+ venvNeedsCreation = true;
188
+ }
189
+ }
190
+ if (venvNeedsCreation) {
191
+ if (fs_1.default.existsSync(localVenvDir)) {
192
+ fs_1.default.rmSync(localVenvDir, { recursive: true, force: true });
193
+ }
194
+ console.log(`📦 Creating local virtual environment at ${localVenvDir}`);
195
+ if (uvCmd) {
196
+ const uvResult = (0, child_process_1.spawnSync)(uvCmd, ['venv', localVenvDir, '--python', pythonCmd], {
197
+ stdio: 'inherit',
198
+ });
199
+ if (uvResult.status !== 0) {
200
+ console.warn('⚠ uv venv failed, falling back to python -m venv');
201
+ }
202
+ }
203
+ if (!fs_1.default.existsSync(path_1.default.join(localVenvDir, 'pyvenv.cfg'))) {
204
+ const venvResult = (0, child_process_1.spawnSync)(pythonCmd, ['-m', 'venv', '--upgrade-deps', localVenvDir], {
205
+ stdio: 'inherit',
206
+ });
207
+ if (venvResult.status !== 0) {
208
+ console.error('❌ Failed to create virtual environment at ' + localVenvDir + '\n' +
209
+ ' Try creating it manually:\n' +
210
+ ` ${pythonCmd} -m venv --upgrade-deps ${localVenvDir}`);
211
+ process.exit(1);
212
+ }
213
+ }
214
+ }
215
+ if (!installLocalAgent(agentSourceDir)) {
216
+ console.error('❌ Failed to install local ' + AGENT_PACKAGE + '\n' +
217
+ ' Try installing manually:\n' +
218
+ ` ${localPythonBin} -m pip install -e ${agentSourceDir}[full]`);
219
+ process.exit(1);
220
+ }
221
+ if (!fs_1.default.existsSync(localAgentBin)) {
222
+ console.error('❌ Package installed but solidx-agent binary not found at ' + localAgentBin + '\n' +
223
+ ' The package may not have installed correctly. Try:\n' +
224
+ ` ${localPythonBin} -m pip install --force-reinstall -e ${agentSourceDir}[full]`);
225
+ process.exit(1);
226
+ }
227
+ console.log(`✔ Local ${AGENT_PACKAGE} installed successfully`);
228
+ return localAgentBin;
229
+ }
230
+ const MIN_AGENT_UI_VERSION = '0.1.2';
231
+ function parseVersion(version) {
232
+ const match = version.replace(/^v/, '').match(/^(\d+)\.(\d+)\.(\d+)/);
233
+ if (!match)
234
+ return [0, 0, 0];
235
+ return [+match[1], +match[2], +match[3]];
236
+ }
237
+ function isVersionSatisfied(installedVersion, minVersion) {
238
+ const installed = parseVersion(installedVersion);
239
+ const min = parseVersion(minVersion);
240
+ for (let i = 0; i < 3; i++) {
241
+ if (installed[i] > min[i])
242
+ return true;
243
+ if (installed[i] < min[i])
244
+ return false;
245
+ }
246
+ return true;
247
+ }
248
+ function ensureAgentUIInstalled() {
249
+ const markerFile = path_1.default.join(AGENT_UI_DIR, 'node_modules', '.package-lock.json');
250
+ const packageJsonPath = path_1.default.join(AGENT_UI_DIR, 'package.json');
251
+ const installedAgentUiPkgJson = path_1.default.join(AGENT_UI_PKG_DIR, 'package.json');
252
+ const runnerPackageJson = {
253
+ name: 'solidx-agent-ui-runner',
254
+ private: true,
255
+ scripts: {
256
+ dev: 'vite --port 8768 --host --config ./node_modules/@solidxai/agent-ui/vite.config.ts',
257
+ },
258
+ };
259
+ let needsInstall = false;
260
+ if (!fs_1.default.existsSync(packageJsonPath)) {
261
+ needsInstall = true;
262
+ }
263
+ else {
264
+ try {
265
+ const existing = JSON.parse(fs_1.default.readFileSync(packageJsonPath, 'utf-8'));
266
+ if (JSON.stringify(existing.scripts) !== JSON.stringify(runnerPackageJson.scripts)) {
267
+ needsInstall = true;
268
+ }
269
+ }
270
+ catch {
271
+ needsInstall = true;
272
+ }
273
+ }
274
+ if (!needsInstall && fs_1.default.existsSync(installedAgentUiPkgJson)) {
275
+ try {
276
+ const installed = JSON.parse(fs_1.default.readFileSync(installedAgentUiPkgJson, 'utf-8'));
277
+ if (!isVersionSatisfied(installed.version || '0.0.0', MIN_AGENT_UI_VERSION)) {
278
+ console.log(`📦 ${AGENT_UI_PACKAGE} v${installed.version} is outdated (need >= ${MIN_AGENT_UI_VERSION}), updating...`);
279
+ needsInstall = true;
280
+ }
281
+ }
282
+ catch {
283
+ needsInstall = true;
284
+ }
285
+ }
286
+ if (!needsInstall && fs_1.default.existsSync(markerFile)) {
287
+ return AGENT_UI_DIR;
288
+ }
289
+ console.log(`📦 Installing ${AGENT_UI_PACKAGE}...`);
290
+ fs_1.default.mkdirSync(AGENT_UI_DIR, { recursive: true });
291
+ fs_1.default.writeFileSync(packageJsonPath, JSON.stringify(runnerPackageJson, null, 2));
292
+ const staleRunnerConfig = path_1.default.join(AGENT_UI_DIR, 'vite.config.ts');
293
+ if (fs_1.default.existsSync(staleRunnerConfig)) {
294
+ fs_1.default.unlinkSync(staleRunnerConfig);
295
+ }
296
+ const result = (0, child_process_1.spawnSync)(npmCommand, ['install', `${AGENT_UI_PACKAGE}@latest`], {
297
+ cwd: AGENT_UI_DIR,
298
+ stdio: 'inherit',
299
+ });
300
+ if (result.status !== 0) {
301
+ console.error(`❌ Failed to install ${AGENT_UI_PACKAGE}\n` +
302
+ ' Try installing manually:\n' +
303
+ ` cd ${AGENT_UI_DIR} && npm install ${AGENT_UI_PACKAGE}@latest`);
304
+ process.exit(1);
305
+ }
306
+ if (!fs_1.default.existsSync(AGENT_UI_PKG_DIR)) {
307
+ console.error(`❌ Package installed but not found at ${AGENT_UI_PKG_DIR}\n` +
308
+ ' Try reinstalling:\n' +
309
+ ` cd ${AGENT_UI_DIR} && npm install ${AGENT_UI_PACKAGE}@latest`);
310
+ process.exit(1);
311
+ }
312
+ console.log(`✔ ${AGENT_UI_PACKAGE} installed successfully`);
313
+ return AGENT_UI_DIR;
314
+ }
119
315
  //# sourceMappingURL=agent-helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-helper.js","sourceRoot":"","sources":["../../src/commands/agent-helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-helper.js","sourceRoot":"","sources":["../../src/commands/agent-helper.ts"],"names":[],"mappings":"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"}