@auto-engineer/cli 0.9.9 → 0.9.11

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 CHANGED
@@ -1,5 +1,23 @@
1
1
  # @auto-engineer/cli
2
2
 
3
+ ## 0.9.11
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies []:
8
+ - @auto-engineer/file-store@0.9.11
9
+ - @auto-engineer/message-bus@0.9.11
10
+ - @auto-engineer/message-store@0.9.11
11
+
12
+ ## 0.9.10
13
+
14
+ ### Patch Changes
15
+
16
+ - Updated dependencies []:
17
+ - @auto-engineer/file-store@0.9.10
18
+ - @auto-engineer/message-bus@0.9.10
19
+ - @auto-engineer/message-store@0.9.10
20
+
3
21
  ## 0.9.9
4
22
 
5
23
  ### Patch Changes
@@ -1,16 +1,18 @@
1
1
  import type { Command, Event } from '@auto-engineer/message-bus';
2
- import type { EventRegistration, DispatchAction, FoldRegistration, DslRegistration, ConfigDefinition, SettledRegistration, AutoSettledEvents } from './types';
2
+ import type { EventRegistration, DispatchAction, FoldRegistration, DslRegistration, ConfigDefinition, SettledRegistration, SettledHandlerConfig } from './types';
3
3
  /**
4
4
  * Register an event handler that will execute when the specified event occurs
5
5
  */
6
6
  export declare function on<T extends Event>(eventType: string | ((event: T) => void), handler?: (event: T) => Command | Command[] | DispatchAction | void): EventRegistration | void;
7
7
  export declare namespace on {
8
- var settled: <T extends Command, U extends Command = never, V extends Command = never, W extends Command = never, X extends Command = never>(commandTypes: [T, U, V, W, X] extends [Command, never, never, never, never] ? [T["type"]] : [T, U, V, W, X] extends [Command, Command, never, never, never] ? [T["type"], U["type"]] : [T, U, V, W, X] extends [Command, Command, Command, never, never] ? [T["type"], U["type"], V["type"]] : [T, U, V, W, X] extends [Command, Command, Command, Command, never] ? [T["type"], U["type"], V["type"], W["type"]] : [T, U, V, W, X] extends [Command, Command, Command, Command, Command] ? [T["type"], U["type"], V["type"], W["type"], X["type"]] : never, callback: (events: AutoSettledEvents<[T, U, V, W, X] extends [Command, never, never, never, never] ? [T] : [T, U, V, W, X] extends [Command, Command, never, never, never] ? [T, U] : [T, U, V, W, X] extends [Command, Command, Command, never, never] ? [T, U, V] : [T, U, V, W, X] extends [Command, Command, Command, Command, never] ? [T, U, V, W] : [T, U, V, W, X] extends [Command, Command, Command, Command, Command] ? [T, U, V, W, X] : never>) => void) => SettledRegistration;
8
+ var settled: <T extends Command, U extends Command = never, V extends Command = never, W extends Command = never, X extends Command = never>(commandTypes: [T, U, V, W, X] extends [Command, never, never, never, never] ? [T["type"]] : [T, U, V, W, X] extends [Command, Command, never, never, never] ? [T["type"], U["type"]] : [T, U, V, W, X] extends [Command, Command, Command, never, never] ? [T["type"], U["type"], V["type"]] : [T, U, V, W, X] extends [Command, Command, Command, Command, never] ? [T["type"], U["type"], V["type"], W["type"]] : [T, U, V, W, X] extends [Command, Command, Command, Command, Command] ? [T["type"], U["type"], V["type"], W["type"], X["type"]] : never, callbackOrConfig: ((events: [T, U, V, W, X] extends [Command, never, never, never, never] ? { [K in T["type"]]: Event[]; } : [T, U, V, W, X] extends [Command, Command, never, never, never] ? { [K in T["type"] | U["type"]]: Event[]; } : [T, U, V, W, X] extends [Command, Command, Command, never, never] ? { [K in T["type"] | U["type"] | V["type"]]: Event[]; } : [T, U, V, W, X] extends [Command, Command, Command, Command, never] ? { [K in T["type"] | U["type"] | V["type"] | W["type"]]: Event[]; } : [T, U, V, W, X] extends [Command, Command, Command, Command, Command] ? { [K in T["type"] | U["type"] | V["type"] | W["type"] | X["type"]]: Event[]; } : never) => void) | SettledHandlerConfig) => SettledRegistration;
9
9
  }
