klaude-code 2.5.0__tar.gz → 2.5.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. {klaude_code-2.5.0 → klaude_code-2.5.1}/PKG-INFO +1 -1
  2. {klaude_code-2.5.0 → klaude_code-2.5.1}/pyproject.toml +1 -1
  3. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/const.py +1 -1
  4. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/task.py +1 -0
  5. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/turn.py +0 -1
  6. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/protocol/events/lifecycle.py +1 -0
  7. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/protocol/events/streaming.py +0 -1
  8. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/machine.py +29 -18
  9. {klaude_code-2.5.0 → klaude_code-2.5.1}/README.md +0 -0
  10. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/__init__.py +0 -0
  11. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/app/__init__.py +0 -0
  12. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/app/runtime.py +0 -0
  13. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/auth/__init__.py +0 -0
  14. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/auth/base.py +0 -0
  15. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/auth/claude/__init__.py +0 -0
  16. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/auth/claude/exceptions.py +0 -0
  17. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/auth/claude/oauth.py +0 -0
  18. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/auth/claude/token_manager.py +0 -0
  19. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/auth/codex/__init__.py +0 -0
  20. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/auth/codex/exceptions.py +0 -0
  21. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/auth/codex/jwt_utils.py +0 -0
  22. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/auth/codex/oauth.py +0 -0
  23. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/auth/codex/token_manager.py +0 -0
  24. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/cli/__init__.py +0 -0
  25. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/cli/auth_cmd.py +0 -0
  26. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/cli/config_cmd.py +0 -0
  27. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/cli/cost_cmd.py +0 -0
  28. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/cli/debug.py +0 -0
  29. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/cli/list_model.py +0 -0
  30. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/cli/main.py +0 -0
  31. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/cli/self_update.py +0 -0
  32. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/cli/session_cmd.py +0 -0
  33. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/config/__init__.py +0 -0
  34. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/config/assets/__init__.py +0 -0
  35. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/config/assets/builtin_config.yaml +0 -0
  36. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/config/builtin_config.py +0 -0
  37. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/config/config.py +0 -0
  38. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/config/model_matcher.py +0 -0
  39. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/config/sub_agent_model_helper.py +0 -0
  40. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/config/thinking.py +0 -0
  41. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/__init__.py +0 -0
  42. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/agent.py +0 -0
  43. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/agent_profile.py +0 -0
  44. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/executor.py +0 -0
  45. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/manager/__init__.py +0 -0
  46. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/manager/llm_clients.py +0 -0
  47. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/manager/llm_clients_builder.py +0 -0
  48. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/manager/sub_agent_manager.py +0 -0
  49. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/prompts/prompt-claude-code.md +0 -0
  50. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/prompts/prompt-codex-gpt-5-1-codex-max.md +0 -0
  51. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/prompts/prompt-codex-gpt-5-2-codex.md +0 -0
  52. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/prompts/prompt-codex.md +0 -0
  53. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/prompts/prompt-gemini.md +0 -0
  54. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/prompts/prompt-minimal.md +0 -0
  55. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/prompts/prompt-sub-agent-explore.md +0 -0
  56. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/prompts/prompt-sub-agent-image-gen.md +0 -0
  57. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/prompts/prompt-sub-agent-web.md +0 -0
  58. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/prompts/prompt-sub-agent.md +0 -0
  59. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/reminders.py +0 -0
  60. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/__init__.py +0 -0
  61. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/context.py +0 -0
  62. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/file/__init__.py +0 -0
  63. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/file/_utils.py +0 -0
  64. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/file/apply_patch.py +0 -0
  65. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/file/apply_patch_tool.md +0 -0
  66. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/file/apply_patch_tool.py +0 -0
  67. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/file/diff_builder.py +0 -0
  68. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/file/edit_tool.md +0 -0
  69. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/file/edit_tool.py +0 -0
  70. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/file/read_tool.md +0 -0
  71. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/file/read_tool.py +0 -0
  72. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/file/write_tool.md +0 -0
  73. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/file/write_tool.py +0 -0
  74. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/offload.py +0 -0
  75. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/report_back_tool.py +0 -0
  76. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/shell/__init__.py +0 -0
  77. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/shell/bash_tool.md +0 -0
  78. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/shell/bash_tool.py +0 -0
  79. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/shell/command_safety.py +0 -0
  80. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/sub_agent_tool.py +0 -0
  81. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/todo/__init__.py +0 -0
  82. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/todo/todo_write_tool.md +0 -0
  83. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/todo/todo_write_tool.py +0 -0
  84. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/todo/todo_write_tool_raw.md +0 -0
  85. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/todo/update_plan_tool.md +0 -0
  86. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/todo/update_plan_tool.py +0 -0
  87. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/tool_abc.py +0 -0
  88. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/tool_registry.py +0 -0
  89. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/tool_runner.py +0 -0
  90. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/web/__init__.py +0 -0
  91. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/web/mermaid_tool.md +0 -0
  92. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/web/mermaid_tool.py +0 -0
  93. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/web/web_fetch_tool.md +0 -0
  94. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/web/web_fetch_tool.py +0 -0
  95. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/web/web_search_tool.md +0 -0
  96. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/core/tool/web/web_search_tool.py +0 -0
  97. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/__init__.py +0 -0
  98. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/anthropic/__init__.py +0 -0
  99. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/anthropic/client.py +0 -0
  100. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/anthropic/input.py +0 -0
  101. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/bedrock/__init__.py +0 -0
  102. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/bedrock/client.py +0 -0
  103. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/claude/__init__.py +0 -0
  104. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/claude/client.py +0 -0
  105. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/client.py +0 -0
  106. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/codex/__init__.py +0 -0
  107. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/codex/client.py +0 -0
  108. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/google/__init__.py +0 -0
  109. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/google/client.py +0 -0
  110. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/google/input.py +0 -0
  111. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/image.py +0 -0
  112. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/input_common.py +0 -0
  113. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/openai_compatible/__init__.py +0 -0
  114. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/openai_compatible/client.py +0 -0
  115. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/openai_compatible/input.py +0 -0
  116. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/openai_compatible/stream.py +0 -0
  117. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/openai_compatible/tool_call_accumulator.py +0 -0
  118. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/openrouter/__init__.py +0 -0
  119. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/openrouter/client.py +0 -0
  120. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/openrouter/input.py +0 -0
  121. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/openrouter/reasoning.py +0 -0
  122. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/partial_message.py +0 -0
  123. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/registry.py +0 -0
  124. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/responses/__init__.py +0 -0
  125. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/responses/client.py +0 -0
  126. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/responses/input.py +0 -0
  127. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/llm/usage.py +0 -0
  128. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/log.py +0 -0
  129. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/protocol/__init__.py +0 -0
  130. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/protocol/commands.py +0 -0
  131. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/protocol/events/__init__.py +0 -0
  132. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/protocol/events/base.py +0 -0
  133. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/protocol/events/chat.py +0 -0
  134. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/protocol/events/metadata.py +0 -0
  135. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/protocol/events/system.py +0 -0
  136. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/protocol/events/tools.py +0 -0
  137. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/protocol/llm_param.py +0 -0
  138. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/protocol/message.py +0 -0
  139. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/protocol/model.py +0 -0
  140. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/protocol/op.py +0 -0
  141. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/protocol/op_handler.py +0 -0
  142. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/protocol/sub_agent/AGENTS.md +0 -0
  143. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/protocol/sub_agent/__init__.py +0 -0
  144. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/protocol/sub_agent/explore.py +0 -0
  145. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/protocol/sub_agent/image_gen.py +0 -0
  146. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/protocol/sub_agent/task.py +0 -0
  147. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/protocol/sub_agent/web.py +0 -0
  148. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/protocol/tools.py +0 -0
  149. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/session/__init__.py +0 -0
  150. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/session/codec.py +0 -0
  151. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/session/export.py +0 -0
  152. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/session/selector.py +0 -0
  153. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/session/session.py +0 -0
  154. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/session/store.py +0 -0
  155. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/session/templates/export_session.html +0 -0
  156. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/session/templates/mermaid_viewer.html +0 -0
  157. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/skill/__init__.py +0 -0
  158. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/skill/assets/create-plan/SKILL.md +0 -0
  159. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/skill/assets/deslop/SKILL.md +0 -0
  160. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/skill/assets/handoff/SKILL.md +0 -0
  161. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/skill/assets/jj-workspace/SKILL.md +0 -0
  162. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/skill/assets/skill-creator/SKILL.md +0 -0
  163. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/skill/loader.py +0 -0
  164. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/skill/manager.py +0 -0
  165. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/skill/system_skills.py +0 -0
  166. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/__init__.py +0 -0
  167. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/command/__init__.py +0 -0
  168. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/command/clear_cmd.py +0 -0
  169. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/command/command_abc.py +0 -0
  170. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/command/copy_cmd.py +0 -0
  171. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/command/debug_cmd.py +0 -0
  172. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/command/export_cmd.py +0 -0
  173. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/command/export_online_cmd.py +0 -0
  174. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/command/fork_session_cmd.py +0 -0
  175. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/command/model_cmd.py +0 -0
  176. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/command/model_picker.py +0 -0
  177. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/command/prompt-init.md +0 -0
  178. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/command/prompt_command.py +0 -0
  179. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/command/refresh_cmd.py +0 -0
  180. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/command/registry.py +0 -0
  181. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/command/resume_cmd.py +0 -0
  182. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/command/status_cmd.py +0 -0
  183. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/command/sub_agent_model_cmd.py +0 -0
  184. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/command/terminal_setup_cmd.py +0 -0
  185. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/command/thinking_cmd.py +0 -0
  186. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/commands.py +0 -0
  187. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/__init__.py +0 -0
  188. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/assistant.py +0 -0
  189. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/bash_syntax.py +0 -0
  190. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/command_output.py +0 -0
  191. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/common.py +0 -0
  192. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/developer.py +0 -0
  193. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/diffs.py +0 -0
  194. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/errors.py +0 -0
  195. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/mermaid_viewer.py +0 -0
  196. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/metadata.py +0 -0
  197. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/rich/__init__.py +0 -0
  198. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/rich/cjk_wrap.py +0 -0
  199. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/rich/code_panel.py +0 -0
  200. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/rich/live.py +0 -0
  201. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/rich/markdown.py +0 -0
  202. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/rich/quote.py +0 -0
  203. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/rich/searchable_text.py +0 -0
  204. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/rich/status.py +0 -0
  205. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/rich/theme.py +0 -0
  206. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/sub_agent.py +0 -0
  207. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/thinking.py +0 -0
  208. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/tools.py +0 -0
  209. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/user_input.py +0 -0
  210. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/components/welcome.py +0 -0
  211. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/display.py +0 -0
  212. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/input/__init__.py +0 -0
  213. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/input/clipboard.py +0 -0
  214. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/input/completers.py +0 -0
  215. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/input/key_bindings.py +0 -0
  216. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/input/prompt_toolkit.py +0 -0
  217. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/renderer.py +0 -0
  218. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/runner.py +0 -0
  219. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/terminal/__init__.py +0 -0
  220. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/terminal/color.py +0 -0
  221. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/terminal/control.py +0 -0
  222. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/terminal/image.py +0 -0
  223. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/terminal/notifier.py +0 -0
  224. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/terminal/progress_bar.py +0 -0
  225. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/tui/terminal/selector.py +0 -0
  226. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/ui/__init__.py +0 -0
  227. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/ui/common.py +0 -0
  228. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/ui/core/__init__.py +0 -0
  229. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/ui/core/display.py +0 -0
  230. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/ui/core/input.py +0 -0
  231. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/ui/debug_mode.py +0 -0
  232. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/ui/terminal/__init__.py +0 -0
  233. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/ui/terminal/title.py +0 -0
  234. {klaude_code-2.5.0 → klaude_code-2.5.1}/src/klaude_code/update.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: klaude-code
