@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.
Files changed (40) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/src/dsl/index.d.ts +34 -3
  3. package/dist/src/dsl/index.d.ts.map +1 -1
  4. package/dist/src/dsl/index.js +304 -14
  5. package/dist/src/dsl/index.js.map +1 -1
  6. package/dist/src/dsl-exports.d.ts +3 -1
  7. package/dist/src/dsl-exports.d.ts.map +1 -1
  8. package/dist/src/dsl-exports.js +2 -1
  9. package/dist/src/dsl-exports.js.map +1 -1
  10. package/dist/src/server/command-metadata-service.d.ts +17 -0
  11. package/dist/src/server/command-metadata-service.d.ts.map +1 -0
  12. package/dist/src/server/command-metadata-service.js +35 -0
  13. package/dist/src/server/command-metadata-service.js.map +1 -0
  14. package/dist/src/server/command-registry.d.ts +5 -16
  15. package/dist/src/server/command-registry.d.ts.map +1 -1
  16. package/dist/src/server/command-registry.js +8 -18
  17. package/dist/src/server/command-registry.js.map +1 -1
  18. package/dist/src/server/config-loader.d.ts +2 -1
  19. package/dist/src/server/config-loader.d.ts.map +1 -1
  20. package/dist/src/server/config-loader.js +9 -1
  21. package/dist/src/server/config-loader.js.map +1 -1
  22. package/dist/src/server/event-processor.d.ts +5 -3
  23. package/dist/src/server/event-processor.d.ts.map +1 -1
  24. package/dist/src/server/event-processor.js +10 -1
  25. package/dist/src/server/event-processor.js.map +1 -1
  26. package/dist/src/server/http-routes.d.ts +3 -0
  27. package/dist/src/server/http-routes.d.ts.map +1 -1
  28. package/dist/src/server/http-routes.js +29 -8
  29. package/dist/src/server/http-routes.js.map +1 -1
  30. package/dist/src/server/sandbox-landing-page.html +336 -315
  31. package/dist/src/server/server.d.ts +11 -1
  32. package/dist/src/server/server.d.ts.map +1 -1
  33. package/dist/src/server/server.js +19 -1
  34. package/dist/src/server/server.js.map +1 -1
  35. package/dist/src/server/settled-tracker.d.ts +19 -0
  36. package/dist/src/server/settled-tracker.d.ts.map +1 -0
  37. package/dist/src/server/settled-tracker.js +162 -0
  38. package/dist/src/server/settled-tracker.js.map +1 -0
  39. package/dist/tsconfig.tsbuildinfo +1 -1
  40. package/package.json +4 -4
@@ -1,7 +1,8 @@
1
1
  import { type MessageBus } from '@auto-engineer/message-bus';
2
2
  import { type ILocalMessageStore } from '@auto-engineer/message-store';
3
3
  import { StateManager } from './state-manager';
