@auto-engineer/frontend-implementer 0.14.0 → 0.15.0
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 +1 -1
- package/CHANGELOG.md +12 -0
- package/README.md +133 -301
- package/dist/src/commands/implement-client.d.ts.map +1 -1
- package/dist/src/commands/implement-client.js +5 -1
- package/dist/src/commands/implement-client.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/src/commands/implement-client.ts +5 -1
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @auto-engineer/frontend-implementer@0.
|
|
2
|
+
> @auto-engineer/frontend-implementer@0.15.0 build /home/runner/work/auto-engineer/auto-engineer/packages/frontend-implementer
|
|
3
3
|
> tsc && tsx ../../scripts/fix-esm-imports.ts && cp src/*.html dist/src/ 2>/dev/null || true
|
|
4
4
|
|
|
5
5
|
Fixed ESM imports in dist/
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @auto-engineer/frontend-implementer
|
|
2
2
|
|
|
3
|
+
## 0.15.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- version bump
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies []:
|
|
12
|
+
- @auto-engineer/message-bus@0.15.0
|
|
13
|
+
- @auto-engineer/ai-gateway@0.15.0
|
|
14
|
+
|
|
3
15
|
## 0.14.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -1,358 +1,190 @@
|
|
|
1
1
|
# @auto-engineer/frontend-implementer
|
|
2
2
|
|
|
3
|
-
AI-powered frontend implementation
|
|
3
|
+
AI-powered frontend implementation that transforms IA schemes into complete React applications.
|
|
4
4
|
|
|
5
|
-
|
|
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/frontend-implementer
|
|
12
|
-
```
|
|
5
|
+
---
|
|
13
6
|
|
|
14
|
-
##
|
|
7
|
+
## Purpose
|
|
15
8
|
|
|
16
|
-
|
|
9
|
+
Without `@auto-engineer/frontend-implementer`, you would have to manually translate Information Architecture specifications into React components, maintain consistency across atoms/molecules/organisms/pages, and integrate GraphQL operations by hand.
|
|
17
10
|
|
|
18
|
-
|
|
19
|
-
export default {
|
|
20
|
-
plugins: [
|
|
21
|
-
'@auto-engineer/frontend-implementer',
|
|
22
|
-
// ... other plugins
|
|
23
|
-
],
|
|
24
|
-
};
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## Commands
|
|
11
|
+
This package provides an AI agent that reads IA scheme specifications and generates production-ready React code with TypeScript types, atomic design structure, and GraphQL integration.
|
|
28
12
|
|
|
29
|
-
|
|
13
|
+
---
|
|
30
14
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
## What does this plugin do?
|
|
15
|
+
## Installation
|
|
34
16
|
|
|
35
|
-
|
|
17
|
+
```bash
|
|
18
|
+
pnpm add @auto-engineer/frontend-implementer
|
|
19
|
+
```
|
|
36
20
|
|
|
37
|
-
##
|
|
21
|
+
## Quick Start
|
|
38
22
|
|
|
39
|
-
|
|
23
|
+
Register the handler and implement a frontend project:
|
|
40
24
|
|
|
41
|
-
|
|
42
|
-
- Implements custom hooks for state management and API interactions
|
|
43
|
-
- Creates responsive layouts and interactive user interfaces
|
|
44
|
-
- Integrates with design systems and component libraries
|
|
25
|
+
### 1. Register the handlers
|
|
45
26
|
|
|
46
|
-
|
|
27
|
+
```typescript
|
|
28
|
+
import { COMMANDS } from '@auto-engineer/frontend-implementer';
|
|
29
|
+
import { createMessageBus } from '@auto-engineer/message-bus';
|
|
47
30
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
- Handles loading states and data caching
|
|
31
|
+
const bus = createMessageBus();
|
|
32
|
+
COMMANDS.forEach(cmd => bus.registerCommand(cmd));
|
|
33
|
+
```
|
|
52
34
|
|
|
53
|
-
###
|
|
35
|
+
### 2. Send a command
|
|
54
36
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
37
|
+
```typescript
|
|
38
|
+
const result = await bus.dispatch({
|
|
39
|
+
type: 'ImplementClient',
|
|
40
|
+
data: {
|
|
41
|
+
projectDir: './client',
|
|
42
|
+
iaSchemeDir: './.context',
|
|
43
|
+
designSystemPath: './design-system.md',
|
|
44
|
+
},
|
|
45
|
+
requestId: 'req-123',
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
console.log(result);
|
|
49
|
+
// → { type: 'ClientImplemented', data: { projectDir: './client' } }
|
|
50
|
+
```
|
|
59
51
|
|
|
60
|
-
|
|
52
|
+
The command analyzes the IA scheme and generates the complete frontend implementation.
|
|
61
53
|
|
|
62
|
-
|
|
63
|
-
- Handles edge cases and error scenarios gracefully
|
|
64
|
-
- Creates responsive designs for mobile and desktop
|
|
65
|
-
- Optimizes for performance and user experience
|
|
54
|
+
---
|
|
66
55
|
|
|
67
|
-
##
|
|
56
|
+
## How-to Guides
|
|
68
57
|
|
|
69
|
-
###
|
|
58
|
+
### Run via CLI
|
|
70
59
|
|
|
71
|
-
|
|
60
|
+
```bash
|
|
61
|
+
auto implement:client --project-dir=./client --ia-scheme-dir=./.context --design-system-path=./design-system.md
|
|
62
|
+
```
|
|
72
63
|
|
|
73
|
-
|
|
74
|
-
// Before (generated stub)
|
|
75
|
-
export function OrderHistoryPage() {
|
|
76
|
-
// TODO: Implement order history display
|
|
77
|
-
return <div>Order History - Not implemented</div>;
|
|
78
|
-
}
|
|
64
|
+
### Run via Script
|
|
79
65
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
const { data, loading, error, refetch } = useOrderHistoryQuery({
|
|
83
|
-
variables: { customerId: useCurrentUser().id },
|
|
84
|
-
errorPolicy: 'partial'
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
const [selectedOrder, setSelectedOrder] = useState<Order | null>(null);
|
|
88
|
-
|
|
89
|
-
if (loading) return <LoadingSpinner message="Loading your orders..." />;
|
|
90
|
-
if (error) return <ErrorMessage error={error} onRetry={refetch} />;
|
|
91
|
-
|
|
92
|
-
return (
|
|
93
|
-
<PageLayout title="Order History" breadcrumbs={[{ label: 'Orders', href: '/orders' }]}>
|
|
94
|
-
<div className="space-y-6">
|
|
95
|
-
<OrderFilters onFilterChange={handleFilterChange} />
|
|
96
|
-
|
|
97
|
-
{data?.orders.length === 0 ? (
|
|
98
|
-
<EmptyState
|
|
99
|
-
title="No orders found"
|
|
100
|
-
description="You haven't placed any orders yet."
|
|
101
|
-
action={<Button href="/products">Start Shopping</Button>}
|
|
102
|
-
/>
|
|
103
|
-
) : (
|
|
104
|
-
<OrderList
|
|
105
|
-
orders={data?.orders || []}
|
|
106
|
-
onSelectOrder={setSelectedOrder}
|
|
107
|
-
/>
|
|
108
|
-
)}
|
|
109
|
-
|
|
110
|
-
{selectedOrder && (
|
|
111
|
-
<OrderDetailModal
|
|
112
|
-
order={selectedOrder}
|
|
113
|
-
isOpen={!!selectedOrder}
|
|
114
|
-
onClose={() => setSelectedOrder(null)}
|
|
115
|
-
/>
|
|
116
|
-
)}
|
|
117
|
-
</div>
|
|
118
|
-
</PageLayout>
|
|
119
|
-
);
|
|
120
|
-
}
|
|
66
|
+
```bash
|
|
67
|
+
pnpm ai-agent ./client ./.context ./design-system.md
|
|
121
68
|
```
|
|
122
69
|
|
|
123
|
-
###
|
|
124
|
-
|
|
125
|
-
Creates reusable hooks for complex logic:
|
|
70
|
+
### Run Programmatically
|
|
126
71
|
|
|
127
72
|
```typescript
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
try {
|
|
137
|
-
const result = await placeOrderMutation({
|
|
138
|
-
variables: { input: orderData },
|
|
139
|
-
optimisticResponse: {
|
|
140
|
-
placeOrder: {
|
|
141
|
-
__typename: 'Order',
|
|
142
|
-
id: `temp-${Date.now()}`,
|
|
143
|
-
status: OrderStatus.Pending,
|
|
144
|
-
...orderData,
|
|
145
|
-
},
|
|
146
|
-
},
|
|
147
|
-
update: (cache, { data }) => {
|
|
148
|
-
if (data?.placeOrder) {
|
|
149
|
-
cache.modify({
|
|
150
|
-
fields: {
|
|
151
|
-
orders: (existing = []) => [...existing, data.placeOrder],
|
|
152
|
-
},
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
},
|
|
156
|
-
});
|
|
157
|
-
|
|
158
|
-
return result.data?.placeOrder;
|
|
159
|
-
} catch (error) {
|
|
160
|
-
throw new OrderPlacementError('Failed to place order', error);
|
|
161
|
-
}
|
|
162
|
-
},
|
|
163
|
-
[placeOrderMutation],
|
|
164
|
-
);
|
|
165
|
-
|
|
166
|
-
const cancelOrder = useCallback(
|
|
167
|
-
async (orderId: string) => {
|
|
168
|
-
// Implementation with optimistic updates and error handling
|
|
169
|
-
},
|
|
170
|
-
[cancelOrderMutation],
|
|
171
|
-
);
|
|
172
|
-
|
|
173
|
-
return { placeOrder, cancelOrder, orders };
|
|
174
|
-
}
|
|
73
|
+
import { runAIAgent } from '@auto-engineer/frontend-implementer/dist/src/agent';
|
|
74
|
+
|
|
75
|
+
await runAIAgent(
|
|
76
|
+
'./client',
|
|
77
|
+
'./.context',
|
|
78
|
+
'./design-system.md',
|
|
79
|
+
[]
|
|
80
|
+
);
|
|
175
81
|
```
|
|
176
82
|
|
|
177
|
-
###
|
|
178
|
-
|
|
179
|
-
Creates feature-rich, accessible components:
|
|
83
|
+
### Handle Errors
|
|
180
84
|
|
|
181
85
|
```typescript
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
const [isAdding, setIsAdding] = useState(false);
|
|
185
|
-
const [imageError, setImageError] = useState(false);
|
|
186
|
-
const { addToast } = useToast();
|
|
187
|
-
|
|
188
|
-
const handleAddToCart = async () => {
|
|
189
|
-
setIsAdding(true);
|
|
190
|
-
try {
|
|
191
|
-
await onAddToCart(product.id);
|
|
192
|
-
addToast({
|
|
193
|
-
type: 'success',
|
|
194
|
-
message: `${product.name} added to cart`
|
|
195
|
-
});
|
|
196
|
-
} catch (error) {
|
|
197
|
-
addToast({
|
|
198
|
-
type: 'error',
|
|
199
|
-
message: 'Failed to add item to cart'
|
|
200
|
-
});
|
|
201
|
-
} finally {
|
|
202
|
-
setIsAdding(false);
|
|
203
|
-
}
|
|
204
|
-
};
|
|
205
|
-
|
|
206
|
-
return (
|
|
207
|
-
<Card className="group hover:shadow-lg transition-shadow">
|
|
208
|
-
<CardContent className="p-0">
|
|
209
|
-
{!imageError ? (
|
|
210
|
-
<img
|
|
211
|
-
src={product.imageUrl}
|
|
212
|
-
alt={product.name}
|
|
213
|
-
className="w-full h-48 object-cover rounded-t-lg"
|
|
214
|
-
onError={() => setImageError(true)}
|
|
215
|
-
/>
|
|
216
|
-
) : (
|
|
217
|
-
<div className="w-full h-48 bg-gray-100 flex items-center justify-center rounded-t-lg">
|
|
218
|
-
<ImageIcon className="text-gray-400" size={48} />
|
|
219
|
-
</div>
|
|
220
|
-
)}
|
|
221
|
-
|
|
222
|
-
<div className="p-4">
|
|
223
|
-
<h3 className="font-semibold text-lg mb-2">{product.name}</h3>
|
|
224
|
-
<p className="text-gray-600 text-sm mb-3 line-clamp-2">
|
|
225
|
-
{product.description}
|
|
226
|
-
</p>
|
|
227
|
-
|
|
228
|
-
<div className="flex justify-between items-center">
|
|
229
|
-
<span className="text-xl font-bold text-primary">
|
|
230
|
-
${product.price.toFixed(2)}
|
|
231
|
-
</span>
|
|
232
|
-
|
|
233
|
-
<Button
|
|
234
|
-
onClick={handleAddToCart}
|
|
235
|
-
disabled={isAdding || !product.inStock}
|
|
236
|
-
className="min-w-24"
|
|
237
|
-
>
|
|
238
|
-
{isAdding ? (
|
|
239
|
-
<Spinner size="sm" />
|
|
240
|
-
) : !product.inStock ? (
|
|
241
|
-
'Out of Stock'
|
|
242
|
-
) : (
|
|
243
|
-
'Add to Cart'
|
|
244
|
-
)}
|
|
245
|
-
</Button>
|
|
246
|
-
</div>
|
|
247
|
-
</div>
|
|
248
|
-
</CardContent>
|
|
249
|
-
</Card>
|
|
250
|
-
);
|
|
86
|
+
if (result.type === 'ClientImplementationFailed') {
|
|
87
|
+
console.error(result.data.error);
|
|
251
88
|
}
|
|
252
89
|
```
|
|
253
90
|
|
|
254
|
-
|
|
91
|
+
### Enable Debug Logging
|
|
255
92
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
```typescript
|
|
259
|
-
// auto.config.ts
|
|
260
|
-
export default {
|
|
261
|
-
plugins: [
|
|
262
|
-
[
|
|
263
|
-
'@auto-engineer/frontend-implementer',
|
|
264
|
-
{
|
|
265
|
-
// AI model configuration
|
|
266
|
-
model: 'claude-3-sonnet',
|
|
267
|
-
|
|
268
|
-
// Framework preferences
|
|
269
|
-
framework: 'react',
|
|
270
|
-
stateManagement: 'apollo-client',
|
|
271
|
-
|
|
272
|
-
// UI library integration
|
|
273
|
-
designSystem: 'shadcn/ui',
|
|
274
|
-
iconLibrary: 'lucide-react',
|
|
275
|
-
|
|
276
|
-
// Implementation preferences
|
|
277
|
-
includeAccessibility: true,
|
|
278
|
-
includeAnimations: true,
|
|
279
|
-
includeErrorBoundaries: true,
|
|
280
|
-
|
|
281
|
-
// Testing
|
|
282
|
-
generateTests: true,
|
|
283
|
-
testingLibrary: 'testing-library',
|
|
284
|
-
},
|
|
285
|
-
],
|
|
286
|
-
],
|
|
287
|
-
};
|
|
93
|
+
```bash
|
|
94
|
+
DEBUG=auto:frontend-implementer:* pnpm ai-agent ./client ./.context ./design-system.md
|
|
288
95
|
```
|
|
289
96
|
|
|
290
|
-
|
|
97
|
+
---
|
|
291
98
|
|
|
292
|
-
|
|
99
|
+
## API Reference
|
|
293
100
|
|
|
294
|
-
|
|
295
|
-
- Touch-friendly interactions for mobile devices
|
|
296
|
-
- Optimized layouts for different screen sizes
|
|
297
|
-
- Progressive enhancement patterns
|
|
101
|
+
### Exports
|
|
298
102
|
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
- ARIA labels and roles for screen readers
|
|
302
|
-
- Keyboard navigation support
|
|
303
|
-
- Color contrast compliance
|
|
304
|
-
- Focus management and visual indicators
|
|
103
|
+
```typescript
|
|
104
|
+
import { COMMANDS } from '@auto-engineer/frontend-implementer';
|
|
305
105
|
|
|
306
|
-
|
|
106
|
+
import type {
|
|
107
|
+
ImplementClientCommand,
|
|
108
|
+
ClientImplementedEvent,
|
|
109
|
+
ClientImplementationFailedEvent,
|
|
110
|
+
} from '@auto-engineer/frontend-implementer';
|
|
111
|
+
```
|
|
307
112
|
|
|
308
|
-
|
|
309
|
-
- Code splitting for optimal bundle sizes
|
|
310
|
-
- Memoization for expensive computations
|
|
311
|
-
- Efficient re-rendering patterns
|
|
113
|
+
### Commands
|
|
312
114
|
|
|
313
|
-
|
|
115
|
+
| Command | CLI Alias | Description |
|
|
116
|
+
|---------|-----------|-------------|
|
|
117
|
+
| `ImplementClient` | `implement:client` | Generate React frontend from IA scheme |
|
|
314
118
|
|
|
315
|
-
|
|
316
|
-
- User-friendly error messages
|
|
317
|
-
- Retry mechanisms for failed operations
|
|
318
|
-
- Graceful degradation patterns
|
|
119
|
+
### ImplementClientCommand
|
|
319
120
|
|
|
320
|
-
|
|
121
|
+
```typescript
|
|
122
|
+
type ImplementClientCommand = Command<
|
|
123
|
+
'ImplementClient',
|
|
124
|
+
{
|
|
125
|
+
projectDir: string;
|
|
126
|
+
iaSchemeDir: string;
|
|
127
|
+
designSystemPath: string;
|
|
128
|
+
failures?: string[];
|
|
129
|
+
}
|
|
130
|
+
>;
|
|
131
|
+
```
|
|
321
132
|
|
|
322
|
-
|
|
133
|
+
### ClientImplementedEvent
|
|
323
134
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
135
|
+
```typescript
|
|
136
|
+
type ClientImplementedEvent = Event<
|
|
137
|
+
'ClientImplemented',
|
|
138
|
+
{
|
|
139
|
+
projectDir: string;
|
|
140
|
+
}
|
|
141
|
+
>;
|
|
142
|
+
```
|
|
328
143
|
|
|
329
|
-
|
|
144
|
+
### ClientImplementationFailedEvent
|
|
330
145
|
|
|
331
|
-
|
|
146
|
+
```typescript
|
|
147
|
+
type ClientImplementationFailedEvent = Event<
|
|
148
|
+
'ClientImplementationFailed',
|
|
149
|
+
{
|
|
150
|
+
error: string;
|
|
151
|
+
projectDir: string;
|
|
152
|
+
}
|
|
153
|
+
>;
|
|
154
|
+
```
|
|
332
155
|
|
|
333
|
-
|
|
334
|
-
- **Component Testing**: Comprehensive test coverage for user interactions
|
|
335
|
-
- **Accessibility Auditing**: WCAG compliance and screen reader compatibility
|
|
336
|
-
- **Performance Monitoring**: Identifies and resolves performance bottlenecks
|
|
337
|
-
- **Code Review**: AI-powered review for best practices and patterns
|
|
156
|
+
---
|
|
338
157
|
|
|
339
|
-
##
|
|
158
|
+
## Architecture
|
|
340
159
|
|
|
341
|
-
|
|
160
|
+
```
|
|
161
|
+
src/
|
|
162
|
+
├── index.ts
|
|
163
|
+
├── agent.ts
|
|
164
|
+
├── agent-cli.ts
|
|
165
|
+
└── commands/
|
|
166
|
+
└── implement-client.ts
|
|
167
|
+
```
|
|
342
168
|
|
|
343
|
-
The
|
|
169
|
+
The following diagram shows the implementation flow:
|
|
344
170
|
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
171
|
+
```mermaid
|
|
172
|
+
flowchart TB
|
|
173
|
+
A[ImplementClient] --> B[Load Project Context]
|
|
174
|
+
B --> C[Load IA Scheme]
|
|
175
|
+
C --> D[Analyze Atoms/Components]
|
|
176
|
+
D --> E[Plan File Changes]
|
|
177
|
+
E --> F[Generate Files via AI]
|
|
178
|
+
F --> G[ClientImplementedEvent]
|
|
179
|
+
```
|
|
350
180
|
|
|
351
|
-
|
|
181
|
+
*Flow: Command loads context, plans changes based on IA scheme, generates files via AI.*
|
|
352
182
|
|
|
353
|
-
|
|
354
|
-
- Adds advanced features incrementally
|
|
355
|
-
- Supports partial implementations and manual refinements
|
|
356
|
-
- Adapts to user feedback and requirements changes
|
|
183
|
+
### Dependencies
|
|
357
184
|
|
|
358
|
-
|
|
185
|
+
| Package | Usage |
|
|
186
|
+
|---------|-------|
|
|
187
|
+
| `@auto-engineer/ai-gateway` | AI text generation |
|
|
188
|
+
| `@auto-engineer/message-bus` | Command/event infrastructure |
|
|
189
|
+
| `zod` | Schema validation |
|
|
190
|
+
| `debug` | Debug logging |
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implement-client.d.ts","sourceRoot":"","sources":["../../../src/commands/implement-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAwB,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAM5F,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAC1C,iBAAiB,EACjB;IACE,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,CACF,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,KAAK,CACxC,mBAAmB,EACnB;IACE,UAAU,EAAE,MAAM,CAAC;CACpB,CACF,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG,KAAK,CACjD,4BAA4B,EAC5B;IACE,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB,CACF,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,sBAAsB,GAAG,+BAA+B,CAAC;AAE7F,eAAO,MAAM,cAAc;;;oBAxBX,MAAM;qBACL,MAAM;0BACD,MAAM;mBACb,MAAM,EAAE;;;;;
|
|
1
|
+
{"version":3,"file":"implement-client.d.ts","sourceRoot":"","sources":["../../../src/commands/implement-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAwB,KAAK,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAM5F,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAC1C,iBAAiB,EACjB;IACE,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,CACF,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,KAAK,CACxC,mBAAmB,EACnB;IACE,UAAU,EAAE,MAAM,CAAC;CACpB,CACF,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG,KAAK,CACjD,4BAA4B,EAC5B;IACE,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB,CACF,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,sBAAsB,GAAG,+BAA+B,CAAC;AAE7F,eAAO,MAAM,cAAc;;;oBAxBX,MAAM;qBACL,MAAM;0BACD,MAAM;mBACb,MAAM,EAAE;;;;;GAmErB,CAAC;AAuCH,eAAe,cAAc,CAAC"}
|
|
@@ -4,6 +4,7 @@ import { runAIAgent } from '../agent.js';
|
|
|
4
4
|
const debug = createDebug('auto:frontend-implementer:implement-client');
|
|
5
5
|
export const commandHandler = defineCommandHandler({
|
|
6
6
|
name: 'ImplementClient',
|
|
7
|
+
displayName: 'Implement Client',
|
|
7
8
|
alias: 'implement:client',
|
|
8
9
|
description: 'AI implements client',
|
|
9
10
|
category: 'implement',
|
|
@@ -29,7 +30,10 @@ export const commandHandler = defineCommandHandler({
|
|
|
29
30
|
examples: [
|
|
30
31
|
'$ auto implement:client --project-dir=./client --ia-scheme-dir=./.context --design-system-path=./design-system.md',
|
|
31
32
|
],
|
|
32
|
-
events: [
|
|
33
|
+
events: [
|
|
34
|
+
{ name: 'ClientImplemented', displayName: 'Client Implemented' },
|
|
35
|
+
{ name: 'ClientImplementationFailed', displayName: 'Client Implementation Failed' },
|
|
36
|
+
],
|
|
33
37
|
handle: async (command) => {
|
|
34
38
|
const result = await handleImplementClientCommandInternal(command);
|
|
35
39
|
if (result.type === 'ClientImplemented') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"implement-client.js","sourceRoot":"","sources":["../../../src/commands/implement-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,oBAAoB,EAAc,MAAM,4BAA4B,CAAC;AAC5F,OAAO,WAAW,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,KAAK,GAAG,WAAW,CAAC,4CAA4C,CAAC,CAAC;AA6BxE,MAAM,CAAC,MAAM,cAAc,GAAG,oBAAoB,CAGhD;IACA,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,kBAAkB;IACzB,WAAW,EAAE,sBAAsB;IACnC,QAAQ,EAAE,WAAW;IACrB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE;QACN,UAAU,EAAE;YACV,WAAW,EAAE,uBAAuB;YACpC,QAAQ,EAAE,IAAI;SACf;QACD,WAAW,EAAE;YACX,WAAW,EAAE,wBAAwB;YACrC,QAAQ,EAAE,IAAI;SACf;QACD,gBAAgB,EAAE;YAChB,WAAW,EAAE,oBAAoB;YACjC,QAAQ,EAAE,IAAI;SACf;QACD,QAAQ,EAAE;YACR,WAAW,EAAE,4CAA4C;YACzD,QAAQ,EAAE,KAAK;SAChB;KACF;IACD,QAAQ,EAAE;QACR,mHAAmH;KACpH;IACD,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"implement-client.js","sourceRoot":"","sources":["../../../src/commands/implement-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,oBAAoB,EAAc,MAAM,4BAA4B,CAAC;AAC5F,OAAO,WAAW,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,KAAK,GAAG,WAAW,CAAC,4CAA4C,CAAC,CAAC;AA6BxE,MAAM,CAAC,MAAM,cAAc,GAAG,oBAAoB,CAGhD;IACA,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,kBAAkB;IAC/B,KAAK,EAAE,kBAAkB;IACzB,WAAW,EAAE,sBAAsB;IACnC,QAAQ,EAAE,WAAW;IACrB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE;QACN,UAAU,EAAE;YACV,WAAW,EAAE,uBAAuB;YACpC,QAAQ,EAAE,IAAI;SACf;QACD,WAAW,EAAE;YACX,WAAW,EAAE,wBAAwB;YACrC,QAAQ,EAAE,IAAI;SACf;QACD,gBAAgB,EAAE;YAChB,WAAW,EAAE,oBAAoB;YACjC,QAAQ,EAAE,IAAI;SACf;QACD,QAAQ,EAAE;YACR,WAAW,EAAE,4CAA4C;YACzD,QAAQ,EAAE,KAAK;SAChB;KACF;IACD,QAAQ,EAAE;QACR,mHAAmH;KACpH;IACD,MAAM,EAAE;QACN,EAAE,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,oBAAoB,EAAE;QAChE,EAAE,IAAI,EAAE,4BAA4B,EAAE,WAAW,EAAE,8BAA8B,EAAE;KACpF;IACD,MAAM,EAAE,KAAK,EACX,OAA+B,EACoC,EAAE;QACrE,MAAM,MAAM,GAAG,MAAM,oCAAoC,CAAC,OAAO,CAAC,CAAC;QACnE,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;YACxC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC,CAAC;AAEH,KAAK,UAAU,oCAAoC,CACjD,OAA+B;IAE/B,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAElF,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAEtE,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAE7C,OAAO;YACL,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE;gBACJ,UAAU;aACX;YACD,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;QAE/C,OAAO;YACL,IAAI,EAAE,4BAA4B;YAClC,IAAI,EAAE;gBACJ,KAAK,EAAE,YAAY;gBACnB,UAAU;aACX;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,wCAAwC;AACxC,eAAe,cAAc,CAAC"}
|