3
- Version: 2.5.0
3
+ Version: 2.5.1
4
4
  Summary: Minimal code agent CLI
5
5
  Requires-Dist: anthropic>=0.66.0
6
6
  Requires-Dist: chardet>=5.2.0
@@ -4,7 +4,7 @@ build-backend = "uv_build"
4
4
 
5
5
  [project]
6
6
  name = "klaude-code"
7
- version = "2.5.0"
7
+ version = "2.5.1"
8
8
  description = "Minimal code agent CLI"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.13,<3.14"
@@ -159,7 +159,7 @@ STATUS_HINT_TEXT = " (esc to interrupt)" # Status hint text shown after spinner
159
159
  # Spinner status texts
160
160
  STATUS_WAITING_TEXT = "Connecting …"
161
161
  STATUS_THINKING_TEXT = "Thinking …"
162
- STATUS_COMPOSING_TEXT = "Composing"
162
+ STATUS_COMPOSING_TEXT = "Composing"
163
163
 
164
164
  # Backwards-compatible alias for the default spinner status text.
165
165
  STATUS_DEFAULT_TEXT = STATUS_WAITING_TEXT
@@ -217,6 +217,7 @@ class TaskExecutor:
217
217
  yield events.TaskStartEvent(
218
218
  session_id=session_ctx.session_id,
219
219
  sub_agent_state=ctx.sub_agent_state,
220
+ model_id=ctx.profile.llm_client.get_llm_config().model_id,
220
221
  )
