feat(server): migrate all logging to pino

- Add pino with pino-pretty for structured logging
- Create root logger in index.ts with child loggers per module
- Support log level via PASEO_LOG env var and config.json
- Support log format (pretty/json) via PASEO_LOG_FORMAT and config.json
- Replace all console.* in runtime code with appropriate log levels
- Scripts use process.stdout/stderr for output
- Error logging uses correct pattern: logger.error({ err }, msg)
This commit is contained in:
Mohamed Boudra
2026-01-15 17:16:01 +07:00
parent ef853914d5
commit b8f056060f
48 changed files with 1275 additions and 887 deletions
@@ -3,12 +3,15 @@ import { createOpenAI } from "@ai-sdk/openai";
import { z } from "zod";
import type { AgentTimelineItem } from "../server/agent/agent-sdk-types.js";
import { curateAgentActivity } from "../server/agent/activity-curator.js";
import { getRootLogger } from "../server/logger.js";
const logger = getRootLogger().child({ module: "agent-title-generator" });
let openai: ReturnType<typeof createOpenAI> | null = null;
export function initializeTitleGenerator(apiKey: string): void {
openai = createOpenAI({ apiKey });
console.log("✓ Agent title generator initialized");
logger.info("Agent title generator initialized");
}
export function isTitleGeneratorInitialized(): boolean {
@@ -56,11 +59,11 @@ ${activityContext}`,
temperature: 0.7,
});
console.log(`[TitleGenerator] Generated title: "${object.title}"`);
logger.debug({ title: object.title }, "Generated agent title");
return object.title;
} catch (error: any) {
console.error("[TitleGenerator] Failed to generate title:", error);
} catch (err) {
logger.error({ err }, "Failed to generate agent title");
return "New Agent";
}
}