{"type":"begin","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_transcript_viewer_tool_fold.py"}}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_transcript_viewer_tool_fold.py"},"lines":{"text":"                    entry_type=\"tool_fold\",\n"},"line_number":33,"absolute_offset":1015,"submatches":[{"match":{"text":"tool_fold"},"start":32,"end":41}]}}
{"type":"end","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_transcript_viewer_tool_fold.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":41856,"human":"0.000042s"},"searches":1,"searches_with_match":1,"bytes_searched":1468,"bytes_printed":439,"matched_lines":1,"matches":1}}}
{"type":"begin","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold_panel.py"}}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold_panel.py"},"lines":{"text":"from comate_cli.terminal_agent.tool_fold import ToolFoldSnapshot\n"},"line_number":7,"absolute_offset":131,"submatches":[{"match":{"text":"tool_fold"},"start":31,"end":40}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold_panel.py"},"lines":{"text":"    def active_tool_fold_snapshot(self) -> ToolFoldSnapshot | None:\n"},"line_number":21,"absolute_offset":509,"submatches":[{"match":{"text":"tool_fold"},"start":15,"end":24}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold_panel.py"},"lines":{"text":"        frags = host._tool_fold_text()\n"},"line_number":89,"absolute_offset":2475,"submatches":[{"match":{"text":"_tool_fold_text"},"start":21,"end":36}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold_panel.py"},"lines":{"text":"        self.assertTrue(host._has_active_tool_fold())\n"},"line_number":94,"absolute_offset":2665,"submatches":[{"match":{"text":"tool_fold"},"start":41,"end":50}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold_panel.py"},"lines":{"text":"        self.assertEqual(host._tool_fold_height(), 3)\n"},"line_number":96,"absolute_offset":2781,"submatches":[{"match":{"text":"_tool_fold_height"},"start":30,"end":47}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold_panel.py"},"lines":{"text":"        text = _plain(host._tool_fold_text())\n"},"line_number":115,"absolute_offset":3422,"submatches":[{"match":{"text":"_tool_fold_text"},"start":27,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold_panel.py"},"lines":{"text":"        frags = host._tool_fold_text()\n"},"line_number":135,"absolute_offset":4015,"submatches":[{"match":{"text":"_tool_fold_text"},"start":21,"end":36}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold_panel.py"},"lines":{"text":"        self.assertTrue(host._has_active_tool_fold())\n"},"line_number":183,"absolute_offset":5689,"submatches":[{"match":{"text":"tool_fold"},"start":41,"end":50}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold_panel.py"},"lines":{"text":"        self.assertEqual(host._tool_fold_height(), 3)\n"},"line_number":184,"absolute_offset":5743,"submatches":[{"match":{"text":"_tool_fold_height"},"start":30,"end":47}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold_panel.py"},"lines":{"text":"        text = _plain(host._tool_fold_text())\n"},"line_number":185,"absolute_offset":5797,"submatches":[{"match":{"text":"_tool_fold_text"},"start":27,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold_panel.py"},"lines":{"text":"        self.assertFalse(host._has_active_tool_fold())\n"},"line_number":192,"absolute_offset":6059,"submatches":[{"match":{"text":"tool_fold"},"start":42,"end":51}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold_panel.py"},"lines":{"text":"        self.assertEqual(host._tool_fold_text(), [(\"\", \" \")])\n"},"line_number":193,"absolute_offset":6114,"submatches":[{"match":{"text":"_tool_fold_text"},"start":30,"end":45}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold_panel.py"},"lines":{"text":"        self.assertEqual(host._tool_fold_height(), 1)\n"},"line_number":194,"absolute_offset":6176,"submatches":[{"match":{"text":"_tool_fold_height"},"start":30,"end":47}]}}
{"type":"end","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold_panel.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":87794,"human":"0.000088s"},"searches":1,"searches_with_match":1,"bytes_searched":6230,"bytes_printed":4098,"matched_lines":13,"matches":13}}}
{"type":"begin","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_sync_tool_fold.py"}}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_sync_tool_fold.py"},"lines":{"text":"    def test_resume_replays_consecutive_read_search_as_tool_fold(self) -> None:\n"},"line_number":43,"absolute_offset":1243,"submatches":[{"match":{"text":"tool_fold"},"start":55,"end":64}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_sync_tool_fold.py"},"lines":{"text":"        folds = [entry for entry in entries if entry.entry_type == \"tool_fold\"]\n"},"line_number":94,"absolute_offset":3065,"submatches":[{"match":{"text":"tool_fold"},"start":68,"end":77}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_sync_tool_fold.py"},"lines":{"text":"        folds = [entry for entry in entries if entry.entry_type == \"tool_fold\"]\n"},"line_number":153,"absolute_offset":5345,"submatches":[{"match":{"text":"tool_fold"},"start":68,"end":77}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_sync_tool_fold.py"},"lines":{"text":"        folds = [entry for entry in entries if entry.entry_type == \"tool_fold\"]\n"},"line_number":216,"absolute_offset":7707,"submatches":[{"match":{"text":"tool_fold"},"start":68,"end":77}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_sync_tool_fold.py"},"lines":{"text":"            folds = [entry for entry in entries if entry.entry_type == \"tool_fold\"]\n"},"line_number":282,"absolute_offset":10639,"submatches":[{"match":{"text":"tool_fold"},"start":72,"end":81}]}}
{"type":"end","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_sync_tool_fold.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":47564,"human":"0.000048s"},"searches":1,"searches_with_match":1,"bytes_searched":11121,"bytes_printed":1819,"matched_lines":5,"matches":5}}}
{"type":"begin","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold.py"}}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold.py"},"lines":{"text":"from comate_cli.terminal_agent.tool_fold import (\n"},"line_number":8,"absolute_offset":106,"submatches":[{"match":{"text":"tool_fold"},"start":31,"end":40}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold.py"},"lines":{"text":"    tool_fold_kind,\n"},"line_number":14,"absolute_offset":267,"submatches":[{"match":{"text":"tool_fold"},"start":4,"end":13}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold.py"},"lines":{"text":"                self.assertEqual(tool_fold_kind(\"Bash\", {\"command\": command}), kind)\n"},"line_number":107,"absolute_offset":4078,"submatches":[{"match":{"text":"tool_fold"},"start":33,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold.py"},"lines":{"text":"                        tool_fold_kind(\n"},"line_number":257,"absolute_offset":10149,"submatches":[{"match":{"text":"tool_fold"},"start":24,"end":33}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold.py"},"lines":{"text":"                        tool_fold_kind(\n"},"line_number":265,"absolute_offset":10474,"submatches":[{"match":{"text":"tool_fold"},"start":24,"end":33}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold.py"},"lines":{"text":"                    self.assertIsNone(tool_fold_kind(tool, {\"file_path\": str(scratchpad / \"n.md\")}))\n"},"line_number":272,"absolute_offset":10831,"submatches":[{"match":{"text":"tool_fold"},"start":38,"end":47}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold.py"},"lines":{"text":"                tool_fold_kind(\n"},"line_number":279,"absolute_offset":11254,"submatches":[{"match":{"text":"tool_fold"},"start":16,"end":25}]}}
{"type":"end","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tool_fold.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":73918,"human":"0.000074s"},"searches":1,"searches_with_match":1,"bytes_searched":16446,"bytes_printed":2190,"matched_lines":7,"matches":7}}}
{"type":"begin","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_approval_panel_visibility.py"}}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_approval_panel_visibility.py"},"lines":{"text":"    def _has_active_tool_fold(self) -> bool:\n"},"line_number":76,"absolute_offset":2508,"submatches":[{"match":{"text":"tool_fold"},"start":20,"end":29}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_approval_panel_visibility.py"},"lines":{"text":"    def _tool_fold_height(self) -> int:\n"},"line_number":79,"absolute_offset":2591,"submatches":[{"match":{"text":"_tool_fold_height"},"start":8,"end":25}]}}
{"type":"end","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_approval_panel_visibility.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":61428,"human":"0.000061s"},"searches":1,"searches_with_match":1,"bytes_searched":13187,"bytes_printed":739,"matched_lines":2,"matches":2}}}
{"type":"begin","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_printer_tool_fold.py"}}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_printer_tool_fold.py"},"lines":{"text":"    def test_tool_fold_renders_in_thinking_style_with_expand_hint(self) -> None:\n"},"line_number":21,"absolute_offset":553,"submatches":[{"match":{"text":"tool_fold"},"start":13,"end":22}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_printer_tool_fold.py"},"lines":{"text":"                    entry_type=\"tool_fold\",\n"},"line_number":26,"absolute_offset":739,"submatches":[{"match":{"text":"tool_fold"},"start":32,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_printer_tool_fold.py"},"lines":{"text":"    def test_tool_fold_without_tool_call_ids_omits_expand_hint(self) -> None:\n"},"line_number":42,"absolute_offset":1334,"submatches":[{"match":{"text":"tool_fold"},"start":13,"end":22}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_printer_tool_fold.py"},"lines":{"text":"                    entry_type=\"tool_fold\",\n"},"line_number":47,"absolute_offset":1517,"submatches":[{"match":{"text":"tool_fold"},"start":32,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_printer_tool_fold.py"},"lines":{"text":"    def test_committed_tool_fold_drops_subtitle_hint(self) -> None:\n"},"line_number":62,"absolute_offset":1951,"submatches":[{"match":{"text":"tool_fold"},"start":23,"end":32}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_printer_tool_fold.py"},"lines":{"text":"                    entry_type=\"tool_fold\",\n"},"line_number":71,"absolute_offset":2470,"submatches":[{"match":{"text":"tool_fold"},"start":32,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_printer_tool_fold.py"},"lines":{"text":"    def test_error_tool_fold_drops_error_summary_subtitle(self) -> None:\n"},"line_number":86,"absolute_offset":2941,"submatches":[{"match":{"text":"tool_fold"},"start":19,"end":28}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_printer_tool_fold.py"},"lines":{"text":"                    entry_type=\"tool_fold\",\n"},"line_number":93,"absolute_offset":3298,"submatches":[{"match":{"text":"tool_fold"},"start":32,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_printer_tool_fold.py"},"lines":{"text":"    def test_error_tool_fold_keeps_dim_style_without_dot(self) -> None:\n"},"line_number":106,"absolute_offset":3719,"submatches":[{"match":{"text":"tool_fold"},"start":19,"end":28}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_printer_tool_fold.py"},"lines":{"text":"                    entry_type=\"tool_fold\",\n"},"line_number":111,"absolute_offset":3896,"submatches":[{"match":{"text":"tool_fold"},"start":32,"end":41}]}}
{"type":"end","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_printer_tool_fold.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":65782,"human":"0.000066s"},"searches":1,"searches_with_match":1,"bytes_searched":4716,"bytes_printed":3313,"matched_lines":10,"matches":10}}}
{"type":"begin","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tui_scratchpad_fold_wiring.py"}}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tui_scratchpad_fold_wiring.py"},"lines":{"text":"        snapshot = renderer.active_tool_fold_snapshot()\n"},"line_number":85,"absolute_offset":3283,"submatches":[{"match":{"text":"tool_fold"},"start":35,"end":44}]}}
{"type":"end","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_tui_scratchpad_fold_wiring.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":20844,"human":"0.000021s"},"searches":1,"searches_with_match":1,"bytes_searched":3917,"bytes_printed":447,"matched_lines":1,"matches":1}}}
{"type":"begin","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_stream_staging_panel.py"}}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_stream_staging_panel.py"},"lines":{"text":"    def _has_active_tool_fold(self) -> bool:\n"},"line_number":26,"absolute_offset":824,"submatches":[{"match":{"text":"tool_fold"},"start":20,"end":29}]}}
{"type":"end","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_stream_staging_panel.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":13414,"human":"0.000013s"},"searches":1,"searches_with_match":1,"bytes_searched":7611,"bytes_printed":423,"matched_lines":1,"matches":1}}}
{"type":"begin","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_sync.py"}}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_sync.py"},"lines":{"text":"        tool_folds = [\n"},"line_number":667,"absolute_offset":24135,"submatches":[{"match":{"text":"tool_fold"},"start":8,"end":17}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_sync.py"},"lines":{"text":"            entry for entry in sync._renderer.history_entries() if entry.entry_type == \"tool_fold\"\n"},"line_number":668,"absolute_offset":24158,"submatches":[{"match":{"text":"tool_fold"},"start":88,"end":97}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_sync.py"},"lines":{"text":"        self.assertEqual(len(tool_folds), 1)\n"},"line_number":670,"absolute_offset":24267,"submatches":[{"match":{"text":"tool_fold"},"start":29,"end":38}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_sync.py"},"lines":{"text":"        self.assertEqual(tool_folds[0].tool_call_ids, (\"tc_read_observable\",))\n"},"line_number":671,"absolute_offset":24312,"submatches":[{"match":{"text":"tool_fold"},"start":25,"end":34}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_sync.py"},"lines":{"text":"        self.assertIn(\"README.md\", str(tool_folds[0].subtitle))\n"},"line_number":672,"absolute_offset":24391,"submatches":[{"match":{"text":"tool_fold"},"start":39,"end":48}]}}
{"type":"end","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_history_sync.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":53564,"human":"0.000054s"},"searches":1,"searches_with_match":1,"bytes_searched":27019,"bytes_printed":1668,"matched_lines":5,"matches":5}}}
{"type":"begin","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer.py"}}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer.py"},"lines":{"text":"        self.assertIn(\"tool_fold\", entry_types)\n"},"line_number":393,"absolute_offset":13962,"submatches":[{"match":{"text":"tool_fold"},"start":23,"end":32}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer.py"},"lines":{"text":"        tool_fold_entry = next(\n"},"line_number":742,"absolute_offset":26692,"submatches":[{"match":{"text":"tool_fold"},"start":8,"end":17}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer.py"},"lines":{"text":"            entry for entry in renderer.history_entries() if entry.entry_type == \"tool_fold\"\n"},"line_number":743,"absolute_offset":26724,"submatches":[{"match":{"text":"tool_fold"},"start":82,"end":91}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer.py"},"lines":{"text":"        self.assertEqual(tool_fold_entry.text, \"Read 1 file\")\n"},"line_number":745,"absolute_offset":26827,"submatches":[{"match":{"text":"tool_fold"},"start":25,"end":34}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer.py"},"lines":{"text":"        self.assertNotIn(\"boom\", tool_fold_entry.text)\n"},"line_number":747,"absolute_offset":26945,"submatches":[{"match":{"text":"tool_fold"},"start":33,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer.py"},"lines":{"text":"        self.assertIn(\"boom\", tool_fold_entry.subtitle)\n"},"line_number":748,"absolute_offset":27000,"submatches":[{"match":{"text":"tool_fold"},"start":30,"end":39}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer.py"},"lines":{"text":"        entries = [e for e in renderer.history_entries() if e.entry_type == \"tool_fold\"]\n"},"line_number":1564,"absolute_offset":59875,"submatches":[{"match":{"text":"tool_fold"},"start":77,"end":86}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer.py"},"lines":{"text":"        self.assertEqual(last.entry_type, \"tool_fold\")\n"},"line_number":1827,"absolute_offset":70479,"submatches":[{"match":{"text":"tool_fold"},"start":43,"end":52}]}}
{"type":"end","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":118907,"human":"0.000119s"},"searches":1,"searches_with_match":1,"bytes_searched":76149,"bytes_printed":2617,"matched_lines":8,"matches":8}}}
{"type":"begin","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer_tool_fold.py"}}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer_tool_fold.py"},"lines":{"text":"        snapshot = renderer.active_tool_fold_snapshot()\n"},"line_number":35,"absolute_offset":1052,"submatches":[{"match":{"text":"tool_fold"},"start":35,"end":44}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer_tool_fold.py"},"lines":{"text":"        self.assertEqual([e.entry_type for e in entries], [\"tool_fold\", \"assistant\"])\n"},"line_number":65,"absolute_offset":2150,"submatches":[{"match":{"text":"tool_fold"},"start":60,"end":69}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer_tool_fold.py"},"lines":{"text":"        self.assertIsNone(renderer.active_tool_fold_snapshot())\n"},"line_number":69,"absolute_offset":2421,"submatches":[{"match":{"text":"tool_fold"},"start":42,"end":51}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer_tool_fold.py"},"lines":{"text":"        self.assertEqual(entries[0].entry_type, \"tool_fold\")\n"},"line_number":99,"absolute_offset":3358,"submatches":[{"match":{"text":"tool_fold"},"start":49,"end":58}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer_tool_fold.py"},"lines":{"text":"        self.assertEqual(entries[0].entry_type, \"tool_fold\")\n"},"line_number":124,"absolute_offset":4185,"submatches":[{"match":{"text":"tool_fold"},"start":49,"end":58}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer_tool_fold.py"},"lines":{"text":"        self.assertEqual(entry.entry_type, \"tool_fold\")\n"},"line_number":148,"absolute_offset":4930,"submatches":[{"match":{"text":"tool_fold"},"start":44,"end":53}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer_tool_fold.py"},"lines":{"text":"        snapshot = renderer.active_tool_fold_snapshot()\n"},"line_number":163,"absolute_offset":5472,"submatches":[{"match":{"text":"tool_fold"},"start":35,"end":44}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer_tool_fold.py"},"lines":{"text":"        self.assertEqual(entries[0].entry_type, \"tool_fold\")\n"},"line_number":208,"absolute_offset":7031,"submatches":[{"match":{"text":"tool_fold"},"start":49,"end":58}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer_tool_fold.py"},"lines":{"text":"        self.assertEqual(entries[0].entry_type, \"tool_fold\")\n"},"line_number":237,"absolute_offset":8136,"submatches":[{"match":{"text":"tool_fold"},"start":49,"end":58}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer_tool_fold.py"},"lines":{"text":"            [\"tool_fold\", \"tool_result\"],\n"},"line_number":282,"absolute_offset":9699,"submatches":[{"match":{"text":"tool_fold"},"start":14,"end":23}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer_tool_fold.py"},"lines":{"text":"        self.assertEqual(entry.entry_type, \"tool_fold\")\n"},"line_number":308,"absolute_offset":10570,"submatches":[{"match":{"text":"tool_fold"},"start":44,"end":53}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer_tool_fold.py"},"lines":{"text":"            snapshot = renderer.active_tool_fold_snapshot()\n"},"line_number":339,"absolute_offset":11883,"submatches":[{"match":{"text":"tool_fold"},"start":39,"end":48}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer_tool_fold.py"},"lines":{"text":"            self.assertEqual([e.entry_type for e in entries], [\"tool_fold\", \"tool_result\"])\n"},"line_number":364,"absolute_offset":12933,"submatches":[{"match":{"text":"tool_fold"},"start":64,"end":73}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer_tool_fold.py"},"lines":{"text":"        self.assertIsNone(renderer.active_tool_fold_snapshot())\n"},"line_number":387,"absolute_offset":13805,"submatches":[{"match":{"text":"tool_fold"},"start":42,"end":51}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer_tool_fold.py"},"lines":{"text":"            self.assertEqual(entry.entry_type, \"tool_fold\")\n"},"line_number":417,"absolute_offset":15074,"submatches":[{"match":{"text":"tool_fold"},"start":48,"end":57}]}}
{"type":"end","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/tests/test_event_renderer_tool_fold.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":77585,"human":"0.000078s"},"searches":1,"searches_with_match":1,"bytes_searched":15324,"bytes_printed":4963,"matched_lines":15,"matches":15}}}
{"type":"begin","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/transcript_viewer.py"}}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/transcript_viewer.py"},"lines":{"text":"# viewer 的语义是 \"展开 tool 调用\"，因此只渲染 user 锚点 + tool_result + tool_fold；\n"},"line_number":31,"absolute_offset":1074,"submatches":[{"match":{"text":"tool_fold"},"start":89,"end":98}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/transcript_viewer.py"},"lines":{"text":"_VIEWER_ENTRY_TYPES: frozenset[str] = frozenset({\"user\", \"tool_result\", \"tool_fold\"})\n"},"line_number":33,"absolute_offset":1251,"submatches":[{"match":{"text":"tool_fold"},"start":73,"end":82}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/transcript_viewer.py"},"lines":{"text":"    if entry.entry_type == \"tool_fold\":\n"},"line_number":228,"absolute_offset":7856,"submatches":[{"match":{"text":"tool_fold"},"start":28,"end":37}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/transcript_viewer.py"},"lines":{"text":"        if entry.entry_type == \"tool_fold\":\n"},"line_number":268,"absolute_offset":9399,"submatches":[{"match":{"text":"tool_fold"},"start":32,"end":41}]}}
{"type":"end","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/transcript_viewer.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":38128,"human":"0.000038s"},"searches":1,"searches_with_match":1,"bytes_searched":12933,"bytes_printed":1484,"matched_lines":4,"matches":4}}}
{"type":"begin","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/event_renderer.py"}}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/event_renderer.py"},"lines":{"text":"from comate_cli.terminal_agent.tool_fold import (\n"},"line_number":79,"absolute_offset":1999,"submatches":[{"match":{"text":"tool_fold"},"start":31,"end":40}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/event_renderer.py"},"lines":{"text":"        self._active_tool_fold = ActiveToolFold()\n"},"line_number":356,"absolute_offset":10631,"submatches":[{"match":{"text":"tool_fold"},"start":21,"end":30}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/event_renderer.py"},"lines":{"text":"    def _commit_active_tool_fold(self) -> None:\n"},"line_number":490,"absolute_offset":16365,"submatches":[{"match":{"text":"tool_fold"},"start":23,"end":32}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/event_renderer.py"},"lines":{"text":"        snapshot = self._active_tool_fold.snapshot(active=False)\n"},"line_number":491,"absolute_offset":16413,"submatches":[{"match":{"text":"tool_fold"},"start":32,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/event_renderer.py"},"lines":{"text":"                entry_type=\"tool_fold\",\n"},"line_number":496,"absolute_offset":16588,"submatches":[{"match":{"text":"tool_fold"},"start":28,"end":37}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/event_renderer.py"},"lines":{"text":"        self._active_tool_fold.clear()\n"},"line_number":503,"absolute_offset":16886,"submatches":[{"match":{"text":"tool_fold"},"start":21,"end":30}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/event_renderer.py"},"lines":{"text":"        self._commit_active_tool_fold()\n"},"line_number":959,"absolute_offset":36021,"submatches":[{"match":{"text":"tool_fold"},"start":28,"end":37}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/event_renderer.py"},"lines":{"text":"        self._commit_active_tool_fold()\n"},"line_number":993,"absolute_offset":37585,"submatches":[{"match":{"text":"tool_fold"},"start":28,"end":37}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/event_renderer.py"},"lines":{"text":"        self._commit_active_tool_fold()\n"},"line_number":1019,"absolute_offset":38483,"submatches":[{"match":{"text":"tool_fold"},"start":28,"end":37}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/event_renderer.py"},"lines":{"text":"    def active_tool_fold_snapshot(self) -> ToolFoldSnapshot | None:\n"},"line_number":1029,"absolute_offset":38842,"submatches":[{"match":{"text":"tool_fold"},"start":15,"end":24}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/event_renderer.py"},"lines":{"text":"        return self._active_tool_fold.snapshot(active=True)\n"},"line_number":1030,"absolute_offset":38910,"submatches":[{"match":{"text":"tool_fold"},"start":28,"end":37}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/event_renderer.py"},"lines":{"text":"        self._active_tool_fold.clear()\n"},"line_number":1040,"absolute_offset":39327,"submatches":[{"match":{"text":"tool_fold"},"start":21,"end":30}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/event_renderer.py"},"lines":{"text":"                    self._commit_active_tool_fold()\n"},"line_number":1930,"absolute_offset":74290,"submatches":[{"match":{"text":"tool_fold"},"start":40,"end":49}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/event_renderer.py"},"lines":{"text":"                    self._active_tool_fold.add_call(\n"},"line_number":2034,"absolute_offset":79777,"submatches":[{"match":{"text":"tool_fold"},"start":33,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/event_renderer.py"},"lines":{"text":"                self._commit_active_tool_fold()\n"},"line_number":2043,"absolute_offset":80202,"submatches":[{"match":{"text":"tool_fold"},"start":36,"end":45}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/event_renderer.py"},"lines":{"text":"                if self._active_tool_fold.has_call(tool_call_id):\n"},"line_number":2051,"absolute_offset":80771,"submatches":[{"match":{"text":"tool_fold"},"start":32,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/event_renderer.py"},"lines":{"text":"                    self._active_tool_fold.mark_result(\n"},"line_number":2067,"absolute_offset":81600,"submatches":[{"match":{"text":"tool_fold"},"start":33,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/event_renderer.py"},"lines":{"text":"                    self._commit_active_tool_fold()\n"},"line_number":2230,"absolute_offset":89321,"submatches":[{"match":{"text":"tool_fold"},"start":40,"end":49}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/event_renderer.py"},"lines":{"text":"                self._commit_active_tool_fold()\n"},"line_number":2240,"absolute_offset":89916,"submatches":[{"match":{"text":"tool_fold"},"start":36,"end":45}]}}
{"type":"end","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/event_renderer.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":165473,"human":"0.000165s"},"searches":1,"searches_with_match":1,"bytes_searched":91447,"bytes_printed":6116,"matched_lines":19,"matches":19}}}
{"type":"begin","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/models.py"}}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/models.py"},"lines":{"text":"    \"tool_fold\",\n"},"line_number":16,"absolute_offset":342,"submatches":[{"match":{"text":"tool_fold"},"start":5,"end":14}]}}
{"type":"end","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/models.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":13146,"human":"0.000013s"},"searches":1,"searches_with_match":1,"bytes_searched":3859,"bytes_printed":398,"matched_lines":1,"matches":1}}}
{"type":"begin","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tool_fold.py"}}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tool_fold.py"},"lines":{"text":"def tool_fold_kind(\n"},"line_number":79,"absolute_offset":2258,"submatches":[{"match":{"text":"tool_fold"},"start":4,"end":13}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tool_fold.py"},"lines":{"text":"    return tool_fold_kind(tool_name, args, scratchpad_dir=scratchpad_dir) is not None\n"},"line_number":105,"absolute_offset":3306,"submatches":[{"match":{"text":"tool_fold"},"start":11,"end":20}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tool_fold.py"},"lines":{"text":"    # mcp__server__func → \"server - func (MCP)\"。tool_fold 是零依赖数据模块,\n"},"line_number":141,"absolute_offset":4632,"submatches":[{"match":{"text":"tool_fold"},"start":52,"end":61}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tool_fold.py"},"lines":{"text":"    kind = tool_fold_kind(tool_name, args, scratchpad_dir=scratchpad_dir)\n"},"line_number":156,"absolute_offset":5115,"submatches":[{"match":{"text":"tool_fold"},"start":11,"end":20}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tool_fold.py"},"lines":{"text":"        kind = tool_fold_kind(tool_name, args, scratchpad_dir=scratchpad_dir)\n"},"line_number":251,"absolute_offset":8579,"submatches":[{"match":{"text":"tool_fold"},"start":15,"end":24}]}}
{"type":"end","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tool_fold.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":27667,"human":"0.000028s"},"searches":1,"searches_with_match":1,"bytes_searched":12045,"bytes_printed":1766,"matched_lines":5,"matches":5}}}
{"type":"begin","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"}}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"        self._tool_fold_control = FormattedTextControl(text=self._tool_fold_text)\n"},"line_number":545,"absolute_offset":21610,"submatches":[{"match":{"text":"tool_fold"},"start":14,"end":23},{"match":{"text":"_tool_fold_text"},"start":65,"end":80}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"        self._tool_fold_window = Window(\n"},"line_number":604,"absolute_offset":23933,"submatches":[{"match":{"text":"tool_fold"},"start":14,"end":23}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"            content=self._tool_fold_control,\n"},"line_number":605,"absolute_offset":23974,"submatches":[{"match":{"text":"tool_fold"},"start":26,"end":35}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"            height=self._tool_fold_height,\n"},"line_number":606,"absolute_offset":24019,"submatches":[{"match":{"text":"_tool_fold_height"},"start":24,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"        self._tool_fold_container = ConditionalContainer(\n"},"line_number":610,"absolute_offset":24144,"submatches":[{"match":{"text":"tool_fold"},"start":14,"end":23}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"            content=self._tool_fold_window,\n"},"line_number":611,"absolute_offset":24202,"submatches":[{"match":{"text":"tool_fold"},"start":26,"end":35}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                lambda: self._ui_mode != UIMode.BTW and self._has_active_tool_fold()\n"},"line_number":613,"absolute_offset":24276,"submatches":[{"match":{"text":"tool_fold"},"start":73,"end":82}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"lines":{"text":"                self._tool_fold_container,\n"},"line_number":785,"absolute_offset":31581,"submatches":[{"match":{"text":"tool_fold"},"start":22,"end":31}]}}
{"type":"end","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":196569,"human":"0.000197s"},"searches":1,"searches_with_match":1,"bytes_searched":140435,"bytes_printed":2654,"matched_lines":8,"matches":9}}}
{"type":"begin","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/render_panels.py"}}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/render_panels.py"},"lines":{"text":"        if self._has_active_tool_fold():\n"},"line_number":157,"absolute_offset":4700,"submatches":[{"match":{"text":"tool_fold"},"start":28,"end":37}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/render_panels.py"},"lines":{"text":"            reserved_rows += self._tool_fold_height()\n"},"line_number":158,"absolute_offset":4741,"submatches":[{"match":{"text":"_tool_fold_height"},"start":34,"end":51}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/render_panels.py"},"lines":{"text":"        if self._has_active_tool_fold():\n"},"line_number":374,"absolute_offset":14725,"submatches":[{"match":{"text":"tool_fold"},"start":28,"end":37}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/render_panels.py"},"lines":{"text":"            reserved += self._tool_fold_height()\n"},"line_number":375,"absolute_offset":14766,"submatches":[{"match":{"text":"_tool_fold_height"},"start":29,"end":46}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/render_panels.py"},"lines":{"text":"        if self._has_active_tool_fold():\n"},"line_number":755,"absolute_offset":30751,"submatches":[{"match":{"text":"tool_fold"},"start":28,"end":37}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/render_panels.py"},"lines":{"text":"            rows += self._tool_fold_height()\n"},"line_number":756,"absolute_offset":30792,"submatches":[{"match":{"text":"_tool_fold_height"},"start":25,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/render_panels.py"},"lines":{"text":"    def _active_tool_fold_snapshot(self):\n"},"line_number":780,"absolute_offset":31911,"submatches":[{"match":{"text":"tool_fold"},"start":16,"end":25}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/render_panels.py"},"lines":{"text":"        active_fold_fn = getattr(renderer, \"active_tool_fold_snapshot\", None)\n"},"line_number":782,"absolute_offset":32005,"submatches":[{"match":{"text":"tool_fold"},"start":51,"end":60}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/render_panels.py"},"lines":{"text":"    def _has_active_tool_fold(self) -> bool:\n"},"line_number":787,"absolute_offset":32181,"submatches":[{"match":{"text":"tool_fold"},"start":20,"end":29}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/render_panels.py"},"lines":{"text":"        return self._active_tool_fold_snapshot() is not None\n"},"line_number":788,"absolute_offset":32226,"submatches":[{"match":{"text":"tool_fold"},"start":28,"end":37}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/render_panels.py"},"lines":{"text":"    def _tool_fold_text(self) -> list[tuple[str, str]]:\n"},"line_number":799,"absolute_offset":32643,"submatches":[{"match":{"text":"_tool_fold_text"},"start":8,"end":23}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/render_panels.py"},"lines":{"text":"        active_fold = self._active_tool_fold_snapshot()\n"},"line_number":800,"absolute_offset":32699,"submatches":[{"match":{"text":"tool_fold"},"start":35,"end":44}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/render_panels.py"},"lines":{"text":"    def _tool_fold_height(self) -> int:\n"},"line_number":827,"absolute_offset":33979,"submatches":[{"match":{"text":"_tool_fold_height"},"start":8,"end":25}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/render_panels.py"},"lines":{"text":"        active_fold = self._active_tool_fold_snapshot()\n"},"line_number":828,"absolute_offset":34019,"submatches":[{"match":{"text":"tool_fold"},"start":35,"end":44}]}}
{"type":"end","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/render_panels.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":93066,"human":"0.000093s"},"searches":1,"searches_with_match":1,"bytes_searched":61813,"bytes_printed":4707,"matched_lines":14,"matches":14}}}
{"type":"begin","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/history_sync.py"}}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/history_sync.py"},"lines":{"text":"from comate_cli.terminal_agent.tool_fold import ActiveToolFold, is_foldable_tool\n"},"line_number":27,"absolute_offset":895,"submatches":[{"match":{"text":"tool_fold"},"start":31,"end":40}]}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/history_sync.py"},"lines":{"text":"                    entry_type=\"tool_fold\",\n"},"line_number":137,"absolute_offset":5489,"submatches":[{"match":{"text":"tool_fold"},"start":32,"end":41}]}}
{"type":"end","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/history_sync.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":30166,"human":"0.000030s"},"searches":1,"searches_with_match":1,"bytes_searched":25537,"bytes_printed":810,"matched_lines":2,"matches":2}}}
{"type":"begin","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/history_printer.py"}}}
{"type":"match","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/history_printer.py"},"lines":{"text":"        if entry.entry_type == \"tool_fold\":\n"},"line_number":504,"absolute_offset":18921,"submatches":[{"match":{"text":"tool_fold"},"start":32,"end":41}]}}
{"type":"end","data":{"path":{"text":"/home/andy/works/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/history_printer.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":44583,"human":"0.000045s"},"searches":1,"searches_with_match":1,"bytes_searched":30143,"bytes_printed":447,"matched_lines":1,"matches":1}}}
{"data":{"elapsed_total":{"human":"0.009868s","nanos":9868276,"secs":0},"stats":{"bytes_printed":41098,"bytes_searched":561400,"elapsed":{"human":"0.001271s","nanos":1271454,"secs":0},"matched_lines":122,"matches":123,"searches":19,"searches_with_match":19}},"type":"summary"}
