From 9191cfd281f25e69a3c1b9f40f743af3a40194f5 Mon Sep 17 00:00:00 2001 From: Philipp Burckhardt Date: Wed, 28 Jun 2023 13:58:45 -0400 Subject: [PATCH] feat: add emitter to agentic instance --- legacy/packages/core/src/agentic.ts | 7 +++++++ legacy/packages/core/src/events/emitters.ts | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/legacy/packages/core/src/agentic.ts b/legacy/packages/core/src/agentic.ts index 205f73d6..cbae5be4 100644 --- a/legacy/packages/core/src/agentic.ts +++ b/legacy/packages/core/src/agentic.ts @@ -1,3 +1,4 @@ +import { EventEmitter } from 'eventemitter3' import defaultKy from 'ky' import { SetOptional } from 'type-fest' @@ -14,6 +15,7 @@ export class Agentic { protected _ky: types.KyInstance protected _logger: types.Logger protected _taskTracker: TerminalTaskTracker + protected _eventEmitter: EventEmitter protected _openai?: types.openai.OpenAIClient protected _anthropic?: types.anthropic.Client @@ -52,6 +54,7 @@ export class Agentic { this._ky = opts.ky ?? defaultKy this._logger = opts.logger ?? defaultLogger this._taskTracker = opts.taskTracker ?? defaultTaskTracker + this._eventEmitter = new EventEmitter() this._openaiModelDefaults = { provider: 'openai', @@ -106,6 +109,10 @@ export class Agentic { return this._taskTracker } + public get eventEmitter(): EventEmitter { + return this._eventEmitter + } + public get idGeneratorFn(): types.IDGeneratorFunction { return this._idGeneratorFn } diff --git a/legacy/packages/core/src/events/emitters.ts b/legacy/packages/core/src/events/emitters.ts index 5ba5abf6..1a35beda 100644 --- a/legacy/packages/core/src/events/emitters.ts +++ b/legacy/packages/core/src/events/emitters.ts @@ -34,6 +34,10 @@ export class TaskEventEmitter< } }) this._agentic.taskTracker.addEvent(event) + + const name = `${this._task.nameForModel}:${String(taskStatus)}` + this._agentic.eventEmitter.emit(name, event) + return super.emit(taskStatus, event) } }