@typescript-agent-harness/core 0.20.0 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/context.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { EventBus } from "./event-bus.js";
2
- import type { EventHandler, EventPayload, Unsubscribe } from "./events.js";
2
+ import type { EventHandler, EventPayload, Interceptor, Unsubscribe } from "./events.js";
3
3
  import { type ServiceKey } from "./service.js";
4
4
  export interface Context {
5
5
  readonly runtimeId: string;
@@ -8,6 +8,8 @@ export interface Context {
8
8
  provide<T>(key: ServiceKey<T>, value: T): void;
9
9
  emit<TName extends string>(type: TName, payload: EventPayload<TName>): Promise<void>;
10
10
  on<TName extends string>(type: TName, handler: EventHandler<EventPayload<TName>>): Unsubscribe;
11
+ intercept<TPayload = unknown, TResult = unknown>(name: string, handler: Interceptor<TPayload, TResult>): Unsubscribe;
12
+ waterfall<TPayload, TResult>(name: string, payload: TPayload, final: (payload: TPayload) => Promise<TResult>): Promise<TResult>;
11
13
  }
12
14
  export declare class RuntimeContext implements Context {
13
15
  readonly runtimeId: string;
@@ -19,6 +21,8 @@ export declare class RuntimeContext implements Context {
19
21
  provide<T>(key: ServiceKey<T>, value: T): void;
20
22
  emit<TName extends string>(type: TName, payload: EventPayload<TName>): Promise<void>;
21
23
  on<TName extends string>(type: TName, handler: EventHandler<EventPayload<TName>>): Unsubscribe;
24
+ intercept<TPayload = unknown, TResult = unknown>(name: string, handler: Interceptor<TPayload, TResult>): Unsubscribe;
25
+ waterfall<TPayload, TResult>(name: string, payload: TPayload, final: (payload: TPayload) => Promise<TResult>): Promise<TResult>;
22
26
  /** Internal: wipe service registry on stop. */
23
27
  clearServices(): void;
24
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAE9B,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAE7C,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAE/C,IAAI,CAAC,KAAK,SAAS,MAAM,EACvB,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,GAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,EAAE,CAAC,KAAK,SAAS,MAAM,EACrB,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GACzC,WAAW,CAAC;CAChB;AAED,qBAAa,cAAe,YAAW,OAAO;IAI1C,QAAQ,CAAC,SAAS,EAAE,MAAM;IAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG;IAJtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;gBAG5C,SAAS,EAAE,MAAM,EACT,GAAG,EAAE,QAAQ;IAGhC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;IAO7B,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS;IAI5C,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAOxC,IAAI,CAAC,KAAK,SAAS,MAAM,EAC7B,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,GAC3B,OAAO,CAAC,IAAI,CAAC;IAIhB,EAAE,CAAC,KAAK,SAAS,MAAM,EACrB,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GACzC,WAAW;IAId,+CAA+C;IAC/C,aAAa,IAAI,IAAI;CAGtB"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,EACZ,MAAM,aAAa,CAAC;AACrB,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAE9B,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAE7C,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAE/C,IAAI,CAAC,KAAK,SAAS,MAAM,EACvB,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,GAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,EAAE,CAAC,KAAK,SAAS,MAAM,EACrB,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GACzC,WAAW,CAAC;IAEf,SAAS,CAAC,QAAQ,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EAC7C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,GACtC,WAAW,CAAC;IAEf,SAAS,CAAC,QAAQ,EAAE,OAAO,EACzB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,GAC7C,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAED,qBAAa,cAAe,YAAW,OAAO;IAI1C,QAAQ,CAAC,SAAS,EAAE,MAAM;IAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG;IAJtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA8B;gBAG5C,SAAS,EAAE,MAAM,EACT,GAAG,EAAE,QAAQ;IAGhC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC;IAO7B,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS;IAI5C,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAOxC,IAAI,CAAC,KAAK,SAAS,MAAM,EAC7B,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,GAC3B,OAAO,CAAC,IAAI,CAAC;IAIhB,EAAE,CAAC,KAAK,SAAS,MAAM,EACrB,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,GACzC,WAAW;IAId,SAAS,CAAC,QAAQ,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EAC7C,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,GACtC,WAAW;IAId,SAAS,CAAC,QAAQ,EAAE,OAAO,EACzB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,GAC7C,OAAO,CAAC,OAAO,CAAC;IAInB,+CAA+C;IAC/C,aAAa,IAAI,IAAI;CAGtB"}
package/dist/context.js CHANGED
@@ -29,6 +29,12 @@ export class RuntimeContext {
29
29
  on(type, handler) {
30
30
  return this.bus.on(type, handler);
31
31
  }
32
+ intercept(name, handler) {
33
+ return this.bus.intercept(name, handler);
34
+ }
35
+ waterfall(name, payload, final) {
36
+ return this.bus.waterfall(name, payload, final);
37
+ }
32
38
  /** Internal: wipe service registry on stop. */
33
39
  clearServices() {
34
40
  this.services.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAM1C,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,GAErB,MAAM,cAAc,CAAC;AAsBtB,MAAM,OAAO,cAAc;IAId;IACQ;IAJF,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IAEvD,YACW,SAAiB,EACT,GAAa;QADrB,cAAS,GAAT,SAAS,CAAQ;QACT,QAAG,GAAH,GAAG,CAAU;IAC7B,CAAC;IAEJ,GAAG,CAAI,GAAkB;QACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAM,CAAC;IACxC,CAAC;IAED,MAAM,CAAI,GAAkB;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAkB,CAAC;IACpD,CAAC;IAED,OAAO,CAAI,GAAkB,EAAE,KAAQ;QACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,2BAA2B,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,IAAI,CACR,IAAW,EACX,OAA4B;QAE5B,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,EAAE,CACA,IAAW,EACX,OAA0C;QAE1C,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,+CAA+C;IAC/C,aAAa;QACX,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACF"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAO1C,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,GAErB,MAAM,cAAc,CAAC;AAiCtB,MAAM,OAAO,cAAc;IAId;IACQ;IAJF,QAAQ,GAAG,IAAI,GAAG,EAAmB,CAAC;IAEvD,YACW,SAAiB,EACT,GAAa;QADrB,cAAS,GAAT,SAAS,CAAQ;QACT,QAAG,GAAH,GAAG,CAAU;IAC7B,CAAC;IAEJ,GAAG,CAAI,GAAkB;QACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAM,CAAC;IACxC,CAAC;IAED,MAAM,CAAI,GAAkB;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAkB,CAAC;IACpD,CAAC;IAED,OAAO,CAAI,GAAkB,EAAE,KAAQ;QACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,2BAA2B,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,IAAI,CACR,IAAW,EACX,OAA4B;QAE5B,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,EAAE,CACA,IAAW,EACX,OAA0C;QAE1C,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,SAAS,CACP,IAAY,EACZ,OAAuC;QAEvC,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,SAAS,CACP,IAAY,EACZ,OAAiB,EACjB,KAA8C;QAE9C,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IAED,+CAA+C;IAC/C,aAAa;QACX,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACF"}
@@ -1,12 +1,17 @@
1
- import type { EventHandler, Unsubscribe } from "./events.js";
1
+ import type { EventHandler, Interceptor, Unsubscribe } from "./events.js";
2
2
  export declare class EventBus {
3
3
  private readonly handlers;
4
+ private readonly interceptors;
4
5
  on<TPayload = unknown>(event: string, handler: EventHandler<TPayload>): Unsubscribe;
5
6
  /**
6
7
  * Emit an event and await all handlers sequentially.
7
8
  * Sequential await keeps plugin side-effects predictable in Phase 1.
8
9
  */
9
10
  emit(event: string, payload?: unknown): Promise<void>;
11
+ /** Register a waterfall interceptor. Earlier registrations run outermost. */
12
+ intercept<TPayload = unknown, TResult = unknown>(event: string, handler: Interceptor<TPayload, TResult>): Unsubscribe;
13
+ /** Run `final` wrapped by every interceptor of `event`, in registration order. */
14
+ waterfall<TPayload, TResult>(event: string, payload: TPayload, final: (payload: TPayload) => Promise<TResult>): Promise<TResult>;
10
15
  clear(): void;
11
16
  }
12
17
  //# sourceMappingURL=event-bus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../src/event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE7D,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwC;IAEjE,EAAE,CAAC,QAAQ,GAAG,OAAO,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,GAC9B,WAAW;IAgBd;;;OAGG;IACG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3D,KAAK,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../src/event-bus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1E,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwC;IACjE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoC;IAEjE,EAAE,CAAC,QAAQ,GAAG,OAAO,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,GAC9B,WAAW;IAgBd;;;OAGG;IACG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3D,6EAA6E;IAC7E,SAAS,CAAC,QAAQ,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,EAC7C,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,GACtC,WAAW;IAed,kFAAkF;IAC5E,SAAS,CAAC,QAAQ,EAAE,OAAO,EAC/B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,GAC7C,OAAO,CAAC,OAAO,CAAC;IAUnB,KAAK,IAAI,IAAI;CAId"}
package/dist/event-bus.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export class EventBus {
2
2
  handlers = new Map();
3
+ interceptors = new Map();
3
4
  on(event, handler) {
4
5
  let set = this.handlers.get(event);
5
6
  if (!set) {
@@ -26,8 +27,31 @@ export class EventBus {
26
27
  await handler(payload);
27
28
  }
28
29
  }
30
+ /** Register a waterfall interceptor. Earlier registrations run outermost. */
31
+ intercept(event, handler) {
32
+ let list = this.interceptors.get(event);
33
+ if (!list) {
34
+ list = [];
35
+ this.interceptors.set(event, list);
36
+ }
37
+ list.push(handler);
38
+ return () => {
39
+ const i = list.indexOf(handler);
40
+ if (i >= 0)
41
+ list.splice(i, 1);
42
+ if (list.length === 0)
43
+ this.interceptors.delete(event);
44
+ };
45
+ }
46
+ /** Run `final` wrapped by every interceptor of `event`, in registration order. */
47
+ async waterfall(event, payload, final) {
48
+ const chain = [...(this.interceptors.get(event) ?? [])];
49
+ const dispatch = (i, p) => i < chain.length ? chain[i](p, (next) => dispatch(i + 1, next)) : final(p);
50
+ return dispatch(0, payload);
51
+ }
29
52
  clear() {
30
53
  this.handlers.clear();
54
+ this.interceptors.clear();
31
55
  }
32
56
  }
33
57
  //# sourceMappingURL=event-bus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../src/event-bus.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,QAAQ;IACF,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEjE,EAAE,CACA,KAAa,EACb,OAA+B;QAE/B,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,OAAuB,CAAC,CAAC;QAEjC,OAAO,GAAG,EAAE;YACV,GAAI,CAAC,MAAM,CAAC,OAAuB,CAAC,CAAC;YACrC,IAAI,GAAI,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,OAAiB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAEnC,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACF"}
1
+ {"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../src/event-bus.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,QAAQ;IACF,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;IAChD,YAAY,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEjE,EAAE,CACA,KAAa,EACb,OAA+B;QAE/B,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,OAAuB,CAAC,CAAC;QAEjC,OAAO,GAAG,EAAE;YACV,GAAI,CAAC,MAAM,CAAC,OAAuB,CAAC,CAAC;YACrC,IAAI,GAAI,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBACpB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,KAAa,EAAE,OAAiB;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO;QAEnC,KAAK,MAAM,OAAO,IAAI,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,SAAS,CACP,KAAa,EACb,OAAuC;QAEvC,IAAI,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,GAAG,EAAE,CAAC;YACV,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,OAAsB,CAAC,CAAC;QAElC,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,GAAG,IAAK,CAAC,OAAO,CAAC,OAAsB,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,IAAI,IAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1D,CAAC,CAAC;IACJ,CAAC;IAED,kFAAkF;IAClF,KAAK,CAAC,SAAS,CACb,KAAa,EACb,OAAiB,EACjB,KAA8C;QAE9C,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAGnD,CAAC;QACJ,MAAM,QAAQ,GAAG,CAAC,CAAS,EAAE,CAAW,EAAoB,EAAE,CAC5D,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9E,OAAO,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;CACF"}
package/dist/events.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export type EventHandler<TPayload = unknown> = (payload: TPayload) => void | Promise<void>;
2
2
  export type Unsubscribe = () => void;
3
+ /** Waterfall handler: call `next` to delegate, or return without it to short-circuit. */
4
+ export type Interceptor<TPayload = unknown, TResult = unknown> = (payload: TPayload, next: (payload: TPayload) => Promise<TResult>) => Promise<TResult>;
3
5
  export interface RuntimeEventMap {
4
6
  "runtime.starting": {
5
7
  runtimeId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,CAAC,QAAQ,GAAG,OAAO,IAAI,CAC7C,OAAO,EAAE,QAAQ,KACd,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAErC,MAAM,WAAW,eAAe;IAC9B,kBAAkB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,iBAAiB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,kBAAkB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,iBAAiB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,cAAc,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,gBAAgB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACpC;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC;AAEnD,MAAM,MAAM,YAAY,CAAC,KAAK,SAAS,MAAM,IAC3C,KAAK,SAAS,cAAc,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;AAElE;;;GAGG;AACH,MAAM,MAAM,YAAY,GACpB;KACG,CAAC,IAAI,cAAc,GAAG;QACrB,IAAI,EAAE,CAAC,CAAC;QACR,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;KAC7B;CACF,CAAC,cAAc,CAAC,GACjB;IACE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,CAAC,QAAQ,GAAG,OAAO,IAAI,CAC7C,OAAO,EAAE,QAAQ,KACd,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAErC,yFAAyF;AACzF,MAAM,MAAM,WAAW,CAAC,QAAQ,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,CAC/D,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,KAC1C,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,MAAM,WAAW,eAAe;IAC9B,kBAAkB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,iBAAiB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,kBAAkB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,iBAAiB,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACzC,cAAc,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,gBAAgB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACpC;AAED,MAAM,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC;AAEnD,MAAM,MAAM,YAAY,CAAC,KAAK,SAAS,MAAM,IAC3C,KAAK,SAAS,cAAc,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;AAElE;;;GAGG;AACH,MAAM,MAAM,YAAY,GACpB;KACG,CAAC,IAAI,cAAc,GAAG;QACrB,IAAI,EAAE,CAAC,CAAC;QACR,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;KAC7B;CACF,CAAC,cAAc,CAAC,GACjB;IACE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -3,5 +3,5 @@ export { type Context, RuntimeContext } from "./context.js";
3
3
  export { type Plugin, type PluginFactory } from "./plugin.js";
4
4
  export { createServiceKey, ServiceAlreadyProvidedError, ServiceNotFoundError, type ServiceKey, } from "./service.js";
5
5
  export { EventBus } from "./event-bus.js";
6
- export type { EventHandler, EventPayload, KnownEventName, RuntimeEvent, RuntimeEventMap, Unsubscribe, } from "./events.js";
6
+ export type { EventHandler, EventPayload, Interceptor, KnownEventName, RuntimeEvent, RuntimeEventMap, Unsubscribe, } from "./events.js";
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,KAAK,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EACL,gBAAgB,EAChB,2BAA2B,EAC3B,oBAAoB,EACpB,KAAK,UAAU,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,eAAe,EACf,WAAW,GACZ,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,KAAK,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EACL,gBAAgB,EAChB,2BAA2B,EAC3B,oBAAoB,EACpB,KAAK,UAAU,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,cAAc,EACd,YAAY,EACZ,eAAe,EACf,WAAW,GACZ,MAAM,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typescript-agent-harness/core",
3
- "version": "0.20.0",
3
+ "version": "0.22.0",
4
4
  "description": "Agent Runtime core: Runtime, Plugin, Context, Service, EventBus",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",