klaude-code 1.2.9__py3-none-any.whl → 1.2.11__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.
- klaude_code/cli/main.py +11 -5
- klaude_code/cli/runtime.py +21 -21
- klaude_code/command/__init__.py +68 -23
- klaude_code/command/clear_cmd.py +6 -2
- klaude_code/command/command_abc.py +5 -2
- klaude_code/command/diff_cmd.py +5 -2
- klaude_code/command/export_cmd.py +7 -4
- klaude_code/command/help_cmd.py +6 -2
- klaude_code/command/model_cmd.py +5 -2
- klaude_code/command/prompt_command.py +8 -3
- klaude_code/command/refresh_cmd.py +6 -2
- klaude_code/command/registry.py +17 -5
- klaude_code/command/release_notes_cmd.py +5 -2
- klaude_code/command/status_cmd.py +8 -4
- klaude_code/command/terminal_setup_cmd.py +7 -4
- klaude_code/const/__init__.py +1 -1
- klaude_code/core/agent.py +62 -9
- klaude_code/core/executor.py +1 -4
- klaude_code/core/manager/agent_manager.py +19 -14
- klaude_code/core/manager/llm_clients.py +47 -22
- klaude_code/core/manager/llm_clients_builder.py +22 -13
- klaude_code/core/manager/sub_agent_manager.py +1 -1
- klaude_code/core/prompt.py +4 -4
- klaude_code/core/prompts/prompt-claude-code.md +1 -12
- klaude_code/core/prompts/prompt-minimal.md +12 -0
- klaude_code/core/reminders.py +0 -3
- klaude_code/core/task.py +6 -2
- klaude_code/core/tool/file/_utils.py +30 -0
- klaude_code/core/tool/file/edit_tool.py +5 -30
- klaude_code/core/tool/file/multi_edit_tool.py +6 -31
- klaude_code/core/tool/file/read_tool.py +6 -18
- klaude_code/core/tool/file/write_tool.py +5 -30
- klaude_code/core/tool/memory/__init__.py +5 -0
- klaude_code/core/tool/memory/memory_tool.md +4 -0
- klaude_code/core/tool/memory/skill_loader.py +3 -2
- klaude_code/core/tool/memory/skill_tool.py +13 -0
- klaude_code/core/tool/todo/todo_write_tool.md +0 -157
- klaude_code/core/tool/todo/todo_write_tool_raw.md +182 -0
- klaude_code/core/tool/tool_registry.py +3 -4
- klaude_code/llm/__init__.py +2 -12
- klaude_code/llm/anthropic/client.py +2 -1
- klaude_code/llm/client.py +2 -2
- klaude_code/llm/codex/client.py +1 -1
- klaude_code/llm/openai_compatible/client.py +3 -2
- klaude_code/llm/openrouter/client.py +3 -3
- klaude_code/llm/registry.py +33 -7
- klaude_code/llm/responses/client.py +2 -1
- klaude_code/llm/responses/input.py +1 -1
- klaude_code/llm/usage.py +17 -8
- klaude_code/protocol/model.py +15 -7
- klaude_code/protocol/op.py +5 -1
- klaude_code/protocol/sub_agent.py +1 -0
- klaude_code/session/export.py +16 -6
- klaude_code/session/session.py +10 -4
- klaude_code/session/templates/export_session.html +155 -0
- klaude_code/ui/core/input.py +1 -1
- klaude_code/ui/modes/repl/clipboard.py +5 -5
- klaude_code/ui/modes/repl/event_handler.py +1 -5
- klaude_code/ui/modes/repl/input_prompt_toolkit.py +3 -34
- klaude_code/ui/renderers/metadata.py +22 -1
- klaude_code/ui/renderers/tools.py +13 -2
- klaude_code/ui/rich/markdown.py +4 -1
- klaude_code/ui/terminal/__init__.py +55 -0
- klaude_code/ui/terminal/control.py +2 -2
- klaude_code/version.py +3 -3
- {klaude_code-1.2.9.dist-info → klaude_code-1.2.11.dist-info}/METADATA +1 -4
- {klaude_code-1.2.9.dist-info → klaude_code-1.2.11.dist-info}/RECORD +69 -66
- {klaude_code-1.2.9.dist-info → klaude_code-1.2.11.dist-info}/WHEEL +0 -0
- {klaude_code-1.2.9.dist-info → klaude_code-1.2.11.dist-info}/entry_points.txt +0 -0
|
@@ -40,19 +40,19 @@ class ClipboardCaptureState:
|
|
|
40
40
|
"""Capture image from clipboard, save to disk, and return a tag like [Image #N]."""
|
|
41
41
|
try:
|
|
42
42
|
clipboard_data = ImageGrab.grabclipboard()
|
|
43
|
-
except
|
|
43
|
+
except OSError:
|
|
44
44
|
return None
|
|
45
45
|
if not isinstance(clipboard_data, Image.Image):
|
|
46
46
|
return None
|
|
47
47
|
try:
|
|
48
48
|
self._images_dir.mkdir(parents=True, exist_ok=True)
|
|
49
|
-
except
|
|
49
|
+
except OSError:
|
|
50
50
|
return None
|
|
51
51
|
filename = f"clipboard_{uuid.uuid4().hex[:8]}.png"
|
|
52
52
|
path = self._images_dir / filename
|
|
53
53
|
try:
|
|
54
54
|
clipboard_data.save(path, "PNG")
|
|
55
|
-
except
|
|
55
|
+
except OSError:
|
|
56
56
|
return None
|
|
57
57
|
tag = f"[Image #{self._counter}]"
|
|
58
58
|
self._counter += 1
|
|
@@ -123,7 +123,7 @@ def _encode_image_file(file_path: str) -> ImageURLPart | None:
|
|
|
123
123
|
# Clipboard images are always saved as PNG
|
|
124
124
|
data_url = f"data:image/png;base64,{encoded}"
|
|
125
125
|
return ImageURLPart(image_url=ImageURLPart.ImageURL(url=data_url, id=None))
|
|
126
|
-
except
|
|
126
|
+
except OSError:
|
|
127
127
|
return None
|
|
128
128
|
|
|
129
129
|
|
|
@@ -148,5 +148,5 @@ def copy_to_clipboard(text: str) -> None:
|
|
|
148
148
|
input=text.encode("utf-8"),
|
|
149
149
|
check=True,
|
|
150
150
|
)
|
|
151
|
-
except
|
|
151
|
+
except (OSError, subprocess.SubprocessError):
|
|
152
152
|
pass
|
|
@@ -453,14 +453,10 @@ class DisplayEventHandler:
|
|
|
453
453
|
if len(todo.content) > 0:
|
|
454
454
|
status_text = todo.content
|
|
455
455
|
status_text = status_text.replace("\n", "")
|
|
456
|
-
return self._truncate_status_text(status_text, max_length=
|
|
456
|
+
return self._truncate_status_text(status_text, max_length=100)
|
|
457
457
|
|
|
458
458
|
def _truncate_status_text(self, text: str, max_length: int) -> str:
|
|
459
|
-
"""Truncate text to max_length while preserving complete words."""
|
|
460
459
|
if len(text) <= max_length:
|
|
461
460
|
return text
|
|
462
461
|
truncated = text[:max_length]
|
|
463
|
-
last_space = truncated.rfind(" ")
|
|
464
|
-
if last_space > 0:
|
|
465
|
-
return truncated[:last_space] + "..."
|
|
466
462
|
return truncated + "..."
|
|
@@ -6,9 +6,7 @@ from pathlib import Path
|
|
|
6
6
|
from typing import NamedTuple, override
|
|
7
7
|
|
|
8
8
|
from prompt_toolkit import PromptSession
|
|
9
|
-
from prompt_toolkit.buffer import Buffer
|
|
10
9
|
from prompt_toolkit.completion import ThreadedCompleter
|
|
11
|
-
from prompt_toolkit.filters import Condition
|
|
12
10
|
from prompt_toolkit.formatted_text import FormattedText
|
|
13
11
|
from prompt_toolkit.history import FileHistory
|
|
14
12
|
from prompt_toolkit.patch_stdout import patch_stdout
|
|
@@ -45,9 +43,6 @@ class PromptToolkitInput(InputProviderABC):
|
|
|
45
43
|
): # ▌
|
|
46
44
|
self._status_provider = status_provider
|
|
47
45
|
|
|
48
|
-
# Mouse is disabled by default; only enabled when input becomes multi-line.
|
|
49
|
-
self._mouse_enabled: bool = False
|
|
50
|
-
|
|
51
46
|
project = str(Path.cwd()).strip("/").replace("/", "-")
|
|
52
47
|
history_path = Path.home() / ".klaude" / "projects" / f"{project}" / "input_history.txt"
|
|
53
48
|
|
|
@@ -56,8 +51,6 @@ class PromptToolkitInput(InputProviderABC):
|
|
|
56
51
|
if not history_path.exists():
|
|
57
52
|
history_path.touch()
|
|
58
53
|
|
|
59
|
-
mouse_support_filter = Condition(lambda: self._mouse_enabled)
|
|
60
|
-
|
|
61
54
|
# Create key bindings with injected dependencies
|
|
62
55
|
kb = create_key_bindings(
|
|
63
56
|
capture_clipboard_tag=capture_clipboard_tag,
|
|
@@ -75,7 +68,7 @@ class PromptToolkitInput(InputProviderABC):
|
|
|
75
68
|
complete_while_typing=True,
|
|
76
69
|
erase_when_done=True,
|
|
77
70
|
bottom_toolbar=self._render_bottom_toolbar,
|
|
78
|
-
mouse_support=
|
|
71
|
+
mouse_support=False,
|
|
79
72
|
style=Style.from_dict(
|
|
80
73
|
{
|
|
81
74
|
"completion-menu": "bg:default",
|
|
@@ -90,12 +83,6 @@ class PromptToolkitInput(InputProviderABC):
|
|
|
90
83
|
),
|
|
91
84
|
)
|
|
92
85
|
|
|
93
|
-
try:
|
|
94
|
-
self._session.default_buffer.on_text_changed += self._on_buffer_text_changed
|
|
95
|
-
except Exception:
|
|
96
|
-
# If we can't hook the buffer events for any reason, fall back to static behavior.
|
|
97
|
-
pass
|
|
98
|
-
|
|
99
86
|
def _render_bottom_toolbar(self) -> FormattedText:
|
|
100
87
|
"""Render bottom toolbar with working directory, git branch on left, model name and context usage on right.
|
|
101
88
|
|
|
@@ -168,8 +155,6 @@ class PromptToolkitInput(InputProviderABC):
|
|
|
168
155
|
@override
|
|
169
156
|
async def iter_inputs(self) -> AsyncIterator[UserInputPayload]:
|
|
170
157
|
while True:
|
|
171
|
-
# For each new prompt, start with mouse disabled so users can select history.
|
|
172
|
-
self._mouse_enabled = False
|
|
173
158
|
with patch_stdout():
|
|
174
159
|
line: str = await self._session.prompt_async()
|
|
175
160
|
|
|
@@ -178,21 +163,5 @@ class PromptToolkitInput(InputProviderABC):
|
|
|
178
163
|
|
|
179
164
|
yield UserInputPayload(text=line, images=images if images else None)
|
|
180
165
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
Mouse stays disabled when input is empty. It is enabled only when
|
|
185
|
-
the user has entered more than one line of text.
|
|
186
|
-
"""
|
|
187
|
-
try:
|
|
188
|
-
text = buf.text
|
|
189
|
-
except Exception:
|
|
190
|
-
return
|
|
191
|
-
self._mouse_enabled = self._should_enable_mouse(text)
|
|
192
|
-
|
|
193
|
-
def _should_enable_mouse(self, text: str) -> bool:
|
|
194
|
-
"""Return True when mouse support should be enabled for current input."""
|
|
195
|
-
if not text.strip():
|
|
196
|
-
return False
|
|
197
|
-
# Enable mouse only when input spans multiple lines.
|
|
198
|
-
return "\n" in text
|
|
166
|
+
# Note: Mouse support is intentionally disabled at the PromptSession
|
|
167
|
+
# level so that terminals retain their native scrollback behavior.
|
|
@@ -77,6 +77,17 @@ def _render_task_metadata_block(
|
|
|
77
77
|
]
|
|
78
78
|
if metadata.usage.cache_read_cost is not None:
|
|
79
79
|
cached_parts.append((f"({currency_symbol}{metadata.usage.cache_read_cost:.4f})", ThemeKey.METADATA_DIM))
|
|
80
|
+
# Cache ratio: (content + cached - last turn output) / input tokens, this might caclulate over 100% if system prompt is cached in first turn
|
|
81
|
+
# Shows how much of the input was cached (not new context growth)
|
|
82
|
+
if show_context_and_time and metadata.usage.input_tokens > 0:
|
|
83
|
+
context_delta = metadata.usage.context_delta or 0
|
|
84
|
+
last_turn_output_token = metadata.usage.last_turn_output_token or 0
|
|
85
|
+
cache_ratio = (
|
|
86
|
+
(metadata.usage.cached_tokens + context_delta - last_turn_output_token)
|
|
87
|
+
/ metadata.usage.input_tokens
|
|
88
|
+
* 100
|
|
89
|
+
)
|
|
90
|
+
cached_parts.append((f"[{cache_ratio:.0f}%]", ThemeKey.METADATA_DIM))
|
|
80
91
|
parts2.append(Text.assemble(*cached_parts))
|
|
81
92
|
|
|
82
93
|
# Output
|
|
@@ -118,7 +129,7 @@ def _render_task_metadata_block(
|
|
|
118
129
|
if metadata.usage is not None:
|
|
119
130
|
# Context (only for main agent)
|
|
120
131
|
if show_context_and_time and metadata.usage.context_usage_percent is not None:
|
|
121
|
-
context_size = format_number(metadata.usage.
|
|
132
|
+
context_size = format_number(metadata.usage.context_token or 0)
|
|
122
133
|
parts3.append(
|
|
123
134
|
Text.assemble(
|
|
124
135
|
("context", ThemeKey.METADATA_DIM),
|
|
@@ -150,6 +161,16 @@ def _render_task_metadata_block(
|
|
|
150
161
|
)
|
|
151
162
|
)
|
|
152
163
|
|
|
164
|
+
# Turn count
|
|
165
|
+
if show_context_and_time and metadata.turn_count > 0:
|
|
166
|
+
parts3.append(
|
|
167
|
+
Text.assemble(
|
|
168
|
+
("turns", ThemeKey.METADATA_DIM),
|
|
169
|
+
(":", ThemeKey.METADATA_DIM),
|
|
170
|
+
(str(metadata.turn_count), ThemeKey.METADATA_DIM),
|
|
171
|
+
)
|
|
172
|
+
)
|
|
173
|
+
|
|
153
174
|
if parts3:
|
|
154
175
|
line2 = Text(" / ", style=ThemeKey.METADATA_DIM).join(parts3)
|
|
155
176
|
renderables.append(Padding(line2, (0, 0, 0, indent + 2)))
|
|
@@ -339,12 +339,23 @@ def render_mermaid_tool_call(arguments: str) -> RenderableType:
|
|
|
339
339
|
|
|
340
340
|
|
|
341
341
|
def render_mermaid_tool_result(tr: events.ToolResultEvent) -> RenderableType:
|
|
342
|
+
from klaude_code.ui.terminal import supports_osc8_hyperlinks
|
|
343
|
+
|
|
342
344
|
link_info = _extract_mermaid_link(tr.ui_extra)
|
|
343
345
|
if link_info is None:
|
|
344
346
|
return render_generic_tool_result(tr.result, is_error=tr.status == "error")
|
|
345
347
|
|
|
346
|
-
|
|
347
|
-
|
|
348
|
+
if supports_osc8_hyperlinks():
|
|
349
|
+
link_text = Text.from_markup(f"[blue u][link={link_info.link}]Command+click to view[/link][/blue u]")
|
|
350
|
+
return Padding.indent(link_text, level=2)
|
|
351
|
+
|
|
352
|
+
# For terminals that don't support OSC 8, show a hint to use /export
|
|
353
|
+
hint_text = Text.assemble(
|
|
354
|
+
("Use ", ThemeKey.TOOL_RESULT),
|
|
355
|
+
("/export", ThemeKey.TOOL_RESULT_BOLD),
|
|
356
|
+
(" to view the diagram.", ThemeKey.TOOL_RESULT),
|
|
357
|
+
)
|
|
358
|
+
return Padding.indent(hint_text, level=2)
|
|
348
359
|
|
|
349
360
|
|
|
350
361
|
def _extract_truncation(
|
klaude_code/ui/rich/markdown.py
CHANGED
|
@@ -284,7 +284,10 @@ class MarkdownStream:
|
|
|
284
284
|
|
|
285
285
|
target_height = min(self._live_window_seen_height, self.live_window)
|
|
286
286
|
if target_height > 0 and current_height < target_height:
|
|
287
|
-
|
|
287
|
+
# Pad only up to the maximum height we've seen so far.
|
|
288
|
+
# This keeps the Live region height stable without overshooting,
|
|
289
|
+
# which can cause the spinner to jump by a line.
|
|
290
|
+
pad_count = target_height - current_height
|
|
288
291
|
# Pad after the existing lines so spinner visually stays at the bottom.
|
|
289
292
|
rest_lines = rest_lines + ["\n"] * pad_count
|
|
290
293
|
|
|
@@ -1 +1,56 @@
|
|
|
1
1
|
# Terminal utilities
|
|
2
|
+
import os
|
|
3
|
+
from functools import lru_cache
|
|
4
|
+
|
|
5
|
+
|
|
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
|
|
@@ -38,7 +38,7 @@ def start_esc_interrupt_monitor(
|
|
|
38
38
|
# Fallback for non-interactive or non-POSIX environments.
|
|
39
39
|
if not sys.stdin.isatty() or os.name != "posix":
|
|
40
40
|
|
|
41
|
-
async def _noop() -> None:
|
|
41
|
+
async def _noop() -> None:
|
|
42
42
|
return None
|
|
43
43
|
|
|
44
44
|
return stop_event, asyncio.create_task(_noop())
|
|
@@ -85,7 +85,7 @@ def start_esc_interrupt_monitor(
|
|
|
85
85
|
log((f"esc monitor error: {exc}", "r red"))
|
|
86
86
|
finally:
|
|
87
87
|
try:
|
|
88
|
-
termios.tcsetattr(fd, termios.TCSADRAIN, old)
|
|
88
|
+
termios.tcsetattr(fd, termios.TCSADRAIN, old)
|
|
89
89
|
except Exception:
|
|
90
90
|
pass
|
|
91
91
|
|
klaude_code/version.py
CHANGED
|
@@ -57,7 +57,7 @@ def _get_installed_version() -> str | None:
|
|
|
57
57
|
ver = ver[1:]
|
|
58
58
|
return ver
|
|
59
59
|
return None
|
|
60
|
-
except
|
|
60
|
+
except (OSError, subprocess.SubprocessError):
|
|
61
61
|
return None
|
|
62
62
|
|
|
63
63
|
|
|
@@ -67,7 +67,7 @@ def _get_latest_version() -> str | None:
|
|
|
67
67
|
with urllib.request.urlopen(PYPI_URL, timeout=5) as response:
|
|
68
68
|
data = json.loads(response.read().decode())
|
|
69
69
|
return data.get("info", {}).get("version")
|
|
70
|
-
except
|
|
70
|
+
except (OSError, json.JSONDecodeError, ValueError):
|
|
71
71
|
return None
|
|
72
72
|
|
|
73
73
|
|
|
@@ -93,7 +93,7 @@ def _compare_versions(installed: str, latest: str) -> bool:
|
|
|
93
93
|
installed_tuple = _parse_version(installed)
|
|
94
94
|
latest_tuple = _parse_version(latest)
|
|
95
95
|
return latest_tuple > installed_tuple
|
|
96
|
-
except
|
|
96
|
+
except ValueError:
|
|
97
97
|
return False
|
|
98
98
|
|
|
99
99
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: klaude-code
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.11
|
|
4
4
|
Summary: Add your description here
|
|
5
5
|
Requires-Dist: anthropic>=0.66.0
|
|
6
6
|
Requires-Dist: openai>=1.102.0
|
|
@@ -159,9 +159,6 @@ Inside the interactive session (`klaude`), use these commands to streamline your
|
|
|
159
159
|
| `Backspace` | Delete character or selected text |
|
|
160
160
|
| `c` (with selection) | Copy selected text to clipboard |
|
|
161
161
|
|
|
162
|
-
Mouse support is automatically enabled when input spans multiple lines.
|
|
163
|
-
|
|
164
|
-
|
|
165
162
|
### Non-Interactive Headless Mode (exec)
|
|
166
163
|
|
|
167
164
|
Execute a single command without starting the interactive REPL:
|
|
@@ -6,82 +6,85 @@ klaude_code/auth/codex/jwt_utils.py,sha256=tuaJKT4vAIGeaQjNzgNcHWGrYYSDrDeaQT9h4
|
|
|
6
6
|
klaude_code/auth/codex/oauth.py,sha256=ap78TUPJsF6O6cnkkuj11w1t4bCIVQzyVkuDvOLo0oo,7848
|
|
7
7
|
klaude_code/auth/codex/token_manager.py,sha256=F4xH5PhE9cksqTiWsU_YAboNe284VgUFWF2VY1sZV9U,2720
|
|
8
8
|
klaude_code/cli/__init__.py,sha256=YzlAoWAr5rx5oe6B_4zPxRFS4QaZauuy1AFwampP5fg,45
|
|
9
|
-
klaude_code/cli/main.py,sha256=
|
|
10
|
-
klaude_code/cli/runtime.py,sha256=
|
|
9
|
+
klaude_code/cli/main.py,sha256=_Srm_OiwJKcM9SUXPGI3jhr6XNs7bzpCpPQvBmn3QLc,12082
|
|
10
|
+
klaude_code/cli/runtime.py,sha256=qrw3SLaiI65v_rD78SGcJ1UXoZxBIK2mitGhDobvM_M,12582
|
|
11
11
|
klaude_code/cli/session_cmd.py,sha256=cIBm3uUurke-TfBvQHz9mGW29LOAh22FIpXVyypnwDo,2549
|
|
12
|
-
klaude_code/command/__init__.py,sha256=
|
|
13
|
-
klaude_code/command/clear_cmd.py,sha256=
|
|
14
|
-
klaude_code/command/command_abc.py,sha256=
|
|
15
|
-
klaude_code/command/diff_cmd.py,sha256=
|
|
16
|
-
klaude_code/command/export_cmd.py,sha256=
|
|
17
|
-
klaude_code/command/help_cmd.py,sha256=
|
|
18
|
-
klaude_code/command/model_cmd.py,sha256=
|
|
12
|
+
klaude_code/command/__init__.py,sha256=k9LJCFzzABhq09q1TeKSl4oG-288MYFXCICnZemVha8,2878
|
|
13
|
+
klaude_code/command/clear_cmd.py,sha256=EXIhVHvbfpgTrquLzTyeVAPkIRusjFkknwqzcct51ww,733
|
|
14
|
+
klaude_code/command/command_abc.py,sha256=1Wwp94Q3W08GNCraYYEGcjjNC7JLIei6E953zSZ2lZ4,2605
|
|
15
|
+
klaude_code/command/diff_cmd.py,sha256=Hk37Zg-tUchnrmq8128x4xOVU1AfZUypFAGj1FLIpkg,5327
|
|
16
|
+
klaude_code/command/export_cmd.py,sha256=npibiB42IYOoCRGtW7pR6CNQWcfSaql-tP-PTqc5BnU,3560
|
|
17
|
+
klaude_code/command/help_cmd.py,sha256=B24xKRfpphUQz3A1BMhbzPWWij24PHALglgNbal2l6o,1768
|
|
18
|
+
klaude_code/command/model_cmd.py,sha256=RRF7Hp5zrfCdye3bEiRTNwV_BvssJ_LSScIm78-GyBQ,1568
|
|
19
19
|
klaude_code/command/prompt-deslop.md,sha256=YGaAXqem39zd0UWCFjWUj83Cf7cvUJq1768aJExFqeg,1346
|
|
20
20
|
klaude_code/command/prompt-dev-docs-update.md,sha256=g1IWIWIa-3qlNOw5mBA4N9H1_nvYcw8AKo7XoQw_AZQ,1855
|
|
21
21
|
klaude_code/command/prompt-dev-docs.md,sha256=PU9iT6XdUEH6grfSjHVma7xKOQcA__ZTKlEDkbbO0hA,1783
|
|
22
22
|
klaude_code/command/prompt-init.md,sha256=a4_FQ3gKizqs2vl9oEY5jtG6HNhv3f-1b5RSCFq0A18,1873
|
|
23
|
-
klaude_code/command/prompt_command.py,sha256=
|
|
24
|
-
klaude_code/command/refresh_cmd.py,sha256=
|
|
25
|
-
klaude_code/command/registry.py,sha256=
|
|
26
|
-
klaude_code/command/release_notes_cmd.py,sha256=
|
|
27
|
-
klaude_code/command/status_cmd.py,sha256=
|
|
28
|
-
klaude_code/command/terminal_setup_cmd.py,sha256=
|
|
23
|
+
klaude_code/command/prompt_command.py,sha256=8jBUcfSmC9tXAYkLAB-u81KFqSKtCAHfHMnTQDzpgcg,2607
|
|
24
|
+
klaude_code/command/refresh_cmd.py,sha256=fiVlzTLNHqMsidj1JgEpUlB5MixKbijlPmN2n6v9xHI,1347
|
|
25
|
+
klaude_code/command/registry.py,sha256=ypRh1ArygVkHSwFDYMpngQudq6rUSJKF9FIM7JGCXus,3914
|
|
26
|
+
klaude_code/command/release_notes_cmd.py,sha256=6ywt5MI0PLOrBZF-uNKw0W1FbpEWsp2E9DVnCQ6HPV0,2783
|
|
27
|
+
klaude_code/command/status_cmd.py,sha256=SWCv5-JDM7zT1inGt3Bq93x4uTmPFJaXx6G65rUs_Fg,5472
|
|
28
|
+
klaude_code/command/terminal_setup_cmd.py,sha256=E819wPNSOnZ3AzMfDwq9bsdlg7-AuSooczBa97gf3ps,11019
|
|
29
29
|
klaude_code/config/__init__.py,sha256=9XVCYYqzJtCi46I94hbUmJ2yTFuZ-UlH-QTx7OpLAkQ,292
|
|
30
30
|
klaude_code/config/config.py,sha256=Vc9u7-40T81Rbx1OdMqSWZLh3vf9aj4wmBUnIOH7jAw,6526
|
|
31
31
|
klaude_code/config/list_model.py,sha256=08vLxar7YAcUNzGTN6bUbPtAoXXyfO5y6LjaaXMbsyQ,8019
|
|
32
32
|
klaude_code/config/select_model.py,sha256=el1jqXlNyYmHH_dvdcEkWVOYqIZ9y05_VJRlfZk7HkQ,2565
|
|
33
|
-
klaude_code/const/__init__.py,sha256=
|
|
33
|
+
klaude_code/const/__init__.py,sha256=dSfcFjVeDoc5UEHtzR-9U_BWCVNXggHyiKHwHapASZ0,3980
|
|
34
34
|
klaude_code/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
35
|
-
klaude_code/core/agent.py,sha256=
|
|
36
|
-
klaude_code/core/executor.py,sha256=
|
|
35
|
+
klaude_code/core/agent.py,sha256=98VK6WBcPSS_N6IBT2_vCCkg4XsAziy4FGJadW8mOiw,8169
|
|
36
|
+
klaude_code/core/executor.py,sha256=OkebxW6_64hecQBjHPgDQlw8JgOa_k5meBpNsMBB4qg,18512
|
|
37
37
|
klaude_code/core/manager/__init__.py,sha256=6CswltCHXBUcezlW7xui2S1swDp8JTkS1YiEHmq4-no,658
|
|
38
|
-
klaude_code/core/manager/agent_manager.py,sha256=
|
|
39
|
-
klaude_code/core/manager/llm_clients.py,sha256=
|
|
40
|
-
klaude_code/core/manager/llm_clients_builder.py,sha256=
|
|
41
|
-
klaude_code/core/manager/sub_agent_manager.py,sha256=
|
|
42
|
-
klaude_code/core/prompt.py,sha256=
|
|
43
|
-
klaude_code/core/prompts/prompt-claude-code.md,sha256=
|
|
38
|
+
klaude_code/core/manager/agent_manager.py,sha256=IG07QD3wJWroJrTLdTZKwiCJrQjQikz8MoTyI7KCK0A,5267
|
|
39
|
+
klaude_code/core/manager/llm_clients.py,sha256=sIFCweup7SJL5o9LbPgRLYE3fDuhYA4ZdhtSF2M0FAQ,2225
|
|
40
|
+
klaude_code/core/manager/llm_clients_builder.py,sha256=SjSEBJWS77FY5xctu3uxT0JaiQKGtRJnjTZYandJwU0,1772
|
|
41
|
+
klaude_code/core/manager/sub_agent_manager.py,sha256=SnDFu8ovcQjBkQSJrSD8e0Yf63NhIjYAt8WyQhBcpy0,3760
|
|
42
|
+
klaude_code/core/prompt.py,sha256=I0jTB2mFG5a4ztwlP-Jxawsp-enRHFQCVANLUurhXEA,3303
|
|
43
|
+
klaude_code/core/prompts/prompt-claude-code.md,sha256=c7kNgwjJqnbwQuKWGJoMx-AMbf1gxAFC3ZFDhngBe74,8293
|
|
44
44
|
klaude_code/core/prompts/prompt-codex-gpt-5-1-codex-max.md,sha256=SW-y8AmR99JL_9j26k9YVAOQuZ18vR12aT5CWHkZDc4,11741
|
|
45
45
|
klaude_code/core/prompts/prompt-codex-gpt-5-1.md,sha256=jNi593_4L3EoMvjS0TwltF2b684gtDBsYHa9npxO34A,24239
|
|
46
46
|
klaude_code/core/prompts/prompt-gemini.md,sha256=JjE1tHSByGKJzjn4Gpj1zekT7ry1Yqbwx5qx3fZy2gE,3901
|
|
47
|
+
klaude_code/core/prompts/prompt-minimal.md,sha256=6-ZmQQkE3f92W_3V2wS7ocB13wLog1_UojCjZG0K4v8,1559
|
|
47
48
|
klaude_code/core/prompts/prompt-subagent-explore.md,sha256=m7eQMTWWibaZIMPNbMYUhPbNRn5KrTq5tIoXw1HJuLY,2124
|
|
48
49
|
klaude_code/core/prompts/prompt-subagent-oracle.md,sha256=hGtyDm_6UhJZUJwfXt5A-170is1KMHls85fEEo45z-w,1376
|
|
49
50
|
klaude_code/core/prompts/prompt-subagent-webfetch.md,sha256=kHtJINbCRiRDrip_q6idHHU3CwbDfrVlpgtSZvugOWI,2304
|
|
50
51
|
klaude_code/core/prompts/prompt-subagent.md,sha256=dmmdsOenbAOfqG6FmdR88spOLZkXmntDBs-cmZ9DN_g,897
|
|
51
|
-
klaude_code/core/reminders.py,sha256=
|
|
52
|
-
klaude_code/core/task.py,sha256=
|
|
52
|
+
klaude_code/core/reminders.py,sha256=S5ZbYYrIoQKPGtLqtqg8yPCwZRD5Vdlkzf1wu86bw8g,18123
|
|
53
|
+
klaude_code/core/task.py,sha256=Ct1puAKnbOiuczSiogaXCzK3V0lX3a7E0x5dj9M7UJQ,10631
|
|
53
54
|
klaude_code/core/tool/__init__.py,sha256=-pxK4iCkvcdLpav74foMNdeIjsC6PMkVaw_q5kajivg,2170
|
|
54
55
|
klaude_code/core/tool/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
56
|
+
klaude_code/core/tool/file/_utils.py,sha256=UjXO9Bwyr7YtDeSALiA8cp4KQlQskibZlbk6A33F0q4,779
|
|
55
57
|
klaude_code/core/tool/file/apply_patch.py,sha256=gUukVxt0qEP2NLHiPsmFWOi0sOuW0FaUnN0BfZ6FcII,17257
|
|
56
58
|
klaude_code/core/tool/file/apply_patch_tool.md,sha256=KVDsjUiLDa97gym0NrZNVG4jA1_zN-2i-B3upVQyOhU,59
|
|
57
59
|
klaude_code/core/tool/file/apply_patch_tool.py,sha256=cz9E7oYW9CjaokXhjAeyIxsukdvHVM2uM3cvwwDTNxg,8215
|
|
58
60
|
klaude_code/core/tool/file/edit_tool.md,sha256=rEcUjJuPC46t1nXWjTDxplDcxWDbzTWsr6_bYt5_aRI,1110
|
|
59
|
-
klaude_code/core/tool/file/edit_tool.py,sha256=
|
|
61
|
+
klaude_code/core/tool/file/edit_tool.py,sha256=5qk7iwoF1ODUhY3eRoUGs7x_RNjXark1XfpYb18oEd8,9994
|
|
60
62
|
klaude_code/core/tool/file/multi_edit_tool.md,sha256=4G39b-jGdJdGGbBTj7R6tcUfcui9tXn6CLQ5uaX5y1M,2485
|
|
61
|
-
klaude_code/core/tool/file/multi_edit_tool.py,sha256=
|
|
63
|
+
klaude_code/core/tool/file/multi_edit_tool.py,sha256=inXJvAKGp-ZSQVAFk0Tv8kWc1LwxLdCMAla4Fpj47Gs,6887
|
|
62
64
|
klaude_code/core/tool/file/read_tool.md,sha256=FeRW9WMUNCtgbezjohvSJjFLZhQd1EaHVcjCI4eQHf4,1472
|
|
63
|
-
klaude_code/core/tool/file/read_tool.py,sha256=
|
|
65
|
+
klaude_code/core/tool/file/read_tool.py,sha256=I3j6XS4KBt1BH0cyJwLp0zFWh-mq8xAyh_w7_bU96Z8,12803
|
|
64
66
|
klaude_code/core/tool/file/write_tool.md,sha256=CNnYgtieUasuHdpXLDpTEsqe492Pf7v75M4RQ3oIer8,613
|
|
65
|
-
klaude_code/core/tool/file/write_tool.py,sha256=
|
|
66
|
-
klaude_code/core/tool/memory/__init__.py,sha256=
|
|
67
|
-
klaude_code/core/tool/memory/memory_tool.md,sha256=
|
|
67
|
+
klaude_code/core/tool/file/write_tool.py,sha256=AqprfzACIL-f-J_ZTLntteCddUBCOKFoIukM6kp_ZqI,4340
|
|
68
|
+
klaude_code/core/tool/memory/__init__.py,sha256=oeBpjUXcAilCtYXhiXDzavw5-BE_pbB2ZxsFJKTTcdc,143
|
|
69
|
+
klaude_code/core/tool/memory/memory_tool.md,sha256=qWytU7k0kQQbne_8n4cei2-dDTNpHesmbI2PYza3XR0,1299
|
|
68
70
|
klaude_code/core/tool/memory/memory_tool.py,sha256=h777Iju8gNijCfYMEALeoyRomBY0FXGu46gykehCeUA,19018
|
|
69
|
-
klaude_code/core/tool/memory/skill_loader.py,sha256=
|
|
71
|
+
klaude_code/core/tool/memory/skill_loader.py,sha256=3CywpqhEwAoWOVMKsE9awfYGDkBfO0J-rA-9Ckyk8dQ,8660
|
|
70
72
|
klaude_code/core/tool/memory/skill_tool.md,sha256=UfjJK5EGAd3mf7ym5rIrRdPyV3kBTxNnwzOjNnHOBrE,973
|
|
71
|
-
klaude_code/core/tool/memory/skill_tool.py,sha256=
|
|
73
|
+
klaude_code/core/tool/memory/skill_tool.py,sha256=8SC4asNZSKfExuhzbyGz4f2cr78PgCpNkut_31IHePw,3602
|
|
72
74
|
klaude_code/core/tool/shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
73
75
|
klaude_code/core/tool/shell/bash_tool.md,sha256=ILKpnRCBTkU2uSDEdZQjNYo1l6hsM4TO-3RD5zWC61c,3935
|
|
74
76
|
klaude_code/core/tool/shell/bash_tool.py,sha256=qPB7W51LmFsRxWJoqKih1vNTGIOaXE4wfxnKPzBXs6g,4490
|
|
75
77
|
klaude_code/core/tool/shell/command_safety.py,sha256=r5nTltVj1Iil7dmnYByj4jp4du7AtPEaUa4J6XdrlTo,13209
|
|
76
78
|
klaude_code/core/tool/sub_agent_tool.py,sha256=Ohroht4z-W_kuBo0AvKoL40XQM0QGzScIDAuqYKXSVk,2765
|
|
77
79
|
klaude_code/core/tool/todo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
78
|
-
klaude_code/core/tool/todo/todo_write_tool.md,sha256=
|
|
80
|
+
klaude_code/core/tool/todo/todo_write_tool.md,sha256=BFP9qIkzkakzskHwIOPVtDhehkh0F90A5oosyDuC_BE,1682
|
|
79
81
|
klaude_code/core/tool/todo/todo_write_tool.py,sha256=XgSo8F1aJn_0fkh9Gx-5DHNFNlbZys1bUjwhe6NwyLU,4506
|
|
82
|
+
klaude_code/core/tool/todo/todo_write_tool_raw.md,sha256=AJ2OkZGcccQYDXkydPAr5JI2SExBF8qJd0rXsHySLps,9711
|
|
80
83
|
klaude_code/core/tool/todo/update_plan_tool.md,sha256=OoEF4voHHd5J3VDv7tq3UCHdXApkBvxdHXUf5tVOkE8,157
|
|
81
84
|
klaude_code/core/tool/todo/update_plan_tool.py,sha256=5MmmApG0wObBgc-mLETjIMupxIv-SZ7Q0uJO2Krtl1k,3794
|
|
82
85
|
klaude_code/core/tool/tool_abc.py,sha256=3FlVZ8a6hC-_Ci23_cpLaap9nHinHgxSB1TsZL5ylUQ,731
|
|
83
86
|
klaude_code/core/tool/tool_context.py,sha256=Slnykn14GwN9V_-IBRX3xu0xjvA-Fi3bqHTYR-Z7A5Y,4175
|
|
84
|
-
klaude_code/core/tool/tool_registry.py,sha256=
|
|
87
|
+
klaude_code/core/tool/tool_registry.py,sha256=AgJ9m42gKB23GZnUuY4eThSzKaB4_51ytdLDxQD8lIk,2603
|
|
85
88
|
klaude_code/core/tool/tool_runner.py,sha256=I9BfeRgtVT3IoZGXgEVvzTEF8-fpKFqtbt6MgznJleI,10079
|
|
86
89
|
klaude_code/core/tool/truncation.py,sha256=hHeJDrvvNt0wE9yGZVaZheYUW0VoJ7QbopKo6wjyP-w,6644
|
|
87
90
|
klaude_code/core/tool/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -90,48 +93,48 @@ klaude_code/core/tool/web/mermaid_tool.py,sha256=Ok0A27oHLnV1c__74bheUuy3wpqDJ1z
|
|
|
90
93
|
klaude_code/core/tool/web/web_fetch_tool.md,sha256=_5U-LSoI86rD26nPb0D5BQCr6hj8eyF0UELSiyLznCA,347
|
|
91
94
|
klaude_code/core/tool/web/web_fetch_tool.py,sha256=iu6kM_-90K8mqHbK9Loui96vICV7d8rmtss68rcFqw0,4958
|
|
92
95
|
klaude_code/core/turn.py,sha256=0Pc8GI2tuY2wukCPxCrWvuPlhhZRfXcrduNrDG0yeG8,9517
|
|
93
|
-
klaude_code/llm/__init__.py,sha256=
|
|
96
|
+
klaude_code/llm/__init__.py,sha256=b4AsqnrMIs0a5qR_ti6rZcHwFzAReTwOW96EqozEoSo,287
|
|
94
97
|
klaude_code/llm/anthropic/__init__.py,sha256=PWETvaeNAAX3ue0ww1uRUIxTJG0RpWiutkn7MlwKxBs,67
|
|
95
|
-
klaude_code/llm/anthropic/client.py,sha256=
|
|
98
|
+
klaude_code/llm/anthropic/client.py,sha256=1gk4Fkd4FvEJjt1Ryta9uP-mMN7ZYX4zqNgxkyK0QT8,9605
|
|
96
99
|
klaude_code/llm/anthropic/input.py,sha256=qPo4nmhnhSfLqef4UUVoIz8EjoXTxvlsrfsc_6qqM_s,8039
|
|
97
|
-
klaude_code/llm/client.py,sha256=
|
|
100
|
+
klaude_code/llm/client.py,sha256=km3wN3qoVBmo8azmTNjD2lOhUBtkQTlPDHBsYbjO_NU,1489
|
|
98
101
|
klaude_code/llm/codex/__init__.py,sha256=8vN2j2ezWB_UVpfqQ8ooStsBeLL5SY4SUMXOXdWiMaI,132
|
|
99
|
-
klaude_code/llm/codex/client.py,sha256=
|
|
102
|
+
klaude_code/llm/codex/client.py,sha256=t-A5kzyqowNIuec1hLlrcYzLnAzTEtVF30wjEKKeg80,4928
|
|
100
103
|
klaude_code/llm/input_common.py,sha256=purxHHMo_yahNvv0Y1pH7WmfTfZgZqUqyo2JvdFiVO0,8526
|
|
101
104
|
klaude_code/llm/openai_compatible/__init__.py,sha256=ACGpnki7k53mMcCl591aw99pm9jZOZk0ghr7atOfNps,81
|
|
102
|
-
klaude_code/llm/openai_compatible/client.py,sha256=
|
|
105
|
+
klaude_code/llm/openai_compatible/client.py,sha256=R4T0KhQb-gpyczJfUG1y42l4_K_IsIWHFIPLtPZ6iwQ,7597
|
|
103
106
|
klaude_code/llm/openai_compatible/input.py,sha256=rtWVjpwb9tLrinucezmncQXet8MerUxE5Gxc32sfDr4,3750
|
|
104
107
|
klaude_code/llm/openai_compatible/stream_processor.py,sha256=ckOBWZ_iUqgcESD5pnvjqJxvPI7YA4k9DYZkZ37KbmE,3388
|
|
105
108
|
klaude_code/llm/openai_compatible/tool_call_accumulator.py,sha256=kuw3ceDgenQz2Ccc9KYqBkDo6F1sDb5Aga6m41AIECA,4071
|
|
106
109
|
klaude_code/llm/openrouter/__init__.py,sha256=_As8lHjwj6vapQhLorZttTpukk5ZiCdhFdGT38_ASPo,69
|
|
107
|
-
klaude_code/llm/openrouter/client.py,sha256=
|
|
110
|
+
klaude_code/llm/openrouter/client.py,sha256=tFb6e0iNz-72pygnmtKnNeQUQ2zY5ui1vTPcho99NCg,7835
|
|
108
111
|
klaude_code/llm/openrouter/input.py,sha256=2GuDVHd_74ZtHQyFyTGhZqtWjM7m5GYqFtKf--AvmlI,5059
|
|
109
112
|
klaude_code/llm/openrouter/reasoning_handler.py,sha256=TYIHdwMopi8DVqOpeN3vpyp-GcWOZgTeRnT5QvlK70U,8100
|
|
110
|
-
klaude_code/llm/registry.py,sha256=
|
|
113
|
+
klaude_code/llm/registry.py,sha256=bbxZ_Mb7C2xCk_OVUQoZnsyPgmO3tbfJ292qaCtr1Ts,1763
|
|
111
114
|
klaude_code/llm/responses/__init__.py,sha256=WsiyvnNiIytaYcaAqNiB8GI-5zcpjjeODPbMlteeFjA,67
|
|
112
|
-
klaude_code/llm/responses/client.py,sha256=
|
|
113
|
-
klaude_code/llm/responses/input.py,sha256=
|
|
114
|
-
klaude_code/llm/usage.py,sha256=
|
|
115
|
+
klaude_code/llm/responses/client.py,sha256=hcFbDgUJPMZsAR8kSxfshuAEAVXJOZL2FIxVqZ1ku90,9359
|
|
116
|
+
klaude_code/llm/responses/input.py,sha256=noNmalXvxw6UXo6ngkhFBroECxK6igmgEQ49YVhY0xg,6049
|
|
117
|
+
klaude_code/llm/usage.py,sha256=3FWDQZeM2LKXt1eeP2K40lkjtwovZP6SLCYlBJ0NV8Y,5647
|
|
115
118
|
klaude_code/protocol/__init__.py,sha256=aGUgzhYqvhuT3Mk2vj7lrHGriH4h9TSbqV1RsRFAZjQ,194
|
|
116
119
|
klaude_code/protocol/commands.py,sha256=ulHcHvvRbJosmp51l-xNio8ImDEI8uVmG17wVH2kg90,580
|
|
117
120
|
klaude_code/protocol/events.py,sha256=exOriAIxdIzS7WDKCw3am-uw1egx_8tVbvcgO6s3nMI,3562
|
|
118
121
|
klaude_code/protocol/llm_param.py,sha256=Hjq8Z-3nGhAJovf-lcsNc0kBVGRDWKe910J5lZwQfq4,4424
|
|
119
|
-
klaude_code/protocol/model.py,sha256=
|
|
120
|
-
klaude_code/protocol/op.py,sha256=
|
|
122
|
+
klaude_code/protocol/model.py,sha256=UFcnBlpVYj8Kbd13h8Lo0It6Yy8ddVcXmdiiXHOZEx8,12351
|
|
123
|
+
klaude_code/protocol/op.py,sha256=hdQTzD6zAsRMJJFaLOPvDX9gokhtIBSYNQuZ20TusI4,2824
|
|
121
124
|
klaude_code/protocol/op_handler.py,sha256=_lnv3-RxKkrTfGTNBlQ23gbHJBEtMLC8O48SYWDtPjE,843
|
|
122
|
-
klaude_code/protocol/sub_agent.py,sha256=
|
|
125
|
+
klaude_code/protocol/sub_agent.py,sha256=NZib4kubDY8Js7toE6G2eKDNH4sWrmVYnH9FSTqKkZI,13666
|
|
123
126
|
klaude_code/protocol/tools.py,sha256=hkjVirnQqGTJS46IWvVKXWR4usPPUgDZDnm34LzAVSc,348
|
|
124
127
|
klaude_code/session/__init__.py,sha256=oXcDA5w-gJCbzmlF8yuWy3ezIW9DgFBNUs-gJHUJ-Rc,121
|
|
125
|
-
klaude_code/session/export.py,sha256=
|
|
128
|
+
klaude_code/session/export.py,sha256=1awi_cyZGRVnrzHMTpR_eeDsLkJqRI5QdqhvWd8anas,25149
|
|
126
129
|
klaude_code/session/selector.py,sha256=HTboyzih7V8zbZoSsArJ-GVC1EnXTGocHJwFmZfbeSg,2567
|
|
127
|
-
klaude_code/session/session.py,sha256=
|
|
128
|
-
klaude_code/session/templates/export_session.html,sha256=
|
|
130
|
+
klaude_code/session/session.py,sha256=vm7I-IODBQr7JNkdx2jWfvDZgiLzMRrb0HBebfz7wnU,20051
|
|
131
|
+
klaude_code/session/templates/export_session.html,sha256=jvyVM_ZrRoQIqWslfmo6ASprVYLhbOtT_QTzgkrdXHs,46389
|
|
129
132
|
klaude_code/trace/__init__.py,sha256=B-S4qdCj8W88AaC_gVmhTaejH6eLYClBVh2Q6aGAVBk,184
|
|
130
133
|
klaude_code/trace/log.py,sha256=0K0uek2KWq0zkUZijcO-TBM6STLe-h_8IIW0lx7V7ZA,4865
|
|
131
134
|
klaude_code/ui/__init__.py,sha256=AL1Ro0u8ObNPMj4sci_U4zakG7IpnI3bie-C63E2QPI,2873
|
|
132
135
|
klaude_code/ui/core/__init__.py,sha256=2NakrTDcxem5D0atyEY_Rxv1BbKCeZweF63L6AAq6r8,23
|
|
133
136
|
klaude_code/ui/core/display.py,sha256=NwFQ9oKi8i3T5EsYDRrTpGBr3BZI0Ggns37JuQEOH54,3540
|
|
134
|
-
klaude_code/ui/core/input.py,sha256=
|
|
137
|
+
klaude_code/ui/core/input.py,sha256=GqEos_VKRpfzQg0LQvr3210gzu2mw0_7OpPyNXmF3LI,2533
|
|
135
138
|
klaude_code/ui/core/stage_manager.py,sha256=ozKYS213_RpsgYxF9mIDcTObrxqkqbE3Ao6CDhnES2E,1559
|
|
136
139
|
klaude_code/ui/modes/__init__.py,sha256=ByDPbyYYU4o5kdnEes3b1VEV173RI9XAXyzkFbrApEY,26
|
|
137
140
|
klaude_code/ui/modes/debug/__init__.py,sha256=1-1tAk7FtENdYzExSttYdHiJ-qH3DIQ5yYJ51ms2uSg,13
|
|
@@ -139,11 +142,11 @@ klaude_code/ui/modes/debug/display.py,sha256=11I-JN9OEz2zBIqhEXctSUaDO1Z0nT_cG8R
|
|
|
139
142
|
klaude_code/ui/modes/exec/__init__.py,sha256=RsYa-DmDJj6g7iXb4H9mm2_Cu-KDQOD10RJd3yhVf_k,12
|
|
140
143
|
klaude_code/ui/modes/exec/display.py,sha256=m2kkgaUoGD9rEVUmcm7Vs_PyAI2iruKCJYRhANjSsKo,1965
|
|
141
144
|
klaude_code/ui/modes/repl/__init__.py,sha256=JursXYxevw0hrezE-urGo25962InIXVPj_uYnPafN-U,1528
|
|
142
|
-
klaude_code/ui/modes/repl/clipboard.py,sha256=
|
|
145
|
+
klaude_code/ui/modes/repl/clipboard.py,sha256=ZCpk7kRSXGhh0Q_BWtUUuSYT7ZOqRjAoRcg9T9n48Wo,5137
|
|
143
146
|
klaude_code/ui/modes/repl/completers.py,sha256=V6pxi61w1z0B1eDliudahBQJ6wkPXAGI4AaBg8J0XtE,18283
|
|
144
147
|
klaude_code/ui/modes/repl/display.py,sha256=v-Jxe7MWpOCEsx9FFEzqKaIg0jLS7ZU9bevooBjxxEQ,2242
|
|
145
|
-
klaude_code/ui/modes/repl/event_handler.py,sha256=
|
|
146
|
-
klaude_code/ui/modes/repl/input_prompt_toolkit.py,sha256=
|
|
148
|
+
klaude_code/ui/modes/repl/event_handler.py,sha256=oReGpdmqgrNmwOMehykscZS2t_XzTWcCvyxZq28MxCc,18604
|
|
149
|
+
klaude_code/ui/modes/repl/input_prompt_toolkit.py,sha256=EAIAtcL9EHVPmVK6oOHg0xCeZ0IOnG5S5KsaL85OHOk,6368
|
|
147
150
|
klaude_code/ui/modes/repl/key_bindings.py,sha256=Px-QdRHkzvb2fDGg5d3JHic5ieiGiPcXorPJ5bAM8dI,7801
|
|
148
151
|
klaude_code/ui/modes/repl/renderer.py,sha256=G7K9HXqFKLdEvWgz3JpruJk02RBULqq7-GSu_gCkP-A,11962
|
|
149
152
|
klaude_code/ui/renderers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -152,28 +155,28 @@ klaude_code/ui/renderers/common.py,sha256=TPH7LCbeJGqB8ArTsVitqJHEyOxHU6nwnRtvF0
|
|
|
152
155
|
klaude_code/ui/renderers/developer.py,sha256=fE-9LRzVLiKnK3ctFcuDDP_eehohhsgPCH_tYaOp-xs,6378
|
|
153
156
|
klaude_code/ui/renderers/diffs.py,sha256=P--aLjvZy4z77FDx6uM9LlIYVjYlyZwj0MncdJTO2AA,7691
|
|
154
157
|
klaude_code/ui/renderers/errors.py,sha256=c_fbnoNOnvuI3Bb24IujwV8Mpes-qWS_xCWfAcBvg6A,517
|
|
155
|
-
klaude_code/ui/renderers/metadata.py,sha256=
|
|
158
|
+
klaude_code/ui/renderers/metadata.py,sha256=ESX8d3DOeT1MRHx9eX9yFUwwOMENZaivrbudKhgAHHk,9881
|
|
156
159
|
klaude_code/ui/renderers/sub_agent.py,sha256=3cyn95pu4IniOJyWW4vfQ-X72iLufQ3LT9CkAQMuF4k,2686
|
|
157
160
|
klaude_code/ui/renderers/thinking.py,sha256=jzDfvYuwpafndmBMMb6UumGxur9iFi_X0LYIo08eDlw,1179
|
|
158
|
-
klaude_code/ui/renderers/tools.py,sha256=
|
|
161
|
+
klaude_code/ui/renderers/tools.py,sha256=iVgTo10gzS981LmbLU36Zt17JMW3YTPYRqA3mUJ_d8c,19975
|
|
159
162
|
klaude_code/ui/renderers/user_input.py,sha256=rDdOYvbgJ6oePQAtyTCK-KhARfLKytpTZboZ-cFIuJQ,2603
|
|
160
163
|
klaude_code/ui/rich/__init__.py,sha256=olvMm2SteyKioOqUJbEoav2TsDr_mtKqkSaifNumjwc,27
|
|
161
164
|
klaude_code/ui/rich/live.py,sha256=Uid0QAZG7mHb4KrCF8p9c9n1nHLHzW75xSqcLZ4bLWY,2098
|
|
162
|
-
klaude_code/ui/rich/markdown.py,sha256=
|
|
165
|
+
klaude_code/ui/rich/markdown.py,sha256=5RFIWsYDuC2q_ngD4mG48viGyDT70FF8-7SwSvgPA_M,11674
|
|
163
166
|
klaude_code/ui/rich/quote.py,sha256=tZcxN73SfDBHF_qk0Jkh9gWBqPBn8VLp9RF36YRdKEM,1123
|
|
164
167
|
klaude_code/ui/rich/searchable_text.py,sha256=Adr2EFewX1UInypz-vMOUgZP9gk3Zk8_d2utWhV3K90,2452
|
|
165
168
|
klaude_code/ui/rich/status.py,sha256=sHTenGYERGiLwnkwdGFjFw9WDbbnMSPTKeEJiSYYNaU,8503
|
|
166
169
|
klaude_code/ui/rich/theme.py,sha256=JAlFXwcZYbHv0vcuweWnzu4vR2CDe-mqH24CEtNBnL4,10159
|
|
167
|
-
klaude_code/ui/terminal/__init__.py,sha256=
|
|
170
|
+
klaude_code/ui/terminal/__init__.py,sha256=GIMnsEcIAGT_vBHvTlWEdyNmAEpruyscUA6M_j3GQZU,1412
|
|
168
171
|
klaude_code/ui/terminal/color.py,sha256=M-i09DVlLAhAyhQjfeAi7OipoGi1p_OVkaZxeRfykY0,7135
|
|
169
|
-
klaude_code/ui/terminal/control.py,sha256=
|
|
172
|
+
klaude_code/ui/terminal/control.py,sha256=Yq0giFYIBOIJp1KQTvqAglQXKzSbwO5f2fI_b8EoTcU,4997
|
|
170
173
|
klaude_code/ui/terminal/notifier.py,sha256=YOQXZYrjUZFLRt1iIoHxDKYoQUS-760lpydBGw9OxbM,3227
|
|
171
174
|
klaude_code/ui/terminal/progress_bar.py,sha256=MDnhPbqCnN4GDgLOlxxOEVZPDwVC_XL2NM5sl1MFNcQ,2133
|
|
172
175
|
klaude_code/ui/utils/__init__.py,sha256=YEsCLjbCPaPza-UXTPUMTJTrc9BmNBUP5CbFWlshyOQ,15
|
|
173
176
|
klaude_code/ui/utils/common.py,sha256=xzw-Mgj0agxrf22QxpH7YzVIpkMXIRY6SgXWtLYF0yU,2881
|
|
174
177
|
klaude_code/ui/utils/debouncer.py,sha256=TFF1z7B7-FxONEigkYohhShDlqo4cOcqydE9zz7JBHc,1270
|
|
175
|
-
klaude_code/version.py,sha256=
|
|
176
|
-
klaude_code-1.2.
|
|
177
|
-
klaude_code-1.2.
|
|
178
|
-
klaude_code-1.2.
|
|
179
|
-
klaude_code-1.2.
|
|
178
|
+
klaude_code/version.py,sha256=x2OeiACPdzS87EWtaSi_UP13htm81Uq7mlV3kFy5jko,4815
|
|
179
|
+
klaude_code-1.2.11.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
|
|
180
|
+
klaude_code-1.2.11.dist-info/entry_points.txt,sha256=7CWKjolvs6dZiYHpelhA_FRJ-sVDh43eu3iWuOhKc_w,53
|
|
181
|
+
klaude_code-1.2.11.dist-info/METADATA,sha256=YP1lR039UswgCpr7YjhigkdUh21LrVaJtrnCzQg4h60,5067
|
|
182
|
+
klaude_code-1.2.11.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|