221
222
  del user_input # Persisted by the operation handler before launching the task.
222
223
 
@@ -363,7 +363,6 @@ class TurnExecutor:
363
363
  response_id=msg.response_id,
364
364
  tool_call_id=msg.call_id,
365
365
  tool_name=msg.name,
366
- model_id=ctx.llm_client.model_name,
367
366
  )
368
367
  case _:
369
368
  continue
@@ -7,6 +7,7 @@ from .base import Event
7
7
 
8
8
  class TaskStartEvent(Event):
9
9
  sub_agent_state: model.SubAgentState | None = None
10
+ model_id: str | None = None
10
11
 
11
12
 
12
13
  class TaskFinishEvent(Event):
@@ -34,7 +34,6 @@ class AssistantImageDeltaEvent(ResponseEvent):
34
34
  class ToolCallStartEvent(ResponseEvent):
35
35
  tool_call_id: str
36
36
  tool_name: str
37
- model_id: str | None = None
38
37
 
39
38
 
40
39
  class ResponseCompleteEvent(ResponseEvent):
@@ -66,17 +66,6 @@ FAST_TOOLS: frozenset[str] = frozenset(
66
66
  )
67
67
 
68
68
 
69
- def _should_skip_tool_activity(tool_name: str, model_id: str | None) -> bool:
70
- """Check if tool activity should be skipped for non-streaming models."""
71
- if model_id is None:
72
- return False
73
- if tool_name not in FAST_TOOLS:
74
- return False
75
- # Gemini and Grok models don't stream tool JSON at fine granularity
76
- model_lower = model_id.lower()
77
- return "gemini" in model_lower or "grok" in model_lower
78
-
79
-
80
69
  @dataclass
