@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.
package/bin/thinksoft.js CHANGED
@@ -1,2 +1,2 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env node
2
2
  require('../dist/index.js');
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Agents command - manage service agents for an app
3
+ */
4
+ export declare function agents(appId?: string, options?: {
5
+ add?: string;
6
+ list?: boolean;
7
+ }): Promise<void>;
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ /**
3
+ * Agents command - manage service agents for an app
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.agents = agents;
43
+ const ora_1 = __importDefault(require("ora"));
44
+ const api = __importStar(require("../utils/api"));
45
+ const config = __importStar(require("../utils/config"));
46
+ const logger = __importStar(require("../utils/logger"));
47
+ async function agents(appId, options = {}) {
48
+ if (!config.isLoggedIn()) {
49
+ logger.error('Not logged in');
50
+ logger.info('Use "thinksoft login" to authenticate');
51
+ return;
52
+ }
53
+ // Get appId from argument or project config
54
+ const targetAppId = appId || config.getProjectConfig()?.appId;
55
+ if (!targetAppId) {
56
+ logger.error('App ID is required');
57
+ logger.info('Usage: thinksoft agents <appId>');
58
+ logger.info('Or run from a directory with thinksoft.json');
59
+ return;
60
+ }
61
+ logger.header('Service Agents');
62
+ logger.keyValue('App ID', targetAppId);
63
+ logger.newLine();
64
+ // Add mode - add a new agent with description
65
+ if (options.add) {
66
+ const spinner = (0, ora_1.default)('Adding new agent...').start();
67
+ const result = await api.addAgent(targetAppId, options.add);
68
+ if (result.error) {
69
+ spinner.fail('Failed to add agent');
70
+ handleError(result.error);
71
+ return;
72
+ }
73
+ spinner.succeed(`Agent added! (${result.total} total agents)`);
74
+ logger.newLine();
75
+ if (result.agent) {
76
+ displaySingleAgent(result.agent);
77
+ }
78
+ return;
79
+ }
80
+ // List mode (default) - show existing agents
81
+ const spinner = (0, ora_1.default)('Fetching agents...').start();
82
+ const result = await api.getAgents(targetAppId);
83
+ if (result.error) {
84
+ spinner.fail('Failed to fetch agents');
85
+ handleError(result.error);
86
+ return;
87
+ }
88
+ spinner.succeed('Agents retrieved');
89
+ displayAgents(result.agents || [], result.generated_at);
90
+ if (result.agents?.length === 0) {
91
+ logger.newLine();
92
+ logger.info('Tip: Use --add "description" to add a new agent');
93
+ }
94
+ }
95
+ function displaySingleAgent(agent) {
96
+ const accessType = agent.accessRules?.type || 'unknown';
97
+ const tableCount = agent.allowedTables?.length || 0;
98
+ logger.log(`${agent.icon || '🤖'} ${agent.name}`);
99
+ logger.log(` Audience: ${agent.audience}`);
100
+ logger.log(` Access: ${formatAccessType(accessType)}`);
101
+ logger.log(` Tables: ${tableCount} table(s)`);
102
+ if (agent.actionChips && agent.actionChips.length > 0) {
103
+ const chips = agent.actionChips.map((c) => c.label).join(', ');
104
+ logger.log(` Actions: ${chips}`);
105
+ }
106
+ if (agent.description) {
107
+ logger.newLine();
108
+ logger.log(` ${agent.description}`);
109
+ }
110
+ }
111
+ function displayAgents(agents, generatedAt) {
112
+ if (agents.length === 0) {
113
+ logger.newLine();
114
+ logger.info('No agents found. Use "thinksoft agents <appId>" to generate.');
115
+ return;
116
+ }
117
+ logger.newLine();
118
+ logger.log(`Found ${agents.length} agent(s):`);
119
+ logger.newLine();
120
+ agents.forEach((agent, index) => {
121
+ const accessType = agent.accessRules?.type || 'unknown';
122
+ const tableCount = agent.allowedTables?.length || 0;
123
+ logger.log(` ${index + 1}. ${agent.icon || '🤖'} ${agent.name}`);
124
+ logger.log(` Slug: ${agent.slug}`);
125
+ logger.log(` Audience: ${agent.audience}`);
126
+ logger.log(` Access: ${formatAccessType(accessType)}`);
127
+ logger.log(` Tables: ${tableCount} table(s)`);
128
+ if (agent.actionChips && agent.actionChips.length > 0) {
129
+ const chips = agent.actionChips.map((c) => c.label).join(', ');
130
+ logger.log(` Actions: ${chips}`);
131
+ }
132
+ logger.newLine();
133
+ });
134
+ if (generatedAt) {
135
+ logger.log(` Generated: ${new Date(generatedAt).toLocaleString()}`);
136
+ }
137
+ }
138
+ function formatAccessType(type) {
139
+ switch (type) {
140
+ case 'authenticated':
141
+ return 'Authenticated (any logged-in user)';
142
+ case 'table-based':
143
+ return 'Table-based (verified users only)';
144
+ case 'public':
145
+ return 'Public (no login required)';
146
+ default:
147
+ return type;
148
+ }
149
+ }
150
+ function handleError(error) {
151
+ const errorLower = error.toLowerCase();
152
+ if (errorLower.includes('session expired') ||
153
+ errorLower.includes('token expired') ||
154
+ errorLower.includes('unauthorized')) {
155
+ config.clearAuth();
156
+ logger.error('Session expired. Credentials cleared.');
157
+ logger.info('Run: thinksoft login');
158
+ return;
159
+ }
160
+ logger.error(error);
161
+ }
162
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/commands/agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Chat command - interact with service agents
3
+ */
4
+ interface ChatOptions {
5
+ interactive?: boolean;
6
+ session?: string;
7
+ }
8
+ /**
9
+ * Send a message to an agent
10
+ */
11
+ export declare function chat(appId: string | undefined, agentSlug: string | undefined, message: string | undefined, options?: ChatOptions): Promise<void>;
12
+ export {};
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+ /**
3
+ * Chat command - interact with service agents
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.chat = chat;
43
+ const ora_1 = __importDefault(require("ora"));
44
+ const readline = __importStar(require("readline"));
45
+ const chalk_1 = __importDefault(require("chalk"));
46
+ const api = __importStar(require("../utils/api"));
47
+ const config = __importStar(require("../utils/config"));
48
+ const logger = __importStar(require("../utils/logger"));
49
+ /**
50
+ * Send a message to an agent
51
+ */
52
+ async function chat(appId, agentSlug, message, options = {}) {
53
+ if (!config.isLoggedIn()) {
54
+ logger.error('Not logged in');
55
+ logger.info('Use "thinksoft login" to authenticate');
56
+ return;
57
+ }
58
+ const targetAppId = appId || config.getProjectConfig()?.appId;
59
+ if (!targetAppId) {
60
+ logger.error('App ID is required');
61
+ logger.info('Usage: thinksoft chat <appId> <agentSlug> "message"');
62
+ return;
63
+ }
64
+ if (!agentSlug) {
65
+ logger.error('Agent slug is required');
66
+ logger.info('Usage: thinksoft chat <appId> <agentSlug> "message"');
67
+ logger.info('Use "thinksoft agents <appId>" to list available agents');
68
+ return;
69
+ }
70
+ // Interactive mode
71
+ if (options.interactive) {
72
+ await interactiveChat(targetAppId, agentSlug, options.session);
73
+ return;
74
+ }
75
+ // Single message mode
76
+ if (!message) {
77
+ logger.error('Message is required');
78
+ logger.info('Usage: thinksoft chat <appId> <agentSlug> "message"');
79
+ logger.info('Or use --interactive for chat mode');
80
+ return;
81
+ }
82
+ await sendMessage(targetAppId, agentSlug, message, options.session);
83
+ }
84
+ /**
85
+ * Send a single message and display response
86
+ */
87
+ async function sendMessage(appId, agentSlug, message, sessionId, showHeader = true) {
88
+ if (showHeader) {
89
+ logger.header('Agent Chat');
90
+ logger.keyValue('App ID', appId);
91
+ logger.keyValue('Agent', agentSlug);
92
+ logger.newLine();
93
+ logger.log(chalk_1.default.cyan('You: ') + message);
94
+ }
95
+ const spinner = (0, ora_1.default)('Agent is thinking...').start();
96
+ const result = await api.chatWithAgent(appId, agentSlug, message, sessionId);
97
+ if (result.error) {
98
+ spinner.fail('Failed to get response');
99
+ handleError(result.error);
100
+ return undefined;
101
+ }
102
+ spinner.stop();
103
+ const response = result.response || result.message || 'No response';
104
+ const newSessionId = result.sessionId;
105
+ logger.newLine();
106
+ logger.log(chalk_1.default.green('Agent: ') + response);
107
+ // Show data if returned
108
+ if (result.data) {
109
+ logger.newLine();
110
+ if (Array.isArray(result.data)) {
111
+ if (result.data.length > 0) {
112
+ logger.log(chalk_1.default.gray(`[${result.data.length} record(s)]`));
113
+ // Show first few records
114
+ result.data.slice(0, 3).forEach((record, idx) => {
115
+ logger.log(chalk_1.default.gray(` ${idx + 1}. `) + formatRecord(record));
116
+ });
117
+ if (result.data.length > 3) {
118
+ logger.log(chalk_1.default.gray(` ... and ${result.data.length - 3} more`));
119
+ }
120
+ }
121
+ }
122
+ else if (typeof result.data === 'object') {
123
+ // Single record (card type)
124
+ logger.log(formatRecord(result.data));
125
+ }
126
+ }
127
+ // Show intent if available (for debugging)
128
+ if (result.intent) {
129
+ logger.newLine();
130
+ const filtersStr = result.intent.filters && Object.keys(result.intent.filters).length > 0
131
+ ? ` with filters: ${JSON.stringify(result.intent.filters)}`
132
+ : '';
133
+ logger.log(chalk_1.default.gray(`Intent: ${result.intent.action} on ${result.intent.table || 'N/A'}${filtersStr}`));
134
+ }
135
+ if (showHeader && newSessionId) {
136
+ logger.newLine();
137
+ logger.log(chalk_1.default.gray(`Session: ${newSessionId}`));
138
+ }
139
+ return newSessionId;
140
+ }
141
+ /**
142
+ * Interactive chat mode
143
+ */
144
+ async function interactiveChat(appId, agentSlug, initialSessionId) {
145
+ let sessionId = initialSessionId;
146
+ console.log();
147
+ console.log(chalk_1.default.cyan('╔═══════════════════════════════════════════════════════╗'));
148
+ console.log(chalk_1.default.cyan('║') + chalk_1.default.white.bold(` Chat with ${agentSlug}`.padEnd(55)) + chalk_1.default.cyan('║'));
149
+ console.log(chalk_1.default.cyan('║') + chalk_1.default.gray(' Type your message and press Enter ') + chalk_1.default.cyan('║'));
150
+ console.log(chalk_1.default.cyan('║') + chalk_1.default.gray(' Type "exit" or "quit" to end the conversation ') + chalk_1.default.cyan('║'));
151
+ console.log(chalk_1.default.cyan('╚═══════════════════════════════════════════════════════╝'));
152
+ console.log();
153
+ const rl = readline.createInterface({
154
+ input: process.stdin,
155
+ output: process.stdout
156
+ });
157
+ const prompt = () => {
158
+ rl.question(chalk_1.default.cyan('You: '), async (input) => {
159
+ const trimmed = input.trim();
160
+ if (!trimmed) {
161
+ prompt();
162
+ return;
163
+ }
164
+ if (trimmed.toLowerCase() === 'exit' || trimmed.toLowerCase() === 'quit') {
165
+ console.log(chalk_1.default.cyan('\nGoodbye!\n'));
166
+ rl.close();
167
+ return;
168
+ }
169
+ const spinner = (0, ora_1.default)('Agent is thinking...').start();
170
+ const result = await api.chatWithAgent(appId, agentSlug, trimmed, sessionId);
171
+ spinner.stop();
172
+ if (result.error) {
173
+ console.log(chalk_1.default.red('Error: ') + result.error);
174
+ }
175
+ else {
176
+ const response = result.response || result.message || 'No response';
177
+ sessionId = result.sessionId || sessionId;
178
+ console.log(chalk_1.default.green('Agent: ') + response);
179
+ // Show data summary if returned
180
+ if (result.data && Array.isArray(result.data) && result.data.length > 0) {
181
+ console.log(chalk_1.default.gray(` [${result.data.length} record(s) returned]`));
182
+ }
183
+ }
184
+ console.log();
185
+ prompt();
186
+ });
187
+ };
188
+ prompt();
189
+ }
190
+ function formatRecord(record) {
191
+ const fields = Object.entries(record)
192
+ .filter(([key]) => !['id', 'created_at', 'updated_at'].includes(key))
193
+ .slice(0, 5)
194
+ .map(([key, value]) => {
195
+ const displayValue = Array.isArray(value)
196
+ ? value.join(', ')
197
+ : typeof value === 'object'
198
+ ? JSON.stringify(value)
199
+ : String(value);
200
+ const truncated = displayValue.length > 40 ? displayValue.substring(0, 40) + '...' : displayValue;
201
+ return `${key}: ${truncated}`;
202
+ });
203
+ return fields.join(' | ');
204
+ }
205
+ function handleError(error) {
206
+ const errorLower = error.toLowerCase();
207
+ if (errorLower.includes('session expired') ||
208
+ errorLower.includes('token expired') ||
209
+ errorLower.includes('unauthorized')) {
210
+ config.clearAuth();
211
+ logger.error('Session expired. Credentials cleared.');
212
+ logger.info('Run: thinksoft login');
213
+ return;
214
+ }
215
+ logger.error(error);
216
+ }
217
+ //# sourceMappingURL=chat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/commands/chat.ts"],"names":[],"mappings":"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"}
@@ -57,7 +57,7 @@ async function create(description, options) {
57
57
  logger.info('Usage: thinksoft create "Your app description"');
58
58
  return;
59
59
  }
