create-auto-app 0.9.7 → 0.9.9

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-auto-app",
3
- "version": "0.9.7",
3
+ "version": "0.9.9",
4
4
  "description": "Create Auto Engineer apps with no configuration",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,4 +1,4 @@
1
- import { on, dispatch, fold } from '@auto-engineer/cli';
1
+ import { autoConfig, on, dispatch, fold } from '@auto-engineer/cli';
2
2
  import type { Command, Event } from '@auto-engineer/message-bus';
3
3
  import { type ExportSchemaCommand, type SchemaExportedEvent, type SchemaExportFailedEvent } from '@auto-engineer/flow';
4
4
  import {
@@ -31,8 +31,7 @@ import {
31
31
  } from '@auto-engineer/frontend-implementer';
32
32
  import { type GenerateClientCommand } from '@auto-engineer/frontend-generator-react-graphql';
33
33
 
34
- // Plugin configuration
35
- export default {
34
+ export default autoConfig({
36
35
  plugins: [
37
36
  '@auto-engineer/server-checks',
38
37
  '@auto-engineer/design-system-importer',
@@ -44,144 +43,90 @@ export default {
44
43
  '@auto-engineer/frontend-generator-react-graphql',
45
44
  '@auto-engineer/server-implementer',
46
45
  ],
47
-
48
46
  aliases: {
49
47
  // Resolve command name conflicts between packages
50
48
  // 'test:types': checkTypesCommandHandler,
51
49
  },
52
- };
53
-
54
- // ===== Pipeline Orchestration with DSL =====
55
-
56
- // State management: Track pipeline status
57
- const pipelineStatus = fold<string, Event>(
58
- '*', // Listen to all events
59
- (state = 'idle', event) => {
60
- switch (event.type) {
61
- case 'SchemaExported':
62
- return 'schema-exported';
63
- case 'ServerGenerated':
64
- return 'server-generated';
65
- case 'ServerImplemented':
66
- return 'server-implemented';
67
- case 'TypeCheckPassed':
68
- return 'checks-passed';
69
- case 'TypeCheckFailed':
70
- return 'checks-failed';
71
- case 'IAGenerated':
72
- return 'ia-generated';
73
- case 'ClientImplemented':
74
- return 'client-implemented';
75
- default:
76
- return state;
77
- }
78
- },
79
- );
80
-
81
- // State: Track last error
82
- const lastError = fold<any, Event>('*', (state = null, event) => {
83
- if (event.type.endsWith('Failed') || event.type.endsWith('Error')) {
84
- return {
85
- type: event.type,
86
- data: event.data,
87
- timestamp: new Date().toISOString(),
88
- };
89
- }
90
- return state;
91
- });
92
-
93
- // State: Track completed operations
94
- const completedOperations = fold<string[], Event>('*', (state = [], event) => {
95
- if (event.type.endsWith('Passed') || event.type.endsWith('Generated') || event.type.endsWith('Implemented')) {
96
- return [...state, event.type];
97
- }
98
- return state;
99
- });
100
-
101
- on<SchemaExportedEvent>('SchemaExported', (event) =>
102
- dispatch<GenerateServerCommand>({
103
- type: 'GenerateServer',
104
- data: {
105
- schemaPath: event.data.outputPath,
106
- destination: event.data.outputPath.replace('/.context/schema.json', '/server'),
107
- },
108
- }),
109
- );
110
-
111
- on<ServerGeneratedEvent>('ServerGenerated', (event) =>
112
- dispatch.parallel<ImplementServerCommand | GenerateIACommand>([
113
- { type: 'ImplementServer', data: { serverDirectory: event.data.serverDir } },
114
- {
115
- type: 'GenerateIA',
116
- data: { outputDir: event.data.destination + '/.context', flowFiles: [event.data.schemaPath] },
117
- },
118
- ]),
119
- );
120
-
121
- // on<ServerImplementedEvent>('ServerImplemented', (event) =>
122
- // dispatch.parallel<CheckTypesCommand | CheckTestsCommand | CheckLintCommand>([
123
- // { type: 'CheckTypes', data: { targetDirectory: event.data.serverDirectory, scope: 'project' } },
124
- // { type: 'CheckTests', data: { targetDirectory: event.data.serverDirectory, scope: 'project' } },
125
- // { type: 'CheckLint', data: { targetDirectory: event.data.serverDirectory, scope: 'project' } },
126
- // ]),
127
- // );
50
+ pipeline: () => {
51
+ // State management: Track pipeline status
52
+ const pipelineStatus = fold<string, Event>(
53
+ '*', // Listen to all events
54
+ (state = 'idle', event) => {
55
+ switch (event.type) {
56
+ case 'SchemaExported':
57
+ return 'schema-exported';
58
+ case 'ServerGenerated':
59
+ return 'server-generated';
60
+ case 'ServerImplemented':
61
+ return 'server-implemented';
62
+ case 'TypeCheckPassed':
63
+ return 'checks-passed';
64
+ case 'TypeCheckFailed':
65
+ return 'checks-failed';
66
+ case 'IAGenerated':
67
+ return 'ia-generated';
68
+ case 'ClientImplemented':
69
+ return 'client-implemented';
70
+ default:
71
+ return state;
72
+ }
73
+ },
74
+ );
128
75
 
129
- on<SchemaExportedEvent>('SchemaExported', (event) =>
130
- dispatch<GenerateClientCommand>({
131
- type: 'GenerateClient',
132
- data: {
133
- starterDir:
134
- '/Users/sam/WebstormProjects/top/auto-engineer/packages/frontend-generator-react-graphql/shadcn-starter',
135
- targetDir: '/Users/sam/WebstormProjects/top/auto-engineer/examples/shopping-app/client',
136
- iaSchemaPath: '/Users/sam/WebstormProjects/top/auto-engineer/examples/shopping-app/.context/auto-ia-scheme.json',
137
- gqlSchemaPath: '/Users/sam/WebstormProjects/top/auto-engineer/examples/shopping-app/.context/schema.graphql',
138
- figmaVariablesPath:
139
- '/Users/sam/WebstormProjects/top/auto-engineer/examples/shopping-app/.context/figma-variables.json',
140
- },
141
- }),
142
- );
76
+ // State: Track last error
77
+ const lastError = fold<any, Event>('*', (state = null, event) => {
78
+ if (event.type.endsWith('Failed') || event.type.endsWith('Error')) {
79
+ return {
80
+ type: event.type,
81
+ data: event.data,
82
+ timestamp: new Date().toISOString(),
83
+ };
84
+ }
85
+ return state;
86
+ });
143
87
 
144
- // on<ClientImplementedEvent>('ClientImplemented', (event) =>
145
- // dispatch<CheckClientCommand>({ type: 'CheckClient', data: { clientDirectory: './client', skipBrowserChecks: true } }),
146
- // );
88
+ // State: Track completed operations
89
+ const completedOperations = fold<string[], Event>('*', (state = [], event) => {
90
+ if (event.type.endsWith('Passed') || event.type.endsWith('Generated') || event.type.endsWith('Implemented')) {
91
+ return [...state, event.type];
92
+ }
93
+ return state;
94
+ });
147
95
 
148
- // on<ClientImplementationFailedEvent>('ClientImplementationFailed', (event) =>
149
- // dispatch<ImplementClientCommand>({
150
- // type: 'ImplementClient',
151
- // data: {
152
- // projectDir: event.data.projectDir || './client',
153
- // iaSchemeDir: './.context',
154
- // designSystemPath: './.context/design-system.md',
155
- // },
156
- // })
157
- // );
96
+ on<SchemaExportedEvent>('SchemaExported', (event) =>
97
+ dispatch<GenerateServerCommand>({
98
+ type: 'GenerateServer',
99
+ data: {
100
+ schemaPath: event.data.outputPath,
101
+ destination: event.data.outputPath.replace('/.context/schema.json', '/server'),
102
+ },
103
+ }),
104
+ );
158
105
 
159
- // on<TypeCheckFailedEvent>('TypeCheckFailed', (event) =>
160
- // dispatch<ImplementServerCommand>({
161
- // type: 'ImplementServer',
162
- // data: {
163
- // serverDirectory: event.data.targetDirectory,
164
- // },
165
- // })
166
- // );
106
+ on<ServerGeneratedEvent>('ServerGenerated', (event) =>
107
+ dispatch.parallel<ImplementServerCommand | GenerateIACommand>([
108
+ { type: 'ImplementServer', data: { serverDirectory: event.data.serverDir } },
109
+ {
110
+ type: 'GenerateIA',
111
+ data: { outputDir: event.data.destination + '/.context', flowFiles: [event.data.schemaPath] },
112
+ },
113
+ ]),
114
+ );
167
115
 
168
- // let retryCount = 0;
169
- // on<TypeCheckFailedEvent>('TypeCheckFailed', (event) => {
170
- // retryCount++;
171
- // if (retryCount > 3) {
172
- // retryCount = 0;
173
- // // Regenerate server from scratch
174
- // return dispatch<GenerateServerCommand>({
175
- // type: 'GenerateServer',
176
- // data: {
177
- // schemaPath: event.data.targetDirectory.replace('/server', '') + '/schema.json',
178
- // destination: event.data.targetDirectory.replace('/server', ''),
179
- // },
180
- // });
181
- // }
182
- // });
183
-
184
- // // Reset retry count on success
185
- // on<TypeCheckPassedEvent>('TypeCheckPassed', () => {
186
- // retryCount = 0;
187
- // });
116
+ on<SchemaExportedEvent>('SchemaExported', (event) =>
117
+ dispatch<GenerateClientCommand>({
118
+ type: 'GenerateClient',
119
+ data: {
120
+ starterDir:
121
+ '/Users/sam/WebstormProjects/top/auto-engineer/packages/frontend-generator-react-graphql/shadcn-starter',
122
+ targetDir: '/Users/sam/WebstormProjects/top/auto-engineer/examples/shopping-app/client',
123
+ iaSchemaPath:
124
+ '/Users/sam/WebstormProjects/top/auto-engineer/examples/shopping-app/.context/auto-ia-scheme.json',
125
+ gqlSchemaPath: '/Users/sam/WebstormProjects/top/auto-engineer/examples/shopping-app/.context/schema.graphql',
126
+ figmaVariablesPath:
127
+ '/Users/sam/WebstormProjects/top/auto-engineer/examples/shopping-app/.context/figma-variables.json',
128
+ },
129
+ }),
130
+ );
131
+ },
132
+ });