"""finish_pocket — 수렴 판정 (1파일 = 1함수, FunctionTool). escalate로 이번 턴 파이프라인을 종료 신호로 표시한다. 최종 전이는 services/pocket.py의 코드 재검증을 거쳐야만 확정된다 (LLM 출력만으로 전이 금지). """ from google.adk.tools import ToolContext def finish_pocket(reason: str, tool_context: ToolContext) -> dict: """장면 수렴을 선언한다. Args: reason: "goal_reached" | "drift" | "stall" """ tool_context.state["pocket_converged"] = True tool_context.state["pocket_converge_reason"] = reason tool_context.actions.escalate = True return {"status": "ok", "reason": reason}