Add support for local logging per session (#936)

This commit is contained in:
anj-s
2025-06-11 15:05:41 -07:00
committed by GitHub
parent 6ecdecbdcc
commit 2dc79b3bd0
3 changed files with 124 additions and 124 deletions

View File

@@ -395,22 +395,46 @@ export const useGeminiStream = (
break;
case ServerGeminiEventType.ToolCallRequest:
toolCallRequests.push(event.value);
await logger?.logMessage(
MessageSenderType.TOOL_REQUEST,
JSON.stringify(event.value.args),
);
break;
case ServerGeminiEventType.UserCancelled:
handleUserCancelledEvent(userMessageTimestamp);
break;
case ServerGeminiEventType.Error:
handleErrorEvent(event.value, userMessageTimestamp);
await logger?.logMessage(
MessageSenderType.SERVER_ERROR,
JSON.stringify(event.value),
);
break;
case ServerGeminiEventType.ChatCompressed:
handleChatCompressionEvent();
await logger?.logMessage(
MessageSenderType.SYSTEM,
'Compressing Chat',
);
break;
case ServerGeminiEventType.UsageMetadata:
addUsage(event.value);
await logger?.logMessage(
MessageSenderType.SYSTEM,
'Usage Metadata: ' + JSON.stringify(event.value),
);
break;
case ServerGeminiEventType.ToolCallConfirmation:
await logger?.logMessage(
MessageSenderType.SYSTEM,
JSON.stringify(event.value),
);
break;
case ServerGeminiEventType.ToolCallResponse:
// do nothing
await logger?.logMessage(
MessageSenderType.SYSTEM,
JSON.stringify(event.value),
);
break;
default: {
// enforces exhaustive switch-case
@@ -419,6 +443,7 @@ export const useGeminiStream = (
}
}
}
await logger?.logMessage(MessageSenderType.SYSTEM, geminiMessageBuffer);
if (toolCallRequests.length > 0) {
scheduleToolCalls(toolCallRequests, signal);
}
@@ -431,6 +456,7 @@ export const useGeminiStream = (
scheduleToolCalls,
handleChatCompressionEvent,
addUsage,
logger,
],
);