@maximai/maxim-js
Version:
Maxim AI JS SDK. Visit https://getmaxim.ai for more info.
214 lines • 8.56 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.MaximLogger = void 0;
const generation_1 = require("./components/generation");
const retrieval_1 = require("./components/retrieval");
const session_1 = require("./components/session");
const span_1 = require("./components/span");
const toolCall_1 = require("./components/toolCall");
const trace_1 = require("./components/trace");
const types_1 = require("./components/types");
const utils_1 = require("./utils");
const writer_1 = require("./writer");
class MaximLogger {
constructor(params) {
const { config, apiKey, baseUrl } = params;
if (!config.id) {
throw new Error("Logger must be initialized with id of the logger");
}
this._id = config.id;
this.isDebug = params.isDebug || false;
this.writer = new writer_1.LogWriter({
isDebug: this.isDebug,
autoFlush: config.autoFlush || true,
flushInterval: config.flushIntervalSeconds || 10,
baseUrl: baseUrl,
apiKey: apiKey,
repositoryId: config.id,
cache: params.cache,
raiseExceptions: params.raiseExceptions,
});
}
session(config) {
return new session_1.Session(config, this.writer);
}
trace(config) {
return new trace_1.Trace(config, this.writer);
}
get id() {
return this._id;
}
async cleanup() {
await this.writer.cleanup();
}
sessionTag(sessionId, key, value) {
session_1.Session.addTag_(this.writer, sessionId, key, value);
}
sessionEnd(sessionId, data) {
session_1.Session.end_(this.writer, sessionId, data);
}
sessionFeedback(sessionId, feedback) {
session_1.Session.feedback_(this.writer, sessionId, feedback);
}
sessionTrace(sessionId, config) {
return session_1.Session.trace_(this.writer, sessionId, config);
}
sessionEvaluate(sessionId) {
return session_1.Session.evaluate_(this.writer, types_1.Entity.SESSION, sessionId);
}
traceGeneration(traceId, config) {
return trace_1.Trace.generation_(this.writer, traceId, config);
}
traceToolCall(traceId, config) {
return trace_1.Trace.toolCall_(this.writer, traceId, config);
}
traceRetrieval(traceId, config) {
return trace_1.Trace.retrieval_(this.writer, traceId, config);
}
traceOutput(traceId, output) {
trace_1.Trace.output_(this.writer, traceId, output);
}
traceError(traceId, config) {
return trace_1.Trace.error_(this.writer, traceId, config);
}
traceInput(traceId, input) {
trace_1.Trace.input_(this.writer, traceId, input);
}
traceSpan(traceId, config) {
return trace_1.Trace.span_(this.writer, traceId, config);
}
traceAddToSession(traceId, sessionId) {
trace_1.Trace.addToSession_(this.writer, traceId, sessionId);
}
traceTag(traceId, key, value) {
trace_1.Trace.addTag_(this.writer, traceId, key, value);
}
traceEvent(...args) {
try {
if (args.length === 3) {
const [traceId, eventName, tags] = args;
trace_1.Trace.event_(this.writer, types_1.Entity.TRACE, traceId, (0, utils_1.uniqueId)(), eventName, tags);
return;
}
const [traceId, eventId, eventName, tags, metadata] = args;
trace_1.Trace.event_(this.writer, types_1.Entity.TRACE, traceId, eventId, eventName, tags, metadata);
}
catch (error) {
console.error(new Error(`Failed to log trace event. Please check the parameters you are passing to the traceEvent method.`));
}
}
traceFeedback(traceId, feedback) {
trace_1.Trace.feedback_(this.writer, traceId, feedback);
}
traceMetadata(traceId, metadata) {
trace_1.Trace.addMetadata_(this.writer, types_1.Entity.TRACE, traceId, metadata);
}
traceEvaluate(traceId) {
return trace_1.Trace.evaluate_(this.writer, types_1.Entity.TRACE, traceId);
}
traceEnd(traceId, data) {
trace_1.Trace.end_(this.writer, traceId, data);
}
generationSetModel(generationId, model) {
generation_1.Generation.setModel_(this.writer, generationId, model);
}
generationAddTag(generationId, key, value) {
generation_1.Generation.addTag_(this.writer, types_1.Entity.GENERATION, generationId, key, value);
}
generationAddMessage(generationId, messages) {
generation_1.Generation.addMessages_(this.writer, generationId, messages);
}
generationSetModelParameters(generationId, modelParameters) {
generation_1.Generation.setModelParameters_(this.writer, generationId, modelParameters);
}
generationResult(generationId, result) {
generation_1.Generation.result_(this.writer, generationId, result);
}
generationError(generationId, error) {
generation_1.Generation.error_(this.writer, generationId, error);
}
generationMetadata(generationId, metadata) {
generation_1.Generation.addMetadata_(this.writer, types_1.Entity.GENERATION, generationId, metadata);
}
generationEvaluate(generationId) {
return generation_1.Generation.evaluate_(this.writer, types_1.Entity.GENERATION, generationId);
}
generationEnd(generationId, data) {
generation_1.Generation.end_(this.writer, generationId, data);
}
spanGeneration(spanId, config) {
return span_1.Span.generation_(this.writer, spanId, config);
}
spanRetrieval(spanId, config) {
return span_1.Span.retrieval_(this.writer, spanId, config);
}
spanToolCall(spanId, config) {
return span_1.Span.toolCall_(this.writer, spanId, config);
}
spanSpan(spanId, config) {
return span_1.Span.span_(this.writer, spanId, config);
}
spanTag(spanId, key, value) {
return span_1.Span.addTag_(this.writer, spanId, key, value);
}
spanError(spanId, config) {
return span_1.Span.error_(this.writer, spanId, config);
}
spanEvent(...args) {
try {
if (args.length === 3) {
const [spanId, eventName, tags] = args;
return span_1.Span.event_(this.writer, types_1.Entity.SPAN, spanId, (0, utils_1.uniqueId)(), eventName, tags);
}
const [spanId, eventId, eventName, tags, metadata] = args;
return span_1.Span.event_(this.writer, types_1.Entity.SPAN, spanId, eventId, eventName, tags, metadata);
}
catch (error) {
console.error(new Error(`Failed to log span event. Please check the parameters you are passing to the spanEvent method.`));
}
}
spanMetadata(spanId, metadata) {
return span_1.Span.addMetadata_(this.writer, types_1.Entity.SPAN, spanId, metadata);
}
spanEvaluate(spanId) {
return span_1.Span.evaluate_(this.writer, types_1.Entity.SPAN, spanId);
}
spanEnd(spanId, data) {
return span_1.Span.end_(this.writer, spanId, data);
}
retrievalEnd(retrievalId) {
retrieval_1.Retrieval.end_(this.writer, retrievalId);
}
retrievalAddTag(retrievalId, key, value) {
retrieval_1.Retrieval.addTag_(this.writer, retrievalId, key, value);
}
retrievalInput(retrievalId, input) {
retrieval_1.Retrieval.input_(this.writer, retrievalId, input);
}
retrievalOutput(retrievalId, output) {
retrieval_1.Retrieval.output_(this.writer, retrievalId, output);
}
retrievalMetadata(retrievalId, metadata) {
return retrieval_1.Retrieval.addMetadata_(this.writer, types_1.Entity.RETRIEVAL, retrievalId, metadata);
}
retrievalEvaluate(retrievalId) {
return retrieval_1.Retrieval.evaluate_(this.writer, types_1.Entity.RETRIEVAL, retrievalId);
}
toolCallResult(toolCallId, result) {
return toolCall_1.ToolCall.result_(this.writer, toolCallId, result);
}
toolCallError(toolCallId, error) {
return toolCall_1.ToolCall.error_(this.writer, toolCallId, error);
}
toolCallAddTag(toolCallId, key, value) {
toolCall_1.ToolCall.addTag_(this.writer, types_1.Entity.TOOL_CALL, toolCallId, key, value);
}
toolCallMetadata(toolCallId, metadata) {
return toolCall_1.ToolCall.addMetadata_(this.writer, types_1.Entity.TOOL_CALL, toolCallId, metadata);
}
flush() {
this.writer.flush();
}
}
exports.MaximLogger = MaximLogger;
//# sourceMappingURL=logger.js.map