create-auto-app 0.1.0 → 0.1.2

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 (187) hide show
  1. package/dist/index.js +189 -85
  2. package/dist/index.js.map +1 -1
  3. package/package.json +1 -1
  4. package/templates/shopping-app/.context/auto-ia-scheme.json +175 -0
  5. package/templates/shopping-app/.context/design-system.md +118 -0
  6. package/templates/shopping-app/.context/figma-variables.json +14448 -0
  7. package/templates/shopping-app/.context/schema.graphql +46 -0
  8. package/templates/shopping-app/.context/schema.json +583 -0
  9. package/templates/shopping-app/.context/shadcn-filter.ts +31 -0
  10. package/templates/shopping-app/.env +8 -0
  11. package/templates/shopping-app/auto.config.ts +21 -0
  12. package/templates/shopping-app/client/auto-configure.ts +107 -0
  13. package/templates/shopping-app/client/codegen.ts +16 -0
  14. package/templates/shopping-app/client/components.json +20 -0
  15. package/templates/shopping-app/client/design-system-principles.md +19 -0
  16. package/templates/shopping-app/client/eslint.config.ts +57 -0
  17. package/templates/shopping-app/client/index.html +26 -0
  18. package/templates/shopping-app/client/package.json +100 -0
  19. package/templates/shopping-app/client/postcss.config.js +6 -0
  20. package/templates/shopping-app/client/public/favicon.ico +0 -0
  21. package/templates/shopping-app/client/schema.graphql +46 -0
  22. package/templates/shopping-app/client/src/App.css +42 -0
  23. package/templates/shopping-app/client/src/App.tsx +20 -0
  24. package/templates/shopping-app/client/src/apolloClient.ts +8 -0
  25. package/templates/shopping-app/client/src/components/atoms/accordion.tsx +51 -0
  26. package/templates/shopping-app/client/src/components/atoms/alert-dialog.tsx +111 -0
  27. package/templates/shopping-app/client/src/components/atoms/alert.tsx +49 -0
  28. package/templates/shopping-app/client/src/components/atoms/aspect-ratio.tsx +7 -0
  29. package/templates/shopping-app/client/src/components/atoms/avatar.tsx +32 -0
  30. package/templates/shopping-app/client/src/components/atoms/badge.tsx +36 -0
  31. package/templates/shopping-app/client/src/components/atoms/breadcrumb.tsx +92 -0
  32. package/templates/shopping-app/client/src/components/atoms/button.tsx +50 -0
  33. package/templates/shopping-app/client/src/components/atoms/calendar.tsx +156 -0
  34. package/templates/shopping-app/client/src/components/atoms/card.tsx +56 -0
  35. package/templates/shopping-app/client/src/components/atoms/carousel.tsx +214 -0
  36. package/templates/shopping-app/client/src/components/atoms/chart.tsx +290 -0
  37. package/templates/shopping-app/client/src/components/atoms/checkbox.tsx +27 -0
  38. package/templates/shopping-app/client/src/components/atoms/collapsible.tsx +15 -0
  39. package/templates/shopping-app/client/src/components/atoms/command.tsx +135 -0
  40. package/templates/shopping-app/client/src/components/atoms/context-menu.tsx +209 -0
  41. package/templates/shopping-app/client/src/components/atoms/dialog.tsx +123 -0
  42. package/templates/shopping-app/client/src/components/atoms/drawer.tsx +106 -0
  43. package/templates/shopping-app/client/src/components/atoms/dropdown-menu.tsx +217 -0
  44. package/templates/shopping-app/client/src/components/atoms/hover-card.tsx +36 -0
  45. package/templates/shopping-app/client/src/components/atoms/input-otp.tsx +66 -0
  46. package/templates/shopping-app/client/src/components/atoms/input.tsx +21 -0
  47. package/templates/shopping-app/client/src/components/atoms/label.tsx +19 -0
  48. package/templates/shopping-app/client/src/components/atoms/logo.tsx +33 -0
  49. package/templates/shopping-app/client/src/components/atoms/menubar.tsx +234 -0
  50. package/templates/shopping-app/client/src/components/atoms/navigation-menu.tsx +142 -0
  51. package/templates/shopping-app/client/src/components/atoms/pagination.tsx +100 -0
  52. package/templates/shopping-app/client/src/components/atoms/popover.tsx +40 -0
  53. package/templates/shopping-app/client/src/components/atoms/progress.tsx +22 -0
  54. package/templates/shopping-app/client/src/components/atoms/radio-group.tsx +31 -0
  55. package/templates/shopping-app/client/src/components/atoms/resizable.tsx +46 -0
  56. package/templates/shopping-app/client/src/components/atoms/scroll-area.tsx +46 -0
  57. package/templates/shopping-app/client/src/components/atoms/select.tsx +158 -0
  58. package/templates/shopping-app/client/src/components/atoms/separator.tsx +26 -0
  59. package/templates/shopping-app/client/src/components/atoms/sheet.tsx +101 -0
  60. package/templates/shopping-app/client/src/components/atoms/sidebar.tsx +675 -0
  61. package/templates/shopping-app/client/src/components/atoms/skeleton.tsx +7 -0
  62. package/templates/shopping-app/client/src/components/atoms/slider.tsx +54 -0
  63. package/templates/shopping-app/client/src/components/atoms/sonner.tsx +23 -0
  64. package/templates/shopping-app/client/src/components/atoms/switch.tsx +26 -0
  65. package/templates/shopping-app/client/src/components/atoms/table.tsx +73 -0
  66. package/templates/shopping-app/client/src/components/atoms/tabs.tsx +40 -0
  67. package/templates/shopping-app/client/src/components/atoms/textarea.tsx +18 -0
  68. package/templates/shopping-app/client/src/components/atoms/toggle-group.tsx +65 -0
  69. package/templates/shopping-app/client/src/components/atoms/toggle.tsx +39 -0
  70. package/templates/shopping-app/client/src/components/atoms/tooltip.tsx +48 -0
  71. package/templates/shopping-app/client/src/components/molecules/QuantitySelector.tsx +8 -0
  72. package/templates/shopping-app/client/src/components/molecules/ShoppingCriteriaForm.tsx +8 -0
  73. package/templates/shopping-app/client/src/components/molecules/SuggestedItemCard.tsx +10 -0
  74. package/templates/shopping-app/client/src/components/organisms/AssistantChatInterface.tsx +14 -0
  75. package/templates/shopping-app/client/src/components/organisms/PageHeader.tsx +6 -0
  76. package/templates/shopping-app/client/src/components/organisms/SuggestedItemsList.tsx +15 -0
  77. package/templates/shopping-app/client/src/gql/fragment-masking.ts +48 -0
  78. package/templates/shopping-app/client/src/gql/gql.ts +47 -0
  79. package/templates/shopping-app/client/src/gql/graphql.ts +106 -0
  80. package/templates/shopping-app/client/src/gql/index.ts +2 -0
  81. package/templates/shopping-app/client/src/graphql/mutations.ts +13 -0
  82. package/templates/shopping-app/client/src/graphql/queries.ts +14 -0
  83. package/templates/shopping-app/client/src/hooks/use-mobile.tsx +19 -0
  84. package/templates/shopping-app/client/src/hooks/use-toast.ts +186 -0
  85. package/templates/shopping-app/client/src/index.css +153 -0
  86. package/templates/shopping-app/client/src/lib/utils.ts +6 -0
  87. package/templates/shopping-app/client/src/main.tsx +5 -0
  88. package/templates/shopping-app/client/src/mockApolloClient.ts +93 -0
  89. package/templates/shopping-app/client/src/pages/AssistantChatPage.tsx +8 -0
  90. package/templates/shopping-app/client/src/pages/Index.tsx +10 -0
  91. package/templates/shopping-app/client/src/pages/NotFound.tsx +22 -0
  92. package/templates/shopping-app/client/src/pages/SuggestedItemsPage.tsx +8 -0
  93. package/templates/shopping-app/client/tailwind.config.ts +92 -0
  94. package/templates/shopping-app/client/tsconfig.json +49 -0
  95. package/templates/shopping-app/client/vite.config.ts +17 -0
  96. package/templates/shopping-app/flows/shopping-assistant.flow.ts +369 -0
  97. package/templates/shopping-app/package.json +25 -0
  98. package/templates/shopping-app/pnpm-workspace.yaml +2 -0
  99. package/templates/shopping-app/server/package.json +25 -0
  100. package/templates/shopping-app/server/scripts/generate-schema.ts +31 -0
  101. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/commands.ts +8 -0
  102. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/decide.specs.ts +46 -0
  103. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/decide.ts +36 -0
  104. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/events.ts +10 -0
  105. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/evolve.ts +28 -0
  106. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/handle.ts +31 -0
  107. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/mutation.resolver.ts +29 -0
  108. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/register.ts +10 -0
  109. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/state.ts +47 -0
  110. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/creates-a-chat-session-/react.specs.ts +63 -0
  111. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/creates-a-chat-session-/react.ts +49 -0
  112. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/creates-a-chat-session-/register.ts +31 -0
  113. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/commands.ts +8 -0
  114. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/decide.specs.ts +38 -0
  115. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/decide.ts +36 -0
  116. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/events.ts +10 -0
  117. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/evolve.ts +28 -0
  118. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/handle.ts +31 -0
  119. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/mutation.resolver.ts +30 -0
  120. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/register.ts +10 -0
  121. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/state.ts +47 -0
  122. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/commands.ts +8 -0
  123. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/decide.specs.ts +61 -0
  124. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/decide.ts +45 -0
  125. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/events.ts +14 -0
  126. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/evolve.ts +28 -0
  127. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/handle.ts +59 -0
  128. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/mutation.resolver.ts +30 -0
  129. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/register.ts +10 -0
  130. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/state.ts +47 -0
  131. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/views-suggested-items/projection.specs.ts +94 -0
  132. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/views-suggested-items/projection.ts +40 -0
  133. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/views-suggested-items/query.resolver.ts +59 -0
  134. package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/views-suggested-items/state.ts +9 -0
  135. package/templates/shopping-app/server/src/domain/shared/ReadModel.d.ts +10 -0
  136. package/templates/shopping-app/server/src/domain/shared/ReadModel.d.ts.map +1 -0
  137. package/templates/shopping-app/server/src/domain/shared/ReadModel.js +19 -0
  138. package/templates/shopping-app/server/src/domain/shared/ReadModel.js.map +1 -0
  139. package/templates/shopping-app/server/src/domain/shared/ReadModel.ts +26 -0
  140. package/templates/shopping-app/server/src/domain/shared/index.d.ts +5 -0
  141. package/templates/shopping-app/server/src/domain/shared/index.d.ts.map +1 -0
  142. package/templates/shopping-app/server/src/domain/shared/index.js +5 -0
  143. package/templates/shopping-app/server/src/domain/shared/index.js.map +1 -0
  144. package/templates/shopping-app/server/src/domain/shared/index.ts +4 -0
  145. package/templates/shopping-app/server/src/domain/shared/reactorSpecification.d.ts +35 -0
  146. package/templates/shopping-app/server/src/domain/shared/reactorSpecification.d.ts.map +1 -0
  147. package/templates/shopping-app/server/src/domain/shared/reactorSpecification.js +155 -0
  148. package/templates/shopping-app/server/src/domain/shared/reactorSpecification.js.map +1 -0
  149. package/templates/shopping-app/server/src/domain/shared/reactorSpecification.ts +257 -0
  150. package/templates/shopping-app/server/src/domain/shared/sendCommand.d.ts +4 -0
  151. package/templates/shopping-app/server/src/domain/shared/sendCommand.d.ts.map +1 -0
  152. package/templates/shopping-app/server/src/domain/shared/sendCommand.js +17 -0
  153. package/templates/shopping-app/server/src/domain/shared/sendCommand.js.map +1 -0
  154. package/templates/shopping-app/server/src/domain/shared/sendCommand.ts +21 -0
  155. package/templates/shopping-app/server/src/domain/shared/types.d.ts +19 -0
  156. package/templates/shopping-app/server/src/domain/shared/types.d.ts.map +1 -0
  157. package/templates/shopping-app/server/src/domain/shared/types.js +39 -0
  158. package/templates/shopping-app/server/src/domain/shared/types.js.map +1 -0
  159. package/templates/shopping-app/server/src/domain/shared/types.ts +31 -0
  160. package/templates/shopping-app/server/src/integrations/ai-integration.ts +76 -0
  161. package/templates/shopping-app/server/src/integrations/cart-integration.ts +178 -0
  162. package/templates/shopping-app/server/src/integrations/index.ts +3 -0
  163. package/templates/shopping-app/server/src/integrations/product-catalogue-integration.ts +363 -0
  164. package/templates/shopping-app/server/src/server.ts +43 -0
  165. package/templates/shopping-app/server/src/utils/index.d.ts +4 -0
  166. package/templates/shopping-app/server/src/utils/index.d.ts.map +1 -0
  167. package/templates/shopping-app/server/src/utils/index.js +4 -0
  168. package/templates/shopping-app/server/src/utils/index.js.map +1 -0
  169. package/templates/shopping-app/server/src/utils/index.ts +3 -0
  170. package/templates/shopping-app/server/src/utils/loadProjections.d.ts +3 -0
  171. package/templates/shopping-app/server/src/utils/loadProjections.d.ts.map +1 -0
  172. package/templates/shopping-app/server/src/utils/loadProjections.js +23 -0
  173. package/templates/shopping-app/server/src/utils/loadProjections.js.map +1 -0
  174. package/templates/shopping-app/server/src/utils/loadProjections.ts +30 -0
  175. package/templates/shopping-app/server/src/utils/loadRegisterFiles.d.ts +6 -0
  176. package/templates/shopping-app/server/src/utils/loadRegisterFiles.d.ts.map +1 -0
  177. package/templates/shopping-app/server/src/utils/loadRegisterFiles.js +28 -0
  178. package/templates/shopping-app/server/src/utils/loadRegisterFiles.js.map +1 -0
  179. package/templates/shopping-app/server/src/utils/loadRegisterFiles.ts +41 -0
  180. package/templates/shopping-app/server/src/utils/loadResolvers.d.ts +5 -0
  181. package/templates/shopping-app/server/src/utils/loadResolvers.d.ts.map +1 -0
  182. package/templates/shopping-app/server/src/utils/loadResolvers.js +27 -0
  183. package/templates/shopping-app/server/src/utils/loadResolvers.js.map +1 -0
  184. package/templates/shopping-app/server/src/utils/loadResolvers.ts +36 -0
  185. package/templates/shopping-app/server/tsconfig.json +19 -0
  186. package/templates/shopping-app/server/vitest.config.ts +7 -0
  187. package/templates/shopping-app/tsconfig.json +21 -0
