UNPKG

taskforce-aiagent

Version:

TaskForce is a modular, open-source, production-ready TypeScript agent framework for orchestrating AI agents, LLM-powered autonomous agents, task pipelines, dynamic toolchains, RAG workflows and memory/retrieval systems.

86 lines (85 loc) 4.6 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getEmbeddingProvider = getEmbeddingProvider; exports.useTaskForceShortVectorMemoryProvider = useTaskForceShortVectorMemoryProvider; exports.useTaskForceLongVectorMemoryProvider = useTaskForceLongVectorMemoryProvider; exports.useTaskForceVectorMemoryProvider = useTaskForceVectorMemoryProvider; exports.MemoryProvider = MemoryProvider; const chalk_1 = __importDefault(require("chalk")); const fakeEmbeddingProvider_js_1 = require("./utils/fakeEmbeddingProvider.js"); const openAIEmbeddingProvider_js_1 = require("./utils/openAIEmbeddingProvider.js"); const taskForceVectorMemoryProvider_js_1 = require("./vectorMemoryProviders/session/taskForceVectorMemoryProvider.js"); const jsonFileVectorMemoryProvider_js_1 = require("./vectorMemoryProviders/long/jsonFileVectorMemoryProvider.js"); const enum_js_1 = require("../configs/enum.js"); const log_helper_js_1 = require("../helpers/log.helper.js"); const langChainVectorMemoryProvider_js_1 = require("./vectorMemoryProviders/session/langChainVectorMemoryProvider.js"); const chromaVectorMemoryProvider_js_1 = require("./vectorMemoryProviders/long/chromaVectorMemoryProvider.js"); const dotenv_1 = __importDefault(require("dotenv")); const huggingFaceEmbeddingProvider_js_1 = require("./utils/huggingFaceEmbeddingProvider.js"); dotenv_1.default.config(); function getEmbeddingProvider() { const providerType = process.env.DEFAULT_EMBEDDING?.toLowerCase(); if (process.env.VERBOSE === "true") { (0, log_helper_js_1.TFLog)(`🧠 Using ${providerType || "fake"}EmbeddingProvider with TaskForceVectorMemoryProvider`, chalk_1.default.cyanBright); } switch (providerType) { case "openai": return new openAIEmbeddingProvider_js_1.OpenAIEmbeddingProvider(); case "huggingface": return new huggingFaceEmbeddingProvider_js_1.HuggingFaceEmbeddingProvider(process.env.HF_EMBEDDING_URL); default: return new fakeEmbeddingProvider_js_1.FakeEmbeddingProvider(); } } function useTaskForceShortVectorMemoryProvider() { return new taskForceVectorMemoryProvider_js_1.TaskForceVectorMemoryProvider(getEmbeddingProvider()); } function useTaskForceLongVectorMemoryProvider(mode = enum_js_1.MemoryMode.Same) { if (mode === enum_js_1.MemoryMode.Seperated) { return (agentName) => agentName ? new jsonFileVectorMemoryProvider_js_1.JsonFileVectorMemoryProvider(getEmbeddingProvider(), `taskforce-db/memory_${agentName}.json`) : new jsonFileVectorMemoryProvider_js_1.JsonFileVectorMemoryProvider(getEmbeddingProvider()); } else { const shared = new jsonFileVectorMemoryProvider_js_1.JsonFileVectorMemoryProvider(getEmbeddingProvider()); return () => shared; } } function useTaskForceVectorMemoryProvider(agentName, scope = enum_js_1.MemoryScope.Short, mode = enum_js_1.MemoryMode.Same) { if (scope === enum_js_1.MemoryScope.None) return undefined; if (scope === enum_js_1.MemoryScope.Short) return useTaskForceShortVectorMemoryProvider(); if (scope === enum_js_1.MemoryScope.Long) { return useTaskForceLongVectorMemoryProvider(mode)(agentName); } } function MemoryProvider(agentName, scope = enum_js_1.MemoryScope.None, mode = enum_js_1.MemoryMode.Same, type = enum_js_1.VectorMemoryProviderType.Local) { if (scope === enum_js_1.MemoryScope.None) return undefined; if (scope === enum_js_1.MemoryScope.Short) { switch (type) { case enum_js_1.VectorMemoryProviderType.LangChain: return new langChainVectorMemoryProvider_js_1.LangChainVectorMemoryProvider(); case enum_js_1.VectorMemoryProviderType.Local: return useTaskForceShortVectorMemoryProvider(); default: return undefined; } } if (scope === enum_js_1.MemoryScope.Long) { switch (type) { case enum_js_1.VectorMemoryProviderType.Local: return useTaskForceVectorMemoryProvider(agentName, scope, mode); case enum_js_1.VectorMemoryProviderType.Chroma: return agentName ? new chromaVectorMemoryProvider_js_1.ChromaVectorMemoryProvider(agentName) : new chromaVectorMemoryProvider_js_1.ChromaVectorMemoryProvider(); default: return undefined; } } }