klaude-code 2.0.1__py3-none-any.whl → 2.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. klaude_code/app/__init__.py +12 -0
  2. klaude_code/app/runtime.py +215 -0
  3. klaude_code/cli/auth_cmd.py +2 -2
  4. klaude_code/cli/config_cmd.py +2 -2
  5. klaude_code/cli/cost_cmd.py +1 -1
  6. klaude_code/cli/debug.py +12 -36
  7. klaude_code/cli/list_model.py +3 -3
  8. klaude_code/cli/main.py +17 -60
  9. klaude_code/cli/self_update.py +2 -187
  10. klaude_code/cli/session_cmd.py +2 -2
  11. klaude_code/config/config.py +1 -1
  12. klaude_code/config/select_model.py +1 -1
  13. klaude_code/const.py +10 -1
  14. klaude_code/core/agent.py +9 -62
  15. klaude_code/core/agent_profile.py +284 -0
  16. klaude_code/core/executor.py +343 -230
  17. klaude_code/core/manager/llm_clients_builder.py +1 -1
  18. klaude_code/core/manager/sub_agent_manager.py +16 -29
  19. klaude_code/core/reminders.py +107 -155
  20. klaude_code/core/task.py +12 -20
  21. klaude_code/core/tool/__init__.py +5 -19
  22. klaude_code/core/tool/context.py +84 -0
  23. klaude_code/core/tool/file/apply_patch_tool.py +18 -21
  24. klaude_code/core/tool/file/edit_tool.py +42 -44
  25. klaude_code/core/tool/file/read_tool.py +14 -9
  26. klaude_code/core/tool/file/write_tool.py +12 -13
  27. klaude_code/core/tool/report_back_tool.py +4 -1
  28. klaude_code/core/tool/shell/bash_tool.py +6 -11
  29. klaude_code/core/tool/skill/skill_tool.py +3 -1
  30. klaude_code/core/tool/sub_agent_tool.py +8 -7
  31. klaude_code/core/tool/todo/todo_write_tool.py +3 -9
  32. klaude_code/core/tool/todo/update_plan_tool.py +3 -5
  33. klaude_code/core/tool/tool_abc.py +2 -1
  34. klaude_code/core/tool/tool_registry.py +2 -33
  35. klaude_code/core/tool/tool_runner.py +13 -10
  36. klaude_code/core/tool/web/mermaid_tool.py +3 -1
  37. klaude_code/core/tool/web/web_fetch_tool.py +5 -3
  38. klaude_code/core/tool/web/web_search_tool.py +5 -3
  39. klaude_code/core/turn.py +86 -26
  40. klaude_code/llm/anthropic/client.py +1 -1
  41. klaude_code/llm/bedrock/client.py +1 -1
  42. klaude_code/llm/claude/client.py +1 -1
  43. klaude_code/llm/codex/client.py +1 -1
  44. klaude_code/llm/google/client.py +1 -1
  45. klaude_code/llm/openai_compatible/client.py +1 -1
  46. klaude_code/llm/openai_compatible/tool_call_accumulator.py +1 -1
  47. klaude_code/llm/openrouter/client.py +1 -1
  48. klaude_code/llm/openrouter/reasoning.py +1 -1
  49. klaude_code/llm/responses/client.py +1 -1
  50. klaude_code/protocol/events/__init__.py +57 -0
  51. klaude_code/protocol/events/base.py +18 -0
  52. klaude_code/protocol/events/chat.py +20 -0
  53. klaude_code/protocol/events/lifecycle.py +22 -0
  54. klaude_code/protocol/events/metadata.py +15 -0
  55. klaude_code/protocol/events/streaming.py +43 -0
  56. klaude_code/protocol/events/system.py +53 -0
  57. klaude_code/protocol/events/tools.py +23 -0
  58. klaude_code/protocol/message.py +3 -11
  59. klaude_code/protocol/model.py +78 -9
  60. klaude_code/protocol/op.py +5 -0
  61. klaude_code/protocol/sub_agent/explore.py +0 -15
  62. klaude_code/protocol/sub_agent/task.py +1 -1
  63. klaude_code/protocol/sub_agent/web.py +1 -17
  64. klaude_code/protocol/tools.py +0 -1
  65. klaude_code/session/session.py +6 -5
  66. klaude_code/skill/assets/create-plan/SKILL.md +76 -0
  67. klaude_code/skill/loader.py +1 -1
  68. klaude_code/skill/system_skills.py +1 -1
  69. klaude_code/tui/__init__.py +8 -0
  70. klaude_code/{command → tui/command}/clear_cmd.py +2 -1
  71. klaude_code/{command → tui/command}/debug_cmd.py +4 -3
  72. klaude_code/{command → tui/command}/export_cmd.py +2 -1
  73. klaude_code/{command → tui/command}/export_online_cmd.py +6 -5
  74. klaude_code/{command → tui/command}/fork_session_cmd.py +10 -9
  75. klaude_code/{command → tui/command}/help_cmd.py +3 -2
  76. klaude_code/{command → tui/command}/model_cmd.py +5 -4
  77. klaude_code/{command → tui/command}/model_select.py +2 -2
  78. klaude_code/{command → tui/command}/prompt_command.py +4 -3
  79. klaude_code/{command → tui/command}/refresh_cmd.py +3 -1
  80. klaude_code/{command → tui/command}/registry.py +16 -6
  81. klaude_code/{command → tui/command}/release_notes_cmd.py +3 -2
  82. klaude_code/{command → tui/command}/resume_cmd.py +6 -5
  83. klaude_code/{command → tui/command}/status_cmd.py +4 -3
  84. klaude_code/{command → tui/command}/terminal_setup_cmd.py +4 -3
  85. klaude_code/{command → tui/command}/thinking_cmd.py +4 -3
  86. klaude_code/tui/commands.py +164 -0
  87. klaude_code/{ui/renderers → tui/components}/assistant.py +3 -3
  88. klaude_code/{ui/renderers → tui/components}/bash_syntax.py +2 -2
  89. klaude_code/{ui/renderers → tui/components}/common.py +1 -1
  90. klaude_code/tui/components/developer.py +231 -0
  91. klaude_code/{ui/renderers → tui/components}/diffs.py +2 -2
  92. klaude_code/{ui/renderers → tui/components}/errors.py +2 -2
  93. klaude_code/{ui/renderers → tui/components}/metadata.py +34 -21
  94. klaude_code/{ui → tui/components}/rich/markdown.py +78 -34
  95. klaude_code/{ui → tui/components}/rich/status.py +2 -2
  96. klaude_code/{ui → tui/components}/rich/theme.py +12 -5
  97. klaude_code/{ui/renderers → tui/components}/sub_agent.py +23 -43
  98. klaude_code/{ui/renderers → tui/components}/thinking.py +3 -3
  99. klaude_code/{ui/renderers → tui/components}/tools.py +11 -48
  100. klaude_code/{ui/renderers → tui/components}/user_input.py +3 -20
  101. klaude_code/tui/display.py +85 -0
  102. klaude_code/{ui/modes/repl → tui/input}/__init__.py +1 -1
  103. klaude_code/{ui/modes/repl → tui/input}/completers.py +1 -1
  104. klaude_code/{ui/modes/repl/input_prompt_toolkit.py → tui/input/prompt_toolkit.py} +11 -7
  105. klaude_code/tui/machine.py +606 -0
  106. klaude_code/tui/renderer.py +707 -0
  107. klaude_code/tui/runner.py +321 -0
  108. klaude_code/tui/terminal/__init__.py +56 -0
  109. klaude_code/{ui → tui}/terminal/color.py +1 -1
  110. klaude_code/{ui → tui}/terminal/control.py +1 -1
  111. klaude_code/{ui → tui}/terminal/notifier.py +1 -1
  112. klaude_code/{ui → tui}/terminal/selector.py +36 -17
  113. klaude_code/ui/__init__.py +6 -50
  114. klaude_code/ui/core/display.py +3 -3
  115. klaude_code/ui/core/input.py +2 -1
  116. klaude_code/ui/{modes/debug/display.py → debug_mode.py} +1 -1
  117. klaude_code/ui/{modes/exec/display.py → exec_mode.py} +1 -4
  118. klaude_code/ui/terminal/__init__.py +6 -54
  119. klaude_code/ui/terminal/title.py +31 -0
  120. klaude_code/update.py +163 -0
  121. {klaude_code-2.0.1.dist-info → klaude_code-2.1.0.dist-info}/METADATA +1 -1
  122. klaude_code-2.1.0.dist-info/RECORD +235 -0
  123. klaude_code/cli/runtime.py +0 -525
  124. klaude_code/core/prompt.py +0 -108
  125. klaude_code/core/tool/file/move_tool.md +0 -41
  126. klaude_code/core/tool/file/move_tool.py +0 -435
  127. klaude_code/core/tool/tool_context.py +0 -148
  128. klaude_code/protocol/events.py +0 -194
  129. klaude_code/skill/assets/dev-docs/SKILL.md +0 -108
  130. klaude_code/trace/__init__.py +0 -21
  131. klaude_code/ui/core/stage_manager.py +0 -48
  132. klaude_code/ui/modes/__init__.py +0 -1
  133. klaude_code/ui/modes/debug/__init__.py +0 -1
  134. klaude_code/ui/modes/exec/__init__.py +0 -1
  135. klaude_code/ui/modes/repl/display.py +0 -61
  136. klaude_code/ui/modes/repl/event_handler.py +0 -634
  137. klaude_code/ui/modes/repl/renderer.py +0 -463
  138. klaude_code/ui/renderers/developer.py +0 -215
  139. klaude_code/ui/utils/__init__.py +0 -1
  140. klaude_code-2.0.1.dist-info/RECORD +0 -229
  141. /klaude_code/{trace/log.py → log.py} +0 -0
  142. /klaude_code/{command → tui/command}/__init__.py +0 -0
  143. /klaude_code/{command → tui/command}/command_abc.py +0 -0
  144. /klaude_code/{command → tui/command}/prompt-commit.md +0 -0
  145. /klaude_code/{command → tui/command}/prompt-init.md +0 -0
  146. /klaude_code/{ui/renderers → tui/components}/__init__.py +0 -0
  147. /klaude_code/{ui/renderers → tui/components}/mermaid_viewer.py +0 -0
  148. /klaude_code/{ui → tui/components}/rich/__init__.py +0 -0
  149. /klaude_code/{ui → tui/components}/rich/cjk_wrap.py +0 -0
  150. /klaude_code/{ui → tui/components}/rich/code_panel.py +0 -0
  151. /klaude_code/{ui → tui/components}/rich/live.py +0 -0
  152. /klaude_code/{ui → tui/components}/rich/quote.py +0 -0
  153. /klaude_code/{ui → tui/components}/rich/searchable_text.py +0 -0
  154. /klaude_code/{ui/modes/repl → tui/input}/clipboard.py +0 -0
  155. /klaude_code/{ui/modes/repl → tui/input}/key_bindings.py +0 -0
  156. /klaude_code/{ui → tui}/terminal/image.py +0 -0
  157. /klaude_code/{ui → tui}/terminal/progress_bar.py +0 -0
  158. /klaude_code/ui/{utils/common.py → common.py} +0 -0
  159. {klaude_code-2.0.1.dist-info → klaude_code-2.1.0.dist-info}/WHEEL +0 -0
  160. {klaude_code-2.0.1.dist-info → klaude_code-2.1.0.dist-info}/entry_points.txt +0 -0
