Something went wrong. Try again.
source dump of claude code forked from oppi.li/claude-code
Something went wrong. Try again.
1.2 kB · 41 lines
TypeScript
at main
123456789101112131415161718192021222324252627282930313233343536373839404142import { useEffect } from 'react'import { logEvent } from 'src/services/analytics/index.js'import { z } from 'zod/v4'import type { MCPServerConnection } from '../services/mcp/types.js'import { getConnectedIdeClient } from '../utils/ide.js'import { lazySchema } from '../utils/lazySchema.js'
const LogEventSchema = lazySchema(() => z.object({ method: z.literal('log_event'), params: z.object({ eventName: z.string(), eventData: z.object({}).passthrough(), }), }),)
export function useIdeLogging(mcpClients: MCPServerConnection[]): void { useEffect(() => { // Skip if there are no clients if (!mcpClients.length) { return }
// Find the IDE client from the MCP clients list const ideClient = getConnectedIdeClient(mcpClients) if (ideClient) { // Register the log event handler ideClient.client.setNotificationHandler( LogEventSchema(), notification => { const { eventName, eventData } = notification.params logEvent( `tengu_ide_${eventName}`, eventData as { [key: string]: boolean | number | undefined }, ) }, ) } }, [mcpClients])}