@solidnumber/cli 1.0.0

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 (78) hide show
  1. package/README.md +150 -0
  2. package/dist/commands/auth.d.ts +6 -0
  3. package/dist/commands/auth.d.ts.map +1 -0
  4. package/dist/commands/auth.js +144 -0
  5. package/dist/commands/auth.js.map +1 -0
  6. package/dist/commands/clone.d.ts +19 -0
  7. package/dist/commands/clone.d.ts.map +1 -0
  8. package/dist/commands/clone.js +205 -0
  9. package/dist/commands/clone.js.map +1 -0
  10. package/dist/commands/dev.d.ts +6 -0
  11. package/dist/commands/dev.d.ts.map +1 -0
  12. package/dist/commands/dev.js +218 -0
  13. package/dist/commands/dev.js.map +1 -0
  14. package/dist/commands/docs.d.ts +17 -0
  15. package/dist/commands/docs.d.ts.map +1 -0
  16. package/dist/commands/docs.js +864 -0
  17. package/dist/commands/docs.js.map +1 -0
  18. package/dist/commands/droplet.d.ts +10 -0
  19. package/dist/commands/droplet.d.ts.map +1 -0
  20. package/dist/commands/droplet.js +292 -0
  21. package/dist/commands/droplet.js.map +1 -0
  22. package/dist/commands/health.d.ts +6 -0
  23. package/dist/commands/health.d.ts.map +1 -0
  24. package/dist/commands/health.js +129 -0
  25. package/dist/commands/health.js.map +1 -0
  26. package/dist/commands/integrations.d.ts +6 -0
  27. package/dist/commands/integrations.d.ts.map +1 -0
  28. package/dist/commands/integrations.js +380 -0
  29. package/dist/commands/integrations.js.map +1 -0
  30. package/dist/commands/kb.d.ts +9 -0
  31. package/dist/commands/kb.d.ts.map +1 -0
  32. package/dist/commands/kb.js +151 -0
  33. package/dist/commands/kb.js.map +1 -0
  34. package/dist/commands/pages.d.ts +8 -0
  35. package/dist/commands/pages.d.ts.map +1 -0
  36. package/dist/commands/pages.js +103 -0
  37. package/dist/commands/pages.js.map +1 -0
  38. package/dist/commands/pull.d.ts +16 -0
  39. package/dist/commands/pull.d.ts.map +1 -0
  40. package/dist/commands/pull.js +336 -0
  41. package/dist/commands/pull.js.map +1 -0
  42. package/dist/commands/push.d.ts +14 -0
  43. package/dist/commands/push.d.ts.map +1 -0
  44. package/dist/commands/push.js +370 -0
  45. package/dist/commands/push.js.map +1 -0
  46. package/dist/commands/services.d.ts +8 -0
  47. package/dist/commands/services.d.ts.map +1 -0
  48. package/dist/commands/services.js +66 -0
  49. package/dist/commands/services.js.map +1 -0
  50. package/dist/commands/status.d.ts +9 -0
  51. package/dist/commands/status.d.ts.map +1 -0
  52. package/dist/commands/status.js +89 -0
  53. package/dist/commands/status.js.map +1 -0
  54. package/dist/commands/train.d.ts +16 -0
  55. package/dist/commands/train.d.ts.map +1 -0
  56. package/dist/commands/train.js +338 -0
  57. package/dist/commands/train.js.map +1 -0
  58. package/dist/commands/vibe.d.ts +6 -0
  59. package/dist/commands/vibe.d.ts.map +1 -0
  60. package/dist/commands/vibe.js +176 -0
  61. package/dist/commands/vibe.js.map +1 -0
  62. package/dist/index.d.ts +19 -0
  63. package/dist/index.d.ts.map +1 -0
  64. package/dist/index.js +119 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/lib/api-client.d.ts +235 -0
  67. package/dist/lib/api-client.d.ts.map +1 -0
  68. package/dist/lib/api-client.js +287 -0
  69. package/dist/lib/api-client.js.map +1 -0
  70. package/dist/lib/config.d.ts +43 -0
  71. package/dist/lib/config.d.ts.map +1 -0
  72. package/dist/lib/config.js +189 -0
  73. package/dist/lib/config.js.map +1 -0
  74. package/dist/lib/ui.d.ts +49 -0
  75. package/dist/lib/ui.d.ts.map +1 -0
  76. package/dist/lib/ui.js +182 -0
  77. package/dist/lib/ui.js.map +1 -0
  78. package/package.json +60 -0