60
- const appType = options.type || 'workapp';
60
+ const appType = options.type || 'work_management';
61
61
  logger.header('Create App with Thinksoft');
62
62
  logger.keyValue('Description', description);
63
63
  logger.keyValue('Type', appType);
@@ -86,18 +86,26 @@ async function create(description, options) {
86
86
  return;
87
87
  }
88
88
  spinner.succeed('App created successfully!');
89
+ const appId = app.app_id || app.short_id;
90
+ // Agents are now auto-generated by the API
91
+ const agentCount = app.agents?.length || 0;
92
+ if (agentCount > 0) {
93
+ logger.success(`Service agents generated (${agentCount} agents)`);
94
+ }
89
95
  logger.newLine();
90
96
  logger.keyValue('Name', app.name);
91
- logger.keyValue('App ID', app.app_id || app.short_id);
97
+ logger.keyValue('App ID', appId);
92
98
  logger.keyValue('Description', app.description || '');
93
99
  logger.newLine();
94
- logger.keyValue('Admin UI', app.url || `https://thinksoftai.com/app/${app.app_id || app.short_id}`);
95
- logger.keyValue('Deploy URL', `https://${(app.app_id || app.short_id).toLowerCase()}.thinksoftai.com`);
100
+ logger.keyValue('Admin UI', app.url || `https://thinksoftai.com/app/${appId}`);
101
+ logger.keyValue('Deploy URL', `https://${appId.toLowerCase()}.thinksoftai.com`);
96
102
  if (app.tables && app.tables.length > 0) {
97
103
  logger.newLine();
98
104
  logger.info(`Tables created: ${app.tables.map((t) => t.name).join(', ')}`);
99
105
  }
