@aksolab/recall
Version:
A memory management package for AI SDK memory functionality
101 lines (100 loc) • 3.91 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Recall = void 0;
__exportStar(require("./memoryManager"), exports);
__exportStar(require("./storageProviders/storage-provider"), exports);
__exportStar(require("./constants"), exports);
__exportStar(require("./types"), exports);
__exportStar(require("./ai"), exports);
const memoryManager_1 = require("./memoryManager");
const constants_1 = require("./constants");
const ai_1 = require("./ai");
class Recall {
memoryManager;
_tools = {};
constructor(config) {
const { storageProvider, archiveProvider, openaiApiKey, coreBlocks = constants_1.DEFAULT_CORE_BLOCKS, memoryKey, threadId = 'default', previousState, memoryOptions = {} } = config;
const { chatTokenLimit, maxContextSize, coreBlockTokenLimit } = memoryOptions;
this.memoryManager = new memoryManager_1.MemoryManager(storageProvider, archiveProvider, openaiApiKey, memoryKey, threadId, maxContextSize, coreBlockTokenLimit, chatTokenLimit);
// Initialize the session
this.initializeSession(coreBlocks, previousState);
}
async initializeSession(coreBlocks, previousState) {
// Initialize memory manager
await this.memoryManager.initialize(previousState);
// Initialize core blocks with default content
for (const block of coreBlocks) {
const existingMemory = await this.memoryManager.getCoreMemory();
const existingEntry = existingMemory?.[block.key];
if (!existingEntry) {
await this.memoryManager.updateCoreMemory(block.key, block?.defaultContent ?? '', block.description);
}
}
// Initialize tools
this._tools = await (0, ai_1.createTools)(this.memoryManager);
}
// ChatSession interface methods
async chatHistory() {
return this.memoryManager.getChatHistory();
}
async addMessages(messages) {
return this.memoryManager.addMessages(messages);
}
/**
* @deprecated Use {@link addMessages} instead. This method will be removed in the next major version.
* @example
* // Instead of:
* await recall.addUserMessage(message);
*
* // Use:
* await recall.addMessages(message);
*/
async addUserMessage(message) {
return this.addMessages(message);
}
/**
* @deprecated Use {@link addMessages} instead. This method will be removed in the next major version.
* @example
* // Instead of:
* await recall.addAIMessage(message);
*
* // Use:
* await recall.addMessages(message);
*/
async addAIMessage(message) {
return this.addMessages(message);
}
/**
* @deprecated Use {@link addMessages} instead. This method will be removed in the next major version.
* @example
* // Instead of:
* await recall.addAIMessages(messages);
*
* // Use:
* await recall.addMessages(messages);
*/
async addAIMessages(messages) {
return this.addMessages(messages);
}
async getCoreBlocks() {
return this.memoryManager.getCoreMemory();
}
get tools() {
return this._tools;
}
}
exports.Recall = Recall;