UNPKG

@maximai/maxim-js

Version:

Maxim AI JS SDK. Visit https://getmaxim.ai for more info.

135 lines (134 loc) 6.78 kB
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 {};