{"type":"begin","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"}}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"from comate_cli.terminal_agent.event_renderer import EventRenderer\n"},"line_number":51,"absolute_offset":1589,"submatches":[{"match":{"text":"renderer"},"start":37,"end":45}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"        renderer: EventRenderer,\n"},"line_number":142,"absolute_offset":4719,"submatches":[{"match":{"text":"renderer"},"start":8,"end":16}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"        self._renderer = renderer\n"},"line_number":150,"absolute_offset":4957,"submatches":[{"match":{"text":"renderer"},"start":14,"end":22},{"match":{"text":"renderer"},"start":25,"end":33}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"        self._renderer._show_thinking_cb = lambda: self._show_thinking\n"},"line_number":188,"absolute_offset":6414,"submatches":[{"match":{"text":"renderer"},"start":14,"end":22}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"        self._ui_tick_task: asyncio.Task[None] | None = None\n"},"line_number":249,"absolute_offset":9063,"submatches":[{"match":{"text":"_ui_tick"},"start":13,"end":21}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"        # erase-to-end-of-line resetting the background to the terminal default.\n"},"line_number":317,"absolute_offset":11955,"submatches":[{"match":{"text":"erase"},"start":10,"end":15}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"        # (prompt_toolkit renderer resets attributes before erase_end_of_line.)\n"},"line_number":318,"absolute_offset":12036,"submatches":[{"match":{"text":"renderer"},"start":26,"end":34},{"match":{"text":"erase"},"start":60,"end":65}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"            filter=Condition(lambda: self._renderer.has_active_todos()),\n"},"line_number":355,"absolute_offset":13623,"submatches":[{"match":{"text":"renderer"},"start":43,"end":51}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                and self._renderer.latest_diff_lines is not None\n"},"line_number":401,"absolute_offset":15359,"submatches":[{"match":{"text":"renderer"},"start":26,"end":34}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"            lambda: self._renderer.has_active_todos()\n"},"line_number":458,"absolute_offset":17681,"submatches":[{"match":{"text":"renderer"},"start":26,"end":34}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                and self._renderer.latest_diff_lines is not None\n"},"line_number":461,"absolute_offset":17793,"submatches":[{"match":{"text":"renderer"},"start":26,"end":34}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                and self._renderer.latest_diff_lines is not None\n"},"line_number":467,"absolute_offset":17985,"submatches":[{"match":{"text":"renderer"},"start":26,"end":34}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                        lambda: self._renderer.has_running_tools()\n"},"line_number":478,"absolute_offset":18361,"submatches":[{"match":{"text":"renderer"},"start":38,"end":46}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                        and self._renderer.has_active_todos()\n"},"line_number":479,"absolute_offset":18428,"submatches":[{"match":{"text":"renderer"},"start":34,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"        renderer = self._renderer\n"},"line_number":611,"absolute_offset":24808,"submatches":[{"match":{"text":"renderer"},"start":8,"end":16},{"match":{"text":"renderer"},"start":25,"end":33}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                len(self._renderer.history_entries()),\n"},"line_number":625,"absolute_offset":25352,"submatches":[{"match":{"text":"renderer"},"start":26,"end":34}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                renderer.append_team_message_event(\n"},"line_number":629,"absolute_offset":25456,"submatches":[{"match":{"text":"renderer"},"start":16,"end":24}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"            self._renderer.append_system_message(warning, severity=\"warning\")\n"},"line_number":720,"absolute_offset":28939,"submatches":[{"match":{"text":"renderer"},"start":18,"end":26}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"            self._renderer.append_elapsed_message(f\"Interrupted after {duration_str}\")\n"},"line_number":876,"absolute_offset":34942,"submatches":[{"match":{"text":"renderer"},"start":18,"end":26}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"        self._renderer.append_elapsed_message(f\"✻ {verb} in {duration_str}\")\n"},"line_number":880,"absolute_offset":35103,"submatches":[{"match":{"text":"renderer"},"start":14,"end":22}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"        self._invalidate()\n"},"line_number":903,"absolute_offset":35966,"submatches":[{"match":{"text":"_invalidate"},"start":13,"end":24}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"        self._renderer.append_system_message(message, severity=severity)\n"},"line_number":911,"absolute_offset":36285,"submatches":[{"match":{"text":"renderer"},"start":14,"end":22}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"        self._renderer.interrupt_turn()\n"},"line_number":912,"absolute_offset":36358,"submatches":[{"match":{"text":"renderer"},"start":14,"end":22}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"            self._renderer.append_system_message(\n"},"line_number":930,"absolute_offset":36979,"submatches":[{"match":{"text":"renderer"},"start":18,"end":26}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"        self._renderer.start_turn()\n"},"line_number":953,"absolute_offset":37833,"submatches":[{"match":{"text":"renderer"},"start":14,"end":22}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"        self._renderer.seed_user_message(\n"},"line_number":954,"absolute_offset":37869,"submatches":[{"match":{"text":"renderer"},"start":14,"end":22}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                            self._renderer.start_turn()\n"},"line_number":1026,"absolute_offset":41335,"submatches":[{"match":{"text":"renderer"},"start":34,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                            self._renderer.seed_user_message(display_text)\n"},"line_number":1030,"absolute_offset":41616,"submatches":[{"match":{"text":"renderer"},"start":34,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                    self._invalidate()\n"},"line_number":1032,"absolute_offset":41734,"submatches":[{"match":{"text":"_invalidate"},"start":25,"end":36}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                            self._renderer.seed_user_message(display_text)\n"},"line_number":1042,"absolute_offset":42248,"submatches":[{"match":{"text":"renderer"},"start":34,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                        self._renderer.start_turn()\n"},"line_number":1054,"absolute_offset":42967,"submatches":[{"match":{"text":"renderer"},"start":30,"end":38}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                is_waiting, new_questions = self._renderer.handle_event(event)\n"},"line_number":1083,"absolute_offset":44588,"submatches":[{"match":{"text":"renderer"},"start":50,"end":58}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                    self._renderer.append_system_message(message, severity=severity)\n"},"line_number":1093,"absolute_offset":45109,"submatches":[{"match":{"text":"renderer"},"start":26,"end":34}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                    self._renderer.finalize_turn()\n"},"line_number":1104,"absolute_offset":45765,"submatches":[{"match":{"text":"renderer"},"start":26,"end":34}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                            self._renderer.append_system_message(\n"},"line_number":1123,"absolute_offset":46730,"submatches":[{"match":{"text":"renderer"},"start":34,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"            self._renderer.append_system_message(\n"},"line_number":1214,"absolute_offset":50317,"submatches":[{"match":{"text":"renderer"},"start":18,"end":26}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"        self._invalidate()\n"},"line_number":1222,"absolute_offset":50603,"submatches":[{"match":{"text":"_invalidate"},"start":13,"end":24}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"        self._renderer.append_system_message(f\"Plan approved: {plan_path}\")\n"},"line_number":1239,"absolute_offset":51123,"submatches":[{"match":{"text":"renderer"},"start":14,"end":22}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"        self._renderer.append_system_message(f\"Plan rejected: {plan_path}\")\n"},"line_number":1250,"absolute_offset":51584,"submatches":[{"match":{"text":"renderer"},"start":14,"end":22}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"        if self._renderer.has_running_tools():\n"},"line_number":1270,"absolute_offset":52359,"submatches":[{"match":{"text":"renderer"},"start":17,"end":25}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"        self._invalidate()\n"},"line_number":1299,"absolute_offset":53570,"submatches":[{"match":{"text":"_invalidate"},"start":13,"end":24}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"        self._invalidate()\n"},"line_number":1310,"absolute_offset":53999,"submatches":[{"match":{"text":"_invalidate"},"start":13,"end":24}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"    async def _ui_tick(self) -> None:\n"},"line_number":1357,"absolute_offset":55714,"submatches":[{"match":{"text":"_ui_tick"},"start":14,"end":22}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                self._renderer.tick_progress()\n"},"line_number":1360,"absolute_offset":55802,"submatches":[{"match":{"text":"renderer"},"start":22,"end":30}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                loading_line = self._renderer.loading_line().strip()\n"},"line_number":1395,"absolute_offset":57530,"submatches":[{"match":{"text":"renderer"},"start":37,"end":45}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                if self._renderer.has_running_tools():\n"},"line_number":1401,"absolute_offset":57815,"submatches":[{"match":{"text":"renderer"},"start":25,"end":33}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                    self._invalidate()\n"},"line_number":1408,"absolute_offset":58098,"submatches":[{"match":{"text":"_invalidate"},"start":25,"end":36}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                    or self._renderer.has_running_tools()\n"},"line_number":1415,"absolute_offset":58394,"submatches":[{"match":{"text":"renderer"},"start":29,"end":37}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                            self._renderer._update_tasks(task_dicts, list_id=list_id)\n"},"line_number":1428,"absolute_offset":59090,"submatches":[{"match":{"text":"renderer"},"start":34,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"    def _invalidate(self) -> None:\n"},"line_number":1435,"absolute_offset":59335,"submatches":[{"match":{"text":"_invalidate"},"start":8,"end":19}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                self._renderer.append_system_message(\n"},"line_number":1453,"absolute_offset":59912,"submatches":[{"match":{"text":"renderer"},"start":22,"end":30}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                self._renderer.append_system_message(\n"},"line_number":1459,"absolute_offset":60173,"submatches":[{"match":{"text":"renderer"},"start":22,"end":30}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"        self._ui_tick_task = asyncio.create_task(\n"},"line_number":1571,"absolute_offset":63972,"submatches":[{"match":{"text":"_ui_tick"},"start":13,"end":21}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"            self._ui_tick(),\n"},"line_number":1572,"absolute_offset":64022,"submatches":[{"match":{"text":"_ui_tick"},"start":17,"end":25}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"            if self._ui_tick_task is not None:\n"},"line_number":1593,"absolute_offset":64890,"submatches":[{"match":{"text":"_ui_tick"},"start":20,"end":28}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                self._ui_tick_task.cancel()\n"},"line_number":1594,"absolute_offset":64937,"submatches":[{"match":{"text":"_ui_tick"},"start":21,"end":29}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                    await self._ui_tick_task\n"},"line_number":1596,"absolute_offset":65036,"submatches":[{"match":{"text":"_ui_tick"},"start":31,"end":39}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"            self._renderer.close()\n"},"line_number":1602,"absolute_offset":65333,"submatches":[{"match":{"text":"renderer"},"start":18,"end":26}]}}
{"type":"end","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":432710,"human":"0.000433s"},"searches":1,"searches_with_match":1,"bytes_searched":72879,"bytes_printed":18280,"matched_lines":58,"matches":61}}}
{"data":{"elapsed_total":{"human":"0.002588s","nanos":2588443,"secs":0},"stats":{"bytes_printed":18280,"bytes_searched":72879,"elapsed":{"human":"0.000433s","nanos":432710,"secs":0},"matched_lines":58,"matches":61,"searches":1,"searches_with_match":1}},"type":"summary"}
