summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/hooks
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src/ui/hooks')
-rw-r--r--packages/cli/src/ui/hooks/useGeminiStream.ts5
-rw-r--r--packages/cli/src/ui/hooks/useReactToolScheduler.ts25
2 files changed, 30 insertions, 0 deletions
diff --git a/packages/cli/src/ui/hooks/useGeminiStream.ts b/packages/cli/src/ui/hooks/useGeminiStream.ts
index 64e39e68..0b42c161 100644
--- a/packages/cli/src/ui/hooks/useGeminiStream.ts
+++ b/packages/cli/src/ui/hooks/useGeminiStream.ts
@@ -17,6 +17,7 @@ import {
Config,
MessageSenderType,
ToolCallRequestInfo,
+ logUserPrompt,
} from '@gemini-code/core';
import { type PartListUnion } from '@google/genai';
import {
@@ -178,6 +179,10 @@ export const useGeminiStream = (
if (typeof query === 'string') {
const trimmedQuery = query.trim();
+ logUserPrompt(config, {
+ prompt: trimmedQuery,
+ prompt_char_count: trimmedQuery.length,
+ });
onDebugMessage(`User query: '${trimmedQuery}'`);
await logger?.logMessage(MessageSenderType.USER, trimmedQuery);
diff --git a/packages/cli/src/ui/hooks/useReactToolScheduler.ts b/packages/cli/src/ui/hooks/useReactToolScheduler.ts
index e681e972..8e027ade 100644
--- a/packages/cli/src/ui/hooks/useReactToolScheduler.ts
+++ b/packages/cli/src/ui/hooks/useReactToolScheduler.ts
@@ -20,6 +20,7 @@ import {
Tool,
ToolCall,
Status as CoreStatus,
+ logToolCall,
} from '@gemini-code/core';
import { useCallback, useEffect, useState, useRef } from 'react';
import {
@@ -108,6 +109,30 @@ export function useReactToolScheduler(
const allToolCallsCompleteHandler: AllToolCallsCompleteHandler = (
completedToolCalls,
) => {
+ completedToolCalls.forEach((call) => {
+ let success = false;
+ let errorMessage: string | undefined;
+ let duration = 0;
+
+ if (call.status === 'success') {
+ success = true;
+ }
+ if (
+ call.status === 'error' &&
+ typeof call.response.resultDisplay === 'string'
+ ) {
+ errorMessage = call.response.resultDisplay;
+ }
+ duration = call.durationMs || 0;
+
+ logToolCall({
+ function_name: call.request.name,
+ function_args: call.request.args,
+ duration_ms: duration,
+ success,
+ error: errorMessage,
+ });
+ });
onComplete(completedToolCalls);
};