@auto-engineer/cli 0.9.11 → 0.9.13
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/CHANGELOG.md +18 -0
- package/dist/src/dsl/index.d.ts +34 -3
- package/dist/src/dsl/index.d.ts.map +1 -1
- package/dist/src/dsl/index.js +304 -14
- package/dist/src/dsl/index.js.map +1 -1
- package/dist/src/dsl-exports.d.ts +3 -1
- package/dist/src/dsl-exports.d.ts.map +1 -1
- package/dist/src/dsl-exports.js +2 -1
- package/dist/src/dsl-exports.js.map +1 -1
- package/dist/src/server/command-metadata-service.d.ts +17 -0
- package/dist/src/server/command-metadata-service.d.ts.map +1 -0
- package/dist/src/server/command-metadata-service.js +35 -0
- package/dist/src/server/command-metadata-service.js.map +1 -0
- package/dist/src/server/command-registry.d.ts +5 -16
- package/dist/src/server/command-registry.d.ts.map +1 -1
- package/dist/src/server/command-registry.js +8 -18
- package/dist/src/server/command-registry.js.map +1 -1
- package/dist/src/server/config-loader.d.ts +2 -1
- package/dist/src/server/config-loader.d.ts.map +1 -1
- package/dist/src/server/config-loader.js +9 -1
- package/dist/src/server/config-loader.js.map +1 -1
- package/dist/src/server/event-processor.d.ts +5 -3
- package/dist/src/server/event-processor.d.ts.map +1 -1
- package/dist/src/server/event-processor.js +10 -1
- package/dist/src/server/event-processor.js.map +1 -1
- package/dist/src/server/http-routes.d.ts +3 -0
- package/dist/src/server/http-routes.d.ts.map +1 -1
- package/dist/src/server/http-routes.js +29 -8
- package/dist/src/server/http-routes.js.map +1 -1
- package/dist/src/server/sandbox-landing-page.html +336 -315
- package/dist/src/server/server.d.ts +11 -1
- package/dist/src/server/server.d.ts.map +1 -1
- package/dist/src/server/server.js +19 -1
- package/dist/src/server/server.js.map +1 -1
- package/dist/src/server/settled-tracker.d.ts +19 -0
- package/dist/src/server/settled-tracker.d.ts.map +1 -0
- package/dist/src/server/settled-tracker.js +162 -0
- package/dist/src/server/settled-tracker.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @auto-engineer/cli
|
|
2
2
|
|
|
3
|
+
## 0.9.13
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies []:
|
|
8
|
+
- @auto-engineer/file-store@0.9.13
|
|
9
|
+
- @auto-engineer/message-bus@0.9.13
|
|
10
|
+
- @auto-engineer/message-store@0.9.13
|
|
11
|
+
|
|
12
|
+
## 0.9.12
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- Updated dependencies []:
|
|
17
|
+
- @auto-engineer/file-store@0.9.12
|
|
18
|
+
- @auto-engineer/message-bus@0.9.12
|
|
19
|
+
- @auto-engineer/message-store@0.9.12
|
|
20
|
+
|
|
3
21
|
## 0.9.11
|
|
4
22
|
|
|
5
23
|
### Patch Changes
|
package/dist/src/dsl/index.d.ts
CHANGED
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
import type { Command, Event } from '@auto-engineer/message-bus';
|
|
2
2
|
import type { EventRegistration, DispatchAction, FoldRegistration, DslRegistration, ConfigDefinition, SettledRegistration, SettledHandlerConfig } from './types';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import type { CommandMetadataService } from '../server/command-metadata-service';
|
|
4
|
+
import type { ILocalMessageStore } from '@auto-engineer/message-store';
|
|
5
|
+
export type NodeStatus = 'None' | 'idle' | 'running' | 'pass' | 'fail';
|
|
6
|
+
export interface CommandEventMapping {
|
|
7
|
+
successEvent: string;
|
|
8
|
+
failureEvent: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const COMMAND_TO_EVENT_MAP: Record<string, CommandEventMapping>;
|
|
11
|
+
export interface PipelineGraphConfig {
|
|
12
|
+
metadataService?: CommandMetadataService;
|
|
13
|
+
eventHandlers?: Map<string, Array<(event: Event) => void>>;
|
|
14
|
+
messageStore?: ILocalMessageStore;
|
|
15
|
+
}
|
|
6
16
|
export declare function on<T extends Event>(eventType: string | ((event: T) => void), handler?: (event: T) => Command | Command[] | DispatchAction | void): EventRegistration | void;
|
|
7
17
|
export declare namespace on {
|
|
8
18
|
var settled: <T extends Command, U extends Command = never, V extends Command = never, W extends Command = never, X extends Command = never>(commandTypes: [T, U, V, W, X] extends [Command, never, never, never, never] ? [T["type"]] : [T, U, V, W, X] extends [Command, Command, never, never, never] ? [T["type"], U["type"]] : [T, U, V, W, X] extends [Command, Command, Command, never, never] ? [T["type"], U["type"], V["type"]] : [T, U, V, W, X] extends [Command, Command, Command, Command, never] ? [T["type"], U["type"], V["type"], W["type"]] : [T, U, V, W, X] extends [Command, Command, Command, Command, Command] ? [T["type"], U["type"], V["type"], W["type"], X["type"]] : never, callbackOrConfig: ((events: [T, U, V, W, X] extends [Command, never, never, never, never] ? { [K in T["type"]]: Event[]; } : [T, U, V, W, X] extends [Command, Command, never, never, never] ? { [K in T["type"] | U["type"]]: Event[]; } : [T, U, V, W, X] extends [Command, Command, Command, never, never] ? { [K in T["type"] | U["type"] | V["type"]]: Event[]; } : [T, U, V, W, X] extends [Command, Command, Command, Command, never] ? { [K in T["type"] | U["type"] | V["type"] | W["type"]]: Event[]; } : [T, U, V, W, X] extends [Command, Command, Command, Command, Command] ? { [K in T["type"] | U["type"] | V["type"] | W["type"] | X["type"]]: Event[]; } : never) => void) | SettledHandlerConfig) => SettledRegistration;
|
|
@@ -34,4 +44,25 @@ export declare function getPendingDispatches(): DispatchAction[];
|
|
|
34
44
|
* Create an Auto configuration with plugins and pipeline
|
|
35
45
|
*/
|
|
36
46
|
export declare function autoConfig(config: ConfigDefinition): ConfigDefinition;
|
|
47
|
+
/**
|
|
48
|
+
* Generate pipeline graph from current registrations
|
|
49
|
+
*/
|
|
50
|
+
export declare function getPipelineGraph(config?: PipelineGraphConfig): Promise<{
|
|
51
|
+
nodes: Array<{
|
|
52
|
+
id: string;
|
|
53
|
+
name: string;
|
|
54
|
+
title: string;
|
|
55
|
+
alias?: string;
|
|
56
|
+
description?: string;
|
|
57
|
+
package?: string;
|
|
58
|
+
version?: string;
|
|
59
|
+
category?: string;
|
|
60
|
+
icon?: string;
|
|
61
|
+
status: NodeStatus;
|
|
62
|
+
}>;
|
|
63
|
+
edges: Array<{
|
|
64
|
+
from: string;
|
|
65
|
+
to: string;
|
|
66
|
+
}>;
|
|
67
|
+
}>;
|
|
37
68
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dsl/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dsl/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/dsl/index.js
CHANGED
|
@@ -1,16 +1,50 @@
|
|
|
1
|
-
|
|
1
|
+
import createDebug from 'debug';
|
|
2
|
+
const debug = createDebug('auto-engineer:dsl:pipeline-graph');
|
|
2
3
|
let registrations = [];
|
|
3
4
|
let pendingDispatches = [];
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
export const COMMAND_TO_EVENT_MAP = {
|
|
6
|
+
ExportSchema: {
|
|
7
|
+
successEvent: 'SchemaExported',
|
|
8
|
+
failureEvent: 'SchemaExportFailed',
|
|
9
|
+
},
|
|
10
|
+
GenerateServer: {
|
|
11
|
+
successEvent: 'ServerGenerated',
|
|
12
|
+
failureEvent: 'ServerGenerationFailed',
|
|
13
|
+
},
|
|
14
|
+
GenerateIA: {
|
|
15
|
+
successEvent: 'IAGenerated',
|
|
16
|
+
failureEvent: 'IAGenerationFailed',
|
|
17
|
+
},
|
|
18
|
+
GenerateClient: {
|
|
19
|
+
successEvent: 'ClientGenerated',
|
|
20
|
+
failureEvent: 'ClientGenerationFailed',
|
|
21
|
+
},
|
|
22
|
+
ImplementClient: {
|
|
23
|
+
successEvent: 'ClientImplemented',
|
|
24
|
+
failureEvent: 'ClientImplementationFailed',
|
|
25
|
+
},
|
|
26
|
+
ImplementSlice: {
|
|
27
|
+
successEvent: 'SliceImplemented',
|
|
28
|
+
failureEvent: 'SliceImplementationFailed',
|
|
29
|
+
},
|
|
30
|
+
CheckTests: {
|
|
31
|
+
successEvent: 'TestsPassed',
|
|
32
|
+
failureEvent: 'TestsFailed',
|
|
33
|
+
},
|
|
34
|
+
CheckTypes: {
|
|
35
|
+
successEvent: 'TypeCheckPassed',
|
|
36
|
+
failureEvent: 'TypeCheckFailed',
|
|
37
|
+
},
|
|
38
|
+
CheckLint: {
|
|
39
|
+
successEvent: 'LintCheckPassed',
|
|
40
|
+
failureEvent: 'LintCheckFailed',
|
|
41
|
+
},
|
|
42
|
+
};
|
|
7
43
|
export function on(eventType, handler) {
|
|
8
|
-
// Support both forms: on('EventName', handler) and on((event: EventType) => ...)
|
|
9
44
|
if (typeof eventType === 'function') {
|
|
10
|
-
// Extract event type from function parameter type (will be handled by config parser)
|
|
11
45
|
const registration = {
|
|
12
46
|
type: 'on',
|
|
13
|
-
eventType: '',
|
|
47
|
+
eventType: '',
|
|
14
48
|
handler: eventType,
|
|
15
49
|
};
|
|
16
50
|
registrations.push(registration);
|
|
@@ -26,13 +60,9 @@ export function on(eventType, handler) {
|
|
|
26
60
|
return registration;
|
|
27
61
|
}
|
|
28
62
|
}
|
|
29
|
-
/**
|
|
30
|
-
* Wait for all specified commands to settle and collect their events
|
|
31
|
-
*/
|
|
32
63
|
function settled(commandTypes, callbackOrConfig) {
|
|
33
64
|
const commandTypesArray = commandTypes;
|
|
34
65
|
if (typeof callbackOrConfig === 'function') {
|
|
35
|
-
// Backward compatibility: simple callback function
|
|
36
66
|
const registration = {
|
|
37
67
|
type: 'on-settled',
|
|
38
68
|
commandTypes: commandTypesArray,
|
|
@@ -42,15 +72,12 @@ function settled(commandTypes, callbackOrConfig) {
|
|
|
42
72
|
return registration;
|
|
43
73
|
}
|
|
44
74
|
else {
|
|
45
|
-
// Enhanced API with dispatches declaration
|
|
46
75
|
const { dispatches, handler } = callbackOrConfig;
|
|
47
|
-
// Create a wrapper handler that provides a type-safe dispatch function
|
|
48
76
|
const wrappedHandler = (events) => {
|
|
49
77
|
const validatedDispatch = (command) => {
|
|
50
78
|
if (!dispatches.includes(command.type)) {
|
|
51
79
|
throw new Error(`Command type "${command.type}" is not declared in dispatches list`);
|
|
52
80
|
}
|
|
53
|
-
// Create a dispatch action and add it to pending dispatches
|
|
54
81
|
const action = {
|
|
55
82
|
type: 'dispatch',
|
|
56
83
|
command,
|
|
@@ -181,4 +208,267 @@ export function getPendingDispatches() {
|
|
|
181
208
|
export function autoConfig(config) {
|
|
182
209
|
return config;
|
|
183
210
|
}
|
|
211
|
+
/**
|
|
212
|
+
* Convert camelCase/PascalCase to title case with spaces
|
|
213
|
+
* E.g., "GenerateServer" -> "Generate Server", "checkTypes" -> "Check Types", "GenerateHTML" -> "Generate HTML"
|
|
214
|
+
*/
|
|
215
|
+
function camelCaseToTitleCase(str) {
|
|
216
|
+
return str
|
|
217
|
+
.replace(/([a-z])([A-Z])/g, '$1 $2')
|
|
218
|
+
.replace(/([A-Z])([A-Z][a-z])/g, '$1 $2')
|
|
219
|
+
.replace(/[_-]/g, ' ')
|
|
220
|
+
.replace(/^./, (match) => match.toUpperCase())
|
|
221
|
+
.trim();
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Extract the source command from an event type name
|
|
225
|
+
* E.g., "SchemaExported" -> "ExportSchema"
|
|
226
|
+
*/
|
|
227
|
+
function getCommandFromEventType(eventType) {
|
|
228
|
+
// Map known event types to their source commands
|
|
229
|
+
const eventToCommandMap = {
|
|
230
|
+
SchemaExported: 'ExportSchema',
|
|
231
|
+
ServerGenerated: 'GenerateServer',
|
|
232
|
+
IAGenerated: 'GenerateIA',
|
|
233
|
+
ClientGenerated: 'GenerateClient',
|
|
234
|
+
SliceImplemented: 'ImplementSlice',
|
|
235
|
+
};
|
|
236
|
+
return eventToCommandMap[eventType] || null;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Get target commands that are typically dispatched for an event type
|
|
240
|
+
* Based on the pipeline configuration in auto.config.ts
|
|
241
|
+
*/
|
|
242
|
+
function getTargetCommandsFromEventType(eventType) {
|
|
243
|
+
// Map event types to their typical target commands
|
|
244
|
+
const eventToTargetsMap = {
|
|
245
|
+
SchemaExported: ['GenerateServer'],
|
|
246
|
+
ServerGenerated: ['GenerateIA'],
|
|
247
|
+
IAGenerated: ['GenerateClient'],
|
|
248
|
+
ClientGenerated: ['ImplementClient'],
|
|
249
|
+
SliceImplemented: ['CheckTests', 'CheckTypes', 'CheckLint'],
|
|
250
|
+
};
|
|
251
|
+
return eventToTargetsMap[eventType] ?? [];
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* Calculate status for a pipeline node based on message store
|
|
255
|
+
*/
|
|
256
|
+
async function calculateNodeStatus(commandType, messageStore) {
|
|
257
|
+
try {
|
|
258
|
+
// Get all messages from the message store
|
|
259
|
+
const allMessages = await messageStore.getAllMessages();
|
|
260
|
+
// Find all commands for this command type
|
|
261
|
+
const commands = allMessages
|
|
262
|
+
.filter((msg) => msg.messageType === 'command' && msg.message.type === commandType)
|
|
263
|
+
.sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime());
|
|
264
|
+
if (commands.length === 0) {
|
|
265
|
+
return 'idle';
|
|
266
|
+
}
|
|
267
|
+
// Get the latest command
|
|
268
|
+
const latestCommand = commands[commands.length - 1];
|
|
269
|
+
const requestId = latestCommand.message.requestId;
|
|
270
|
+
if (requestId === undefined || requestId === null || requestId === '') {
|
|
271
|
+
throw new Error(`Command ${commandType} is missing requestId`);
|
|
272
|
+
}
|
|
273
|
+
const mapping = COMMAND_TO_EVENT_MAP[commandType];
|
|
274
|
+
if (mapping === undefined) {
|
|
275
|
+
return 'None';
|
|
276
|
+
}
|
|
277
|
+
// Find events that match this command's requestId
|
|
278
|
+
const relatedEvents = allMessages.filter((msg) => msg.messageType === 'event' && msg.message.requestId === requestId);
|
|
279
|
+
if (relatedEvents.length === 0) {
|
|
280
|
+
return 'running';
|
|
281
|
+
}
|
|
282
|
+
// Check if there's any failure event (any event with an error field)
|
|
283
|
+
const hasFailure = relatedEvents.some((event) => {
|
|
284
|
+
const data = event.message.data;
|
|
285
|
+
return data !== null && typeof data === 'object' && 'error' in data;
|
|
286
|
+
});
|
|
287
|
+
if (hasFailure) {
|
|
288
|
+
return 'fail';
|
|
289
|
+
}
|
|
290
|
+
// Check if there's a success event
|
|
291
|
+
const hasSuccess = relatedEvents.some((event) => event.message.type === mapping.successEvent);
|
|
292
|
+
if (hasSuccess) {
|
|
293
|
+
return 'pass';
|
|
294
|
+
}
|
|
295
|
+
return 'running';
|
|
296
|
+
}
|
|
297
|
+
catch (error) {
|
|
298
|
+
debug('Error calculating node status for %s: %O', commandType, error);
|
|
299
|
+
throw error;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Generate pipeline graph from current registrations
|
|
304
|
+
*/
|
|
305
|
+
export async function getPipelineGraph(config = {}) {
|
|
306
|
+
const { metadataService, eventHandlers, messageStore } = config;
|
|
307
|
+
const commandNodes = new Set();
|
|
308
|
+
const edges = [];
|
|
309
|
+
debug('Called with metadataService=%s eventHandlers=%s eventHandlers size=%s messageStore=%s', !!metadataService, !!eventHandlers, eventHandlers?.size, !!messageStore);
|
|
310
|
+
function getNodeId(commandType) {
|
|
311
|
+
if (metadataService) {
|
|
312
|
+
const metadata = metadataService.getCommandMetadata(commandType);
|
|
313
|
+
if (metadata) {
|
|
314
|
+
return `${metadata.package}/${metadata.alias}`;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
return commandType;
|
|
318
|
+
}
|
|
319
|
+
// If eventHandlers are provided, use them instead of DSL registrations
|
|
320
|
+
if (eventHandlers) {
|
|
321
|
+
debug('Using event handlers, found %d handlers', eventHandlers.size);
|
|
322
|
+
// For now, we need to reconstruct the pipeline from the event handlers
|
|
323
|
+
// This is a simplified approach that may need enhancement
|
|
324
|
+
for (const [eventType, handlers] of eventHandlers) {
|
|
325
|
+
debug('Processing event type %s with %d handlers', eventType, handlers.length);
|
|
326
|
+
// Extract command relationships from event type names
|
|
327
|
+
// This is based on the naming convention in auto.config.ts
|
|
328
|
+
const sourceCommand = getCommandFromEventType(eventType);
|
|
329
|
+
debug('Source command for %s = %s', eventType, sourceCommand);
|
|
330
|
+
if (sourceCommand !== null && sourceCommand !== '') {
|
|
331
|
+
commandNodes.add(sourceCommand);
|
|
332
|
+
// For each handler, try to extract target commands
|
|
333
|
+
// This would need the actual dispatch functions to be analyzed
|
|
334
|
+
// For now, we'll use a simplified mapping based on known patterns
|
|
335
|
+
const targetCommands = getTargetCommandsFromEventType(eventType);
|
|
336
|
+
debug('Target commands for %s = %o', eventType, targetCommands);
|
|
337
|
+
targetCommands.forEach((targetCommand) => {
|
|
338
|
+
commandNodes.add(targetCommand);
|
|
339
|
+
edges.push({ from: getNodeId(sourceCommand), to: getNodeId(targetCommand) });
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
debug('Final nodes: %o', Array.from(commandNodes));
|
|
344
|
+
debug('Final edges: %o', edges);
|
|
345
|
+
}
|
|
346
|
+
else {
|
|
347
|
+
// Fallback to DSL registrations (original behavior)
|
|
348
|
+
registrations.forEach((registration) => {
|
|
349
|
+
if (registration.type === 'on') {
|
|
350
|
+
processEventRegistration(registration, commandNodes, edges, metadataService);
|
|
351
|
+
}
|
|
352
|
+
if (registration.type === 'on-settled') {
|
|
353
|
+
processSettledRegistration(registration, commandNodes, edges, metadataService);
|
|
354
|
+
}
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
const nodes = await Promise.all(Array.from(commandNodes).map(async (commandType) => {
|
|
358
|
+
const baseNode = {
|
|
359
|
+
id: commandType,
|
|
360
|
+
name: commandType,
|
|
361
|
+
title: camelCaseToTitleCase(commandType),
|
|
362
|
+
};
|
|
363
|
+
let status = 'None';
|
|
364
|
+
if (messageStore) {
|
|
365
|
+
status = await calculateNodeStatus(commandType, messageStore);
|
|
366
|
+
}
|
|
367
|
+
if (metadataService) {
|
|
368
|
+
const metadata = metadataService.getCommandMetadata(commandType);
|
|
369
|
+
if (metadata) {
|
|
370
|
+
return {
|
|
371
|
+
...baseNode,
|
|
372
|
+
id: `${metadata.package}/${metadata.alias}`,
|
|
373
|
+
title: camelCaseToTitleCase(commandType),
|
|
374
|
+
alias: metadata.alias,
|
|
375
|
+
description: metadata.description,
|
|
376
|
+
package: metadata.package,
|
|
377
|
+
version: metadata.version,
|
|
378
|
+
category: metadata.category,
|
|
379
|
+
icon: metadata.icon ?? 'terminal',
|
|
380
|
+
status,
|
|
381
|
+
};
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
return {
|
|
385
|
+
...baseNode,
|
|
386
|
+
icon: 'terminal',
|
|
387
|
+
status,
|
|
388
|
+
};
|
|
389
|
+
}));
|
|
390
|
+
return { nodes, edges };
|
|
391
|
+
}
|
|
392
|
+
function processEventRegistration(registration, commandNodes, edges, metadataService) {
|
|
393
|
+
try {
|
|
394
|
+
const mockEvent = { type: registration.eventType, data: {} };
|
|
395
|
+
const result = registration.handler(mockEvent);
|
|
396
|
+
if (result && typeof result === 'object' && 'type' in result) {
|
|
397
|
+
addCommandAndEdge(result, registration.eventType, commandNodes, edges, metadataService);
|
|
398
|
+
}
|
|
399
|
+
else if (Array.isArray(result)) {
|
|
400
|
+
result.forEach((command) => {
|
|
401
|
+
if (command !== null && typeof command === 'object' && 'type' in command && typeof command.type === 'string') {
|
|
402
|
+
addCommandAndEdge(command, registration.eventType, commandNodes, edges, metadataService);
|
|
403
|
+
}
|
|
404
|
+
});
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
catch {
|
|
408
|
+
// Handler might require specific event data, skip if it fails
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
function processSettledRegistration(registration, commandNodes, edges, metadataService) {
|
|
412
|
+
function getNodeId(commandType) {
|
|
413
|
+
if (metadataService) {
|
|
414
|
+
const metadata = metadataService.getCommandMetadata(commandType);
|
|
415
|
+
if (metadata) {
|
|
416
|
+
return `${metadata.package}/${metadata.alias}`;
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
return commandType;
|
|
420
|
+
}
|
|
421
|
+
registration.commandTypes.forEach((commandType) => {
|
|
422
|
+
commandNodes.add(commandType);
|
|
423
|
+
});
|
|
424
|
+
if (registration.dispatches && registration.dispatches.length > 0) {
|
|
425
|
+
registration.dispatches.forEach((commandType) => {
|
|
426
|
+
commandNodes.add(commandType);
|
|
427
|
+
registration.commandTypes.forEach((settledCommand) => {
|
|
428
|
+
edges.push({
|
|
429
|
+
from: getNodeId(settledCommand),
|
|
430
|
+
to: getNodeId(commandType),
|
|
431
|
+
});
|
|
432
|
+
});
|
|
433
|
+
});
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
function addCommandAndEdge(command, eventType, commandNodes, edges, metadataService) {
|
|
437
|
+
function getNodeId(commandType) {
|
|
438
|
+
if (metadataService) {
|
|
439
|
+
const metadata = metadataService.getCommandMetadata(commandType);
|
|
440
|
+
if (metadata) {
|
|
441
|
+
return `${metadata.package}/${metadata.alias}`;
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
return commandType;
|
|
445
|
+
}
|
|
446
|
+
commandNodes.add(command.type);
|
|
447
|
+
const sourceCommand = inferSourceCommand(eventType);
|
|
448
|
+
if (sourceCommand !== null) {
|
|
449
|
+
commandNodes.add(sourceCommand);
|
|
450
|
+
edges.push({
|
|
451
|
+
from: getNodeId(sourceCommand),
|
|
452
|
+
to: getNodeId(command.type),
|
|
453
|
+
});
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* Infer source command from event name using naming patterns
|
|
458
|
+
*/
|
|
459
|
+
function inferSourceCommand(eventType) {
|
|
460
|
+
// Pattern: EventExported -> ExportEvent
|
|
461
|
+
if (eventType.endsWith('Exported')) {
|
|
462
|
+
return 'Export' + eventType.replace('Exported', '');
|
|
463
|
+
}
|
|
464
|
+
// Pattern: EventGenerated -> GenerateEvent
|
|
465
|
+
if (eventType.endsWith('Generated')) {
|
|
466
|
+
return 'Generate' + eventType.replace('Generated', '');
|
|
467
|
+
}
|
|
468
|
+
// Pattern: EventImplemented -> ImplementEvent
|
|
469
|
+
if (eventType.endsWith('Implemented')) {
|
|
470
|
+
return 'Implement' + eventType.replace('Implemented', '');
|
|
471
|
+
}
|
|
472
|
+
return null;
|
|
473
|
+
}
|
|
184
474
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dsl/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dsl/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
export { on, dispatch, fold, autoConfig } from './dsl/index';
|
|
1
|
+
export { on, dispatch, fold, autoConfig, getPipelineGraph } from './dsl/index';
|
|
2
|
+
export { CommandMetadataService } from './server/command-metadata-service';
|
|
2
3
|
export type { EventRegistration, DispatchAction, FoldRegistration, DslRegistration, ConfigDefinition, SettledHandlerConfig, } from './dsl/types';
|
|
4
|
+
export type { CommandMetadata } from './server/command-metadata-service';
|
|
3
5
|
//# sourceMappingURL=dsl-exports.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dsl-exports.d.ts","sourceRoot":"","sources":["../../src/dsl-exports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"dsl-exports.d.ts","sourceRoot":"","sources":["../../src/dsl-exports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC"}
|
package/dist/src/dsl-exports.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
// Export only the DSL functions for use in auto.config.ts
|
|
2
|
-
export { on, dispatch, fold, autoConfig } from './dsl/index.js';
|
|
2
|
+
export { on, dispatch, fold, autoConfig, getPipelineGraph } from './dsl/index.js';
|
|
3
|
+
export { CommandMetadataService } from './server/command-metadata-service.js';
|
|
3
4
|
//# sourceMappingURL=dsl-exports.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dsl-exports.js","sourceRoot":"","sources":["../../src/dsl-exports.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"dsl-exports.js","sourceRoot":"","sources":["../../src/dsl-exports.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface CommandMetadata {
|
|
2
|
+
alias: string;
|
|
3
|
+
description: string;
|
|
4
|
+
package: string;
|
|
5
|
+
version?: string;
|
|
6
|
+
category?: string;
|
|
7
|
+
icon?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare class CommandMetadataService {
|
|
10
|
+
private commandMetadata;
|
|
11
|
+
extractUnifiedHandlerMetadata(handler: unknown, commandName: string): void;
|
|
12
|
+
setCommandMetadata(commandName: string, metadata: CommandMetadata): void;
|
|
13
|
+
getCommandMetadata(commandName: string): CommandMetadata | undefined;
|
|
14
|
+
getAllCommandMetadata(): Map<string, CommandMetadata>;
|
|
15
|
+
hasMetadata(commandName: string): boolean;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=command-metadata-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-metadata-service.d.ts","sourceRoot":"","sources":["../../../src/server/command-metadata-service.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,sBAAsB;IACjC,OAAO,CAAC,eAAe,CAA2C;IAElE,6BAA6B,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAgB1E,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI;IAKxE,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIpE,qBAAqB,IAAI,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC;IAIrD,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;CAG1C"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import createDebug from 'debug';
|
|
2
|
+
const debug = createDebug('auto-engineer:server:metadata');
|
|
3
|
+
export class CommandMetadataService {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.commandMetadata = new Map();
|
|
6
|
+
}
|
|
7
|
+
extractUnifiedHandlerMetadata(handler, commandName) {
|
|
8
|
+
if (typeof handler === 'object' && handler !== null && 'alias' in handler && 'description' in handler) {
|
|
9
|
+
const unifiedHandler = handler;
|
|
10
|
+
debug('Extracting metadata from UnifiedCommandHandler:', commandName);
|
|
11
|
+
this.setCommandMetadata(commandName, {
|
|
12
|
+
alias: unifiedHandler.alias,
|
|
13
|
+
description: unifiedHandler.description,
|
|
14
|
+
package: unifiedHandler.package?.name ?? 'unknown',
|
|
15
|
+
version: unifiedHandler.package?.version,
|
|
16
|
+
category: unifiedHandler.category,
|
|
17
|
+
icon: unifiedHandler.icon,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
setCommandMetadata(commandName, metadata) {
|
|
22
|
+
this.commandMetadata.set(commandName, metadata);
|
|
23
|
+
debug('Set metadata for command:', commandName, metadata);
|
|
24
|
+
}
|
|
25
|
+
getCommandMetadata(commandName) {
|
|
26
|
+
return this.commandMetadata.get(commandName);
|
|
27
|
+
}
|
|
28
|
+
getAllCommandMetadata() {
|
|
29
|
+
return this.commandMetadata;
|
|
30
|
+
}
|
|
31
|
+
hasMetadata(commandName) {
|
|
32
|
+
return this.commandMetadata.has(commandName);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=command-metadata-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command-metadata-service.js","sourceRoot":"","sources":["../../../src/server/command-metadata-service.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,OAAO,CAAC;AAEhC,MAAM,KAAK,GAAG,WAAW,CAAC,+BAA+B,CAAC,CAAC;AAW3D,MAAM,OAAO,sBAAsB;IAAnC;QACU,oBAAe,GAAiC,IAAI,GAAG,EAAE,CAAC;IAkCpE,CAAC;IAhCC,6BAA6B,CAAC,OAAgB,EAAE,WAAmB;QACjE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,IAAI,OAAO,IAAI,aAAa,IAAI,OAAO,EAAE,CAAC;YACtG,MAAM,cAAc,GAAG,OAA0E,CAAC;YAClG,KAAK,CAAC,iDAAiD,EAAE,WAAW,CAAC,CAAC;YAEtE,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;gBACnC,KAAK,EAAE,cAAc,CAAC,KAAK;gBAC3B,WAAW,EAAE,cAAc,CAAC,WAAW;gBACvC,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,IAAI,IAAI,SAAS;gBAClD,OAAO,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO;gBACxC,QAAQ,EAAE,cAAc,CAAC,QAAQ;gBACjC,IAAI,EAAE,cAAc,CAAC,IAAI;aAC1B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,kBAAkB,CAAC,WAAmB,EAAE,QAAyB;QAC/D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAChD,KAAK,CAAC,2BAA2B,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC5D,CAAC;IAED,kBAAkB,CAAC,WAAmB;QACpC,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;IAED,qBAAqB;QACnB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,WAAW,CAAC,WAAmB;QAC7B,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/C,CAAC;CACF"}
|
|
@@ -1,32 +1,21 @@
|
|
|
1
1
|
import type { MessageBus } from '@auto-engineer/message-bus';
|
|
2
2
|
import type { FoldRegistration } from '../dsl/types';
|
|
3
3
|
import type { StateManager, FoldFunction } from './state-manager';
|
|
4
|
+
import { CommandMetadataService, type CommandMetadata } from './command-metadata-service';
|
|
4
5
|
export declare class CommandRegistry {
|
|
5
6
|
private messageBus;
|
|
6
7
|
private stateManager;
|
|
7
8
|
private commandHandlerNames;
|
|
8
|
-
private
|
|
9
|
+
private metadataService;
|
|
9
10
|
private foldRegistry;
|
|
10
11
|
constructor(messageBus: MessageBus, stateManager: StateManager<Record<string, unknown>>);
|
|
11
12
|
registerCommandHandlers(handlers: unknown[]): void;
|
|
12
13
|
private processCommandHandler;
|
|
13
|
-
|
|
14
|
-
setCommandMetadata(commandName: string, metadata: {
|
|
15
|
-
alias: string;
|
|
16
|
-
description: string;
|
|
17
|
-
package: string;
|
|
18
|
-
version?: string;
|
|
19
|
-
category?: string;
|
|
20
|
-
}): void;
|
|
14
|
+
setCommandMetadata(commandName: string, metadata: CommandMetadata): void;
|
|
21
15
|
registerFold(registration: FoldRegistration): void;
|
|
22
16
|
getCommandHandlerNames(): string[];
|
|
23
|
-
getCommandMetadata(): Map<string,
|
|
24
|
-
|
|
25
|
-
description: string;
|
|
26
|
-
package: string;
|
|
27
|
-
version?: string;
|
|
28
|
-
category?: string;
|
|
29
|
-
}>;
|
|
17
|
+
getCommandMetadata(): Map<string, CommandMetadata>;
|
|
18
|
+
getMetadataService(): CommandMetadataService;
|
|
30
19
|
getFoldRegistry(): Map<string, FoldFunction<Record<string, unknown>>>;
|
|
31
20
|
}
|
|
32
21
|
//# sourceMappingURL=command-registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-registry.d.ts","sourceRoot":"","sources":["../../../src/server/command-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"command-registry.d.ts","sourceRoot":"","sources":["../../../src/server/command-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,4BAA4B,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,KAAK,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAK1F,qBAAa,eAAe;IAMxB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,YAAY;IANtB,OAAO,CAAC,mBAAmB,CAAgB;IAC3C,OAAO,CAAC,eAAe,CAAwD;IAC/E,OAAO,CAAC,YAAY,CAAiE;gBAG3E,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAG7D,uBAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAWlD,OAAO,CAAC,qBAAqB;IAmB7B,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI;IAIxE,YAAY,CAAC,YAAY,EAAE,gBAAgB,GAAG,IAAI;IAOlD,sBAAsB,IAAI,MAAM,EAAE;IAIlC,kBAAkB,IAAI,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC;IAIlD,kBAAkB,IAAI,sBAAsB;IAI5C,eAAe,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAGtE"}
|