@auto-engineer/server-implementer 0.4.8 → 0.5.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 (39) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/.turbo/turbo-format.log +20 -19
  3. package/.turbo/turbo-lint.log +5 -4
  4. package/.turbo/turbo-test.log +1 -1
  5. package/.turbo/turbo-type-check.log +1 -1
  6. package/CHANGELOG.md +20 -0
  7. package/README.md +264 -0
  8. package/dist/cli-manifest.d.ts +3 -0
  9. package/dist/cli-manifest.d.ts.map +1 -0
  10. package/dist/cli-manifest.js +23 -0
  11. package/dist/cli-manifest.js.map +1 -0
  12. package/dist/commands/implement-server.d.ts +6 -2
  13. package/dist/commands/implement-server.d.ts.map +1 -1
  14. package/dist/commands/implement-server.js +33 -3
  15. package/dist/commands/implement-server.js.map +1 -1
  16. package/dist/commands/implement-slice.d.ts +0 -1
  17. package/dist/commands/implement-slice.d.ts.map +1 -1
  18. package/dist/commands/implement-slice.js +0 -1
  19. package/dist/commands/implement-slice.js.map +1 -1
  20. package/dist/index.d.ts +2 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +2 -1
  23. package/dist/index.js.map +1 -1
  24. package/package.json +10 -8
  25. package/src/cli-manifest.ts +24 -0
  26. package/src/commands/implement-server.ts +43 -3
  27. package/src/commands/implement-slice.ts +0 -1
  28. package/src/index.ts +2 -1
  29. package/.turbo/turbo-lint$colon$fix.log +0 -14
  30. package/dist/cli/implement-server.d.ts +0 -3
  31. package/dist/cli/implement-server.d.ts.map +0 -1
  32. package/dist/cli/implement-server.js +0 -39
  33. package/dist/cli/implement-server.js.map +0 -1
  34. package/dist/cli/index.d.ts +0 -2
  35. package/dist/cli/index.d.ts.map +0 -1
  36. package/dist/cli/index.js +0 -39
  37. package/dist/cli/index.js.map +0 -1
  38. package/src/cli/implement-server.ts +0 -46
  39. package/src/cli/index.ts +0 -48
@@ -1,5 +1,5 @@
1
1
 
2
- > @auto-engineer/server-implementer@0.4.8 build /Users/sam/WebstormProjects/top/auto-engineer/packages/server-implementer
3
- > tsc && tsx ../../scripts/fix-esm-imports.ts && chmod +x dist/cli/implement-server.js
2
+ > @auto-engineer/server-implementer@0.5.0 build /Users/sam/WebstormProjects/top/auto-engineer/packages/server-implementer
3
+ > tsc && tsx ../../scripts/fix-esm-imports.ts
4
4
 
5
5
  Fixed ESM imports in dist/
@@ -1,19 +1,20 @@
1
-
2
- > @auto-engineer/server-implementer@0.4.8 format /Users/sam/WebstormProjects/top/auto-engineer/packages/server-implementer
3
- > prettier --write "**/*.{js,ts,json,md,yml,yaml}" --ignore-path ../../.prettierignore
4
-
5
- CHANGELOG.md 20ms (unchanged)
6
- DEBUG.md 3ms (unchanged)
7
- package.json 18ms (unchanged)
8
- src/agent/runAllSlices.ts 32ms (unchanged)
9
- src/agent/runFlows.ts 11ms (unchanged)
10
- src/agent/runSlice.ts 37ms (unchanged)
11
- src/agent/runTests.ts 11ms (unchanged)
12
- src/cli/implement-server.ts 3ms (unchanged)
13
- src/cli/index.ts 2ms (unchanged)
14
- src/commands/implement-server.ts 5ms (unchanged)
15
- src/commands/implement-slice.ts 12ms (unchanged)
16
- src/index.ts 1ms (unchanged)
17
- src/prompts/systemPrompt.ts 1ms (unchanged)
18
- src/utils/extractCodeBlock.ts 1ms (unchanged)
19
- tsconfig.json 1ms (unchanged)
1
+
2
+ 
3
+ > @auto-engineer/server-implementer@0.5.0 format /Users/sam/WebstormProjects/top/auto-engineer/packages/server-implementer
4
+ > prettier --write "**/*.{js,ts,json,md,yml,yaml}" --ignore-path ../../.prettierignore
5
+
6
+ CHANGELOG.mdCHANGELOG.md 24ms (unchanged)
7
+ DEBUG.mdDEBUG.md 3ms (unchanged)
8
+ package.jsonpackage.json 32ms (unchanged)
9
+ README.mdREADME.md 85ms (unchanged)
10
+ src/agent/runAllSlices.tssrc/agent/runAllSlices.ts 4ms (unchanged)
11
+ src/agent/runFlows.tssrc/agent/runFlows.ts 5ms (unchanged)
12
+ src/agent/runSlice.tssrc/agent/runSlice.ts 52ms (unchanged)
13
+ src/agent/runTests.tssrc/agent/runTests.ts 17ms (unchanged)
14
+ src/cli-manifest.tssrc/cli-manifest.ts 8ms (unchanged)
15
+ src/commands/implement-server.tssrc/commands/implement-server.ts 10ms (unchanged)
16
+ src/commands/implement-slice.tssrc/commands/implement-slice.ts 21ms (unchanged)
17
+ src/index.tssrc/index.ts 1ms (unchanged)
18
+ src/prompts/systemPrompt.tssrc/prompts/systemPrompt.ts 1ms (unchanged)
19
+ src/utils/extractCodeBlock.tssrc/utils/extractCodeBlock.ts 1ms (unchanged)
20
+ tsconfig.jsontsconfig.json 1ms (unchanged)
@@ -1,4 +1,5 @@
1
-
2
- > @auto-engineer/server-implementer@0.4.8 lint /Users/sam/WebstormProjects/top/auto-engineer/packages/server-implementer
3
- > eslint 'src/**/*.ts' --max-warnings 0 --config ../../eslint.config.ts
4
-
1
+
2
+ 
3
+ > @auto-engineer/server-implementer@0.5.0 lint /Users/sam/WebstormProjects/top/auto-engineer/packages/server-implementer
4
+ > eslint 'src/**/*.ts' --max-warnings 0 --config ../../eslint.config.ts
5
+
@@ -1,5 +1,5 @@
1
1
 
