UNPKG

@tanstack/ai

Version:

Core TanStack AI library - Open source AI SDK

70 lines (69 loc) 2.15 kB
const CATEGORY_EMOJI = { request: "📤", provider: "📥", output: "📨", middleware: "🧩", tools: "🔧", agentLoop: "🔁", config: "⚙️", errors: "❌" }; class InternalLogger { constructor(logger, categories) { this.logger = logger; this.categories = categories; } /** Whether a category is enabled. Cheap, safe to call on hot paths. */ isEnabled(category) { return this.categories[category]; } emit(level, category, message, meta) { if (!this.categories[category]) return; const emoji = CATEGORY_EMOJI[category]; const prefixed = `${emoji} [tanstack-ai:${category}] ${emoji} ${message}`; try { if (level === "error") this.logger.error(prefixed, meta); else this.logger.debug(prefixed, meta); } catch { } } /** Log a raw chunk/frame received from a provider SDK. */ provider(message, meta) { this.emit("debug", "provider", message, meta); } /** Log a chunk/result yielded to the consumer after middleware. */ output(message, meta) { this.emit("debug", "output", message, meta); } /** Log inputs/outputs around a middleware hook invocation. Chat-only. */ middleware(message, meta) { this.emit("debug", "middleware", message, meta); } /** Log before/after a tool-call execution. Chat-only. */ tools(message, meta) { this.emit("debug", "tools", message, meta); } /** Log an agent-loop iteration marker or phase transition. Chat-only. */ agentLoop(message, meta) { this.emit("debug", "agentLoop", message, meta); } /** Log a config transform returned by a middleware `onConfig` hook. Chat-only. */ config(message, meta) { this.emit("debug", "config", message, meta); } /** * Log a caught error. Defaults to on even when `debug` is unspecified. * Uses the underlying logger's `error` level. */ errors(message, meta) { this.emit("error", "errors", message, meta); } /** Log outgoing request metadata before an adapter SDK call. */ request(message, meta) { this.emit("debug", "request", message, meta); } } export { InternalLogger }; //# sourceMappingURL=internal-logger.js.map