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(51 self, token: str | list[str | dict[str, Any]], **kwargs: Any52 ) -> None:53 """Run on new LLM token. Only available when streaming is enabled.5455 Args:56 token: The new token, or a list of content blocks.57 **kwargs: Additional keyword arguments.58 """59 sys.stdout.write(str(token))60 sys.stdout.flush()6162 def on_llm_end(self, response: LLMResult, **kwargs: Any) -> None:63 """Run when LLM ends running.6465 Args:66 response: The response from the LLM.67 **kwargs: Additional keyword arguments.68 """6970 def on_llm_error(self, error: BaseException, **kwargs: Any) -> None:71 """Run when LLM errors.7273 Args:74 error: The error that occurred.75 **kwargs: Additional keyword arguments.76 """7778 def on_chain_start(79 self, serialized: dict[str, Any], inputs: dict[str, Any], **kwargs: Any80 ) -> None:81 """Run when a chain starts running.8283 Args:84 serialized: The serialized chain.85 inputs: The inputs to the chain.86 **kwargs: Additional keyword arguments.87 """8889 def on_chain_end(self, outputs: dict[str, Any], **kwargs: Any) -> None:90 """Run when a chain ends running.9192 Args:93 outputs: The outputs of the chain.94 **kwargs: Additional keyword arguments.95 """9697 def on_chain_error(self, error: BaseException, **kwargs: Any) -> None:98 """Run when chain errors.99100 Args:101 error: The error that occurred.102 **kwargs: Additional keyword arguments.103 """104105 def on_tool_start(106 self, serialized: dict[str, Any], input_str: str, **kwargs: Any107 ) -> None:108 """Run when the tool starts running.109110 Args:111 serialized: The serialized tool.112 input_str: The input string.113 **kwargs: Additional keyword arguments.114 """115116 def on_agent_action(self, action: AgentAction, **kwargs: Any) -> Any:117 """Run on agent action.118119 Args:120 action: The agent action.121 **kwargs: Additional keyword arguments.122 """123124 def on_tool_end(self, output: Any, **kwargs: Any) -> None:125 """Run when tool ends running.126127 Args:128 output: The output of the tool.129 **kwargs: Additional keyword arguments.130 """131132 def on_tool_error(self, error: BaseException, **kwargs: Any) -> None:133 """Run when tool errors.134135 Args:136 error: The error that occurred.137 **kwargs: Additional keyword arguments.138 """139140 def on_text(self, text: str, **kwargs: Any) -> None:141 """Run on an arbitrary text.142143 Args:144 text: The text to print.145 **kwargs: Additional keyword arguments.146 """147148 def on_agent_finish(self, finish: AgentFinish, **kwargs: Any) -> None:149 """Run on the agent end.150151 Args:152 finish: The agent finish.153 **kwargs: Additional keyword arguments.154 """
Same data, no extra tab — call code_get_file + code_get_findings over MCP from Claude/Cursor/Copilot.