@nomyx/assistant
Version:
A powerful assistant library and cli for your AI projects. works with Vertex AI (Claude and Gemini)
42 lines (41 loc) • 1.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.BaseProvider = void 0;
class BaseProvider {
constructor(logger) {
this.middleware = [];
this.plugins = [];
this.logger = logger;
}
use(middleware) {
this.middleware.push(middleware);
}
registerPlugin(plugin) {
this.plugins.push(plugin);
plugin.initialize(this);
}
async applyMiddleware(messages) {
let processedMessages = messages;
for (const middleware of this.middleware) {
processedMessages = await middleware.preProcess(processedMessages);
}
return processedMessages;
}
async applyMiddlewareToResponse(response) {
let processedResponse = response;
for (const middleware of this.middleware) {
processedResponse = await middleware.postProcess(processedResponse);
}
return processedResponse;
}
async applyMiddlewareToToolCalls(toolCalls) {
let processedToolCalls = toolCalls;
for (const middleware of this.middleware) {
if (middleware.processToolCalls) {
processedToolCalls = await middleware.processToolCalls(processedToolCalls);
}
}
return processedToolCalls;
}
}
exports.BaseProvider = BaseProvider;