2
- > @auto-engineer/server-implementer@0.4.8 test /Users/sam/WebstormProjects/top/auto-engineer/packages/server-implementer
2
+ > @auto-engineer/server-implementer@0.5.1 test /Users/sam/WebstormProjects/top/auto-engineer/packages/server-implementer
3
3
  > vitest run
4
4
 
5
5
 
@@ -1,4 +1,4 @@
1
1
 
2
- > @auto-engineer/server-implementer@0.4.8 type-check /Users/sam/WebstormProjects/top/auto-engineer/packages/server-implementer
2
+ > @auto-engineer/server-implementer@0.5.1 type-check /Users/sam/WebstormProjects/top/auto-engineer/packages/server-implementer
3
3
  > tsc --noEmit
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @auto-engineer/server-implementer
2
2
 
3
+ ## 0.5.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Uses AI with a default provider
8
+ - Updated dependencies
9
+ - @auto-engineer/ai-gateway@0.5.1
10
+
11
+ ## 0.5.0
12
+
13
+ ### Minor Changes
14
+
15
+ - • All cli commands now use commands and emit events on the bus
16
+
17
+ ### Patch Changes
18
+
19
+ - Updated dependencies
20
+ - @auto-engineer/ai-gateway@0.5.0
21
+ - @auto-engineer/message-bus@0.4.0
22
+
3
23
  ## 0.4.3
4
24
 
5
25
  ### Patch Changes
