UNPKG

@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
"use strict"; 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;