import { z } from 'zod';
import { getMemoryProvider } from '../memory/MemoryFactory.js';
export const memorySearchSchema = z.object({
    query: z.string().describe('Requête de recherche (sémantique + full-text)'),
    limit: z.number().int().min(1).max(50).optional().default(10).describe('Nombre max de résultats'),
    include_runs: z
        .boolean()
        .optional()
        .default(false)
        .describe("Inclure l'historique des runs d'agents dans la recherche"),
    agent_name: z
        .string()
        .optional()
        .describe("Filtrer par nom d'agent (détecté automatiquement si exécuté via OverMind)"),
});
export async function memorySearchTool(args) {
    const provider = getMemoryProvider();
    // Priorité à l'agent détecté (Privacy)
    const effectiveAgentName = process.env.OVERMIND_AGENT_NAME || args.agent_name;
    const results = await provider.searchMemory({
        query: args.query,
        limit: args.limit,
        includeRuns: args.include_runs,
        agentName: effectiveAgentName,
    });
    if (results.length === 0) {
        return {
            content: [
                {
                    type: 'text',
                    text: `🔍 Aucun souvenir trouvé pour : _"${args.query}"_\n\nUtilisez \`memory_store\` pour ajouter des connaissances.`,
                },
            ],
        };
    }
    const lines = results.map((r, i) => `**${i + 1}.** [${r.source}] (score: ${r.score.toFixed(3)}) — ${new Date(r.created_at).toISOString().slice(0, 10)}\n${r.text.slice(0, 500)}`);
    return {
        content: [
            {
                type: 'text',
                text: `🧠 **${results.length} résultat(s) trouvé(s) pour "${args.query}"**\n\n${lines.join('\n\n---\n\n')}`,
            },
        ],
    };
}
//# sourceMappingURL=memory_search.js.map