export const PROVIDER_ID = "xtalpi-pi-tools";
export const API_ID = "xtalpi-pi-tools";
export const PROVIDER_NAME = "XtalPi Pi Tools";
export const COMPATIBILITY_PROTOCOL_VERSION = "xtalpi-pi-tools.compat.v2";
export const DEFAULT_BASE_URL = "https://sciencetoken-api.xtalpi.xyz/proxy/openai/v1";
export const TOOL_CALL_OPEN = "";
export const TOOL_CALL_CLOSE = "";
export const TOOL_RESULT_OPEN = "";
export const TOOL_RESULT_CLOSE = "";
export const DEFAULT_MAX_TOOLS = 24;
export const DEFAULT_MAX_TOOL_RESULT_CHARS = 20000;
export const DEFAULT_MAX_OUTPUT_TOKENS = 8192;
export const DEFAULT_TIMEOUT_MS = 180000;
export const DEFAULT_MAX_EMPTY_RETRIES = 2;
export const DEFAULT_MAX_REPAIR_RETRIES = 2;
export const DEFAULT_MAX_TOTAL_RECOVERIES = 4;
export type JsonObject = Record;
export type PiToolCallEnvelope = {
name: string;
arguments: JsonObject;
};
export type XtalpiChatMessage = {
role: "system" | "user" | "assistant";
content: string;
};
export type XtalpiChatPayload = {
model: string;
messages: XtalpiChatMessage[];
stream: false;
max_tokens?: number;
temperature?: number;
response_format?: { type: "json_object" };
};
export type UsageSummary = {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
totalTokens: number;
};
export const EMPTY_USAGE: UsageSummary = {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
totalTokens: 0,
};