@auto-engineer/cli 0.9.12 → 0.10.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/CHANGELOG.md +22 -0
- package/dist/src/dsl/index.d.ts +8 -5
- package/dist/src/dsl/index.d.ts.map +1 -1
- package/dist/src/dsl/index.js +74 -122
- package/dist/src/dsl/index.js.map +1 -1
- package/dist/src/plugin-loader.d.ts +0 -2
- package/dist/src/plugin-loader.d.ts.map +1 -1
- package/dist/src/plugin-loader.js +2 -35
- package/dist/src/plugin-loader.js.map +1 -1
- package/dist/src/server/command-metadata-service.d.ts +10 -0
- package/dist/src/server/command-metadata-service.d.ts.map +1 -1
- package/dist/src/server/command-metadata-service.js +45 -11
- package/dist/src/server/command-metadata-service.js.map +1 -1
- package/dist/src/server/command-registry.js.map +1 -1
- package/dist/src/server/config-loader.d.ts.map +1 -1
- package/dist/src/server/config-loader.js +5 -0
- package/dist/src/server/config-loader.js.map +1 -1
- package/dist/src/server/http-routes.d.ts +2 -0
- package/dist/src/server/http-routes.d.ts.map +1 -1
- package/dist/src/server/http-routes.js +3 -1
- package/dist/src/server/http-routes.js.map +1 -1
- package/dist/src/server/sandbox-landing-page.html +340 -315
- package/dist/src/server/server.d.ts +16 -2
- package/dist/src/server/server.d.ts.map +1 -1
- package/dist/src/server/server.js +34 -5
- package/dist/src/server/server.js.map +1 -1
- package/dist/src/server/settled-tracker.d.ts +4 -1
- package/dist/src/server/settled-tracker.d.ts.map +1 -1
- package/dist/src/server/settled-tracker.js +19 -26
- package/dist/src/server/settled-tracker.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -5
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { type MessageBus } from '@auto-engineer/message-bus';
|
|
1
|
+
import { type MessageBus, type Event } from '@auto-engineer/message-bus';
|
|
2
2
|
import { type ILocalMessageStore } from '@auto-engineer/message-store';
|
|
3
3
|
import { StateManager } from './state-manager';
|
|
4
4
|
import type { EventRegistration, FoldRegistration, SettledRegistration } from '../dsl/types';
|
|
5
|
+
import { EventProcessor } from './event-processor';
|
|
5
6
|
import { CommandMetadataService } from './command-metadata-service';
|
|
7
|
+
import { SettledTracker } from './settled-tracker';
|
|
6
8
|
export interface MessageBusServerConfig {
|
|
7
9
|
port?: number;
|
|
8
10
|
wsPort?: number;
|
|
@@ -25,11 +27,12 @@ export declare class MessageBusServer {
|
|
|
25
27
|
private commandRegistry;
|
|
26
28
|
private settledTracker;
|
|
27
29
|
private currentSessionId?;
|
|
30
|
+
private dslRegistrations;
|
|
28
31
|
constructor(config?: MessageBusServerConfig);
|
|
29
32
|
/**
|
|
30
33
|
* Set up HTTP routes
|
|
31
34
|
*/
|
|
32
|
-
|
|
35
|
+
setupRoutes(): void;
|
|
33
36
|
/**
|
|
34
37
|
* Set up WebSocket handlers
|
|
35
38
|
*/
|
|
@@ -64,6 +67,16 @@ export declare class MessageBusServer {
|
|
|
64
67
|
* Get the command metadata service
|
|
65
68
|
*/
|
|
66
69
|
getCommandMetadataService(): CommandMetadataService;
|
|
70
|
+
/**
|
|
71
|
+
* Get the settled tracker (for testing)
|
|
72
|
+
*/
|
|
73
|
+
getSettledTracker(): SettledTracker;
|
|
74
|
+
/**
|
|
75
|
+
* Subscribe to all events (for testing)
|
|
76
|
+
*/
|
|
77
|
+
subscribeToAllEvents(handler: (event: Event) => void): void;
|
|
78
|
+
setDslRegistrations(registrations: Array<import('../dsl/types').DslRegistration>): void;
|
|
79
|
+
getDslRegistrations(): Array<import('../dsl/types').DslRegistration>;
|
|
67
80
|
/**
|
|
68
81
|
* Initialize state
|
|
69
82
|
*/
|
|
@@ -88,5 +101,6 @@ export declare class MessageBusServer {
|
|
|
88
101
|
* Get the message store instance
|
|
89
102
|
*/
|
|
90
103
|
getMessageStore(): ILocalMessageStore;
|
|
104
|
+
getEventProcessor(): EventProcessor;
|
|
91
105
|
}
|
|
92
106
|
//# sourceMappingURL=server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ import { SettledTracker } from './settled-tracker.js';
|
|
|
15
15
|
const debug = createDebug('auto-engineer:server');
|
|
16
16
|
export class MessageBusServer {
|
|
17
17
|
constructor(config = {}) {
|
|
18
|
+
this.dslRegistrations = [];
|
|
18
19
|
this.config = {
|
|
19
20
|
port: config.port ?? 5555,
|
|
20
21
|
wsPort: config.wsPort ?? 5556,
|
|
@@ -38,18 +39,18 @@ export class MessageBusServer {
|
|
|
38
39
|
this.messageStore = config.messageStore ?? new MemoryMessageStore();
|
|
39
40
|
this.stateManager = new StateManager();
|
|
40
41
|
// Initialize modules
|
|
42
|
+
this.commandRegistry = new CommandRegistry(this.messageBus, this.stateManager);
|
|
41
43
|
this.settledTracker = new SettledTracker((action) => {
|
|
42
44
|
// Handle dispatch actions from settled handlers
|
|
43
45
|
void this.eventProcessor.processDispatchAction(action);
|
|
44
|
-
});
|
|
46
|
+
}, this.commandRegistry.getMetadataService());
|
|
45
47
|
this.eventProcessor = new EventProcessor(this.messageBus, this.messageStore, this.stateManager, (event) => this.io.emit('event', event), this.settledTracker);
|
|
46
|
-
this.commandRegistry = new CommandRegistry(this.messageBus, this.stateManager);
|
|
47
48
|
// Set up global event listener for state management
|
|
48
49
|
this.eventProcessor.setupGlobalEventListener();
|
|
49
|
-
// Set up HTTP routes
|
|
50
|
-
this.setupRoutes();
|
|
51
50
|
// Set up WebSocket handlers
|
|
52
51
|
this.setupWebSocketHandlers();
|
|
52
|
+
// Set up basic HTTP routes (can be called again after config loading to include DSL registrations)
|
|
53
|
+
this.setupRoutes();
|
|
53
54
|
debug('Message bus server initialized');
|
|
54
55
|
}
|
|
55
56
|
/**
|
|
@@ -63,6 +64,8 @@ export class MessageBusServer {
|
|
|
63
64
|
eventHandlers: this.eventProcessor.getEventHandlers(),
|
|
64
65
|
foldRegistry: this.commandRegistry.getFoldRegistry(),
|
|
65
66
|
messageStore: this.messageStore,
|
|
67
|
+
dslRegistrations: this.dslRegistrations,
|
|
68
|
+
getDslRegistrations: () => this.dslRegistrations,
|
|
66
69
|
onCommandError: (error) => {
|
|
67
70
|
this.io.emit('commandError', error);
|
|
68
71
|
},
|
|
@@ -99,7 +102,7 @@ export class MessageBusServer {
|
|
|
99
102
|
* Set command metadata for dashboard display
|
|
100
103
|
*/
|
|
101
104
|
setCommandMetadata(commandName, metadata) {
|
|
102
|
-
this.commandRegistry.setCommandMetadata(commandName, metadata);
|
|
105
|
+
this.commandRegistry.setCommandMetadata(commandName, { ...metadata, name: commandName });
|
|
103
106
|
}
|
|
104
107
|
/**
|
|
105
108
|
* Register command handlers directly with the message bus
|
|
@@ -113,6 +116,29 @@ export class MessageBusServer {
|
|
|
113
116
|
getCommandMetadataService() {
|
|
114
117
|
return this.commandRegistry.getMetadataService();
|
|
115
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* Get the settled tracker (for testing)
|
|
121
|
+
*/
|
|
122
|
+
getSettledTracker() {
|
|
123
|
+
return this.settledTracker;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Subscribe to all events (for testing)
|
|
127
|
+
*/
|
|
128
|
+
subscribeToAllEvents(handler) {
|
|
129
|
+
this.messageBus.subscribeAll({
|
|
130
|
+
name: 'TestEventSubscriber',
|
|
131
|
+
handle: async (event) => {
|
|
132
|
+
handler(event);
|
|
133
|
+
},
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
setDslRegistrations(registrations) {
|
|
137
|
+
this.dslRegistrations = [...registrations];
|
|
138
|
+
}
|
|
139
|
+
getDslRegistrations() {
|
|
140
|
+
return [...this.dslRegistrations];
|
|
141
|
+
}
|
|
116
142
|
/**
|
|
117
143
|
* Initialize state
|
|
118
144
|
*/
|
|
@@ -204,5 +230,8 @@ export class MessageBusServer {
|
|
|
204
230
|
getMessageStore() {
|
|
205
231
|
return this.messageStore;
|
|
206
232
|
}
|
|
233
|
+
getEventProcessor() {
|
|
234
|
+
return this.eventProcessor;
|
|
235
|
+
}
|
|
207
236
|
}
|
|
208
237
|
//# sourceMappingURL=server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AACpC,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAA6C,MAAM,4BAA4B,CAAC;AACzG,OAAO,EAAE,kBAAkB,EAA2B,MAAM,8BAA8B,CAAC;AAC3F,OAAO,WAAW,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,KAAK,GAAG,WAAW,CAAC,sBAAsB,CAAC,CAAC;AAYlD,MAAM,OAAO,gBAAgB;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import type { Event, Command } from '@auto-engineer/message-bus';
|
|
2
2
|
import type { SettledRegistration, DispatchAction } from '../dsl/types';
|
|
3
|
+
import type { CommandMetadataService } from './command-metadata-service';
|
|
3
4
|
export declare class SettledTracker {
|
|
4
5
|
private settledHandlers;
|
|
5
6
|
private commandToHandlerIds;
|
|
6
7
|
private runningCommands;
|
|
7
8
|
private onDispatchAction?;
|
|
8
|
-
|
|
9
|
+
private metadataService?;
|
|
10
|
+
private eventToCommandMapping;
|
|
11
|
+
constructor(onDispatchAction?: (action: DispatchAction) => void, metadataService?: CommandMetadataService);
|
|
9
12
|
registerSettledHandler(registration: SettledRegistration): void;
|
|
10
13
|
onCommandStarted(command: Command): void;
|
|
11
14
|
onEventReceived(event: Event): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settled-tracker.d.ts","sourceRoot":"","sources":["../../../src/server/settled-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"settled-tracker.d.ts","sourceRoot":"","sources":["../../../src/server/settled-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGxE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAgBzE,qBAAa,cAAc;IACzB,OAAO,CAAC,eAAe,CAA0C;IACjE,OAAO,CAAC,mBAAmB,CAAuC;IAClE,OAAO,CAAC,eAAe,CAA0E;IACjG,OAAO,CAAC,gBAAgB,CAAC,CAAmC;IAC5D,OAAO,CAAC,eAAe,CAAC,CAAyB;IACjD,OAAO,CAAC,qBAAqB,CAA8B;gBAE/C,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,EAAE,eAAe,CAAC,EAAE,sBAAsB;IAMzG,sBAAsB,CAAC,YAAY,EAAE,mBAAmB,GAAG,IAAI;IA0B/D,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAoBxC,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IA8BnC,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,sBAAsB;IAwC9B,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,iBAAiB;IAMzB,iBAAiB,IAAI,MAAM,EAAE;CAG9B"}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import { getPendingDispatches } from '../dsl/index.js';
|
|
2
|
+
import { buildEventToCommandMapping } from '../dsl/index.js';
|
|
2
3
|
import createDebug from 'debug';
|
|
3
4
|
const debug = createDebug('auto-engineer:server:settled-tracker');
|
|
4
5
|
export class SettledTracker {
|
|
5
|
-
constructor(onDispatchAction) {
|
|
6
|
+
constructor(onDispatchAction, metadataService) {
|
|
6
7
|
this.settledHandlers = new Map();
|
|
7
8
|
this.commandToHandlerIds = new Map();
|
|
8
9
|
this.runningCommands = new Map();
|
|
10
|
+
this.eventToCommandMapping = {};
|
|
9
11
|
this.onDispatchAction = onDispatchAction;
|
|
12
|
+
this.metadataService = metadataService;
|
|
13
|
+
this.eventToCommandMapping = buildEventToCommandMapping(metadataService);
|
|
10
14
|
}
|
|
11
15
|
registerSettledHandler(registration) {
|
|
12
16
|
const handlerId = this.generateHandlerId(registration);
|
|
@@ -71,33 +75,22 @@ export class SettledTracker {
|
|
|
71
75
|
}
|
|
72
76
|
}
|
|
73
77
|
isEventFromCommand(eventType, commandType) {
|
|
74
|
-
//
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
TestsStarted: ['CheckTests'],
|
|
79
|
-
TestProgress: ['CheckTests'],
|
|
80
|
-
TypeCheckPassed: ['CheckTypes'],
|
|
81
|
-
TypeCheckFailed: ['CheckTypes'],
|
|
82
|
-
LintCheckPassed: ['CheckLint'],
|
|
83
|
-
LintCheckFailed: ['CheckLint'],
|
|
84
|
-
ClientImplemented: ['ImplementClient'],
|
|
85
|
-
};
|
|
86
|
-
const commandsForEvent = eventToCommandMap[eventType];
|
|
87
|
-
return commandsForEvent?.includes(commandType) ?? false;
|
|
78
|
+
// Get fresh mapping in case new handlers have been registered
|
|
79
|
+
const currentMapping = buildEventToCommandMapping(this.metadataService);
|
|
80
|
+
const sourceCommand = currentMapping[eventType];
|
|
81
|
+
return sourceCommand === commandType;
|
|
88
82
|
}
|
|
89
83
|
isCompletionEvent(eventType) {
|
|
90
|
-
//
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
return completionEvents.includes(eventType);
|
|
84
|
+
// Get fresh mapping in case new handlers have been registered
|
|
85
|
+
const currentMapping = buildEventToCommandMapping(this.metadataService);
|
|
86
|
+
if (currentMapping[eventType] !== undefined) {
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
if (this.metadataService) {
|
|
90
|
+
const commands = this.metadataService.getAllCommandsMetadata();
|
|
91
|
+
return commands.some((command) => command.events?.includes(eventType) ?? false);
|
|
92
|
+
}
|
|
93
|
+
return false;
|
|
101
94
|
}
|
|
102
95
|
checkAndTriggerHandler(handlerId, handler) {
|
|
103
96
|
const allCompleted = Array.from(handler.commandTrackers.values()).every((tracker) => tracker.hasCompleted);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settled-tracker.js","sourceRoot":"","sources":["../../../src/server/settled-tracker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,WAAW,MAAM,OAAO,CAAC;AAEhC,MAAM,KAAK,GAAG,WAAW,CAAC,sCAAsC,CAAC,CAAC;AAalE,MAAM,OAAO,cAAc;
|
|
1
|
+
{"version":3,"file":"settled-tracker.js","sourceRoot":"","sources":["../../../src/server/settled-tracker.ts"],"names":[],"mappings":"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"}
|