klaude-code 1.2.28__py3-none-any.whl → 1.2.29__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/config_cmd.py +13 -6
- klaude_code/cli/list_model.py +1 -1
- klaude_code/config/__init__.py +11 -1
- klaude_code/config/config.py +21 -17
- klaude_code/core/tool/web/mermaid_tool.py +2 -2
- klaude_code/protocol/model.py +1 -0
- klaude_code/session/export.py +12 -13
- klaude_code/session/session.py +2 -2
- klaude_code/session/templates/mermaid_viewer.html +926 -0
- klaude_code/ui/modes/repl/event_handler.py +3 -1
- klaude_code/ui/renderers/assistant.py +4 -2
- klaude_code/ui/renderers/developer.py +9 -7
- klaude_code/ui/renderers/mermaid_viewer.py +58 -0
- klaude_code/ui/renderers/tools.py +39 -15
- klaude_code/ui/rich/theme.py +6 -0
- {klaude_code-1.2.28.dist-info → klaude_code-1.2.29.dist-info}/METADATA +1 -1
- {klaude_code-1.2.28.dist-info → klaude_code-1.2.29.dist-info}/RECORD +19 -17
- {klaude_code-1.2.28.dist-info → klaude_code-1.2.29.dist-info}/WHEEL +0 -0
- {klaude_code-1.2.28.dist-info → klaude_code-1.2.29.dist-info}/entry_points.txt +0 -0
|
@@ -167,7 +167,8 @@ class ActivityState:
|
|
|
167
167
|
return activity_text
|
|
168
168
|
if self._composing:
|
|
169
169
|
# Main status text with creative verb
|
|
170
|
-
text = Text(
|
|
170
|
+
text = Text()
|
|
171
|
+
text.append("Composing", style=ThemeKey.STATUS_TEXT_BOLD)
|
|
171
172
|
if self._buffer_length > 0:
|
|
172
173
|
text.append(f" ({self._buffer_length:,})", style=ThemeKey.STATUS_TEXT)
|
|
173
174
|
return text
|
|
@@ -363,6 +364,7 @@ class DisplayEventHandler:
|
|
|
363
364
|
emit_osc94(OSC94States.INDETERMINATE)
|
|
364
365
|
self.renderer.display_turn_start(event)
|
|
365
366
|
self.spinner_status.clear_for_new_turn()
|
|
367
|
+
self.spinner_status.set_reasoning_status(None)
|
|
366
368
|
self._update_spinner()
|
|
367
369
|
|
|
368
370
|
async def _on_thinking(self, event: events.ThinkingEvent) -> None:
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
from rich.console import RenderableType
|
|
2
2
|
from rich.padding import Padding
|
|
3
|
+
from rich.text import Text
|
|
3
4
|
|
|
4
5
|
from klaude_code import const
|
|
5
6
|
from klaude_code.ui.renderers.common import create_grid
|
|
6
7
|
from klaude_code.ui.rich.markdown import NoInsetMarkdown
|
|
8
|
+
from klaude_code.ui.rich.theme import ThemeKey
|
|
7
9
|
|
|
8
10
|
# UI markers
|
|
9
|
-
ASSISTANT_MESSAGE_MARK = "
|
|
11
|
+
ASSISTANT_MESSAGE_MARK = "•"
|
|
10
12
|
|
|
11
13
|
|
|
12
14
|
def render_assistant_message(content: str, *, code_theme: str) -> RenderableType | None:
|
|
@@ -20,7 +22,7 @@ def render_assistant_message(content: str, *, code_theme: str) -> RenderableType
|
|
|
20
22
|
|
|
21
23
|
grid = create_grid()
|
|
22
24
|
grid.add_row(
|
|
23
|
-
ASSISTANT_MESSAGE_MARK,
|
|
25
|
+
Text(ASSISTANT_MESSAGE_MARK, style=ThemeKey.ASSISTANT_MESSAGE_MARK),
|
|
24
26
|
Padding(NoInsetMarkdown(stripped, code_theme=code_theme), (0, const.MARKDOWN_RIGHT_MARGIN, 0, 0)),
|
|
25
27
|
)
|
|
26
28
|
return grid
|
|
@@ -9,6 +9,8 @@ from klaude_code.ui.renderers.tools import render_path
|
|
|
9
9
|
from klaude_code.ui.rich.markdown import NoInsetMarkdown
|
|
10
10
|
from klaude_code.ui.rich.theme import ThemeKey
|
|
11
11
|
|
|
12
|
+
REMINDER_BULLET = " ⧉"
|
|
13
|
+
|
|
12
14
|
|
|
13
15
|
def need_render_developer_message(e: events.DeveloperMessageEvent) -> bool:
|
|
14
16
|
return bool(
|
|
@@ -32,7 +34,7 @@ def render_developer_message(e: events.DeveloperMessageEvent) -> RenderableType:
|
|
|
32
34
|
if mp := e.item.memory_paths:
|
|
33
35
|
grid = create_grid()
|
|
34
36
|
grid.add_row(
|
|
35
|
-
Text(
|
|
37
|
+
Text(REMINDER_BULLET, style=ThemeKey.REMINDER),
|
|
36
38
|
Text.assemble(
|
|
37
39
|
("Load memory ", ThemeKey.REMINDER),
|
|
38
40
|
Text(", ", ThemeKey.REMINDER).join(
|
|
@@ -46,7 +48,7 @@ def render_developer_message(e: events.DeveloperMessageEvent) -> RenderableType:
|
|
|
46
48
|
grid = create_grid()
|
|
47
49
|
for file_path in fc:
|
|
48
50
|
grid.add_row(
|
|
49
|
-
Text(
|
|
51
|
+
Text(REMINDER_BULLET, style=ThemeKey.REMINDER),
|
|
50
52
|
Text.assemble(
|
|
51
53
|
("Read ", ThemeKey.REMINDER),
|
|
52
54
|
render_path(file_path, ThemeKey.REMINDER_BOLD),
|
|
@@ -58,7 +60,7 @@ def render_developer_message(e: events.DeveloperMessageEvent) -> RenderableType:
|
|
|
58
60
|
if e.item.todo_use:
|
|
59
61
|
grid = create_grid()
|
|
60
62
|
grid.add_row(
|
|
61
|
-
Text(
|
|
63
|
+
Text(REMINDER_BULLET, style=ThemeKey.REMINDER),
|
|
62
64
|
Text("Todo hasn't been updated recently", ThemeKey.REMINDER),
|
|
63
65
|
)
|
|
64
66
|
parts.append(grid)
|
|
@@ -68,7 +70,7 @@ def render_developer_message(e: events.DeveloperMessageEvent) -> RenderableType:
|
|
|
68
70
|
for at_file in e.item.at_files:
|
|
69
71
|
if at_file.mentioned_in:
|
|
70
72
|
grid.add_row(
|
|
71
|
-
Text(
|
|
73
|
+
Text(REMINDER_BULLET, style=ThemeKey.REMINDER),
|
|
72
74
|
Text.assemble(
|
|
73
75
|
(f"{at_file.operation} ", ThemeKey.REMINDER),
|
|
74
76
|
render_path(at_file.path, ThemeKey.REMINDER_BOLD),
|
|
@@ -78,7 +80,7 @@ def render_developer_message(e: events.DeveloperMessageEvent) -> RenderableType:
|
|
|
78
80
|
)
|
|
79
81
|
else:
|
|
80
82
|
grid.add_row(
|
|
81
|
-
Text(
|
|
83
|
+
Text(REMINDER_BULLET, style=ThemeKey.REMINDER),
|
|
82
84
|
Text.assemble(
|
|
83
85
|
(f"{at_file.operation} ", ThemeKey.REMINDER),
|
|
84
86
|
render_path(at_file.path, ThemeKey.REMINDER_BOLD),
|
|
@@ -89,7 +91,7 @@ def render_developer_message(e: events.DeveloperMessageEvent) -> RenderableType:
|
|
|
89
91
|
if uic := e.item.user_image_count:
|
|
90
92
|
grid = create_grid()
|
|
91
93
|
grid.add_row(
|
|
92
|
-
Text(
|
|
94
|
+
Text(REMINDER_BULLET, style=ThemeKey.REMINDER),
|
|
93
95
|
Text(f"Attached {uic} image{'s' if uic > 1 else ''}", style=ThemeKey.REMINDER),
|
|
94
96
|
)
|
|
95
97
|
parts.append(grid)
|
|
@@ -97,7 +99,7 @@ def render_developer_message(e: events.DeveloperMessageEvent) -> RenderableType:
|
|
|
97
99
|
if sn := e.item.skill_name:
|
|
98
100
|
grid = create_grid()
|
|
99
101
|
grid.add_row(
|
|
100
|
-
Text(
|
|
102
|
+
Text(REMINDER_BULLET, style=ThemeKey.REMINDER),
|
|
101
103
|
Text.assemble(
|
|
102
104
|
("Activated skill ", ThemeKey.REMINDER),
|
|
103
105
|
(sn, ThemeKey.REMINDER_BOLD),
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import html
|
|
4
|
+
import importlib.resources
|
|
5
|
+
from functools import lru_cache
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
|
|
8
|
+
from klaude_code import const
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def artifacts_dir() -> Path:
|
|
12
|
+
return Path(const.TOOL_OUTPUT_TRUNCATION_DIR) / "mermaid"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@lru_cache(maxsize=1)
|
|
16
|
+
def load_template() -> str:
|
|
17
|
+
template_file = importlib.resources.files("klaude_code.session.templates").joinpath("mermaid_viewer.html")
|
|
18
|
+
return template_file.read_text(encoding="utf-8")
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def ensure_viewer_file(*, code: str, link: str, tool_call_id: str) -> Path | None:
|
|
22
|
+
"""Create a local HTML viewer with large preview + editor."""
|
|
23
|
+
|
|
24
|
+
if not tool_call_id:
|
|
25
|
+
return None
|
|
26
|
+
|
|
27
|
+
safe_id = tool_call_id.replace("/", "_")
|
|
28
|
+
path = artifacts_dir() / f"mermaid-viewer-{safe_id}.html"
|
|
29
|
+
if path.exists():
|
|
30
|
+
return path
|
|
31
|
+
|
|
32
|
+
try:
|
|
33
|
+
path.parent.mkdir(parents=True, exist_ok=True)
|
|
34
|
+
|
|
35
|
+
escaped_code = html.escape(code)
|
|
36
|
+
escaped_view_link = html.escape(link, quote=True)
|
|
37
|
+
escaped_edit_link = html.escape(link.replace("/view#pako:", "/edit#pako:"), quote=True)
|
|
38
|
+
|
|
39
|
+
template = load_template()
|
|
40
|
+
content = (
|
|
41
|
+
template.replace("__KLAUDE_VIEW_LINK__", escaped_view_link)
|
|
42
|
+
.replace("__KLAUDE_EDIT_LINK__", escaped_edit_link)
|
|
43
|
+
.replace("__KLAUDE_CODE__", escaped_code)
|
|
44
|
+
)
|
|
45
|
+
path.write_text(content, encoding="utf-8")
|
|
46
|
+
except OSError:
|
|
47
|
+
return None
|
|
48
|
+
|
|
49
|
+
return path
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def build_viewer(*, code: str, link: str, tool_call_id: str) -> Path | None:
|
|
53
|
+
"""Create a local Mermaid viewer HTML file.
|
|
54
|
+
"""
|
|
55
|
+
|
|
56
|
+
if not code:
|
|
57
|
+
return None
|
|
58
|
+
return ensure_viewer_file(code=code, link=link, tool_call_id=tool_call_id)
|
|
@@ -6,12 +6,14 @@ from rich import box
|
|
|
6
6
|
from rich.console import Group, RenderableType
|
|
7
7
|
from rich.padding import Padding
|
|
8
8
|
from rich.panel import Panel
|
|
9
|
+
from rich.style import Style
|
|
9
10
|
from rich.text import Text
|
|
10
11
|
|
|
11
12
|
from klaude_code import const
|
|
12
13
|
from klaude_code.protocol import events, model, tools
|
|
13
14
|
from klaude_code.protocol.sub_agent import is_sub_agent_tool as _is_sub_agent_tool
|
|
14
15
|
from klaude_code.ui.renderers import diffs as r_diffs
|
|
16
|
+
from klaude_code.ui.renderers import mermaid_viewer as r_mermaid_viewer
|
|
15
17
|
from klaude_code.ui.renderers.common import create_grid, truncate_display
|
|
16
18
|
from klaude_code.ui.rich.markdown import NoInsetMarkdown
|
|
17
19
|
from klaude_code.ui.rich.theme import ThemeKey
|
|
@@ -19,13 +21,13 @@ from klaude_code.ui.rich.theme import ThemeKey
|
|
|
19
21
|
# Tool markers (Unicode symbols for UI display)
|
|
20
22
|
MARK_GENERIC = "⚒"
|
|
21
23
|
MARK_BASH = "$"
|
|
22
|
-
MARK_PLAN = "
|
|
23
|
-
MARK_READ = "
|
|
24
|
+
MARK_PLAN = "◈"
|
|
25
|
+
MARK_READ = "→"
|
|
24
26
|
MARK_EDIT = "±"
|
|
25
27
|
MARK_WRITE = "+"
|
|
26
28
|
MARK_MERMAID = "⧉"
|
|
27
|
-
MARK_WEB_FETCH = "
|
|
28
|
-
MARK_WEB_SEARCH = ""
|
|
29
|
+
MARK_WEB_FETCH = "→"
|
|
30
|
+
MARK_WEB_SEARCH = "✱"
|
|
29
31
|
MARK_DONE = "✔"
|
|
30
32
|
MARK_SKILL = "✪"
|
|
31
33
|
|
|
@@ -351,6 +353,36 @@ def _truncate_url(url: str, max_length: int = 400) -> str:
|
|
|
351
353
|
return display_url[: max_length - 3] + "..."
|
|
352
354
|
|
|
353
355
|
|
|
356
|
+
def _render_mermaid_viewer_link(
|
|
357
|
+
tr: events.ToolResultEvent,
|
|
358
|
+
link_info: model.MermaidLinkUIExtra,
|
|
359
|
+
*,
|
|
360
|
+
use_osc8: bool,
|
|
361
|
+
) -> RenderableType:
|
|
362
|
+
viewer_path = r_mermaid_viewer.build_viewer(code=link_info.code, link=link_info.link, tool_call_id=tr.tool_call_id)
|
|
363
|
+
if viewer_path is None:
|
|
364
|
+
return Text(link_info.link, style=ThemeKey.TOOL_PARAM_FILE_PATH, overflow="fold")
|
|
365
|
+
|
|
366
|
+
display_path = str(viewer_path)
|
|
367
|
+
|
|
368
|
+
file_url = ""
|
|
369
|
+
if use_osc8:
|
|
370
|
+
try:
|
|
371
|
+
file_url = viewer_path.resolve().as_uri()
|
|
372
|
+
except ValueError:
|
|
373
|
+
file_url = f"file://{viewer_path.as_posix()}"
|
|
374
|
+
|
|
375
|
+
rendered = Text.assemble(("saved in:", ThemeKey.TOOL_PARAM), " ")
|
|
376
|
+
start = len(rendered)
|
|
377
|
+
rendered.append(display_path, ThemeKey.TOOL_PARAM_FILE_PATH)
|
|
378
|
+
end = len(rendered)
|
|
379
|
+
|
|
380
|
+
if use_osc8 and file_url:
|
|
381
|
+
rendered.stylize(Style(link=file_url), start, end)
|
|
382
|
+
|
|
383
|
+
return rendered
|
|
384
|
+
|
|
385
|
+
|
|
354
386
|
def render_web_fetch_tool_call(arguments: str) -> RenderableType:
|
|
355
387
|
grid = create_grid()
|
|
356
388
|
tool_name_column = Text.assemble((MARK_WEB_FETCH, ThemeKey.TOOL_MARK), " ", ("Fetch", ThemeKey.TOOL_NAME))
|
|
@@ -411,17 +443,9 @@ def render_mermaid_tool_result(tr: events.ToolResultEvent) -> RenderableType:
|
|
|
411
443
|
if link_info is None:
|
|
412
444
|
return render_generic_tool_result(tr.result, is_error=tr.status == "error")
|
|
413
445
|
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
# For terminals that don't support OSC 8, show a hint to use /export
|
|
419
|
-
hint_text = Text.assemble(
|
|
420
|
-
("Use ", ThemeKey.TOOL_RESULT),
|
|
421
|
-
("/export", ThemeKey.TOOL_RESULT_BOLD),
|
|
422
|
-
(" to view the diagram.", ThemeKey.TOOL_RESULT),
|
|
423
|
-
)
|
|
424
|
-
return Padding.indent(hint_text, level=2)
|
|
446
|
+
use_osc8 = supports_osc8_hyperlinks()
|
|
447
|
+
viewer = _render_mermaid_viewer_link(tr, link_info, use_osc8=use_osc8)
|
|
448
|
+
return Padding.indent(viewer, level=2)
|
|
425
449
|
|
|
426
450
|
|
|
427
451
|
def _extract_truncation(
|
klaude_code/ui/rich/theme.py
CHANGED
|
@@ -139,6 +139,8 @@ class ThemeKey(str, Enum):
|
|
|
139
139
|
USER_INPUT_AT_PATTERN = "user.at_pattern"
|
|
140
140
|
USER_INPUT_SLASH_COMMAND = "user.slash_command"
|
|
141
141
|
USER_INPUT_SKILL = "user.skill"
|
|
142
|
+
# ASSISTANT
|
|
143
|
+
ASSISTANT_MESSAGE_MARK = "assistant.message_mark"
|
|
142
144
|
# REMINDER
|
|
143
145
|
REMINDER = "reminder"
|
|
144
146
|
REMINDER_BOLD = "reminder.bold"
|
|
@@ -179,6 +181,7 @@ class ThemeKey(str, Enum):
|
|
|
179
181
|
RESUME_FLAG = "resume.flag"
|
|
180
182
|
RESUME_INFO = "resume.info"
|
|
181
183
|
# CONFIGURATION DISPLAY
|
|
184
|
+
CONFIG_PROVIDER = "config.provider"
|
|
182
185
|
CONFIG_TABLE_HEADER = "config.table.header"
|
|
183
186
|
CONFIG_STATUS_OK = "config.status.ok"
|
|
184
187
|
CONFIG_STATUS_PRIMARY = "config.status.primary"
|
|
@@ -228,6 +231,8 @@ def get_theme(theme: str | None = None) -> Themes:
|
|
|
228
231
|
ThemeKey.USER_INPUT_AT_PATTERN.value: palette.purple,
|
|
229
232
|
ThemeKey.USER_INPUT_SLASH_COMMAND.value: "bold reverse " + palette.blue,
|
|
230
233
|
ThemeKey.USER_INPUT_SKILL.value: "bold reverse " + palette.green,
|
|
234
|
+
# ASSISTANT
|
|
235
|
+
ThemeKey.ASSISTANT_MESSAGE_MARK.value: "bold",
|
|
231
236
|
# METADATA
|
|
232
237
|
ThemeKey.METADATA.value: palette.lavender,
|
|
233
238
|
ThemeKey.METADATA_DIM.value: "dim " + palette.lavender,
|
|
@@ -285,6 +290,7 @@ def get_theme(theme: str | None = None) -> Themes:
|
|
|
285
290
|
ThemeKey.CONFIG_ITEM_NAME.value: palette.cyan,
|
|
286
291
|
ThemeKey.CONFIG_PARAM_LABEL.value: palette.grey1,
|
|
287
292
|
ThemeKey.CONFIG_PANEL_BORDER.value: palette.grey3,
|
|
293
|
+
ThemeKey.CONFIG_PROVIDER.value: palette.cyan + " bold",
|
|
288
294
|
}
|
|
289
295
|
),
|
|
290
296
|
markdown_theme=Theme(
|
|
@@ -7,9 +7,9 @@ klaude_code/auth/codex/oauth.py,sha256=4hAGZ2Dv87NC3loEws7U5yNyPyIrryGm5YXY2FkHe
|
|
|
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
9
|
klaude_code/cli/auth_cmd.py,sha256=UWMHjn9xZp2o8OZc-x8y9MnkZgRWOkFXk05iKJYcySE,2561
|
|
10
|
-
klaude_code/cli/config_cmd.py,sha256
|
|
10
|
+
klaude_code/cli/config_cmd.py,sha256=hlvslLNgdRHkokq1Pnam0XOdR3jqO3K0vNLqtWnPa6Q,3261
|
|
11
11
|
klaude_code/cli/debug.py,sha256=cPQ7cgATcJTyBIboleW_Q4Pa_t-tGG6x-Hj3woeeuHE,2669
|
|
12
|
-
klaude_code/cli/list_model.py,sha256=
|
|
12
|
+
klaude_code/cli/list_model.py,sha256=uA0PNR1RjUK7BCKu2Q0Sh2xB9j9Gpwp_bsWhroTW6JY,9260
|
|
13
13
|
klaude_code/cli/main.py,sha256=td_nMg0AyFDdyh3TLi7WCpi9DyAehduI4jZSOAaCNXI,12857
|
|
14
14
|
klaude_code/cli/runtime.py,sha256=EGlfr839OWAJjLSfYHnTxwG7W-IxkmktgDOj8npKkFo,15219
|
|
15
15
|
klaude_code/cli/self_update.py,sha256=iGuj0i869Zi0M70W52-VVLxZp90ISr30fQpZkHGMK2o,8059
|
|
@@ -32,11 +32,11 @@ klaude_code/command/release_notes_cmd.py,sha256=FIrBRfKTlXEp8mBh15buNjgOrl_GMX7F
|
|
|
32
32
|
klaude_code/command/status_cmd.py,sha256=sYmzfex7RVhgrBCjRyD8fsZ6ioZvjVzQ_-FvmcsA7fo,5365
|
|
33
33
|
klaude_code/command/terminal_setup_cmd.py,sha256=SivM1gX_anGY_8DCQNFZ5VblFqt4sVgCMEWPRlo6K5w,10911
|
|
34
34
|
klaude_code/command/thinking_cmd.py,sha256=8EdSN6huXihM5NHJEryZLA7CkgRT7mZgMVTJsT1-x8U,9108
|
|
35
|
-
klaude_code/config/__init__.py,sha256=
|
|
35
|
+
klaude_code/config/__init__.py,sha256=Qe1BeMekBfO2-Zd30x33lB70hdM1QQZGrp4DbWSQ-II,353
|
|
36
36
|
klaude_code/config/assets/__init__.py,sha256=uMUfmXT3I-gYiI-HVr1DrE60mx5cY1o8V7SYuGqOmvY,32
|
|
37
37
|
klaude_code/config/assets/builtin_config.yaml,sha256=8_ZFxtYirfDvZ5Za9mO7ukTjKjlApfxrdn26cwAiQmI,5352
|
|
38
38
|
klaude_code/config/builtin_config.py,sha256=RgbawLV4yKk1IhJsQn04RkitDyLLhCwTqQ3nJkdvHGI,1113
|
|
39
|
-
klaude_code/config/config.py,sha256=
|
|
39
|
+
klaude_code/config/config.py,sha256=rTMU-7IYl_fmthB4LsrCaSgUVttNSw7Agif8XRCmU1g,16331
|
|
40
40
|
klaude_code/config/select_model.py,sha256=vj4Qs1cl9-u6ucAjDwDvoODmlplwdYo1U57jUcKPya4,7035
|
|
41
41
|
klaude_code/const.py,sha256=Xc6UKku2sGQE05mvPNCpBbKK205vJrS9CaNAeKvu1AA,4612
|
|
42
42
|
klaude_code/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -94,7 +94,7 @@ klaude_code/core/tool/tool_runner.py,sha256=A_RviRFr8kF6TjdGOzdgCIingeyJLBxNbZpc
|
|
|
94
94
|
klaude_code/core/tool/truncation.py,sha256=YPKzelOM45rHW_OkcfX5_Ojg_pPi8yDZu7lSnwl9b_k,7334
|
|
95
95
|
klaude_code/core/tool/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
96
96
|
klaude_code/core/tool/web/mermaid_tool.md,sha256=vvPSWxbY3P_cBpHh6AM8Je9JJoMY4FBTJzoteEkwuDU,2095
|
|
97
|
-
klaude_code/core/tool/web/mermaid_tool.py,sha256=
|
|
97
|
+
klaude_code/core/tool/web/mermaid_tool.py,sha256=Dbf9zjXCgQzwGNWC5EXE9Mt6ko5BZB6DN0Bc2r85sP8,2594
|
|
98
98
|
klaude_code/core/tool/web/web_fetch_tool.md,sha256=jIrW-EAmfl50bBevcfioQ3Vrg8kWlHSut8ze_sRgRGw,486
|
|
99
99
|
klaude_code/core/tool/web/web_fetch_tool.py,sha256=7WzOsAHdfijROOlk3JixtHUV1D2Cuwnf-AhoznrqATw,8551
|
|
100
100
|
klaude_code/core/tool/web/web_search_tool.md,sha256=l5gGPx-fXHFel1zLBljm8isy9pwEYXGrq5cFzzw1VBw,1135
|
|
@@ -126,7 +126,7 @@ klaude_code/protocol/__init__.py,sha256=aGUgzhYqvhuT3Mk2vj7lrHGriH4h9TSbqV1RsRFA
|
|
|
126
126
|
klaude_code/protocol/commands.py,sha256=RjeZYsHxanDaEdBGvw8xt1nBFLiqfXD7I-kPqKFjTdU,678
|
|
127
127
|
klaude_code/protocol/events.py,sha256=KUMf1rLNdHQO9cZiQ9Pa1VsKkP1PTMbUkp18bu_jGy8,3935
|
|
128
128
|
klaude_code/protocol/llm_param.py,sha256=cb4ubLq21PIsMOC8WJb0aid12z_sT1b7FsbNJMr-jLg,4255
|
|
129
|
-
klaude_code/protocol/model.py,sha256=
|
|
129
|
+
klaude_code/protocol/model.py,sha256=zz1DeSkpUWDT-OZBlypaGWA4z78TSeefA-Tj8mJMHp4,14257
|
|
130
130
|
klaude_code/protocol/op.py,sha256=zG8AGFcTx1vIZFN0lNZjIjucjmDYM4eVOR7tRiLofF4,4589
|
|
131
131
|
klaude_code/protocol/op_handler.py,sha256=feTMdrz2QBwnjdv6ndizTinbBA9HFeH4oiBDeQBRKoY,1749
|
|
132
132
|
klaude_code/protocol/sub_agent/__init__.py,sha256=Abap5lPLgnSCQsVD3axfeqnj2UtxOcDLGX8e9HugfSU,3964
|
|
@@ -137,11 +137,12 @@ klaude_code/protocol/sub_agent/web.py,sha256=Z5vUM367kz8CIexN6UVPG4XxzVOaaRek-Ga
|
|
|
137
137
|
klaude_code/protocol/tools.py,sha256=OpGCr47ARKaCHcIlljhEN-p-2h4djgbP5jtfTIoKB-A,359
|
|
138
138
|
klaude_code/session/__init__.py,sha256=oXcDA5w-gJCbzmlF8yuWy3ezIW9DgFBNUs-gJHUJ-Rc,121
|
|
139
139
|
klaude_code/session/codec.py,sha256=ummbqT7t6uHHXtaS9lOkyhi1h0YpMk7SNSms8DyGAHU,2015
|
|
140
|
-
klaude_code/session/export.py,sha256=
|
|
140
|
+
klaude_code/session/export.py,sha256=dj-IRUNtXL8uONDj9bsEXcEHKyeHY7lIcXv80yP88h4,31022
|
|
141
141
|
klaude_code/session/selector.py,sha256=uJQTQAw1ce9LzNOswSFEPkB7_PTzoJRXbA9rwK8hvdQ,2913
|
|
142
|
-
klaude_code/session/session.py,sha256=
|
|
142
|
+
klaude_code/session/session.py,sha256=otWpPnCk5LGS5IW_zTdeXBtLdxbBlEK2jH5FnrOIpF4,16969
|
|
143
143
|
klaude_code/session/store.py,sha256=-e-lInCB3N1nFLlet7bipkmPk1PXmGthuMxv5z3hg5o,6953
|
|
144
144
|
klaude_code/session/templates/export_session.html,sha256=bA27AkcC7DQRoWmcMBeaR8WOx1z76hezEDf0aYH-0HQ,119780
|
|
145
|
+
klaude_code/session/templates/mermaid_viewer.html,sha256=lOkETxlctX1C1WJtS1wFw6KhNQmemxwJZFpXDSjlMOk,27842
|
|
145
146
|
klaude_code/skill/__init__.py,sha256=yeWeCfRGPOhT4mx_pjdo4fLondQ_Vx0edBtnFusLhls,839
|
|
146
147
|
klaude_code/skill/assets/deslop/SKILL.md,sha256=XMBER6gOyYnZof_u7l30CZSzmDcINe8XP-n_loah0EQ,873
|
|
147
148
|
klaude_code/skill/assets/dev-docs/SKILL.md,sha256=eHI9v44KZAOcptlnAVp2aq2Ms7WGhncm-zmGUPGmhU8,3810
|
|
@@ -167,20 +168,21 @@ klaude_code/ui/modes/repl/__init__.py,sha256=_0II73jlz5JUtvJsZ9sGRJzeHIQyJJpaI0e
|
|
|
167
168
|
klaude_code/ui/modes/repl/clipboard.py,sha256=ZCpk7kRSXGhh0Q_BWtUUuSYT7ZOqRjAoRcg9T9n48Wo,5137
|
|
168
169
|
klaude_code/ui/modes/repl/completers.py,sha256=AElBFnWculNsSadom7ScnKf-P_vilC4V5AUn2qpRkXE,30005
|
|
169
170
|
klaude_code/ui/modes/repl/display.py,sha256=06wawOHWO2ItEA9EIEh97p3GDID7TJhAtpaA03nPQXs,2335
|
|
170
|
-
klaude_code/ui/modes/repl/event_handler.py,sha256=
|
|
171
|
+
klaude_code/ui/modes/repl/event_handler.py,sha256=ksQYSjHlTTAPfVdk6fGZLzRRKNozDUUg38c3Tgp3lWw,25775
|
|
171
172
|
klaude_code/ui/modes/repl/input_prompt_toolkit.py,sha256=5OqFRphfTvy46M7lrX7CCLSYGRSmXAfJzGJnXQR-NX4,7748
|
|
172
173
|
klaude_code/ui/modes/repl/key_bindings.py,sha256=gc7b0s5S_mYC-__OJMtNcx-JxSm1DKof-hodj2XKfiY,7896
|
|
173
174
|
klaude_code/ui/modes/repl/renderer.py,sha256=7cum6SuKSuuBePDSyk4UvWs6q5dwgLA0NrJZ3eD9tHw,15902
|
|
174
175
|
klaude_code/ui/renderers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
175
|
-
klaude_code/ui/renderers/assistant.py,sha256=
|
|
176
|
+
klaude_code/ui/renderers/assistant.py,sha256=7iu5zlHR7JGviHs2eA25Dsbd7ZkzCR2_0XzkqMPVxDI,862
|
|
176
177
|
klaude_code/ui/renderers/common.py,sha256=_EEgx7GTWk2eV8wEGcRcMmkeOBCMU9kjF2ZneM03V3s,2535
|
|
177
|
-
klaude_code/ui/renderers/developer.py,sha256=
|
|
178
|
+
klaude_code/ui/renderers/developer.py,sha256=RrJsZphGdjuphIuTDnU1ivJ6tc-a3ndBvuyU17MQSQs,7776
|
|
178
179
|
klaude_code/ui/renderers/diffs.py,sha256=uLpgYTudH38wucozoUw4xbPWMC6uYTQTaDTHcg-0zvM,10418
|
|
179
180
|
klaude_code/ui/renderers/errors.py,sha256=-geQA6neIkeQK_m0jaboSdVHmO61qd9620lo1a029bU,656
|
|
181
|
+
klaude_code/ui/renderers/mermaid_viewer.py,sha256=49ZiaR5sb1363PJMbbos5d7A2xH2RKVIS6zM24JIRVA,1696
|
|
180
182
|
klaude_code/ui/renderers/metadata.py,sha256=_3OIAgnssoz05lq9t8Hm-3zlRWyfYzOTPSwG6guVKiE,8223
|
|
181
183
|
klaude_code/ui/renderers/sub_agent.py,sha256=g8QCFXTtFX_w8oTaGMYGuy6u5KqbFMlvzWofER0hGKk,5946
|
|
182
184
|
klaude_code/ui/renderers/thinking.py,sha256=nwKotPFS3WInsdrHFquqOHyvR8dTEKZ0JS5SMKJ_GgA,1946
|
|
183
|
-
klaude_code/ui/renderers/tools.py,sha256=
|
|
185
|
+
klaude_code/ui/renderers/tools.py,sha256=j-OEbmQPEGBxXNrRmhph23aRXsFR37YQHiLJUmXZMGU,24394
|
|
184
186
|
klaude_code/ui/renderers/user_input.py,sha256=e2hZS7UUnzQuQ6UqzSKRDkFJMkKTLUoub1JclHMX40g,3941
|
|
185
187
|
klaude_code/ui/rich/__init__.py,sha256=zEZjnHR3Fnv_sFMxwIMjoJfwDoC4GRGv3lHJzAGRq_o,236
|
|
186
188
|
klaude_code/ui/rich/cjk_wrap.py,sha256=ncmifgTwF6q95iayHQyazGbntt7BRQb_Ed7aXc8JU6Y,7551
|
|
@@ -190,7 +192,7 @@ klaude_code/ui/rich/markdown.py,sha256=ltcm4qVX6fsqUNkPWeOwX636FsQ6-gST6uLLcXAl9
|
|
|
190
192
|
klaude_code/ui/rich/quote.py,sha256=tZcxN73SfDBHF_qk0Jkh9gWBqPBn8VLp9RF36YRdKEM,1123
|
|
191
193
|
klaude_code/ui/rich/searchable_text.py,sha256=DCVZgEFv7_ergAvT2v7XrfQAUXUzhmAwuVAchlIx8RY,2448
|
|
192
194
|
klaude_code/ui/rich/status.py,sha256=QHg4oWmPSQH19H81vOFpImEqWyDtAbIXjuCGsuDjBPA,9278
|
|
193
|
-
klaude_code/ui/rich/theme.py,sha256=
|
|
195
|
+
klaude_code/ui/rich/theme.py,sha256=4y9suVR_ILx9w6iq8VYfPlCav1tFMqXlfbSH6sMotdA,13664
|
|
194
196
|
klaude_code/ui/terminal/__init__.py,sha256=GIMnsEcIAGT_vBHvTlWEdyNmAEpruyscUA6M_j3GQZU,1412
|
|
195
197
|
klaude_code/ui/terminal/color.py,sha256=jvVbuysf5pnI0uAjUVeyW2HwU58dutTg2msykbu2w4Y,7197
|
|
196
198
|
klaude_code/ui/terminal/control.py,sha256=WhkqEWdtzUO4iWULp-iI9VazAWmzzW52qTQXk-4Dr4s,4922
|
|
@@ -198,7 +200,7 @@ klaude_code/ui/terminal/notifier.py,sha256=wkRM66d98Oh6PujnN4bB7NiQxIYEHqQXverMK
|
|
|
198
200
|
klaude_code/ui/terminal/progress_bar.py,sha256=MDnhPbqCnN4GDgLOlxxOEVZPDwVC_XL2NM5sl1MFNcQ,2133
|
|
199
201
|
klaude_code/ui/utils/__init__.py,sha256=YEsCLjbCPaPza-UXTPUMTJTrc9BmNBUP5CbFWlshyOQ,15
|
|
200
202
|
klaude_code/ui/utils/common.py,sha256=tqHqwgLtAyP805kwRFyoAL4EgMutcNb3Y-GAXJ4IeuM,2263
|
|
201
|
-
klaude_code-1.2.
|
|
202
|
-
klaude_code-1.2.
|
|
203
|
-
klaude_code-1.2.
|
|
204
|
-
klaude_code-1.2.
|
|
203
|
+
klaude_code-1.2.29.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
|
|
204
|
+
klaude_code-1.2.29.dist-info/entry_points.txt,sha256=kkXIXedaTOtjXPr2rVjRVVXZYlFUcBHELaqmyVlWUFA,92
|
|
205
|
+
klaude_code-1.2.29.dist-info/METADATA,sha256=AM4qoSRDwJ6fZq7HRJ6a7wNuN_BjGdoUAm_0rVxr6i8,9126
|
|
206
|
+
klaude_code-1.2.29.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|