@@ -0,0 +1,338 @@
1
+ "use strict";
2
+ /**
3
+ * Train command for Solid CLI
4
+ *
5
+ * Train your company's AI agents by:
6
+ * - Adding KB entries from local files
7
+ * - Bulk importing KB from a directory
8
+ * - Chatting with agents to refine their behavior
9
+ * - Setting agent personality + context
10
+ *
11
+ * The developer trains via CLI (structured data, bulk import).
12
+ * The business owner trains via Vibe (natural language).
13
+ * Both feed the same KB → same agents → compound intelligence.
14
+ */
15
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ var desc = Object.getOwnPropertyDescriptor(m, k);
18
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
19
+ desc = { enumerable: true, get: function() { return m[k]; } };
20
+ }
21
+ Object.defineProperty(o, k2, desc);
22
+ }) : (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ o[k2] = m[k];
25
+ }));
26
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
27
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
28
+ }) : function(o, v) {
29
+ o["default"] = v;
30
+ });
31
+ var __importStar = (this && this.__importStar) || (function () {
32
+ var ownKeys = function(o) {
33
+ ownKeys = Object.getOwnPropertyNames || function (o) {
34
+ var ar = [];
35
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
36
+ return ar;
37
+ };
38
+ return ownKeys(o);
39
+ };
40
+ return function (mod) {
41
+ if (mod && mod.__esModule) return mod;
42
+ var result = {};
43
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
44
+ __setModuleDefault(result, mod);
45
+ return result;
46
+ };
47
+ })();
48
+ var __importDefault = (this && this.__importDefault) || function (mod) {
49
+ return (mod && mod.__esModule) ? mod : { "default": mod };
50
+ };
51
+ Object.defineProperty(exports, "__esModule", { value: true });
52
+ exports.trainCommand = void 0;
53
+ const commander_1 = require("commander");
54
+ const ora_1 = __importDefault(require("ora"));
55
+ const chalk_1 = __importDefault(require("chalk"));
56
+ const fs = __importStar(require("fs"));
57
+ const path = __importStar(require("path"));
58
+ const readline = __importStar(require("readline"));
59
+ const config_1 = require("../lib/config");
60
+ const api_client_1 = require("../lib/api-client");
61
+ const ui_1 = require("../lib/ui");
62
+ function parseKbMarkdown(content) {
63
+ const frontmatterMatch = content.match(/^---\n([\s\S]*?)\n---\n([\s\S]*)$/);
64
+ if (!frontmatterMatch) {
65
+ return { title: 'Untitled', category: 'general', content: content.trim() };
66
+ }
67
+ const frontmatter = frontmatterMatch[1];
68
+ const body = frontmatterMatch[2].trim();
69
+ let title = 'Untitled';
70
+ let category = 'general';
71
+ for (const line of frontmatter.split('\n')) {
72
+ const [key, ...valueParts] = line.split(':');
73
+ const value = valueParts.join(':').trim();
74
+ if (key.trim() === 'title')
75
+ title = value.replace(/^["']|["']$/g, '');
76
+ if (key.trim() === 'category')
77
+ category = value;
78
+ }
79
+ return { title, category, content: body };
80
+ }
81
+ exports.trainCommand = new commander_1.Command('train')
82
+ .description('Train your AI agents with knowledge and context');
83
+ // ── Bulk import KB from directory ────────────────────────────────────
84
+ exports.trainCommand
85
+ .command('import <directory>')
86
+ .description('Bulk import .md files as KB entries')
87
+ .option('--category <category>', 'Override category for all entries')
88
+ .option('--dry-run', 'Show what would be imported')
89
+ .action(async (directory, options) => {
90
+ if (!config_1.config.isLoggedIn()) {
91
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
92
+ process.exit(1);
93
+ }
94
+ const dir = path.resolve(directory);
95
+ if (!fs.existsSync(dir)) {
96
+ console.error(chalk_1.default.red(`Directory not found: ${dir}`));
97
+ process.exit(1);
98
+ }
99
+ const files = fs.readdirSync(dir).filter((f) => f.endsWith('.md'));
100
+ if (files.length === 0) {
101
+ console.log(chalk_1.default.yellow('No .md files found in directory.'));
102
+ return;
103
+ }
104
+ console.log(chalk_1.default.bold(`\n Found ${files.length} markdown files:\n`));
105
+ const entries = [];
106
+ for (const file of files) {
107
+ const raw = fs.readFileSync(path.join(dir, file), 'utf-8');
108
+ const parsed = parseKbMarkdown(raw);
109
+ if (options.category)
110
+ parsed.category = options.category;
111
+ entries.push({ file, ...parsed });
112
+ const preview = parsed.content.substring(0, 50).replace(/\n/g, ' ');
113
+ console.log(` ${chalk_1.default.green('+')} ${parsed.title} ${chalk_1.default.dim(`[${parsed.category}]`)}`);
114
+ console.log(chalk_1.default.dim(` ${preview}...`));
115
+ }
116
+ if (options.dryRun) {
117
+ console.log(chalk_1.default.dim('\n Dry run — no changes made.\n'));
118
+ return;
119
+ }
120
+ console.log('');
121
+ const spinner = (0, ora_1.default)(`Importing ${entries.length} KB entries...`).start();
122
+ let created = 0;
123
+ let errors = 0;
124
+ for (const entry of entries) {
125
+ try {
126
+ await api_client_1.apiClient.kbCreate({
127
+ title: entry.title,
128
+ content: entry.content,
129
+ category: entry.category,
130
+ });
131
+ created++;
132
+ spinner.text = `Importing KB entries... ${created}/${entries.length}`;
133
+ }
134
+ catch (error) {
135
+ errors++;
136
+ const apiError = (0, api_client_1.handleApiError)(error);
137
+ spinner.stop();
138
+ console.error(chalk_1.default.red(` Failed: ${entry.file} — ${apiError.message}`));
139
+ spinner.start();
140
+ }
141
+ }
142
+ if (errors === 0) {
143
+ spinner.succeed(chalk_1.default.green(`${created} KB entries imported`));
144
+ }
145
+ else {
146
+ spinner.warn(chalk_1.default.yellow(`${created} imported, ${errors} failed`));
147
+ }
148
+ console.log(chalk_1.default.dim(' Your AI agents now have this knowledge.\n'));
149
+ });
150
+ // ── Chat with an agent (interactive training) ───────────────────────
151
+ exports.trainCommand
152
+ .command('chat [agent]')
153
+ .description('Chat with an AI agent to test and refine its knowledge')
154
+ .action(async (agentName = 'sarah') => {
155
+ if (!config_1.config.isLoggedIn()) {
156
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
157
+ process.exit(1);
158
+ }
159
+ console.log('');
160
+ console.log(chalk_1.default.bold(` Chatting with ${chalk_1.default.cyan(agentName)} (your AI agent)`));
161
+ console.log(chalk_1.default.dim(' Test how your agent responds to customer questions.'));
162
+ console.log(chalk_1.default.dim(' Type "quit" to exit. Type "/kb" to see related KB entries.\n'));
163
+ const rl = readline.createInterface({
164
+ input: process.stdin,
165
+ output: process.stdout,
166
+ prompt: chalk_1.default.cyan(' you > '),
167
+ });
168
+ rl.prompt();
169
+ rl.on('line', async (line) => {
170
+ const input = line.trim();
171
+ if (!input) {
172
+ rl.prompt();
173
+ return;
174
+ }
175
+ if (input.toLowerCase() === 'quit' || input.toLowerCase() === 'exit') {
176
+ console.log(chalk_1.default.dim('\n Session ended.\n'));
177
+ rl.close();
178
+ return;
179
+ }
180
+ if (input === '/kb') {
181
+ const spinner = (0, ora_1.default)('Searching KB...').start();
182
+ try {
183
+ const kbRes = await api_client_1.apiClient.kbSearch('*', 10);
184
+ const results = kbRes.data.results || [];
185
+ spinner.stop();
186
+ console.log(chalk_1.default.bold(`\n ${results.length} KB entries:`));
187
+ for (const entry of results) {
188
+ console.log(` ${chalk_1.default.dim(`#${entry.id}`)} ${entry.title} ${chalk_1.default.dim(`[${entry.category}]`)}`);
189
+ }
190
+ console.log('');
191
+ }
192
+ catch {
193
+ spinner.fail('Failed to load KB');
194
+ }
195
+ rl.prompt();
196
+ return;
197
+ }
198
+ const spinner = (0, ora_1.default)(chalk_1.default.dim(` ${agentName} is thinking...`)).start();
199
+ try {
200
+ const response = await api_client_1.apiClient.agentChat(input, agentName);
201
+ const reply = response.data.response || response.data.message || 'No response';
202
+ spinner.stop();
203
+ console.log(` ${chalk_1.default.green(agentName)} > ${reply}`);
204
+ console.log('');
205
+ }
206
+ catch (error) {
207
+ spinner.stop();
208
+ const apiError = (0, api_client_1.handleApiError)(error);
209
+ console.error(chalk_1.default.red(` Error: ${apiError.message}`));
210
+ console.log('');
211
+ }
212
+ rl.prompt();
213
+ });
214
+ rl.on('close', () => {
215
+ process.exit(0);
216
+ });
217
+ });
218
+ // ── Quick KB add from stdin or argument ─────────────────────────────
219
+ exports.trainCommand
220
+ .command('add')
221
+ .description('Quick-add a KB entry')
222
+ .requiredOption('-t, --title <title>', 'Entry title')
223
+ .option('-c, --category <category>', 'Category', 'general')
224
+ .option('--content <content>', 'Content (or pipe from stdin)')
225
+ .option('-f, --file <file>', 'Read content from file')
226
+ .action(async (options) => {
227
+ if (!config_1.config.isLoggedIn()) {
228
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
229
+ process.exit(1);
230
+ }
231
+ let content = options.content || '';
232
+ // Read from file if specified
233
+ if (options.file) {
234
+ const filePath = path.resolve(options.file);
235
+ if (!fs.existsSync(filePath)) {
236
+ console.error(chalk_1.default.red(`File not found: ${filePath}`));
237
+ process.exit(1);
238
+ }
239
+ content = fs.readFileSync(filePath, 'utf-8');
240
+ }
241
+ // Read from stdin if no content yet
242
+ if (!content && !process.stdin.isTTY) {
243
+ content = await new Promise((resolve) => {
244
+ let data = '';
245
+ process.stdin.setEncoding('utf-8');
246
+ process.stdin.on('data', (chunk) => (data += chunk));
247
+ process.stdin.on('end', () => resolve(data));
248
+ });
249
+ }
250
+ if (!content) {
251
+ console.error(chalk_1.default.red('No content provided. Use --content, --file, or pipe from stdin.'));
252
+ process.exit(1);
253
+ }
254
+ const spinner = (0, ora_1.default)('Adding KB entry...').start();
255
+ try {
256
+ const result = await api_client_1.apiClient.kbCreate({
257
+ title: options.title,
258
+ content,
259
+ category: options.category,
260
+ });
261
+ const entry = result.data;
262
+ spinner.succeed(chalk_1.default.green(`KB entry created: "${options.title}" [${options.category}]`));
263
+ if (entry.id) {
264
+ console.log(chalk_1.default.dim(` ID: ${entry.id}`));
265
+ }
266
+ console.log(chalk_1.default.dim(' Your AI agents now have this knowledge.\n'));
267
+ }
268
+ catch (error) {
269
+ spinner.fail(chalk_1.default.red('Failed to add KB entry'));
270
+ const apiError = (0, api_client_1.handleApiError)(error);
271
+ console.error(chalk_1.default.red(` ${apiError.message}`));
272
+ }
273
+ });
274
+ // ── Show training status ────────────────────────────────────────────
275
+ exports.trainCommand
276
+ .command('status')
277
+ .description('Show your AI training status — KB coverage and gaps')
278
+ .action(async () => {
279
+ if (!config_1.config.isLoggedIn()) {
280
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
281
+ process.exit(1);
282
+ }
283
+ const spinner = (0, ora_1.default)('Loading training status...').start();
284
+ try {
285
+ const kbRes = await api_client_1.apiClient.kbSearch('*', 100);
286
+ const entries = kbRes.data.results || [];
287
+ spinner.stop();
288
+ // Count by category
289
+ const categories = {};
290
+ for (const entry of entries) {
291
+ const cat = entry.category || 'general';
292
+ categories[cat] = (categories[cat] || 0) + 1;
293
+ }
294
+ // Calculate coverage score
295
+ const recommended = ['services', 'faq', 'policies', 'about', 'hours', 'products'];
296
+ const covered = recommended.filter((r) => categories[r]);
297
+ const missing = recommended.filter((r) => !categories[r]);
298
+ const score = Math.round((covered.length / recommended.length) * 100);
299
+ // Score color
300
+ const scoreColor = score >= 80 ? '#22c55e' : score >= 50 ? '#eab308' : '#ef4444';
301
+ const scoreBar = chalk_1.default.hex(scoreColor)('█'.repeat(Math.round(score / 5))) +
302
+ chalk_1.default.dim('░'.repeat(20 - Math.round(score / 5)));
303
+ console.log('');
304
+ console.log(ui_1.ui.infoBox('AI Training Status', [
305
+ `${chalk_1.default.bold('KB Entries:')} ${chalk_1.default.hex('#818cf8')(entries.length.toString())}`,
306
+ `${chalk_1.default.bold('Coverage:')} ${scoreBar} ${chalk_1.default.hex(scoreColor)(`${score}%`)}`,
307
+ '',
308
+ ...Object.entries(categories)
309
+ .sort((a, b) => b[1] - a[1])
310
+ .map(([cat, count]) => {
311
+ const bar = chalk_1.default.hex('#818cf8')('■'.repeat(Math.min(count, 15)));
312
+ return ` ${cat.padEnd(14)} ${bar} ${chalk_1.default.dim(count.toString())}`;
313
+ }),
314
+ ]));
315
+ if (missing.length > 0) {
316
+ console.log('');
317
+ console.log(ui_1.ui.header('Suggested Categories'));
318
+ for (const cat of missing) {
319
+ console.log(` ${chalk_1.default.yellow('+')} ${cat} ${chalk_1.default.dim('— add entries to improve AI accuracy')}`);
320
+ }
321
+ }
322
+ console.log('');
323
+ console.log(ui_1.ui.divider('Next Steps'));
324
+ console.log('');
325
+ console.log(ui_1.ui.commandHelp([
326
+ { cmd: 'solid train add -t "FAQ" -c faq -f faq.md', desc: 'Add from file' },
327
+ { cmd: 'solid train import ./kb/', desc: 'Bulk import directory' },
328
+ { cmd: 'solid train chat sarah', desc: 'Test agent knowledge' },
329
+ ]));
330
+ console.log('');
331
+ }
332
+ catch (error) {
333
+ spinner.fail(chalk_1.default.red('Failed to load training status'));
334
+ const apiError = (0, api_client_1.handleApiError)(error);
335
+ console.error(chalk_1.default.red(` ${apiError.message}`));
336
+ }
337
+ });
338
+ //# sourceMappingURL=train.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"train.js","sourceRoot":"","sources":["../../src/commands/train.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Vibe natural language commands for Solid CLI
3
+ */
4
+ import { Command } from 'commander';
5
+ export declare const vibeCommand: Command;
6
+ //# sourceMappingURL=vibe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vibe.d.ts","sourceRoot":"","sources":["../../src/commands/vibe.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,WAAW,SAsGpB,CAAC"}
@@ -0,0 +1,176 @@
1
+ "use strict";
2
+ /**
3
+ * Vibe natural language commands for Solid CLI
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.vibeCommand = void 0;
10
+ const commander_1 = require("commander");
11
+ const inquirer_1 = __importDefault(require("inquirer"));
12
+ const ora_1 = __importDefault(require("ora"));
13
+ const chalk_1 = __importDefault(require("chalk"));
14
+ const config_1 = require("../lib/config");
15
+ const api_client_1 = require("../lib/api-client");
16
+ exports.vibeCommand = new commander_1.Command('vibe')
17
+ .description('Natural language integration commands')
18
+ .argument('[prompt...]', 'Natural language prompt')
19
+ .option('--preview', 'Preview without applying')
20
+ .option('--json', 'Output as JSON')
21
+ .action(async (promptWords, options) => {
22
+ if (!config_1.config.isLoggedIn()) {
23
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
24
+ process.exit(1);
25
+ }
26
+ let prompt = promptWords.join(' ');
27
+ // If no prompt provided, start interactive mode
28
+ if (!prompt) {
29
+ const { userPrompt } = await inquirer_1.default.prompt([{
30
+ type: 'input',
31
+ name: 'userPrompt',
32
+ message: chalk_1.default.cyan('What would you like to do?'),
33
+ validate: (input) => input.length > 0 || 'Please enter a prompt',
34
+ }]);
35
+ prompt = userPrompt;
36
+ }
37
+ const spinner = (0, ora_1.default)('Analyzing...').start();
38
+ try {
39
+ const response = await api_client_1.apiClient.vibeAnalyze(prompt);
40
+ if (options.json) {
41
+ spinner.stop();
42
+ console.log(JSON.stringify(response.data, null, 2));
43
+ return;
44
+ }
45
+ // Check if blocked
46
+ if (response.data.safety_check.blocked) {
47
+ spinner.fail(chalk_1.default.red('Request blocked'));
48
+ console.log(chalk_1.default.red(` Reason: ${response.data.safety_check.message || 'Safety check failed'}`));
49
+ return;
50
+ }
51
+ // Show analysis
52
+ spinner.succeed('Analysis complete');
53
+ console.log('');
54
+ console.log(chalk_1.default.bold('Intent:'));
55
+ console.log(chalk_1.default.dim(` Action: ${response.data.intent.action || 'unknown'}`));
56
+ console.log(chalk_1.default.dim(` Entity: ${response.data.intent.entity_type || 'unknown'}`));
57
+ if (Object.keys(response.data.parsed).length > 0) {
58
+ console.log('');
59
+ console.log(chalk_1.default.bold('Parsed:'));
60
+ for (const [key, value] of Object.entries(response.data.parsed)) {
61
+ console.log(chalk_1.default.dim(` ${key}: ${JSON.stringify(value)}`));
62
+ }
63
+ }
64
+ // If preview mode or no preview_id, stop here
65
+ if (options.preview || !response.data.preview_id) {
66
+ if (options.preview) {
67
+ console.log('');
68
+ console.log(chalk_1.default.dim('Preview mode - no changes applied'));
69
+ }
70
+ return;
71
+ }
72
+ // Ask for confirmation
73
+ console.log('');
74
+ const { confirm } = await inquirer_1.default.prompt([{
75
+ type: 'confirm',
76
+ name: 'confirm',
77
+ message: 'Apply these changes?',
78
+ default: false,
79
+ }]);
80
+ if (!confirm) {
81
+ console.log(chalk_1.default.dim('Changes not applied'));
82
+ return;
83
+ }
84
+ // Apply changes
85
+ const applySpinner = (0, ora_1.default)('Applying changes...').start();
86
+ try {
87
+ const applyResponse = await api_client_1.apiClient.vibeApply(response.data.preview_id);
88
+ if (applyResponse.data.success) {
89
+ applySpinner.succeed(chalk_1.default.green('Changes applied'));
90
+ console.log(chalk_1.default.dim(` ${applyResponse.data.message}`));
91
+ }
92
+ else {
93
+ applySpinner.fail(chalk_1.default.red('Failed to apply changes'));
94
+ }
95
+ }
96
+ catch (error) {
97
+ applySpinner.fail(chalk_1.default.red('Failed to apply changes'));
98
+ const apiError = (0, api_client_1.handleApiError)(error);
99
+ console.error(chalk_1.default.red(` ${apiError.message}`));
100
+ }
101
+ }
102
+ catch (error) {
103
+ spinner.fail(chalk_1.default.red('Analysis failed'));
104
+ const apiError = (0, api_client_1.handleApiError)(error);
105
+ console.error(chalk_1.default.red(` ${apiError.message}`));
106
+ }
107
+ });
108
+ // Interactive mode subcommand
109
+ exports.vibeCommand
110
+ .command('interactive')
111
+ .alias('i')
112
+ .description('Start interactive Vibe session')
113
+ .action(async () => {
114
+ if (!config_1.config.isLoggedIn()) {
115
+ console.error(chalk_1.default.red('Not logged in. Run `solid auth login` first.'));
116
+ process.exit(1);
117
+ }
118
+ console.log(chalk_1.default.cyan.bold('\nSolid# Vibe Interactive Mode'));
119
+ console.log(chalk_1.default.dim('Type your prompts in natural language. Type "exit" to quit.\n'));
120
+ while (true) {
121
+ const { prompt } = await inquirer_1.default.prompt([{
122
+ type: 'input',
123
+ name: 'prompt',
124
+ message: chalk_1.default.cyan('>'),
125
+ prefix: '',
126
+ }]);
127
+ if (prompt.toLowerCase() === 'exit' || prompt.toLowerCase() === 'quit') {
128
+ console.log(chalk_1.default.dim('Goodbye!'));
129
+ break;
130
+ }
131
+ if (!prompt.trim())
132
+ continue;
133
+ const spinner = (0, ora_1.default)('Analyzing...').start();
134
+ try {
135
+ const response = await api_client_1.apiClient.vibeAnalyze(prompt);
136
+ if (response.data.safety_check.blocked) {
137
+ spinner.fail(chalk_1.default.red('Blocked'));
138
+ console.log(chalk_1.default.dim(` ${response.data.safety_check.message || 'Safety check failed'}\n`));
139
+ continue;
140
+ }
141
+ spinner.succeed(`Intent: ${response.data.intent.action} ${response.data.intent.entity_type}`);
142
+ if (!response.data.preview_id) {
143
+ console.log(chalk_1.default.dim(' No preview available\n'));
144
+ continue;
145
+ }
146
+ const { confirm } = await inquirer_1.default.prompt([{
147
+ type: 'confirm',
148
+ name: 'confirm',
149
+ message: 'Apply?',
150
+ default: false,
151
+ }]);
152
+ if (confirm) {
153
+ const applySpinner = (0, ora_1.default)('Applying...').start();
154
+ try {
155
+ const applyResponse = await api_client_1.apiClient.vibeApply(response.data.preview_id);
156
+ if (applyResponse.data.success) {
157
+ applySpinner.succeed(chalk_1.default.green('Applied'));
158
+ }
159
+ else {
160
+ applySpinner.fail(chalk_1.default.red('Failed'));
161
+ }
162
+ }
163
+ catch (error) {
164
+ applySpinner.fail(chalk_1.default.red('Failed'));
165
+ }
166
+ }
167
+ console.log('');
168
+ }
169
+ catch (error) {
170
+ spinner.fail(chalk_1.default.red('Error'));
171
+ const apiError = (0, api_client_1.handleApiError)(error);
172
+ console.log(chalk_1.default.dim(` ${apiError.message}\n`));
173
+ }
174
+ }
175
+ });
176
+ //# sourceMappingURL=vibe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vibe.js","sourceRoot":"","sources":["../../src/commands/vibe.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * ================================================================================
4
+ * Solid# CLI — AI Business Infrastructure
5
+ * ================================================================================
6
+ * @solidnumber/cli
7
+ *
8
+ * The command-line interface for building on Solid#.
9
+ * Everything is scoped to your company_id. Safe and isolated.
10
+ *
11
+ * Install: npm install -g @solidnumber/cli
12
+ * Login: solid auth login
13
+ * Pull: solid pull
14
+ * Push: solid push
15
+ * Train: solid train chat sarah
16
+ * ================================================================================
17
+ */
18
+ export {};
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;GAeG"}