A custom LangChain LLM passed to AsyncMemory._create_procedural_memory
returns AIMessage.content, which is str | list[str | dict]. Providers
that emit content blocks hit content.strip() on a list and raised
AttributeError.
remove_code_blocks already normalized None, so the list case is handled
in the same guard rather than at the single call site.
Closes#6150