create-auto-app 0.1.0 → 0.1.1

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 +182 -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,118 @@ 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
+ // If using current directory, ensure it exists
85
+ if (name === '.') {
86
+ await fs.ensureDir(targetDir);
87
+ }
88
+ else {
89
+ await fs.mkdir(targetDir, { recursive: true });
90
+ }
91
+ // Use template if specified
92
+ if (template === 'shopping-app') {
93
+ const templatePath = path.join(__dirname, '..', 'templates', 'shopping-app');
94
+ if (await fs.pathExists(templatePath)) {
95
+ console.log(chalk.cyan('Using shopping-app template...'));
96
+ await fs.copy(templatePath, targetDir, {
97
+ filter: (src) => !src.includes('node_modules') && !src.includes('.git'),
98
+ });
99
+ // Update package.json with actual versions
100
+ const rootPackageJsonPath = path.join(targetDir, 'package.json');
101
+ const clientPackageJsonPath = path.join(targetDir, 'client', 'package.json');
102
+ const serverPackageJsonPath = path.join(targetDir, 'server', 'package.json');
103
+ // Get latest versions for all packages
104
+ const packagesToCheck = [...AUTO_ENGINEER_PACKAGES];
105
+ const versions = await getLatestVersions(packagesToCheck);
106
+ // Update root package.json
107
+ if (await fs.pathExists(rootPackageJsonPath)) {
108
+ const rootPkg = await fs.readJson(rootPackageJsonPath);
109
+ // Update dependencies
110
+ if (rootPkg.dependencies) {
111
+ for (const [pkg, version] of Object.entries(versions)) {
112
+ if (rootPkg.dependencies[pkg]) {
113
+ rootPkg.dependencies[pkg] = version;
114
+ }
115
+ }
116
+ }
117
+ // Update devDependencies
118
+ if (rootPkg.devDependencies) {
119
+ for (const [pkg, version] of Object.entries(versions)) {
120
+ if (rootPkg.devDependencies[pkg]) {
121
+ rootPkg.devDependencies[pkg] = version;
122
+ }
123
+ }
124
+ }
125
+ rootPkg.name = projectName;
126
+ await fs.writeJson(rootPackageJsonPath, rootPkg, { spaces: 2 });
127
+ }
128
+ // Update client package.json if exists
129
+ if (await fs.pathExists(clientPackageJsonPath)) {
130
+ const clientPkg = await fs.readJson(clientPackageJsonPath);
131
+ clientPkg.name = `${projectName}-client`;
132
+ await fs.writeJson(clientPackageJsonPath, clientPkg, { spaces: 2 });
133
+ }
134
+ // Update server package.json if exists
135
+ if (await fs.pathExists(serverPackageJsonPath)) {
136
+ const serverPkg = await fs.readJson(serverPackageJsonPath);
137
+ serverPkg.name = `${projectName}-server`;
138
+ await fs.writeJson(serverPackageJsonPath, serverPkg, { spaces: 2 });
139
+ }
140
+ }
141
+ else {
142
+ console.log(chalk.yellow('Template not found, creating minimal project...'));
143
+ await createMinimalProject(targetDir, projectName, preset || 'minimal', packageManager);
144
+ }
145
+ }
146
+ else {
147
+ // Create project based on preset
148
+ await createMinimalProject(targetDir, projectName, preset || 'minimal', packageManager);
149
+ }
150
+ // Install dependencies if requested
151
+ if (installDeps) {
152
+ const spinner = ora('Installing dependencies...').start();
153
+ try {
154
+ // Install root dependencies
155
+ await execa(packageManager, ['install'], { cwd: targetDir });
156
+ // If it's a monorepo (has workspaces), pnpm install at root handles everything
157
+ const rootPkg = await fs.readJson(path.join(targetDir, 'package.json'));
158
+ if (!rootPkg.workspaces && !rootPkg['pnpm-workspace.yaml']) {
159
+ // Install client dependencies if exists
160
+ const clientDir = path.join(targetDir, 'client');
161
+ if (await fs.pathExists(clientDir)) {
162
+ await execa(packageManager, ['install'], { cwd: clientDir });
163
+ }
164
+ // Install server dependencies if exists
165
+ const serverDir = path.join(targetDir, 'server');
166
+ if (await fs.pathExists(serverDir)) {
167
+ await execa(packageManager, ['install'], { cwd: serverDir });
168
+ }
169
+ }
170
+ spinner.succeed('Dependencies installed');
171
+ }
172
+ catch (error) {
173
+ spinner.fail('Failed to install dependencies');
174
+ console.error(error);
175
+ }
176
+ }
177
+ // Success message
178
+ console.log(chalk.green('\n✓ Project created successfully!\n'));
179
+ console.log('Next steps:');
180
+ if (name !== '.') {
181
+ console.log(chalk.cyan(` cd ${name}`));
182
+ }
183
+ if (!installDeps) {
184
+ console.log(chalk.cyan(` ${packageManager} install`));
185
+ }
186
+ console.log(chalk.cyan(` ${packageManager} run dev\n`));
187
+ }
188
+ async function createMinimalProject(targetDir, projectName, preset, packageManager) {
189
+ // Determine which packages to include
190
+ const packagesToInclude = preset === 'full' ? AUTO_ENGINEER_PACKAGES : MINIMAL_PACKAGES;
191
+ // Get latest versions
192
+ const versions = await getLatestVersions(packagesToInclude);
49
193
  // Generate package.json
50
194
  const packageJson = {
51
- name,
195
+ name: projectName,
52
196
  version: '0.1.0',
53
197
  private: true,
54
198
  scripts: {
@@ -56,51 +200,14 @@ async function createProject(options) {
56
200
  build: 'auto build',
57
201
  test: 'auto test',
58
202
  },
59
- devDependencies: {},
203
+ devDependencies: versions,
60
204
  };
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
205
  // Write package.json
99
206
  await fs.writeJson(path.join(targetDir, 'package.json'), packageJson, { spaces: 2 });
100
207
  // Create auto.config.ts
101
- const plugins = Object.keys(devDependencies)
102
- .filter((pkg) => pkg !== '@auto-engineer/cli')
103
- .map((pkg) => ` '${pkg}',`)
208
+ const plugins = Object.keys(versions)
209
+ .filter(pkg => pkg !== '@auto-engineer/cli')
210
+ .map(pkg => ` '${pkg}',`)
104
211
  .join('\n');
105
212
  const autoConfig = `export default {
106
213
  plugins: [
@@ -118,10 +225,12 @@ dist
118
225
  .tmp
119
226
  .env.local
120
227
  *.log
228
+ .next
229
+ .turbo
121
230
  `;
122
231
  await fs.writeFile(path.join(targetDir, '.gitignore'), gitignore);
123
232
  // Create README.md
124
- const readme = `# ${name}
233
+ const readme = `# ${projectName}
125
234
 
126
235
  An Auto Engineer project.
127
236
 
@@ -147,37 +256,15 @@ ${packageManager} run dev
147
256
  Visit [Auto Engineer Documentation](https://github.com/solguru310/auto-engineer) to learn more.
148
257
  `;
149
258
  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
259
  }
174
260
  async function main() {
175
261
  program
176
- .name('create-auto-engineer')
177
- .description('Create a new Auto Engineer project')
262
+ .name('create-auto-app')
263
+ .description('Create a new Auto Engineer application')
178
264
  .version('0.1.0')
179
- .argument('[project-name]', 'Name of the project')
180
- .option('-t, --template <template>', 'Project template (minimal, shopping-assistant, full)', 'minimal')
265
+ .argument('[project-name]', 'Name of the project (use "." for current directory)')
266
+ .option('-t, --template <template>', 'Project template (shopping-app)', 'shopping-app')
267
+ .option('-p, --preset <preset>', 'Package preset (minimal, full)', 'full')
181
268
  .option('--no-install', 'Skip dependency installation')
182
269
  .option('--use-npm', 'Use npm as package manager')
183
270
  .option('--use-yarn', 'Use yarn as package manager')
@@ -192,8 +279,10 @@ async function main() {
192
279
  type: 'input',
193
280
  name: 'name',
194
281
  message: 'Project name:',
195
- default: 'my-auto-engineer-app',
282
+ default: 'my-auto-app',
196
283
  validate: (input) => {
284
+ if (input === '.')
285
+ return true;
197
286
  if (!input.trim())
198
287
  return 'Project name is required';
199
288
  if (!/^[a-z0-9-_]+$/i.test(input)) {
@@ -204,14 +293,14 @@ async function main() {
204
293
  },
205
294
  {
206
295
  type: 'list',
207
- name: 'template',
208
- message: 'Select a template:',
296
+ name: 'setupType',
297
+ message: 'How would you like to set up your project?',
209
298
  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' },
299
+ { name: 'Use shopping-app template (full e-commerce example)', value: 'template' },
300
+ { name: 'Create minimal project (just essentials)', value: 'minimal' },
301
+ { name: 'Create full project (all packages)', value: 'full' },
213
302
  ],
214
- default: 'minimal',
303
+ default: 'template',
215
304
  },
216
305
  {
217
306
  type: 'confirm',
@@ -221,7 +310,14 @@ async function main() {
221
310
  },
222
311
  ]);
223
312
  projectName = answers.name;
224
- options.template = answers.template;
313
+ if (answers.setupType === 'template') {
314
+ options.template = 'shopping-app';
315
+ options.preset = undefined;
316
+ }
317
+ else {
318
+ options.template = undefined;
319
+ options.preset = answers.setupType;
320
+ }
225
321
  options.install = answers.installDeps;
226
322
  }
227
323
  // Detect package manager
@@ -240,7 +336,8 @@ async function main() {
240
336
  }
241
337
  const projectOptions = {
242
338
  name: projectName,
243
- template: options.template,
339
+ template: options.template === 'shopping-app' ? 'shopping-app' : undefined,
340
+ preset: options.preset,
244
341
  packageManager,
245
342
  installDeps: options.install !== false,
246
343
  };
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.1",
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
+ }