package/README.md ADDED
@@ -0,0 +1,264 @@
1
+ # @auto-engineer/server-implementer
2
+
3
+ AI-powered implementation plugin for the Auto Engineer CLI that implements server-side code with AI assistance. This plugin takes generated code stubs and business requirements to create implementations.
4
+
5
+ ## Installation
6
+
7
+ This is a plugin for the Auto Engineer CLI. Install both the CLI and this plugin:
8
+
9
+ ```bash
10
+ npm install -g @auto-engineer/cli
11
+ npm install @auto-engineer/server-implementer
12
+ ```
13
+
14
+ ## Configuration
15
+
16
+ Add this plugin to your `auto.config.ts`:
17
+
18
+ ```typescript
19
+ export default {
20
+ plugins: [
21
+ '@auto-engineer/server-implementer',
22
+ // ... other plugins
23
+ ],
24
+ };
25
+ ```
26
+
27
+ ## Commands
28
+
29
+ This plugin provides the following commands:
30
+
31
+ - `implement:server` - Implement server-side code with AI assistance
32
+ - `implement:slice` - Implement a specific server slice with AI assistance
33
+
34
+ ## What does this plugin do?
35
+
36
+ The Server Implementer uses AI capabilities to implement business logic, database operations, and integration code for backend services. It bridges the gap between generated code scaffolds and functional implementations.
37
+
38
+ ## Key Features
39
+
40
+ ### AI Code Generation
41
+
42
+ - Analyzes existing code structure and patterns
43
+ - Understands business requirements from comments and specifications
44
+ - Generates appropriate implementations
45
+ - Maintains consistency with existing codebase patterns
46
+
47
+ ### Incremental Implementation
48
+
49
+ - Implements one slice or component at a time
50
+ - Preserves existing implementations
51
+ - Allows for iterative refinement
52
+ - Supports partial implementations and manual overrides
53
+
54
+ ### Test-Driven Development
55
+
56
+ - Generates implementations that pass existing tests
57
+ - Creates test cases for edge cases
58
+ - Validates implementations against test suites
59
+ - Supports behavior-driven development patterns
60
+
61
+ ### Integration Awareness
62
+
63
+ - Understands dependencies between components
64
+ - Implements integration patterns correctly
65
+ - Handles error scenarios and edge cases
66
+ - Maintains data consistency across operations
67
+
68
+ ## Workflow
69
+
70
+ ### 1. Full Server Implementation
71
+
72
+ Use `implement:server` to implement an entire server project:
73
+
74
+ ```bash
75
+ auto implement:server
76
+ ```
77
+
78
+ This command:
79
+
80
+ - Scans the entire server project
81
+ - Identifies unimplemented stubs and TODOs
82
+ - Implements business logic based on specifications
83
+ - Ensures all components work together coherently
84
+
85
+ ### 2. Slice-by-Slice Implementation
86
+
87
+ Use `implement:slice` for targeted implementation of specific features:
88
+
89
+ ```bash
90
+ auto implement:slice --slice="order-management"
91
+ ```
92
+
93
+ This approach:
94
+
95
+ - Focuses on a single business domain
96
+ - Implements related commands, events, and queries
97
+ - Maintains isolation between different slices
98
+ - Allows for parallel development of features
99
+
100
+ ## Implementation Patterns
101
+
102
+ ### Command Handler Implementation
103
+
104
+ The plugin understands common command handler patterns:
105
+
106
+ ```typescript
107
+ // Before (generated stub)
108
+ export class PlaceOrderCommandHandler {
109
+ async handle(command: PlaceOrderCommand): Promise<OrderPlaced[]> {
110
+ // TODO: Implement order placement logic
111
+ throw new Error('Not implemented');
112
+ }
113
+ }
114
+
115
+ // After (AI implementation)
116
+ export class PlaceOrderCommandHandler {
117
+ async handle(command: PlaceOrderCommand): Promise<OrderPlaced[]> {
118
+ // Validate inventory availability
119
+ const inventory = await this.inventoryService.checkAvailability(command.items);
120
+ if (!inventory.available) {
121
+ throw new InsufficientInventoryError(command.items);
122
+ }
123
+
124
+ // Calculate pricing
125
+ const pricing = await this.pricingService.calculateTotal(command.items);
126
+
127
+ // Create order aggregate
128
+ const order = new Order({
129
+ customerId: command.customerId,
130
+ items: command.items,
131
+ total: pricing.total,
132
+ });
133
+
134
+ // Emit order placed event
135
+ return [
136
+ new OrderPlaced({
137
+ orderId: order.id,
138
+ customerId: command.customerId,
139
+ total: pricing.total,
140
+ timestamp: new Date(),
141
+ }),
142
+ ];
143
+ }
144
+ }
145
+ ```
146
+
147
+ ### Query Implementation
148
+
149
+ Implements read-side query handlers:
150
+
151
+ ```typescript
152
+ // Implements projection queries with proper filtering, sorting, and pagination
153
+ export class OrderQueryHandler {
154
+ async getOrderHistory(customerId: string, options: QueryOptions) {
155
+ return await this.orderProjection
156
+ .query()
157
+ .where('customerId', customerId)
158
+ .orderBy('createdAt', 'desc')
159
+ .limit(options.limit)
160
+ .offset(options.offset)
161
+ .execute();
162
+ }
163
+ }
164
+ ```
165
+
166
+ ### Integration Implementation
167
+
168
+ Handles external service integrations:
169
+
170
+ ```typescript
171
+ // Implements integration patterns with proper error handling
172
+ export class PaymentIntegration {
173
+ async processPayment(paymentRequest: PaymentRequest): Promise<PaymentResult> {
174
+ try {
175
+ const result = await this.stripeClient.charges.create({
176
+ amount: paymentRequest.amount * 100, // Convert to cents
177
+ currency: 'usd',
178
+ source: paymentRequest.token,
179
+ description: paymentRequest.description,
180
+ });
181
+
182
+ return {
183
+ success: true,
184
+ transactionId: result.id,
185
+ amount: result.amount / 100,
186
+ };
187
+ } catch (error) {
188
+ if (error.type === 'StripeCardError') {
189
+ throw new PaymentDeclinedError(error.message);
190
+ }
191
+ throw new PaymentProcessingError('Payment failed', error);
192
+ }
193
+ }
194
+ }
195
+ ```
196
+
197
+ ## Configuration Options
198
+
199
+ Customize implementation behavior through environment variables or config:
200
+
201
+ ```typescript
202
+ // auto.config.ts
203
+ export default {
204
+ plugins: [
205
+ [
206
+ '@auto-engineer/server-implementer',
207
+ {
208
+ // AI model configuration
209
+ model: 'claude-3-sonnet',
210
+ temperature: 0.1,
211
+
212
+ // Implementation preferences
213
+ includeLogging: true,
214
+ includeMetrics: true,
215
+ errorHandlingPattern: 'domain-exceptions',
216
+
217
+ // Test generation
218
+ generateTests: true,
219
+ testFramework: 'vitest',
220
+ },
221
+ ],
222
+ ],
223
+ };
224
+ ```
225
+
226
+ ## Integration with Other Plugins
227
+
228
+ Works with the Auto Engineer ecosystem:
229
+
230
+ - **@auto-engineer/emmett-generator**: Implements generated command handlers and queries
231
+ - **@auto-engineer/backend-checks**: Validates implementations pass type checking and tests
232
+ - **@auto-engineer/flowlang**: Uses flow specifications to understand business requirements
233
+ - **@auto-engineer/ai-gateway**: Leverages AI models for intelligent code generation
234
+
235
+ ## Quality Assurance
236
+
237
+ The plugin ensures quality implementations through:
238
+
239
+ - Static Analysis: Validates TypeScript compliance and best practices
240
+ - Test Execution: Runs existing tests to ensure implementations work
241
+ - Code Review: Uses AI to review generated code for potential issues
242
+ - Pattern Consistency: Maintains consistency with existing codebase patterns
243
+ - Documentation: Generates inline documentation for complex logic
244
+
245
+ ## Advanced Features
246
+
247
+ ### Context-Aware Implementation
248
+
249
+ The AI understands:
250
+
251
+ - Existing project patterns and conventions
252
+ - Database schema and relationships
253
+ - External API contracts and integration patterns
254
+ - Error handling strategies used in the project
255
+ - Testing approaches and mocking patterns
256
+
257
+ ### Iterative Refinement
258
+
259
+ - Analyzes test failures and refines implementations
260
+ - Learns from manual corrections and adjustments
261
+ - Adapts to project-specific requirements and constraints
262
+ - Supports incremental improvement over time
263
+
264
+ The Server Implementer transforms code scaffolds into implementations, accelerating backend development while maintaining code quality and consistency.
@@ -0,0 +1,3 @@
1
+ import type { CliManifest } from '@auto-engineer/cli/manifest-types';
2
+ export declare const CLI_MANIFEST: CliManifest;
3
+ //# sourceMappingURL=cli-manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-manifest.d.ts","sourceRoot":"","sources":["../src/cli-manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAErE,eAAO,MAAM,YAAY,EAAE,WAqB1B,CAAC"}
@@ -0,0 +1,23 @@
1
+ export const CLI_MANIFEST = {
2
+ category: '@auto-engineer/server-implementer',
3
+ commands: {
4
+ 'implement:server': {
5
+ handler: () => import('./commands/implement-server.js'),
6
+ description: 'AI implements server TODOs and tests',
7
+ usage: 'implement:server <server-dir>',
8
+ examples: ['$ auto implement:server ./server'],
9
+ args: [{ name: 'server-dir', description: 'Server directory path', required: true }],
10
+ },
11
+ 'implement:slice': {
12
+ handler: () => import('./commands/implement-slice.js'),
13
+ description: 'AI implements a specific server slice',
14
+ usage: 'implement:slice <server-dir> <slice-name>',
15
+ examples: ['$ auto implement:slice ./server enters-shopping-criteria'],
16
+ args: [
17
+ { name: 'server-dir', description: 'Server directory path', required: true },
18
+ { name: 'slice-name', description: 'Name of the slice to implement', required: true },
19
+ ],
20
+ },
21
+ },
22
+ };
23
+ //# sourceMappingURL=cli-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-manifest.js","sourceRoot":"","sources":["../src/cli-manifest.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAgB;IACvC,QAAQ,EAAE,mCAAmC;IAC7C,QAAQ,EAAE;QACR,kBAAkB,EAAE;YAClB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,6BAA6B,CAAC;YACpD,WAAW,EAAE,sCAAsC;YACnD,KAAK,EAAE,+BAA+B;YACtC,QAAQ,EAAE,CAAC,kCAAkC,CAAC;YAC9C,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SACrF;QACD,iBAAiB,EAAE;YACjB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,4BAA4B,CAAC;YACnD,WAAW,EAAE,uCAAuC;YACpD,KAAK,EAAE,2CAA2C;YAClD,QAAQ,EAAE,CAAC,0DAA0D,CAAC;YACtE,IAAI,EAAE;gBACJ,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC5E,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,gCAAgC,EAAE,QAAQ,EAAE,IAAI,EAAE;aACtF;SACF;KACF;CACF,CAAC"}
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env node
2
1
  import { type CommandHandler, type Command, type Event } from '@auto-engineer/message-bus';
