@auto-engineer/cli 0.10.4 → 0.11.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.js +1 -1
- package/dist/src/dsl/index.js.map +1 -1
- package/dist/src/dsl/types.d.ts +6 -2
- package/dist/src/dsl/types.d.ts.map +1 -1
- package/dist/src/index.js +6 -12
- package/dist/src/index.js.map +1 -1
- package/dist/src/server/config-loader.d.ts +1 -9
- package/dist/src/server/config-loader.d.ts.map +1 -1
- package/dist/src/server/config-loader.js +1 -27
- package/dist/src/server/config-loader.js.map +1 -1
- package/dist/src/server/event-processor.d.ts +6 -4
- package/dist/src/server/event-processor.d.ts.map +1 -1
- package/dist/src/server/event-processor.js +93 -63
- package/dist/src/server/event-processor.js.map +1 -1
- package/dist/src/server/server.d.ts +0 -1
- package/dist/src/server/server.d.ts.map +1 -1
- package/dist/src/server/server.js +2 -10
- package/dist/src/server/server.js.map +1 -1
- package/dist/src/server/settled-tracker.d.ts +12 -5
- package/dist/src/server/settled-tracker.d.ts.map +1 -1
- package/dist/src/server/settled-tracker.js +111 -63
- package/dist/src/server/settled-tracker.js.map +1 -1
- package/dist/src/utils/correlation-id.d.ts +3 -0
- package/dist/src/utils/correlation-id.d.ts.map +1 -0
- package/dist/src/utils/correlation-id.js +7 -0
- package/dist/src/utils/correlation-id.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
|
@@ -4,7 +4,8 @@ import createDebug from 'debug';
|
|
|
4
4
|
const debug = createDebug('auto-engineer:server:settled-tracker');
|
|
5
5
|
export class SettledTracker {
|
|
6
6
|
constructor(onDispatchAction, metadataService) {
|
|
7
|
-
this.
|
|
7
|
+
this.handlerTemplates = new Map();
|
|
8
|
+
this.handlerInstances = new Map();
|
|
8
9
|
this.commandToHandlerIds = new Map();
|
|
9
10
|
this.runningCommands = new Map();
|
|
10
11
|
this.eventToCommandMapping = {};
|
|
@@ -13,23 +14,38 @@ export class SettledTracker {
|
|
|
13
14
|
this.eventToCommandMapping = buildEventToCommandMapping(metadataService);
|
|
14
15
|
}
|
|
15
16
|
registerSettledHandler(registration) {
|
|
16
|
-
const
|
|
17
|
-
debug('Registering settled handler:',
|
|
18
|
-
|
|
17
|
+
const templateId = this.generateTemplateId(registration);
|
|
18
|
+
debug('Registering settled handler template:', templateId, 'for commands:', registration.commandTypes);
|
|
19
|
+
this.handlerTemplates.set(templateId, {
|
|
20
|
+
id: templateId,
|
|
21
|
+
registration,
|
|
22
|
+
});
|
|
23
|
+
// Track which command types this template is interested in
|
|
19
24
|
for (const commandType of registration.commandTypes) {
|
|
25
|
+
if (!this.commandToHandlerIds.has(commandType)) {
|
|
26
|
+
this.commandToHandlerIds.set(commandType, new Set());
|
|
27
|
+
}
|
|
28
|
+
this.commandToHandlerIds.get(commandType).add(templateId);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
instantiateHandlerForCorrelation(template, correlationId) {
|
|
32
|
+
const instanceId = this.generateInstanceId(template.id, correlationId);
|
|
33
|
+
if (this.handlerInstances.has(instanceId)) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
debug('Instantiating settled handler for correlationId:', correlationId, 'template:', template.id);
|
|
37
|
+
const commandTrackers = new Map();
|
|
38
|
+
for (const commandType of template.registration.commandTypes) {
|
|
20
39
|
commandTrackers.set(commandType, {
|
|
21
40
|
commandType,
|
|
22
41
|
hasCompleted: false,
|
|
23
42
|
events: [],
|
|
24
43
|
});
|
|
25
|
-
// Track which handlers are interested in this command type
|
|
26
|
-
if (!this.commandToHandlerIds.has(commandType)) {
|
|
27
|
-
this.commandToHandlerIds.set(commandType, new Set());
|
|
28
|
-
}
|
|
29
|
-
this.commandToHandlerIds.get(commandType).add(handlerId);
|
|
30
44
|
}
|
|
31
|
-
this.
|
|
32
|
-
|
|
45
|
+
this.handlerInstances.set(instanceId, {
|
|
46
|
+
templateId: template.id,
|
|
47
|
+
correlationId,
|
|
48
|
+
registration: template.registration,
|
|
33
49
|
commandTrackers,
|
|
34
50
|
});
|
|
35
51
|
}
|
|
@@ -46,26 +62,44 @@ export class SettledTracker {
|
|
|
46
62
|
}
|
|
47
63
|
// Track this command execution
|
|
48
64
|
this.runningCommands.set(requestId, { commandType, correlationId });
|
|
49
|
-
debug('Started tracking command:', commandType, 'with requestId:', requestId);
|
|
65
|
+
debug('Started tracking command:', commandType, 'with requestId:', requestId, 'correlationId:', correlationId);
|
|
66
|
+
// Instantiate handlers for this correlationId if needed
|
|
67
|
+
const templateIds = this.commandToHandlerIds.get(commandType);
|
|
68
|
+
if (templateIds) {
|
|
69
|
+
for (const templateId of templateIds) {
|
|
70
|
+
const template = this.handlerTemplates.get(templateId);
|
|
71
|
+
if (template) {
|
|
72
|
+
this.instantiateHandlerForCorrelation(template, correlationId);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
50
76
|
}
|
|
51
77
|
onEventReceived(event) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
78
|
+
const eventCorrelationId = event.correlationId;
|
|
79
|
+
debug('Received event:', event.type, 'with correlationId:', eventCorrelationId);
|
|
80
|
+
if (eventCorrelationId === undefined || eventCorrelationId === null || eventCorrelationId === '') {
|
|
81
|
+
debug('Event missing correlationId, cannot route:', event.type);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
// Route event to handler instances matching this correlationId
|
|
85
|
+
for (const [instanceId, instance] of this.handlerInstances) {
|
|
86
|
+
if (instance.correlationId !== eventCorrelationId) {
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
for (const [commandType, tracker] of instance.commandTrackers) {
|
|
56
90
|
if (tracker.hasCompleted)
|
|
57
91
|
continue;
|
|
58
92
|
// Check if this event is related to this command type
|
|
59
93
|
if (this.isEventFromCommand(event.type, commandType)) {
|
|
60
|
-
debug('Event', event.type, 'is related to command', commandType);
|
|
94
|
+
debug('Event', event.type, 'is related to command', commandType, 'for instance', instanceId);
|
|
61
95
|
// Always add related events to the tracker
|
|
62
96
|
tracker.events.push(event);
|
|
63
97
|
// Only mark as completed if this is a completion event
|
|
64
98
|
if (this.isCompletionEvent(event.type)) {
|
|
65
99
|
tracker.hasCompleted = true;
|
|
66
|
-
debug('Marked command', commandType, 'as completed for
|
|
67
|
-
// Check if all commands for this
|
|
68
|
-
this.
|
|
100
|
+
debug('Marked command', commandType, 'as completed for instance', instanceId);
|
|
101
|
+
// Check if all commands for this instance have completed
|
|
102
|
+
this.checkAndTriggerHandlerInstance(instanceId, instance);
|
|
69
103
|
}
|
|
70
104
|
else {
|
|
71
105
|
debug('Event', event.type, 'is progress for command', commandType, '- not marking as completed yet');
|
|
@@ -92,64 +126,78 @@ export class SettledTracker {
|
|
|
92
126
|
}
|
|
93
127
|
return false;
|
|
94
128
|
}
|
|
95
|
-
|
|
96
|
-
const allCompleted = Array.from(handler.commandTrackers.values()).every((tracker) => tracker.hasCompleted);
|
|
97
|
-
if (!allCompleted) {
|
|
98
|
-
debug('Handler', handlerId, 'not ready yet - waiting for more commands to complete');
|
|
99
|
-
return;
|
|
100
|
-
}
|
|
101
|
-
debug('All commands completed for handler', handlerId, '- triggering settled handler');
|
|
102
|
-
// Collect all events grouped by command type
|
|
129
|
+
collectEventsByCommandType(instance) {
|
|
103
130
|
const eventsByCommandType = {};
|
|
104
|
-
for (const [commandType, tracker] of
|
|
131
|
+
for (const [commandType, tracker] of instance.commandTrackers) {
|
|
105
132
|
eventsByCommandType[commandType] = [...tracker.events];
|
|
106
133
|
}
|
|
134
|
+
return eventsByCommandType;
|
|
135
|
+
}
|
|
136
|
+
processPendingDispatches(parentCorrelationId) {
|
|
137
|
+
const pendingDispatches = getPendingDispatches();
|
|
138
|
+
debug('Found %d pending dispatches after handler execution', pendingDispatches.length);
|
|
139
|
+
if (pendingDispatches.length > 0 && this.onDispatchAction) {
|
|
140
|
+
for (const action of pendingDispatches) {
|
|
141
|
+
debug('Processing pending dispatch action:', action.type);
|
|
142
|
+
this.onDispatchAction(action, parentCorrelationId);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
shouldPersistHandler(result) {
|
|
147
|
+
return (result !== null &&
|
|
148
|
+
result !== undefined &&
|
|
149
|
+
typeof result === 'object' &&
|
|
150
|
+
'persist' in result &&
|
|
151
|
+
result.persist === true);
|
|
152
|
+
}
|
|
153
|
+
resetHandlerTrackers(instance) {
|
|
154
|
+
for (const tracker of instance.commandTrackers.values()) {
|
|
155
|
+
tracker.hasCompleted = false;
|
|
156
|
+
tracker.events = [];
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
checkAndTriggerHandlerInstance(instanceId, instance) {
|
|
160
|
+
const allCompleted = Array.from(instance.commandTrackers.values()).every((tracker) => tracker.hasCompleted);
|
|
161
|
+
if (!allCompleted) {
|
|
162
|
+
debug('Instance', instanceId, 'not ready yet - waiting for more commands to complete');
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
debug('All commands completed for instance', instanceId, '- triggering settled handler');
|
|
166
|
+
const eventsByCommandType = this.collectEventsByCommandType(instance);
|
|
107
167
|
try {
|
|
108
|
-
// Execute the handler (DSL already handles enhanced API wrapping)
|
|
109
168
|
debug('Executing settled handler with events:', Object.keys(eventsByCommandType));
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
169
|
+
const result = instance.registration.handler(eventsByCommandType);
|
|
170
|
+
this.processPendingDispatches(instance.correlationId);
|
|
171
|
+
if (this.shouldPersistHandler(result)) {
|
|
172
|
+
debug('Persisting settled handler instance for retry:', instanceId);
|
|
173
|
+
this.resetHandlerTrackers(instance);
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
debug('Cleaning up settled handler instance:', instanceId);
|
|
177
|
+
this.cleanupHandlerInstance(instanceId);
|
|
119
178
|
}
|
|
120
|
-
debug('Settled handler', handlerId, 'executed successfully');
|
|
121
179
|
}
|
|
122
180
|
catch (error) {
|
|
123
|
-
debug('Error executing settled handler',
|
|
181
|
+
debug('Error executing settled handler instance', instanceId, ':', error);
|
|
182
|
+
this.cleanupHandlerInstance(instanceId);
|
|
124
183
|
}
|
|
125
|
-
// Clean up this handler since it has been triggered
|
|
126
|
-
this.cleanupHandler(handlerId);
|
|
127
184
|
}
|
|
128
|
-
|
|
129
|
-
const
|
|
130
|
-
if (!
|
|
185
|
+
cleanupHandlerInstance(instanceId) {
|
|
186
|
+
const instance = this.handlerInstances.get(instanceId);
|
|
187
|
+
if (!instance)
|
|
131
188
|
return;
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
const handlerIds = this.commandToHandlerIds.get(commandType);
|
|
135
|
-
if (handlerIds) {
|
|
136
|
-
handlerIds.delete(handlerId);
|
|
137
|
-
if (handlerIds.size === 0) {
|
|
138
|
-
this.commandToHandlerIds.delete(commandType);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
// Remove the handler itself
|
|
143
|
-
this.settledHandlers.delete(handlerId);
|
|
144
|
-
debug('Cleaned up settled handler:', handlerId);
|
|
189
|
+
this.handlerInstances.delete(instanceId);
|
|
190
|
+
debug('Cleaned up settled handler instance:', instanceId);
|
|
145
191
|
}
|
|
146
|
-
|
|
192
|
+
generateTemplateId(registration) {
|
|
147
193
|
const commandTypes = registration.commandTypes.join(',');
|
|
148
|
-
|
|
149
|
-
|
|
194
|
+
return `template-${commandTypes}`;
|
|
195
|
+
}
|
|
196
|
+
generateInstanceId(templateId, correlationId) {
|
|
197
|
+
return `${templateId}-${correlationId}`;
|
|
150
198
|
}
|
|
151
199
|
getActiveHandlers() {
|
|
152
|
-
return Array.from(this.
|
|
200
|
+
return Array.from(this.handlerInstances.keys());
|
|
153
201
|
}
|
|
154
202
|
}
|
|
155
203
|
//# sourceMappingURL=settled-tracker.js.map
|
|
@@ -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,EAAE,0BAA0B,EAAE,MAAM,QAAQ,CAAC;AAEpD,OAAO,WAAW,MAAM,OAAO,CAAC;AAEhC,MAAM,KAAK,GAAG,WAAW,CAAC,sCAAsC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"settled-tracker.js","sourceRoot":"","sources":["../../../src/server/settled-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"correlation-id.d.ts","sourceRoot":"","sources":["../../../src/utils/correlation-id.ts"],"names":[],"mappings":"AAAA,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnE"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export function generateCorrelationId() {
|
|
2
|
+
return `corr-${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
|
|
3
|
+
}
|
|
4
|
+
export function generateChildCorrelationId(parentId) {
|
|
5
|
+
return `${parentId}-${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=correlation-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"correlation-id.js","sourceRoot":"","sources":["../../../src/utils/correlation-id.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,qBAAqB;IACnC,OAAO,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,QAAgB;IACzD,OAAO,GAAG,QAAQ,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AACpF,CAAC"}
|