@auto-engineer/cli 0.21.0 → 0.21.2
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 +11 -0
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/server.d.ts +1 -2
- package/dist/src/server.d.ts.map +1 -1
- package/dist/src/server.js +7 -18
- package/dist/src/server.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/dist/src/dsl/index.d.ts +0 -71
- package/dist/src/dsl/index.d.ts.map +0 -1
- package/dist/src/dsl/index.js +0 -504
- package/dist/src/dsl/index.js.map +0 -1
- package/dist/src/dsl/types.d.ts +0 -39
- package/dist/src/dsl/types.d.ts.map +0 -1
- package/dist/src/dsl/types.js +0 -2
- package/dist/src/dsl/types.js.map +0 -1
- package/dist/src/dsl-exports.d.ts +0 -5
- package/dist/src/dsl-exports.d.ts.map +0 -1
- package/dist/src/dsl-exports.js +0 -4
- package/dist/src/dsl-exports.js.map +0 -1
- package/dist/src/plugin-loader.d.ts +0 -84
- package/dist/src/plugin-loader.d.ts.map +0 -1
- package/dist/src/plugin-loader.js +0 -788
- package/dist/src/plugin-loader.js.map +0 -1
- package/dist/src/server/command-metadata-service.d.ts +0 -27
- package/dist/src/server/command-metadata-service.d.ts.map +0 -1
- package/dist/src/server/command-metadata-service.js +0 -69
- package/dist/src/server/command-metadata-service.js.map +0 -1
- package/dist/src/server/command-registry.d.ts +0 -21
- package/dist/src/server/command-registry.d.ts.map +0 -1
- package/dist/src/server/command-registry.js +0 -58
- package/dist/src/server/command-registry.js.map +0 -1
- package/dist/src/server/config-loader.d.ts +0 -16
- package/dist/src/server/config-loader.d.ts.map +0 -1
- package/dist/src/server/config-loader.js +0 -106
- package/dist/src/server/config-loader.js.map +0 -1
- package/dist/src/server/event-processor.d.ts +0 -45
- package/dist/src/server/event-processor.d.ts.map +0 -1
- package/dist/src/server/event-processor.js +0 -287
- package/dist/src/server/event-processor.js.map +0 -1
- package/dist/src/server/file-syncer/crypto/jwe-encryptor.d.ts +0 -15
- package/dist/src/server/file-syncer/crypto/jwe-encryptor.d.ts.map +0 -1
- package/dist/src/server/file-syncer/crypto/jwe-encryptor.js +0 -72
- package/dist/src/server/file-syncer/crypto/jwe-encryptor.js.map +0 -1
- package/dist/src/server/file-syncer/crypto/provider-resolver.d.ts +0 -24
- package/dist/src/server/file-syncer/crypto/provider-resolver.d.ts.map +0 -1
- package/dist/src/server/file-syncer/crypto/provider-resolver.js +0 -71
- package/dist/src/server/file-syncer/crypto/provider-resolver.js.map +0 -1
- package/dist/src/server/file-syncer/discovery/bareImports.d.ts +0 -3
- package/dist/src/server/file-syncer/discovery/bareImports.d.ts.map +0 -1
- package/dist/src/server/file-syncer/discovery/bareImports.js +0 -36
- package/dist/src/server/file-syncer/discovery/bareImports.js.map +0 -1
- package/dist/src/server/file-syncer/discovery/dts.d.ts +0 -11
- package/dist/src/server/file-syncer/discovery/dts.d.ts.map +0 -1
- package/dist/src/server/file-syncer/discovery/dts.js +0 -108
- package/dist/src/server/file-syncer/discovery/dts.js.map +0 -1
- package/dist/src/server/file-syncer/index.d.ts +0 -22
- package/dist/src/server/file-syncer/index.d.ts.map +0 -1
- package/dist/src/server/file-syncer/index.js +0 -378
- package/dist/src/server/file-syncer/index.js.map +0 -1
- package/dist/src/server/file-syncer/sync/resolveSyncFileSet.d.ts +0 -7
- package/dist/src/server/file-syncer/sync/resolveSyncFileSet.d.ts.map +0 -1
- package/dist/src/server/file-syncer/sync/resolveSyncFileSet.js +0 -103
- package/dist/src/server/file-syncer/sync/resolveSyncFileSet.js.map +0 -1
- package/dist/src/server/file-syncer/types/wire.d.ts +0 -14
- package/dist/src/server/file-syncer/types/wire.d.ts.map +0 -1
- package/dist/src/server/file-syncer/types/wire.js +0 -2
- package/dist/src/server/file-syncer/types/wire.js.map +0 -1
- package/dist/src/server/file-syncer/utils/hash.d.ts +0 -5
- package/dist/src/server/file-syncer/utils/hash.d.ts.map +0 -1
- package/dist/src/server/file-syncer/utils/hash.js +0 -20
- package/dist/src/server/file-syncer/utils/hash.js.map +0 -1
- package/dist/src/server/file-syncer/utils/path.d.ts +0 -15
- package/dist/src/server/file-syncer/utils/path.d.ts.map +0 -1
- package/dist/src/server/file-syncer/utils/path.js +0 -109
- package/dist/src/server/file-syncer/utils/path.js.map +0 -1
- package/dist/src/server/http-routes.d.ts +0 -30
- package/dist/src/server/http-routes.d.ts.map +0 -1
- package/dist/src/server/http-routes.js +0 -394
- package/dist/src/server/http-routes.js.map +0 -1
- package/dist/src/server/sandbox-landing-page.html +0 -367
- package/dist/src/server/server.d.ts +0 -106
- package/dist/src/server/server.d.ts.map +0 -1
- package/dist/src/server/server.js +0 -255
- package/dist/src/server/server.js.map +0 -1
- package/dist/src/server/services/child-process-manager.d.ts +0 -27
- package/dist/src/server/services/child-process-manager.d.ts.map +0 -1
- package/dist/src/server/services/child-process-manager.js +0 -126
- package/dist/src/server/services/child-process-manager.js.map +0 -1
- package/dist/src/server/services/index.d.ts +0 -3
- package/dist/src/server/services/index.d.ts.map +0 -1
- package/dist/src/server/services/index.js +0 -2
- package/dist/src/server/services/index.js.map +0 -1
- package/dist/src/server/services/interface.d.ts +0 -6
- package/dist/src/server/services/interface.d.ts.map +0 -1
- package/dist/src/server/services/interface.js +0 -2
- package/dist/src/server/services/interface.js.map +0 -1
- package/dist/src/server/settled-tracker.d.ts +0 -29
- package/dist/src/server/settled-tracker.d.ts.map +0 -1
- package/dist/src/server/settled-tracker.js +0 -203
- package/dist/src/server/settled-tracker.js.map +0 -1
- package/dist/src/server/state-manager.d.ts +0 -24
- package/dist/src/server/state-manager.d.ts.map +0 -1
- package/dist/src/server/state-manager.js +0 -56
- package/dist/src/server/state-manager.js.map +0 -1
- package/dist/src/server/websocket-handler.d.ts +0 -5
- package/dist/src/server/websocket-handler.d.ts.map +0 -1
- package/dist/src/server/websocket-handler.js +0 -40
- package/dist/src/server/websocket-handler.js.map +0 -1
- package/dist/src/utils/analytics.d.ts +0 -21
- package/dist/src/utils/analytics.d.ts.map +0 -1
- package/dist/src/utils/analytics.js +0 -41
- package/dist/src/utils/analytics.js.map +0 -1
- package/dist/src/utils/config.d.ts +0 -11
- package/dist/src/utils/config.d.ts.map +0 -1
- package/dist/src/utils/config.js +0 -50
- package/dist/src/utils/config.js.map +0 -1
- package/dist/src/utils/correlation-id.d.ts +0 -3
- package/dist/src/utils/correlation-id.d.ts.map +0 -1
- package/dist/src/utils/correlation-id.js +0 -7
- package/dist/src/utils/correlation-id.js.map +0 -1
- package/dist/src/utils/errors.d.ts +0 -22
- package/dist/src/utils/errors.d.ts.map +0 -1
- package/dist/src/utils/errors.js +0 -50
- package/dist/src/utils/errors.js.map +0 -1
- package/dist/src/utils/get-package-version.d.ts +0 -7
- package/dist/src/utils/get-package-version.d.ts.map +0 -1
- package/dist/src/utils/get-package-version.js +0 -31
- package/dist/src/utils/get-package-version.js.map +0 -1
- package/dist/src/utils/terminal.d.ts +0 -13
- package/dist/src/utils/terminal.d.ts.map +0 -1
- package/dist/src/utils/terminal.js +0 -85
- package/dist/src/utils/terminal.js.map +0 -1
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
import { getPendingDispatches } from '../dsl/index.js';
|
|
2
|
-
import { buildEventToCommandMapping } from '../dsl/index.js';
|
|
3
|
-
import createDebug from 'debug';
|
|
4
|
-
const debug = createDebug('auto-engineer:server:settled-tracker');
|
|
5
|
-
export class SettledTracker {
|
|
6
|
-
constructor(onDispatchAction, metadataService) {
|
|
7
|
-
this.handlerTemplates = new Map();
|
|
8
|
-
this.handlerInstances = new Map();
|
|
9
|
-
this.commandToHandlerIds = new Map();
|
|
10
|
-
this.runningCommands = new Map();
|
|
11
|
-
this.eventToCommandMapping = {};
|
|
12
|
-
this.onDispatchAction = onDispatchAction;
|
|
13
|
-
this.metadataService = metadataService;
|
|
14
|
-
this.eventToCommandMapping = buildEventToCommandMapping(metadataService);
|
|
15
|
-
}
|
|
16
|
-
registerSettledHandler(registration) {
|
|
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
|
|
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) {
|
|
39
|
-
commandTrackers.set(commandType, {
|
|
40
|
-
commandType,
|
|
41
|
-
hasCompleted: false,
|
|
42
|
-
events: [],
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
this.handlerInstances.set(instanceId, {
|
|
46
|
-
templateId: template.id,
|
|
47
|
-
correlationId,
|
|
48
|
-
registration: template.registration,
|
|
49
|
-
commandTrackers,
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
onCommandStarted(command) {
|
|
53
|
-
const { type: commandType, correlationId, requestId } = command;
|
|
54
|
-
if (correlationId === undefined ||
|
|
55
|
-
correlationId === null ||
|
|
56
|
-
correlationId === '' ||
|
|
57
|
-
requestId === undefined ||
|
|
58
|
-
requestId === null ||
|
|
59
|
-
requestId === '') {
|
|
60
|
-
debug('Command missing correlation/request ID, cannot track:', commandType);
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
// Track this command execution
|
|
64
|
-
this.runningCommands.set(requestId, { commandType, correlationId });
|
|
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
|
-
}
|
|
76
|
-
}
|
|
77
|
-
onEventReceived(event) {
|
|
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) {
|
|
90
|
-
if (tracker.hasCompleted)
|
|
91
|
-
continue;
|
|
92
|
-
// Check if this event is related to this command type
|
|
93
|
-
if (this.isEventFromCommand(event.type, commandType)) {
|
|
94
|
-
debug('Event', event.type, 'is related to command', commandType, 'for instance', instanceId);
|
|
95
|
-
// Always add related events to the tracker
|
|
96
|
-
tracker.events.push(event);
|
|
97
|
-
// Only mark as completed if this is a completion event
|
|
98
|
-
if (this.isCompletionEvent(event.type)) {
|
|
99
|
-
tracker.hasCompleted = true;
|
|
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);
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
debug('Event', event.type, 'is progress for command', commandType, '- not marking as completed yet');
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
isEventFromCommand(eventType, commandType) {
|
|
112
|
-
// Get fresh mapping in case new handlers have been registered
|
|
113
|
-
const currentMapping = buildEventToCommandMapping(this.metadataService);
|
|
114
|
-
const sourceCommand = currentMapping[eventType];
|
|
115
|
-
return sourceCommand === commandType;
|
|
116
|
-
}
|
|
117
|
-
isCompletionEvent(eventType) {
|
|
118
|
-
// Get fresh mapping in case new handlers have been registered
|
|
119
|
-
const currentMapping = buildEventToCommandMapping(this.metadataService);
|
|
120
|
-
if (currentMapping[eventType] !== undefined) {
|
|
121
|
-
return true;
|
|
122
|
-
}
|
|
123
|
-
if (this.metadataService) {
|
|
124
|
-
const commands = this.metadataService.getAllCommandsMetadata();
|
|
125
|
-
return commands.some((command) => command.events?.includes(eventType) ?? false);
|
|
126
|
-
}
|
|
127
|
-
return false;
|
|
128
|
-
}
|
|
129
|
-
collectEventsByCommandType(instance) {
|
|
130
|
-
const eventsByCommandType = {};
|
|
131
|
-
for (const [commandType, tracker] of instance.commandTrackers) {
|
|
132
|
-
eventsByCommandType[commandType] = [...tracker.events];
|
|
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);
|
|
167
|
-
try {
|
|
168
|
-
debug('Executing settled handler with events:', Object.keys(eventsByCommandType));
|
|
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);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
catch (error) {
|
|
181
|
-
debug('Error executing settled handler instance', instanceId, ':', error);
|
|
182
|
-
this.cleanupHandlerInstance(instanceId);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
cleanupHandlerInstance(instanceId) {
|
|
186
|
-
const instance = this.handlerInstances.get(instanceId);
|
|
187
|
-
if (!instance)
|
|
188
|
-
return;
|
|
189
|
-
this.handlerInstances.delete(instanceId);
|
|
190
|
-
debug('Cleaned up settled handler instance:', instanceId);
|
|
191
|
-
}
|
|
192
|
-
generateTemplateId(registration) {
|
|
193
|
-
const commandTypes = registration.commandTypes.join(',');
|
|
194
|
-
return `template-${commandTypes}`;
|
|
195
|
-
}
|
|
196
|
-
generateInstanceId(templateId, correlationId) {
|
|
197
|
-
return `${templateId}-${correlationId}`;
|
|
198
|
-
}
|
|
199
|
-
getActiveHandlers() {
|
|
200
|
-
return Array.from(this.handlerInstances.keys());
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
//# sourceMappingURL=settled-tracker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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;AAoBlE,MAAM,OAAO,cAAc;IASzB,YACE,gBAAiF,EACjF,eAAwC;QAVlC,qBAAgB,GAAwC,IAAI,GAAG,EAAE,CAAC;QAClE,qBAAgB,GAAwC,IAAI,GAAG,EAAE,CAAC;QAClE,wBAAmB,GAA6B,IAAI,GAAG,EAAE,CAAC;QAC1D,oBAAe,GAAgE,IAAI,GAAG,EAAE,CAAC;QAGzF,0BAAqB,GAA2B,EAAE,CAAC;QAMzD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,qBAAqB,GAAG,0BAA0B,CAAC,eAAe,CAAC,CAAC;IAC3E,CAAC;IAED,sBAAsB,CAAC,YAAiC;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;QACzD,KAAK,CAAC,uCAAuC,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;QAEvG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE;YACpC,EAAE,EAAE,UAAU;YACd,YAAY;SACb,CAAC,CAAC;QAEH,2DAA2D;QAC3D,KAAK,MAAM,WAAW,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;YACpD,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAEO,gCAAgC,CAAC,QAAgC,EAAE,aAAqB;QAC9F,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC,CAAC;QAEvE,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,KAAK,CAAC,kDAAkD,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEnG,MAAM,eAAe,GAAG,IAAI,GAAG,EAA0B,CAAC;QAC1D,KAAK,MAAM,WAAW,IAAI,QAAQ,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;YAC7D,eAAe,CAAC,GAAG,CAAC,WAAW,EAAE;gBAC/B,WAAW;gBACX,YAAY,EAAE,KAAK;gBACnB,MAAM,EAAE,EAAE;aACX,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE;YACpC,UAAU,EAAE,QAAQ,CAAC,EAAE;YACvB,aAAa;YACb,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,eAAe;SAChB,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,OAAgB;QAC/B,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;QAEhE,IACE,aAAa,KAAK,SAAS;YAC3B,aAAa,KAAK,IAAI;YACtB,aAAa,KAAK,EAAE;YACpB,SAAS,KAAK,SAAS;YACvB,SAAS,KAAK,IAAI;YAClB,SAAS,KAAK,EAAE,EAChB,CAAC;YACD,KAAK,CAAC,uDAAuD,EAAE,WAAW,CAAC,CAAC;YAC5E,OAAO;QACT,CAAC;QAED,+BAA+B;QAC/B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC,CAAC;QACpE,KAAK,CAAC,2BAA2B,EAAE,WAAW,EAAE,iBAAiB,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC;QAE/G,wDAAwD;QACxD,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC9D,IAAI,WAAW,EAAE,CAAC;YAChB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;gBACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBACvD,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAI,CAAC,gCAAgC,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;gBACjE,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,eAAe,CAAC,KAAY;QAC1B,MAAM,kBAAkB,GAAG,KAAK,CAAC,aAAa,CAAC;QAC/C,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,IAAI,EAAE,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;QAEhF,IAAI,kBAAkB,KAAK,SAAS,IAAI,kBAAkB,KAAK,IAAI,IAAI,kBAAkB,KAAK,EAAE,EAAE,CAAC;YACjG,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QAED,+DAA+D;QAC/D,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3D,IAAI,QAAQ,CAAC,aAAa,KAAK,kBAAkB,EAAE,CAAC;gBAClD,SAAS;YACX,CAAC;YAED,KAAK,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;gBAC9D,IAAI,OAAO,CAAC,YAAY;oBAAE,SAAS;gBAEnC,sDAAsD;gBACtD,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;oBACrD,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,uBAAuB,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;oBAE7F,2CAA2C;oBAC3C,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAE3B,uDAAuD;oBACvD,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;wBACvC,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;wBAC5B,KAAK,CAAC,gBAAgB,EAAE,WAAW,EAAE,2BAA2B,EAAE,UAAU,CAAC,CAAC;wBAE9E,yDAAyD;wBACzD,IAAI,CAAC,8BAA8B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;oBAC5D,CAAC;yBAAM,CAAC;wBACN,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,yBAAyB,EAAE,WAAW,EAAE,gCAAgC,CAAC,CAAC;oBACvG,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,SAAiB,EAAE,WAAmB;QAC/D,8DAA8D;QAC9D,MAAM,cAAc,GAAG,0BAA0B,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QAChD,OAAO,aAAa,KAAK,WAAW,CAAC;IACvC,CAAC;IAEO,iBAAiB,CAAC,SAAiB;QACzC,8DAA8D;QAC9D,MAAM,cAAc,GAAG,0BAA0B,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAExE,IAAI,cAAc,CAAC,SAAS,CAAC,KAAK,SAAS,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE,CAAC;YAC/D,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,CAAC;QAClF,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,0BAA0B,CAAC,QAAgC;QACjE,MAAM,mBAAmB,GAA4B,EAAE,CAAC;QACxD,KAAK,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;YAC9D,mBAAmB,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAEO,wBAAwB,CAAC,mBAA2B;QAC1D,MAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;QACjD,KAAK,CAAC,qDAAqD,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;QACvF,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1D,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;gBACvC,KAAK,CAAC,qCAAqC,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC1D,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;IACH,CAAC;IAEO,oBAAoB,CAAC,MAAmC;QAC9D,OAAO,CACL,MAAM,KAAK,IAAI;YACf,MAAM,KAAK,SAAS;YACpB,OAAO,MAAM,KAAK,QAAQ;YAC1B,SAAS,IAAI,MAAM;YACnB,MAAM,CAAC,OAAO,KAAK,IAAI,CACxB,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,QAAgC;QAC3D,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC;YACxD,OAAO,CAAC,YAAY,GAAG,KAAK,CAAC;YAC7B,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAEO,8BAA8B,CAAC,UAAkB,EAAE,QAAgC;QACzF,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAE5G,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,uDAAuD,CAAC,CAAC;YACvF,OAAO;QACT,CAAC;QAED,KAAK,CAAC,qCAAqC,EAAE,UAAU,EAAE,8BAA8B,CAAC,CAAC;QAEzF,MAAM,mBAAmB,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAEtE,IAAI,CAAC;YACH,KAAK,CAAC,wCAAwC,EAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAClF,MAAM,MAAM,GAAG,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAElE,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAEtD,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,KAAK,CAAC,gDAAgD,EAAE,UAAU,CAAC,CAAC;gBACpE,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,uCAAuC,EAAE,UAAU,CAAC,CAAC;gBAC3D,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,CAAC,0CAA0C,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YAC1E,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAEO,sBAAsB,CAAC,UAAkB;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACzC,KAAK,CAAC,sCAAsC,EAAE,UAAU,CAAC,CAAC;IAC5D,CAAC;IAEO,kBAAkB,CAAC,YAAiC;QAC1D,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzD,OAAO,YAAY,YAAY,EAAE,CAAC;IACpC,CAAC;IAEO,kBAAkB,CAAC,UAAkB,EAAE,aAAqB;QAClE,OAAO,GAAG,UAAU,IAAI,aAAa,EAAE,CAAC;IAC1C,CAAC;IAED,iBAAiB;QACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;IAClD,CAAC;CACF"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { Event } from '@auto-engineer/message-bus';
|
|
2
|
-
export type FoldFunction<S = unknown, E = Event> = (state: S, event: E) => S;
|
|
3
|
-
export declare class StateManager<State = Record<string, unknown>> {
|
|
4
|
-
private state;
|
|
5
|
-
private folds;
|
|
6
|
-
constructor(initialState?: State);
|
|
7
|
-
/**
|
|
8
|
-
* Register a fold function for a specific event type
|
|
9
|
-
*/
|
|
10
|
-
registerFold(eventType: string, fold: FoldFunction<State>): void;
|
|
11
|
-
/**
|
|
12
|
-
* Apply an event to the state using registered fold functions
|
|
13
|
-
*/
|
|
14
|
-
applyEvent(event: Event): void;
|
|
15
|
-
/**
|
|
16
|
-
* Get the current state
|
|
17
|
-
*/
|
|
18
|
-
getState(): State;
|
|
19
|
-
/**
|
|
20
|
-
* Get a specific property from the state
|
|
21
|
-
*/
|
|
22
|
-
getStateProperty(path: string): unknown;
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=state-manager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"state-manager.d.ts","sourceRoot":"","sources":["../../../src/server/state-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAKxD,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;AAE7E,qBAAa,YAAY,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvD,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,KAAK,CAA+C;gBAEhD,YAAY,CAAC,EAAE,KAAK;IAKhC;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,IAAI;IAKhE;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAc9B;;OAEG;IACH,QAAQ,IAAI,KAAK;IAIjB;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAcxC"}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import createDebug from 'debug';
|
|
2
|
-
const debug = createDebug('auto:cli:server:state');
|
|
3
|
-
export class StateManager {
|
|
4
|
-
constructor(initialState) {
|
|
5
|
-
this.folds = new Map();
|
|
6
|
-
this.state = initialState ?? {};
|
|
7
|
-
debug('StateManager initialized with state:', this.state);
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Register a fold function for a specific event type
|
|
11
|
-
*/
|
|
12
|
-
registerFold(eventType, fold) {
|
|
13
|
-
debug('Registering fold for event type:', eventType);
|
|
14
|
-
this.folds.set(eventType, fold);
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Apply an event to the state using registered fold functions
|
|
18
|
-
*/
|
|
19
|
-
applyEvent(event) {
|
|
20
|
-
const fold = this.folds.get(event.type);
|
|
21
|
-
if (fold) {
|
|
22
|
-
debug('Applying fold for event:', event.type);
|
|
23
|
-
debug('Current state before fold:', JSON.stringify(this.state));
|
|
24
|
-
const oldState = this.state;
|
|
25
|
-
this.state = fold(this.state, event);
|
|
26
|
-
debug('State updated from', JSON.stringify(oldState), 'to', JSON.stringify(this.state));
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
debug('No fold registered for event type:', event.type);
|
|
30
|
-
debug('Available folds:', Array.from(this.folds.keys()));
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Get the current state
|
|
35
|
-
*/
|
|
36
|
-
getState() {
|
|
37
|
-
return this.state;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Get a specific property from the state
|
|
41
|
-
*/
|
|
42
|
-
getStateProperty(path) {
|
|
43
|
-
const keys = path.split('.');
|
|
44
|
-
let current = this.state;
|
|
45
|
-
for (const key of keys) {
|
|
46
|
-
if (current !== null && current !== undefined && typeof current === 'object' && key in current) {
|
|
47
|
-
current = current[key];
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
return undefined;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
return current;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=state-manager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"state-manager.js","sourceRoot":"","sources":["../../../src/server/state-manager.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,OAAO,CAAC;AAEhC,MAAM,KAAK,GAAG,WAAW,CAAC,uBAAuB,CAAC,CAAC;AAInD,MAAM,OAAO,YAAY;IAIvB,YAAY,YAAoB;QAFxB,UAAK,GAAqC,IAAI,GAAG,EAAE,CAAC;QAG1D,IAAI,CAAC,KAAK,GAAG,YAAY,IAAK,EAAY,CAAC;QAC3C,KAAK,CAAC,sCAAsC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,SAAiB,EAAE,IAAyB;QACvD,KAAK,CAAC,kCAAkC,EAAE,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,KAAY;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC9C,KAAK,CAAC,4BAA4B,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAChE,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;YAC5B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACrC,KAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1F,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACxD,KAAK,CAAC,kBAAkB,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,IAAY;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,OAAO,GAAY,IAAI,CAAC,KAAK,CAAC;QAElC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC/F,OAAO,GAAI,OAAmC,CAAC,GAAG,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACN,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { Server as SocketIOServer } from 'socket.io';
|
|
2
|
-
import type { MessageBus } from '@auto-engineer/message-bus';
|
|
3
|
-
import type { StateManager } from './state-manager';
|
|
4
|
-
export declare function setupWebSocketHandlers(io: SocketIOServer, messageBus: MessageBus, stateManager: StateManager<Record<string, unknown>>): void;
|
|
5
|
-
//# sourceMappingURL=websocket-handler.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-handler.d.ts","sourceRoot":"","sources":["../../../src/server/websocket-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAW,MAAM,4BAA4B,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAKpD,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,cAAc,EAClB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAClD,IAAI,CA2CN"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import createDebug from 'debug';
|
|
2
|
-
const debugWs = createDebug('auto:cli:server:ws');
|
|
3
|
-
export function setupWebSocketHandlers(io, messageBus, stateManager) {
|
|
4
|
-
io.on('connection', (socket) => {
|
|
5
|
-
debugWs('WebSocket client connected:', socket.id);
|
|
6
|
-
// Send current state to new client
|
|
7
|
-
socket.emit('state', stateManager.getState());
|
|
8
|
-
// Handle command from WebSocket
|
|
9
|
-
socket.on('command', async (command) => {
|
|
10
|
-
debugWs('Received command via WebSocket:', command.type);
|
|
11
|
-
try {
|
|
12
|
-
// Add request ID if not present
|
|
13
|
-
const hasRequestId = command.requestId !== null && command.requestId !== undefined && command.requestId !== '';
|
|
14
|
-
const cmdWithId = hasRequestId
|
|
15
|
-
? command
|
|
16
|
-
: { ...command, requestId: `ws-${Date.now()}-${Math.random().toString(36).substring(2, 11)}` };
|
|
17
|
-
await messageBus.sendCommand(cmdWithId);
|
|
18
|
-
socket.emit('command-ack', {
|
|
19
|
-
status: 'ack',
|
|
20
|
-
commandId: cmdWithId.requestId,
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
catch (error) {
|
|
24
|
-
socket.emit('command-ack', {
|
|
25
|
-
status: 'nack',
|
|
26
|
-
error: error instanceof Error ? error.message : 'Unknown error',
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
// Handle state query
|
|
31
|
-
socket.on('get-state', () => {
|
|
32
|
-
socket.emit('state', stateManager.getState());
|
|
33
|
-
});
|
|
34
|
-
socket.on('disconnect', () => {
|
|
35
|
-
debugWs('WebSocket client disconnected:', socket.id);
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
debugWs('WebSocket handlers configured');
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=websocket-handler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"websocket-handler.js","sourceRoot":"","sources":["../../../src/server/websocket-handler.ts"],"names":[],"mappings":"AAGA,OAAO,WAAW,MAAM,OAAO,CAAC;AAEhC,MAAM,OAAO,GAAG,WAAW,CAAC,oBAAoB,CAAC,CAAC;AAElD,MAAM,UAAU,sBAAsB,CACpC,EAAkB,EAClB,UAAsB,EACtB,YAAmD;IAEnD,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE;QAC7B,OAAO,CAAC,6BAA6B,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAElD,mCAAmC;QACnC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE9C,gCAAgC;QAChC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,OAAgB,EAAE,EAAE;YAC9C,OAAO,CAAC,iCAAiC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAEzD,IAAI,CAAC;gBACH,gCAAgC;gBAChC,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,KAAK,IAAI,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,CAAC,SAAS,KAAK,EAAE,CAAC;gBAC/G,MAAM,SAAS,GAAG,YAAY;oBAC5B,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAEjG,MAAM,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBAExC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE;oBACzB,MAAM,EAAE,KAAK;oBACb,SAAS,EAAE,SAAS,CAAC,SAAS;iBAC/B,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE;oBACzB,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;iBAChE,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,qBAAqB;QACrB,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE;YAC1B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,EAAE;YAC3B,OAAO,CAAC,gCAAgC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,+BAA+B,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Config } from './config';
|
|
2
|
-
export interface AnalyticsData {
|
|
3
|
-
command: string;
|
|
4
|
-
timestamp: number;
|
|
5
|
-
version: string;
|
|
6
|
-
nodeVersion: string;
|
|
7
|
-
platform: string;
|
|
8
|
-
success: boolean;
|
|
9
|
-
errorCode?: string;
|
|
10
|
-
}
|
|
11
|
-
export declare class Analytics {
|
|
12
|
-
private config;
|
|
13
|
-
private output;
|
|
14
|
-
private optedIn;
|
|
15
|
-
constructor(config: Config);
|
|
16
|
-
promptForConsent(): Promise<boolean>;
|
|
17
|
-
private prepareAnalyticsData;
|
|
18
|
-
track(data: Omit<AnalyticsData, 'timestamp' | 'version' | 'nodeVersion' | 'platform'>): Promise<void>;
|
|
19
|
-
trackCommand(command: string, success: boolean, errorCode?: string): Promise<void>;
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=analytics.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../../src/utils/analytics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,OAAO,CAAwB;gBAE3B,MAAM,EAAE,MAAM;IAKpB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAU1C,OAAO,CAAC,oBAAoB;IAYtB,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,GAAG,SAAS,GAAG,aAAa,GAAG,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAOzF"}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { createOutput } from './terminal.js';
|
|
2
|
-
export class Analytics {
|
|
3
|
-
constructor(config) {
|
|
4
|
-
this.optedIn = null;
|
|
5
|
-
this.config = config;
|
|
6
|
-
this.output = createOutput(config);
|
|
7
|
-
}
|
|
8
|
-
async promptForConsent() {
|
|
9
|
-
if (this.optedIn !== null) {
|
|
10
|
-
return this.optedIn;
|
|
11
|
-
}
|
|
12
|
-
const isDisabled = process.env.AUTO_ENGINEER_ANALYTICS === 'false';
|
|
13
|
-
this.optedIn = !isDisabled;
|
|
14
|
-
return this.optedIn;
|
|
15
|
-
}
|
|
16
|
-
prepareAnalyticsData(data) {
|
|
17
|
-
return {
|
|
18
|
-
...data,
|
|
19
|
-
timestamp: Date.now(),
|
|
20
|
-
version: process.env.npm_package_version ?? '0.1.2',
|
|
21
|
-
nodeVersion: process.version,
|
|
22
|
-
platform: process.platform,
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
async track(data) {
|
|
26
|
-
const consented = await this.promptForConsent();
|
|
27
|
-
if (!consented) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
const analyticsData = this.prepareAnalyticsData(data);
|
|
31
|
-
this.output.debug(`Analytics: ${JSON.stringify(analyticsData)}`);
|
|
32
|
-
}
|
|
33
|
-
async trackCommand(command, success, errorCode) {
|
|
34
|
-
await this.track({
|
|
35
|
-
command,
|
|
36
|
-
success,
|
|
37
|
-
errorCode,
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=analytics.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../../src/utils/analytics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAY1C,MAAM,OAAO,SAAS;IAKpB,YAAY,MAAc;QAFlB,YAAO,GAAmB,IAAI,CAAC;QAGrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,OAAO,CAAC;QACnE,IAAI,CAAC,OAAO,GAAG,CAAC,UAAU,CAAC;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEO,oBAAoB,CAC1B,IAA+E;QAE/E,OAAO;YACL,GAAG,IAAI;YACP,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO;YACnD,WAAW,EAAE,OAAO,CAAC,OAAO;YAC5B,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAA+E;QACzF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAEhD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,OAAgB,EAAE,SAAkB;QACtE,MAAM,IAAI,CAAC,KAAK,CAAC;YACf,OAAO;YACP,OAAO;YACP,SAAS;SACV,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export interface Config {
|
|
2
|
-
debug: boolean;
|
|
3
|
-
noColor: boolean;
|
|
4
|
-
output: 'text' | 'json';
|
|
5
|
-
apiToken?: string;
|
|
6
|
-
projectPath?: string;
|
|
7
|
-
host?: string;
|
|
8
|
-
}
|
|
9
|
-
export declare const loadConfig: (cliArgs?: Partial<Config>) => Config;
|
|
10
|
-
export declare const validateConfig: (config: Config) => void;
|
|
11
|
-
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AA0BD,eAAO,MAAM,UAAU,GAAI,UAAS,OAAO,CAAC,MAAM,CAAM,KAAG,MAU1D,CAAC;AAiBF,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,IAK/C,CAAC"}
|
package/dist/src/utils/config.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { createError } from './errors.js';
|
|
2
|
-
const parseNoColor = () => {
|
|
3
|
-
return process.env.NO_COLOR === '1' || process.env.NO_COLOR === 'true';
|
|
4
|
-
};
|
|
5
|
-
const parseOutputFormat = () => {
|
|
6
|
-
return process.env.OUTPUT_FORMAT === 'json' ? 'json' : 'text';
|
|
7
|
-
};
|
|
8
|
-
const getEnvConfig = () => {
|
|
9
|
-
return {
|
|
10
|
-
debug: process.env.DEBUG === 'auto-engineer',
|
|
11
|
-
noColor: parseNoColor(),
|
|
12
|
-
output: parseOutputFormat(),
|
|
13
|
-
apiToken: process.env.AUTO_ENGINEER_API_TOKEN,
|
|
14
|
-
projectPath: process.env.AUTO_ENGINEER_PROJECT_PATH,
|
|
15
|
-
};
|
|
16
|
-
};
|
|
17
|
-
const getDefaultConfig = () => ({
|
|
18
|
-
debug: false,
|
|
19
|
-
noColor: false,
|
|
20
|
-
output: 'text',
|
|
21
|
-
});
|
|
22
|
-
export const loadConfig = (cliArgs = {}) => {
|
|
23
|
-
const envConfig = getEnvConfig();
|
|
24
|
-
const defaultConfig = getDefaultConfig();
|
|
25
|
-
// Merge in order of precedence: CLI args > env vars > defaults
|
|
26
|
-
return {
|
|
27
|
-
...defaultConfig,
|
|
28
|
-
...envConfig,
|
|
29
|
-
...cliArgs,
|
|
30
|
-
};
|
|
31
|
-
};
|
|
32
|
-
const validateApiToken = (apiToken) => {
|
|
33
|
-
if (apiToken !== undefined && apiToken !== null && apiToken.length > 0 && apiToken.length < 10) {
|
|
34
|
-
throw createError('API token must be at least 10 characters long', 'E4003');
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
|
-
const validateProjectPath = (projectPath) => {
|
|
38
|
-
if (projectPath !== undefined && projectPath !== null && projectPath.length > 0) {
|
|
39
|
-
const isValidPath = projectPath.startsWith('/') || projectPath.startsWith('./');
|
|
40
|
-
if (!isValidPath) {
|
|
41
|
-
throw createError('Project path must be an absolute path or relative path starting with ./', 'E4004');
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
export const validateConfig = (config) => {
|
|
46
|
-
const { apiToken, projectPath } = config;
|
|
47
|
-
validateApiToken(apiToken);
|
|
48
|
-
validateProjectPath(projectPath);
|
|
49
|
-
};
|
|
50
|
-
//# sourceMappingURL=config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAWvC,MAAM,YAAY,GAAG,GAAY,EAAE;IACjC,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC;AACzE,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,GAAoB,EAAE;IAC9C,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;AAChE,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,GAAoB,EAAE;IACzC,OAAO;QACL,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,eAAe;QAC5C,OAAO,EAAE,YAAY,EAAE;QACvB,MAAM,EAAE,iBAAiB,EAAE;QAC3B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB;QAC7C,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B;KACpD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,GAAW,EAAE,CAAC,CAAC;IACtC,KAAK,EAAE,KAAK;IACZ,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,MAAM;CACf,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,UAA2B,EAAE,EAAU,EAAE;IAClE,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IAEzC,+DAA+D;IAC/D,OAAO;QACL,GAAG,aAAa;QAChB,GAAG,SAAS;QACZ,GAAG,OAAO;KACX,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAC,QAA4B,EAAQ,EAAE;IAC9D,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAC/F,MAAM,WAAW,CAAC,+CAA+C,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,WAA+B,EAAQ,EAAE;IACpE,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChF,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAChF,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,WAAW,CAAC,yEAAyE,EAAE,OAAO,CAAC,CAAC;QACxG,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAc,EAAQ,EAAE;IACrD,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAEzC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC3B,mBAAmB,CAAC,WAAW,CAAC,CAAC;AACnC,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
export interface CLIError extends Error {
|
|
2
|
-
code: string;
|
|
3
|
-
exitCode: number;
|
|
4
|
-
}
|
|
5
|
-
export declare class ValidationError extends Error implements CLIError {
|
|
6
|
-
code: string;
|
|
7
|
-
exitCode: number;
|
|
8
|
-
constructor(message: string, code?: string, exitCode?: number);
|
|
9
|
-
}
|
|
10
|
-
export declare class ConfigurationError extends Error implements CLIError {
|
|
11
|
-
code: string;
|
|
12
|
-
exitCode: number;
|
|
13
|
-
constructor(message: string, code?: string, exitCode?: number);
|
|
14
|
-
}
|
|
15
|
-
export declare class RuntimeError extends Error implements CLIError {
|
|
16
|
-
code: string;
|
|
17
|
-
exitCode: number;
|
|
18
|
-
constructor(message: string, code?: string, exitCode?: number);
|
|
19
|
-
}
|
|
20
|
-
export declare const handleError: (error: Error | CLIError) => never;
|
|
21
|
-
export declare const createError: (message: string, code: string, exitCode?: number) => CLIError;
|
|
22
|
-
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/utils/errors.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,QAAS,SAAQ,KAAK;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,eAAgB,SAAQ,KAAM,YAAW,QAAQ;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;gBAEL,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAgB,EAAE,QAAQ,GAAE,MAAU;CAM1E;AAED,qBAAa,kBAAmB,SAAQ,KAAM,YAAW,QAAQ;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;gBAEL,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAgB,EAAE,QAAQ,GAAE,MAAU;CAM1E;AAED,qBAAa,YAAa,SAAQ,KAAM,YAAW,QAAQ;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;gBAEL,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,MAAgB,EAAE,QAAQ,GAAE,MAAU;CAM1E;AAoBD,eAAO,MAAM,WAAW,GAAI,OAAO,KAAK,GAAG,QAAQ,KAAG,KAQrD,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,SAAS,MAAM,EAAE,MAAM,MAAM,EAAE,WAAU,MAAU,KAAG,QAEjF,CAAC"}
|
package/dist/src/utils/errors.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
export class ValidationError extends Error {
|
|
3
|
-
constructor(message, code = 'E4001', exitCode = 1) {
|
|
4
|
-
super(message);
|
|
5
|
-
this.name = 'ValidationError';
|
|
6
|
-
this.code = code;
|
|
7
|
-
this.exitCode = exitCode;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
export class ConfigurationError extends Error {
|
|
11
|
-
constructor(message, code = 'E4002', exitCode = 1) {
|
|
12
|
-
super(message);
|
|
13
|
-
this.name = 'ConfigurationError';
|
|
14
|
-
this.code = code;
|
|
15
|
-
this.exitCode = exitCode;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
export class RuntimeError extends Error {
|
|
19
|
-
constructor(message, code = 'E5001', exitCode = 1) {
|
|
20
|
-
super(message);
|
|
21
|
-
this.name = 'RuntimeError';
|
|
22
|
-
this.code = code;
|
|
23
|
-
this.exitCode = exitCode;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
const getErrorDetails = (error) => {
|
|
27
|
-
const isCLIError = 'code' in error && 'exitCode' in error;
|
|
28
|
-
const cliError = error;
|
|
29
|
-
return {
|
|
30
|
-
errorCode: isCLIError ? cliError.code : 'E9999',
|
|
31
|
-
exitCode: isCLIError ? cliError.exitCode : 1,
|
|
32
|
-
};
|
|
33
|
-
};
|
|
34
|
-
const logErrorStack = (error) => {
|
|
35
|
-
const isDebugMode = process.env.DEBUG === 'auto-engineer';
|
|
36
|
-
if (isDebugMode && error.stack != null && error.stack.length > 0) {
|
|
37
|
-
console.error(chalk.gray('Stack trace:'));
|
|
38
|
-
console.error(chalk.gray(error.stack));
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
export const handleError = (error) => {
|
|
42
|
-
const { errorCode, exitCode } = getErrorDetails(error);
|
|
43
|
-
console.error(chalk.red(`Error (${errorCode}): ${error.message}`));
|
|
44
|
-
logErrorStack(error);
|
|
45
|
-
process.exit(exitCode);
|
|
46
|
-
};
|
|
47
|
-
export const createError = (message, code, exitCode = 1) => {
|
|
48
|
-
return new ValidationError(message, code, exitCode);
|
|
49
|
-
};
|
|
50
|
-
//# sourceMappingURL=errors.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAIxC,YAAY,OAAe,EAAE,OAAe,OAAO,EAAE,WAAmB,CAAC;QACvE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAI3C,YAAY,OAAe,EAAE,OAAe,OAAO,EAAE,WAAmB,CAAC;QACvE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,KAAK;IAIrC,YAAY,OAAe,EAAE,OAAe,OAAO,EAAE,WAAmB,CAAC;QACvE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,eAAe,GAAG,CAAC,KAAuB,EAA2C,EAAE;IAC3F,MAAM,UAAU,GAAG,MAAM,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,CAAC;IAC1D,MAAM,QAAQ,GAAG,KAAiB,CAAC;IAEnC,OAAO;QACL,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;QAC/C,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KAC7C,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,aAAa,GAAG,CAAC,KAAY,EAAQ,EAAE;IAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,eAAe,CAAC;IAC1D,IAAI,WAAW,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAuB,EAAS,EAAE;IAC5D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAEvD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,SAAS,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAEnE,aAAa,CAAC,KAAK,CAAC,CAAC;IAErB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,IAAY,EAAE,WAAmB,CAAC,EAAY,EAAE;IAC3F,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AACtD,CAAC,CAAC"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Get the version from the package.json of the calling module
|
|
3
|
-
* @param importMetaUrl - The import.meta.url from the calling module
|
|
4
|
-
* @returns The version string or 'unknown' if not found
|
|
5
|
-
*/
|
|
6
|
-
export declare function getPackageVersion(importMetaUrl: string): string;
|
|
7
|
-
//# sourceMappingURL=get-package-version.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get-package-version.d.ts","sourceRoot":"","sources":["../../../src/utils/get-package-version.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAuB/D"}
|