3
2
  export type ImplementServerCommand = Command<'ImplementServer', {
4
3
  serverDirectory: string;
@@ -11,6 +10,11 @@ export type ServerImplementationFailedEvent = Event<'ServerImplementationFailed'
11
10
  serverDirectory: string;
12
11
  error: string;
13
12
  }>;
14
- export declare function handleImplementServerCommand(command: ImplementServerCommand): Promise<ServerImplementedEvent | ServerImplementationFailedEvent>;
15
13
  export declare const implementServerCommandHandler: CommandHandler<ImplementServerCommand>;
14
+ interface CliArgs {
15
+ _: string[];
16
+ [key: string]: unknown;
17
+ }
18
+ declare const _default: (commandOrArgs: ImplementServerCommand | CliArgs) => Promise<void>;
19
+ export default _default;
16
20
  //# sourceMappingURL=implement-server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"implement-server.d.ts","sourceRoot":"","sources":["../../src/commands/implement-server.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAW3F,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAC1C,iBAAiB,EACjB;IACE,eAAe,EAAE,MAAM,CAAC;CACzB,CACF,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,KAAK,CACxC,mBAAmB,EACnB;IACE,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CACF,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG,KAAK,CACjD,4BAA4B,EAC5B;IACE,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf,CACF,CAAC;AAEF,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,sBAAsB,GAAG,+BAA+B,CAAC,CAwEnE;AAED,eAAO,MAAM,6BAA6B,EAAE,cAAc,CAAC,sBAAsB,CAkBhF,CAAC"}