package/dist/index.js CHANGED
@@ -9,6 +9,22 @@ import path from 'path';
9
9
  import { fileURLToPath } from 'url';
10
10
  const __filename = fileURLToPath(import.meta.url);
11
11
  const __dirname = path.dirname(__filename);
12
+ const AUTO_ENGINEER_PACKAGES = [
13
+ '@auto-engineer/message-bus',
14
+ '@auto-engineer/backend-checks',
15
+ '@auto-engineer/design-system-importer',
16
+ '@auto-engineer/emmett-generator',
17
+ '@auto-engineer/flowlang',
18
+ '@auto-engineer/frontend-checks',
19
+ '@auto-engineer/frontend-implementation',
20
+ '@auto-engineer/information-architect',
21
+ '@auto-engineer/react-graphql-generator',
22
+ '@auto-engineer/server-implementer',
23
+ ];
24
+ const MINIMAL_PACKAGES = [
25
+ '@auto-engineer/flowlang',
26
+ '@auto-engineer/emmett-generator',
27
+ ];
12
28
  async function detectPackageManager() {
13
29
  try {
14
30
  await execa('pnpm', ['--version']);
@@ -24,11 +40,32 @@ async function detectPackageManager() {
24
40
  }
25
41
  }
26
42
  }
43
+ async function getLatestVersion(packageName) {
44
+ try {
45
+ const { stdout } = await execa('npm', ['view', packageName, 'version']);
46
+ return `^${stdout.trim()}`;
47
+ }
48
+ catch {
49
+ return 'latest';
50
+ }
51
+ }
52
+ async function getLatestVersions(packages) {
53
+ const spinner = ora('Fetching latest package versions...').start();
54
+ const versions = {};
55
+ await Promise.all(packages.map(async (pkg) => {
56
+ versions[pkg] = await getLatestVersion(pkg);
57
+ }));
58
+ // Always include CLI
59
+ versions['@auto-engineer/cli'] = await getLatestVersion('@auto-engineer/cli');
60
+ spinner.succeed('Package versions fetched');
61
+ return versions;
62
+ }
27
63
  async function createProject(options) {
28
- const { name, template, packageManager, installDeps } = options;
29
- const targetDir = path.resolve(process.cwd(), name);
30
- // Check if directory exists
31
- if (await fs.pathExists(targetDir)) {
64
+ const { name, template, preset, packageManager, installDeps } = options;
65
+ const targetDir = path.resolve(process.cwd(), name === '.' ? process.cwd() : name);
66
+ const projectName = name === '.' ? path.basename(process.cwd()) : name;
67
+ // Check if directory exists (unless it's current directory)
68
+ if (name !== '.' && await fs.pathExists(targetDir)) {
32
69
  const { overwrite } = await inquirer.prompt([
33
70
  {
34
71
  type: 'confirm',
@@ -44,11 +81,125 @@ async function createProject(options) {
44
81
  await fs.remove(targetDir);
45
82
  }
46
83
  console.log(chalk.blue(`\nCreating Auto Engineer project in ${chalk.bold(targetDir)}\n`));
47
- // Create project directory
48
- await fs.ensureDir(targetDir);
84
+ // Create target directory
85
+ try {
86
+ await fs.ensureDir(targetDir);
87
+ }
88
+ catch (error) {
89
+ console.error(chalk.red('Failed to create directory:'), error);
90
+ throw error;
91
+ }
92
+ // Use template if specified
93
+ if (template === 'shopping-app') {
94
+ const templatePath = path.join(__dirname, '..', 'templates', 'shopping-app');
95
+ if (await fs.pathExists(templatePath)) {
96
+ console.log(chalk.cyan('Using shopping-app template...'));
97
+ try {
98
+ await fs.copy(templatePath, targetDir, {
99
+ filter: (src) => !src.includes('node_modules') && !src.includes('.git'),
100
+ });
101
+ }
102
+ catch (error) {
103
+ console.error(chalk.red('Failed to copy template:'), error);
104
+ throw error;
105
+ }
106
+ // Update package.json with actual versions
107
+ const rootPackageJsonPath = path.join(targetDir, 'package.json');
108
+ const clientPackageJsonPath = path.join(targetDir, 'client', 'package.json');
109
+ const serverPackageJsonPath = path.join(targetDir, 'server', 'package.json');
110
+ // Get latest versions for all packages
111
+ const packagesToCheck = [...AUTO_ENGINEER_PACKAGES];
112
+ const versions = await getLatestVersions(packagesToCheck);
113
+ // Update root package.json
114
+ if (await fs.pathExists(rootPackageJsonPath)) {
115
+ const rootPkg = await fs.readJson(rootPackageJsonPath);
116
+ // Update dependencies
117
+ if (rootPkg.dependencies) {
118
+ for (const [pkg, version] of Object.entries(versions)) {
119
+ if (rootPkg.dependencies[pkg]) {
120
+ rootPkg.dependencies[pkg] = version;
121
+ }
122
+ }
123
+ }
124
+ // Update devDependencies
125
+ if (rootPkg.devDependencies) {
126
+ for (const [pkg, version] of Object.entries(versions)) {
127
+ if (rootPkg.devDependencies[pkg]) {
128
+ rootPkg.devDependencies[pkg] = version;
129
+ }
130
+ }
131
+ }
132
+ rootPkg.name = projectName;
133
+ await fs.writeJson(rootPackageJsonPath, rootPkg, { spaces: 2 });
134
+ }
135
+ // Update client package.json if exists
136
+ if (await fs.pathExists(clientPackageJsonPath)) {
137
+ const clientPkg = await fs.readJson(clientPackageJsonPath);
138
+ clientPkg.name = `${projectName}-client`;
139
+ await fs.writeJson(clientPackageJsonPath, clientPkg, { spaces: 2 });
140
+ }
141
+ // Update server package.json if exists
142
+ if (await fs.pathExists(serverPackageJsonPath)) {
143
+ const serverPkg = await fs.readJson(serverPackageJsonPath);
144
+ serverPkg.name = `${projectName}-server`;
145
+ await fs.writeJson(serverPackageJsonPath, serverPkg, { spaces: 2 });
146
+ }
147
+ }
148
+ else {
149
+ console.log(chalk.yellow('Template not found, creating minimal project...'));
150
+ await createMinimalProject(targetDir, projectName, preset || 'minimal', packageManager);
151
+ }
152
+ }
153
+ else {
154
+ // Create project based on preset
155
+ await createMinimalProject(targetDir, projectName, preset || 'minimal', packageManager);
156
+ }
157
+ // Install dependencies if requested
158
+ if (installDeps) {
159
+ const spinner = ora('Installing dependencies...').start();
160
+ try {
161
+ // Install root dependencies
162
+ await execa(packageManager, ['install'], { cwd: targetDir });
163
+ // If it's a monorepo (has workspaces), pnpm install at root handles everything
164
+ const rootPkg = await fs.readJson(path.join(targetDir, 'package.json'));
165
+ if (!rootPkg.workspaces && !rootPkg['pnpm-workspace.yaml']) {
166
+ // Install client dependencies if exists
167
+ const clientDir = path.join(targetDir, 'client');
168
+ if (await fs.pathExists(clientDir)) {
169
+ await execa(packageManager, ['install'], { cwd: clientDir });
170
+ }
171
+ // Install server dependencies if exists
172
+ const serverDir = path.join(targetDir, 'server');
173
+ if (await fs.pathExists(serverDir)) {
174
+ await execa(packageManager, ['install'], { cwd: serverDir });
175
+ }
176
+ }
177
+ spinner.succeed('Dependencies installed');
178
+ }
179
+ catch (error) {
180
+ spinner.fail('Failed to install dependencies');
181
+ console.error(error);
182
+ }
183
+ }
184
+ // Success message
185
+ console.log(chalk.green('\n✓ Project created successfully!\n'));
186
+ console.log('Next steps:');
187
+ if (name !== '.') {
188
+ console.log(chalk.cyan(` cd ${name}`));
189
+ }
190
+ if (!installDeps) {
191
+ console.log(chalk.cyan(` ${packageManager} install`));
192
+ }
193
+ console.log(chalk.cyan(` ${packageManager} run dev\n`));
194
+ }
195
+ async function createMinimalProject(targetDir, projectName, preset, packageManager) {
196
+ // Determine which packages to include
197
+ const packagesToInclude = preset === 'full' ? AUTO_ENGINEER_PACKAGES : MINIMAL_PACKAGES;
198
+ // Get latest versions
199
+ const versions = await getLatestVersions(packagesToInclude);
49
200
  // Generate package.json
50
201
  const packageJson = {
51
- name,
202
+ name: projectName,
52
203
  version: '0.1.0',
53
204
  private: true,
54
205
  scripts: {
@@ -56,51 +207,14 @@ async function createProject(options) {
56
207
  build: 'auto build',
57
208
  test: 'auto test',
58
209
  },
59
- devDependencies: {},
210
+ devDependencies: versions,
60
211
  };
61
- // Add dependencies based on template
62
- const dependencies = {};
63
- const devDependencies = {
64
- '@auto-engineer/cli': 'latest',
65
- };
66
- if (template === 'minimal') {
67
- devDependencies['@auto-engineer/flowlang'] = 'latest';
68
- devDependencies['@auto-engineer/emmett-generator'] = 'latest';
69
- }
70
- else if (template === 'shopping-assistant') {
71
- devDependencies['@auto-engineer/flowlang'] = 'latest';
72
- devDependencies['@auto-engineer/emmett-generator'] = 'latest';
73
- devDependencies['@auto-engineer/react-graphql-generator'] = 'latest';
74
- devDependencies['@auto-engineer/frontend-implementation'] = 'latest';
75
- // Copy example files from flowlang templates
76
- const templatesSource = path.join(__dirname, 'templates', 'shopping-assistant');
77
- if (await fs.pathExists(templatesSource)) {
78
- await fs.copy(templatesSource, targetDir);
79
- }
80
- else {
81
- // If templates don't exist in our package, use flowlang's create:example
82
- console.log(chalk.yellow('Using flowlang example template...'));
83
- }
84
- }
85
- else if (template === 'full') {
86
- // Install all available packages
87
- devDependencies['@auto-engineer/flowlang'] = 'latest';
88
- devDependencies['@auto-engineer/emmett-generator'] = 'latest';
89
- devDependencies['@auto-engineer/react-graphql-generator'] = 'latest';
90
- devDependencies['@auto-engineer/frontend-implementation'] = 'latest';
91
- devDependencies['@auto-engineer/backend-checks'] = 'latest';
92
- devDependencies['@auto-engineer/frontend-checks'] = 'latest';
93
- devDependencies['@auto-engineer/information-architect'] = 'latest';
94
- devDependencies['@auto-engineer/design-system-importer'] = 'latest';
95
- devDependencies['@auto-engineer/server-implementer'] = 'latest';
96
- }
97
- packageJson.devDependencies = devDependencies;
98
212
  // Write package.json
99
213
  await fs.writeJson(path.join(targetDir, 'package.json'), packageJson, { spaces: 2 });
100
214
  // Create auto.config.ts
101
- const plugins = Object.keys(devDependencies)
102
- .filter((pkg) => pkg !== '@auto-engineer/cli')
103
- .map((pkg) => ` '${pkg}',`)
215
+ const plugins = Object.keys(versions)
216
+ .filter(pkg => pkg !== '@auto-engineer/cli')
217
+ .map(pkg => ` '${pkg}',`)
104
218
  .join('\n');
105
219
  const autoConfig = `export default {
106
220
  plugins: [
@@ -118,10 +232,12 @@ dist
118
232
  .tmp
119
233
  .env.local
120
234
  *.log
235
+ .next
236
+ .turbo
121
237
  `;
122
238
  await fs.writeFile(path.join(targetDir, '.gitignore'), gitignore);
123
239
  // Create README.md
124
- const readme = `# ${name}
240
+ const readme = `# ${projectName}
125
241
 
126
242
  An Auto Engineer project.
127
243
 
@@ -147,37 +263,15 @@ ${packageManager} run dev
147
263
  Visit [Auto Engineer Documentation](https://github.com/solguru310/auto-engineer) to learn more.
148
264
  `;
149
265
  await fs.writeFile(path.join(targetDir, 'README.md'), readme);
150
- // Install dependencies if requested
151
- if (installDeps) {
152
- const spinner = ora('Installing dependencies...').start();
153
- try {
154
- await execa(packageManager, ['install'], { cwd: targetDir });
155
- spinner.succeed('Dependencies installed');
156
- }
157
- catch (error) {
158
- spinner.fail('Failed to install dependencies');
159
- console.error(error);
160
- }
161
- }
162
- // Success message
163
- console.log(chalk.green('\n✓ Project created successfully!\n'));
164
- console.log('Next steps:');
165
- console.log(chalk.cyan(` cd ${name}`));
166
- if (!installDeps) {
167
- console.log(chalk.cyan(` ${packageManager} install`));
168
- }
169
- if (template === 'shopping-assistant' && !(await fs.pathExists(path.join(targetDir, 'flows')))) {
170
- console.log(chalk.cyan(' npx auto create:example shopping-assistant .'));
171
- }
172
- console.log(chalk.cyan(` ${packageManager} run dev\n`));
173
266
  }
174
267
  async function main() {
175
268
  program
176
- .name('create-auto-engineer')
177
- .description('Create a new Auto Engineer project')
269
+ .name('create-auto-app')
270
+ .description('Create a new Auto Engineer application')
178
271
  .version('0.1.0')
179
- .argument('[project-name]', 'Name of the project')
180
- .option('-t, --template <template>', 'Project template (minimal, shopping-assistant, full)', 'minimal')
272
+ .argument('[project-name]', 'Name of the project (use "." for current directory)')
273
+ .option('-t, --template <template>', 'Project template (shopping-app)', 'shopping-app')
274
+ .option('-p, --preset <preset>', 'Package preset (minimal, full)', 'full')
181
275
  .option('--no-install', 'Skip dependency installation')
182
276
  .option('--use-npm', 'Use npm as package manager')
183
277
  .option('--use-yarn', 'Use yarn as package manager')
@@ -192,8 +286,10 @@ async function main() {
192
286
  type: 'input',
193
287
  name: 'name',
194
288
  message: 'Project name:',
195
- default: 'my-auto-engineer-app',
289
+ default: 'my-auto-app',
196
290
  validate: (input) => {
291
+ if (input === '.')
292
+ return true;
197
293
  if (!input.trim())
198
294
  return 'Project name is required';
199
295
  if (!/^[a-z0-9-_]+$/i.test(input)) {
@@ -204,14 +300,14 @@ async function main() {
204
300
  },
205
301
  {
206
302
  type: 'list',
207
- name: 'template',
208
- message: 'Select a template:',
303
+ name: 'setupType',
304
+ message: 'How would you like to set up your project?',
209
305
  choices: [
210
- { name: 'Minimal - Just the essentials', value: 'minimal' },
211
- { name: 'Shopping Assistant - E-commerce example', value: 'shopping-assistant' },
212
- { name: 'Full - All packages installed', value: 'full' },
306
+ { name: 'Use shopping-app template (full e-commerce example)', value: 'template' },
307
+ { name: 'Create minimal project (just essentials)', value: 'minimal' },
308
+ { name: 'Create full project (all packages)', value: 'full' },
213
309
  ],
214
- default: 'minimal',
310
+ default: 'template',
215
311
  },
216
312
  {
217
313
  type: 'confirm',
@@ -221,7 +317,14 @@ async function main() {
221
317
  },
222
318
  ]);
223
319
  projectName = answers.name;
224
- options.template = answers.template;
320
+ if (answers.setupType === 'template') {
321
+ options.template = 'shopping-app';
322
+ options.preset = undefined;
323
+ }
324
+ else {
325
+ options.template = undefined;
326
+ options.preset = answers.setupType;
327
+ }
225
328
  options.install = answers.installDeps;
226
329
  }
227
330
  // Detect package manager
@@ -240,7 +343,8 @@ async function main() {
240
343
  }
241
344
  const projectOptions = {
242
345
  name: projectName,
243
- template: options.template,
346
+ template: options.template === 'shopping-app' ? 'shopping-app' : undefined,
347
+ preset: options.preset,
244
348
  packageManager,
245
349
  installDeps: options.install !== false,
246
350
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-auto-app",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Create Auto Engineer apps with no configuration",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,175 @@
1
+ {
2
+ "schema_description": "UI schema for a seasonal shopping assistant application that helps users find products through AI-powered recommendations",
3
+ "atoms": {
4
+ "description": "Basic UI primitives used throughout the application",
5
+ "items": {}
6
+ },
7
+ "molecules": {
8
+ "description": "Reusable components composed from atoms",
9
+ "items": {
10
+ "ShoppingCriteriaForm": {
11
+ "description": "Form for entering shopping criteria with examples and submission",
12
+ "composition": {
13
+ "atoms": [
14
+ "<TextField> | Multiline",
15
+ "<Button>"
16
+ ]
17
+ }
18
+ },
19
+ "SuggestedItemCard": {
20
+ "description": "Card displaying a suggested item with quantity selector and reason",
21
+ "composition": {
22
+ "atoms": [
23
+ "<Card>",
24
+ "<CardHeader>",
25
+ "<TextField>",
26
+ "<Button>"
27
+ ]
28
+ }
29
+ },
30
+ "QuantitySelector": {
31
+ "description": "Component for adjusting item quantities",
32
+ "composition": {
33
+ "atoms": [
34
+ "<TextField>",
35
+ "!!<IconButton>"
36
+ ]
37
+ }
38
+ }
39
+ }
40
+ },
41
+ "organisms": {
42
+ "description": "Smart UI components with data-fetching and business logic",
43
+ "items": {
44
+ "AssistantChatInterface": {
45
+ "description": "Main interface for entering shopping criteria and starting a session",
46
+ "composition": {
47
+ "molecules": [
48
+ "ShoppingCriteriaForm"
49
+ ]
50
+ },
51
+ "data_requirements": [
52
+ {
53
+ "type": "mutation",
54
+ "description": "Submit shopping criteria to start a session",
55
+ "trigger": "When user submits criteria form",
56
+ "details": {
57
+ "source": "User input form",
58
+ "gql": "mutation EnterShoppingCriteria($input: EnterShoppingCriteriaInput!) {\n enterShoppingCriteria(input: $input) {\n success\n error {\n type\n message\n }\n }\n }",
59
+ "payload_schema": {
60
+ "sessionId": "string",
61
+ "criteria": "string"
62
+ }
63
+ }
64
+ }
65
+ ],
66
+ "specs": [
67
+ "allow shopper to describe their shopping needs in natural language",
68
+ "provide a text input for entering criteria",
69
+ "show examples of what to include (age, interests, budget)",
70
+ "show a button to submit the criteria",
71
+ "generate a persisted session id for a visit",
72
+ "show the header on top of the page"
73
+ ]
74
+ },
75
+ "SuggestedItemsList": {
76
+ "description": "Display suggested items with selection and cart functionality",
77
+ "composition": {
78
+ "molecules": [
79
+ "SuggestedItemCard"
80
+ ]
81
+ },
82
+ "data_requirements": [
83
+ {
84
+ "type": "query",
85
+ "description": "Fetch suggested items for the session",
86
+ "trigger": "When page loads or session updates",
87
+ "details": {
88
+ "source": "Session-based suggestions",
89
+ "gql": "query GetSuggestedItems($sessionId: ID!) {\n suggestedItems(sessionId: $sessionId) {\n items {\n productId\n name\n quantity\n reason\n }\n }\n }",
90
+ "payload_schema": {
91
+ "sessionId": "ID"
92
+ }
93
+ }
94
+ }
95
+ ],
96
+ "specs": [
97
+ "display all suggested items with names and reasons",
98
+ "show quantity selectors for each item",
99
+ "have an \"Add to Cart\" button for selected items",
100
+ "allow removing items from the suggestions",
101
+ "allow selecting specific items to add",
102
+ "update quantities before adding to cart",
103
+ "provide feedback when items are added"
104
+ ]
105
+ },
106
+ "PageHeader": {
107
+ "description": "Header component shown on top of pages",
108
+ "composition": {
109
+ "molecules": []
110
+ }
111
+ }
112
+ }
113
+ },
114
+ "pages": {
115
+ "description": "Top-level application pages and their routing",
116
+ "items": {
117
+ "AssistantChatPage": {
118
+ "route": "/",
119
+ "description": "Main page where users enter shopping criteria",
120
+ "layout": {
121
+ "organisms": [
122
+ "PageHeader",
123
+ "AssistantChatInterface"
124
+ ]
125
+ },
126
+ "navigation": [
127
+ {
128
+ "on": "Submit criteria",
129
+ "to": "SuggestedItemsPage"
130
+ }
131
+ ],
132
+ "data_requirements": [
133
+ {
134
+ "type": "mutation",
135
+ "description": "Submit shopping criteria",
136
+ "trigger": "When user submits form",
137
+ "details": {
138
+ "source": "User form input",
139
+ "gql": "mutation EnterShoppingCriteria($input: EnterShoppingCriteriaInput!) {\n enterShoppingCriteria(input: $input) {\n success\n error {\n type\n message\n }\n }\n }",
140
+ "payload_schema": {
141
+ "sessionId": "string",
142
+ "criteria": "string"
143
+ }
144
+ }
145
+ }
146
+ ]
147
+ },
148
+ "SuggestedItemsPage": {
149
+ "route": "/suggested-items/:sessionId",
150
+ "description": "Page displaying AI-suggested items for the shopping criteria",
151
+ "layout": {
152
+ "organisms": [
153
+ "PageHeader",
154
+ "SuggestedItemsList"
155
+ ]
156
+ },
157
+ "navigation": [],
158
+ "data_requirements": [
159
+ {
160
+ "type": "query",
161
+ "description": "Get suggested items for session",
162
+ "trigger": "When page loads",
163
+ "details": {
164
+ "source": "Session suggestions",
165
+ "gql": "query GetSuggestedItems($sessionId: ID!) {\n suggestedItems(sessionId: $sessionId) {\n items {\n productId\n name\n quantity\n reason\n }\n }\n }",
166
+ "payload_schema": {
167
+ "sessionId": "ID"
168
+ }
169
+ }
170
+ }
171
+ ]
172
+ }
173
+ }
174
+ }
175
+ }