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
JavaScript
;
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;
}
}
}