@endlessriver/optimaiz
Version:
Client SDK for interacting with the Optimaiz logging & trace system.
235 lines (234 loc) • 6.76 kB
TypeScript
export type Role = "system" | "user" | "assistant";
export interface StandardToolDefinition {
name: string;
description: string;
parameters: {
type: "object";
properties: Record<string, {
type: "string" | "number" | "boolean" | "object" | "array";
description?: string;
required?: boolean;
enum?: string[];
}>;
required?: string[];
};
category?: string;
tags?: string[];
version?: string;
deprecated?: boolean;
}
export interface OpenAIFormatTool {
type: "function";
function: {
name: string;
description: string;
parameters: {
type: "object";
properties: Record<string, any>;
required?: string[];
};
};
}
export interface AnthropicFormatTool {
name: string;
description: string;
input_schema: {
type: "object";
properties: Record<string, any>;
required?: string[];
};
}
export interface MistralFormatTool {
type: "function";
function: {
name: string;
description: string;
parameters: {
type: "object";
properties: Record<string, any>;
required?: string[];
};
};
}
export interface IToolCall {
id: string;
name: string;
arguments: Record<string, any>;
type: "function";
}
export interface IToolResult {
toolCallId: string;
name: string;
result: any;
error?: string;
}
export interface IToolDefinition {
name: string;
description: string;
parameters: {
type: "object";
properties: Record<string, any>;
required?: string[];
};
category?: string;
tags?: string[];
version?: string;
deprecated?: boolean;
}
export type MessageContent = {
type: "text" | "image" | "audio" | "video";
role: Role;
value: string;
mimeType?: string;
extractedText?: string;
};
export type Feedback = {
rating?: "up" | "down";
comment?: string;
submittedAt?: Date;
labels?: string[];
};
export declare class OptimaizError extends Error {
status?: number;
details?: string;
type?: string;
constructor(message: string, status?: number, details?: string, type?: string);
}
export declare class OptimaizAuthenticationError extends OptimaizError {
constructor(message: string, details?: string);
}
export declare class OptimaizValidationError extends OptimaizError {
constructor(message: string, details?: string);
}
export declare class OptimaizServerError extends OptimaizError {
constructor(message: string, details?: string);
}
export declare class OptimaizClient {
private config;
private baseUrl;
constructor(config: {
token: string;
baseUrl?: string;
});
private post;
startTrace(data: {
traceId?: string;
agentId?: string;
flowId?: string;
threadId?: string;
sessionId?: string;
userId?: string;
promptTemplate?: MessageContent[];
promptVariables?: Record<string, string>;
tools?: StandardToolDefinition[];
provider: string;
model: string;
modelParams?: Record<string, any>;
metadata?: Record<string, any>;
tags?: string[];
}): Promise<any>;
appendResponse(data: {
traceId: string;
rawResponse?: any;
provider?: string;
model?: string;
threadId?: string;
userId?: string;
agentId?: string;
flowId?: string;
sessionId?: string;
}): Promise<any>;
finalizeTrace(traceId: string): Promise<any>;
logError(traceId: string, error: {
message: string;
code?: string;
details?: any;
}): Promise<any>;
sendFeedback(traceId: string, feedback: Feedback): Promise<any>;
addToolExecution(data: {
traceId: string;
toolId: string;
toolName: string;
executionTime: Date;
duration?: number;
success: boolean;
error?: string;
result?: any;
}): Promise<any>;
addToolResults(data: {
traceId: string;
toolResults: IToolResult[];
}): Promise<any>;
composePrompts(templates: {
role: Role;
content: string;
type?: MessageContent["type"];
}[], variables: Record<string, string>): {
prompts: MessageContent[];
promptTemplate: MessageContent[];
promptVariables: Record<string, string>;
};
wrapLLMCall<T>({ traceId, agentId, flowId, threadId, sessionId, userId, promptTemplate, promptVariables, tools, provider, model, modelParams, metadata, tags, call, }: {
traceId?: string;
agentId?: string;
flowId?: string;
threadId?: string;
userId?: string;
sessionId?: string;
promptTemplate?: MessageContent[];
promptVariables?: Record<string, string>;
tools?: StandardToolDefinition[];
provider: string;
model: string;
modelParams?: Record<string, any>;
metadata?: Record<string, any>;
tags?: string[];
call: () => Promise<T>;
}): Promise<{
response: T;
traceId: string;
}>;
generatePromptFromTools({ toolInfo, toolInput, }: {
toolInfo: StandardToolDefinition[];
toolInput: {
name: string;
arguments: Record<string, any>;
};
}): {
promptTemplate: MessageContent[];
promptVariables: Record<string, string>;
};
call(data: {
traceId?: string;
promptTemplate?: MessageContent[];
promptVariables: Record<string, string>;
tools?: StandardToolDefinition[];
modelParams?: Record<string, any>;
threadId?: string;
userId?: string;
agentId?: string;
flowId?: string;
sessionId?: string;
metadata?: Record<string, any>;
tags?: string[];
}): Promise<{
data: any;
error?: any;
}>;
convertToolsToProviderFormat(tools: StandardToolDefinition[], provider: string): any[];
convertProviderToolsToStandard(tools: any[], provider: string): StandardToolDefinition[];
validateTools(tools: StandardToolDefinition[]): {
valid: boolean;
errors: string[];
};
/**
* Utility method to handle errors with proper error types
*/
static handleError(error: any): never;
/**
* Check if an error is a specific type
*/
static isAuthenticationError(error: any): error is OptimaizAuthenticationError;
static isValidationError(error: any): error is OptimaizValidationError;
static isServerError(error: any): error is OptimaizServerError;
}