antigravity-ide 3.5.2 → 3.5.4

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 (2) hide show
  1. package/cli/prompts.js +116 -46
  2. package/package.json +1 -1
package/cli/prompts.js CHANGED
@@ -5,6 +5,7 @@
5
5
  const prompts = require('prompts');
6
6
  const chalk = require('chalk');
7
7
  const gradient = require('gradient-string');
8
+ const packageJson = require('../package.json');
8
9
 
9
10
  // Display concise banner with gradient
10
11
  function displayBanner() {
@@ -17,7 +18,7 @@ function displayBanner() {
17
18
  console.log(gradient.pastel.multiline(' / ___ |/ / / / /_/ / /_/ / / / /_/ /| |/ / / /_/ /_/ / '));
18
19
  console.log(gradient.pastel.multiline('/_/ |_/_/ /_/\\__/_/\\____/_/ \\__,_/ |___/_/\\__/\\__, / '));
19
20
  console.log(gradient.pastel.multiline(' /____/ '));
20
- console.log(chalk.gray(' Google Antigravity • v1.0.0'));
21
+ console.log(chalk.gray(` Google Antigravity • v${packageJson.version}`));
21
22
  console.log(chalk.gray(' Developed with 💡 by Dokhacgiakhoa'));
22
23
  console.log(gradient.rainbow('━'.repeat(60)));
23
24
  console.log('');
@@ -25,64 +26,55 @@ function displayBanner() {
25
26
 
26
27
  const skillCategories = {
27
28
  webdev: {
28
- name: 'Web Development',
29
+ name: 'Web High-Performance',
29
30
  skills: [
30
- 'nextjs-react-expert',
31
- 'typescript-expert',
32
- 'tailwind-design-system',
33
- 'api-design-principles',
34
- 'frontend-design',
35
- 'backend-patterns'
31
+ 'modern-web-architect',
32
+ 'full-stack-scaffold',
33
+ 'api-documenter',
34
+ 'i18n-localization'
36
35
  ]
37
36
  },
38
37
  mobile: {
39
- name: 'Mobile Development',
38
+ name: 'Mobile & Game',
40
39
  skills: [
41
- 'react-native-architecture',
42
- 'flutter-expert',
43
40
  'mobile-design',
44
- 'ios-developer',
45
- 'mobile-security-coder'
41
+ 'game-development',
42
+ 'i18n-localization'
46
43
  ]
47
44
  },
48
45
  devops: {
49
46
  name: 'DevOps & Cloud',
50
47
  skills: [
51
- 'kubernetes-architect',
52
- 'terraform-specialist',
53
- 'docker-expert',
54
- 'cicd-automation-workflow-automate',
55
- 'deployment-engineer'
48
+ 'cloud-architect-master',
49
+ 'deployment-engineer',
50
+ 'incident-responder',
51
+ 'mcp-builder'
56
52
  ]
57
53
  },
58
54
  security: {
59
- name: 'Security & Testing',
55
+ name: 'Security & Audit',
60
56
  skills: [
61
57
  'security-auditor',
62
- 'tdd-orchestrator',
63
- 'test-automator',
64
- 'vulnerability-scanner',
65
- 'penetration-testing'
58
+ 'penetration-tester-master',
59
+ 'production-code-audit',
60
+ 'vulnerability-scanner'
66
61
  ]
67
62
  },
68
63
  ai: {
69
64
  name: 'AI & ML',
70
65
  skills: [
71
66
  'ai-engineer',
72
- 'ml-engineer',
73
- 'prompt-engineer',
74
- 'rag-engineer',
75
- 'llm-app-patterns'
67
+ 'geo-fundamentals',
68
+ 'prompt-engineer' // Assuming this exists or will be mapped to ai-engineer capabilities
76
69
  ]
77
70
  },
78
- data: {
79
- name: 'Data Engineering',
71
+ growth: { // Renamed from data for better fit
72
+ name: 'Growth & Data',
80
73
  skills: [
81
- 'data-engineer',
82
- 'sql-pro',
83
- 'database-architect',
84
- 'data-quality-frameworks',
85
- 'spark-optimization'
74
+ 'cro-expert-kit',
75
+ 'seo-expert-kit',
76
+ 'database-migration',
77
+ 'performance-engineer'
86
78
  ]
87
79
  }
88
80
  };
@@ -107,7 +99,10 @@ async function getProjectConfig(skipPrompts = false) {
107
99
  console.log(chalk.bold.cyan('🚀 Project Setup Wizard\n'));
108
100
  console.log(chalk.gray('Answer a few questions to configure your AI Agent project...\n'));
109
101
 
110
- const response = await prompts([
102
+ /*
103
+ PHASE 1: BASIC INFORMATION
104
+ */
105
+ const basics = await prompts([
111
106
  {
112
107
  type: 'text',
113
108
  name: 'projectName',
@@ -132,9 +127,85 @@ async function getProjectConfig(skipPrompts = false) {
132
127
  },
133
128
  {
134
129
  type: 'select',
135
- name: 'template',
136
- message: (prev, values) => values.language === 'vi' ? 'Chọn mẫu dự án:' : 'Choose project template:',
130
+ name: 'engineMode',
131
+ message: (prev, values) => values.language === 'vi' ? 'Chọn Agent Engine:' : 'Select Agent Engine:',
137
132
  choices: (prev, values) => values.language === 'vi' ? [
133
+ { title: '⚡ Standard (Node.js) - Nhanh, nhẹ, không cấu hình', value: 'standard' },
134
+ { title: '🧠 Advanced (Python) - Hỗ trợ AI sâu, Khoa học dữ liệu', value: 'advanced' },
135
+ ] : [
136
+ { title: '⚡ Standard (Node.js) - Fast, Lightweight, Zero-Config', value: 'standard' },
137
+ { title: '🧠 Advanced (Python) - Deep AI, Data Science support', value: 'advanced' },
138
+ ],
139
+ initial: 0
140
+ },
141
+ {
142
+ type: 'select',
143
+ name: 'industryDomain',
144
+ message: (prev, values) => values.language === 'vi' ? 'Chọn Lĩnh vực dự án (Industry):' : 'Select Industry Domain:',
145
+ choices: (prev, values) => values.language === 'vi' ? [
146
+ { title: '💰 Finance (Tài chính - Fintech)', value: 'finance' },
147
+ { title: '🎓 Education (Giáo dục - EdTech)', value: 'education' },
148
+ { title: '🍔 F&B / Restaurant (Nhà hàng)', value: 'fnb' },
149
+ { title: '👤 Personal / Portfolio (Cá nhân)', value: 'personal' },
150
+ { title: '🏥 Healthcare (Y tế - HealthTech)', value: 'healthcare' },
151
+ { title: '🚚 Logistics (Vận tải)', value: 'logistics' },
152
+ { title: '🔮 Other (Khác - Web/App cơ bản)', value: 'other' },
153
+ { title: '🔧 Custom (Tùy chỉnh)', value: 'custom' }
154
+ ] : [
155
+ { title: '💰 Finance (Fintech)', value: 'finance' },
156
+ { title: '🎓 Education (EdTech)', value: 'education' },
157
+ { title: '🍔 F&B / Restaurant', value: 'fnb' },
158
+ { title: '👤 Personal / Portfolio', value: 'personal' },
159
+ { title: '🏥 Healthcare (HealthTech)', value: 'healthcare' },
160
+ { title: '🚚 Logistics', value: 'logistics' },
161
+ { title: '🔮 Other (General Web/App)', value: 'other' },
162
+ { title: '🔧 Custom (Advanced)', value: 'custom' }
163
+ ],
164
+ initial: 6
165
+ }
166
+ ], {
167
+ onCancel: () => {
168
+ console.log(chalk.red('\n✖ Operation cancelled'));
169
+ process.exit(0);
170
+ }
171
+ });
172
+
173
+ // PRESETS CONFIGURATION
174
+ // If not custom, return immediately with preset values
175
+ if (basics.industryDomain !== 'custom') {
176
+ const commonWorkflows = ['git'];
177
+ const commonRules = 'balanced';
178
+ const settings = {
179
+ template: 'standard',
180
+ rules: commonRules,
181
+ workflows: commonWorkflows,
182
+ packageManager: 'npm'
183
+ };
184
+
185
+ const presets = {
186
+ finance: { ...settings, skillCategories: ['security', 'growth', 'ai'] },
187
+ education: { ...settings, skillCategories: ['webdev', 'mobile', 'ai'] },
188
+ fnb: { ...settings, skillCategories: ['webdev', 'mobile', 'growth'] },
189
+ personal: { ...settings, skillCategories: ['webdev', 'growth'] },
190
+ healthcare: { ...settings, skillCategories: ['security', 'mobile', 'ai'] },
191
+ logistics: { ...settings, skillCategories: ['devops', 'mobile', 'ai'] },
192
+ other: { ...settings, skillCategories: ['webdev', 'ai'] }
193
+ };
194
+
195
+ return { ...basics, ...presets[basics.industryDomain] };
196
+ }
197
+
198
+ /*
199
+ PHASE 2: ADVANCED CONFIGURATION (Only if industryDomain === 'custom')
200
+ */
201
+ console.log(chalk.yellow(basics.language === 'vi' ? '\n🔧 Cấu hình nâng cao:' : '\n🔧 Advanced Configuration:'));
202
+
203
+ const advanced = await prompts([
204
+ {
205
+ type: 'select',
206
+ name: 'template',
207
+ message: basics.language === 'vi' ? 'Chọn mẫu dự án:' : 'Choose project template:',
208
+ choices: basics.language === 'vi' ? [
138
209
  { title: '1. Tối giản - Chỉ cấu trúc .agent cơ bản', value: 'minimal' },
139
210
  { title: '2. Tiêu chuẩn - .agent + các skill được chọn (Khuyên dùng)', value: 'standard' },
140
211
  { title: '3. Đầy đủ - Tất cả mọi thứ (full skills, lab, test suite)', value: 'full' }
@@ -148,8 +219,8 @@ async function getProjectConfig(skipPrompts = false) {
148
219
  {
149
220
  type: 'select',
150
221
  name: 'rules',
151
- message: (prev, values) => values.language === 'vi' ? 'Quy tắc hành vi Agent:' : 'Agent behavior rules:',
152
- choices: (prev, values) => values.language === 'vi' ? [
222
+ message: basics.language === 'vi' ? 'Quy tắc hành vi Agent:' : 'Agent behavior rules:',
223
+ choices: basics.language === 'vi' ? [
153
224
  { title: '1. Nghiêm ngặt - An toàn tối đa, luôn hỏi trước khi làm', value: 'strict' },
154
225
  { title: '2. Cân bằng - Tự chủ vừa phải, an toàn (Khuyên dùng)', value: 'balanced' },
155
226
  { title: '3. Linh hoạt - Tự chủ cao, ít hạn chế', value: 'flexible' }
@@ -163,7 +234,7 @@ async function getProjectConfig(skipPrompts = false) {
163
234
  {
164
235
  type: (prev, values) => values.template !== 'minimal' ? 'multiselect' : null,
165
236
  name: 'skillCategories',
166
- message: (prev, values) => values.language === 'vi' ? 'Chọn nhóm kỹ năng:' : 'Select skill categories to include:',
237
+ message: basics.language === 'vi' ? 'Chọn nhóm kỹ năng:' : 'Select skill categories to include:',
167
238
  choices: Object.entries(skillCategories).map(([key, { name }]) => ({
168
239
  title: name,
169
240
  value: key,
@@ -174,8 +245,8 @@ async function getProjectConfig(skipPrompts = false) {
174
245
  {
175
246
  type: 'multiselect',
176
247
  name: 'workflows',
177
- message: (prev, values) => values.language === 'vi' ? 'Chọn quy trình làm việc (Workflows):' : 'Select workflows to include:',
178
- choices: (prev, values) => values.language === 'vi' ? [
248
+ message: basics.language === 'vi' ? 'Chọn quy trình làm việc (Workflows):' : 'Select workflows to include:',
249
+ choices: basics.language === 'vi' ? [
179
250
  { title: 'Git Workflows - Quản lý nhánh, commit, PR', value: 'git', selected: true },
180
251
  { title: 'Testing - TDD, unit tests, E2E tests', value: 'testing', selected: true },
181
252
  { title: 'Deployment - CI/CD, quy trình production', value: 'deployment', selected: false },
@@ -188,11 +259,10 @@ async function getProjectConfig(skipPrompts = false) {
188
259
  ],
189
260
  hint: 'Space to select, Enter to confirm'
190
261
  },
191
-
192
262
  {
193
263
  type: 'select',
194
264
  name: 'packageManager',
195
- message: (prev, values) => values.language === 'vi' ? 'Trình quản lý gói (Package Manager):' : 'Package manager:',
265
+ message: basics.language === 'vi' ? 'Trình quản lý gói (Package Manager):' : 'Package manager:',
196
266
  choices: [
197
267
  { title: '1. npm', value: 'npm' },
198
268
  { title: '2. pnpm', value: 'pnpm' },
@@ -206,8 +276,8 @@ async function getProjectConfig(skipPrompts = false) {
206
276
  process.exit(0);
207
277
  }
208
278
  });
209
-
210
- return response;
279
+
280
+ return { ...basics, ...advanced };
211
281
  }
212
282
 
213
283
  function getSkillsForCategories(categories) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "antigravity-ide",
3
- "version": "3.5.2",
3
+ "version": "3.5.4",
4
4
  "description": "The Ultimate AI Agent Brain - Rules, Skills, and Workflows",
5
5
  "main": "cli/index.js",
6
6
  "files": [