@thinksoftai/cli 1.4.0 → 1.6.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.
@@ -0,0 +1,631 @@
1
+ "use strict";
2
+ /**
3
+ * Schema command - CRUD operations for app tables and fields
4
+ */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.list = list;
43
+ exports.show = show;
44
+ exports.create = create;
45
+ exports.update = update;
46
+ exports.deleteTable = deleteTable;
47
+ exports.addField = addField;
48
+ exports.updateField = updateField;
49
+ exports.removeField = removeField;
50
+ exports.schema = schema;
51
+ const ora_1 = __importDefault(require("ora"));
52
+ const inquirer_1 = __importDefault(require("inquirer"));
53
+ const api = __importStar(require("../utils/api"));
54
+ const config = __importStar(require("../utils/config"));
55
+ const logger = __importStar(require("../utils/logger"));
56
+ // Field types supported by ThinkSoft
57
+ const FIELD_TYPES = [
58
+ 'text',
59
+ 'number',
60
+ 'email',
61
+ 'phone',
62
+ 'date',
63
+ 'datetime',
64
+ 'select',
65
+ 'multiselect',
66
+ 'checkbox',
67
+ 'textarea',
68
+ 'url',
69
+ 'currency',
70
+ 'file',
71
+ 'image',
72
+ 'reference'
73
+ ];
74
+ /**
75
+ * Check authentication
76
+ */
77
+ function checkAuth() {
78
+ if (!config.isLoggedIn()) {
79
+ logger.error('Not logged in');
80
+ logger.info('Use "thinksoft login" to authenticate');
81
+ return false;
82
+ }
83
+ return true;
84
+ }
85
+ /**
86
+ * Get app ID from argument or project config
87
+ */
88
+ function getAppId(appId) {
89
+ return appId || config.getProjectConfig()?.appId;
90
+ }
91
+ /**
92
+ * List all tables (default behavior)
93
+ */
94
+ async function list(appId) {
95
+ if (!checkAuth())
96
+ return;
97
+ const targetAppId = getAppId(appId);
98
+ if (!targetAppId) {
99
+ logger.error('App ID is required');
100
+ logger.info('Usage: thinksoft schema list [appId]');
101
+ logger.info('Or run from a directory with thinksoft.json');
102
+ return;
103
+ }
104
+ logger.header('Schema - List Tables');
105
+ logger.keyValue('App ID', targetAppId);
106
+ const spinner = (0, ora_1.default)('Fetching schema...').start();
107
+ const result = await api.getSchema(targetAppId);
108
+ if (result.error) {
109
+ spinner.fail('Failed to fetch schema');
110
+ handleError(result.error);
111
+ return;
112
+ }
113
+ spinner.succeed('Schema retrieved');
114
+ const tables = result.data || [];
115
+ if (tables.length === 0) {
116
+ logger.newLine();
117
+ logger.info('No tables found');
118
+ return;
119
+ }
120
+ logger.newLine();
121
+ logger.log(`Found ${tables.length} table(s):`);
122
+ logger.newLine();
123
+ tables.forEach((table, index) => {
124
+ const fieldCount = table.fields?.length || 0;
125
+ logger.log(` ${index + 1}. ${table.icon || '📋'} ${table.name}`);
126
+ logger.log(` Slug: ${table.slug}`);
127
+ logger.log(` Fields: ${fieldCount}`);
128
+ logger.newLine();
129
+ });
130
+ logger.info('Tip: Use "thinksoft schema show <table>" to see field details');
131
+ }
132
+ /**
133
+ * Show details for a specific table
134
+ */
135
+ async function show(table, appId) {
136
+ if (!checkAuth())
137
+ return;
138
+ const targetAppId = getAppId(appId);
139
+ if (!targetAppId) {
140
+ logger.error('App ID is required');
141
+ logger.info('Usage: thinksoft schema show <table> [appId]');
142
+ return;
143
+ }
144
+ if (!table) {
145
+ logger.error('Table name is required');
146
+ logger.info('Usage: thinksoft schema show <table> [appId]');
147
+ return;
148
+ }
149
+ logger.header('Schema - Table Details');
150
+ logger.keyValue('App ID', targetAppId);
151
+ logger.keyValue('Table', table);
152
+ const spinner = (0, ora_1.default)('Fetching table schema...').start();
153
+ const result = await api.getSchema(targetAppId);
154
+ if (result.error) {
155
+ spinner.fail('Failed to fetch schema');
156
+ handleError(result.error);
157
+ return;
158
+ }
159
+ const tables = result.data || [];
160
+ const tableData = tables.find((t) => t.slug === table || t.name.toLowerCase() === table.toLowerCase());
161
+ if (!tableData) {
162
+ spinner.fail(`Table '${table}' not found`);
163
+ logger.info('Available tables: ' + tables.map((t) => t.slug).join(', '));
164
+ return;
165
+ }
166
+ spinner.succeed('Table schema retrieved');
167
+ logger.newLine();
168
+ logger.log(`${tableData.icon || '📋'} ${tableData.name} (${tableData.slug})`);
169
+ if (tableData.description) {
170
+ logger.log(` ${tableData.description}`);
171
+ }
172
+ logger.newLine();
173
+ const fields = tableData.fields || [];
174
+ if (fields.length === 0) {
175
+ logger.info('No fields defined');
176
+ return;
177
+ }
178
+ logger.log(`Fields (${fields.length}):`);
179
+ logger.newLine();
180
+ fields.forEach((field) => {
181
+ const required = field.required ? ' *' : '';
182
+ const label = field.label && field.label !== field.name ? ` (${field.label})` : '';
183
+ logger.log(` ${field.name}${label}${required}`);
184
+ logger.log(` Type: ${field.type || 'text'}`);
185
+ if (field.options && field.options.length > 0) {
186
+ logger.log(` Options: ${field.options.join(', ')}`);
187
+ }
188
+ if (field.placeholder) {
189
+ logger.log(` Placeholder: ${field.placeholder}`);
190
+ }
191
+ if (field.referencedFormId) {
192
+ logger.log(` Reference: ${field.referencedFormId}`);
193
+ }
194
+ logger.newLine();
195
+ });
196
+ logger.info('* = required field');
197
+ }
198
+ /**
199
+ * Create a new table
200
+ */
201
+ async function create(appId, options = {}) {
202
+ if (!checkAuth())
203
+ return;
204
+ const targetAppId = getAppId(appId);
205
+ if (!targetAppId) {
206
+ logger.error('App ID is required');
207
+ logger.info('Usage: thinksoft schema create [appId]');
208
+ return;
209
+ }
210
+ let tableData = {};
211
+ // If options provided, use them (non-interactive)
212
+ if (options.name) {
213
+ tableData = {
214
+ name: options.name,
215
+ slug: options.slug || options.name.toLowerCase().replace(/\s+/g, '_'),
216
+ icon: options.icon,
217
+ description: options.description
218
+ };
219
+ }
220
+ else {
221
+ // Interactive mode
222
+ const answers = await inquirer_1.default.prompt([
223
+ {
224
+ type: 'input',
225
+ name: 'name',
226
+ message: 'Table name:',
227
+ validate: (input) => input.trim() ? true : 'Table name is required'
228
+ },
229
+ {
230
+ type: 'input',
231
+ name: 'slug',
232
+ message: 'Slug (auto-generated if empty):',
233
+ default: (ans) => ans.name.toLowerCase().replace(/\s+/g, '_')
234
+ },
235
+ {
236
+ type: 'input',
237
+ name: 'icon',
238
+ message: 'Icon (emoji, optional):',
239
+ default: '📋'
240
+ },
241
+ {
242
+ type: 'input',
243
+ name: 'description',
244
+ message: 'Description (optional):'
245
+ }
246
+ ]);
247
+ tableData = answers;
248
+ }
249
+ logger.header('Schema - Create Table');
250
+ logger.keyValue('App ID', targetAppId);
251
+ logger.keyValue('Table Name', tableData.name);
252
+ const spinner = (0, ora_1.default)('Creating table...').start();
253
+ const result = await api.createTable(targetAppId, tableData);
254
+ if (result.error) {
255
+ spinner.fail('Failed to create table');
256
+ handleError(result.error);
257
+ return;
258
+ }
259
+ spinner.succeed(`Table "${tableData.name}" created`);
260
+ // Ask if user wants to add fields
261
+ if (!options.yes) {
262
+ const { addFields } = await inquirer_1.default.prompt([{
263
+ type: 'confirm',
264
+ name: 'addFields',
265
+ message: 'Add fields now?',
266
+ default: true
267
+ }]);
268
+ if (addFields) {
269
+ await addFieldsInteractive(targetAppId, tableData.slug);
270
+ }
271
+ }
272
+ }
273
+ /**
274
+ * Update table metadata
275
+ */
276
+ async function update(table, appId, options = {}) {
277
+ if (!checkAuth())
278
+ return;
279
+ const targetAppId = getAppId(appId);
280
+ if (!targetAppId || !table) {
281
+ logger.error('App ID and table name are required');
282
+ logger.info('Usage: thinksoft schema update <table> [appId]');
283
+ return;
284
+ }
285
+ let updates = {};
286
+ // If options provided, use them
287
+ if (options.name || options.icon || options.description) {
288
+ updates = {
289
+ name: options.name,
290
+ icon: options.icon,
291
+ description: options.description
292
+ };
293
+ // Remove undefined values
294
+ Object.keys(updates).forEach(key => updates[key] === undefined && delete updates[key]);
295
+ }
296
+ else {
297
+ // Interactive mode - fetch current values first
298
+ const schemaResult = await api.getSchema(targetAppId);
299
+ const tables = schemaResult.data || [];
300
+ const currentTable = tables.find((t) => t.slug === table || t.name.toLowerCase() === table.toLowerCase());
301
+ if (!currentTable) {
302
+ logger.error(`Table '${table}' not found`);
303
+ return;
304
+ }
305
+ const answers = await inquirer_1.default.prompt([
306
+ {
307
+ type: 'input',
308
+ name: 'name',
309
+ message: 'Table name:',
310
+ default: currentTable.name
311
+ },
312
+ {
313
+ type: 'input',
314
+ name: 'icon',
315
+ message: 'Icon:',
316
+ default: currentTable.icon || '📋'
317
+ },
318
+ {
319
+ type: 'input',
320
+ name: 'description',
321
+ message: 'Description:',
322
+ default: currentTable.description || ''
323
+ }
324
+ ]);
325
+ updates = answers;
326
+ }
327
+ logger.header('Schema - Update Table');
328
+ logger.keyValue('App ID', targetAppId);
329
+ logger.keyValue('Table', table);
330
+ const spinner = (0, ora_1.default)('Updating table...').start();
331
+ const result = await api.updateTable(targetAppId, table, updates);
332
+ if (result.error) {
333
+ spinner.fail('Failed to update table');
334
+ handleError(result.error);
335
+ return;
336
+ }
337
+ spinner.succeed('Table updated');
338
+ }
339
+ /**
340
+ * Delete a table
341
+ */
342
+ async function deleteTable(table, appId, options = {}) {
343
+ if (!checkAuth())
344
+ return;
345
+ const targetAppId = getAppId(appId);
346
+ if (!targetAppId || !table) {
347
+ logger.error('App ID and table name are required');
348
+ logger.info('Usage: thinksoft schema delete <table> [appId]');
349
+ return;
350
+ }
351
+ // Confirm deletion
352
+ if (!options.yes) {
353
+ const { confirm } = await inquirer_1.default.prompt([{
354
+ type: 'confirm',
355
+ name: 'confirm',
356
+ message: `Delete table "${table}"? This will remove all data in the table.`,
357
+ default: false
358
+ }]);
359
+ if (!confirm) {
360
+ logger.info('Cancelled');
361
+ return;
362
+ }
363
+ }
364
+ logger.header('Schema - Delete Table');
365
+ logger.keyValue('App ID', targetAppId);
366
+ logger.keyValue('Table', table);
367
+ const spinner = (0, ora_1.default)('Deleting table...').start();
368
+ const result = await api.deleteTable(targetAppId, table);
369
+ if (result.error) {
370
+ spinner.fail('Failed to delete table');
371
+ handleError(result.error);
372
+ return;
373
+ }
374
+ spinner.succeed(`Table "${table}" deleted`);
375
+ }
376
+ /**
377
+ * Add a field to a table
378
+ */
379
+ async function addField(table, appId, options = {}) {
380
+ if (!checkAuth())
381
+ return;
382
+ const targetAppId = getAppId(appId);
383
+ if (!targetAppId || !table) {
384
+ logger.error('App ID and table name are required');
385
+ logger.info('Usage: thinksoft schema add-field <table> [appId]');
386
+ return;
387
+ }
388
+ let fieldData = {};
389
+ // If options provided, use them
390
+ if (options.name && options.type) {
391
+ fieldData = {
392
+ name: options.name,
393
+ type: options.type,
394
+ required: options.required || false,
395
+ options: options.options ? options.options.split(',').map(o => o.trim()) : undefined
396
+ };
397
+ }
398
+ else {
399
+ // Interactive mode
400
+ fieldData = await promptForField();
401
+ }
402
+ logger.header('Schema - Add Field');
403
+ logger.keyValue('App ID', targetAppId);
404
+ logger.keyValue('Table', table);
405
+ logger.keyValue('Field', fieldData.name);
406
+ const spinner = (0, ora_1.default)('Adding field...').start();
407
+ const result = await api.addColumn(targetAppId, table, fieldData);
408
+ if (result.error) {
409
+ spinner.fail('Failed to add field');
410
+ handleError(result.error);
411
+ return;
412
+ }
413
+ spinner.succeed(`Field "${fieldData.name}" added to "${table}"`);
414
+ }
415
+ /**
416
+ * Update a field in a table
417
+ */
418
+ async function updateField(table, field, appId, options = {}) {
419
+ if (!checkAuth())
420
+ return;
421
+ const targetAppId = getAppId(appId);
422
+ if (!targetAppId || !table || !field) {
423
+ logger.error('App ID, table name, and field name are required');
424
+ logger.info('Usage: thinksoft schema update-field <table> <field> [appId]');
425
+ return;
426
+ }
427
+ let updates = {};
428
+ // If options provided, use them
429
+ if (options.name || options.type || options.required !== undefined) {
430
+ updates = {
431
+ name: options.name,
432
+ type: options.type,
433
+ required: options.required,
434
+ options: options.options ? options.options.split(',').map(o => o.trim()) : undefined
435
+ };
436
+ Object.keys(updates).forEach(key => updates[key] === undefined && delete updates[key]);
437
+ }
438
+ else {
439
+ // Interactive mode - fetch current field first
440
+ const schemaResult = await api.getSchema(targetAppId);
441
+ const tables = schemaResult.data || [];
442
+ const tableData = tables.find((t) => t.slug === table || t.name.toLowerCase() === table.toLowerCase());
443
+ if (!tableData) {
444
+ logger.error(`Table '${table}' not found`);
445
+ return;
446
+ }
447
+ const currentField = (tableData.fields || []).find((f) => f.name === field);
448
+ if (!currentField) {
449
+ logger.error(`Field '${field}' not found in table '${table}'`);
450
+ return;
451
+ }
452
+ const answers = await inquirer_1.default.prompt([
453
+ {
454
+ type: 'input',
455
+ name: 'name',
456
+ message: 'Field name:',
457
+ default: currentField.name
458
+ },
459
+ {
460
+ type: 'list',
461
+ name: 'type',
462
+ message: 'Field type:',
463
+ choices: FIELD_TYPES,
464
+ default: currentField.type || 'text'
465
+ },
466
+ {
467
+ type: 'confirm',
468
+ name: 'required',
469
+ message: 'Required?',
470
+ default: currentField.required || false
471
+ }
472
+ ]);
473
+ // If type is select/multiselect, prompt for options
474
+ if (answers.type === 'select' || answers.type === 'multiselect') {
475
+ const { optionsStr } = await inquirer_1.default.prompt([{
476
+ type: 'input',
477
+ name: 'optionsStr',
478
+ message: 'Options (comma-separated):',
479
+ default: currentField.options?.join(', ') || ''
480
+ }]);
481
+ answers.options = optionsStr ? optionsStr.split(',').map((o) => o.trim()) : [];
482
+ }
483
+ updates = answers;
484
+ }
485
+ logger.header('Schema - Update Field');
486
+ logger.keyValue('App ID', targetAppId);
487
+ logger.keyValue('Table', table);
488
+ logger.keyValue('Field', field);
489
+ const spinner = (0, ora_1.default)('Updating field...').start();
490
+ const result = await api.updateColumn(targetAppId, table, field, updates);
491
+ if (result.error) {
492
+ spinner.fail('Failed to update field');
493
+ handleError(result.error);
494
+ return;
495
+ }
496
+ spinner.succeed(`Field "${field}" updated`);
497
+ }
498
+ /**
499
+ * Remove a field from a table
500
+ */
501
+ async function removeField(table, field, appId, options = {}) {
502
+ if (!checkAuth())
503
+ return;
504
+ const targetAppId = getAppId(appId);
505
+ if (!targetAppId || !table || !field) {
506
+ logger.error('App ID, table name, and field name are required');
507
+ logger.info('Usage: thinksoft schema remove-field <table> <field> [appId]');
508
+ return;
509
+ }
510
+ // Confirm deletion
511
+ if (!options.yes) {
512
+ const { confirm } = await inquirer_1.default.prompt([{
513
+ type: 'confirm',
514
+ name: 'confirm',
515
+ message: `Remove field "${field}" from "${table}"? This will delete all data in this field.`,
516
+ default: false
517
+ }]);
518
+ if (!confirm) {
519
+ logger.info('Cancelled');
520
+ return;
521
+ }
522
+ }
523
+ logger.header('Schema - Remove Field');
524
+ logger.keyValue('App ID', targetAppId);
525
+ logger.keyValue('Table', table);
526
+ logger.keyValue('Field', field);
527
+ const spinner = (0, ora_1.default)('Removing field...').start();
528
+ const result = await api.deleteColumn(targetAppId, table, field);
529
+ if (result.error) {
530
+ spinner.fail('Failed to remove field');
531
+ handleError(result.error);
532
+ return;
533
+ }
534
+ spinner.succeed(`Field "${field}" removed from "${table}"`);
535
+ }
536
+ /**
537
+ * Interactive prompt for field creation
538
+ */
539
+ async function promptForField() {
540
+ const answers = await inquirer_1.default.prompt([
541
+ {
542
+ type: 'input',
543
+ name: 'name',
544
+ message: 'Field name:',
545
+ validate: (input) => input.trim() ? true : 'Field name is required'
546
+ },
547
+ {
548
+ type: 'list',
549
+ name: 'type',
550
+ message: 'Field type:',
551
+ choices: FIELD_TYPES,
552
+ default: 'text'
553
+ },
554
+ {
555
+ type: 'confirm',
556
+ name: 'required',
557
+ message: 'Required?',
558
+ default: false
559
+ }
560
+ ]);
561
+ // If type is select/multiselect, prompt for options
562
+ if (answers.type === 'select' || answers.type === 'multiselect') {
563
+ const { optionsStr } = await inquirer_1.default.prompt([{
564
+ type: 'input',
565
+ name: 'optionsStr',
566
+ message: 'Options (comma-separated):',
567
+ validate: (input) => input.trim() ? true : 'At least one option is required'
568
+ }]);
569
+ answers.options = optionsStr.split(',').map((o) => o.trim());
570
+ }
571
+ // If type is reference, prompt for referenced table
572
+ if (answers.type === 'reference') {
573
+ const { referencedFormId } = await inquirer_1.default.prompt([{
574
+ type: 'input',
575
+ name: 'referencedFormId',
576
+ message: 'Referenced table slug:',
577
+ validate: (input) => input.trim() ? true : 'Referenced table is required'
578
+ }]);
579
+ answers.referencedFormId = referencedFormId;
580
+ }
581
+ return answers;
582
+ }
583
+ /**
584
+ * Interactive loop to add multiple fields
585
+ */
586
+ async function addFieldsInteractive(appId, tableSlug) {
587
+ let addMore = true;
588
+ while (addMore) {
589
+ const fieldData = await promptForField();
590
+ const spinner = (0, ora_1.default)('Adding field...').start();
591
+ const result = await api.addColumn(appId, tableSlug, fieldData);
592
+ if (result.error) {
593
+ spinner.fail('Failed to add field');
594
+ logger.error(result.error);
595
+ }
596
+ else {
597
+ spinner.succeed(`Field "${fieldData.name}" added`);
598
+ }
599
+ const { more } = await inquirer_1.default.prompt([{
600
+ type: 'confirm',
601
+ name: 'more',
602
+ message: 'Add another field?',
603
+ default: true
604
+ }]);
605
+ addMore = more;
606
+ }
607
+ }
608
+ /**
609
+ * Legacy schema function (for backward compatibility)
610
+ */
611
+ async function schema(appId, options = {}) {
612
+ if (options.table) {
613
+ await show(options.table, appId);
614
+ }
615
+ else {
616
+ await list(appId);
617
+ }
618
+ }
619
+ function handleError(error) {
620
+ const errorLower = error.toLowerCase();
621
+ if (errorLower.includes('session expired') ||
622
+ errorLower.includes('token expired') ||
623
+ errorLower.includes('unauthorized')) {
624
+ config.clearAuth();
625
+ logger.error('Session expired. Credentials cleared.');
626
+ logger.info('Run: thinksoft login');
627
+ return;
628
+ }
629
+ logger.error(error);
630
+ }
631
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/commands/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Studio command - AI-powered app customization for owners
3
+ *
4
+ * Allows app owners to customize schema and agents through natural language.
5
+ */
6
+ interface StudioOptions {
7
+ interactive?: boolean;
8
+ }
9
+ /**
10
+ * Studio command - customize app with AI
11
+ */
12
+ export declare function studio(appId: string | undefined, message: string | undefined, options?: StudioOptions): Promise<void>;
13
+ export {};