@just-every/ensemble
Version:
LLM provider abstraction layer with unified streaming interface
74 lines • 2.28 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.setEnsembleLogger = setEnsembleLogger;
exports.addEnsembleLogger = addEnsembleLogger;
exports.removeEnsembleLogger = removeEnsembleLogger;
exports.getEnsembleLogger = getEnsembleLogger;
exports.getAllEnsembleLoggers = getAllEnsembleLoggers;
exports.log_llm_request = log_llm_request;
exports.log_llm_response = log_llm_response;
exports.log_llm_error = log_llm_error;
let globalLoggers = [];
function setEnsembleLogger(logger) {
if (logger === null) {
globalLoggers = [];
}
else {
if (!globalLoggers.includes(logger)) {
globalLoggers.push(logger);
}
}
}
function addEnsembleLogger(logger) {
if (!globalLoggers.includes(logger)) {
globalLoggers.push(logger);
}
}
function removeEnsembleLogger(logger) {
const index = globalLoggers.indexOf(logger);
if (index > -1) {
globalLoggers.splice(index, 1);
}
}
function getEnsembleLogger() {
return globalLoggers[0] || null;
}
function getAllEnsembleLoggers() {
return [...globalLoggers];
}
function log_llm_request(agentId, providerName, model, requestData, timestamp) {
const requestIds = [];
for (const logger of globalLoggers) {
try {
const requestId = logger.log_llm_request(agentId, providerName, model, requestData, timestamp);
if (requestId) {
requestIds.push(requestId);
}
}
catch (error) {
console.error('Error in logger.log_llm_request:', error);
}
}
return requestIds[0] || '';
}
function log_llm_response(requestId, responseData, timestamp) {
for (const logger of globalLoggers) {
try {
logger.log_llm_response(requestId, responseData, timestamp);
}
catch (error) {
console.error('Error in logger.log_llm_response:', error);
}
}
}
function log_llm_error(requestId, errorData, timestamp) {
for (const logger of globalLoggers) {
try {
logger.log_llm_error(requestId, errorData, timestamp);
}
catch (error) {
console.error('Error in logger.log_llm_error:', error);
}
}
}
//# sourceMappingURL=llm_logger.js.map
;