100
- const appId = app.app_id || app.short_id;
106
+ if (app.agents && app.agents.length > 0) {
107
+ logger.info(`Agents created: ${app.agents.map((a) => a.name).join(', ')}`);
108
+ }
101
109
  // Auto-initialize project (create thinksoft.json)
102
110
  logger.newLine();
103
111
  if (config.projectConfigExists()) {
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASH,wBAuIC;AA9ID,8CAAqB;AACrB,wDAA+B;AAC/B,kDAAmC;AACnC,wDAAyC;AACzC,wDAAyC;AACzC,kDAA2D;AAEpD,KAAK,UAAU,MAAM,CAAC,WAAmB,EAAE,OAA0B;IAC1E,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;QACzB,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;QAC7B,MAAM,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAA;QACpD,OAAM;IACR,CAAC;IAED,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAC3C,MAAM,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAA;QAC7D,OAAM;IACR,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,IAAI,iBAAiB,CAAA;IAEjD,MAAM,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAA;IAC1C,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;IAC3C,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,MAAM,CAAC,OAAO,EAAE,CAAA;IAEhB,MAAM,OAAO,GAAG,IAAA,aAAG,EAAC,8DAA8D,CAAC,CAAC,KAAK,EAAE,CAAA;IAE3F,MAAM,MAAM,GAAQ,MAAM,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;IAE7D,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QAEpC,0DAA0D;QAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAA;QAC7C,IAAI,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC;YACtC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC;YACpC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YACxC,MAAM,CAAC,SAAS,EAAE,CAAA;YAClB,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;YACrD,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;YACnC,OAAM;QACR,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;QAC1B,OAAM;IACR,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAA;IAEtB,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QACpC,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;QACpC,OAAM;IACR,CAAC;IAED,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAA;IAE5C,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAA;IAExC,2CAA2C;IAC3C,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAA;IAC1C,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;QACnB,MAAM,CAAC,OAAO,CAAC,6BAA6B,UAAU,UAAU,CAAC,CAAA;IACnE,CAAC;IAED,MAAM,CAAC,OAAO,EAAE,CAAA;IAChB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAChC,MAAM,CAAC,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAA;IACrD,MAAM,CAAC,OAAO,EAAE,CAAA;IAEhB,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,IAAI,+BAA+B,KAAK,EAAE,CAAC,CAAA;IAC9E,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,KAAK,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;IAE/E,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,OAAO,EAAE,CAAA;QAChB,MAAM,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACjF,CAAC;IAED,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACjF,CAAC;IAED,kDAAkD;IAClD,MAAM,CAAC,OAAO,EAAE,CAAA;IAEhB,IAAI,MAAM,CAAC,mBAAmB,EAAE,EAAE,CAAC;QACjC,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,EAAE,CAAA;QAC1C,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,kBAAQ,CAAC,MAAM,CAAC,CAAC;gBACzC,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,+BAA+B,QAAQ,EAAE,KAAK,yBAAyB,KAAK,GAAG;gBACxF,OAAO,EAAE,KAAK;aACf,CAAC,CAAC,CAAA;QAEH,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,iBAAiB,CAAC;gBACvB,KAAK;gBACL,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,SAAS,EAAE,MAAM;aAClB,CAAC,CAAA;YACF,MAAM,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAA;QAChD,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,0CAA0C,KAAK,EAAE,CAAC,CAAA;QAChE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,6BAA6B;QAC7B,MAAM,CAAC,iBAAiB,CAAC;YACvB,KAAK;YACL,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,SAAS,EAAE,MAAM;SAClB,CAAC,CAAA;QACF,MAAM,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAA;IAChE,CAAC;IAED,4BAA4B;IAC5B,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,kCAAsB,EAAC;QACvC,KAAK;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,MAAM,EAAE,GAAG,CAAC,MAAM;KACnB,CAAC,CAAA;IACF,MAAM,CAAC,OAAO,CAAC,6BAA6B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAChE,MAAM,CAAC,IAAI,CAAC,mEAAmE,CAAC,CAAA;IAEhF,uCAAuC;IACvC,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,OAAO,CAAA;IAEzF,MAAM,CAAC,OAAO,EAAE,CAAA;IAChB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IAC1B,MAAM,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAA;IACnE,MAAM,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAA;IAC5D,MAAM,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;IACpC,MAAM,CAAC,OAAO,EAAE,CAAA;IAChB,MAAM,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAA;IAC/D,MAAM,CAAC,GAAG,CAAC,+CAA+C,KAAK,MAAM,CAAC,CAAA;IACtE,MAAM,CAAC,GAAG,CAAC,sCAAsC,YAAY,SAAS,CAAC,CAAA;IACvE,MAAM,CAAC,OAAO,EAAE,CAAA;IAChB,MAAM,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAA;AACtE,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Frontend command - Scaffold frontend projects for external AI tools
3
+ *
4
+ * Usage:
5
+ * thinksoft frontend --init # Scaffold new frontend
6
+ * thinksoft frontend --init --app ID # Scaffold for specific app
7
+ */
8
+ interface FrontendOptions {
9
+ init?: boolean;
10
+ app?: string;
11
+ }
12
+ export declare function frontend(options: FrontendOptions): Promise<void>;
13
+ export {};