1
+ {"version":3,"file":"implement-server.d.ts","sourceRoot":"","sources":["../../src/commands/implement-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAW3F,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAC1C,iBAAiB,EACjB;IACE,eAAe,EAAE,MAAM,CAAC;CACzB,CACF,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,KAAK,CACxC,mBAAmB,EACnB;IACE,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CACF,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG,KAAK,CACjD,4BAA4B,EAC5B;IACE,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf,CACF,CAAC;AA8EF,eAAO,MAAM,6BAA6B,EAAE,cAAc,CAAC,sBAAsB,CAkBhF,CAAC;AAGF,UAAU,OAAO;IACf,CAAC,EAAE,MAAM,EAAE,CAAC;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;yBAcqB,eAAe,sBAAsB,GAAG,OAAO;AAArE,wBAqBE"}
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env node
2
1
  import path from 'path';
3
2
  import { existsSync } from 'fs';
4
3
  import { runFlows } from '../agent/runFlows.js';
@@ -7,7 +6,7 @@ const debug = createDebug('server-impl:command');
7
6
  const debugHandler = createDebug('server-impl:command:handler');
8
7
  const debugProcess = createDebug('server-impl:command:process');
9
8
  const debugResult = createDebug('server-impl:command:result');
10
- export async function handleImplementServerCommand(command) {
9
+ async function handleImplementServerCommandInternal(command) {
11
10
  const { serverDirectory } = command.data;
12
11
  debug('Handling ImplementServerCommand');
13
12
  debug(' Server directory: %s', serverDirectory);
@@ -73,7 +72,7 @@ export const implementServerCommandHandler = {
73
72
  name: 'ImplementServer',
74
73
  handle: async (command) => {
75
74
  debug('CommandHandler executing for ImplementServer');
76
- const result = await handleImplementServerCommand(command);
75
+ const result = await handleImplementServerCommandInternal(command);
77
76
  if (result.type === 'ServerImplemented') {
78
77
  debug('Command handler completed: success');
79
78
  console.log(`✅ Server implementation completed successfully`);
@@ -88,4 +87,35 @@ export const implementServerCommandHandler = {
88
87
  }
89
88
  },
90
89
  };
90
+ // Type guard to check if it's an ImplementServerCommand
91
+ function isImplementServerCommand(obj) {
92
+ return (typeof obj === 'object' &&
93
+ obj !== null &&
94
+ 'type' in obj &&
95
+ 'data' in obj &&
96
+ obj.type === 'ImplementServer');
97
+ }
98
+ // Default export for CLI usage
99
+ export default async (commandOrArgs) => {
100
+ const command = isImplementServerCommand(commandOrArgs)
101
+ ? commandOrArgs
102
+ : {
103
+ type: 'ImplementServer',
104
+ data: {
105
+ serverDirectory: commandOrArgs._?.[0] ?? 'server',
106
+ },
107
+ timestamp: new Date(),
108
+ };
109
+ const result = await handleImplementServerCommandInternal(command);
110
+ if (result.type === 'ServerImplemented') {
111
+ console.log(`✅ Server implementation completed successfully`);
112
+ if (result.data.flowsImplemented > 0) {
113
+ console.log(` ${result.data.flowsImplemented} flows implemented`);
114
+ }
115
+ }
116
+ else {
117
+ console.error(`❌ Server implementation failed: ${result.data.error}`);
118
+ process.exit(1);
119
+ }
120
+ };
91
121
  //# sourceMappingURL=implement-server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"implement-server.js","sourceRoot":"","sources":["../../src/commands/implement-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"implement-server.js","sourceRoot":"","sources":["../../src/commands/implement-server.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,WAAW,MAAM,OAAO,CAAC;AAEhC,MAAM,KAAK,GAAG,WAAW,CAAC,qBAAqB,CAAC,CAAC;AACjD,MAAM,YAAY,GAAG,WAAW,CAAC,6BAA6B,CAAC,CAAC;AAChE,MAAM,YAAY,GAAG,WAAW,CAAC,6BAA6B,CAAC,CAAC;AAChE,MAAM,WAAW,GAAG,WAAW,CAAC,4BAA4B,CAAC,CAAC;AAyB9D,KAAK,UAAU,oCAAoC,CACjD,OAA+B;IAE/B,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAEzC,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACzC,KAAK,CAAC,wBAAwB,EAAE,eAAe,CAAC,CAAC;IACjD,KAAK,CAAC,kBAAkB,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7C,KAAK,CAAC,sBAAsB,EAAE,OAAO,CAAC,aAAa,IAAI,MAAM,CAAC,CAAC;IAE/D,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEjE,YAAY,CAAC,iBAAiB,CAAC,CAAC;QAChC,YAAY,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;QAC9C,YAAY,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CAAC;QAEhD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,YAAY,CAAC,wCAAwC,EAAE,QAAQ,CAAC,CAAC;YACjE,OAAO;gBACL,IAAI,EAAE,4BAA4B;gBAClC,IAAI,EAAE;oBACJ,eAAe;oBACf,KAAK,EAAE,iCAAiC,QAAQ,EAAE;iBACnD;gBACD,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;aACrC,CAAC;QACJ,CAAC;QAED,YAAY,CAAC,wCAAwC,EAAE,QAAQ,CAAC,CAAC;QAEjE,0CAA0C;QAC1C,MAAM,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEzB,YAAY,CAAC,oCAAoC,CAAC,CAAC;QAEnD,8DAA8D;QAC9D,8DAA8D;QAC9D,MAAM,gBAAgB,GAAG,CAAC,CAAC;QAE3B,WAAW,CAAC,mBAAmB,CAAC,CAAC;QACjC,WAAW,CAAC,uBAAuB,EAAE,gBAAgB,CAAC,CAAC;QAEvD,MAAM,YAAY,GAA2B;YAC3C,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE;gBACJ,eAAe;gBACf,gBAAgB;aACjB;YACD,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC;QAEF,WAAW,CAAC,4CAA4C,CAAC,CAAC;QAC1D,OAAO,YAAY,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QAC5C,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC;QAEvF,OAAO;YACL,IAAI,EAAE,4BAA4B;YAClC,IAAI,EAAE;gBACJ,eAAe;gBACf,KAAK,EAAE,YAAY;aACpB;YACD,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,6BAA6B,GAA2C;IACnF,IAAI,EAAE,iBAAiB;IACvB,MAAM,EAAE,KAAK,EAAE,OAA+B,EAAiB,EAAE;QAC/D,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,oCAAoC,CAAC,OAAO,CAAC,CAAC;QAEnE,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACxC,KAAK,CAAC,oCAAoC,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YAC9D,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;gBACrC,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,gBAAgB,oBAAoB,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,yCAAyC,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACpE,OAAO,CAAC,KAAK,CAAC,mCAAmC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;CACF,CAAC;AAQF,wDAAwD;AACxD,SAAS,wBAAwB,CAAC,GAAY;IAC5C,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,MAAM,IAAI,GAAG;QACb,MAAM,IAAI,GAAG;QACZ,GAAyB,CAAC,IAAI,KAAK,iBAAiB,CACtD,CAAC;AACJ,CAAC;AAED,+BAA+B;AAC/B,eAAe,KAAK,EAAE,aAA+C,EAAE,EAAE;IACvE,MAAM,OAAO,GAAG,wBAAwB,CAAC,aAAa,CAAC;QACrD,CAAC,CAAC,aAAa;QACf,CAAC,CAAC;YACE,IAAI,EAAE,iBAA0B;YAChC,IAAI,EAAE;gBACJ,eAAe,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ;aAClD;YACD,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CAAC;IAEN,MAAM,MAAM,GAAG,MAAM,oCAAoC,CAAC,OAAO,CAAC,CAAC;IACnE,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;QAC9D,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,gBAAgB,oBAAoB,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,mCAAmC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC"}
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env node
2
1
  import { type CommandHandler, type Command, type Event } from '@auto-engineer/message-bus';
3
2
  export type ImplementSliceCommand = Command<'ImplementSlice', {
4
3
  sliceDirectory: string;
@@ -1 +1 @@
1
- {"version":3,"file":"implement-slice.d.ts","sourceRoot":"","sources":["../../src/commands/implement-slice.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AA0D3F,MAAM,MAAM,qBAAqB,GAAG,OAAO,CACzC,gBAAgB,EAChB;IACE,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE;QACR,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;CACH,CACF,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,KAAK,CACvC,kBAAkB,EAClB;IACE,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B,CACF,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG,KAAK,CAChD,2BAA2B,EAC3B;IACE,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CACF,CAAC;AA8LF,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,qBAAqB,GAAG,8BAA8B,CAAC,CAmCjE;AAED,eAAO,MAAM,4BAA4B,EAAE,cAAc,CAAC,qBAAqB,CAiB9E,CAAC"}
1
+ {"version":3,"file":"implement-slice.d.ts","sourceRoot":"","sources":["../../src/commands/implement-slice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AA0D3F,MAAM,MAAM,qBAAqB,GAAG,OAAO,CACzC,gBAAgB,EAChB;IACE,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE;QACR,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;CACH,CACF,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,KAAK,CACvC,kBAAkB,EAClB;IACE,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B,CACF,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG,KAAK,CAChD,2BAA2B,EAC3B;IACE,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CACF,CAAC;AA8LF,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,qBAAqB,GAAG,8BAA8B,CAAC,CAmCjE;AAED,eAAO,MAAM,4BAA4B,EAAE,cAAc,CAAC,qBAAqB,CAiB9E,CAAC"}
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env node
2
1
  import { generateTextWithAI, getAvailableProviders } from '@auto-engineer/ai-gateway';
3
2
  import path from 'path';
4
3
  import { existsSync } from 'fs';
@@ -1 +1 @@
1
- {"version":3,"file":"implement-slice.js","sourceRoot":"","sources":["../../src/commands/implement-slice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"implement-slice.js","sourceRoot":"","sources":["../../src/commands/implement-slice.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
- export { implementServerCommandHandler, handleImplementServerCommand, type ImplementServerCommand, type ServerImplementedEvent, type ServerImplementationFailedEvent, } from './commands/implement-server';
1
+ export { CLI_MANIFEST } from './cli-manifest';
2
+ export { implementServerCommandHandler, type ImplementServerCommand, type ServerImplementedEvent, type ServerImplementationFailedEvent, } from './commands/implement-server';
2
3
  export { implementSliceCommandHandler, handleImplementSliceCommand, type ImplementSliceCommand, type SliceImplementedEvent, type SliceImplementationFailedEvent, } from './commands/implement-slice';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,+BAA+B,GACrC,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,8BAA8B,GACpC,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EACL,6BAA6B,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,EAC3B,KAAK,+BAA+B,GACrC,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,qBAAqB,EAC1B,KAAK,8BAA8B,GACpC,MAAM,4BAA4B,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
- export { implementServerCommandHandler, handleImplementServerCommand, } from './commands/implement-server.js';
1
+ export { CLI_MANIFEST } from './cli-manifest.js';
2
+ export { implementServerCommandHandler, } from './commands/implement-server.js';
2
3
  export { implementSliceCommandHandler, handleImplementSliceCommand, } from './commands/implement-slice.js';
3
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,4BAA4B,GAI7B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,GAI5B,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,OAAO,EACL,6BAA6B,GAI9B,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,GAI5B,MAAM,4BAA4B,CAAC"}
package/package.json CHANGED
@@ -1,24 +1,28 @@
1
1
  {
2
2
  "name": "@auto-engineer/server-implementer",
3
- "version": "0.4.8",
3
+ "version": "0.5.1",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
- "bin": {
8
- "implement-server": "./dist/cli/implement-server.js"
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "import": "./dist/index.js"
11
+ }
9
12
  },
10
13
  "publishConfig": {
11
14
  "access": "public"
12
15
  },
13
16
  "dependencies": {
14
- "@auto-engineer/ai-gateway": "^0.4.5",
15
- "@auto-engineer/message-bus": "^0.3.4",
17
+ "@auto-engineer/ai-gateway": "^0.5.1",
18
+ "@auto-engineer/message-bus": "^0.4.0",
16
19
  "@modelcontextprotocol/sdk": "^1.3.0",
17
20
  "debug": "^4.3.4",
18
21
  "fast-glob": "^3.3.3",
19
22
  "vite": "^5.4.1"
20
23
  },
21
24
  "devDependencies": {
25
+ "@auto-engineer/cli": "^0.6.0",
22
26
  "@types/fs-extra": "^11.0.4",
23
27
  "dotenv": "^16.6.1",
24
28
  "execa": "^9.6.0",
@@ -29,9 +33,7 @@
29
33
  "vitest": "^3.2.4"
30
34
  },
31
35
  "scripts": {
32
- "implement": "tsx src/cli/index.ts",
33
- "implement:server": "tsx src/cli/implement-server.ts",
34
- "build": "tsc && tsx ../../scripts/fix-esm-imports.ts && chmod +x dist/cli/implement-server.js",
36
+ "build": "tsc && tsx ../../scripts/fix-esm-imports.ts",
35
37
  "dev": "tsc --watch",
36
38
  "test": "vitest run",
37
39
  "lint": "eslint 'src/**/*.ts' --max-warnings 0 --config ../../eslint.config.ts",
@@ -0,0 +1,24 @@
1
+ import type { CliManifest } from '@auto-engineer/cli/manifest-types';
2
+
3
+ export const CLI_MANIFEST: CliManifest = {
4
+ category: '@auto-engineer/server-implementer',
5
+ commands: {
6
+ 'implement:server': {
7
+ handler: () => import('./commands/implement-server'),
8
+ description: 'AI implements server TODOs and tests',
9
+ usage: 'implement:server <server-dir>',
10
+ examples: ['$ auto implement:server ./server'],
11
+ args: [{ name: 'server-dir', description: 'Server directory path', required: true }],
12
+ },
13
+ 'implement:slice': {
14
+ handler: () => import('./commands/implement-slice'),
15
+ description: 'AI implements a specific server slice',
16
+ usage: 'implement:slice <server-dir> <slice-name>',
17
+ examples: ['$ auto implement:slice ./server enters-shopping-criteria'],
18
+ args: [
19
+ { name: 'server-dir', description: 'Server directory path', required: true },
20
+ { name: 'slice-name', description: 'Name of the slice to implement', required: true },
21
+ ],
22
+ },
23
+ },
24
+ };
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env node
2
1
  import { type CommandHandler, type Command, type Event } from '@auto-engineer/message-bus';
3
2
  import path from 'path';
4
3
  import { existsSync } from 'fs';
@@ -33,7 +32,7 @@ export type ServerImplementationFailedEvent = Event<
33
32
  }
34
33
  >;
35
34
 
36
- export async function handleImplementServerCommand(
35
+ async function handleImplementServerCommandInternal(
37
36
  command: ImplementServerCommand,
38
37
  ): Promise<ServerImplementedEvent | ServerImplementationFailedEvent> {
39
38
  const { serverDirectory } = command.data;
@@ -113,7 +112,7 @@ export const implementServerCommandHandler: CommandHandler<ImplementServerComman
113
112
  name: 'ImplementServer',
114
113
  handle: async (command: ImplementServerCommand): Promise<void> => {
115
114
  debug('CommandHandler executing for ImplementServer');
116
- const result = await handleImplementServerCommand(command);
115
+ const result = await handleImplementServerCommandInternal(command);
117
116
 
118
117
  if (result.type === 'ServerImplemented') {
119
118
  debug('Command handler completed: success');
@@ -128,3 +127,44 @@ export const implementServerCommandHandler: CommandHandler<ImplementServerComman
128
127
  }
129
128
  },
130
129
  };
130
+
131
+ // CLI arguments interface
132
+ interface CliArgs {
133
+ _: string[];
134
+ [key: string]: unknown;
135
+ }
136
+
137
+ // Type guard to check if it's an ImplementServerCommand
138
+ function isImplementServerCommand(obj: unknown): obj is ImplementServerCommand {
139
+ return (
140
+ typeof obj === 'object' &&
141
+ obj !== null &&
142
+ 'type' in obj &&
143
+ 'data' in obj &&
144
+ (obj as { type: unknown }).type === 'ImplementServer'
145
+ );
146
+ }
147
+
148
+ // Default export for CLI usage
149
+ export default async (commandOrArgs: ImplementServerCommand | CliArgs) => {
150
+ const command = isImplementServerCommand(commandOrArgs)
151
+ ? commandOrArgs
152
+ : {
153
+ type: 'ImplementServer' as const,
154
+ data: {
155
+ serverDirectory: commandOrArgs._?.[0] ?? 'server',
156
+ },
157
+ timestamp: new Date(),
158
+ };
159
+
160
+ const result = await handleImplementServerCommandInternal(command);
161
+ if (result.type === 'ServerImplemented') {
162
+ console.log(`✅ Server implementation completed successfully`);
163
+ if (result.data.flowsImplemented > 0) {
164
+ console.log(` ${result.data.flowsImplemented} flows implemented`);
165
+ }
166
+ } else {
167
+ console.error(`❌ Server implementation failed: ${result.data.error}`);
168
+ process.exit(1);
169
+ }
170
+ };
@@ -1,4 +1,3 @@
1
- #!/usr/bin/env node
2
1
  import { type CommandHandler, type Command, type Event } from '@auto-engineer/message-bus';
3
2
  import { generateTextWithAI, getAvailableProviders } from '@auto-engineer/ai-gateway';
4
3
  import path from 'path';
package/src/index.ts CHANGED
@@ -1,6 +1,7 @@
1
+ export { CLI_MANIFEST } from './cli-manifest';
2
+
1
3
  export {
2
4
  implementServerCommandHandler,
3
- handleImplementServerCommand,
4
5
  type ImplementServerCommand,
5
6
  type ServerImplementedEvent,
6
7
  type ServerImplementationFailedEvent,
@@ -1,14 +0,0 @@
1
-
2
- > @auto-engineer/server-implementer@0.4.8 lint:fix /Users/sam/WebstormProjects/top/auto-engineer/packages/server-implementer
3
- > eslint 'src/**/*.ts' --fix --config ../../eslint.config.ts
4
-
5
-
6
- /Users/sam/WebstormProjects/top/auto-engineer/packages/server-implementer/src/commands/implement-slice.ts
7
- 198:11 error Unexpected nullable string value in conditional. Please handle the nullish/empty cases explicitly @typescript-eslint/strict-boolean-expressions
8
- 230:8 error Async function 'handleImplementSliceCommand' has a complexity of 13. Maximum allowed is 10 complexity
9
- 269:9 error Unexpected nullable string value in conditional. Please handle the nullish/empty cases explicitly @typescript-eslint/strict-boolean-expressions
10
- 283:18 error Unexpected nullable string value in conditional. Please handle the nullish/empty cases explicitly @typescript-eslint/strict-boolean-expressions
11
-
12
- ✖ 4 problems (4 errors, 0 warnings)
13
-
14
-  ELIFECYCLE  Command failed with exit code 1.
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- import 'dotenv/config';
3
- //# sourceMappingURL=implement-server.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"implement-server.d.ts","sourceRoot":"","sources":["../../src/cli/implement-server.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC"}
@@ -1,39 +0,0 @@
1
- #!/usr/bin/env node
2
- import 'dotenv/config';
3
- import { fileURLToPath } from 'url';
4
- import { implementServerCommandHandler } from '../commands/implement-server.js';
5
- import createDebug from 'debug';
6
- const debug = createDebug('server-impl:cli:implement');
7
- const __filename = fileURLToPath(import.meta.url);
8
- const isMain = process.argv[1] === __filename;
9
- if (isMain) {
10
- debug('CLI started with args: %o', process.argv.slice(2));
11
- const serverDirectory = process.argv[2];
12
- if (!serverDirectory) {
13
- debug('ERROR: No server directory provided');
14
- console.error('Usage: implement:server <server-directory>');
15
- process.exit(1);
16
- }
17
- debug('Server directory argument: %s', serverDirectory);
18
- // Create command and execute handler
19
- const command = {
20
- type: 'ImplementServer',
21
- data: {
22
- serverDirectory,
23
- },
24
- timestamp: new Date(),
25
- requestId: `cli-${Date.now()}`,
26
- };
27
- debug('Executing command handler');
28
- void implementServerCommandHandler
29
- .handle(command)
30
- .then(() => {
31
- debug('Command completed successfully');
32
- })
33
- .catch((error) => {
34
- debug('Command failed: %O', error);
35
- console.error('Failed to execute command:', error);
36
- process.exit(1);
37
- });
38
- }
39
- //# sourceMappingURL=implement-server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"implement-server.js","sourceRoot":"","sources":["../../src/cli/implement-server.ts"],"names":[],"mappings":";AACA,OAAO,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,WAAW,MAAM,OAAO,CAAC;AAEhC,MAAM,KAAK,GAAG,WAAW,CAAC,2BAA2B,CAAC,CAAC;AAEvD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAElD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC;AAE9C,IAAI,MAAM,EAAE,CAAC;IACX,KAAK,CAAC,2BAA2B,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1D,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,+BAA+B,EAAE,eAAe,CAAC,CAAC;IAExD,qCAAqC;IACrC,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,iBAA0B;QAChC,IAAI,EAAE;YACJ,eAAe;SAChB;QACD,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,SAAS,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE;KAC/B,CAAC;IAEF,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACnC,KAAK,6BAA6B;SAC/B,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,GAAG,EAAE;QACT,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC1C,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QACnC,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,2 +0,0 @@
1
- import 'dotenv/config';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC"}
package/dist/cli/index.js DELETED
@@ -1,39 +0,0 @@
1
- import 'dotenv/config';
2
- import path from 'path';
3
- import { fileURLToPath } from 'url';
4
- import { existsSync } from 'fs';
5
- import { runFlows } from '../agent/runFlows.js';
6
- import createDebug from 'debug';
7
- const debug = createDebug('server-impl:cli');
8
- const __filename = fileURLToPath(import.meta.url);
9
- const isMain = process.argv[1] === __filename;
10
- if (isMain) {
11
- debug('CLI started with args: %o', process.argv.slice(2));
12
- const base = process.argv[2];
13
- if (!base) {
14
- debug('ERROR: No server root path provided');
15
- console.error('Usage: tsx src/cli/index.ts path/to/server/root');
16
- process.exit(1);
17
- }
18
- debug('Server root argument: %s', base);
19
- const serverRoot = path.resolve(base);
20
- debug('Resolved server root: %s', serverRoot);
21
- const flowsDir = path.join(serverRoot, 'src', 'domain', 'flows');
22
- debug('Flows directory: %s', flowsDir);
23
- if (!existsSync(flowsDir)) {
24
- debug('ERROR: Flows directory does not exist at %s', flowsDir);
25
- console.error(`❌ Flows directory not found at: ${flowsDir}`);
26
- process.exit(1);
27
- }
28
- debug('Flows directory exists, starting flow runner');
29
- void runFlows(flowsDir)
30
- .then(() => {
31
- debug('Flow runner completed');
32
- })
33
- .catch((error) => {
34
- debug('ERROR: Flow runner failed: %O', error);
35
- console.error('Flow runner failed:', error);
36
- process.exit(1);
37
- });
38
- }
39
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AACvB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,WAAW,MAAM,OAAO,CAAC;AAEhC,MAAM,KAAK,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC;AAE7C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAElD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC;AAE9C,IAAI,MAAM,EAAE,CAAC;IACX,KAAK,CAAC,2BAA2B,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE1D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,0BAA0B,EAAE,IAAI,CAAC,CAAC;IAExC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,KAAK,CAAC,0BAA0B,EAAE,UAAU,CAAC,CAAC;IAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;IACjE,KAAK,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC;IAEvC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,KAAK,CAAC,6CAA6C,EAAE,QAAQ,CAAC,CAAC;QAC/D,OAAO,CAAC,KAAK,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,8CAA8C,CAAC,CAAC;IACtD,KAAK,QAAQ,CAAC,QAAQ,CAAC;SACpB,IAAI,CAAC,GAAG,EAAE;QACT,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACjC,CAAC,CAAC;SACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACf,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,KAAK,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,46 +0,0 @@
1
- #!/usr/bin/env node
2
- import 'dotenv/config';
3
- import { fileURLToPath } from 'url';
4
- import { implementServerCommandHandler } from '../commands/implement-server';
5
- import createDebug from 'debug';
6
-
7
- const debug = createDebug('server-impl:cli:implement');
8
-
9
- const __filename = fileURLToPath(import.meta.url);
10
-
11
- const isMain = process.argv[1] === __filename;
12
-
13
- if (isMain) {
14
- debug('CLI started with args: %o', process.argv.slice(2));
15
-
16
- const serverDirectory = process.argv[2];
17
- if (!serverDirectory) {
18
- debug('ERROR: No server directory provided');
19
- console.error('Usage: implement:server <server-directory>');
20
- process.exit(1);
21
- }
22
-
23
- debug('Server directory argument: %s', serverDirectory);
24
-
25
- // Create command and execute handler
26
- const command = {
27
- type: 'ImplementServer' as const,
28
- data: {
29
- serverDirectory,
30
- },
31
- timestamp: new Date(),
32
- requestId: `cli-${Date.now()}`,
33
- };
34
-
35
- debug('Executing command handler');
36
- void implementServerCommandHandler
37
- .handle(command)
38
- .then(() => {
39
- debug('Command completed successfully');
40
- })
41
- .catch((error) => {
42
- debug('Command failed: %O', error);
43
- console.error('Failed to execute command:', error);
44
- process.exit(1);
45
- });
46
- }
package/src/cli/index.ts DELETED
@@ -1,48 +0,0 @@
1
- import 'dotenv/config';
2
- import path from 'path';
3
- import { fileURLToPath } from 'url';
4
- import { existsSync } from 'fs';
5
- import { runFlows } from '../agent/runFlows';
6
- import createDebug from 'debug';
7
-
8
- const debug = createDebug('server-impl:cli');
9
-
10
- const __filename = fileURLToPath(import.meta.url);
11
-
12
- const isMain = process.argv[1] === __filename;
13
-
14
- if (isMain) {
15
- debug('CLI started with args: %o', process.argv.slice(2));
16
-
17
- const base = process.argv[2];
18
- if (!base) {
19
- debug('ERROR: No server root path provided');
20
- console.error('Usage: tsx src/cli/index.ts path/to/server/root');
21
- process.exit(1);
22
- }
23
-
24
- debug('Server root argument: %s', base);
25
-
26
- const serverRoot = path.resolve(base);
27
- debug('Resolved server root: %s', serverRoot);
28
-
29
- const flowsDir = path.join(serverRoot, 'src', 'domain', 'flows');
30
- debug('Flows directory: %s', flowsDir);
31
-
32
- if (!existsSync(flowsDir)) {
33
- debug('ERROR: Flows directory does not exist at %s', flowsDir);
34
- console.error(`❌ Flows directory not found at: ${flowsDir}`);
35
- process.exit(1);
36
- }
37
-
38
- debug('Flows directory exists, starting flow runner');
39
- void runFlows(flowsDir)
40
- .then(() => {
41
- debug('Flow runner completed');
42
- })
43
- .catch((error) => {
44
- debug('ERROR: Flow runner failed: %O', error);
45
- console.error('Flow runner failed:', error);
46
- process.exit(1);
47
- });
48
- }