klaude-code 2.4.0__tar.gz → 2.4.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.
- {klaude_code-2.4.0 → klaude_code-2.4.1}/PKG-INFO +1 -1
- {klaude_code-2.4.0 → klaude_code-2.4.1}/pyproject.toml +1 -1
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/config/sub_agent_model_helper.py +0 -9
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/agent_profile.py +9 -23
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/executor.py +13 -18
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/terminal/selector.py +5 -6
- {klaude_code-2.4.0 → klaude_code-2.4.1}/README.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/app/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/app/runtime.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/auth/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/auth/base.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/auth/claude/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/auth/claude/exceptions.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/auth/claude/oauth.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/auth/claude/token_manager.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/auth/codex/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/auth/codex/exceptions.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/auth/codex/jwt_utils.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/auth/codex/oauth.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/auth/codex/token_manager.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/cli/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/cli/auth_cmd.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/cli/config_cmd.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/cli/cost_cmd.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/cli/debug.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/cli/list_model.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/cli/main.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/cli/self_update.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/cli/session_cmd.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/config/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/config/assets/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/config/assets/builtin_config.yaml +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/config/builtin_config.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/config/config.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/config/model_matcher.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/config/thinking.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/const.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/agent.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/manager/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/manager/llm_clients.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/manager/llm_clients_builder.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/manager/sub_agent_manager.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/prompts/prompt-claude-code.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/prompts/prompt-codex-gpt-5-1-codex-max.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/prompts/prompt-codex-gpt-5-2-codex.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/prompts/prompt-codex.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/prompts/prompt-gemini.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/prompts/prompt-minimal.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/prompts/prompt-nano-banana.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/prompts/prompt-sub-agent-explore.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/prompts/prompt-sub-agent-image-gen.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/prompts/prompt-sub-agent-web.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/prompts/prompt-sub-agent.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/reminders.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/task.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/context.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/file/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/file/_utils.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/file/apply_patch.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/file/apply_patch_tool.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/file/apply_patch_tool.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/file/diff_builder.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/file/edit_tool.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/file/edit_tool.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/file/read_tool.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/file/read_tool.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/file/write_tool.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/file/write_tool.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/report_back_tool.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/shell/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/shell/bash_tool.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/shell/bash_tool.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/shell/command_safety.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/sub_agent_tool.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/todo/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/todo/todo_write_tool.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/todo/todo_write_tool.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/todo/todo_write_tool_raw.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/todo/update_plan_tool.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/todo/update_plan_tool.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/tool_abc.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/tool_registry.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/tool_runner.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/truncation.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/web/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/web/mermaid_tool.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/web/mermaid_tool.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/web/web_fetch_tool.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/web/web_fetch_tool.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/web/web_search_tool.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/tool/web/web_search_tool.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/turn.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/anthropic/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/anthropic/client.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/anthropic/input.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/bedrock/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/bedrock/client.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/claude/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/claude/client.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/client.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/codex/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/codex/client.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/google/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/google/client.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/google/input.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/image.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/input_common.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/openai_compatible/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/openai_compatible/client.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/openai_compatible/input.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/openai_compatible/stream.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/openai_compatible/tool_call_accumulator.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/openrouter/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/openrouter/client.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/openrouter/input.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/openrouter/reasoning.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/registry.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/responses/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/responses/client.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/responses/input.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/llm/usage.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/log.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/protocol/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/protocol/commands.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/protocol/events/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/protocol/events/base.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/protocol/events/chat.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/protocol/events/lifecycle.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/protocol/events/metadata.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/protocol/events/streaming.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/protocol/events/system.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/protocol/events/tools.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/protocol/llm_param.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/protocol/message.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/protocol/model.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/protocol/op.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/protocol/op_handler.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/protocol/sub_agent/AGENTS.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/protocol/sub_agent/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/protocol/sub_agent/explore.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/protocol/sub_agent/image_gen.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/protocol/sub_agent/task.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/protocol/sub_agent/web.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/protocol/tools.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/session/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/session/codec.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/session/export.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/session/selector.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/session/session.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/session/store.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/session/templates/export_session.html +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/session/templates/mermaid_viewer.html +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/skill/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/skill/assets/create-plan/SKILL.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/skill/assets/deslop/SKILL.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/skill/assets/handoff/SKILL.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/skill/assets/jj-workspace/SKILL.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/skill/assets/skill-creator/SKILL.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/skill/loader.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/skill/manager.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/skill/system_skills.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/command/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/command/clear_cmd.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/command/command_abc.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/command/copy_cmd.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/command/debug_cmd.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/command/export_cmd.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/command/export_online_cmd.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/command/fork_session_cmd.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/command/model_cmd.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/command/model_picker.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/command/prompt-init.md +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/command/prompt_command.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/command/refresh_cmd.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/command/registry.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/command/resume_cmd.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/command/status_cmd.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/command/sub_agent_model_cmd.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/command/terminal_setup_cmd.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/command/thinking_cmd.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/commands.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/assistant.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/bash_syntax.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/command_output.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/common.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/developer.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/diffs.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/errors.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/mermaid_viewer.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/metadata.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/rich/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/rich/cjk_wrap.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/rich/code_panel.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/rich/live.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/rich/markdown.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/rich/quote.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/rich/searchable_text.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/rich/status.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/rich/theme.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/sub_agent.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/thinking.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/tools.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/user_input.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/components/welcome.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/display.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/input/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/input/clipboard.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/input/completers.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/input/key_bindings.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/input/prompt_toolkit.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/machine.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/renderer.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/runner.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/terminal/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/terminal/color.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/terminal/control.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/terminal/image.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/terminal/notifier.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/tui/terminal/progress_bar.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/ui/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/ui/common.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/ui/core/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/ui/core/display.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/ui/core/input.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/ui/debug_mode.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/ui/terminal/__init__.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/ui/terminal/title.py +0 -0
- {klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/update.py +0 -0
|
@@ -196,15 +196,6 @@ class SubAgentModelHelper:
|
|
|
196
196
|
result.append(name)
|
|
197
197
|
return result
|
|
198
198
|
|
|
199
|
-
def get_enabled_sub_agent_types(self) -> set[SubAgentType]:
|
|
200
|
-
"""Return set of sub-agent types that are enabled and available."""
|
|
201
|
-
enabled: set[SubAgentType] = set()
|
|
202
|
-
for name in sub_agent_tool_names(enabled_only=True):
|
|
203
|
-
profile = get_sub_agent_profile_by_tool(name)
|
|
204
|
-
if profile is not None and self.check_availability_requirement(profile.availability_requirement):
|
|
205
|
-
enabled.add(profile.name)
|
|
206
|
-
return enabled
|
|
207
|
-
|
|
208
199
|
def build_sub_agent_client_configs(self) -> dict[SubAgentType, str]:
|
|
209
200
|
"""Return model names for each sub-agent that needs a dedicated client."""
|
|
210
201
|
result: dict[SubAgentType, str] = {}
|
|
@@ -262,10 +262,6 @@ class ModelProfileProvider(Protocol):
|
|
|
262
262
|
output_schema: dict[str, Any] | None = None,
|
|
263
263
|
) -> AgentProfile: ...
|
|
264
264
|
|
|
265
|
-
def enabled_sub_agent_types(self) -> set[tools.SubAgentType]:
|
|
266
|
-
"""Return set of sub-agent types enabled for this provider."""
|
|
267
|
-
...
|
|
268
|
-
|
|
269
265
|
|
|
270
266
|
class DefaultModelProfileProvider(ModelProfileProvider):
|
|
271
267
|
"""Default provider backed by global prompts/tool/reminder registries."""
|
|
@@ -281,28 +277,24 @@ class DefaultModelProfileProvider(ModelProfileProvider):
|
|
|
281
277
|
output_schema: dict[str, Any] | None = None,
|
|
282
278
|
) -> AgentProfile:
|
|
283
279
|
model_name = llm_client.model_name
|
|
280
|
+
llm_config = llm_client.get_llm_config()
|
|
281
|
+
|
|
282
|
+
# Image generation models should not have tools
|
|
283
|
+
if llm_config.modalities and "image" in llm_config.modalities:
|
|
284
|
+
agent_tools: list[llm_param.ToolSchema] = []
|
|
285
|
+
else:
|
|
286
|
+
agent_tools = load_agent_tools(model_name, sub_agent_type, config=self._config)
|
|
287
|
+
|
|
284
288
|
profile = AgentProfile(
|
|
285
289
|
llm_client=llm_client,
|
|
286
290
|
system_prompt=load_system_prompt(model_name, llm_client.protocol, sub_agent_type),
|
|
287
|
-
tools=
|
|
291
|
+
tools=agent_tools,
|
|
288
292
|
reminders=load_agent_reminders(model_name, sub_agent_type),
|
|
289
293
|
)
|
|
290
294
|
if output_schema:
|
|
291
295
|
return with_structured_output(profile, output_schema)
|
|
292
296
|
return profile
|
|
293
297
|
|
|
294
|
-
def enabled_sub_agent_types(self) -> set[tools.SubAgentType]:
|
|
295
|
-
if self._config is None:
|
|
296
|
-
from klaude_code.protocol.sub_agent import get_sub_agent_profile_by_tool, sub_agent_tool_names
|
|
297
|
-
|
|
298
|
-
return {
|
|
299
|
-
profile.name
|
|
300
|
-
for name in sub_agent_tool_names(enabled_only=True)
|
|
301
|
-
if (profile := get_sub_agent_profile_by_tool(name)) is not None
|
|
302
|
-
}
|
|
303
|
-
helper = SubAgentModelHelper(self._config)
|
|
304
|
-
return helper.get_enabled_sub_agent_types()
|
|
305
|
-
|
|
306
298
|
|
|
307
299
|
class VanillaModelProfileProvider(ModelProfileProvider):
|
|
308
300
|
"""Provider that strips prompts, reminders, and tools for vanilla mode."""
|
|
@@ -325,9 +317,6 @@ class VanillaModelProfileProvider(ModelProfileProvider):
|
|
|
325
317
|
return with_structured_output(profile, output_schema)
|
|
326
318
|
return profile
|
|
327
319
|
|
|
328
|
-
def enabled_sub_agent_types(self) -> set[tools.SubAgentType]:
|
|
329
|
-
return set()
|
|
330
|
-
|
|
331
320
|
|
|
332
321
|
class NanoBananaModelProfileProvider(ModelProfileProvider):
|
|
333
322
|
"""Provider for the Nano Banana image generation model.
|
|
@@ -352,6 +341,3 @@ class NanoBananaModelProfileProvider(ModelProfileProvider):
|
|
|
352
341
|
if output_schema:
|
|
353
342
|
return with_structured_output(profile, output_schema)
|
|
354
343
|
return profile
|
|
355
|
-
|
|
356
|
-
def enabled_sub_agent_types(self) -> set[tools.SubAgentType]:
|
|
357
|
-
return set()
|
|
@@ -17,14 +17,14 @@ from pathlib import Path
|
|
|
17
17
|
from klaude_code.config import load_config
|
|
18
18
|
from klaude_code.config.sub_agent_model_helper import SubAgentModelHelper
|
|
19
19
|
from klaude_code.core.agent import Agent
|
|
20
|
-
from klaude_code.core.agent_profile import DefaultModelProfileProvider, ModelProfileProvider
|
|
20
|
+
from klaude_code.core.agent_profile import AgentProfile, DefaultModelProfileProvider, ModelProfileProvider
|
|
21
21
|
from klaude_code.core.manager import LLMClients, SubAgentManager
|
|
22
22
|
from klaude_code.llm.registry import create_llm_client
|
|
23
23
|
from klaude_code.log import DebugType, log_debug
|
|
24
24
|
from klaude_code.protocol import commands, events, message, model, op
|
|
25
25
|
from klaude_code.protocol.llm_param import LLMConfigParameter, Thinking
|
|
26
26
|
from klaude_code.protocol.op_handler import OperationHandler
|
|
27
|
-
from klaude_code.protocol.sub_agent import SubAgentResult
|
|
27
|
+
from klaude_code.protocol.sub_agent import SubAgentResult, get_sub_agent_profile_by_tool
|
|
28
28
|
from klaude_code.session.export import build_export_html, get_default_export_path
|
|
29
29
|
from klaude_code.session.session import Session
|
|
30
30
|
|
|
@@ -110,13 +110,17 @@ class AgentRuntime:
|
|
|
110
110
|
def current_agent(self) -> Agent | None:
|
|
111
111
|
return self._agent
|
|
112
112
|
|
|
113
|
-
def _get_sub_agent_models(self) -> dict[str, LLMConfigParameter]:
|
|
114
|
-
"""Build a dict of sub-agent type to LLMConfigParameter."""
|
|
115
|
-
|
|
113
|
+
def _get_sub_agent_models(self, profile: AgentProfile) -> dict[str, LLMConfigParameter]:
|
|
114
|
+
"""Build a dict of sub-agent type to LLMConfigParameter based on profile tools."""
|
|
115
|
+
enabled_types: set[str] = set()
|
|
116
|
+
for tool in profile.tools:
|
|
117
|
+
sub_profile = get_sub_agent_profile_by_tool(tool.name)
|
|
118
|
+
if sub_profile is not None:
|
|
119
|
+
enabled_types.add(sub_profile.name)
|
|
116
120
|
return {
|
|
117
121
|
sub_agent_type: client.get_llm_config()
|
|
118
122
|
for sub_agent_type, client in self._llm_clients.sub_clients.items()
|
|
119
|
-
if sub_agent_type in
|
|
123
|
+
if sub_agent_type in enabled_types
|
|
120
124
|
}
|
|
121
125
|
|
|
122
126
|
async def ensure_agent(self, session_id: str | None = None) -> Agent:
|
|
@@ -145,7 +149,7 @@ class AgentRuntime:
|
|
|
145
149
|
session_id=session.id,
|
|
146
150
|
work_dir=str(session.work_dir),
|
|
147
151
|
llm_config=self._llm_clients.main.get_llm_config(),
|
|
148
|
-
sub_agent_models=self._get_sub_agent_models(),
|
|
152
|
+
sub_agent_models=self._get_sub_agent_models(profile),
|
|
149
153
|
)
|
|
150
154
|
)
|
|
151
155
|
|
|
@@ -202,7 +206,7 @@ class AgentRuntime:
|
|
|
202
206
|
session_id=agent.session.id,
|
|
203
207
|
work_dir=str(agent.session.work_dir),
|
|
204
208
|
llm_config=self._llm_clients.main.get_llm_config(),
|
|
205
|
-
sub_agent_models=self._get_sub_agent_models(),
|
|
209
|
+
sub_agent_models=self._get_sub_agent_models(agent.profile),
|
|
206
210
|
)
|
|
207
211
|
)
|
|
208
212
|
|
|
@@ -226,7 +230,7 @@ class AgentRuntime:
|
|
|
226
230
|
session_id=target_session.id,
|
|
227
231
|
work_dir=str(target_session.work_dir),
|
|
228
232
|
llm_config=self._llm_clients.main.get_llm_config(),
|
|
229
|
-
sub_agent_models=self._get_sub_agent_models(),
|
|
233
|
+
sub_agent_models=self._get_sub_agent_models(profile),
|
|
230
234
|
)
|
|
231
235
|
)
|
|
232
236
|
|
|
@@ -410,15 +414,6 @@ class ExecutorContext:
|
|
|
410
414
|
"""Emit an event to the UI display system."""
|
|
411
415
|
await self.event_queue.put(event)
|
|
412
416
|
|
|
413
|
-
def _get_sub_agent_models(self) -> dict[str, LLMConfigParameter]:
|
|
414
|
-
"""Build a dict of sub-agent type to LLMConfigParameter."""
|
|
415
|
-
enabled = self.model_profile_provider.enabled_sub_agent_types()
|
|
416
|
-
return {
|
|
417
|
-
sub_agent_type: client.get_llm_config()
|
|
418
|
-
for sub_agent_type, client in self.llm_clients.sub_clients.items()
|
|
419
|
-
if sub_agent_type in enabled
|
|
420
|
-
}
|
|
421
|
-
|
|
422
417
|
def current_session_id(self) -> str | None:
|
|
423
418
|
"""Return the primary active session id, if any.
|
|
424
419
|
|
|
@@ -54,17 +54,16 @@ def build_model_select_items(models: list[Any]) -> list[SelectItem[str]]:
|
|
|
54
54
|
items: list[SelectItem[str]] = []
|
|
55
55
|
for idx, m in enumerate(models, 1):
|
|
56
56
|
model_id_str = m.model_id or "N/A"
|
|
57
|
-
# Display the base model name only; provider stays in the meta section.
|
|
58
57
|
display_name = m.model_name
|
|
59
58
|
first_line_prefix = f"{display_name:<{max_model_name_length}} → "
|
|
60
|
-
|
|
61
|
-
meta_parts
|
|
62
|
-
meta_str = " · ".join(meta_parts)
|
|
59
|
+
provider_model = f"{m.provider}/{model_id_str}"
|
|
60
|
+
meta_parts = format_model_params(m)
|
|
61
|
+
meta_str = " · ".join(meta_parts) if meta_parts else ""
|
|
63
62
|
title = [
|
|
64
63
|
("class:meta", f"{idx:>{num_width}}. "),
|
|
65
64
|
("class:msg", first_line_prefix),
|
|
66
|
-
("class:msg bold",
|
|
67
|
-
("class:meta", f" {meta_str}\n"),
|
|
65
|
+
("class:msg bold", provider_model),
|
|
66
|
+
("class:meta", f" {meta_str}\n" if meta_str else "\n"),
|
|
68
67
|
]
|
|
69
68
|
search_text = f"{m.selector} {m.model_name} {model_id_str} {m.provider}"
|
|
70
69
|
items.append(SelectItem(title=title, value=m.selector, search_text=search_text))
|
|
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.0 → klaude_code-2.4.1}/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.0 → klaude_code-2.4.1}/src/klaude_code/core/prompts/prompt-sub-agent-explore.md
RENAMED
|
File without changes
|
{klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/core/prompts/prompt-sub-agent-image-gen.md
RENAMED
|
File without changes
|
{klaude_code-2.4.0 → klaude_code-2.4.1}/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.0 → klaude_code-2.4.1}/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
|
|
File without changes
|
|
File without changes
|
{klaude_code-2.4.0 → klaude_code-2.4.1}/src/klaude_code/session/templates/export_session.html
RENAMED
|
File without changes
|
{klaude_code-2.4.0 → klaude_code-2.4.1}/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.0 → klaude_code-2.4.1}/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
|
|
File without changes
|
|
File without changes
|