10
10
  /**
11
11
  * Dispatch a command to the message bus
12
12
  */
13
13
  export declare function dispatch<T extends Command>(command: T): DispatchAction;
14
+ export declare function dispatch<T extends Command>(commandType: T['type'], data: T['data']): Command;
15
+ export declare function dispatch<TDispatchCommands extends Command>(commandTypes: readonly TDispatchCommands['type'][], handler: (events: Record<string, Event[]>, send: <TCommand extends TDispatchCommands>(command: TCommand) => void) => void): SettledHandlerConfig<TDispatchCommands>;
14
16
  export declare namespace dispatch {
15
17
  var parallel: <T extends Command>(commands: T[]) => DispatchAction;
16
18
  var sequence: <T extends Command>(commands: T[]) => DispatchAction;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dsl/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dsl/index.ts"],"names":[],"mappings":"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"}
@@ -29,26 +29,78 @@ export function on(eventType, handler) {
29
29
  /**
30
30
  * Wait for all specified commands to settle and collect their events
31
31
  */
32
- function settled(commandTypes, callback) {
33
- const registration = {
34
- type: 'on-settled',
35
- commandTypes: commandTypes,
36
- handler: callback,
37
- };
38
- registrations.push(registration);
39
- return registration;
32
+ function settled(commandTypes, callbackOrConfig) {
33
+ const commandTypesArray = commandTypes;
34
+ if (typeof callbackOrConfig === 'function') {
35
+ // Backward compatibility: simple callback function
36
+ const registration = {
37
+ type: 'on-settled',
38
+ commandTypes: commandTypesArray,
39
+ handler: callbackOrConfig,
40
+ };
41
+ registrations.push(registration);
42
+ return registration;
43
+ }
44
+ else {
45
+ // Enhanced API with dispatches declaration
46
+ const { dispatches, handler } = callbackOrConfig;
47
+ // Create a wrapper handler that provides a type-safe dispatch function
48
+ const wrappedHandler = (events) => {
49
+ const validatedDispatch = (command) => {
50
+ if (!dispatches.includes(command.type)) {
51
+ throw new Error(`Command type "${command.type}" is not declared in dispatches list`);
52
+ }
53
+ // Create a dispatch action and add it to pending dispatches
54
+ const action = {
55
+ type: 'dispatch',
56
+ command,
57
+ };
58
+ pendingDispatches.push(action);
59
+ };
60
+ handler(events, validatedDispatch);
61
+ };
62
+ const registration = {
63
+ type: 'on-settled',
64
+ commandTypes: commandTypesArray,
65
+ handler: wrappedHandler,
66
+ dispatches,
67
+ };
68
+ registrations.push(registration);
69
+ return registration;
70
+ }
40
71
  }
41
72
  on.settled = settled;
42
- /**
43
- * Dispatch a command to the message bus
44
- */
45
- export function dispatch(command) {
46
- const action = {
47
- type: 'dispatch',
48
- command,
73
+ export function dispatch(commandOrTypeOrTypes, dataOrHandler) {
74
+ // Array pattern for on.settled
75
+ if (Array.isArray(commandOrTypeOrTypes)) {
76
+ const commandTypes = commandOrTypeOrTypes;
77
+ const handler = dataOrHandler;
78
+ return {
79
+ dispatches: commandTypes,
80
+ handler,
81
+ };
82
+ }
83
+ // Object pattern for full command
84
+ if (typeof commandOrTypeOrTypes === 'object' &&
85
+ commandOrTypeOrTypes !== null &&
86
+ !Array.isArray(commandOrTypeOrTypes)) {
87
+ const command = commandOrTypeOrTypes;
88
+ const action = {
89
+ type: 'dispatch',
90
+ command,
91
+ };
92
+ pendingDispatches.push(action);
93
+ return action;
94
+ }
95
+ // String pattern for command type + data - return the command object for event handlers
96
+ const commandType = commandOrTypeOrTypes;
97
+ const data = dataOrHandler;
98
+ const command = {
99
+ type: commandType,
100
+ data,
49
101
  };
50
- pendingDispatches.push(action);
51
- return action;
102
+ // Return the command directly for event handlers to process
103
+ return command;
52
104
  }
53
105
  /**
54
106
  * Dispatch multiple commands in parallel
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dsl/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dsl/index.ts"],"names":[],"mappings":"AAWA,oDAAoD;AACpD,IAAI,aAAa,GAAsB,EAAE,CAAC;AAC1C,IAAI,iBAAiB,GAAqB,EAAE,CAAC;AAE7C;;GAEG;AACH,MAAM,UAAU,EAAE,CAChB,SAAwC,EACxC,OAAmE;IAEnE,iFAAiF;IACjF,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;QACpC,qFAAqF;QACrF,MAAM,YAAY,GAAsB;YACtC,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,EAAE,EAAE,6BAA6B;YAC5C,OAAO,EAAE,SAA0E;SACpF,CAAC;QACF,aAAa,CAAC,IAAI,CAAC,YAA0C,CAAC,CAAC;QAC/D,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,YAAY,GAAsB;YACtC,IAAI,EAAE,IAAI;YACV,SAAS;YACT,OAAO,EAAE,OAAwE;SAClF,CAAC;QACF,aAAa,CAAC,IAAI,CAAC,YAA0C,CAAC,CAAC;QAC/D,OAAO,YAAY,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,OAAO,CAOd,YAUiB,EACjB,gBAcwB;IAExB,MAAM,iBAAiB,GAAG,YAAiC,CAAC;IAE5D,IAAI,OAAO,gBAAgB,KAAK,UAAU,EAAE,CAAC;QAC3C,mDAAmD;QACnD,MAAM,YAAY,GAAwB;YACxC,IAAI,EAAE,YAAY;YAClB,YAAY,EAAE,iBAAiB;YAC/B,OAAO,EAAE,gBAA6D;SACvE,CAAC;QACF,aAAa,CAAC,IAAI,CAAC,YAA0C,CAAC,CAAC;QAC/D,OAAO,YAAY,CAAC;IACtB,CAAC;SAAM,CAAC;QACN,2CAA2C;QAC3C,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC;QAEjD,uEAAuE;QACvE,MAAM,cAAc,GAAG,CAAC,MAA+B,EAAE,EAAE;YACzD,MAAM,iBAAiB,GAAG,CAA2B,OAAiB,EAAQ,EAAE;gBAC9E,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;oBACvC,MAAM,IAAI,KAAK,CAAC,iBAAiB,OAAO,CAAC,IAAI,sCAAsC,CAAC,CAAC;gBACvF,CAAC;gBAED,4DAA4D;gBAC5D,MAAM,MAAM,GAAmB;oBAC7B,IAAI,EAAE,UAAU;oBAChB,OAAO;iBACR,CAAC;gBACF,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,CAAC,CAAC;YAEF,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;QACrC,CAAC,CAAC;QAEF,MAAM,YAAY,GAAwB;YACxC,IAAI,EAAE,YAAY;YAClB,YAAY,EAAE,iBAAiB;YAC/B,OAAO,EAAE,cAAc;YACvB,UAAU;SACX,CAAC;QACF,aAAa,CAAC,IAAI,CAAC,YAA0C,CAAC,CAAC;QAC/D,OAAO,YAAY,CAAC;IACtB,CAAC;AACH,CAAC;AAED,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC;AAcrB,MAAM,UAAU,QAAQ,CACtB,oBAA0D,EAC1D,aAEsG;IAEtG,+BAA+B;IAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACxC,MAAM,YAAY,GAAG,oBAAoB,CAAC;QAC1C,MAAM,OAAO,GAAG,aAGP,CAAC;QAEV,OAAO;YACL,UAAU,EAAE,YAAY;YACxB,OAAO;SACR,CAAC;IACJ,CAAC;IAED,kCAAkC;IAClC,IACE,OAAO,oBAAoB,KAAK,QAAQ;QACxC,oBAAoB,KAAK,IAAI;QAC7B,CAAC,KAAK,CAAC,OAAO,CAAC,oBAAoB,CAAC,EACpC,CAAC;QACD,MAAM,OAAO,GAAG,oBAAyB,CAAC;QAC1C,MAAM,MAAM,GAAmB;YAC7B,IAAI,EAAE,UAAU;YAChB,OAAO;SACR,CAAC;QACF,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,wFAAwF;IACxF,MAAM,WAAW,GAAG,oBAAiC,CAAC;IACtD,MAAM,IAAI,GAAG,aAA0B,CAAC;IAExC,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,WAAW;QACjB,IAAI;KACA,CAAC;IAEP,4DAA4D;IAC5D,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,QAAQ,CAAC,QAAQ,GAAG,CAAoB,QAAa,EAAkB,EAAE;IACvE,MAAM,MAAM,GAAmB;QAC7B,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,QAAqB;KAChC,CAAC;IACF,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;GAEG;AACH,QAAQ,CAAC,QAAQ,GAAG,CAAoB,QAAa,EAAkB,EAAE;IACvE,MAAM,MAAM,GAAmB;QAC7B,IAAI,EAAE,mBAAmB;QACzB,QAAQ,EAAE,QAAqB;KAChC,CAAC;IACF,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;GAEG;AACH,QAAQ,CAAC,MAAM,GAAG,CAAoB,cAA6B,EAAkB,EAAE;IACrF,MAAM,MAAM,GAAmB;QAC7B,IAAI,EAAE,iBAAiB;QACvB,cAAc,EAAE,cAA2C;KAC5D,CAAC;IACF,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/B,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,IAAI,CAClB,SAA+C,EAC/C,OAAmC;IAEnC,+FAA+F;IAC/F,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;QACpC,MAAM,YAAY,GAA2B;YAC3C,IAAI,EAAE,MAAM;YACZ,SAAS,EAAE,EAAE,EAAE,6BAA6B;YAC5C,OAAO,EAAE,SAAS;SACnB,CAAC;QACF,aAAa,CAAC,IAAI,CAAC,YAA0C,CAAC,CAAC;QAC/D,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,YAAY,GAA2B;YAC3C,IAAI,EAAE,MAAM;YACZ,SAAS;YACT,OAAO;SACR,CAAC;QACF,aAAa,CAAC,IAAI,CAAC,YAA0C,CAAC,CAAC;QAC/D,OAAO,YAAY,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,MAAM,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC;IAClC,aAAa,GAAG,EAAE,CAAC;IACnB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,MAAM,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC;IACtC,iBAAiB,GAAG,EAAE,CAAC;IACvB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,MAAwB;IACjD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,24 +1,4 @@
1
1
  import type { Command, Event } from '@auto-engineer/message-bus';
2
- export type ExtractHandlerEvents<T> = T extends {
3
- handle: (...args: unknown[]) => Promise<infer R>;
4
- } ? R : never;
5
- export interface CommandHandlerRegistry {
6
- CheckTests: {
7
- handle: () => Promise<import('@auto-engineer/server-checks').CheckTestsEvents>;
8
- };
9
- CheckTypes: {
10
- handle: () => Promise<import('@auto-engineer/server-checks').CheckTypesEvents>;
11
- };
12
- CheckLint: {
13
- handle: () => Promise<import('@auto-engineer/server-checks').CheckLintEvents>;
14
- };
15
- }
16
- export type AutoCommandEventMap = {
17
- [K in keyof CommandHandlerRegistry]: ExtractHandlerEvents<CommandHandlerRegistry[K]>;
18
- };
19
- export type AutoSettledEvents<T extends readonly Command[]> = {
20
- [K in T[number]['type']]: K extends keyof AutoCommandEventMap ? AutoCommandEventMap[K][] : Event[];
21
- };
22
2
  export interface EventRegistration {
23
3
  type: 'on';
24
4
  eventType: string;
@@ -39,6 +19,11 @@ export interface SettledRegistration {
39
19
  type: 'on-settled';
40
20
  commandTypes: readonly string[];
41
21
  handler: (events: Record<string, Event[]>) => void;
22
+ dispatches?: readonly string[];
23
+ }
24
+ export interface SettledHandlerConfig<TDispatchCommands extends Command = Command> {
25
+ dispatches: readonly TDispatchCommands['type'][];
26
+ handler: (events: Record<string, Event[]>, dispatch: <T extends TDispatchCommands>(command: T) => void) => void;
42
27
  }
43
28
  export type DslRegistration = EventRegistration | DispatchAction | FoldRegistration | SettledRegistration;
44
29
  export interface ConfigDefinition {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/dsl/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAGjE,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAGjH,MAAM,WAAW,sBAAsB;IAErC,UAAU,EAAE;QAAE,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,8BAA8B,EAAE,gBAAgB,CAAC,CAAA;KAAE,CAAC;IAC/F,UAAU,EAAE;QAAE,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,8BAA8B,EAAE,gBAAgB,CAAC,CAAA;KAAE,CAAC;IAC/F,SAAS,EAAE;QAAE,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,8BAA8B,EAAE,eAAe,CAAC,CAAA;KAAE,CAAC;CAC9F;AAGD,MAAM,MAAM,mBAAmB,GAAG;KAC/B,CAAC,IAAI,MAAM,sBAAsB,GAAG,oBAAoB,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;CACrF,CAAC;AAGF,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,IAAI;KAC3D,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE;CACnG,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,GAAG,OAAO,EAAE,GAAG,cAAc,GAAG,IAAI,CAAC;CACxE;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;IACjF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,KAAK;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;CACpD;AAED,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG,cAAc,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;AAE1G,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/dsl/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,OAAO,GAAG,OAAO,EAAE,GAAG,cAAc,GAAG,IAAI,CAAC;CACxE;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,UAAU,GAAG,mBAAmB,GAAG,mBAAmB,GAAG,iBAAiB,CAAC;IACjF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,KAAK;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,YAAY,CAAC;IACnB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IACnD,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB,CAAC,iBAAiB,SAAS,OAAO,GAAG,OAAO;IAC/E,UAAU,EAAE,SAAS,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;IACjD,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,SAAS,iBAAiB,EAAE,OAAO,EAAE,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC;CACjH;AAED,MAAM,MAAM,eAAe,GAAG,iBAAiB,GAAG,cAAc,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;AAE1G,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB"}
@@ -1,3 +1,3 @@
1
1
  export { on, dispatch, fold, autoConfig } from './dsl/index';
2
- export type { EventRegistration, DispatchAction, FoldRegistration, DslRegistration, ConfigDefinition, } from './dsl/types';
2
+ export type { EventRegistration, DispatchAction, FoldRegistration, DslRegistration, ConfigDefinition, SettledHandlerConfig, } from './dsl/types';
3
3
  //# sourceMappingURL=dsl-exports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dsl-exports.d.ts","sourceRoot":"","sources":["../../src/dsl-exports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7D,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GACjB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"dsl-exports.d.ts","sourceRoot":"","sources":["../../src/dsl-exports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7D,YAAY,EACV,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,aAAa,CAAC"}
@@ -1,3 +1,3 @@
1
1
  // Export only the DSL functions for use in auto.config.ts
2
- export { on, dispatch, fold, autoConfig } from './dsl/index';
2
+ export { on, dispatch, fold, autoConfig } from './dsl/index.js';
3
3
  //# sourceMappingURL=dsl-exports.js.map
package/dist/src/index.js CHANGED
@@ -6,14 +6,14 @@ import * as path from 'path';
6
6
  import * as fs from 'fs';
7
7
  import { fileURLToPath } from 'url';
8
8
  import Debug from 'debug';
9
- import { loadConfig, validateConfig } from './utils/config';
10
- import { handleError } from './utils/errors';
11
- import { createOutput } from './utils/terminal';
12
- import { Analytics } from './utils/analytics';
13
- import { PluginLoader } from './plugin-loader';
9
+ import { loadConfig, validateConfig } from './utils/config.js';
10
+ import { handleError } from './utils/errors.js';
11
+ import { createOutput } from './utils/terminal.js';
12
+ import { Analytics } from './utils/analytics.js';
13
+ import { PluginLoader } from './plugin-loader.js';
14
14
  import getPort, { portNumbers } from 'get-port';
15
15
  // Export DSL functions for use in auto.config.ts
16
- export { on, dispatch, fold, autoConfig } from './dsl/index';
16
+ export { on, dispatch, fold, autoConfig } from './dsl/index.js';
17
17
  const debug = Debug('auto-engineer:cli');
18
18
  // Get version from package.json - works in both dev and production
19
19
  const getVersion = () => {
@@ -389,8 +389,8 @@ const startMessageBusServer = async () => {
389
389
  return;
390
390
  }
391
391
  serverStarted = true;
392
- const { MessageBusServer } = await import('./server/server');
393
- const { loadMessageBusConfig } = await import('./server/config-loader');
392
+ const { MessageBusServer } = await import('./server/server.js');
393
+ const { loadMessageBusConfig } = await import('./server/config-loader.js');
394
394
  console.log(chalk.cyan('Starting Auto Engineer Message Bus Server...'));
395
395
  // Check for config file
396
396
  let configPath = path.resolve(process.cwd(), 'auto.config.ts');
@@ -1,6 +1,6 @@
1
1
  import createJiti from 'jiti';
2
2
  import createDebug from 'debug';
3
- import { on, dispatch, fold, getRegistrations, getPendingDispatches } from '../dsl';
3
+ import { on, dispatch, fold, getRegistrations, getPendingDispatches } from '../dsl/index.js';
4
4
  const debug = createDebug('auto-engineer:server:config');
5
5
  let configLoading = false;
6
6
  /**
@@ -44,7 +44,7 @@ export async function loadMessageBusConfig(configPath, server) {
44
44
  if (config.plugins !== undefined && config.plugins.length > 0) {
45
45
  try {
46
46
  debug('Loading plugins for metadata:', config.plugins);
47
- const { PluginLoader } = await import('../plugin-loader');
47
+ const { PluginLoader } = await import('../plugin-loader.js');
48
48
  const pluginLoader = new PluginLoader();
49
49
  await pluginLoader.loadPlugins(configPath);
50
50
  // Register unified command handlers from plugin loader
@@ -1,5 +1,5 @@
1
1
  import createDebug from 'debug';
2
- import { posix } from '../utils/path';
2
+ import { posix } from '../utils/path.js';
3
3
  const debug = createDebug('auto-engineer:file-syncer:dts');
4
4
  export async function readJsonIfExists(vfs, p) {
5
5
  try {
@@ -2,10 +2,10 @@ import chokidar from 'chokidar';
2
2
  import path from 'path';
3
3
  import createDebug from 'debug';
4
4
  import { NodeFileStore } from '@auto-engineer/file-store';
5
- import { resolveSyncFileSet } from './sync/resolveSyncFileSet';
6
- import { loadAutoConfig } from '../config-loader';
7
- import { md5, readBase64, statSize } from './utils/hash';
8
- import { toWirePath, fromWirePath, rebuildWirePathCache } from './utils/path';
5
+ import { resolveSyncFileSet } from './sync/resolveSyncFileSet.js';
6
+ import { loadAutoConfig } from '../config-loader.js';
7
+ import { md5, readBase64, statSize } from './utils/hash.js';
8
+ import { toWirePath, fromWirePath, rebuildWirePathCache } from './utils/path.js';
9
9
  const debug = createDebug('cli:file-syncer');
10
10
  export class FileSyncer {
11
11
  constructor(io, watchDir = '.', _extensions) {
@@ -1 +1 @@
1
- {"version":3,"file":"resolveSyncFileSet.d.ts","sourceRoot":"","sources":["../../../../../src/server/file-syncer/sync/resolveSyncFileSet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AA8B1D,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,wBA8C3G"}
1
+ {"version":3,"file":"resolveSyncFileSet.d.ts","sourceRoot":"","sources":["../../../../../src/server/file-syncer/sync/resolveSyncFileSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AA8B1D,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,wBAqD3G"}
@@ -1,7 +1,6 @@
1
- import { getFlows } from '@auto-engineer/flow';
2
- import { collectBareImportsFromFiles } from '../discovery/bareImports';
3
- import { nmRootsForBases, probeEntryDtsForPackagesFromRoots } from '../discovery/dts';
4
- import { dirOf, logArray, pkgNameFromPath, scorePathForDedupe, uniq } from '../utils/path';
1
+ import { collectBareImportsFromFiles } from '../discovery/bareImports.js';
2
+ import { nmRootsForBases, probeEntryDtsForPackagesFromRoots } from '../discovery/dts.js';
3
+ import { dirOf, logArray, pkgNameFromPath, scorePathForDedupe, uniq } from '../utils/path.js';
5
4
  function flattenPaths(x) {
6
5
  if (!x)
7
6
  return [];
@@ -30,17 +29,25 @@ function stableCandidateNmRoots(projectRoot) {
30
29
  export async function resolveSyncFileSet(opts) {
31
30
  const { vfs, watchDir, projectRoot } = opts;
32
31
  try {
33
- const flows = await getFlows({ vfs, root: watchDir });
34
- const files = flattenPaths(flows.vfsFiles);
32
+ let flows = null;
33
+ try {
34
+ const flowPackage = '@auto-engineer/flow';
35
+ const flowModule = (await import(flowPackage));
36
+ flows = await flowModule.getFlows({ vfs, root: watchDir });
37
+ }
38
+ catch {
39
+ console.warn('[sync] @auto-engineer/flow not available, using fallback mode');
40
+ }
41
+ const files = flows !== null ? flattenPaths(flows.vfsFiles) : [];
35
42
  const baseDirs = uniq([projectRoot, ...files.map(dirOf)]);
36
43
  const dynamicRoots = nmRootsForBases(baseDirs);
37
44
  const fallbackRoots = stableCandidateNmRoots(projectRoot);
38
45
  const nmRoots = uniq([...dynamicRoots, ...fallbackRoots]);
39
46
  // Gather externals from flow graph + bare imports in source files
40
- const externalsFromFlows = flows.externals ?? [];
47
+ const externalsFromFlows = flows?.externals ?? [];
41
48
  const extraPkgs = await collectBareImportsFromFiles(files, vfs);
42
49
  const externals = Array.from(new Set([...externalsFromFlows, ...extraPkgs]));
43
- const dtsFromGraph = flattenPaths(flows.typings);
50
+ const dtsFromGraph = flows !== null ? flattenPaths(flows.typings) : [];
44
51
  const dtsFromProbe = await probeEntryDtsForPackagesFromRoots(vfs, nmRoots, externals);
45
52
  // Merge & prefer non-.pnpm & shorter paths for stability
46
53
  const allDts = Array.from(new Set([...dtsFromGraph, ...dtsFromProbe]));
@@ -51,26 +58,29 @@ export async function resolveSyncFileSet(opts) {
51
58
  return pa - pb;
52
59
  return a.length - b.length;
53
60
  });
54
- // Keep only ONE entry .d.ts per npm package (choose best-scoring path)
55
- const bestByPkg = new Map();
56
- for (const p of allDts) {
57
- const pkg = pkgNameFromPath(p);
58
- if (pkg === null)
59
- continue;
60
- const prev = bestByPkg.get(pkg);
61
- if (prev === undefined || scorePathForDedupe(p) < scorePathForDedupe(prev)) {
62
- bestByPkg.set(pkg, p);
63
- }
64
- }
65
- const dts = [...bestByPkg.values()];
61
+ const dts = dedupeTypeDefinitionsByPackage(allDts);
66
62
  logArray('files', files);
67
63
  logArray('dts', dts);
68
64
  logArray('externals', externals);
69
65
  return new Set([...files, ...dts]);
70
66
  }
71
67
  catch (err) {
72
- console.error('[sync] getFlows FAILED:', err);
68
+ console.error('[sync] resolveSyncFileSet FAILED:', err);
73
69
  return new Set();
74
70
  }
75
71
  }
72
+ function dedupeTypeDefinitionsByPackage(allDts) {
73
+ // Keep only ONE entry .d.ts per npm package (choose best-scoring path)
74
+ const bestByPkg = new Map();
75
+ for (const p of allDts) {
76
+ const pkg = pkgNameFromPath(p);
77
+ if (pkg === null)
78
+ continue;
79
+ const prev = bestByPkg.get(pkg);
80
+ if (prev === undefined || scorePathForDedupe(p) < scorePathForDedupe(prev)) {
81
+ bestByPkg.set(pkg, p);
82
+ }
83
+ }
84
+ return [...bestByPkg.values()];
85
+ }
76
86
  //# sourceMappingURL=resolveSyncFileSet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolveSyncFileSet.js","sourceRoot":"","sources":["../../../../../src/server/file-syncer/sync/resolveSyncFileSet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolveSyncFileSet.js","sourceRoot":"","sources":["../../../../../src/server/file-syncer/sync/resolveSyncFileSet.ts"],"names":[],"mappings":"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"}