@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.
- package/.turbo/turbo-build.log +2 -2
- package/.turbo/turbo-format.log +20 -19
- package/.turbo/turbo-lint.log +5 -4
- package/.turbo/turbo-test.log +1 -1
- package/.turbo/turbo-type-check.log +1 -1
- package/CHANGELOG.md +20 -0
- package/README.md +264 -0
- package/dist/cli-manifest.d.ts +3 -0
- package/dist/cli-manifest.d.ts.map +1 -0
- package/dist/cli-manifest.js +23 -0
- package/dist/cli-manifest.js.map +1 -0
- package/dist/commands/implement-server.d.ts +6 -2
- package/dist/commands/implement-server.d.ts.map +1 -1
- package/dist/commands/implement-server.js +33 -3
- package/dist/commands/implement-server.js.map +1 -1
- package/dist/commands/implement-slice.d.ts +0 -1
- package/dist/commands/implement-slice.d.ts.map +1 -1
- package/dist/commands/implement-slice.js +0 -1
- package/dist/commands/implement-slice.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +10 -8
- package/src/cli-manifest.ts +24 -0
- package/src/commands/implement-server.ts +43 -3
- package/src/commands/implement-slice.ts +0 -1
- package/src/index.ts +2 -1
- package/.turbo/turbo-lint$colon$fix.log +0 -14
- package/dist/cli/implement-server.d.ts +0 -3
- package/dist/cli/implement-server.d.ts.map +0 -1
- package/dist/cli/implement-server.js +0 -39
- package/dist/cli/implement-server.js.map +0 -1
- package/dist/cli/index.d.ts +0 -2
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -39
- package/dist/cli/index.js.map +0 -1
- package/src/cli/implement-server.ts +0 -46
- package/src/cli/index.ts +0 -48
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @auto-engineer/server-implementer@0.
|
|
3
|
-
> tsc && tsx ../../scripts/fix-esm-imports.ts
|
|
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/
|
package/.turbo/turbo-format.log
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
>
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
src/agent/
|
|
11
|
-
src/agent/
|
|
12
|
-
src/
|
|
13
|
-
src/
|
|
14
|
-
src/
|
|
15
|
-
src/commands/implement-
|
|
16
|
-
src/
|
|
17
|
-
src/
|
|
18
|
-
src/
|
|
19
|
-
|
|
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.md[2K[1G[90mCHANGELOG.md[39m 24ms (unchanged)
|
|
7
|
+
DEBUG.md[2K[1G[90mDEBUG.md[39m 3ms (unchanged)
|
|
8
|
+
package.json[2K[1G[90mpackage.json[39m 32ms (unchanged)
|
|
9
|
+
README.md[2K[1G[90mREADME.md[39m 85ms (unchanged)
|
|
10
|
+
src/agent/runAllSlices.ts[2K[1G[90msrc/agent/runAllSlices.ts[39m 4ms (unchanged)
|
|
11
|
+
src/agent/runFlows.ts[2K[1G[90msrc/agent/runFlows.ts[39m 5ms (unchanged)
|
|
12
|
+
src/agent/runSlice.ts[2K[1G[90msrc/agent/runSlice.ts[39m 52ms (unchanged)
|
|
13
|
+
src/agent/runTests.ts[2K[1G[90msrc/agent/runTests.ts[39m 17ms (unchanged)
|
|
14
|
+
src/cli-manifest.ts[2K[1G[90msrc/cli-manifest.ts[39m 8ms (unchanged)
|
|
15
|
+
src/commands/implement-server.ts[2K[1G[90msrc/commands/implement-server.ts[39m 10ms (unchanged)
|
|
16
|
+
src/commands/implement-slice.ts[2K[1G[90msrc/commands/implement-slice.ts[39m 21ms (unchanged)
|
|
17
|
+
src/index.ts[2K[1G[90msrc/index.ts[39m 1ms (unchanged)
|
|
18
|
+
src/prompts/systemPrompt.ts[2K[1G[90msrc/prompts/systemPrompt.ts[39m 1ms (unchanged)
|
|
19
|
+
src/utils/extractCodeBlock.ts[2K[1G[90msrc/utils/extractCodeBlock.ts[39m 1ms (unchanged)
|
|
20
|
+
tsconfig.json[2K[1G[90mtsconfig.json[39m 1ms (unchanged)
|
package/.turbo/turbo-lint.log
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
>
|
|
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
|
+
|
package/.turbo/turbo-test.log
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
> @auto-engineer/server-implementer@0.
|
|
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 @@
|
|
|
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":"
|
|
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
|
-
|
|
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
|
|
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":"
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implement-slice.d.ts","sourceRoot":"","sources":["../../src/commands/implement-slice.ts"],"names":[],"mappings":"
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implement-slice.js","sourceRoot":"","sources":["../../src/commands/implement-slice.ts"],"names":[],"mappings":"
|
|
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 {
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,
|
|
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 {
|
|
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,
|
|
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.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
7
|
-
"
|
|
8
|
-
"
|
|
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.
|
|
15
|
-
"@auto-engineer/message-bus": "^0.
|
|
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
|
-
"
|
|
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
|
-
|
|
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
|
|
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
|
+
};
|
package/src/index.ts
CHANGED
|
@@ -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 +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"}
|
package/dist/cli/index.d.ts
DELETED
package/dist/cli/index.d.ts.map
DELETED
|
@@ -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
|
package/dist/cli/index.js.map
DELETED
|
@@ -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
|
-
}
|