diff --git a/src/kimi_cli/soul/kimisoul.py b/src/kimi_cli/soul/kimisoul.py index e2501bf38..c3f280c73 100644 --- a/src/kimi_cli/soul/kimisoul.py +++ b/src/kimi_cli/soul/kimisoul.py @@ -480,7 +480,14 @@ async def run(self, user_input: str | list[ContentPart]): set_session_id(self._runtime.session.id) # --- UserPromptSubmit hook --- - text_input_for_hook = user_input if isinstance(user_input, str) else "" + if isinstance(user_input, str): + text_input_for_hook = user_input + else: + _parts: list[str] = [] + for _part in user_input: + if getattr(_part, "type", None) == "text": + _parts.append(getattr(_part, "text", "")) + text_input_for_hook = "".join(_parts) from kimi_cli.hooks import events hook_results = await self._hook_engine.trigger(