create-auto-app 0.2.2 → 0.2.3

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.2.2",
3
+ "version": "0.2.3",
4
4
  "description": "Create Auto Engineer apps with no configuration",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1,6 +1,14 @@
1
- // Import specific command handlers to resolve conflicts or create aliases
2
- // import { checkTypesCommandHandler } from '@auto-engineer/server-checks';
1
+ import { on, dispatch, fold } from '@auto-engineer/cli';
2
+ import type { Command, Event } from '@auto-engineer/message-bus';
3
+ import { type ExportSchemaCommand, type SchemaExportedEvent, type SchemaExportFailedEvent } from '@auto-engineer/flow';
4
+ import { type GenerateServerCommand, type ServerGeneratedEvent, type ServerGenerationFailedEvent } from '@auto-engineer/server-generator-apollo-emmett';
5
+ import { type ImplementServerCommand, type ServerImplementedEvent, type ServerImplementationFailedEvent } from '@auto-engineer/server-implementer';
6
+ import { type CheckTypesCommand, type TypeCheckPassedEvent, type TypeCheckFailedEvent, CheckTestsCommand, CheckLintCommand } from '@auto-engineer/server-checks';
7
+ import { CheckClientCommand } from '@auto-engineer/frontend-checks';
8
+ import { type GenerateIACommand, type IAGeneratedEvent, type IAGenerationFailedEvent } from '@auto-engineer/information-architect';
9
+ import { type ImplementClientCommand, type ClientImplementedEvent, type ClientImplementationFailedEvent } from '@auto-engineer/frontend-implementer';
3
10
 