81
70
  class SubAgentThinkingHeaderState:
82
71
  buffer: str = ""
@@ -257,7 +246,7 @@ class SpinnerStatusState:
257
246
  base_status = self._reasoning_status or self._todo_status
258
247
 
259
248
  if base_status:
260
- # Default "Reasoning ..." uses normal style; custom headers use bold italic
249
+ # Default "Thinking ..." uses normal style; custom headers use bold italic
261
250
  is_default_reasoning = base_status == STATUS_THINKING_TEXT
262
251
  status_style = ThemeKey.STATUS_TEXT if is_default_reasoning else ThemeKey.STATUS_TEXT_BOLD_ITALIC
263
252
  if activity_text:
@@ -300,6 +289,7 @@ class _SessionState:
300
289
  session_id: str
301
290
  sub_agent_state: model.SubAgentState | None = None
302
291
  sub_agent_thinking_header: SubAgentThinkingHeaderState | None = None
292
+ model_id: str | None = None
303
293
  assistant_stream_active: bool = False
304
294
  thinking_stream_active: bool = False
305
295
  assistant_char_count: int = 0
@@ -313,6 +303,23 @@ class _SessionState:
313
303
  def should_show_sub_agent_thinking_header(self) -> bool:
314
304
  return bool(self.sub_agent_state and self.sub_agent_state.sub_agent_type == "ImageGen")
