{"type":"begin","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"}}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            self._renderer.append_system_message(\n"},"line_number":39,"absolute_offset":1293,"submatches":[{"match":{"text":"message"},"start":41,"end":48}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        queued_messages = tuple(peek_queue()) if callable(peek_queue) else ()\n"},"line_number":51,"absolute_offset":1734,"submatches":[{"match":{"text":"message"},"start":15,"end":22}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        human_messages = [\n"},"line_number":52,"absolute_offset":1812,"submatches":[{"match":{"text":"message"},"start":14,"end":21}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            message\n"},"line_number":53,"absolute_offset":1839,"submatches":[{"match":{"text":"message"},"start":12,"end":19}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            for message in queued_messages\n"},"line_number":54,"absolute_offset":1859,"submatches":[{"match":{"text":"message"},"start":16,"end":23},{"match":{"text":"message"},"start":34,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            if getattr(message, \"origin\", None) == MessageOrigin.HUMAN\n"},"line_number":55,"absolute_offset":1902,"submatches":[{"match":{"text":"message"},"start":23,"end":30}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        if not human_messages:\n"},"line_number":57,"absolute_offset":1983,"submatches":[{"match":{"text":"message"},"start":21,"end":28}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        def _editable_text(message) -> str:  # type: ignore[no-untyped-def]\n"},"line_number":60,"absolute_offset":2040,"submatches":[{"match":{"text":"message"},"start":27,"end":34}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            content = getattr(message, \"content\", \"\")\n"},"line_number":61,"absolute_offset":2116,"submatches":[{"match":{"text":"message"},"start":30,"end":37}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            for piece in (_editable_text(message) for message in human_messages)\n"},"line_number":80,"absolute_offset":2913,"submatches":[{"match":{"text":"message"},"start":41,"end":48},{"match":{"text":"message"},"start":54,"end":61},{"match":{"text":"message"},"start":71,"end":78}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        message_ids = tuple(\n"},"line_number":88,"absolute_offset":3228,"submatches":[{"match":{"text":"message"},"start":8,"end":15}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            str(getattr(message, \"message_id\"))\n"},"line_number":89,"absolute_offset":3257,"submatches":[{"match":{"text":"message"},"start":24,"end":31},{"match":{"text":"message"},"start":34,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            for message in human_messages\n"},"line_number":90,"absolute_offset":3305,"submatches":[{"match":{"text":"message"},"start":16,"end":23},{"match":{"text":"message"},"start":33,"end":40}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            cancel_many(message_ids)\n"},"line_number":94,"absolute_offset":3457,"submatches":[{"match":{"text":"message"},"start":24,"end":31}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        queued_display = getattr(self, \"_queued_display_by_message_id\", None)\n"},"line_number":95,"absolute_offset":3494,"submatches":[{"match":{"text":"message"},"start":59,"end":66}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            for message_id in message_ids:\n"},"line_number":97,"absolute_offset":3617,"submatches":[{"match":{"text":"message"},"start":16,"end":23},{"match":{"text":"message"},"start":30,"end":37}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"                queued_display.pop(message_id, None)\n"},"line_number":98,"absolute_offset":3660,"submatches":[{"match":{"text":"message"},"start":35,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"    def _notify_queued_messages_recalled(self, count: int) -> None:\n"},"line_number":104,"absolute_offset":3848,"submatches":[{"match":{"text":"message"},"start":23,"end":30}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        append_system_message = getattr(self._renderer, \"append_system_message\", None)\n"},"line_number":107,"absolute_offset":3958,"submatches":[{"match":{"text":"message"},"start":22,"end":29},{"match":{"text":"message"},"start":71,"end":78}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        if callable(append_system_message):\n"},"line_number":108,"absolute_offset":4045,"submatches":[{"match":{"text":"message"},"start":34,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            append_system_message(\n"},"line_number":109,"absolute_offset":4089,"submatches":[{"match":{"text":"message"},"start":26,"end":33}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"                f\"Withdrew {count} queued message(s); press Up to recall from input history.\"\n"},"line_number":110,"absolute_offset":4124,"submatches":[{"match":{"text":"message"},"start":42,"end":49}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"    def _cancel_queued_human_messages_on_interrupt(self) -> int:\n"},"line_number":113,"absolute_offset":4233,"submatches":[{"match":{"text":"message"},"start":29,"end":36}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        # 中断 epoch 无条件递增：_send_busy_message 用它识别\n"},"line_number":114,"absolute_offset":4298,"submatches":[{"match":{"text":"_send_busy_message"},"start":41,"end":59}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        queued_messages = tuple(peek_queue()) if callable(peek_queue) else ()\n"},"line_number":120,"absolute_offset":4645,"submatches":[{"match":{"text":"message"},"start":15,"end":22}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            str(getattr(message, \"message_id\"))\n"},"line_number":122,"absolute_offset":4750,"submatches":[{"match":{"text":"message"},"start":24,"end":31},{"match":{"text":"message"},"start":34,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            for message in queued_messages\n"},"line_number":123,"absolute_offset":4798,"submatches":[{"match":{"text":"message"},"start":16,"end":23},{"match":{"text":"message"},"start":34,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            if getattr(message, \"origin\", None) == MessageOrigin.HUMAN\n"},"line_number":124,"absolute_offset":4841,"submatches":[{"match":{"text":"message"},"start":23,"end":30}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        queued_display = getattr(self, \"_queued_display_by_message_id\", None)\n"},"line_number":132,"absolute_offset":5175,"submatches":[{"match":{"text":"message"},"start":59,"end":66}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            for message_id in human_ids:\n"},"line_number":134,"absolute_offset":5298,"submatches":[{"match":{"text":"message"},"start":16,"end":23}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"                queued_display.pop(message_id, None)\n"},"line_number":135,"absolute_offset":5339,"submatches":[{"match":{"text":"message"},"start":35,"end":42}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        self._notify_queued_messages_recalled(cancelled_count)\n"},"line_number":136,"absolute_offset":5392,"submatches":[{"match":{"text":"message"},"start":28,"end":35}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        normal_mode = _mode_condition(UIMode.NORMAL)\n"},"line_number":150,"absolute_offset":5949,"submatches":[{"match":{"text":"normal_mode"},"start":8,"end":19}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        @bindings.add(\"enter\", filter=selection_mode)\n"},"line_number":175,"absolute_offset":7236,"submatches":[{"match":{"text":"enter"},"start":23,"end":28}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        def _selection_enter(event) -> None:\n"},"line_number":176,"absolute_offset":7290,"submatches":[{"match":{"text":"enter"},"start":23,"end":28}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            \"enter\",\n"},"line_number":214,"absolute_offset":8552,"submatches":[{"match":{"text":"enter"},"start":13,"end":18}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        def _tool_approval_enter(event) -> None:\n"},"line_number":218,"absolute_offset":8680,"submatches":[{"match":{"text":"enter"},"start":27,"end":32}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            \"enter\",\n"},"line_number":225,"absolute_offset":8928,"submatches":[{"match":{"text":"enter"},"start":13,"end":18}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        def _tool_approval_feedback_enter(event) -> None:\n"},"line_number":229,"absolute_offset":9055,"submatches":[{"match":{"text":"enter"},"start":36,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        @bindings.add(\"enter\", filter=exit_guard_active, eager=True)\n"},"line_number":342,"absolute_offset":12670,"submatches":[{"match":{"text":"enter"},"start":23,"end":28}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        def _exit_confirm_enter(event) -> None:\n"},"line_number":343,"absolute_offset":12739,"submatches":[{"match":{"text":"enter"},"start":26,"end":31}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        @bindings.add(\"enter\", filter=plugin_mode, eager=True)\n"},"line_number":394,"absolute_offset":14613,"submatches":[{"match":{"text":"enter"},"start":23,"end":28}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        def _plugin_enter(event) -> None:\n"},"line_number":395,"absolute_offset":14676,"submatches":[{"match":{"text":"enter"},"start":20,"end":25}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            action = self._plugin_ui.handle_enter()\n"},"line_number":397,"absolute_offset":14740,"submatches":[{"match":{"text":"enter"},"start":44,"end":49}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        @bindings.add(\"enter\", filter=install_mode, eager=True)\n"},"line_number":522,"absolute_offset":18807,"submatches":[{"match":{"text":"enter"},"start":23,"end":28}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        def _install_enter(event) -> None:\n"},"line_number":523,"absolute_offset":18871,"submatches":[{"match":{"text":"enter"},"start":21,"end":26}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            should_close = self._install_view.handle_enter()\n"},"line_number":525,"absolute_offset":18936,"submatches":[{"match":{"text":"enter"},"start":53,"end":58}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        @bindings.add(\"enter\", filter=config_mode, eager=True)\n"},"line_number":614,"absolute_offset":21962,"submatches":[{"match":{"text":"enter"},"start":23,"end":28}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        def _config_enter(event) -> None:\n"},"line_number":615,"absolute_offset":22025,"submatches":[{"match":{"text":"enter"},"start":20,"end":25}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            self._config_ui.handle_enter()\n"},"line_number":617,"absolute_offset":22089,"submatches":[{"match":{"text":"enter"},"start":35,"end":40}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        @bindings.add(\"enter\", filter=goal_resume_mode, eager=True)\n"},"line_number":684,"absolute_offset":24477,"submatches":[{"match":{"text":"enter"},"start":23,"end":28}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        def _goal_resume_enter(event) -> None:\n"},"line_number":685,"absolute_offset":24545,"submatches":[{"match":{"text":"enter"},"start":25,"end":30}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            self._handle_goal_resume_action(self._goal_resume_ui.handle_enter())\n"},"line_number":687,"absolute_offset":24614,"submatches":[{"match":{"text":"enter"},"start":72,"end":77}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        @bindings.add(\"enter\", filter=goal_edit_mode, eager=True)\n"},"line_number":709,"absolute_offset":25510,"submatches":[{"match":{"text":"enter"},"start":23,"end":28}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        @bindings.add(\"enter\", filter=question_mode)\n"},"line_number":723,"absolute_offset":26016,"submatches":[{"match":{"text":"enter"},"start":23,"end":28}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        def _question_enter(event) -> None:\n"},"line_number":724,"absolute_offset":26069,"submatches":[{"match":{"text":"enter"},"start":22,"end":27}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            action = self._question_ui.handle_enter()\n"},"line_number":726,"absolute_offset":26135,"submatches":[{"match":{"text":"enter"},"start":46,"end":51}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        @bindings.add(\"c-j\", filter=normal_mode, eager=True)\n"},"line_number":812,"absolute_offset":29106,"submatches":[{"match":{"text":"normal_mode"},"start":36,"end":47}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        @bindings.add(\"enter\", filter=normal_mode, eager=True)\n"},"line_number":816,"absolute_offset":29274,"submatches":[{"match":{"text":"enter"},"start":23,"end":28},{"match":{"text":"normal_mode"},"start":38,"end":49}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        def _enter(event) -> None:\n"},"line_number":817,"absolute_offset":29337,"submatches":[{"match":{"text":"enter"},"start":13,"end":18}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            if self._handle_normal_enter_key(buffer, event):\n"},"line_number":819,"absolute_offset":29414,"submatches":[{"match":{"text":"enter"},"start":35,"end":40}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        @bindings.add(\"tab\", filter=normal_mode)\n"},"line_number":847,"absolute_offset":30441,"submatches":[{"match":{"text":"normal_mode"},"start":36,"end":47}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        @bindings.add(\"s-tab\", filter=normal_mode & has_completions)\n"},"line_number":868,"absolute_offset":31347,"submatches":[{"match":{"text":"normal_mode"},"start":38,"end":49}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        @bindings.add(\"s-tab\", filter=normal_mode & ~has_completions)\n"},"line_number":872,"absolute_offset":31511,"submatches":[{"match":{"text":"normal_mode"},"start":38,"end":49}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        @bindings.add(\"up\", filter=normal_mode & ~todo_panel_expanded)\n"},"line_number":877,"absolute_offset":31681,"submatches":[{"match":{"text":"normal_mode"},"start":35,"end":46}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        @bindings.add(\"down\", filter=normal_mode & ~todo_panel_expanded)\n"},"line_number":890,"absolute_offset":32245,"submatches":[{"match":{"text":"normal_mode"},"start":37,"end":48}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        @bindings.add(\"escape\", filter=normal_mode)\n"},"line_number":901,"absolute_offset":32738,"submatches":[{"match":{"text":"normal_mode"},"start":39,"end":50}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            is_busy = False\n"},"line_number":921,"absolute_offset":33482,"submatches":[{"match":{"text":"busy"},"start":15,"end":19}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            is_busy_fn = getattr(self._session, \"is_busy\", None)\n"},"line_number":922,"absolute_offset":33510,"submatches":[{"match":{"text":"busy"},"start":15,"end":19},{"match":{"text":"busy"},"start":52,"end":56}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            if callable(is_busy_fn):\n"},"line_number":923,"absolute_offset":33575,"submatches":[{"match":{"text":"busy"},"start":27,"end":31}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"                is_busy = bool(is_busy_fn())\n"},"line_number":924,"absolute_offset":33612,"submatches":[{"match":{"text":"busy"},"start":19,"end":23},{"match":{"text":"busy"},"start":34,"end":38}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"                is_busy = bool(self._busy)\n"},"line_number":926,"absolute_offset":33675,"submatches":[{"match":{"text":"busy"},"start":19,"end":23},{"match":{"text":"busy"},"start":37,"end":41}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            if is_busy:\n"},"line_number":927,"absolute_offset":33718,"submatches":[{"match":{"text":"busy"},"start":18,"end":22}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"                self._cancel_queued_human_messages_on_interrupt()\n"},"line_number":928,"absolute_offset":33742,"submatches":[{"match":{"text":"message"},"start":42,"end":49}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            if self._busy:\n"},"line_number":963,"absolute_offset":35266,"submatches":[{"match":{"text":"busy"},"start":21,"end":25}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"                    self._renderer.append_system_message(\"Exit requested. Closing session.\")\n"},"line_number":973,"absolute_offset":35663,"submatches":[{"match":{"text":"message"},"start":49,"end":56}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"                    self._request_exit(source=\"ctrl_c_busy_second\")\n"},"line_number":974,"absolute_offset":35756,"submatches":[{"match":{"text":"busy"},"start":54,"end":58}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"                self._cancel_queued_human_messages_on_interrupt()\n"},"line_number":977,"absolute_offset":35852,"submatches":[{"match":{"text":"message"},"start":42,"end":49}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        @bindings.add(\"c-o\", filter=normal_mode)\n"},"line_number":1004,"absolute_offset":36935,"submatches":[{"match":{"text":"normal_mode"},"start":36,"end":47}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"                self._renderer.append_system_message(\n"},"line_number":1010,"absolute_offset":37229,"submatches":[{"match":{"text":"message"},"start":45,"end":52}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"                    \"No transcript entries yet. Send a message first.\"\n"},"line_number":1011,"absolute_offset":37283,"submatches":[{"match":{"text":"message"},"start":55,"end":62}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            filter=normal_mode & Condition(lambda: self._should_show_todo_panel()),\n"},"line_number":1022,"absolute_offset":37639,"submatches":[{"match":{"text":"normal_mode"},"start":19,"end":30}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        @bindings.add(\"c-t\", filter=normal_mode)\n"},"line_number":1030,"absolute_offset":37944,"submatches":[{"match":{"text":"normal_mode"},"start":36,"end":47}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"            self._renderer.append_system_message(f\"Thinking display {status}\")\n"},"line_number":1035,"absolute_offset":38188,"submatches":[{"match":{"text":"message"},"start":41,"end":48}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        @bindings.add(\"up\", filter=normal_mode & todo_panel_expanded)\n"},"line_number":1038,"absolute_offset":38299,"submatches":[{"match":{"text":"normal_mode"},"start":35,"end":46}]}}
{"type":"match","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"lines":{"text":"        @bindings.add(\"down\", filter=normal_mode & todo_panel_expanded)\n"},"line_number":1045,"absolute_offset":38560,"submatches":[{"match":{"text":"normal_mode"},"start":37,"end":48}]}}
{"type":"end","data":{"path":{"text":"/home/hyc/projects/agent-sdk/packages/comate_cli/comate_cli/terminal_agent/tui_parts/key_bindings.py"},"binary_offset":null,"stats":{"elapsed":{"secs":0,"nanos":317538,"human":"0.000318s"},"searches":1,"searches_with_match":1,"bytes_searched":39340,"bytes_printed":28978,"matched_lines":86,"matches":99}}}
{"data":{"elapsed_total":{"human":"0.001499s","nanos":1498595,"secs":0},"stats":{"bytes_printed":28978,"bytes_searched":39340,"elapsed":{"human":"0.000318s","nanos":317538,"secs":0},"matched_lines":86,"matches":99,"searches":1,"searches_with_match":1}},"type":"summary"}
