Ensure functions have docstrings for documentation
def on_llm_start(
1"""Callback Handler streams to stdout on new llm token."""23from __future__ import annotations45import sys6from typing import TYPE_CHECKING, Any78from typing_extensions import override910from langchain_core.callbacks.base import BaseCallbackHandler1112if TYPE_CHECKING:13 from langchain_core.agents import AgentAction, AgentFinish14 from langchain_core.messages import BaseMessage15 from langchain_core.outputs import LLMResult161718class StreamingStdOutCallbackHandler(BaseCallbackHandler):19 """Callback handler for streaming.2021 !!! warning "Only works with LLMs that support streaming."22 """2324 def on_llm_start(25 self, serialized: dict[str, Any], prompts: list[str], **kwargs: Any26 ) -> None:27 """Run when LLM starts running.2829 Args:30 serialized: The serialized LLM.31 prompts: The prompts to run.32 **kwargs: Additional keyword arguments.33 """3435 def on_chat_model_start(36 self,37 serialized: dict[str, Any],38 messages: list[list[BaseMessage]],39 **kwargs: Any,40 ) -> None:41 """Run when LLM starts running.4243 Args:44 serialized: The serialized LLM.45 messages: The messages to run.46 **kwargs: Additional keyword arguments.47 """4849 @override50 def on_llm_new_token(self, token: str, **kwargs: Any) -> None:51 """Run on new LLM token. Only available when streaming is enabled.5253 Args:54 token: The new token.55 **kwargs: Additional keyword arguments.56 """57 sys.stdout.write(token)58 sys.stdout.flush()5960 def on_llm_end(self, response: LLMResult, **kwargs: Any) -> None:61 """Run when LLM ends running.6263 Args:64 response: The response from the LLM.65 **kwargs: Additional keyword arguments.66 """6768 def on_llm_error(self, error: BaseException, **kwargs: Any) -> None:69 """Run when LLM errors.7071 Args:72 error: The error that occurred.73 **kwargs: Additional keyword arguments.74 """7576 def on_chain_start(77 self, serialized: dict[str, Any], inputs: dict[str, Any], **kwargs: Any78 ) -> None:79 """Run when a chain starts running.8081 Args:82 serialized: The serialized chain.83 inputs: The inputs to the chain.84 **kwargs: Additional keyword arguments.85 """8687 def on_chain_end(self, outputs: dict[str, Any], **kwargs: Any) -> None:88 """Run when a chain ends running.8990 Args:91 outputs: The outputs of the chain.92 **kwargs: Additional keyword arguments.93 """9495 def on_chain_error(self, error: BaseException, **kwargs: Any) -> None:96 """Run when chain errors.9798 Args:99 error: The error that occurred.100 **kwargs: Additional keyword arguments.101 """102103 def on_tool_start(104 self, serialized: dict[str, Any], input_str: str, **kwargs: Any105 ) -> None:106 """Run when the tool starts running.107108 Args:109 serialized: The serialized tool.110 input_str: The input string.111 **kwargs: Additional keyword arguments.112 """113114 def on_agent_action(self, action: AgentAction, **kwargs: Any) -> Any:115 """Run on agent action.116117 Args:118 action: The agent action.119 **kwargs: Additional keyword arguments.120 """121122 def on_tool_end(self, output: Any, **kwargs: Any) -> None:123 """Run when tool ends running.124125 Args:126 output: The output of the tool.127 **kwargs: Additional keyword arguments.128 """129130 def on_tool_error(self, error: BaseException, **kwargs: Any) -> None:131 """Run when tool errors.132133 Args:134 error: The error that occurred.135 **kwargs: Additional keyword arguments.136 """137138 def on_text(self, text: str, **kwargs: Any) -> None:139 """Run on an arbitrary text.140141 Args:142 text: The text to print.143 **kwargs: Additional keyword arguments.144 """145146 def on_agent_finish(self, finish: AgentFinish, **kwargs: Any) -> None:147 """Run on the agent end.148149 Args:150 finish: The agent finish.151 **kwargs: Additional keyword arguments.152 """
Same data, no extra tab — call code_get_file + code_get_findings over MCP from Claude/Cursor/Copilot.