import { parseThinking } from '../utils/context-parser.js';
import { getAdvice } from '../utils/gemini.js';
// Advise tool handler
export interface AdviseInput {
plan?: string;
userRequest?: string;
thinkingLog?: string;
availableTools?: string[];
focusAreas?: string[];
sessionId?: string;
}
export interface AdviseOutput {
advice: string;
toolSuggestions?: string[];
alerts?: string[];
}
/**
* The wisdom_advise tool gives strategic, metacognitive advice to improve Claude's thinking
*/
export async function adviseTool(input: AdviseInput): Promise<AdviseOutput> {
try {
// Parse thinking log if provided
let parsedThinking = undefined;
if (input.thinkingLog) {
parsedThinking = parseThinking(input.thinkingLog);
console.log(`Parsed thinking: Found ${parsedThinking.steps.length} steps, ${parsedThinking.decisionPoints.length} decisions, ${parsedThinking.uncertainties.length} uncertainties`);
}
// Get advice from LearnLM/Gemini
const advice = await getAdvice({
plan: input.plan,
userRequest: input.userRequest,
thinkingLog: input.thinkingLog,
availableTools: input.availableTools,
focusAreas: input.focusAreas
});
return advice;
} catch (error) {
console.error('Error in wisdom_advise tool:', error);
return {
advice: `Error processing advice request: ${error instanceof Error ? error.message : String(error)}`
};
}
}