@maximai/maxim-js
Version:
Maxim AI JS SDK. Visit https://getmaxim.ai for more info.
135 lines (134 loc) • 6.78 kB
TypeScript
import { ChatCompletionMessage, CompletionRequest } from "../models/prompt";
import type { Attachment } from "../types";
import { Error as MaximError, type ErrorConfig } from "./components/error";
import { ChatCompletionResult, Generation, GenerationConfig, GenerationError, TextCompletionResult } from "./components/generation";
import { Retrieval, RetrievalConfig } from "./components/retrieval";
import { Session, SessionConfig } from "./components/session";
import { Span, SpanConfig } from "./components/span";
import { ToolCall, ToolCallConfig, ToolCallError } from "./components/toolCall";
import { Trace, TraceConfig } from "./components/trace";
import { CommitLog } from "./components/types";
import type { MaximLogger } from "./logger";
export type LogLinePushConfig = {
apiKey: string;
baseUrl?: string;
repositoryId: string;
logs: CommitLog[];
debug?: boolean;
};
type IMaximLogger = {
[K in keyof MaximLogger]: MaximLogger[K];
};
/**
* A logger class for creating log lines without initializing a Maxim instance.
*
* This class implements MaximLogger but captures logs internally instead of sending them.
* Use `drain()` to get captured logs and `LogLine.push()` to send them.
*
* @example
* const logLine = new LogLine();
*
* // add logs
* logLine.trace({ id: 'trace-1', name: 'My trace' });
* logLine.traceInput('trace-1', 'user input');
* logLine.traceEnd('trace-1');
*
* // fetch all the commit logs
* const logs = logLine.drain();
*
* // send the logs to server
* await LogLine.push({
* apiKey: process.env.MAXIM_API_KEY,
* repositoryId: 'my-repo-id',
* logs,
* });
*/
export declare class LogLine implements IMaximLogger {
private _captureWriter;
/**
* Drains all captured logs and returns them. Clears the internal buffer.
*/
drain(): CommitLog[];
/**
* Returns all captured logs without clearing the buffer.
*/
get logs(): CommitLog[];
static push(config: LogLinePushConfig): Promise<void>;
session(config: SessionConfig): Session;
sessionTag(sessionId: string, key: string, value: string): void;
sessionEnd(sessionId: string, data?: any): void;
sessionFeedback(sessionId: string, feedback: {
score: number;
comment?: string;
}): void;
sessionAddMetric(sessionId: string, name: string, value: number): void;
sessionTrace(sessionId: string, config: TraceConfig): Trace;
sessionEvaluate(sessionId: string): import("./components").EvaluateContainer;
trace(config: TraceConfig): Trace;
traceGeneration(traceId: string, config: GenerationConfig): Generation;
traceToolCall(traceId: string, config: ToolCallConfig): ToolCall;
traceRetrieval(traceId: string, config: RetrievalConfig): Retrieval;
traceOutput(traceId: string, output: string): void;
traceError(traceId: string, config: ErrorConfig): MaximError;
traceInput(traceId: string, input: string): void;
traceSpan(traceId: string, config: SpanConfig): Span;
traceAddToSession(traceId: string, sessionId: string): void;
traceAddMetric(traceId: string, name: string, value: number): void;
traceAddAttachment(traceId: string, attachment: Attachment): void;
traceTag(traceId: string, key: string, value: string): void;
traceEvent(traceId: string, eventIdOrName: string, eventNameOrTags?: string | Record<string, string>, tagsOrMetadata?: Record<string, string> | Record<string, unknown>, metadata?: Record<string, unknown>): void;
traceFeedback(traceId: string, feedback: {
score: number;
comment?: string;
}): void;
traceMetadata(traceId: string, metadata: Record<string, unknown>): void;
traceEvaluate(traceId: string): import("./components").EvaluateContainer;
traceEnd(traceId: string, data?: any): void;
generationSetModel(generationId: string, model: string): void;
generationAddTag(generationId: string, key: string, value: string): void;
generationAddMessage(generationId: string, messages: (CompletionRequest | ChatCompletionMessage)[]): void;
generationSetModelParameters(generationId: string, modelParameters: Record<string, any>): void;
generationAddMetric(generationId: string, name: string, value: number): void;
generationResult(generationId: string, result: TextCompletionResult | ChatCompletionResult): void;
generationError(generationId: string, error: GenerationError): void;
generationMetadata(generationId: string, metadata: Record<string, unknown>): void;
generationEvaluate(generationId: string): import("./components").EvaluateContainer;
generationEnd(generationId: string, data?: any): void;
generationSetName(generationId: string, name: string): void;
generationAddAttachment(generationId: string, attachment: Attachment): void;
spanGeneration(spanId: string, config: GenerationConfig): Generation;
spanRetrieval(spanId: string, config: RetrievalConfig): Retrieval;
spanToolCall(spanId: string, config: ToolCallConfig): ToolCall;
spanSpan(spanId: string, config: SpanConfig): Span;
spanTag(spanId: string, key: string, value: string): void;
spanError(spanId: string, config: ErrorConfig): MaximError;
spanEvent(spanId: string, eventIdOrName: string, eventNameOrTags?: string | Record<string, string>, tagsOrMetadata?: Record<string, string> | Record<string, unknown>, metadata?: Record<string, unknown>): void;
spanMetadata(spanId: string, metadata: Record<string, unknown>): void;
spanEvaluate(spanId: string): import("./components").EvaluateContainer;
spanEnd(spanId: string, data?: any): void;
spanAddAttachment(spanId: string, attachment: Attachment): void;
retrievalEnd(retrievalId: string): void;
retrievalAddTag(retrievalId: string, key: string, value: string): void;
retrievalInput(retrievalId: string, input: string): void;
retrievalAddMetric(retrievalId: string, name: string, value: number): void;
retrievalOutput(retrievalId: string, output: string | string[]): void;
retrievalMetadata(retrievalId: string, metadata: Record<string, unknown>): void;
retrievalEvaluate(retrievalId: string): import("./components").EvaluateContainer;
toolCallResult(toolCallId: string, result: string): void;
toolCallError(toolCallId: string, error: ToolCallError): void;
toolCallAddTag(toolCallId: string, key: string, value: string): void;
toolCallMetadata(toolCallId: string, metadata: Record<string, unknown>): void;
/**
* @deprecated **DO NOT USE.**
*/
get id(): string;
/**
* @deprecated **DO NOT USE.** Use `LogLine.push()` instead.
*/
cleanup(): Promise<void>;
/**
* @deprecated **DO NOT USE.** Use `LogLine.push()` instead.
*/
flush(): Promise<void>;
}
export {};