11
+ // Plugin configuration
4
12
  export default {
5
13
  plugins: [
6
14
  '@auto-engineer/server-checks',
@@ -15,7 +23,124 @@ export default {
15
23
  ],
16
24
 
17
25
  aliases: {
18
- // If multiple packages tried to register 'check:types', you'd resolve it:
19
- // 'test:types': checkTypesCommandHandler, // auto test → runs check:types via specific handler
26
+ // Resolve command name conflicts between packages
27
+ // 'test:types': checkTypesCommandHandler,
20
28
  },
21
29
  };
30
+
31
+ // ===== Pipeline Orchestration with DSL =====
32
+
33
+ // State management: Track pipeline status
34
+ const pipelineStatus = fold<string, Event>(
35
+ '*', // Listen to all events
36
+ (state = 'idle', event) => {
37
+ switch (event.type) {
38
+ case 'SchemaExported':
39
+ return 'schema-exported';
40
+ case 'ServerGenerated':
41
+ return 'server-generated';
42
+ case 'ServerImplemented':
43
+ return 'server-implemented';
44
+ case 'TypeCheckPassed':
45
+ return 'checks-passed';
46
+ case 'TypeCheckFailed':
47
+ return 'checks-failed';
48
+ case 'IAGenerated':
49
+ return 'ia-generated';
50
+ case 'ClientImplemented':
51
+ return 'client-implemented';
52
+ default:
53
+ return state;
54
+ }
55
+ }
56
+ );
57
+
58
+ // State: Track last error
59
+ const lastError = fold<any, Event>(
60
+ '*',
61
+ (state = null, event) => {
62
+ if (event.type.endsWith('Failed') || event.type.endsWith('Error')) {
63
+ return {
64
+ type: event.type,
65
+ data: event.data,
66
+ timestamp: new Date().toISOString(),
67
+ };
68
+ }
69
+ return state;
70
+ }
71
+ );
72
+
73
+ // State: Track completed operations
74
+ const completedOperations = fold<string[], Event>(
75
+ '*',
76
+ (state = [], event) => {
77
+ if (event.type.endsWith('Passed') || event.type.endsWith('Generated') || event.type.endsWith('Implemented')) {
78
+ return [...state, event.type];
79
+ }
80
+ return state;
81
+ }
82
+ );
83
+
84
+ on<SchemaExportedEvent>('SchemaExported', (event) => dispatch<GenerateServerCommand>(
85
+ { type: 'GenerateServer', data: { schemaPath: event.data.outputPath, destination: event.data.outputPath.replace('/schema.json', '/server') } }
86
+ ));
87
+
88
+ on<ServerGeneratedEvent>('ServerGenerated', (event) => dispatch.parallel<ImplementServerCommand | GenerateIACommand>([
89
+ { type: 'ImplementServer', data: { serverDirectory: event.data.serverDir } },
90
+ { type: 'GenerateIA', data: { outputDir: event.data.destination + '/.context', flowFiles: [event.data.schemaPath] } },
91
+ ]));
92
+
93
+ on<ServerImplementedEvent>('ServerImplemented', (event) => dispatch.parallel<CheckTypesCommand | CheckTestsCommand | CheckLintCommand>([
94
+ { type: 'CheckTypes', data: { targetDirectory: event.data.serverDirectory, scope: 'project' } },
95
+ { type: 'CheckTests', data: { targetDirectory: event.data.serverDirectory, scope: 'project' } },
96
+ { type: 'CheckLint', data: { targetDirectory: event.data.serverDirectory, scope: 'project' } }
97
+ ]));
98
+
99
+ on<IAGeneratedEvent>('IAGenerated', (event) => dispatch<ImplementClientCommand>(
100
+ { type: 'ImplementClient', data: { projectDir: event.data.outputDir.replace('/.context', '/client'), iaSchemeDir: event.data.outputDir, designSystemPath: './.context/design-system.md' } }
101
+ ));
102
+
103
+ on<ClientImplementedEvent>('ClientImplemented', (event) => dispatch<CheckClientCommand>(
104
+ { type: 'CheckClient', data: { clientDirectory: './client', skipBrowserChecks: true } }
105
+ ));
106
+
107
+ // on<ClientImplementationFailedEvent>('ClientImplementationFailed', (event) =>
108
+ // dispatch<ImplementClientCommand>({
109
+ // type: 'ImplementClient',
110
+ // data: {
111
+ // projectDir: event.data.projectDir || './client',
112
+ // iaSchemeDir: './.context',
113
+ // designSystemPath: './.context/design-system.md',
114
+ // },
115
+ // })
116
+ // );
117
+
118
+ // on<TypeCheckFailedEvent>('TypeCheckFailed', (event) =>
119
+ // dispatch<ImplementServerCommand>({
120
+ // type: 'ImplementServer',
121
+ // data: {
122
+ // serverDirectory: event.data.targetDirectory,
123
+ // },
124
+ // })
125
+ // );
126
+
127
+ // let retryCount = 0;
128
+ // on<TypeCheckFailedEvent>('TypeCheckFailed', (event) => {
129
+ // retryCount++;
130
+ // if (retryCount > 3) {
131
+ // retryCount = 0;
132
+ // // Regenerate server from scratch
133
+ // return dispatch<GenerateServerCommand>({
134
+ // type: 'GenerateServer',
135
+ // data: {
136
+ // schemaPath: event.data.targetDirectory.replace('/server', '') + '/schema.json',
137
+ // destination: event.data.targetDirectory.replace('/server', ''),
138
+ // },
139
+ // });
140
+ // }
141
+ // });
142
+
143
+ // // Reset retry count on success
144
+ // on<TypeCheckPassedEvent>('TypeCheckPassed', () => {
145
+ // retryCount = 0;
146
+ // });
@@ -21,7 +21,7 @@
21
21
  "dependencies": {
22
22
  "@apollo/client": "^3.13.8",
23
23
  "@auto-engineer/ai-gateway": "^0.4.2",
24
- "@auto-engineer/frontend-generator-react-graphql": "^0.3.0",
24
+ "@auto-engineer/frontend-generator-react-graphql": "^0.1.3",
25
25
  "@hookform/resolvers": "^3.10.0",
26
26
  "@radix-ui/react-accordion": "^1.2.11",
27
27
  "@radix-ui/react-alert-dialog": "^1.1.14",
@@ -5,7 +5,7 @@
5
5
  "type": "module",
6
6
  "types": "./dist/index.d.ts",
7
7
  "dependencies": {
8
- "@auto-engineer/flow": "^0.7.1",
8
+ "@auto-engineer/flow": "^0.1.1",
9
9
  "@auto-engineer/ai-gateway": "^0.6.1"
10
10
  },
11
11
  "scripts": {
@@ -5,7 +5,7 @@
5
5
  "type": "module",
6
6
  "types": "./dist/index.d.ts",
7
7
  "dependencies": {
8
- "@auto-engineer/flow": "^0.7.1",
8
+ "@auto-engineer/flow": "^0.1.1",
9
9
  "@auto-engineer/ai-gateway": "^0.6.1",
10
10
  "axios": "^1.6.0",
11
11
  "zod": "^3.22.4"
@@ -5,7 +5,7 @@
5
5
  "type": "module",
6
6
  "types": "./dist/index.d.ts",
7
7
  "dependencies": {
8
- "@auto-engineer/flow": "^0.7.1",
8
+ "@auto-engineer/flow": "^0.1.1",
9
9
  "@auto-engineer/ai-gateway": "^0.6.1",
10
10
  "axios": "^1.6.0",
11
11
  "zod": "^3.22.4"
@@ -11,14 +11,14 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@auto-engineer/message-bus": "latest",
14
- "@auto-engineer/server-checks": "latest",
15
14
  "@auto-engineer/design-system-importer": "latest",
16
- "@auto-engineer/server-generator-apollo-emmett": "latest",
17
15
  "@auto-engineer/flow": "latest",
18
16
  "@auto-engineer/frontend-checks": "latest",
19
17
  "@auto-engineer/frontend-implementer": "latest",
20
- "@auto-engineer/information-architect": "latest",
21
18
  "@auto-engineer/frontend-generator-react-graphql": "latest",
19
+ "@auto-engineer/information-architect": "latest",
20
+ "@auto-engineer/server-checks": "latest",
21
+ "@auto-engineer/server-generator-apollo-emmett": "latest",
22
22
  "@auto-engineer/server-implementer": "latest"
23
23
  },
24
24
  "devDependencies": {
@@ -11,7 +11,7 @@
11
11
  },
12
12
  "dependencies": {
13
13
  "@auto-engineer/ai-gateway": "latest",
14
- "@auto-engineer/flow": "latest",
14
+ "@auto-engineer/flow": "^0.1.1",
15
15
  "axios": "^1.11.0",
16
16
  "@event-driven-io/emmett": "^0.38.2",
17
17
  "type-graphql": "^2.0.0-rc.2",