From e7fb51d5ac1bea0bd630869e06f3f37f374628c3 Mon Sep 17 00:00:00 2001 From: Erosika Date: Thu, 16 Jul 2026 12:56:01 -0400 Subject: [PATCH] refactor(memory): make query rewrite provider-agnostic Move query_rewrite from the honcho plugin to plugins/memory/ and rename the auxiliary task key honcho_query_rewrite -> memory_query_rewrite so any memory provider can use the same rewrite path and model/timeout config block. No behavior change. --- hermes_cli/config.py | 2 +- hermes_cli/main.py | 2 +- plugins/memory/honcho/__init__.py | 2 +- plugins/memory/{honcho => }/query_rewrite.py | 8 ++++++-- tests/honcho_plugin/test_query_rewrite.py | 2 +- 5 files changed, 10 insertions(+), 6 deletions(-) rename plugins/memory/{honcho => }/query_rewrite.py (94%) diff --git a/hermes_cli/config.py b/hermes_cli/config.py index d77bcc7b580b..23ab55598459 100644 --- a/hermes_cli/config.py +++ b/hermes_cli/config.py @@ -1652,7 +1652,7 @@ DEFAULT_CONFIG = { "reasoning_effort": "", # per-task thinking level: none|minimal|low|medium|high|xhigh|max|ultra (empty = provider default) "language": "", }, - "honcho_query_rewrite": { + "memory_query_rewrite": { "provider": "auto", # fast/cheap model recommended "model": "", "base_url": "", diff --git a/hermes_cli/main.py b/hermes_cli/main.py index cf439ad9d04d..c3521a0646b8 100644 --- a/hermes_cli/main.py +++ b/hermes_cli/main.py @@ -3257,7 +3257,7 @@ _AUX_TASKS: list[tuple[str, str, str]] = [ ("approval", "Approval", "smart command approval"), ("mcp", "MCP", "MCP tool reasoning"), ("title_generation", "Title generation", "session titles"), - ("honcho_query_rewrite", "Honcho query rewrite", "memory retrieval queries"), + ("memory_query_rewrite", "Memory query rewrite", "memory retrieval queries"), ("tts_audio_tags", "TTS audio tags", "Gemini TTS tag insertion"), ("skills_hub", "Skills hub", "skills search/install"), ("triage_specifier", "Triage specifier", "kanban spec fleshing"), diff --git a/plugins/memory/honcho/__init__.py b/plugins/memory/honcho/__init__.py index cd5c50a12610..f117014d0972 100644 --- a/plugins/memory/honcho/__init__.py +++ b/plugins/memory/honcho/__init__.py @@ -1636,7 +1636,7 @@ class HonchoMemoryProvider(MemoryProvider): def register(ctx) -> None: """Register Honcho as a memory provider plugin.""" - from plugins.memory.honcho.query_rewrite import rewrite_dialectic_query + from plugins.memory.query_rewrite import rewrite_dialectic_query ctx.register_memory_provider( HonchoMemoryProvider(query_rewriter=rewrite_dialectic_query) diff --git a/plugins/memory/honcho/query_rewrite.py b/plugins/memory/query_rewrite.py similarity index 94% rename from plugins/memory/honcho/query_rewrite.py rename to plugins/memory/query_rewrite.py index 017fdd209e1b..abc9e19ea348 100644 --- a/plugins/memory/honcho/query_rewrite.py +++ b/plugins/memory/query_rewrite.py @@ -1,4 +1,8 @@ -"""Rewrite the latest user message into a clean Honcho retrieval query.""" +"""Rewrite the latest user message into a clean memory-retrieval query. + +Provider-agnostic: any memory provider can pass ``rewrite_dialectic_query`` +as its query rewriter. Model/timeout are configured under +``auxiliary.memory_query_rewrite`` in config.yaml.""" from __future__ import annotations @@ -9,7 +13,7 @@ from typing import Any logger = logging.getLogger(__name__) -TASK_KEY = "honcho_query_rewrite" +TASK_KEY = "memory_query_rewrite" _MAX_INPUT_CHARS = 4_000 _MAX_QUERY_CHARS = 320 diff --git a/tests/honcho_plugin/test_query_rewrite.py b/tests/honcho_plugin/test_query_rewrite.py index afd50a160463..ad4c4823a0ed 100644 --- a/tests/honcho_plugin/test_query_rewrite.py +++ b/tests/honcho_plugin/test_query_rewrite.py @@ -6,7 +6,7 @@ from unittest.mock import MagicMock, patch import pytest from plugins.memory.honcho import HonchoMemoryProvider, register -from plugins.memory.honcho.query_rewrite import ( +from plugins.memory.query_rewrite import ( TASK_KEY, _bounded_user_message, _normalize_rewrite,