diff --git a/apps/server/src/index.ts b/apps/server/src/index.ts index 4ceedc515..3306498a1 100644 --- a/apps/server/src/index.ts +++ b/apps/server/src/index.ts @@ -5,6 +5,12 @@ import { z } from 'zod'; import { loadRootEnv } from '@buster/env-utils'; loadRootEnv(); +// Initialize Braintrust logger +import { initBraintrustLogger } from '@buster/ai'; + +// Initialize Braintrust logger +initBraintrustLogger(); + // Import custom middleware import { corsMiddleware } from './middleware/cors'; import { loggerMiddleware } from './middleware/logger'; diff --git a/packages/ai/package.json b/packages/ai/package.json index 5a59d5347..6d6a54f5b 100644 --- a/packages/ai/package.json +++ b/packages/ai/package.json @@ -63,4 +63,4 @@ "yaml": "^2.8.1", "zod": "catalog:" } -} +} \ No newline at end of file diff --git a/packages/ai/src/utils/index.ts b/packages/ai/src/utils/index.ts index 362f02bac..4c0055362 100644 --- a/packages/ai/src/utils/index.ts +++ b/packages/ai/src/utils/index.ts @@ -3,3 +3,6 @@ export * from './tool-call-repair'; // Message conversion utilities export * from './message-conversion'; + +// Logger utilities +export * from './logger'; diff --git a/packages/ai/src/utils/logger.ts b/packages/ai/src/utils/logger.ts new file mode 100644 index 000000000..f99738ee2 --- /dev/null +++ b/packages/ai/src/utils/logger.ts @@ -0,0 +1,28 @@ +import { initLogger } from 'braintrust'; + +/** + * Initialize Braintrust logger with environment configuration + * @param options Optional configuration to override defaults + * @returns Initialized Braintrust logger + */ +export function initBraintrustLogger(options?: { + apiKey?: string; + projectName?: string; +}) { + const apiKey = options?.apiKey || process.env.BRAINTRUST_KEY; + const projectName = options?.projectName || process.env.ENVIRONMENT || 'development'; + + if (!apiKey) { + throw new Error('BRAINTRUST_KEY is not set'); + } + + return initLogger({ + apiKey, + projectName, + }); +} + +/** + * Re-export initLogger from braintrust for direct access if needed + */ +export { initLogger } from 'braintrust';