315
305
 
306
+ @property
307
+ def should_extract_reasoning_header(self) -> bool:
308
+ """Gemini and GPT-5 models use markdown bold headers in thinking."""
309
+ if self.model_id is None:
310
+ return False
311
+ model_lower = self.model_id.lower()
312
+ return "gemini" in model_lower or "gpt-5" in model_lower
313
+
314
+ def should_skip_tool_activity(self, tool_name: str) -> bool:
315
+ """Check if tool activity should be skipped for non-streaming models."""
316
+ if self.model_id is None:
317
+ return False
318
+ if tool_name not in FAST_TOOLS:
319
+ return False
320
+ model_lower = self.model_id.lower()
321
+ return "gemini" in model_lower or "grok" in model_lower
322
+
316
323
 
317
324
  class DisplayStateMachine:
318
325
  """Simplified, session-aware REPL UI state machine.
@@ -380,6 +387,7 @@ class DisplayStateMachine:
380
387
 
381
388
  case events.TaskStartEvent() as e:
382
389
  s.sub_agent_state = e.sub_agent_state
390
+ s.model_id = e.model_id
383
391
  if not s.is_sub_agent:
384
392
  self._set_primary_if_needed(e.session_id)
385
393
  cmds.append(TaskClockStart())
@@ -412,6 +420,7 @@ class DisplayStateMachine:
412
420
  if not self._is_primary(e.session_id):
413
421
  return []
414
422
  s.thinking_stream_active = True
423
+ s.thinking_tail = ""
415
424
  # Ensure the status reflects that reasoning has started even
416
425
  # before we receive any deltas (or a bold header).
417
426
  self._spinner.set_reasoning_status(STATUS_THINKING_TEXT)
@@ -435,11 +444,13 @@ class DisplayStateMachine:
435
444
  cmds.append(AppendThinking(session_id=e.session_id, content=e.content))
436
445
 
437
446
  # Update reasoning status for spinner (based on bounded tail).
438
- s.thinking_tail = (s.thinking_tail + e.content)[-8192:]
439
- header = extract_last_bold_header(normalize_thinking_content(s.thinking_tail))
440
- if header:
441
- self._spinner.set_reasoning_status(header)
442
- cmds.extend(self._spinner_update_commands())
447
+ # Only extract headers for models that use markdown bold headers in thinking.
448
+ if s.should_extract_reasoning_header:
449
+ s.thinking_tail = (s.thinking_tail + e.content)[-8192:]
450
+ header = extract_last_bold_header(normalize_thinking_content(s.thinking_tail))
451
+ if header:
452
+ self._spinner.set_reasoning_status(header)
453
+ cmds.extend(self._spinner_update_commands())
443
454
 
444
455
  return cmds
445
456
 
@@ -528,7 +539,7 @@ class DisplayStateMachine:
528
539
 
529
540
  # Skip activity state for fast tools on non-streaming models (e.g., Gemini)
530
541
  # to avoid flash-and-disappear effect
531
- if not _should_skip_tool_activity(e.tool_name, e.model_id):
542
+ if not s.should_skip_tool_activity(e.tool_name):
532
543
  tool_active_form = get_tool_active_form(e.tool_name)
533
544
  if is_sub_agent_tool(e.tool_name):
534
545
  self._spinner.add_sub_agent_tool_call(e.tool_call_id, tool_active_form)
File without changes