klaude-code 2.26.0__tar.gz → 2.27.0__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.26.0 → klaude_code-2.27.0}/PKG-INFO +1 -1
- {klaude_code-2.26.0 → klaude_code-2.27.0}/pyproject.toml +1 -1
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/prompt_suggestion/prompt_suggestion.py +41 -13
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/runtime/agent_ops.py +10 -3
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/session_title.py +38 -17
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/const.py +5 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/bedrock_anthropic/client.py +76 -7
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/machine.py +7 -3
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/renderer.py +2 -1
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/terminal/title.py +22 -22
- {klaude_code-2.26.0 → klaude_code-2.27.0}/README.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/.DS_Store +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/agent.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/agent_profile.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/attachments/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/attachments/collection.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/attachments/files.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/attachments/memory.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/attachments/skills.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/attachments/state.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/attachments/todo.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/away_summary.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/bash_mode.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/cache_break_detection.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/cache_safe.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/compaction/AGENTS.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/compaction/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/compaction/compaction.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/compaction/overflow.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/handoff/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/handoff/handoff.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/handoff/manager.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/prompt_suggestion/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/rewind/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/rewind/manager.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/runtime/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/runtime/away_summary.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/runtime/config_ops.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/runtime/dispatcher.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/runtime/llm.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/runtime/sub_agent.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/session_stats.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/skill_inventory.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/system_prompt.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/task.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/turn.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/app/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/app/auth_flow.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/app/log_viewer.html +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/app/log_viewer.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/app/ports/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/app/ports/display.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/app/ports/input.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/app/ports/interaction.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/app/runtime.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/app/runtime_facade.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/auth/AGENTS.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/auth/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/auth/base.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/auth/codex/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/auth/codex/exceptions.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/auth/codex/jwt_utils.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/auth/codex/oauth.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/auth/codex/token_manager.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/auth/copilot/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/auth/copilot/exceptions.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/auth/copilot/oauth.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/auth/copilot/token_manager.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/auth/env.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/cli/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/cli/auth_cmd.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/cli/config_cmd.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/cli/cost_cmd.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/cli/debug.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/cli/list_model.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/cli/main.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/cli/oauth_usage.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/cli/self_update.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/cli/web_cmd.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/config/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/config/assets/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/config/assets/builtin_config.yaml +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/config/builtin_config.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/config/config.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/config/formatters.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/config/loader.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/config/merge.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/config/model_matcher.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/config/sub_agent_model.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/config/thinking.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/control/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/control/event_bus.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/control/event_relay.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/control/runtime/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/control/runtime/actor.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/control/runtime/registry.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/control/session_meta_relay.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/control/user_interaction.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/anthropic/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/anthropic/client.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/anthropic/input.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/bedrock_anthropic/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/client.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/copilot/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/copilot/client.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/google/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/google/client.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/google/input.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/google_vertex/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/google_vertex/client.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/image.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/input_common.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/json_stable.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/openai_codex/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/openai_codex/client.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/openai_compatible/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/openai_compatible/client.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/openai_compatible/input.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/openai_compatible/stream.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/openai_responses/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/openai_responses/client.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/openai_responses/input.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/openrouter/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/openrouter/client.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/openrouter/input.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/openrouter/reasoning.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/registry.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/stream_parts.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/llm/usage.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/log.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/prompts/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/prompts/attachments.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/prompts/compaction.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/prompts/handoff.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/prompts/messages.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/prompts/prompt_suggestion.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/prompts/sub_agents/prompt-sub-agent-finder.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/prompts/sub_agents/prompt-sub-agent-review.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/prompts/sub_agents/prompt-sub-agent-simplifier.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/prompts/sub_agents.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/prompts/system/auto-memory-prompt.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/prompts/system/base-system-prompt-gpt.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/prompts/system/base-system-prompt.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/prompts/system/extended-thinking-prompt.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/prompts/system/following-conventions-prompt.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/prompts/system/git-workspace-hygiene-prompt.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/events.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/llm_param.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/message.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/model_id.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/models/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/models/common.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/models/developer_ui.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/models/file_tracking.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/models/session_runtime.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/models/sub_agent.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/models/task_metadata.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/models/todo.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/models/tool_ui.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/models/usage.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/op.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/op_handler.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/sub_agent/AGENTS.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/sub_agent/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/sub_agent/finder.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/sub_agent/general_purpose.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/sub_agent/review.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/sub_agent/simplifier.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/system_prompt.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/tools.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/protocol/user_interaction.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/session/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/session/codec.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/session/history.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/session/meta.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/session/selector.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/session/session.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/session/store.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/session/store_registry.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/AGENTS.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/.git +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/.gitignore +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/SOURCES.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/agent-browser/SKILL.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/agent-browser/references/authentication.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/agent-browser/references/commands.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/agent-browser/references/profiling.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/agent-browser/references/proxy-support.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/agent-browser/references/session-management.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/agent-browser/references/snapshot-refs.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/agent-browser/references/video-recording.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/agent-browser/templates/authenticated-session.sh +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/agent-browser/templates/capture-workflow.sh +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/agent-browser/templates/form-automation.sh +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/frontend-design/SKILL.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/gpt-image-gen/LICENSE.txt +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/gpt-image-gen/SKILL.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/gpt-image-gen/references/cli.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/gpt-image-gen/references/codex-network.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/gpt-image-gen/references/image-api.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/gpt-image-gen/references/prompting.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/gpt-image-gen/references/sample-prompts.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/gpt-image-gen/scripts/image_gen.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/klaude-config/SKILL.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/klaude-config/references/builtin-providers.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/klaude-config/references/config-file.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/klaude-config/references/memory-files.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/klaude-config/references/skill-system.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/nano-banana-image-gen/SKILL.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/nano-banana-image-gen/references/cli.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/nano-banana-image-gen/references/gemini-api.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/nano-banana-image-gen/references/prompting.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/nano-banana-image-gen/references/sample-prompts.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/nano-banana-image-gen/references/vertex-setup.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/nano-banana-image-gen/scripts/gemini_image_gen.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/pdf/SKILL.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/pdf/forms.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/pdf/reference.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/pdf/scripts/check_bounding_boxes.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/pdf/scripts/check_fillable_fields.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/pdf/scripts/convert_pdf_to_images.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/pdf/scripts/create_validation_image.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/pdf/scripts/extract_form_field_info.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/pdf/scripts/extract_form_structure.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/pdf/scripts/fill_fillable_fields.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/pdf/scripts/fill_pdf_form_with_annotations.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/playwright/LICENSE.txt +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/playwright/NOTICE.txt +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/playwright/SKILL.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/playwright/agents/openai.yaml +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/playwright/assets/playwright-small.svg +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/playwright/assets/playwright.png +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/playwright/references/cli.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/playwright/references/workflows.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/playwright/scripts/playwright_cli.sh +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/SKILL.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/3d.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/animations.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/assets/charts-bar-chart.tsx +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/assets.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/audio-visualization.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/audio.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/calculate-metadata.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/can-decode.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/charts.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/compositions.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/display-captions.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/extract-frames.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/ffmpeg.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/fonts.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/get-audio-duration.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/get-video-dimensions.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/get-video-duration.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/gifs.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/images.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/import-srt-captions.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/light-leaks.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/lottie.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/maps.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/measuring-dom-nodes.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/measuring-text.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/parameters.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/sequencing.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/sfx.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/subtitles.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/tailwind.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/text-animations.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/timing.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/transcribe-captions.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/transitions.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/transparent-videos.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/trimming.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/videos.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/remotion-best-practices/rules/voiceover.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/render-mermaid/.gitignore +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/render-mermaid/SKILL.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/render-mermaid/package.json +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/render-mermaid/references/config/first-time-setup.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/render-mermaid/references/config/preferences-schema.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/render-mermaid/references/templates/standalone.html +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/render-mermaid/references/troubleshooting.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/render-mermaid/scripts/render_mermaid.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/render-mermaid/scripts/setup.sh +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/session-logs/SKILL.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/skill-creator/SKILL.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/skills-lock.json +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/sora/LICENSE.txt +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/sora/SKILL.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/sora/agents/openai.yaml +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/sora/assets/sora-small.svg +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/sora/assets/sora.png +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/sora/references/cinematic-shots.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/sora/references/cli.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/sora/references/codex-network.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/sora/references/prompting.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/sora/references/sample-prompts.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/sora/references/social-ads.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/sora/references/troubleshooting.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/sora/references/video-api.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/sora/scripts/sora.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/svg-animations/SKILL.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/svg-animations/examples/index.html +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/assets/web-search/SKILL.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/loader.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/manager.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/skill/system_skills.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/AGENTS.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/agent_tool.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/agent_tool.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/ask_user_question_tool.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/ask_user_question_tool.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/core/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/core/abc.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/core/context.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/core/offload.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/core/registry.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/core/runner.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/file/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/file/_utils.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/file/apply_patch.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/file/apply_patch_tool.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/file/apply_patch_tool.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/file/diff_builder.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/file/edit_tool.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/file/edit_tool.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/file/read_tool.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/file/read_tool.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/file/write_tool.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/file/write_tool.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/handoff_tool.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/handoff_tool.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/rewind_tool.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/rewind_tool.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/shell/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/shell/bash_tool.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/shell/bash_tool.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/shell/command_safety.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/todo/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/todo/todo_write_tool.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/todo/todo_write_tool.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/todo/todo_write_tool_raw.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/web/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/web/external_content.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/web/ssrf.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/web/web_cache.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/web/web_fetch_tool.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/web/web_fetch_tool.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/web/web_search_tool.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tool/web/web_search_tool.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/AGENTS.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/auth_selector.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/command_abc.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/compact_cmd.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/continue_cmd.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/copy_cmd.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/debug_cmd.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/export_session_cmd.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/export_session_html.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/fork_session_cmd.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/login_cmd.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/logout_cmd.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/model_cmd.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/model_picker.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/new_cmd.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/recap_cmd.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/refresh_cmd.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/registry.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/status_cmd.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/sub_agent_model_cmd.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/thinking_cmd.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/types.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/command/web_cmd.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/commands.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/away_summary.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/bash_syntax.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/command_output.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/common.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/developer.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/diffs.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/errors.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/metadata.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/rich/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/rich/cjk_wrap.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/rich/live.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/rich/markdown.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/rich/quote.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/rich/status.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/rich/theme.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/sub_agent.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/thinking.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/tools/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/tools/_bash.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/tools/_common.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/tools/_dispatch.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/tools/_file.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/tools/_question.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/tools/_read.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/tools/_rewind.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/tools/_todo.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/tools/_web.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/user_input.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/components/welcome.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/display.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/input/AGENTS.md +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/input/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/input/completers.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/input/drag_drop.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/input/images.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/input/key_bindings.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/input/paste.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/input/prompt_toolkit.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/input/pt_theme.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/runner.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/status_runtime.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/terminal/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/terminal/ask_user_question.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/terminal/color.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/terminal/control.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/terminal/focus_tracker.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/terminal/image.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/terminal/notifier.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/terminal/selector.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/tui/terminal/session_selector.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/update.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/app.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/display.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/abap-BdImnpbu.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/actionscript-3-CoDkCxhg.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/ada-bCR0ucgS.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/andromeeda-C4gqWexZ.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/angular-html-CU67Zn6k.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/angular-ts-BwZT4LLn.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/apache-Pmp26Uib.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/apex-D8_7TLub.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/apl-dKokRX4l.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/applescript-Co6uUVPk.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/ara-BRHolxvo.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/asciidoc-Ve4PFQV2.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/asm-D_Q5rh1f.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/astro-CbQHKStN.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/aurora-x-D-2ljcwZ.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/awk-DMzUqQB5.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/ayu-dark-DYE7WIF3.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/ayu-light-BA47KaF1.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/ayu-mirage-32ctXXKs.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/ballerina-BFfxhgS-.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/bat-BkioyH1T.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/beancount-k_qm7-4y.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/berry-uYugtg8r.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/bibtex-CHM0blh-.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/bicep-Bmn6On1c.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/bird2-DPOp833l.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/blade-D4QpJJKB.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/bsl-BO_Y6i37.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/c-BIGW1oBm.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/c3-eo99z4R2.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/cadence-Bv_4Rxtq.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/cairo-KRGpt6FW.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/catppuccin-frappe-DFWUc33u.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/catppuccin-latte-C9dUb6Cb.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/catppuccin-macchiato-DQyhUUbL.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/catppuccin-mocha-D87Tk5Gz.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/clarity-D53aC0YG.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/clojure-P80f7IUj.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/cmake-D1j8_8rp.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/cobol-nwyudZeR.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/codeowners-Bp6g37R7.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/codeql-DsOJ9woJ.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/coffee-Ch7k5sss.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/common-lisp-Cg-RD9OK.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/coq-DkFqJrB1.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/cpp-CofmeUqb.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/crystal-tKQVLTB8.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/csharp-COcwbKMJ.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/css-DPfMkruS.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/csv-fuZLfV_i.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/cue-D82EKSYY.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/cypher-COkxafJQ.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/d-85-TOEBH.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/dark-plus-C3mMm8J8.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/dart-CF10PKvl.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/dax-CEL-wOlO.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/desktop-BmXAJ9_W.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/diff-D97Zzqfu.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/docker-BcOcwvcX.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/dotenv-Da5cRb03.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/dracula-BzJJZx-M.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/dracula-soft-BXkSAIEj.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/dream-maker-BtqSS_iP.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/edge-BkV0erSs.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/elixir-CDX3lj18.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/elm-DbKCFpqz.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/emacs-lisp-C9XAeP06.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/erb-B12qg9BL.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/erlang-DsQrWhSR.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/everforest-dark-BgDCqdQA.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/everforest-light-C8M2exoo.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/fennel-BYunw83y.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/fish-BvzEVeQv.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/fluent-C4IJs8-o.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/fortran-fixed-form-CkoXwp7k.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/fortran-free-form-BxgE0vQu.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/fsharp-CXgrBDvD.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/gdresource-BOOCDP_w.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/gdscript-C5YyOfLZ.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/gdshader-DkwncUOv.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/genie-D0YGMca9.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/gherkin-DyxjwDmM.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/git-commit-F4YmCXRG.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/git-rebase-r7XF79zn.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/github-dark-DHJKELXO.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/github-dark-default-Cuk6v7N8.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/github-dark-dimmed-DH5Ifo-i.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/github-dark-high-contrast-E3gJ1_iC.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/github-light-DAi9KRSo.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/github-light-default-D7oLnXFd.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/github-light-high-contrast-BfjtVDDH.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/gleam-BspZqrRM.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/glimmer-js-Rg0-pVw9.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/glimmer-ts-U6CK756n.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/glsl-DplSGwfg.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/gn-n2N0HUVH.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/gnuplot-DdkO51Og.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/go-CxLEBnE3.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/graphql-ChdNCCLP.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/groovy-gcz8RCvz.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/gruvbox-dark-hard-CFHQjOhq.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/gruvbox-dark-medium-GsRaNv29.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/gruvbox-dark-soft-CVdnzihN.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/gruvbox-light-hard-CH1njM8p.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/gruvbox-light-medium-DRw_LuNl.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/gruvbox-light-soft-hJgmCMqR.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/hack-CaT9iCJl.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/haml-B8DHNrY2.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/handlebars-BL8al0AC.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/haskell-Df6bDoY_.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/haxe-CzTSHFRz.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/hcl-BWvSN4gD.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/highlighted-body-B3W2YXNL-Bh-pK9Qu.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/hjson-D5-asLiD.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/hlsl-D3lLCCz7.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/horizon-BUw7H-hv.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/horizon-bright-Cn-bp-IR.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/houston-DnULxvSX.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/html-GMplVEZG.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/html-derivative-BFtXZ54Q.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/http-jrhK8wxY.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/hurl-irOxFIW8.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/hxml-Bvhsp5Yf.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/hy-DFXneXwc.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/imba-DGztddWO.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/index-D7bSbpcc.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/index-TK8frDq8.css +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/ini-BEwlwnbL.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/java-CylS5w8V.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/javascript-wDzz0qaB.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/jinja-4LBKfQ-Z.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/jison-wvAkD_A8.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/json-Cp-IABpG.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/json5-C9tS-k6U.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/jsonc-Des-eS-w.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/jsonl-DcaNXYhu.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/jsonnet-DFQXde-d.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/jssm-C2t-YnRu.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/jsx-g9-lgVsj.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/julia-CxzCAyBv.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/just-Cw27pwNe.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/kanagawa-dragon-CkXjmgJE.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/kanagawa-lotus-CfQXZHmo.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/kanagawa-wave-DWedfzmr.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/kdl-DV7GczEv.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/kotlin-BdnUsdx6.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/kusto-DZf3V79B.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/laserwave-DUszq2jm.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/latex-CWtU0Tv5.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/lean-BZvkOJ9d.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/less-B1dDrJ26.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/light-plus-B7mTdjB0.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/liquid-DYVedYrR.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/llvm-DjAJT7YJ.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/log-2UxHyX5q.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/logo-BtOb2qkB.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/lua-BaeVxFsk.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/luau-C-HG3fhB.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/make-CHLpvVh8.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/markdown-Cvjx9yec.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/marko-CnJfTvn9.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/material-theme-D5KoaKCx.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/material-theme-darker-BfHTSMKl.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/material-theme-lighter-B0m2ddpp.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/material-theme-ocean-CyktbL80.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/material-theme-palenight-Csfq5Kiy.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/matlab-D7o27uSR.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/mdc-BMNejdWA.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/mdx-Cmh6b_Ma.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/mermaid-mWjccvbQ.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/min-dark-CafNBF8u.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/min-light-CTRr51gU.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/mipsasm-CKIfxQSi.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/mojo-rZm6bMo-.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/monokai-D4h5O-jR.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/moonbit-_H4v1dQx.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/move-IF9eRakj.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/narrat-DRg8JJMk.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/nextflow-Zz6hmt5N.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/nextflow-groovy-BeH2EWoN.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/nginx-BpAMiNFr.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/night-owl-C39BiMTA.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/night-owl-light-CMTm3GFP.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/nim-CVrawwO9.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/nix-CwoSXNpI.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/nord-Ddv68eIx.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/nushell-Cz2AlsmD.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/objective-c-DXmwc3jG.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/objective-cpp-CLxacb5B.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/ocaml-C0hk2d4L.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/odin-BBf5iR-q.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/one-dark-pro-DVMEJ2y_.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/one-light-C3Wv6jpd.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/openscad-C4EeE6gA.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/pascal-D93ZcfNL.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/perl-C0TMdlhV.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/php-Dhbhpdrm.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/pierre-dark-BXuwtOqb.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/pierre-light-dckrK0oj.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/pkl-u5AG7uiY.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/plastic-3e1v2bzS.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/plsql-ChMvpjG-.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/po-BTJTHyun.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/poimandres-CS3Unz2-.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/polar-C0HS_06l.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/postcss-CXtECtnM.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/powerquery-CEu0bR-o.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/powershell-Dpen1YoG.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/prisma-Dd19v3D-.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/prolog-CbFg5uaA.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/proto-C7zT0LnQ.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/pug-CGlum2m_.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/puppet-BMWR74SV.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/purescript-CklMAg4u.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/python-B6aJPvgy.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/qml-3beO22l8.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/qmldir-C8lEn-DE.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/qss-IeuSbFQv.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/r-Dspwwk_N.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/racket-BqYA7rlc.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/raku-DXvB9xmW.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/razor-Uh8Bk_45.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/red-bN70gL4F.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/reg-C-SQnVFl.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/regexp-CDVJQ6XC.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/rel-C3B-1QV4.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/riscv-BM1_JUlF.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/ron-D8l8udqQ.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/rose-pine-dawn-DHQR4-dF.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/rose-pine-moon-D4_iv3hh.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/rose-pine-qdsjHGoJ.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/rosmsg-BJDFO7_C.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/rst-BrH8l1NY.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/ruby-Dw2BHqvy.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/rust-B1yitclQ.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/sas-cz2c8ADy.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/sass-Cj5Yp3dK.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/scala-C151Ov-r.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/scheme-C98Dy4si.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/scss-OYdSNvt2.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/sdbl-DVxCFoDh.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/shaderlab-Dg9Lc6iA.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/shellscript-Yzrsuije.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/shellsession-BADoaaVG.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/slack-dark-BthQWCQV.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/slack-ochin-DqwNpetd.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/smalltalk-BERRCDM3.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/snazzy-light-Bw305WKR.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/solarized-dark-DXbdFlpD.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/solarized-light-L9t79GZl.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/solidity-rGO070M0.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/soy-Brmx7dQM.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/sparql-rVzFXLq3.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/splunk-BtCnVYZw.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/sql-BLtJtn59.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/ssh-config-_ykCGR6B.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/stata-BH5u7GGu.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/stylus-BEDo0Tqx.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/surrealql-Bq5Q-fJD.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/svelte-C_ipcX3V.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/swift-D82vCrfD.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/synthwave-84-CbfX1IO0.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/system-verilog-CnnmHF94.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/systemd-4A_iFExJ.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/talonscript-CkByrt1z.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/tasl-QIJgUcNo.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/tcl-dwOrl1Do.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/templ-P3uqSqPl.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/terraform-BETggiCN.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/tex-idrVyKtj.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/tokyo-night-hegEt444.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/toml-vGWfd6FD.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/ts-tags-zn1MmPIZ.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/tsv-B_m7g4N7.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/tsx-COt5Ahok.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/turtle-BsS91CYL.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/twig-DNn4PbVi.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/typescript-BPQ3VLAy.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/typespec-BGHnOYBU.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/typst-DHCkPAjA.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/v-BcVCzyr7.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/vala-CsfeWuGM.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/vb-D17OF-Vu.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/verilog-BQ8w6xss.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/vesper-DU1UobuO.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/vhdl-CeAyd5Ju.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/viml-CJc9bBzg.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/vitesse-black-Bkuqu6BP.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/vitesse-dark-D0r3Knsf.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/vitesse-light-CVO1_9PV.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/vue-DN_0RTcg.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/vue-html-AaS7Mt5G.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/vue-vine-CQOfvN7w.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/vyper-CDx5xZoG.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/wasm-CG6Dc4jp.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/wasm-MzD3tlZU.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/wenyan-BV7otONQ.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/wgsl-Dx-B1_4e.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/wikitext-BhOHFoWU.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/wit-5i3qLPDT.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/wolfram-lXgVvXCa.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/xml-sdJ4AIDG.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/xsl-CtQFsRM5.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/yaml-Buea-lGh.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/zenscript-DVFEvuxE.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/assets/zig-VOosw3JB.js +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/favicon.svg +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/fonts/InterVariable-Italic.woff2 +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/fonts/InterVariable.woff2 +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/dist/index.html +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/file_access.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/interaction.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/live_events.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/routes/__init__.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/routes/config.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/routes/files.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/routes/sessions.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/routes/skills.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/routes/ws.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/server.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/session_access.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/session_index.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/session_live.py +0 -0
- {klaude_code-2.26.0 → klaude_code-2.27.0}/src/klaude_code/web/state.py +0 -0
|
@@ -14,6 +14,7 @@ from __future__ import annotations
|
|
|
14
14
|
|
|
15
15
|
import asyncio
|
|
16
16
|
import re
|
|
17
|
+
from dataclasses import dataclass
|
|
17
18
|
|
|
18
19
|
from klaude_code.agent.agent_profile import AgentProfile
|
|
19
20
|
from klaude_code.agent.cache_safe import CacheSafeParams, build_cache_safe_messages
|
|
@@ -22,7 +23,9 @@ from klaude_code.prompts.prompt_suggestion import PROMPT_SUGGESTION_PROMPT
|
|
|
22
23
|
from klaude_code.protocol import llm_param, message
|
|
23
24
|
from klaude_code.session.session import Session
|
|
24
25
|
|
|
25
|
-
|
|
26
|
+
# Reasoning models (for example gpt-5.4) may spend most of a tiny budget on
|
|
27
|
+
# thinking, leaving no visible suggestion text in the final output.
|
|
28
|
+
_MAX_SUGGESTION_TOKENS = 4096
|
|
26
29
|
_MIN_ASSISTANT_TURNS = 2
|
|
27
30
|
|
|
28
31
|
# Cache cold heuristic: if the parent response's own output + uncached input
|
|
@@ -31,6 +34,13 @@ _MIN_ASSISTANT_TURNS = 2
|
|
|
31
34
|
_MAX_PARENT_UNCACHED_TOKENS = 10_000
|
|
32
35
|
|
|
33
36
|
|
|
37
|
+
@dataclass(frozen=True)
|
|
38
|
+
class PromptSuggestionResult:
|
|
39
|
+
suggestion: str | None
|
|
40
|
+
raw: str
|
|
41
|
+
drop_reason: str | None = None
|
|
42
|
+
|
|
43
|
+
|
|
34
44
|
def should_suggest(session: Session) -> str | None:
|
|
35
45
|
"""Return a suppression reason or ``None`` when generation is allowed.
|
|
36
46
|
|
|
@@ -79,9 +89,11 @@ async def run_prompt_suggestion(
|
|
|
79
89
|
session: Session,
|
|
80
90
|
main_profile: AgentProfile,
|
|
81
91
|
cancel: asyncio.Event | None = None,
|
|
82
|
-
) ->
|
|
83
|
-
"""Ask the main LLM to predict the user's next prompt.
|
|
84
|
-
|
|
92
|
+
) -> PromptSuggestionResult | None:
|
|
93
|
+
"""Ask the main LLM to predict the user's next prompt.
|
|
94
|
+
|
|
95
|
+
Returns a result object after a successful model call, or ``None`` when the
|
|
96
|
+
call/stream failed before a usable response was produced.
|
|
85
97
|
|
|
86
98
|
The wire prefix equals ``session.get_llm_history()`` (parent's most recent
|
|
87
99
|
request), and the appended UserMessage is the suggestion instruction.
|
|
@@ -143,16 +155,20 @@ async def run_prompt_suggestion(
|
|
|
143
155
|
f"input={usage.input_tokens} output={usage.output_tokens}",
|
|
144
156
|
debug_type=DebugType.RESPONSE,
|
|
145
157
|
)
|
|
146
|
-
|
|
147
|
-
if suggestion is None:
|
|
158
|
+
result = _finalize_result(raw)
|
|
159
|
+
if result.suggestion is None and result.drop_reason == "done_or_empty":
|
|
148
160
|
log_debug("[PromptSuggestion] filtered ([DONE] or empty)", raw, debug_type=DebugType.RESPONSE)
|
|
149
|
-
return
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
161
|
+
return result
|
|
162
|
+
if result.drop_reason is not None:
|
|
163
|
+
log_debug(
|
|
164
|
+
f"[PromptSuggestion] filtered ({result.drop_reason})",
|
|
165
|
+
result.suggestion or result.raw,
|
|
166
|
+
debug_type=DebugType.RESPONSE,
|
|
167
|
+
)
|
|
168
|
+
return result
|
|
169
|
+
assert result.suggestion is not None
|
|
170
|
+
log_debug("[PromptSuggestion] accepted", result.suggestion, debug_type=DebugType.RESPONSE)
|
|
171
|
+
return result
|
|
156
172
|
|
|
157
173
|
|
|
158
174
|
_DONE_RE = re.compile(r"^\s*\[\s*done\s*\]\s*$", re.IGNORECASE)
|
|
@@ -196,3 +212,15 @@ def _filter_reason(suggestion: str) -> str | None:
|
|
|
196
212
|
if _ASSISTANT_VOICE_RE.match(suggestion):
|
|
197
213
|
return "assistant_voice"
|
|
198
214
|
return None
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
def _finalize_result(raw: str) -> PromptSuggestionResult:
|
|
218
|
+
suggestion = _normalize(raw)
|
|
219
|
+
if suggestion is None:
|
|
220
|
+
return PromptSuggestionResult(suggestion=None, raw=raw, drop_reason="done_or_empty")
|
|
221
|
+
|
|
222
|
+
reason = _filter_reason(suggestion)
|
|
223
|
+
if reason is not None:
|
|
224
|
+
return PromptSuggestionResult(suggestion=None, raw=raw, drop_reason=reason)
|
|
225
|
+
|
|
226
|
+
return PromptSuggestionResult(suggestion=suggestion, raw=raw)
|
|
@@ -458,7 +458,7 @@ class AgentOperationHandler:
|
|
|
458
458
|
async def _generate_prompt_suggestion(self, agent: Agent) -> None:
|
|
459
459
|
session = agent.session
|
|
460
460
|
try:
|
|
461
|
-
|
|
461
|
+
result = await run_prompt_suggestion(
|
|
462
462
|
session=session,
|
|
463
463
|
main_profile=agent.profile,
|
|
464
464
|
)
|
|
@@ -474,12 +474,19 @@ class AgentOperationHandler:
|
|
|
474
474
|
debug_type=DebugType.EXECUTION,
|
|
475
475
|
)
|
|
476
476
|
return
|
|
477
|
-
if
|
|
477
|
+
if result is None:
|
|
478
478
|
log_debug(
|
|
479
|
-
f"[PromptSuggestion] no suggestion session={session.id} (
|
|
479
|
+
f"[PromptSuggestion] no suggestion session={session.id} (generation failed before a response was produced)",
|
|
480
480
|
debug_type=DebugType.EXECUTION,
|
|
481
481
|
)
|
|
482
482
|
return
|
|
483
|
+
if result.suggestion is None:
|
|
484
|
+
log_debug(
|
|
485
|
+
f"[PromptSuggestion] no suggestion session={session.id} reason={result.drop_reason} raw={result.raw!r}",
|
|
486
|
+
debug_type=DebugType.EXECUTION,
|
|
487
|
+
)
|
|
488
|
+
return
|
|
489
|
+
suggestion = result.suggestion
|
|
483
490
|
log_debug(
|
|
484
491
|
f"[PromptSuggestion] ready session={session.id}",
|
|
485
492
|
suggestion,
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
import asyncio
|
|
5
6
|
import re
|
|
6
7
|
|
|
7
8
|
from klaude_code.llm.client import LLMClientABC
|
|
@@ -14,6 +15,7 @@ _SESSION_TITLE_SYSTEM_PROMPT = (
|
|
|
14
15
|
"Reply with only the title, no quotes, no markdown, no explanation."
|
|
15
16
|
)
|
|
16
17
|
|
|
18
|
+
_SESSION_TITLE_MAX_ATTEMPTS = 3
|
|
17
19
|
_SESSION_TITLE_MAX_TOKENS = 4096
|
|
18
20
|
|
|
19
21
|
|
|
@@ -78,21 +80,40 @@ async def generate_session_title(
|
|
|
78
80
|
debug_type=DebugType.RESPONSE,
|
|
79
81
|
)
|
|
80
82
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
83
|
+
for attempt in range(1, _SESSION_TITLE_MAX_ATTEMPTS + 1):
|
|
84
|
+
try:
|
|
85
|
+
stream = await llm_client.call(call_param)
|
|
86
|
+
parts: list[str] = []
|
|
87
|
+
final_text: str | None = None
|
|
88
|
+
stop_reason: str | None = None
|
|
89
|
+
async for item in stream:
|
|
90
|
+
if isinstance(item, message.AssistantTextDelta):
|
|
91
|
+
parts.append(item.content)
|
|
92
|
+
elif isinstance(item, message.AssistantMessage):
|
|
93
|
+
final_text = message.join_text_parts(item.parts)
|
|
94
|
+
stop_reason = item.stop_reason
|
|
95
|
+
elif isinstance(item, message.StreamErrorItem):
|
|
96
|
+
raise RuntimeError(item.error)
|
|
97
|
+
except asyncio.CancelledError:
|
|
98
|
+
raise
|
|
99
|
+
except Exception as exc:
|
|
100
|
+
if attempt == _SESSION_TITLE_MAX_ATTEMPTS:
|
|
101
|
+
raise
|
|
102
|
+
log_debug(
|
|
103
|
+
f"[SessionTitle] attempt {attempt}/{_SESSION_TITLE_MAX_ATTEMPTS} failed: {exc!s}; retrying",
|
|
104
|
+
debug_type=DebugType.RESPONSE,
|
|
105
|
+
)
|
|
106
|
+
continue
|
|
93
107
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
108
|
+
title = _normalize_session_title(final_text if final_text is not None else "".join(parts))
|
|
109
|
+
if stop_reason:
|
|
110
|
+
log_debug(f"[SessionTitle] stop_reason {stop_reason}", debug_type=DebugType.RESPONSE)
|
|
111
|
+
if title is not None or attempt == _SESSION_TITLE_MAX_ATTEMPTS:
|
|
112
|
+
log_debug("[SessionTitle] result", title or "<empty>", debug_type=DebugType.RESPONSE)
|
|
113
|
+
return title
|
|
114
|
+
log_debug(
|
|
115
|
+
f"[SessionTitle] attempt {attempt}/{_SESSION_TITLE_MAX_ATTEMPTS} returned empty title; retrying",
|
|
116
|
+
debug_type=DebugType.RESPONSE,
|
|
117
|
+
)
|
|
118
|
+
|
|
119
|
+
return None
|
|
@@ -45,6 +45,11 @@ LLM_HTTP_TIMEOUT_READ = 285.0 # HTTP read timeout (seconds)
|
|
|
45
45
|
ANTHROPIC_BETA_INTERLEAVED_THINKING = "interleaved-thinking-2025-05-14" # Anthropic API beta flag
|
|
46
46
|
ANTHROPIC_BETA_CONTEXT_MANAGEMENT = "context-management-2025-06-27" # Anthropic API beta flag for context editing
|
|
47
47
|
|
|
48
|
+
# Bedrock transport selector (internal). True uses native ConverseStream via boto3;
|
|
49
|
+
# False routes through `anthropic.AsyncAnthropicBedrock` and reuses the Anthropic
|
|
50
|
+
# messages streaming path.
|
|
51
|
+
BEDROCK_USE_CONVERSE_STREAM = False
|
|
52
|
+
|
|
48
53
|
OPENROUTER_BASE_URL = "https://openrouter.ai/api/v1" # OpenRouter API base URL
|
|
49
54
|
|
|
50
55
|
CODEX_BASE_URL = "https://chatgpt.com/backend-api/codex" # Codex API base URL
|
|
@@ -23,13 +23,15 @@ import httpx
|
|
|
23
23
|
from klaude_code.const import (
|
|
24
24
|
ANTHROPIC_BETA_CONTEXT_MANAGEMENT,
|
|
25
25
|
ANTHROPIC_BETA_INTERLEAVED_THINKING,
|
|
26
|
+
BEDROCK_USE_CONVERSE_STREAM,
|
|
26
27
|
DEFAULT_ANTHROPIC_THINKING_BUDGET_TOKENS,
|
|
27
28
|
DEFAULT_MAX_TOKENS,
|
|
28
29
|
DEFAULT_TEMPERATURE,
|
|
29
30
|
LLM_HTTP_TIMEOUT_CONNECT,
|
|
30
31
|
LLM_HTTP_TIMEOUT_READ,
|
|
32
|
+
LLM_HTTP_TIMEOUT_TOTAL,
|
|
31
33
|
)
|
|
32
|
-
from klaude_code.llm.anthropic.client import AnthropicStreamStateManager
|
|
34
|
+
from klaude_code.llm.anthropic.client import AnthropicLLMStream, AnthropicStreamStateManager, build_payload
|
|
33
35
|
from klaude_code.llm.anthropic.input import convert_history_to_input, convert_system_to_input
|
|
34
36
|
from klaude_code.llm.client import LLMClientABC, LLMStreamABC
|
|
35
37
|
from klaude_code.llm.image import detect_mime_type_from_bytes, parse_data_url
|
|
@@ -154,7 +156,11 @@ def _convert_content_block(block: dict[str, Any], *, model_id: str) -> list[dict
|
|
|
154
156
|
result: list[dict[str, Any]] = []
|
|
155
157
|
|
|
156
158
|
if block_type == "text":
|
|
157
|
-
|
|
159
|
+
text = cast(str, block.get("text") or "")
|
|
160
|
+
# Bedrock ConverseStream rejects blank text blocks; drop them and
|
|
161
|
+
# keep the cache boundary only if cache_control was set.
|
|
162
|
+
if text:
|
|
163
|
+
result.append({"text": text})
|
|
158
164
|
_append_cache_point(result, block)
|
|
159
165
|
return result
|
|
160
166
|
|
|
@@ -168,6 +174,9 @@ def _convert_content_block(block: dict[str, Any], *, model_id: str) -> list[dict
|
|
|
168
174
|
tool_content: list[dict[str, Any]] = []
|
|
169
175
|
for item in cast(list[dict[str, Any]], block.get("content", [])):
|
|
170
176
|
tool_content.extend(_convert_content_block(item, model_id=model_id))
|
|
177
|
+
if not tool_content:
|
|
178
|
+
# toolResult.content cannot be empty on Bedrock ConverseStream.
|
|
179
|
+
tool_content = [{"text": " "}]
|
|
171
180
|
result.append(
|
|
172
181
|
{
|
|
173
182
|
"toolResult": {
|
|
@@ -238,7 +247,9 @@ def _convert_messages(param: llm_param.LLMCallParameter) -> list[dict[str, Any]]
|
|
|
238
247
|
for block in cast(list[dict[str, Any]], msg.get("content", [])):
|
|
239
248
|
content.extend(_convert_content_block(block, model_id=model_id))
|
|
240
249
|
if not content:
|
|
241
|
-
|
|
250
|
+
# Bedrock ConverseStream rejects empty or blank-text content; use a
|
|
251
|
+
# single space as a minimal placeholder to keep turn structure intact.
|
|
252
|
+
content = [{"text": " "}]
|
|
242
253
|
result.append({"role": msg["role"], "content": content})
|
|
243
254
|
|
|
244
255
|
return result
|
|
@@ -253,7 +264,9 @@ def _convert_system(param: llm_param.LLMCallParameter) -> list[dict[str, Any]]:
|
|
|
253
264
|
result.append({"cachePoint": {"type": "default"}})
|
|
254
265
|
|
|
255
266
|
for block in system_blocks:
|
|
256
|
-
|
|
267
|
+
text = cast(str, block.get("text") or "")
|
|
268
|
+
if text:
|
|
269
|
+
result.append({"text": text})
|
|
257
270
|
if block.get("cache_control"):
|
|
258
271
|
result.append({"cachePoint": {"type": "default"}})
|
|
259
272
|
|
|
@@ -544,10 +557,24 @@ class BedrockLLMStream(LLMStreamABC):
|
|
|
544
557
|
|
|
545
558
|
@register(llm_param.LLMClientProtocol.BEDROCK)
|
|
546
559
|
class BedrockClient(LLMClientABC):
|
|
547
|
-
"""LLM client for AWS Bedrock
|
|
560
|
+
"""LLM client for AWS Bedrock.
|
|
561
|
+
|
|
562
|
+
Defaults to native ConverseStream via boto3. When `BEDROCK_USE_CONVERSE_STREAM`
|
|
563
|
+
is False, routes through `anthropic.AsyncAnthropicBedrock` and reuses the
|
|
564
|
+
Anthropic messages streaming parser.
|
|
565
|
+
"""
|
|
548
566
|
|
|
549
567
|
def __init__(self, config: llm_param.LLMConfigParameter):
|
|
550
568
|
super().__init__(config)
|
|
569
|
+
|
|
570
|
+
if BEDROCK_USE_CONVERSE_STREAM:
|
|
571
|
+
self._messages_client: Any = None
|
|
572
|
+
self._init_converse_client(config)
|
|
573
|
+
else:
|
|
574
|
+
self.client: Any = None
|
|
575
|
+
self._init_messages_client(config)
|
|
576
|
+
|
|
577
|
+
def _init_converse_client(self, config: llm_param.LLMConfigParameter) -> None:
|
|
551
578
|
missing = [name for name in ("boto3", "botocore") if find_spec(name) is None]
|
|
552
579
|
if missing:
|
|
553
580
|
missing_names = ", ".join(missing)
|
|
@@ -572,7 +599,7 @@ class BedrockClient(LLMClientABC):
|
|
|
572
599
|
session_kwargs["profile_name"] = config.aws_profile
|
|
573
600
|
|
|
574
601
|
session: Any = boto3.Session(**session_kwargs)
|
|
575
|
-
self.client
|
|
602
|
+
self.client = session.client(
|
|
576
603
|
"bedrock-runtime",
|
|
577
604
|
region_name=config.aws_region,
|
|
578
605
|
config=Config(
|
|
@@ -582,6 +609,18 @@ class BedrockClient(LLMClientABC):
|
|
|
582
609
|
)
|
|
583
610
|
self.client.meta.events.register("before-sign.bedrock-runtime", _inject_session_id_header)
|
|
584
611
|
|
|
612
|
+
def _init_messages_client(self, config: llm_param.LLMConfigParameter) -> None:
|
|
613
|
+
import anthropic
|
|
614
|
+
|
|
615
|
+
self._messages_client = anthropic.AsyncAnthropicBedrock(
|
|
616
|
+
aws_access_key=config.aws_access_key,
|
|
617
|
+
aws_secret_key=config.aws_secret_key,
|
|
618
|
+
aws_session_token=config.aws_session_token,
|
|
619
|
+
aws_region=config.aws_region,
|
|
620
|
+
aws_profile=config.aws_profile,
|
|
621
|
+
timeout=httpx.Timeout(LLM_HTTP_TIMEOUT_TOTAL, connect=LLM_HTTP_TIMEOUT_CONNECT, read=LLM_HTTP_TIMEOUT_READ),
|
|
622
|
+
)
|
|
623
|
+
|
|
585
624
|
@classmethod
|
|
586
625
|
@override
|
|
587
626
|
def create(cls, config: llm_param.LLMConfigParameter) -> "LLMClientABC":
|
|
@@ -590,8 +629,11 @@ class BedrockClient(LLMClientABC):
|
|
|
590
629
|
@override
|
|
591
630
|
async def call(self, param: llm_param.LLMCallParameter) -> LLMStreamABC:
|
|
592
631
|
param = apply_config_defaults(param, self.get_llm_config())
|
|
593
|
-
|
|
594
632
|
metadata_tracker = MetadataTracker(cost_config=self.get_llm_config().cost)
|
|
633
|
+
|
|
634
|
+
if not BEDROCK_USE_CONVERSE_STREAM:
|
|
635
|
+
return await self._call_messages(param, metadata_tracker)
|
|
636
|
+
|
|
595
637
|
request = await asyncio.to_thread(build_bedrock_request, param, region=self.get_llm_config().aws_region)
|
|
596
638
|
|
|
597
639
|
log_debug(
|
|
@@ -612,3 +654,30 @@ class BedrockClient(LLMClientABC):
|
|
|
612
654
|
) as e:
|
|
613
655
|
error_message = f"{e.__class__.__name__} {e!s}"
|
|
614
656
|
return error_llm_stream(metadata_tracker, error=error_message)
|
|
657
|
+
|
|
658
|
+
async def _call_messages(
|
|
659
|
+
self,
|
|
660
|
+
param: llm_param.LLMCallParameter,
|
|
661
|
+
metadata_tracker: MetadataTracker,
|
|
662
|
+
) -> LLMStreamABC:
|
|
663
|
+
import anthropic
|
|
664
|
+
|
|
665
|
+
payload = build_payload(param)
|
|
666
|
+
log_debug(
|
|
667
|
+
json.dumps(payload, ensure_ascii=False, default=str),
|
|
668
|
+
debug_type=DebugType.LLM_PAYLOAD,
|
|
669
|
+
)
|
|
670
|
+
|
|
671
|
+
extra_headers: dict[str, str] = {}
|
|
672
|
+
if param.session_id:
|
|
673
|
+
extra_headers["x-session-id"] = param.session_id
|
|
674
|
+
|
|
675
|
+
try:
|
|
676
|
+
stream = self._messages_client.beta.messages.create(
|
|
677
|
+
**payload,
|
|
678
|
+
extra_headers=extra_headers,
|
|
679
|
+
)
|
|
680
|
+
return AnthropicLLMStream(stream, param=param, metadata_tracker=metadata_tracker)
|
|
681
|
+
except (anthropic.APIError, httpx.HTTPError) as e:
|
|
682
|
+
error_message = f"{e.__class__.__name__} {e!s}"
|
|
683
|
+
return error_llm_stream(metadata_tracker, error=error_message)
|
|
@@ -94,6 +94,10 @@ def _empty_bash_chunks() -> list[str]:
|
|
|
94
94
|
return []
|
|
95
95
|
|
|
96
96
|
|
|
97
|
+
def _is_cancelled_task_result(task_result: str) -> bool:
|
|
98
|
+
return task_result.strip().lower() in {"task cancelled", "task canceled"}
|
|
99
|
+
|
|
100
|
+
|
|
97
101
|
@dataclass
|
|
98
102
|
class _PendingBashToolOutput:
|
|
99
103
|
started_at: float
|
|
@@ -828,7 +832,7 @@ class DisplayStateMachine:
|
|
|
828
832
|
self._primary_session_id = e.session_id
|
|
829
833
|
if not is_replay:
|
|
830
834
|
cmds.append(TaskClockStart())
|
|
831
|
-
self._terminal_title_prefix = "
|
|
835
|
+
self._terminal_title_prefix = "⠋"
|
|
832
836
|
cmds.append(
|
|
833
837
|
StartTitleBlink(
|
|
834
838
|
model_name=self._model_name,
|
|
@@ -1282,7 +1286,7 @@ class DisplayStateMachine:
|
|
|
1282
1286
|
and not s.is_sub_agent
|
|
1283
1287
|
and s.assistant_char_count == 0
|
|
1284
1288
|
and e.task_result.strip()
|
|
1285
|
-
and e.task_result
|
|
1289
|
+
and not _is_cancelled_task_result(e.task_result)
|
|
1286
1290
|
):
|
|
1287
1291
|
cmds.append(StartAssistantStream(session_id=e.session_id))
|
|
1288
1292
|
cmds.append(AppendAssistant(session_id=e.session_id, content=e.task_result))
|
|
@@ -1293,7 +1297,7 @@ class DisplayStateMachine:
|
|
|
1293
1297
|
self._spinner.clear_task_state()
|
|
1294
1298
|
cmds.append(SpinnerStop())
|
|
1295
1299
|
cmds.append(StopTitleBlink())
|
|
1296
|
-
self._terminal_title_prefix = "
|
|
1300
|
+
self._terminal_title_prefix = None if _is_cancelled_task_result(e.task_result) else "✅"
|
|
1297
1301
|
cmds.append(
|
|
1298
1302
|
UpdateTerminalTitlePrefix(
|
|
1299
1303
|
prefix=self._terminal_title_prefix,
|
|
@@ -955,9 +955,10 @@ class TUICommandRenderer:
|
|
|
955
955
|
if self.is_sub_agent_session(event.event.session_id):
|
|
956
956
|
return
|
|
957
957
|
body = self._compact_result_text(event.event.task_result)
|
|
958
|
+
normalized_result = event.event.task_result.strip().lower()
|
|
958
959
|
notification = Notification(
|
|
959
960
|
type=NotificationType.AGENT_TASK_COMPLETE,
|
|
960
|
-
title="Task Completed",
|
|
961
|
+
title="Task Cancelled" if normalized_result in {"task cancelled", "task canceled"} else "Task Completed",
|
|
961
962
|
body=body,
|
|
962
963
|
)
|
|
963
964
|
self._notifier.notify(notification)
|
|
@@ -7,9 +7,9 @@ import sys
|
|
|
7
7
|
|
|
8
8
|
from klaude_code.log import DebugType, log_debug
|
|
9
9
|
|
|
10
|
-
# Blink state:
|
|
11
|
-
|
|
12
|
-
_BLINK_INTERVAL = 0.
|
|
10
|
+
# Blink state: cycles a single-glyph Braille spinner to keep title width stable.
|
|
11
|
+
_BLINK_PREFIXES = ("⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏")
|
|
12
|
+
_BLINK_INTERVAL = 0.08 # seconds
|
|
13
13
|
|
|
14
14
|
_blink_task: asyncio.Task[None] | None = None
|
|
15
15
|
_blink_model_name: str | None = None
|
|
@@ -25,6 +25,19 @@ def _format_session_title(session_title: str | None) -> str | None:
|
|
|
25
25
|
return single_line[:80]
|
|
26
26
|
|
|
27
27
|
|
|
28
|
+
def _project_name(work_dir: str | None) -> str:
|
|
29
|
+
folder_name = os.path.basename(work_dir or os.getcwd())
|
|
30
|
+
return folder_name or "klaude"
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def _build_terminal_title(work_dir: str | None, session_title: str | None) -> str:
|
|
34
|
+
project_name = _project_name(work_dir)
|
|
35
|
+
formatted_session_title = _format_session_title(session_title)
|
|
36
|
+
if formatted_session_title:
|
|
37
|
+
return f"{project_name} · {formatted_session_title}"
|
|
38
|
+
return f"{project_name} · klaude"
|
|
39
|
+
|
|
40
|
+
|
|
28
41
|
def set_terminal_title(title: str) -> None:
|
|
29
42
|
"""Set terminal window title using an ANSI escape sequence."""
|
|
30
43
|
stream = getattr(sys, "__stdout__", None) or sys.stdout
|
|
@@ -49,21 +62,8 @@ def update_terminal_title(
|
|
|
49
62
|
work_dir: str | None = None,
|
|
50
63
|
session_title: str | None = None,
|
|
51
64
|
) -> None:
|
|
52
|
-
"""Update terminal title with
|
|
53
|
-
|
|
54
|
-
if formatted_session_title:
|
|
55
|
-
title = formatted_session_title
|
|
56
|
-
if prefix:
|
|
57
|
-
title = f"{prefix} {title}"
|
|
58
|
-
set_terminal_title(title)
|
|
59
|
-
return
|
|
60
|
-
|
|
61
|
-
folder_name = os.path.basename(work_dir or os.getcwd())
|
|
62
|
-
if model_name:
|
|
63
|
-
model_alias = model_name.split("@")[0]
|
|
64
|
-
title = f"klaude [{model_alias}] · {folder_name}"
|
|
65
|
-
else:
|
|
66
|
-
title = f"klaude · {folder_name}"
|
|
65
|
+
"""Update terminal title with an optional status prefix and session title."""
|
|
66
|
+
title = _build_terminal_title(work_dir, session_title)
|
|
67
67
|
|
|
68
68
|
if prefix:
|
|
69
69
|
title = f"{prefix} {title}"
|
|
@@ -72,7 +72,7 @@ def update_terminal_title(
|
|
|
72
72
|
|
|
73
73
|
|
|
74
74
|
# ---------------------------------------------------------------------------
|
|
75
|
-
# Terminal title blink (
|
|
75
|
+
# Terminal title blink (single-glyph spinner while task is active)
|
|
76
76
|
# ---------------------------------------------------------------------------
|
|
77
77
|
|
|
78
78
|
|
|
@@ -81,15 +81,15 @@ async def _blink_loop() -> None:
|
|
|
81
81
|
while True:
|
|
82
82
|
update_terminal_title(
|
|
83
83
|
_blink_model_name,
|
|
84
|
-
prefix=
|
|
84
|
+
prefix=_BLINK_PREFIXES[idx],
|
|
85
85
|
session_title=_blink_session_title,
|
|
86
86
|
)
|
|
87
|
-
idx = 1
|
|
87
|
+
idx = (idx + 1) % len(_BLINK_PREFIXES)
|
|
88
88
|
await asyncio.sleep(_BLINK_INTERVAL)
|
|
89
89
|
|
|
90
90
|
|
|
91
91
|
def start_terminal_title_blink(model_name: str | None, session_title: str | None) -> None:
|
|
92
|
-
"""Start
|
|
92
|
+
"""Start cycling the terminal title prefix through the active-task spinner."""
|
|
93
93
|
global _blink_task, _blink_model_name, _blink_session_title
|
|
94
94
|
stop_terminal_title_blink()
|
|
95
95
|
_blink_model_name = model_name
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.26.0 → klaude_code-2.27.0}/src/klaude_code/agent/prompt_suggestion/__init__.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
|