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.
- package/dist/index.js +182 -85
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/templates/shopping-app/.context/auto-ia-scheme.json +175 -0
- package/templates/shopping-app/.context/design-system.md +118 -0
- package/templates/shopping-app/.context/figma-variables.json +14448 -0
- package/templates/shopping-app/.context/schema.graphql +46 -0
- package/templates/shopping-app/.context/schema.json +583 -0
- package/templates/shopping-app/.context/shadcn-filter.ts +31 -0
- package/templates/shopping-app/.env +8 -0
- package/templates/shopping-app/auto.config.ts +21 -0
- package/templates/shopping-app/client/auto-configure.ts +107 -0
- package/templates/shopping-app/client/codegen.ts +16 -0
- package/templates/shopping-app/client/components.json +20 -0
- package/templates/shopping-app/client/design-system-principles.md +19 -0
- package/templates/shopping-app/client/eslint.config.ts +57 -0
- package/templates/shopping-app/client/index.html +26 -0
- package/templates/shopping-app/client/package.json +100 -0
- package/templates/shopping-app/client/postcss.config.js +6 -0
- package/templates/shopping-app/client/public/favicon.ico +0 -0
- package/templates/shopping-app/client/schema.graphql +46 -0
- package/templates/shopping-app/client/src/App.css +42 -0
- package/templates/shopping-app/client/src/App.tsx +20 -0
- package/templates/shopping-app/client/src/apolloClient.ts +8 -0
- package/templates/shopping-app/client/src/components/atoms/accordion.tsx +51 -0
- package/templates/shopping-app/client/src/components/atoms/alert-dialog.tsx +111 -0
- package/templates/shopping-app/client/src/components/atoms/alert.tsx +49 -0
- package/templates/shopping-app/client/src/components/atoms/aspect-ratio.tsx +7 -0
- package/templates/shopping-app/client/src/components/atoms/avatar.tsx +32 -0
- package/templates/shopping-app/client/src/components/atoms/badge.tsx +36 -0
- package/templates/shopping-app/client/src/components/atoms/breadcrumb.tsx +92 -0
- package/templates/shopping-app/client/src/components/atoms/button.tsx +50 -0
- package/templates/shopping-app/client/src/components/atoms/calendar.tsx +156 -0
- package/templates/shopping-app/client/src/components/atoms/card.tsx +56 -0
- package/templates/shopping-app/client/src/components/atoms/carousel.tsx +214 -0
- package/templates/shopping-app/client/src/components/atoms/chart.tsx +290 -0
- package/templates/shopping-app/client/src/components/atoms/checkbox.tsx +27 -0
- package/templates/shopping-app/client/src/components/atoms/collapsible.tsx +15 -0
- package/templates/shopping-app/client/src/components/atoms/command.tsx +135 -0
- package/templates/shopping-app/client/src/components/atoms/context-menu.tsx +209 -0
- package/templates/shopping-app/client/src/components/atoms/dialog.tsx +123 -0
- package/templates/shopping-app/client/src/components/atoms/drawer.tsx +106 -0
- package/templates/shopping-app/client/src/components/atoms/dropdown-menu.tsx +217 -0
- package/templates/shopping-app/client/src/components/atoms/hover-card.tsx +36 -0
- package/templates/shopping-app/client/src/components/atoms/input-otp.tsx +66 -0
- package/templates/shopping-app/client/src/components/atoms/input.tsx +21 -0
- package/templates/shopping-app/client/src/components/atoms/label.tsx +19 -0
- package/templates/shopping-app/client/src/components/atoms/logo.tsx +33 -0
- package/templates/shopping-app/client/src/components/atoms/menubar.tsx +234 -0
- package/templates/shopping-app/client/src/components/atoms/navigation-menu.tsx +142 -0
- package/templates/shopping-app/client/src/components/atoms/pagination.tsx +100 -0
- package/templates/shopping-app/client/src/components/atoms/popover.tsx +40 -0
- package/templates/shopping-app/client/src/components/atoms/progress.tsx +22 -0
- package/templates/shopping-app/client/src/components/atoms/radio-group.tsx +31 -0
- package/templates/shopping-app/client/src/components/atoms/resizable.tsx +46 -0
- package/templates/shopping-app/client/src/components/atoms/scroll-area.tsx +46 -0
- package/templates/shopping-app/client/src/components/atoms/select.tsx +158 -0
- package/templates/shopping-app/client/src/components/atoms/separator.tsx +26 -0
- package/templates/shopping-app/client/src/components/atoms/sheet.tsx +101 -0
- package/templates/shopping-app/client/src/components/atoms/sidebar.tsx +675 -0
- package/templates/shopping-app/client/src/components/atoms/skeleton.tsx +7 -0
- package/templates/shopping-app/client/src/components/atoms/slider.tsx +54 -0
- package/templates/shopping-app/client/src/components/atoms/sonner.tsx +23 -0
- package/templates/shopping-app/client/src/components/atoms/switch.tsx +26 -0
- package/templates/shopping-app/client/src/components/atoms/table.tsx +73 -0
- package/templates/shopping-app/client/src/components/atoms/tabs.tsx +40 -0
- package/templates/shopping-app/client/src/components/atoms/textarea.tsx +18 -0
- package/templates/shopping-app/client/src/components/atoms/toggle-group.tsx +65 -0
- package/templates/shopping-app/client/src/components/atoms/toggle.tsx +39 -0
- package/templates/shopping-app/client/src/components/atoms/tooltip.tsx +48 -0
- package/templates/shopping-app/client/src/components/molecules/QuantitySelector.tsx +8 -0
- package/templates/shopping-app/client/src/components/molecules/ShoppingCriteriaForm.tsx +8 -0
- package/templates/shopping-app/client/src/components/molecules/SuggestedItemCard.tsx +10 -0
- package/templates/shopping-app/client/src/components/organisms/AssistantChatInterface.tsx +14 -0
- package/templates/shopping-app/client/src/components/organisms/PageHeader.tsx +6 -0
- package/templates/shopping-app/client/src/components/organisms/SuggestedItemsList.tsx +15 -0
- package/templates/shopping-app/client/src/gql/fragment-masking.ts +48 -0
- package/templates/shopping-app/client/src/gql/gql.ts +47 -0
- package/templates/shopping-app/client/src/gql/graphql.ts +106 -0
- package/templates/shopping-app/client/src/gql/index.ts +2 -0
- package/templates/shopping-app/client/src/graphql/mutations.ts +13 -0
- package/templates/shopping-app/client/src/graphql/queries.ts +14 -0
- package/templates/shopping-app/client/src/hooks/use-mobile.tsx +19 -0
- package/templates/shopping-app/client/src/hooks/use-toast.ts +186 -0
- package/templates/shopping-app/client/src/index.css +153 -0
- package/templates/shopping-app/client/src/lib/utils.ts +6 -0
- package/templates/shopping-app/client/src/main.tsx +5 -0
- package/templates/shopping-app/client/src/mockApolloClient.ts +93 -0
- package/templates/shopping-app/client/src/pages/AssistantChatPage.tsx +8 -0
- package/templates/shopping-app/client/src/pages/Index.tsx +10 -0
- package/templates/shopping-app/client/src/pages/NotFound.tsx +22 -0
- package/templates/shopping-app/client/src/pages/SuggestedItemsPage.tsx +8 -0
- package/templates/shopping-app/client/tailwind.config.ts +92 -0
- package/templates/shopping-app/client/tsconfig.json +49 -0
- package/templates/shopping-app/client/vite.config.ts +17 -0
- package/templates/shopping-app/flows/shopping-assistant.flow.ts +369 -0
- package/templates/shopping-app/package.json +25 -0
- package/templates/shopping-app/pnpm-workspace.yaml +2 -0
- package/templates/shopping-app/server/package.json +25 -0
- package/templates/shopping-app/server/scripts/generate-schema.ts +31 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/commands.ts +8 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/decide.specs.ts +46 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/decide.ts +36 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/events.ts +10 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/evolve.ts +28 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/handle.ts +31 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/mutation.resolver.ts +29 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/register.ts +10 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/accepts-items-and-adds-to-their-cart/state.ts +47 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/creates-a-chat-session-/react.specs.ts +63 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/creates-a-chat-session-/react.ts +49 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/creates-a-chat-session-/register.ts +31 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/commands.ts +8 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/decide.specs.ts +38 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/decide.ts +36 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/events.ts +10 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/evolve.ts +28 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/handle.ts +31 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/mutation.resolver.ts +30 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/register.ts +10 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/enters-shopping-criteria-into-assistant/state.ts +47 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/commands.ts +8 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/decide.specs.ts +61 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/decide.ts +45 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/events.ts +14 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/evolve.ts +28 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/handle.ts +59 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/mutation.resolver.ts +30 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/register.ts +10 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/selects-items-relevant-to-the-shopping-criteria-/state.ts +47 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/views-suggested-items/projection.specs.ts +94 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/views-suggested-items/projection.ts +40 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/views-suggested-items/query.resolver.ts +59 -0
- package/templates/shopping-app/server/src/domain/flows/seasonal-assistant/views-suggested-items/state.ts +9 -0
- package/templates/shopping-app/server/src/domain/shared/ReadModel.d.ts +10 -0
- package/templates/shopping-app/server/src/domain/shared/ReadModel.d.ts.map +1 -0
- package/templates/shopping-app/server/src/domain/shared/ReadModel.js +19 -0
- package/templates/shopping-app/server/src/domain/shared/ReadModel.js.map +1 -0
- package/templates/shopping-app/server/src/domain/shared/ReadModel.ts +26 -0
- package/templates/shopping-app/server/src/domain/shared/index.d.ts +5 -0
- package/templates/shopping-app/server/src/domain/shared/index.d.ts.map +1 -0
- package/templates/shopping-app/server/src/domain/shared/index.js +5 -0
- package/templates/shopping-app/server/src/domain/shared/index.js.map +1 -0
- package/templates/shopping-app/server/src/domain/shared/index.ts +4 -0
- package/templates/shopping-app/server/src/domain/shared/reactorSpecification.d.ts +35 -0
- package/templates/shopping-app/server/src/domain/shared/reactorSpecification.d.ts.map +1 -0
- package/templates/shopping-app/server/src/domain/shared/reactorSpecification.js +155 -0
- package/templates/shopping-app/server/src/domain/shared/reactorSpecification.js.map +1 -0
- package/templates/shopping-app/server/src/domain/shared/reactorSpecification.ts +257 -0
- package/templates/shopping-app/server/src/domain/shared/sendCommand.d.ts +4 -0
- package/templates/shopping-app/server/src/domain/shared/sendCommand.d.ts.map +1 -0
- package/templates/shopping-app/server/src/domain/shared/sendCommand.js +17 -0
- package/templates/shopping-app/server/src/domain/shared/sendCommand.js.map +1 -0
- package/templates/shopping-app/server/src/domain/shared/sendCommand.ts +21 -0
- package/templates/shopping-app/server/src/domain/shared/types.d.ts +19 -0
- package/templates/shopping-app/server/src/domain/shared/types.d.ts.map +1 -0
- package/templates/shopping-app/server/src/domain/shared/types.js +39 -0
- package/templates/shopping-app/server/src/domain/shared/types.js.map +1 -0
- package/templates/shopping-app/server/src/domain/shared/types.ts +31 -0
- package/templates/shopping-app/server/src/integrations/ai-integration.ts +76 -0
- package/templates/shopping-app/server/src/integrations/cart-integration.ts +178 -0
- package/templates/shopping-app/server/src/integrations/index.ts +3 -0
- package/templates/shopping-app/server/src/integrations/product-catalogue-integration.ts +363 -0
- package/templates/shopping-app/server/src/server.ts +43 -0
- package/templates/shopping-app/server/src/utils/index.d.ts +4 -0
- package/templates/shopping-app/server/src/utils/index.d.ts.map +1 -0
- package/templates/shopping-app/server/src/utils/index.js +4 -0
- package/templates/shopping-app/server/src/utils/index.js.map +1 -0
- package/templates/shopping-app/server/src/utils/index.ts +3 -0
- package/templates/shopping-app/server/src/utils/loadProjections.d.ts +3 -0
- package/templates/shopping-app/server/src/utils/loadProjections.d.ts.map +1 -0
- package/templates/shopping-app/server/src/utils/loadProjections.js +23 -0
- package/templates/shopping-app/server/src/utils/loadProjections.js.map +1 -0
- package/templates/shopping-app/server/src/utils/loadProjections.ts +30 -0
- package/templates/shopping-app/server/src/utils/loadRegisterFiles.d.ts +6 -0
- package/templates/shopping-app/server/src/utils/loadRegisterFiles.d.ts.map +1 -0
- package/templates/shopping-app/server/src/utils/loadRegisterFiles.js +28 -0
- package/templates/shopping-app/server/src/utils/loadRegisterFiles.js.map +1 -0
- package/templates/shopping-app/server/src/utils/loadRegisterFiles.ts +41 -0
- package/templates/shopping-app/server/src/utils/loadResolvers.d.ts +5 -0
- package/templates/shopping-app/server/src/utils/loadResolvers.d.ts.map +1 -0
- package/templates/shopping-app/server/src/utils/loadResolvers.js +27 -0
- package/templates/shopping-app/server/src/utils/loadResolvers.js.map +1 -0
- package/templates/shopping-app/server/src/utils/loadResolvers.ts +36 -0
- package/templates/shopping-app/server/tsconfig.json +19 -0
- package/templates/shopping-app/server/vitest.config.ts +7 -0
- 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
|
-
|
|
31
|
-
if (
|
|
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
|
-
//
|
|
48
|
-
|
|
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(
|
|
102
|
-
.filter(
|
|
103
|
-
.map(
|
|
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 = `# ${
|
|
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-
|
|
177
|
-
.description('Create a new Auto Engineer
|
|
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 (
|
|
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-
|
|
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: '
|
|
208
|
-
message: '
|
|
296
|
+
name: 'setupType',
|
|
297
|
+
message: 'How would you like to set up your project?',
|
|
209
298
|
choices: [
|
|
210
|
-
{ name: '
|
|
211
|
-
{ name: '
|
|
212
|
-
{ name: '
|
|
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: '
|
|
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
|
-
|
|
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
|
@@ -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
|
+
}
|