4
- import type { EventRegistration, FoldRegistration } from '../dsl/types';
4
+ import type { EventRegistration, FoldRegistration, SettledRegistration } from '../dsl/types';
5
+ import { CommandMetadataService } from './command-metadata-service';
5
6
  export interface MessageBusServerConfig {
6
7
  port?: number;
7
8
  wsPort?: number;
@@ -22,6 +23,7 @@ export declare class MessageBusServer {
22
23
  private config;
23
24
  private eventProcessor;
24
25
  private commandRegistry;
26
+ private settledTracker;
25
27
  private currentSessionId?;
26
28
  constructor(config?: MessageBusServerConfig);
27
29
  /**
@@ -40,6 +42,10 @@ export declare class MessageBusServer {
40
42
  * Register fold function from DSL
41
43
  */
42
44
  registerFold(registration: FoldRegistration): void;
45
+ /**
46
+ * Register settled handler from DSL
47
+ */
48
+ registerSettledHandler(registration: SettledRegistration): void;
43
49
  /**
44
50
  * Set command metadata for dashboard display
45
51
  */
@@ -54,6 +60,10 @@ export declare class MessageBusServer {
54
60
  * Register command handlers directly with the message bus
55
61
  */
56
62
  registerCommandHandlers(handlers: unknown[]): void;
63
+ /**
64
+ * Get the command metadata service
65
+ */
66
+ getCommandMetadataService(): CommandMetadataService;
57
67
  /**
58
68
  * Initialize state
59
69
  */
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,KAAK,UAAU,EAA4B,MAAM,4BAA4B,CAAC;AACzG,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAE3F,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAQxE,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,gBAAgB,CAAC,CAAS;gBAEtB,MAAM,GAAE,sBAA2B;IA8C/C;;OAEG;IACH,OAAO,CAAC,WAAW;IAgBnB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAI9B;;OAEG;IACH,oBAAoB,CAAC,YAAY,EAAE,iBAAiB,GAAG,IAAI;IAI3D;;OAEG;IACH,YAAY,CAAC,YAAY,EAAE,gBAAgB,GAAG,IAAI;IAIlD;;OAEG;IACH,kBAAkB,CAChB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GACrG,IAAI;IAIP;;OAEG;IACH,uBAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAIlD;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IASrC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0C5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B3B;;OAEG;IACH,aAAa,IAAI,UAAU;IAI3B;;OAEG;IACH,eAAe,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIxD;;OAEG;IACH,eAAe,IAAI,kBAAkB;CAGtC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/server/server.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,KAAK,UAAU,EAA4B,MAAM,4BAA4B,CAAC;AACzG,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAE3F,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAK7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAKpE,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,GAAG,CAAsB;IACjC,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,EAAE,CAAiB;IAC3B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,YAAY,CAAwC;IAC5D,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,gBAAgB,CAAC,CAAS;gBAEtB,MAAM,GAAE,sBAA2B;IAsD/C;;OAEG;IACH,OAAO,CAAC,WAAW;IAiBnB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAI9B;;OAEG;IACH,oBAAoB,CAAC,YAAY,EAAE,iBAAiB,GAAG,IAAI;IAI3D;;OAEG;IACH,YAAY,CAAC,YAAY,EAAE,gBAAgB,GAAG,IAAI;IAIlD;;OAEG;IACH,sBAAsB,CAAC,YAAY,EAAE,mBAAmB,GAAG,IAAI;IAI/D;;OAEG;IACH,kBAAkB,CAChB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GACrG,IAAI;IAIP;;OAEG;IACH,uBAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI;IAIlD;;OAEG;IACH,yBAAyB,IAAI,sBAAsB;IAInD;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IASrC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0C5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA0B3B;;OAEG;IACH,aAAa,IAAI,UAAU;IAI3B;;OAEG;IACH,eAAe,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIxD;;OAEG;IACH,eAAe,IAAI,kBAAkB;CAGtC"}
@@ -11,6 +11,7 @@ import { setupHttpRoutes } from './http-routes.js';
11
11
  import { setupWebSocketHandlers } from './websocket-handler.js';
12
12
  import { EventProcessor } from './event-processor.js';
13
13
  import { CommandRegistry } from './command-registry.js';
14
+ import { SettledTracker } from './settled-tracker.js';
14
15
  const debug = createDebug('auto-engineer:server');
15
16
  export class MessageBusServer {
16
17
  constructor(config = {}) {
@@ -37,7 +38,11 @@ export class MessageBusServer {
37
38
  this.messageStore = config.messageStore ?? new MemoryMessageStore();
38
39
  this.stateManager = new StateManager();
39
40
  // Initialize modules
40
- this.eventProcessor = new EventProcessor(this.messageBus, this.messageStore, this.stateManager, (event) => this.io.emit('event', event));
41
+ this.settledTracker = new SettledTracker((action) => {
42
+ // Handle dispatch actions from settled handlers
43
+ void this.eventProcessor.processDispatchAction(action);
44
+ });
45
+ this.eventProcessor = new EventProcessor(this.messageBus, this.messageStore, this.stateManager, (event) => this.io.emit('event', event), this.settledTracker);
41
46
  this.commandRegistry = new CommandRegistry(this.messageBus, this.stateManager);
42
47
  // Set up global event listener for state management
43
48
  this.eventProcessor.setupGlobalEventListener();
@@ -54,6 +59,7 @@ export class MessageBusServer {
54
59
  setupHttpRoutes(this.app, this.messageBus, this.stateManager, {
55
60
  commandHandlerNames: this.commandRegistry.getCommandHandlerNames(),
56
61
  commandMetadata: this.commandRegistry.getCommandMetadata(),
62
+ commandMetadataService: this.commandRegistry.getMetadataService(),
57
63
  eventHandlers: this.eventProcessor.getEventHandlers(),
58
64
  foldRegistry: this.commandRegistry.getFoldRegistry(),
59
65
  messageStore: this.messageStore,
@@ -83,6 +89,12 @@ export class MessageBusServer {
83
89
  registerFold(registration) {
84
90
  this.commandRegistry.registerFold(registration);
85
91
  }
92
+ /**
93
+ * Register settled handler from DSL
94
+ */
95
+ registerSettledHandler(registration) {
96
+ this.settledTracker.registerSettledHandler(registration);
97
+ }
86
98
  /**
87
99
  * Set command metadata for dashboard display
88
100
  */
@@ -95,6 +107,12 @@ export class MessageBusServer {
95
107
  registerCommandHandlers(handlers) {
96
108
  this.commandRegistry.registerCommandHandlers(handlers);
97
109
  }
110
+ /**
111
+ * Get the command metadata service
112
+ */
113
+ getCommandMetadataService() {
114
+ return this.commandRegistry.getMetadataService();
115
+ }
98
116
  /**
99
117
  * Initialize state
100
118
  */
@@ -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,MAAM,KAAK,GAAG,WAAW,CAAC,sBAAsB,CAAC,CAAC;AAYlD,MAAM,OAAO,gBAAgB;IAa3B,YAAY,SAAiC,EAAE;QAC7C,IAAI,CAAC,MAAM,GAAG;YACZ,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI;YAC7B,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,GAAG;YACtC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC;YACzE,cAAc,EAAE,MAAM,CAAC,cAAc,KAAK,KAAK;YAC/C,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,KAAK;SACzC,CAAC;QAEF,yBAAyB;QACzB,IAAI,CAAC,GAAG,GAAG,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAE7B,qBAAqB;QACrB,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEzC,0CAA0C;QAC1C,IAAI,CAAC,EAAE,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE;YAC5C,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;SACtB,CAAC,CAAC;QAEH,2DAA2D;QAC3D,IAAI,CAAC,UAAU,GAAG,gBAAgB,EAAE,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI,kBAAkB,EAAE,CAAC;QACpE,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAA2B,CAAC;QAEhE,qBAAqB;QACrB,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,KAAY,EAAE,EAAE,CAC/G,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAC7B,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAE/E,oDAAoD;QACpD,IAAI,CAAC,cAAc,CAAC,wBAAwB,EAAE,CAAC;QAE/C,qBAAqB;QACrB,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,4BAA4B;QAC5B,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACK,WAAW;QACjB,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE;YAC5D,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE;YAClE,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE;YAC1D,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE;YACrD,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE;YACpD,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE;gBACxB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YACtC,CAAC;YACD,iBAAiB,EAAE,KAAK,EAAE,OAAgB,EAAE,EAAE;gBAC5C,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAClD,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,sBAAsB;QAC5B,sBAAsB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,YAA+B;QAClD,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,YAA8B;QACzC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,kBAAkB,CAChB,WAAmB,EACnB,QAAsG;QAEtG,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,uBAAuB,CAAC,QAAmB;QACzC,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,KAAc;QAC5B,2EAA2E;QAC3E,kCAAkC;QAClC,gEAAgE;QAChE,MAAM,EAAE,GAAG,IAAI,CAAC,YAA6D,CAAC;QAC9E,EAAE,CAAC,KAAK,GAAG,KAAgC,CAAC;QAC5C,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAE9E,+CAA+C;QAC/C,IAAI,CAAC,gBAAgB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;QAChE,KAAK,CAAC,wBAAwB,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAEvD,+BAA+B;QAC/B,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;YAC3E,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,KAAK,CAAC,2BAA2B,WAAW,qBAAqB,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrG,CAAC;QAED,8BAA8B;QAC9B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;gBAChC,sDAAsD;gBACtD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC;gBAEhF,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC;oBAC1D,OAAO,CAAC,GAAG,CAAC,2CAA2C,IAAI,EAAE,CAAC,CAAC;oBAC/D,OAAO,CAAC,GAAG,CAAC,gDAAgD,IAAI,EAAE,CAAC,CAAC;oBACpE,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;wBAC5B,OAAO,CAAC,GAAG,CAAC,yBAAyB,WAAW,iBAAiB,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACtG,CAAC;gBACH,CAAC;gBAED,KAAK,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAC;gBAClD,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,yCAAyC;QACzC,sCAAsC;QACtC,iCAAiC;QACjC,wBAAwB;QACxB,mDAAmD;QACnD,MAAM;IACR,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAErC,gCAAgC;QAChC,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,IAAI,CAAC,gBAAgB,KAAK,EAAE,EAAE,CAAC;YAC1G,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC1D,KAAK,CAAC,kBAAkB,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,mBAAmB;QACnB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;QAED,8BAA8B;QAC9B,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAEtB,oBAAoB;QACpB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE;gBACzB,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBACxB,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CACF"}
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;IAc3B,YAAY,SAAiC,EAAE;QAC7C,IAAI,CAAC,MAAM,GAAG;YACZ,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI;YAC7B,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,GAAG;YACtC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC;YACzE,cAAc,EAAE,MAAM,CAAC,cAAc,KAAK,KAAK;YAC/C,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,KAAK;SACzC,CAAC;QAEF,yBAAyB;QACzB,IAAI,CAAC,GAAG,GAAG,OAAO,EAAE,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAE7B,qBAAqB;QACrB,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEzC,0CAA0C;QAC1C,IAAI,CAAC,EAAE,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,UAAU,EAAE;YAC5C,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;SACtB,CAAC,CAAC;QAEH,2DAA2D;QAC3D,IAAI,CAAC,UAAU,GAAG,gBAAgB,EAAE,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI,kBAAkB,EAAE,CAAC;QACpE,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAA2B,CAAC;QAEhE,qBAAqB;QACrB,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,CAAC,MAAM,EAAE,EAAE;YAClD,gDAAgD;YAChD,KAAK,IAAI,CAAC,cAAc,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CACtC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,YAAY,EACjB,CAAC,KAAY,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAC9C,IAAI,CAAC,cAAc,CACpB,CAAC;QACF,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAE/E,oDAAoD;QACpD,IAAI,CAAC,cAAc,CAAC,wBAAwB,EAAE,CAAC;QAE/C,qBAAqB;QACrB,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,4BAA4B;QAC5B,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACK,WAAW;QACjB,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,EAAE;YAC5D,mBAAmB,EAAE,IAAI,CAAC,eAAe,CAAC,sBAAsB,EAAE;YAClE,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE;YAC1D,sBAAsB,EAAE,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE;YACjE,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE;YACrD,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE;YACpD,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE;gBACxB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YACtC,CAAC;YACD,iBAAiB,EAAE,KAAK,EAAE,OAAgB,EAAE,EAAE;gBAC5C,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAClD,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,sBAAsB;QAC5B,sBAAsB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,YAA+B;QAClD,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,YAA8B;QACzC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,YAAiC;QACtD,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,kBAAkB,CAChB,WAAmB,EACnB,QAAsG;QAEtG,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,uBAAuB,CAAC,QAAmB;QACzC,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,yBAAyB;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,KAAc;QAC5B,2EAA2E;QAC3E,kCAAkC;QAClC,gEAAgE;QAChE,MAAM,EAAE,GAAG,IAAI,CAAC,YAA6D,CAAC;QAC9E,EAAE,CAAC,KAAK,GAAG,KAAgC,CAAC;QAC5C,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAE9E,+CAA+C;QAC/C,IAAI,CAAC,gBAAgB,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;QAChE,KAAK,CAAC,wBAAwB,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAEvD,+BAA+B;QAC/B,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;YAC3E,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACxB,KAAK,CAAC,2BAA2B,WAAW,qBAAqB,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrG,CAAC;QAED,8BAA8B;QAC9B,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;gBAChC,sDAAsD;gBACtD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,CAAC;gBAEhF,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,sCAAsC,IAAI,EAAE,CAAC,CAAC;oBAC1D,OAAO,CAAC,GAAG,CAAC,2CAA2C,IAAI,EAAE,CAAC,CAAC;oBAC/D,OAAO,CAAC,GAAG,CAAC,gDAAgD,IAAI,EAAE,CAAC,CAAC;oBACpE,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;wBAC5B,OAAO,CAAC,GAAG,CAAC,yBAAyB,WAAW,iBAAiB,kBAAkB,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBACtG,CAAC;gBACH,CAAC;gBAED,KAAK,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAC;gBAClD,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,yCAAyC;QACzC,sCAAsC;QACtC,iCAAiC;QACjC,wBAAwB;QACxB,mDAAmD;QACnD,MAAM;IACR,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAErC,gCAAgC;QAChC,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,IAAI,CAAC,gBAAgB,KAAK,EAAE,EAAE,CAAC;YAC1G,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAC1D,KAAK,CAAC,kBAAkB,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,mBAAmB;QACnB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;QAED,8BAA8B;QAC9B,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAEtB,oBAAoB;QACpB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE;gBACzB,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBACxB,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ import type { Event, Command } from '@auto-engineer/message-bus';
2
+ import type { SettledRegistration, DispatchAction } from '../dsl/types';
3
+ export declare class SettledTracker {
4
+ private settledHandlers;
5
+ private commandToHandlerIds;
6
+ private runningCommands;
7
+ private onDispatchAction?;
8
+ constructor(onDispatchAction?: (action: DispatchAction) => void);
9
+ registerSettledHandler(registration: SettledRegistration): void;
10
+ onCommandStarted(command: Command): void;
11
+ onEventReceived(event: Event): void;
12
+ private isEventFromCommand;
13
+ private isCompletionEvent;
14
+ private checkAndTriggerHandler;
15
+ private cleanupHandler;
16
+ private generateHandlerId;
17
+ getActiveHandlers(): string[];
18
+ }
19
+ //# sourceMappingURL=settled-tracker.d.ts.map
@@ -0,0 +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;AAiBxE,qBAAa,cAAc;IACzB,OAAO,CAAC,eAAe,CAA0C;IACjE,OAAO,CAAC,mBAAmB,CAAuC;IAClE,OAAO,CAAC,eAAe,CAA0E;IACjG,OAAO,CAAC,gBAAgB,CAAC,CAAmC;gBAEhD,gBAAgB,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI;IAI/D,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;IAkB1B,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,sBAAsB;IAwC9B,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,iBAAiB;IAMzB,iBAAiB,IAAI,MAAM,EAAE;CAG9B"}
@@ -0,0 +1,162 @@
1
+ import { getPendingDispatches } from '../dsl/index.js';
2
+ import createDebug from 'debug';
3
+ const debug = createDebug('auto-engineer:server:settled-tracker');
4
+ export class SettledTracker {
5
+ constructor(onDispatchAction) {
6
+ this.settledHandlers = new Map();
7
+ this.commandToHandlerIds = new Map();
8
+ this.runningCommands = new Map();
9
+ this.onDispatchAction = onDispatchAction;
10
+ }
11
+ registerSettledHandler(registration) {
12
+ const handlerId = this.generateHandlerId(registration);
13
+ debug('Registering settled handler:', handlerId, 'for commands:', registration.commandTypes);
14
+ const commandTrackers = new Map();
15
+ for (const commandType of registration.commandTypes) {
16
+ commandTrackers.set(commandType, {
17
+ commandType,
18
+ hasCompleted: false,
19
+ events: [],
20
+ });
21
+ // Track which handlers are interested in this command type
22
+ if (!this.commandToHandlerIds.has(commandType)) {
23
+ this.commandToHandlerIds.set(commandType, new Set());
24
+ }
25
+ this.commandToHandlerIds.get(commandType).add(handlerId);
26
+ }
27
+ this.settledHandlers.set(handlerId, {
28
+ registration,
29
+ commandTrackers,
30
+ });
31
+ }
32
+ onCommandStarted(command) {
33
+ const { type: commandType, correlationId, requestId } = command;
34
+ if (correlationId === undefined ||
35
+ correlationId === null ||
36
+ correlationId === '' ||
37
+ requestId === undefined ||
38
+ requestId === null ||
39
+ requestId === '') {
40
+ debug('Command missing correlation/request ID, cannot track:', commandType);
41
+ return;
42
+ }
43
+ // Track this command execution
44
+ this.runningCommands.set(requestId, { commandType, correlationId });
45
+ debug('Started tracking command:', commandType, 'with requestId:', requestId);
46
+ }
47
+ onEventReceived(event) {
48
+ debug('Received event:', event.type);
49
+ // For each settled handler, check if this event indicates completion of any tracked commands
50
+ for (const [handlerId, handler] of this.settledHandlers) {
51
+ for (const [commandType, tracker] of handler.commandTrackers) {
52
+ if (tracker.hasCompleted)
53
+ continue;
54
+ // Check if this event is related to this command type
55
+ if (this.isEventFromCommand(event.type, commandType)) {
56
+ debug('Event', event.type, 'is related to command', commandType);
57
+ // Always add related events to the tracker
58
+ tracker.events.push(event);
59
+ // Only mark as completed if this is a completion event
60
+ if (this.isCompletionEvent(event.type)) {
61
+ tracker.hasCompleted = true;
62
+ debug('Marked command', commandType, 'as completed for handler', handlerId);
63
+ // Check if all commands for this handler have completed
64
+ this.checkAndTriggerHandler(handlerId, handler);
65
+ }
66
+ else {
67
+ debug('Event', event.type, 'is progress for command', commandType, '- not marking as completed yet');
68
+ }
69
+ }
70
+ }
71
+ }
72
+ }
73
+ isEventFromCommand(eventType, commandType) {
74
+ // Simple heuristic mapping based on common patterns
75
+ const eventToCommandMap = {
76
+ TestsCheckPassed: ['CheckTests'],
77
+ TestsCheckFailed: ['CheckTests'],
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;
88
+ }
89
+ isCompletionEvent(eventType) {
90
+ // Only these events indicate command completion
91
+ const completionEvents = [
92
+ 'TestsCheckPassed',
93
+ 'TestsCheckFailed',
94
+ 'TypeCheckPassed',
95
+ 'TypeCheckFailed',
96
+ 'LintCheckPassed',
97
+ 'LintCheckFailed',
98
+ 'ClientImplemented',
99
+ ];
100
+ return completionEvents.includes(eventType);
101
+ }
102
+ checkAndTriggerHandler(handlerId, handler) {
103
+ const allCompleted = Array.from(handler.commandTrackers.values()).every((tracker) => tracker.hasCompleted);
104
+ if (!allCompleted) {
105
+ debug('Handler', handlerId, 'not ready yet - waiting for more commands to complete');
106
+ return;
107
+ }
108
+ debug('All commands completed for handler', handlerId, '- triggering settled handler');
109
+ // Collect all events grouped by command type
110
+ const eventsByCommandType = {};
111
+ for (const [commandType, tracker] of handler.commandTrackers) {
112
+ eventsByCommandType[commandType] = [...tracker.events];
113
+ }
114
+ try {
115
+ // Execute the handler (DSL already handles enhanced API wrapping)
116
+ debug('Executing settled handler with events:', Object.keys(eventsByCommandType));
117
+ handler.registration.handler(eventsByCommandType);
118
+ // Check for any pending dispatches created by the handler
119
+ const pendingDispatches = getPendingDispatches();
120
+ debug('Found %d pending dispatches after handler execution', pendingDispatches.length);
121
+ if (pendingDispatches.length > 0 && this.onDispatchAction) {
122
+ for (const action of pendingDispatches) {
123
+ debug('Processing pending dispatch action:', action.type);
124
+ this.onDispatchAction(action);
125
+ }
126
+ }
127
+ debug('Settled handler', handlerId, 'executed successfully');
128
+ }
129
+ catch (error) {
130
+ debug('Error executing settled handler', handlerId, ':', error);
131
+ }
132
+ // Clean up this handler since it has been triggered
133
+ this.cleanupHandler(handlerId);
134
+ }
135
+ cleanupHandler(handlerId) {
136
+ const handler = this.settledHandlers.get(handlerId);
137
+ if (!handler)
138
+ return;
139
+ // Remove handler from command type mappings
140
+ for (const commandType of handler.registration.commandTypes) {
141
+ const handlerIds = this.commandToHandlerIds.get(commandType);
142
+ if (handlerIds) {
143
+ handlerIds.delete(handlerId);
144
+ if (handlerIds.size === 0) {
145
+ this.commandToHandlerIds.delete(commandType);
146
+ }
147
+ }
148
+ }
149
+ // Remove the handler itself
150
+ this.settledHandlers.delete(handlerId);
151
+ debug('Cleaned up settled handler:', handlerId);
152
+ }
153
+ generateHandlerId(registration) {
154
+ const commandTypes = registration.commandTypes.join(',');
155
+ const timestamp = Date.now();
156
+ return `settled-${commandTypes}-${timestamp}`;
157
+ }
158
+ getActiveHandlers() {
159
+ return Array.from(this.settledHandlers.keys());
160
+ }
161
+ }
162
+ //# sourceMappingURL=settled-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settled-tracker.js","sourceRoot":"","sources":["../../../src/server/settled-tracker.ts"],"names":[],"mappings":"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"}