@@ -1,56 +1,8 @@
1
- # Terminal utilities
2
- import os
3
- from functools import lru_cache
1
+ # Terminal UI helpers shared across frontends.
4
2
 
3
+ from .title import set_terminal_title, update_terminal_title
5
4
 
6
- @lru_cache(maxsize=1)
7
- def supports_osc8_hyperlinks() -> bool:
8
- """Check if the current terminal supports OSC 8 hyperlinks.
9
-
10
- Based on known terminal support. Returns False for unknown terminals.
11
- """
12
- term_program = os.environ.get("TERM_PROGRAM", "").lower()
13
- term = os.environ.get("TERM", "").lower()
14
-
15
- # Known terminals that do NOT support OSC 8
16
- unsupported = ("warp", "apple_terminal")
17
- if any(t in term_program for t in unsupported):
18
- return False
19
-
20
- # Known terminals that support OSC 8
21
- supported = (
22
- "iterm.app",
23
- "ghostty",
24
- "wezterm",
25
- "kitty",
26
- "alacritty",
27
- "hyper",
28
- "contour",
29
- "vscode",
30
- )
31
- if any(t in term_program for t in supported):
32
- return True
33
-
34
- # Kitty sets TERM to xterm-kitty
35
- if "kitty" in term:
36
- return True
37
-
38
- # Ghostty sets TERM to xterm-ghostty
39
- if "ghostty" in term:
40
- return True
41
-
42
- # Windows Terminal
43
- if os.environ.get("WT_SESSION"):
44
- return True
45
-
46
- # VTE-based terminals (GNOME Terminal, etc.) version 0.50+
47
- vte_version = os.environ.get("VTE_VERSION", "")
48
- if vte_version:
49
- try:
50
- if int(vte_version) >= 5000:
51
- return True
52
- except ValueError:
53
- pass
54
-
55
- # Default to False for unknown terminals
56
- return False
5
+ __all__ = [
6
+ "set_terminal_title",
7
+ "update_terminal_title",
8
+ ]
@@ -0,0 +1,31 @@
1
+ import contextlib
2
+ import os
3
+ import sys
4
+
5
+
6
+ def set_terminal_title(title: str) -> None:
7
+ """Set terminal window title using an ANSI escape sequence."""
8
+ # Never write terminal control sequences when stdout is not a TTY (pipes/CI/redirects).
9
+ # This avoids corrupting machine-readable output (e.g., JSON streaming) and log captures.
10
+ #
11
+ # Use the original stdout to bypass prompt_toolkit's `patch_stdout()`. Writing OSC
12
+ # sequences to the patched stdout can cause them to appear as visible text.
13
+ stream = getattr(sys, "__stdout__", None) or sys.stdout
14
+ try:
15
+ if not stream.isatty():
16
+ return
17
+ except Exception:
18
+ return
19
+
20
+ stream.write(f"\033]0;{title}\007")
21
+ with contextlib.suppress(Exception):
22
+ stream.flush()
23
+
24
+
25
+ def update_terminal_title(model_name: str | None = None) -> None:
26
+ """Update terminal title with folder name and optional model name."""
27
+ folder_name = os.path.basename(os.getcwd())
28
+ if model_name:
29
+ set_terminal_title(f"{folder_name}: klaude ✳ {model_name}")
30
+ else:
31
+ set_terminal_title(f"{folder_name}: klaude")
klaude_code/update.py ADDED
@@ -0,0 +1,163 @@
1
+ """Non-interactive update check helpers.
2
+
3
+ This module is intentionally frontend-agnostic so it can be used by both the CLI
4
+ and terminal UI without introducing cross-layer imports.
5
+ """
6
+
7
+ from __future__ import annotations
8
+
9
+ import json
10
+ import shutil
11
+ import subprocess
12
+ import threading
13
+ import time
14
+ import urllib.request
15
+ from typing import NamedTuple
16
+
17
+ PACKAGE_NAME = "klaude-code"
18
+ PYPI_URL = f"https://pypi.org/pypi/{PACKAGE_NAME}/json"
19
+ CHECK_INTERVAL_SECONDS = 3600 # Check at most once per hour
20
+
21
+
22
+ class VersionInfo(NamedTuple):
23
+ """Version check result."""
24
+
25
+ installed: str | None
26
+ latest: str | None
27
+ update_available: bool
28
+
29
+
30
+ _cached_version_info: VersionInfo | None = None
31
+ _last_check_time: float = 0.0
32
+ _check_lock = threading.Lock()
33
+ _check_in_progress = False
34
+
35
+
36
+ def _has_uv() -> bool:
37
+ return shutil.which("uv") is not None
38
+
39
+
40
+ def _get_installed_version() -> str | None:
41
+ try:
42
+ result = subprocess.run(
43
+ ["uv", "tool", "list"],
44
+ capture_output=True,
45
+ text=True,
46
+ timeout=5,
47
+ )
48
+ if result.returncode != 0:
49
+ return None
50
+
51
+ for line in result.stdout.splitlines():
52
+ if line.startswith(PACKAGE_NAME):
53
+ parts = line.split()
54
+ if len(parts) >= 2:
55
+ ver = parts[1]
56
+ if ver.startswith("v"):
57
+ ver = ver[1:]
58
+ return ver
59
+ return None
60
+ except (OSError, subprocess.SubprocessError):
61
+ return None
62
+
63
+
64
+ def _get_latest_version() -> str | None:
65
+ try:
66
+ with urllib.request.urlopen(PYPI_URL, timeout=5) as response:
67
+ data = json.loads(response.read().decode())
68
+ return data.get("info", {}).get("version")
69
+ except (OSError, json.JSONDecodeError, ValueError):
70
+ return None
71
+
72
+
73
+ def _parse_version(v: str) -> tuple[int, ...]:
74
+ parts: list[int] = []
75
+ for part in v.split("."):
76
+ digits = ""
77
+ for c in part:
78
+ if c.isdigit():
79
+ digits += c
80
+ else:
81
+ break
82
+ if digits:
83
+ parts.append(int(digits))
84
+ return tuple(parts)
85
+
86
+
87
+ def _compare_versions(installed: str, latest: str) -> bool:
88
+ try:
89
+ installed_tuple = _parse_version(installed)
90
+ latest_tuple = _parse_version(latest)
91
+ return latest_tuple > installed_tuple
92
+ except ValueError:
93
+ return False
94
+
95
+
96
+ def _do_version_check() -> None:
97
+ global _cached_version_info, _last_check_time, _check_in_progress
98
+ try:
99
+ installed = _get_installed_version()
100
+ latest = _get_latest_version()
101
+
102
+ update_available = False
103
+ if installed and latest:
104
+ update_available = _compare_versions(installed, latest)
105
+
106
+ with _check_lock:
107
+ _cached_version_info = VersionInfo(
108
+ installed=installed,
109
+ latest=latest,
110
+ update_available=update_available,
111
+ )
112
+ _last_check_time = time.time()
113
+ finally:
114
+ with _check_lock:
115
+ _check_in_progress = False
116
+
117
+
118
+ def check_for_updates() -> VersionInfo | None:
119
+ """Check for updates asynchronously with caching."""
120
+ global _check_in_progress
121
+
122
+ if not _has_uv():
123
+ return None
124
+
125
+ now = time.time()
126
+ with _check_lock:
127
+ cache_valid = _cached_version_info is not None and (now - _last_check_time) < CHECK_INTERVAL_SECONDS
128
+ if cache_valid:
129
+ return _cached_version_info
130
+
131
+ if not _check_in_progress:
132
+ _check_in_progress = True
133
+ thread = threading.Thread(target=_do_version_check, daemon=True)
134
+ thread.start()
135
+
136
+ return _cached_version_info
137
+
138
+
139
+ def get_update_message() -> str | None:
140
+ """Return an update message if an update is available, otherwise None."""
141
+ info = check_for_updates()
142
+ if info is None or not info.update_available:
143
+ return None
144
+ return f"New version available: {info.latest}. Please run `klaude upgrade` to upgrade."
145
+
146
+
147
+ def check_for_updates_blocking() -> VersionInfo | None:
148
+ """Check for updates synchronously (no caching)."""
149
+ if not _has_uv():
150
+ return None
151
+
152
+ installed = _get_installed_version()
153
+ latest = _get_latest_version()
154
+
155
+ update_available = False
156
+ if installed and latest:
157
+ update_available = _compare_versions(installed, latest)
158
+
159
+ return VersionInfo(
160
+ installed=installed,
161
+ latest=latest,
162
+ update_available=update_available,
163
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: klaude-code
3
- Version: 2.0.1
3
+ Version: 2.1.0
4
4
  Summary: Minimal code agent CLI
5
5
  Requires-Dist: anthropic>=0.66.0
6
6
  Requires-Dist: chardet>=5.2.0
@@ -0,0 +1,235 @@
1
+ klaude_code/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ klaude_code/app/__init__.py,sha256=jPBkkpBxn39B-FQ0cdxsIVo-CxWVln07kMAfqKa5NyY,290
3
+ klaude_code/app/runtime.py,sha256=LodN29ue96bIfcaZFRom38YfcamTHJmb3be7-oEDTqo,7264
4
+ klaude_code/auth/__init__.py,sha256=jLUgi4V4m0t2BlVuuni7iANOErpJgAeEqByuD1sKUvQ,480
5
+ klaude_code/auth/base.py,sha256=ccH2sC0TWB5lPpGm4FSjCgnehwn9riYiXxHCh2iFJe0,3011
6
+ klaude_code/auth/claude/__init__.py,sha256=h1oyqEttDM5TAF6w1Stk6YXYMsbATjODCsi6GhU4zAA,218
7
+ klaude_code/auth/claude/exceptions.py,sha256=_3KbC6W7_gWpxTsSqI0Bxk5Q_v3Fad6dBjweEsoFun4,246
8
+ klaude_code/auth/claude/oauth.py,sha256=LriNRNpNu1pGhkIca7xh0cYy-W0HOkLYf5bi05vQPaI,5786
9
+ klaude_code/auth/claude/token_manager.py,sha256=XNsBOy2lNFnD6wZhM4V3k4aQlMogb2_avvgL9LlNGEQ,691
10
+ klaude_code/auth/codex/__init__.py,sha256=rrpPvr-_R4kbj_oZ2U_fPmIfDPZov9Pjz2bAFpztUJk,502
11
+ klaude_code/auth/codex/exceptions.py,sha256=TcAKPozsY3SCh_krTYFlJ8FU5jepgSTg-5UO1dA4OgE,388
12
+ klaude_code/auth/codex/jwt_utils.py,sha256=tuaJKT4vAIGeaQjNzgNcHWGrYYSDrDeaQT9h4cw5Us8,1134
13
+ klaude_code/auth/codex/oauth.py,sha256=4hAGZ2Dv87NC3loEws7U5yNyPyIrryGm5YXY2FkHeyo,7840
14
+ klaude_code/auth/codex/token_manager.py,sha256=EiEdxEErh_mcnW8USWbvdbN91LK7nyk0PZJZGmdUTG8,1405
15
+ klaude_code/cli/__init__.py,sha256=YzlAoWAr5rx5oe6B_4zPxRFS4QaZauuy1AFwampP5fg,45
16
+ klaude_code/cli/auth_cmd.py,sha256=4h59A0UrNBCAf_IL_tVU3GY4kxraoab3CTjgCdKvJGM,6067
17
+ klaude_code/cli/config_cmd.py,sha256=ZDNt1qtXbiWtFJBIaqtfqKrGHXQ1X-NHBeu1k1DoO1o,3391
18
+ klaude_code/cli/cost_cmd.py,sha256=6bL22amGEB2gfCV9KXQfN5cZYyPL6J6JVIjV65_QjJo,12471
19
+ klaude_code/cli/debug.py,sha256=vEHOjObhrIHDAXk3q6cOgeW2NZxCx5AWM1rJ6FiJnVU,1901
20
+ klaude_code/cli/list_model.py,sha256=IXYsrkwbvPF89jNDpbppIlyA7b_oNt0--TNN2LPGwAA,12811
21
+ klaude_code/cli/main.py,sha256=JaNiQIa2k4XZXNCXnOXNfOwdwwZmnCTHlK1_oZL5lU8,11924
22
+ klaude_code/cli/self_update.py,sha256=mn1B7Xn1keQkbwoDURzsM2fFjorzJTNLlV-Y_NYa6fA,2708
23
+ klaude_code/cli/session_cmd.py,sha256=IyuSkqHOLldcm8qraJWJZEme9TY5Rfqmld9NmVJuHnc,3198
24
+ klaude_code/config/__init__.py,sha256=Qe1BeMekBfO2-Zd30x33lB70hdM1QQZGrp4DbWSQ-II,353
25
+ klaude_code/config/assets/__init__.py,sha256=uMUfmXT3I-gYiI-HVr1DrE60mx5cY1o8V7SYuGqOmvY,32
26
+ klaude_code/config/assets/builtin_config.yaml,sha256=fXCvNZci7g7T6uUjDFq_lxTYAvszffsrpBeC41RZkb4,8214
27
+ klaude_code/config/builtin_config.py,sha256=1rHcFWmS0k6rXeIqR6sF_OgGXSbEd4ugh9bh2N6VSS0,1494
28
+ klaude_code/config/config.py,sha256=aDMEIcjiNk-DdtybnOHPFViUgwdXp4xb-5osAMBjTzs,18209
29
+ klaude_code/config/select_model.py,sha256=TZLs195a3fsu5JeXfoZAgz-UlRqVgJG6cwH69ovHOsM,5181
30
+ klaude_code/config/thinking.py,sha256=1FFN9UgPVEFyTzahTvNOM5Y4b8Bo7G1jIc93xjX3Uvk,9323
31
+ klaude_code/const.py,sha256=MF9Ispv28MNqmm51xXcbRcmvw8lEKHuiczBhqmaZku4,10905
32
+ klaude_code/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
+ klaude_code/core/agent.py,sha256=_jfe3WLE8T2twYaMpgjrFM7pwzMerirsq7YTLqpoufM,3560
34
+ klaude_code/core/agent_profile.py,sha256=cZmyNypFBAz9xNKZt0IevPEoK8aZARqVdSUTnSuIrtQ,9453
35
+ klaude_code/core/executor.py,sha256=CQ1HyrEpemNQIFYUhgd6ZIxC-h0UJAjYD7yJR0bbX3Y,31275
36
+ klaude_code/core/manager/__init__.py,sha256=hdIbpnYj6i18byiWjtJIm5l7NYYDQMvafw8fePVPydc,562
37
+ klaude_code/core/manager/llm_clients.py,sha256=X2oMFWgJcP0tK8GEtMMDYR3HyR6_H8FuyCqpzWF5x2k,871
38
+ klaude_code/core/manager/llm_clients_builder.py,sha256=uvs9ea5XDUaaKh7VgbWS76LXQn4Y590nilbEBpeJSFg,1639
39
+ klaude_code/core/manager/sub_agent_manager.py,sha256=URzvged6ra6eY0jx1yQlvq8WdhBEsMvirWtOPCcsHNM,6991
40
+ klaude_code/core/prompts/prompt-claude-code.md,sha256=uuWBv6GrG63mdmBedAHT5U9yOpbHSKFYbbS2xBnUzOE,8290
41
+ klaude_code/core/prompts/prompt-codex-gpt-5-1-codex-max.md,sha256=SW-y8AmR99JL_9j26k9YVAOQuZ18vR12aT5CWHkZDc4,11741
42
+ klaude_code/core/prompts/prompt-codex-gpt-5-2-codex.md,sha256=GA1pIIF6JuAl4P3FIW4tVJ6zL_5iZ8MY_PF0DW9hBuU,11719
43
+ klaude_code/core/prompts/prompt-codex.md,sha256=ybL6CXrGnK6Cw9KuEicQg4kKllIcVa2NwUyuUWitPzk,21672
44
+ klaude_code/core/prompts/prompt-gemini.md,sha256=JjE1tHSByGKJzjn4Gpj1zekT7ry1Yqbwx5qx3fZy2gE,3901
45
+ klaude_code/core/prompts/prompt-minimal.md,sha256=6-ZmQQkE3f92W_3V2wS7ocB13wLog1_UojCjZG0K4v8,1559
46
+ klaude_code/core/prompts/prompt-sub-agent-explore.md,sha256=21kFodjhvN0L-c_ZFo4yVhJOyzfgES-Dty9Vz_Ew9q8,2629
47
+ klaude_code/core/prompts/prompt-sub-agent-image-gen.md,sha256=tXYKSzFd04OiC0dmVO9suMKeD5f9qo_4NsvqGo7irfI,78
48
+ klaude_code/core/prompts/prompt-sub-agent-web.md,sha256=n7fcIs26Xnu_CvHda_S_k5LGTpV3njY04yo88FT_S9A,3602
49
+ klaude_code/core/prompts/prompt-sub-agent.md,sha256=dmmdsOenbAOfqG6FmdR88spOLZkXmntDBs-cmZ9DN_g,897
50
+ klaude_code/core/reminders.py,sha256=uGpLSp0alpRd6QmjAjD6xTmnProhwcruPD-lSQnwhsE,23849
51
+ klaude_code/core/task.py,sha256=uBfl2S_9n1wmf0WvzMjLzGws_el-qimYwp3Mgxhdng4,11369
52
+ klaude_code/core/tool/__init__.py,sha256=Ccz4k_Uip8AeELtJQqfQAZ01YMI_LaJ-c1GJeFUybxw,1711
53
+ klaude_code/core/tool/context.py,sha256=OFUJtT0SdgzScec0LbSMz6a9yvW5oqkR-hqe4FJWk88,2572
54
+ klaude_code/core/tool/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
+ klaude_code/core/tool/file/_utils.py,sha256=OG4BE9WyJqzH8ilVCL3D9yvAcHk-r-L9snd-E8gO_io,967
56
+ klaude_code/core/tool/file/apply_patch.py,sha256=LZd3pYQ9ow_TxiFnqYuzD216HmvkLX6lW6BoMd9iQRs,17080
57
+ klaude_code/core/tool/file/apply_patch_tool.md,sha256=KVDsjUiLDa97gym0NrZNVG4jA1_zN-2i-B3upVQyOhU,59
58
+ klaude_code/core/tool/file/apply_patch_tool.py,sha256=t7zNZW2wYpDyHutxq7nx_xSs7GbPx8UymveSR25F2-8,8079
59
+ klaude_code/core/tool/file/diff_builder.py,sha256=d3n0RYBuhOD3yophmqNw4ok-da2kxerNixcTf_IXJHk,5911
60
+ klaude_code/core/tool/file/edit_tool.md,sha256=rEcUjJuPC46t1nXWjTDxplDcxWDbzTWsr6_bYt5_aRI,1110
61
+ klaude_code/core/tool/file/edit_tool.py,sha256=oEwm4LWmqcJbZ93CAbLP7njxZ4wnymyrx2VlBuAN8fk,10898
62
+ klaude_code/core/tool/file/read_tool.md,sha256=74SLSl1tq3L0por73M0QV_ws41MRIvGXQpfLb8dmtp0,1351
63
+ klaude_code/core/tool/file/read_tool.py,sha256=1y_t8oBSa0WtAgk6eLqGvQqf-MQQnj7YbjpLI9r5b7A,13236
64
+ klaude_code/core/tool/file/write_tool.md,sha256=CNnYgtieUasuHdpXLDpTEsqe492Pf7v75M4RQ3oIer8,613
65
+ klaude_code/core/tool/file/write_tool.py,sha256=2hB3Ioo-H4X9qNoH47_ENAvo8XNwrJfp8m0UqJostEs,5674
66
+ klaude_code/core/tool/report_back_tool.py,sha256=SkuRhfLpVwTOSpIj7XwYfGDNBp8YsCUNXieXDkafS2E,3381
67
+ klaude_code/core/tool/shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
+ klaude_code/core/tool/shell/bash_tool.md,sha256=ILKpnRCBTkU2uSDEdZQjNYo1l6hsM4TO-3RD5zWC61c,3935
69
+ klaude_code/core/tool/shell/bash_tool.py,sha256=LPF-Iqypzfq9IMkumErTSBDgCYYNz8vvZYe7ZobqjYk,14779
70
+ klaude_code/core/tool/shell/command_safety.py,sha256=Xlyn8QvjaA_krPNScpcTQwP3byoXxwoX_jc97AWvr6Q,13039
71
+ klaude_code/core/tool/skill/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
+ klaude_code/core/tool/skill/skill_tool.md,sha256=UfjJK5EGAd3mf7ym5rIrRdPyV3kBTxNnwzOjNnHOBrE,973
73
+ klaude_code/core/tool/skill/skill_tool.py,sha256=WKPkVV9SpA4ybdolSEjqzn_7NXYGHsye8e4avqLvgew,3013
74
+ klaude_code/core/tool/sub_agent_tool.py,sha256=zMcPXdPEU0RC_jJgRmKmHF6TCWOH2MNB15K5rIlVWQQ,4620
75
+ klaude_code/core/tool/todo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
+ klaude_code/core/tool/todo/todo_write_tool.md,sha256=BFP9qIkzkakzskHwIOPVtDhehkh0F90A5oosyDuC_BE,1682
77
+ klaude_code/core/tool/todo/todo_write_tool.py,sha256=_94zgZ7N43lQN1x5nD-kd4ayNEwjTQXUiSWLv6MW4FE,4222
78
+ klaude_code/core/tool/todo/todo_write_tool_raw.md,sha256=AJ2OkZGcccQYDXkydPAr5JI2SExBF8qJd0rXsHySLps,9711
79
+ klaude_code/core/tool/todo/update_plan_tool.md,sha256=OoEF4voHHd5J3VDv7tq3UCHdXApkBvxdHXUf5tVOkE8,157
80
+ klaude_code/core/tool/todo/update_plan_tool.py,sha256=ChPgE9ZUU2G0kLu93_ZTTs9J5veySuYR41PIWDQ_Tdc,3703
81
+ klaude_code/core/tool/tool_abc.py,sha256=GtzCGPrPUMJyUVYJAVIMpEcaAJwf-dtisUx-bLdZCX0,1262
82
+ klaude_code/core/tool/tool_registry.py,sha256=-FRU1aCy-jRG6ohdcl20v5_7c6FC3Ixa4GFLr_WkH6M,1336
83
+ klaude_code/core/tool/tool_runner.py,sha256=6hVzDbASpOJWLXg0VXI5H2fgLAkHo1LVOhz1uF-X5as,12856
84
+ klaude_code/core/tool/truncation.py,sha256=LEK7mgGQ3f08vgouviIcVr53xptiRJAyhgQa0ALITJk,7691
85
+ klaude_code/core/tool/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
+ klaude_code/core/tool/web/mermaid_tool.md,sha256=vvPSWxbY3P_cBpHh6AM8Je9JJoMY4FBTJzoteEkwuDU,2095
87
+ klaude_code/core/tool/web/mermaid_tool.py,sha256=FELwyLBzFdHhkimGee31_qZlrZq2vTzIaFTsp6qeGus,2715
88
+ klaude_code/core/tool/web/web_fetch_tool.md,sha256=jIrW-EAmfl50bBevcfioQ3Vrg8kWlHSut8ze_sRgRGw,486
89
+ klaude_code/core/tool/web/web_fetch_tool.py,sha256=MpAfiRVg4CNvLQlve4jphpX4juN81aR7XWOZi0I5-UQ,10323
90
+ klaude_code/core/tool/web/web_search_tool.md,sha256=l5gGPx-fXHFel1zLBljm8isy9pwEYXGrq5cFzzw1VBw,1135
91
+ klaude_code/core/tool/web/web_search_tool.py,sha256=ljkgXxP6L5nJnbYB_IOUtPUN9zA_h5hBD55lhNAja08,4293
92
+ klaude_code/core/turn.py,sha256=npPxXjifPMC-1k02lq64j1mQvO-cRXU2iXBJScoXD-M,18274
93
+ klaude_code/llm/__init__.py,sha256=b4AsqnrMIs0a5qR_ti6rZcHwFzAReTwOW96EqozEoSo,287
94
+ klaude_code/llm/anthropic/__init__.py,sha256=PWETvaeNAAX3ue0ww1uRUIxTJG0RpWiutkn7MlwKxBs,67
95
+ klaude_code/llm/anthropic/client.py,sha256=NvVd0bQJxi9Pg6uVeBdzM3JnRsWVy4yJdMv8rPYz01k,12211
96
+ klaude_code/llm/anthropic/input.py,sha256=0DG33g-8qXD5rP43zYsIF7UiZML0IKJxZfr6fcOlfNQ,8365
97
+ klaude_code/llm/bedrock/__init__.py,sha256=UmXPBXMmigAJ7euIh59iivSeUdrYJwum0RYU7okkkPM,86
98
+ klaude_code/llm/bedrock/client.py,sha256=n78PIMONAMiRc-l4-mY9qOu0dhUuirmaRpmvuzWdEsk,2400
99
+ klaude_code/llm/claude/__init__.py,sha256=8VCvvEjQQI-RpAMfHCl5ct4zlDU_jgbAuLOc9p9u-B4,61
100
+ klaude_code/llm/claude/client.py,sha256=naQU8D0Nhj0NfqZMXnJTOSKK59zHQhhSpbaVx8XQ0JU,4026
101
+ klaude_code/llm/client.py,sha256=yZ_ob0BERRjrOc3t_kJioIdMioghXdOYUErH67zME2k,1002
102
+ klaude_code/llm/codex/__init__.py,sha256=8vN2j2ezWB_UVpfqQ8ooStsBeLL5SY4SUMXOXdWiMaI,132
103
+ klaude_code/llm/codex/client.py,sha256=kLHAmNwyijwzAKsFnC-5NBXboJTVvEqMcQylQLO-P4M,5522
104
+ klaude_code/llm/google/__init__.py,sha256=tQtf_mh_mC3E4S9XAsnhS2JZXGRnYUsBKF0jpXZTvM0,61
105
+ klaude_code/llm/google/client.py,sha256=gc5rd5MVvRCFTrusqvkfq8TTW4HiuR5YYb0VX9bOxrs,13694
106
+ klaude_code/llm/google/input.py,sha256=yBeqMk9E5nS-0jl1kEAALwnuqgKZdXApRG2KdAhPQqE,7519
107
+ klaude_code/llm/image.py,sha256=jt9FBPFhAIo48pauIEJMIhB9WuDt4wwNs9s3LiEsETE,4272
108
+ klaude_code/llm/input_common.py,sha256=B1QtRJspDXLdbvzykSn-FWjyi1047GeTmQnaAicCCAg,6219
109
+ klaude_code/llm/openai_compatible/__init__.py,sha256=ACGpnki7k53mMcCl591aw99pm9jZOZk0ghr7atOfNps,81
110
+ klaude_code/llm/openai_compatible/client.py,sha256=jAcIJc7SPd7IgpFNbp-rBcPFVNcRqgSEar-shf8z1RI,5007
111
+ klaude_code/llm/openai_compatible/input.py,sha256=dNEBeAYD6Sd_-ONLazphGNFYmXkY5YoHIPKGBLAQMXU,2830
112
+ klaude_code/llm/openai_compatible/stream.py,sha256=O3Seb8clC0AiA7trrruEteLqpFRY-eCjQfePG6L-7BA,12985
113
+ klaude_code/llm/openai_compatible/tool_call_accumulator.py,sha256=quajimkUR1uSIPVXYsVNiQSTnOSVt7WuyZ23RyT7lJs,4906
114
+ klaude_code/llm/openrouter/__init__.py,sha256=_As8lHjwj6vapQhLorZttTpukk5ZiCdhFdGT38_ASPo,69
115
+ klaude_code/llm/openrouter/client.py,sha256=49kXzl4vsddU5zaTfM8dpTezgwd8LIpVPJ9ACK7Dro0,6017
116
+ klaude_code/llm/openrouter/input.py,sha256=5XSMcoYGLl_xOJJiP3w0E2F6HJFJ7OeLWi7I4teJUSs,5610
117
+ klaude_code/llm/openrouter/reasoning.py,sha256=S0s3OAyfFVm5lHYmQqB3ZIUZlbnlV5zB2gNT3ZRbDZs,4335
118
+ klaude_code/llm/registry.py,sha256=wEf9wvbb9CMvlNDtndKzKY5LN3zqEJYPI2v9kIrqfGI,2235
119
+ klaude_code/llm/responses/__init__.py,sha256=WsiyvnNiIytaYcaAqNiB8GI-5zcpjjeODPbMlteeFjA,67
120
+ klaude_code/llm/responses/client.py,sha256=8kZBxDrW9jRGYPjkExBeBTnpzUUnxyqqITI8bfF-Ris,12580
121
+ klaude_code/llm/responses/input.py,sha256=BYZFBh6qa85pQjVrHds9q3A_aMfhSN2GB0e7VX-h8g4,7575
122
+ klaude_code/llm/usage.py,sha256=Hukt4hKGUb2EnmwGy2-1Ku0oxEI6J7gOU0EsOSBBJAk,5034
123
+ klaude_code/log.py,sha256=vyCuV18DX0miengbJF9510UsBrWidSln-CM6pVCe0GA,9301
124
+ klaude_code/protocol/__init__.py,sha256=TTPnuyQ22RypoTGKdoiS7ZEgHzinuaRHUrauzHDh7Xo,246
125
+ klaude_code/protocol/commands.py,sha256=4tFt98CD_KvS9C-XEaHLN-S-QFsbDxQb_kGKnPkQlrk,958
126
+ klaude_code/protocol/events/__init__.py,sha256=2KaHK32Bpo17eHiwVNEHmbdJOtjG3vO0NrbyLxJlkg8,1606
127
+ klaude_code/protocol/events/base.py,sha256=QfqgksjA2Hj-ClmwKVeJ7QA6Z7YdzjswO1NfAVnPCoI,335
128
+ klaude_code/protocol/events/chat.py,sha256=FB-fLLii7TN7r0FrvfgrhZT2x4sRsivjKHV8J2b5Bsw,426
129
+ klaude_code/protocol/events/lifecycle.py,sha256=5csZkv3oZIuLzs_7H84v8HgAYwbjIjkZOHfjxq9YfxM,357
130
+ klaude_code/protocol/events/metadata.py,sha256=oVZ1zanGcTEFkHW8fLEqS2Z1A9e1MMcjLOcNwUUuCBI,285
131
+ klaude_code/protocol/events/streaming.py,sha256=U1plGQSTeGZa3E4fIxW_fHXJpuv_DSIBrmGh1l4Fm54,708
132
+ klaude_code/protocol/events/system.py,sha256=0c3x8WwqAo5Y0JmukKbn7FKtgEv-ErqwJb5PGjuHehk,1294
133
+ klaude_code/protocol/events/tools.py,sha256=83Cr6Mx-uCxvaZqIMu-oVXN-jTJcZJN8NSPta49RK_g,508
134
+ klaude_code/protocol/llm_param.py,sha256=nyk5bW3AF8KziDawcImwDLiFiv07bu1ci62TslWxUkg,5161
135
+ klaude_code/protocol/message.py,sha256=gG9GSr4Tysafe7Rl93LZ-xJnqkfn9rFaUEbAG6_H5gE,6208
136
+ klaude_code/protocol/model.py,sha256=tBwvGlmsI_GPsYrCuk5-QHqC-v0UgBSdm9UjEPOvTiM,10805
137
+ klaude_code/protocol/op.py,sha256=Us8O5Nuz6Wx03ftrLYiiLceCuzbNZ1ehwW62e_uMEvU,5646
138
+ klaude_code/protocol/op_handler.py,sha256=NgQWyLZwPqRRH93hMvPH-TCK8YbLeDpnKeNVnlt27_o,1765
139
+ klaude_code/protocol/sub_agent/__init__.py,sha256=KkSdKAD45DERZoMS7zyTg0AWPgVmK-po0uv5rt_d-zE,3972
140
+ klaude_code/protocol/sub_agent/explore.py,sha256=beDpcPFUds54JLhQyVEpuhVp5xm5hRnkp6F3gMCIvw8,2712
141
+ klaude_code/protocol/sub_agent/image_gen.py,sha256=e2iRpGnWUHdZw96wC-f-Ik8HXYnvxTqQRqWXhNtUv2E,4812
142
+ klaude_code/protocol/sub_agent/task.py,sha256=96XHxbySu_zdM2K6WjlkPFGXoVDVrLiK2hew1cmwGS4,4290
143
+ klaude_code/protocol/sub_agent/web.py,sha256=XZEfY-bKhpw9RZPkrcohLQDMufQITeeweW7ZOHgk2Ao,3200
144
+ klaude_code/protocol/tools.py,sha256=OpGCr47ARKaCHcIlljhEN-p-2h4djgbP5jtfTIoKB-A,359
145
+ klaude_code/session/__init__.py,sha256=4sw81uQvEd3YUOOjamKk1KqGmxeb4Ic9T1Tee5zztyU,241
146
+ klaude_code/session/codec.py,sha256=fTtaS20H5G6M7k7vufg55c88ZGAblhFk9xGAm3CvWT0,2007
147
+ klaude_code/session/export.py,sha256=Oa0BdrqipFGkGp62dAsvQ-bPQr0HFAQBpAb7OmgaNno,38926
148
+ klaude_code/session/selector.py,sha256=snBpnz9UQCe_0K8HttSGCJECCE4YEzpWs_Fdmk2P9nI,2195
149
+ klaude_code/session/session.py,sha256=q1jRkf-Vp0eoUP4vQEY0y-mXeaUHfQLawSv2TUKTDUU,22838
150
+ klaude_code/session/store.py,sha256=HRrmFzwEVdExqDQlT9FBZOhlFtQmM9Im9zco8pzvUMY,6455
151
+ klaude_code/session/templates/export_session.html,sha256=GRSx1dfRKCSNgKqP51Rs6mT6xWo_ntZrep4-ZzlKru8,125862
152
+ klaude_code/session/templates/mermaid_viewer.html,sha256=Y_wEWFm4mKWpfAz3YMis5DdLEkhw_2d8CpU6jbvGZow,27842
153
+ klaude_code/skill/__init__.py,sha256=yeWeCfRGPOhT4mx_pjdo4fLondQ_Vx0edBtnFusLhls,839
154
+ klaude_code/skill/assets/create-plan/SKILL.md,sha256=xzKarva3A7fVrmC2518MohapqI8e-5m08o7T3L32-xY,2581
155
+ klaude_code/skill/assets/deslop/SKILL.md,sha256=XMBER6gOyYnZof_u7l30CZSzmDcINe8XP-n_loah0EQ,873
156
+ klaude_code/skill/assets/handoff/SKILL.md,sha256=GDHrEqWUeAQy7gGhha_y5jzjpv8C-xhk0hqMH5h59v8,1712
157
+ klaude_code/skill/assets/jj-workspace/SKILL.md,sha256=toxoyrBBoGl9Yv4PYrw_gD071LLZ2RoepUR8qTDRn1M,977
158
+ klaude_code/skill/assets/skill-creator/SKILL.md,sha256=0ByoWb9ao0UKSoM5Tmz-Qe5CAPliTrVpUK0gPd9TFqo,5520
159
+ klaude_code/skill/loader.py,sha256=7Wvz9FA-vUdwDMlyx3kcapsydKaUd5CLIW17EluzRCE,10532
160
+ klaude_code/skill/manager.py,sha256=XRSGgGpNJo2Q9pHKpWo-VyMqf_y-dEt9JGtDoC3Eq-U,2088
161
+ klaude_code/skill/system_skills.py,sha256=ryGN07t0Xv2Yn_Prfq072tdIN0Dp4ZpdXLTl7O7rCkg,6122
162
+ klaude_code/tui/__init__.py,sha256=Q8-0D-uesw3oFwHcFLD5UaWlTFbrj8qV7dSn6C6_g_o,274
163
+ klaude_code/tui/command/__init__.py,sha256=IK2jz2SFMLVIcVzD5evKk3zWv6u1CjgCgfJXzWdvDlk,3470
164
+ klaude_code/tui/command/clear_cmd.py,sha256=BDJI3_6x76WeF9ZBLe4ShDybpV4RTvyjyWH7ZsHvp_Y,782
165
+ klaude_code/tui/command/command_abc.py,sha256=d1i4QbFqWC5V4LPmofMHTxGrxNLwOWe-z_bUKoAmRiQ,2540
166
+ klaude_code/tui/command/debug_cmd.py,sha256=KkVsspq3o_b4fB2u9Qms-LJQYVI7ZGn6uvSkp3pZZgE,2744
167
+ klaude_code/tui/command/export_cmd.py,sha256=KdFlOMJ6gruKYnd_24eWJJb21t9gLVwI1FnN1s08m5U,1609
168
+ klaude_code/tui/command/export_online_cmd.py,sha256=26cPEh6lJW8hwUV1i4q3Be3AThzbPHJI9FuvTfhtJFU,6163
169
+ klaude_code/tui/command/fork_session_cmd.py,sha256=Hu5Gcdfw_rxx5RjfqaGht7fr55pydM_vUlwRMseJpe4,10216
170
+ klaude_code/tui/command/help_cmd.py,sha256=nvQ9m6hPcJpwKPx6H7XH4o_C41u6uOYuZiBF0ZsO8uw,1678
171
+ klaude_code/tui/command/model_cmd.py,sha256=X07psfW-6aan9nxgqRoRVQ_dvZdhTY9XcU-H-NRbGDg,2950
172
+ klaude_code/tui/command/model_select.py,sha256=gmttq2I-KDDyU-mCZd4WnqkVkMMpsBP7-fOo0ONjxZ8,3189
173
+ klaude_code/tui/command/prompt-commit.md,sha256=6hv1lrf8SkwNp1ptw0wn8uNydg5uxgna88eUo6Uqr3w,2400
174
+ klaude_code/tui/command/prompt-init.md,sha256=a4_FQ3gKizqs2vl9oEY5jtG6HNhv3f-1b5RSCFq0A18,1873
175
+ klaude_code/tui/command/prompt_command.py,sha256=PGGoH_ZgA-0kTtpjk19rDSsWjiZyAEoUlxnSp8B8GRQ,2764
176
+ klaude_code/tui/command/refresh_cmd.py,sha256=yLL9YufaucMUtzDAHqZKpiP5DR-uNLIC_rxZBhzgqC0,1327
177
+ klaude_code/tui/command/registry.py,sha256=LdVGBTK64XqGtCj2eUqU2rNdX4tbiWvmTv25HuQPnBU,7253
178
+ klaude_code/tui/command/release_notes_cmd.py,sha256=SOjDURB3ML4u7zeR1QVB7oFVQna-S05h3LJrcBXG3J8,2686
179
+ klaude_code/tui/command/resume_cmd.py,sha256=w1-UAM95CIPonfH39XU-EVM5f7B-AW1jTCA7VFkPigs,4244
180
+ klaude_code/tui/command/status_cmd.py,sha256=WjV4CssyMCj9_CzMdlYwMWRFSK6nkDRRnApuEZdcgQc,5417
181
+ klaude_code/tui/command/terminal_setup_cmd.py,sha256=C2kXelp8DZsMYZ08Gun-kgvtr07HIclcCNfwQtXgY18,10910
182
+ klaude_code/tui/command/thinking_cmd.py,sha256=Lf4SgLi7-mtr6sIJDqOz9Zzeue_cHwWzCCl0NLE_bpY,3072
183
+ klaude_code/tui/commands.py,sha256=jIQHE9Nk7bIxbNJ2cgnUgGbitRA1O8HSSceXfqjyLMk,3261
184
+ klaude_code/tui/components/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
185
+ klaude_code/tui/components/assistant.py,sha256=3VUIGf_BJhmoWZ5bHw-QUTMElUxp-MZQKUMWNimHKLE,904
186
+ klaude_code/tui/components/bash_syntax.py,sha256=zNvge6qvz9ujjMh2nUs2CNKIxSpXLJ5cgOLuvOmEGqY,7420
187
+ klaude_code/tui/components/common.py,sha256=RzOiIqVPWCzjX8VMMJSkvP0F-l91g9lMTb_smNpEdDE,4648
188
+ klaude_code/tui/components/developer.py,sha256=WM9VXukiEMZrGv7rsr-OIFS2SxOj5vx6kxzHJoeoBA8,10035
189
+ klaude_code/tui/components/diffs.py,sha256=JUokkkJeTIoKD0b-c-chMzIDmMjivBQqH8DYXIA3hHs,10411
190
+ klaude_code/tui/components/errors.py,sha256=_9ojf-23ThR-BoMwNEYG68rzILwA_O59muGvofYL10w,669
191
+ klaude_code/tui/components/mermaid_viewer.py,sha256=MstufMnTauMKzI8cKngXpFqVo-qya20P8ReNkplYtEw,3098
192
+ klaude_code/tui/components/metadata.py,sha256=tVeD2WunfLwUKP11OuLo0d0N3aEjk0J5BDJsq1f-ACQ,9397
193
+ klaude_code/tui/components/rich/__init__.py,sha256=zEZjnHR3Fnv_sFMxwIMjoJfwDoC4GRGv3lHJzAGRq_o,236
194
+ klaude_code/tui/components/rich/cjk_wrap.py,sha256=ncmifgTwF6q95iayHQyazGbntt7BRQb_Ed7aXc8JU6Y,7551
195
+ klaude_code/tui/components/rich/code_panel.py,sha256=ZKuJHh-kh-hIkBXSGLERLaDbJ7I9hvtvmYKocJn39_w,4744
196
+ klaude_code/tui/components/rich/live.py,sha256=xiMT6dPsxM_jaazddKrV9CMJQWwpe2t9OdjffHvo1JU,2821
197
+ klaude_code/tui/components/rich/markdown.py,sha256=wgTRzDJTcI2u5vr_WbAnoBjQHcSe4RIrpOdynw1nBB8,19286
198
+ klaude_code/tui/components/rich/quote.py,sha256=gTLwxSPQd9nlp73P1ysQIEgOb-BoTE2gzyiPBLMiHcY,3834
199
+ klaude_code/tui/components/rich/searchable_text.py,sha256=PUe6MotKxSBY4FlPeojVjVQgxCsx_jiQ41bCzLp8WvE,2271
200
+ klaude_code/tui/components/rich/status.py,sha256=Dy5GgEJzYNrWNh7QG5PQCfTGS99CllDOdWVqvbCafYE,13320
201
+ klaude_code/tui/components/rich/theme.py,sha256=CgLqUdITLwpqcrD0vypk1PWTBOXfLBbn0_ELyJPg4Lk,15048
202
+ klaude_code/tui/components/sub_agent.py,sha256=FojxwNnBTwYSSBMG4DmC2IJfr-bLTJiDcViKoL1d0uQ,6955
203
+ klaude_code/tui/components/thinking.py,sha256=AXC7Xpyiu7ST-eWGLRGY7N8Dak2ny3lV3mvznmfqKmM,2890
204
+ klaude_code/tui/components/tools.py,sha256=q0DhWl9oUG9tJGuJ1E7uI4ADkQytv9A-991bvDaGtvo,26422
205
+ klaude_code/tui/components/user_input.py,sha256=9tLeRSWdwXmLm0Fe6DUlV4KHKpN6eUP4nhQ7ywddz8o,3959
206
+ klaude_code/tui/display.py,sha256=ovM1F8GDG0gTQjOV2KaXnjE9HFHf7AtThqSIXkP6JQY,3073
207
+ klaude_code/tui/input/__init__.py,sha256=cAB38ypo7dHo_jgXUCnoBTUKHtiriVaKCv4YepSU9SU,276
208
+ klaude_code/tui/input/clipboard.py,sha256=HjThFB9MG_YdJ76CQv7B-IUoz5JarbWUZDbUVkH1LpY,5106
209
+ klaude_code/tui/input/completers.py,sha256=lkDBjnqYPLMgR6AZHhx2bfT_vMW-fbV6aqY9SqRwq74,32571
210
+ klaude_code/tui/input/key_bindings.py,sha256=2uN48J1HRHeCBqq7WrH5J82NIU59oQscce0HquAiYCI,18876
211
+ klaude_code/tui/input/prompt_toolkit.py,sha256=_joijghnXG0-vu8D-Om4eU_jprLiTpyabfNH6aqaqpA,27224
212
+ klaude_code/tui/machine.py,sha256=tulfZITfdCtW7ca3gccCKO2Oi7GBg_CCS-1rvNF-VWw,23239
213
+ klaude_code/tui/renderer.py,sha256=p8Pf1DwBW6uvTYmNgezoTh1RzWpOcinjHa9acgSt21M,29485
214
+ klaude_code/tui/runner.py,sha256=SGwKIo3EH6vA1Qlfb0KtFaNid2lyGL_4Jb2gjVa1MZs,11560
215
+ klaude_code/tui/terminal/__init__.py,sha256=GIMnsEcIAGT_vBHvTlWEdyNmAEpruyscUA6M_j3GQZU,1412
216
+ klaude_code/tui/terminal/color.py,sha256=6SJR2RA8cqJINNoRz65w0HL3x9g46ydIvDOGWMeNnQU,7195
217
+ klaude_code/tui/terminal/control.py,sha256=m2fL6uHum5Li25X2IPnI4z_oVzMpVYcSldB-r0NLLzk,4920
218
+ klaude_code/tui/terminal/image.py,sha256=ytzmw1J3fmaq49nWTDRmK_7aMIGbdUPCtVccSpVRHxY,1195
219
+ klaude_code/tui/terminal/notifier.py,sha256=-aTtgRvpzQcfbkOfbeDOfUs3l9smNBZX-60G9f0326Y,4643
220
+ klaude_code/tui/terminal/progress_bar.py,sha256=Go-0_ZodrmJVaQodaPnyxVU2nkpkBaYLnZBqwAUQukE,2133
221
+ klaude_code/tui/terminal/selector.py,sha256=QPddET-LfSU4we7NLHk17CqTWPKd6CQ0kj1Ire_WM3Q,24398
222
+ klaude_code/ui/__init__.py,sha256=BRd15myEsdOPC9FyDeOuM0ahzQA_-6YYkt_eNhc-whc,1173
223
+ klaude_code/ui/common.py,sha256=FA1koSH8egLBT2Pb_D065gfK7u6-wTuGA9_WRembX3s,4249
224
+ klaude_code/ui/core/__init__.py,sha256=2NakrTDcxem5D0atyEY_Rxv1BbKCeZweF63L6AAq6r8,23
225
+ klaude_code/ui/core/display.py,sha256=ACfsJEjamAkhVesQ7Vm3PyuLXkowuQ5PCE93utiiPRM,3582
226
+ klaude_code/ui/core/input.py,sha256=8wXszl2Es6BbpqUjXMZka-7zc1d0kuySCxJUiDGHTaY,2593
227
+ klaude_code/ui/debug_mode.py,sha256=ZvqbOx4c_rUerMbEZzOfcbNf9leqEDFjqJUlALtzF9Y,1111
228
+ klaude_code/ui/exec_mode.py,sha256=8-eGJeoJo1ke9Atpeu4JErh4A0GcrHYvALktfnqQygE,1765
229
+ klaude_code/ui/terminal/__init__.py,sha256=5OeAzr994r8-peWsLON0iXsAvJ2pexwMp36JY7FKGDc,179
230
+ klaude_code/ui/terminal/title.py,sha256=EZpLXTMhunsZPVGaxP317lH0Ad2oOh7OsjbV3yRD5is,1115
231
+ klaude_code/update.py,sha256=QER816AZe9u3RhRvP0Z37Jh2Ch5RLy9PREyDsI0e1dA,4480
232
+ klaude_code-2.1.0.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
233
+ klaude_code-2.1.0.dist-info/entry_points.txt,sha256=kkXIXedaTOtjXPr2rVjRVVXZYlFUcBHELaqmyVlWUFA,92
234
+ klaude_code-2.1.0.dist-info/METADATA,sha256=yloJPlkUsbNzvwgVBX7z3t8qlJe9h2gz4TsLniEdfJw,12782
235
+ klaude_code-2.1.0.dist-info/RECORD,,