klaude-code 2.4.1__tar.gz → 2.4.2__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.
- {klaude_code-2.4.1 → klaude_code-2.4.2}/PKG-INFO +2 -2
- {klaude_code-2.4.1 → klaude_code-2.4.2}/pyproject.toml +2 -2
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/turn.py +1 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/protocol/events/streaming.py +1 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/sub_agent.py +9 -1
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/machine.py +38 -7
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/renderer.py +1 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/README.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/app/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/app/runtime.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/auth/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/auth/base.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/auth/claude/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/auth/claude/exceptions.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/auth/claude/oauth.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/auth/claude/token_manager.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/auth/codex/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/auth/codex/exceptions.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/auth/codex/jwt_utils.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/auth/codex/oauth.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/auth/codex/token_manager.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/cli/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/cli/auth_cmd.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/cli/config_cmd.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/cli/cost_cmd.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/cli/debug.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/cli/list_model.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/cli/main.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/cli/self_update.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/cli/session_cmd.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/config/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/config/assets/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/config/assets/builtin_config.yaml +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/config/builtin_config.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/config/config.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/config/model_matcher.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/config/sub_agent_model_helper.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/config/thinking.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/const.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/agent.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/agent_profile.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/executor.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/manager/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/manager/llm_clients.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/manager/llm_clients_builder.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/manager/sub_agent_manager.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/prompts/prompt-claude-code.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/prompts/prompt-codex-gpt-5-1-codex-max.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/prompts/prompt-codex-gpt-5-2-codex.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/prompts/prompt-codex.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/prompts/prompt-gemini.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/prompts/prompt-minimal.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/prompts/prompt-nano-banana.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/prompts/prompt-sub-agent-explore.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/prompts/prompt-sub-agent-image-gen.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/prompts/prompt-sub-agent-web.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/prompts/prompt-sub-agent.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/reminders.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/task.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/context.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/file/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/file/_utils.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/file/apply_patch.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/file/apply_patch_tool.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/file/apply_patch_tool.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/file/diff_builder.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/file/edit_tool.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/file/edit_tool.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/file/read_tool.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/file/read_tool.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/file/write_tool.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/file/write_tool.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/report_back_tool.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/shell/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/shell/bash_tool.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/shell/bash_tool.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/shell/command_safety.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/sub_agent_tool.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/todo/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/todo/todo_write_tool.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/todo/todo_write_tool.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/todo/todo_write_tool_raw.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/todo/update_plan_tool.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/todo/update_plan_tool.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/tool_abc.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/tool_registry.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/tool_runner.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/truncation.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/web/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/web/mermaid_tool.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/web/mermaid_tool.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/web/web_fetch_tool.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/web/web_fetch_tool.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/web/web_search_tool.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/web/web_search_tool.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/anthropic/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/anthropic/client.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/anthropic/input.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/bedrock/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/bedrock/client.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/claude/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/claude/client.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/client.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/codex/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/codex/client.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/google/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/google/client.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/google/input.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/image.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/input_common.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/openai_compatible/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/openai_compatible/client.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/openai_compatible/input.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/openai_compatible/stream.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/openai_compatible/tool_call_accumulator.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/openrouter/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/openrouter/client.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/openrouter/input.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/openrouter/reasoning.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/registry.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/responses/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/responses/client.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/responses/input.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/llm/usage.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/log.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/protocol/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/protocol/commands.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/protocol/events/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/protocol/events/base.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/protocol/events/chat.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/protocol/events/lifecycle.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/protocol/events/metadata.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/protocol/events/system.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/protocol/events/tools.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/protocol/llm_param.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/protocol/message.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/protocol/model.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/protocol/op.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/protocol/op_handler.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/protocol/sub_agent/AGENTS.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/protocol/sub_agent/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/protocol/sub_agent/explore.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/protocol/sub_agent/image_gen.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/protocol/sub_agent/task.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/protocol/sub_agent/web.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/protocol/tools.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/session/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/session/codec.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/session/export.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/session/selector.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/session/session.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/session/store.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/session/templates/export_session.html +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/session/templates/mermaid_viewer.html +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/skill/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/skill/assets/create-plan/SKILL.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/skill/assets/deslop/SKILL.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/skill/assets/handoff/SKILL.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/skill/assets/jj-workspace/SKILL.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/skill/assets/skill-creator/SKILL.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/skill/loader.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/skill/manager.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/skill/system_skills.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/command/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/command/clear_cmd.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/command/command_abc.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/command/copy_cmd.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/command/debug_cmd.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/command/export_cmd.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/command/export_online_cmd.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/command/fork_session_cmd.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/command/model_cmd.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/command/model_picker.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/command/prompt-init.md +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/command/prompt_command.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/command/refresh_cmd.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/command/registry.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/command/resume_cmd.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/command/status_cmd.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/command/sub_agent_model_cmd.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/command/terminal_setup_cmd.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/command/thinking_cmd.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/commands.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/assistant.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/bash_syntax.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/command_output.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/common.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/developer.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/diffs.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/errors.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/mermaid_viewer.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/metadata.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/rich/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/rich/cjk_wrap.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/rich/code_panel.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/rich/live.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/rich/markdown.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/rich/quote.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/rich/searchable_text.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/rich/status.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/rich/theme.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/thinking.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/tools.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/user_input.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/welcome.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/display.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/input/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/input/clipboard.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/input/completers.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/input/key_bindings.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/input/prompt_toolkit.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/runner.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/terminal/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/terminal/color.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/terminal/control.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/terminal/image.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/terminal/notifier.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/terminal/progress_bar.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/terminal/selector.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/ui/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/ui/common.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/ui/core/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/ui/core/display.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/ui/core/input.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/ui/debug_mode.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/ui/terminal/__init__.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/ui/terminal/title.py +0 -0
- {klaude_code-2.4.1 → klaude_code-2.4.2}/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.4.
|
|
3
|
+
Version: 2.4.2
|
|
4
4
|
Summary: Minimal code agent CLI
|
|
5
5
|
Requires-Dist: anthropic>=0.66.0
|
|
6
6
|
Requires-Dist: chardet>=5.2.0
|
|
@@ -17,7 +17,7 @@ Requires-Dist: rich>=14.1.0
|
|
|
17
17
|
Requires-Dist: term-image>=0.7.2
|
|
18
18
|
Requires-Dist: trafilatura>=2.0.0
|
|
19
19
|
Requires-Dist: typer>=0.17.3
|
|
20
|
-
Requires-Python: >=3.13
|
|
20
|
+
Requires-Python: >=3.13, <3.14
|
|
21
21
|
Description-Content-Type: text/markdown
|
|
22
22
|
|
|
23
23
|
# Klaude Code
|
|
@@ -4,10 +4,10 @@ build-backend = "uv_build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "klaude-code"
|
|
7
|
-
version = "2.4.
|
|
7
|
+
version = "2.4.2"
|
|
8
8
|
description = "Minimal code agent CLI"
|
|
9
9
|
readme = "README.md"
|
|
10
|
-
requires-python = ">=3.13"
|
|
10
|
+
requires-python = ">=3.13,<3.14"
|
|
11
11
|
dependencies = [
|
|
12
12
|
"anthropic>=0.66.0",
|
|
13
13
|
"chardet>=5.2.0",
|
|
@@ -81,6 +81,7 @@ def render_sub_agent_result(
|
|
|
81
81
|
*,
|
|
82
82
|
has_structured_output: bool = False,
|
|
83
83
|
description: str | None = None,
|
|
84
|
+
sub_agent_color: Style | None = None,
|
|
84
85
|
) -> RenderableType:
|
|
85
86
|
stripped_result = result.strip()
|
|
86
87
|
main_content, agent_id_footer = _extract_agent_id_footer(stripped_result)
|
|
@@ -88,7 +89,14 @@ def render_sub_agent_result(
|
|
|
88
89
|
|
|
89
90
|
elements: list[RenderableType] = []
|
|
90
91
|
if description:
|
|
91
|
-
elements.append(
|
|
92
|
+
elements.append(
|
|
93
|
+
Text(
|
|
94
|
+
f"---\n{description}",
|
|
95
|
+
style=Style(bold=True, color=sub_agent_color.color, frame=True)
|
|
96
|
+
if sub_agent_color
|
|
97
|
+
else ThemeKey.TOOL_RESULT_BOLD,
|
|
98
|
+
)
|
|
99
|
+
)
|
|
92
100
|
|
|
93
101
|
# Try structured JSON output first
|
|
94
102
|
use_text_rendering = True
|
|
@@ -10,7 +10,7 @@ from klaude_code.const import (
|
|
|
10
10
|
STATUS_DEFAULT_TEXT,
|
|
11
11
|
STATUS_THINKING_TEXT,
|
|
12
12
|
)
|
|
13
|
-
from klaude_code.protocol import events, model
|
|
13
|
+
from klaude_code.protocol import events, model, tools
|
|
14
14
|
from klaude_code.tui.commands import (
|
|
15
15
|
AppendAssistant,
|
|
16
16
|
AppendThinking,
|
|
@@ -48,6 +48,33 @@ from klaude_code.tui.components.rich.theme import ThemeKey
|
|
|
48
48
|
from klaude_code.tui.components.thinking import extract_last_bold_header, normalize_thinking_content
|
|
49
49
|
from klaude_code.tui.components.tools import get_tool_active_form, is_sub_agent_tool
|
|
50
50
|
|
|
51
|
+
# Tools that complete quickly and don't benefit from streaming activity display.
|
|
52
|
+
# For models without fine-grained tool JSON streaming (e.g., Gemini), showing these
|
|
53
|
+
# in the activity state causes a flash-and-disappear effect.
|
|
54
|
+
FAST_TOOLS: frozenset[str] = frozenset(
|
|
55
|
+
{
|
|
56
|
+
tools.READ,
|
|
57
|
+
tools.EDIT,
|
|
58
|
+
tools.WRITE,
|
|
59
|
+
tools.BASH,
|
|
60
|
+
tools.TODO_WRITE,
|
|
61
|
+
tools.UPDATE_PLAN,
|
|
62
|
+
tools.APPLY_PATCH,
|
|
63
|
+
tools.REPORT_BACK,
|
|
64
|
+
}
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
def _should_skip_tool_activity(tool_name: str, model_id: str | None) -> bool:
|
|
69
|
+
"""Check if tool activity should be skipped for non-streaming models."""
|
|
70
|
+
if model_id is None:
|
|
71
|
+
return False
|
|
72
|
+
if tool_name not in FAST_TOOLS:
|
|
73
|
+
return False
|
|
74
|
+
# Gemini and Grok models don't stream tool JSON at fine granularity
|
|
75
|
+
model_lower = model_id.lower()
|
|
76
|
+
return "gemini" in model_lower or "grok" in model_lower
|
|
77
|
+
|
|
51
78
|
|
|
52
79
|
@dataclass
|
|
53
80
|
class SubAgentThinkingHeaderState:
|
|
@@ -142,7 +169,8 @@ class ActivityState:
|
|
|
142
169
|
|
|
143
170
|
if self._sub_agent_tool_calls:
|
|
144
171
|
_append_counts(self._sub_agent_tool_calls)
|
|
145
|
-
|
|
172
|
+
if self._tool_calls:
|
|
173
|
+
activity_text.append(" , ")
|
|
146
174
|
|
|
147
175
|
if self._tool_calls:
|
|
148
176
|
_append_counts(self._tool_calls)
|
|
@@ -497,11 +525,14 @@ class DisplayStateMachine:
|
|
|
497
525
|
|
|
498
526
|
self._spinner.set_composing(False)
|
|
499
527
|
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
528
|
+
# Skip activity state for fast tools on non-streaming models (e.g., Gemini)
|
|
529
|
+
# to avoid flash-and-disappear effect
|
|
530
|
+
if not _should_skip_tool_activity(e.tool_name, e.model_id):
|
|
531
|
+
tool_active_form = get_tool_active_form(e.tool_name)
|
|
532
|
+
if is_sub_agent_tool(e.tool_name):
|
|
533
|
+
self._spinner.add_sub_agent_tool_call(e.tool_call_id, tool_active_form)
|
|
534
|
+
else:
|
|
535
|
+
self._spinner.add_tool_call(tool_active_form)
|
|
505
536
|
|
|
506
537
|
cmds.extend(self._spinner_update_commands())
|
|
507
538
|
return cmds
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/prompts/prompt-codex-gpt-5-2-codex.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/prompts/prompt-sub-agent-explore.md
RENAMED
|
File without changes
|
{klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/prompts/prompt-sub-agent-image-gen.md
RENAMED
|
File without changes
|
{klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/prompts/prompt-sub-agent-web.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/core/tool/todo/todo_write_tool_raw.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/session/templates/export_session.html
RENAMED
|
File without changes
|
{klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/session/templates/mermaid_viewer.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{klaude_code-2.4.1 → klaude_code-2.4.2}/src/klaude_code/tui/components/rich/searchable_text.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|