klaude-code 2.5.1__py3-none-any.whl → 2.5.2__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/.DS_Store +0 -0
- klaude_code/cli/list_model.py +8 -0
- klaude_code/cli/main.py +1 -1
- klaude_code/config/assets/builtin_config.yaml +0 -2
- klaude_code/config/config.py +30 -7
- klaude_code/config/model_matcher.py +2 -2
- klaude_code/config/sub_agent_model_helper.py +1 -1
- klaude_code/core/agent_profile.py +1 -0
- klaude_code/core/executor.py +4 -0
- klaude_code/core/loaded_skills.py +36 -0
- klaude_code/core/tool/context.py +1 -3
- klaude_code/core/turn.py +0 -6
- klaude_code/llm/anthropic/client.py +23 -11
- klaude_code/protocol/events/system.py +3 -0
- klaude_code/protocol/llm_param.py +1 -0
- klaude_code/session/export.py +259 -91
- klaude_code/session/templates/export_session.html +141 -59
- klaude_code/skill/.DS_Store +0 -0
- klaude_code/skill/assets/.DS_Store +0 -0
- klaude_code/skill/loader.py +1 -0
- klaude_code/tui/command/refresh_cmd.py +2 -0
- klaude_code/tui/components/metadata.py +6 -6
- klaude_code/tui/components/rich/markdown.py +8 -0
- klaude_code/tui/components/welcome.py +32 -0
- klaude_code/tui/renderer.py +0 -1
- {klaude_code-2.5.1.dist-info → klaude_code-2.5.2.dist-info}/METADATA +1 -1
- {klaude_code-2.5.1.dist-info → klaude_code-2.5.2.dist-info}/RECORD +29 -26
- klaude_code/skill/assets/jj-workspace/SKILL.md +0 -20
- {klaude_code-2.5.1.dist-info → klaude_code-2.5.2.dist-info}/WHEEL +0 -0
- {klaude_code-2.5.1.dist-info → klaude_code-2.5.2.dist-info}/entry_points.txt +0 -0
|
@@ -55,15 +55,15 @@ def _render_task_metadata_block(
|
|
|
55
55
|
token_text.append("↑", style=ThemeKey.METADATA_DIM)
|
|
56
56
|
token_text.append(format_number(metadata.usage.input_tokens), style=ThemeKey.METADATA)
|
|
57
57
|
if metadata.usage.cached_tokens > 0:
|
|
58
|
-
token_text.append("
|
|
58
|
+
token_text.append(" ◎", style=ThemeKey.METADATA_DIM)
|
|
59
59
|
token_text.append(format_number(metadata.usage.cached_tokens), style=ThemeKey.METADATA)
|
|
60
|
-
token_text.append("
|
|
60
|
+
token_text.append(" ↓", style=ThemeKey.METADATA_DIM)
|
|
61
61
|
token_text.append(format_number(metadata.usage.output_tokens), style=ThemeKey.METADATA)
|
|
62
62
|
if metadata.usage.reasoning_tokens > 0:
|
|
63
|
-
token_text.append("
|
|
63
|
+
token_text.append(" ∿", style=ThemeKey.METADATA_DIM)
|
|
64
64
|
token_text.append(format_number(metadata.usage.reasoning_tokens), style=ThemeKey.METADATA)
|
|
65
65
|
if metadata.usage.image_tokens > 0:
|
|
66
|
-
token_text.append("
|
|
66
|
+
token_text.append(" ⌗ ", style=ThemeKey.METADATA_DIM)
|
|
67
67
|
token_text.append(format_number(metadata.usage.image_tokens), style=ThemeKey.METADATA)
|
|
68
68
|
parts.append(token_text)
|
|
69
69
|
|
|
@@ -130,8 +130,8 @@ def _render_task_metadata_block(
|
|
|
130
130
|
)
|
|
131
131
|
|
|
132
132
|
if parts:
|
|
133
|
-
content.append_text(Text("
|
|
134
|
-
content.append_text(Text("
|
|
133
|
+
content.append_text(Text(" ", style=ThemeKey.METADATA_DIM))
|
|
134
|
+
content.append_text(Text(" ", style=ThemeKey.METADATA_DIM).join(parts))
|
|
135
135
|
|
|
136
136
|
grid.add_row(mark, content)
|
|
137
137
|
return grid if not is_sub_agent else Padding(grid, (0, 0, 0, 2))
|
|
@@ -290,6 +290,14 @@ class MarkdownStream:
|
|
|
290
290
|
|
|
291
291
|
stable_source = "".join(lines[:stable_line])
|
|
292
292
|
live_source = "".join(lines[stable_line:])
|
|
293
|
+
|
|
294
|
+
# If the "stable" prefix is only whitespace and we haven't stabilized any
|
|
295
|
+
# non-whitespace content yet, keep everything in the live buffer.
|
|
296
|
+
#
|
|
297
|
+
# This avoids cases where marks/indentation should apply to the first
|
|
298
|
+
# visible line, but would be suppressed because stable_line > 0.
|
|
299
|
+
if min_stable_line == 0 and stable_source.strip() == "":
|
|
300
|
+
return "", text, 0
|
|
293
301
|
return stable_source, live_source, stable_line
|
|
294
302
|
|
|
295
303
|
def render_ansi(self, text: str, *, apply_mark: bool) -> str:
|
|
@@ -59,6 +59,38 @@ def render_welcome(e: events.WelcomeEvent) -> RenderableType:
|
|
|
59
59
|
)
|
|
60
60
|
)
|
|
61
61
|
|
|
62
|
+
# Loaded skills summary is provided by core via WelcomeEvent to keep TUI decoupled.
|
|
63
|
+
loaded_skills = e.loaded_skills or {}
|
|
64
|
+
user_skills = loaded_skills.get("user") or []
|
|
65
|
+
project_skills = loaded_skills.get("project") or []
|
|
66
|
+
system_skills = loaded_skills.get("system") or []
|
|
67
|
+
|
|
68
|
+
skill_groups: list[tuple[str, list[str]]] = []
|
|
69
|
+
if user_skills:
|
|
70
|
+
skill_groups.append(("user", user_skills))
|
|
71
|
+
if project_skills:
|
|
72
|
+
skill_groups.append(("project", project_skills))
|
|
73
|
+
if system_skills:
|
|
74
|
+
skill_groups.append(("system", system_skills))
|
|
75
|
+
|
|
76
|
+
if skill_groups:
|
|
77
|
+
panel_content.append_text(Text("\n\n", style=ThemeKey.WELCOME_INFO))
|
|
78
|
+
panel_content.append_text(Text("skills", style=ThemeKey.WELCOME_HIGHLIGHT))
|
|
79
|
+
|
|
80
|
+
label_width = len("[project]")
|
|
81
|
+
|
|
82
|
+
for i, (group_name, skills) in enumerate(skill_groups):
|
|
83
|
+
is_last = i == len(skill_groups) - 1
|
|
84
|
+
prefix = "└─ " if is_last else "├─ "
|
|
85
|
+
label = f"[{group_name}]"
|
|
86
|
+
panel_content.append_text(
|
|
87
|
+
Text.assemble(
|
|
88
|
+
("\n", ThemeKey.WELCOME_INFO),
|
|
89
|
+
(prefix, ThemeKey.LINES),
|
|
90
|
+
(f"{label.ljust(label_width)} {', '.join(skills)}", ThemeKey.WELCOME_INFO),
|
|
91
|
+
)
|
|
92
|
+
)
|
|
93
|
+
|
|
62
94
|
border_style = ThemeKey.WELCOME_DEBUG_BORDER if debug_mode else ThemeKey.LINES
|
|
63
95
|
|
|
64
96
|
if e.show_klaude_code_info:
|
klaude_code/tui/renderer.py
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
klaude_code/.DS_Store,sha256=cLWFbSgdN0bXEd3_tz93BJSposEPafUBqSr7t-3lPbA,6148
|
|
1
2
|
klaude_code/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
3
|
klaude_code/app/__init__.py,sha256=7mgWpN9SFDqe8AW44bBn9M19nVsBcZURrsGB_8l2hrU,264
|
|
3
4
|
klaude_code/app/runtime.py,sha256=St5ZVo9snvc90R5fG4OojlWwtlRSB66AZAYfZD7AOCE,5982
|
|
@@ -17,23 +18,24 @@ klaude_code/cli/auth_cmd.py,sha256=4h59A0UrNBCAf_IL_tVU3GY4kxraoab3CTjgCdKvJGM,6
|
|
|
17
18
|
klaude_code/cli/config_cmd.py,sha256=ZDNt1qtXbiWtFJBIaqtfqKrGHXQ1X-NHBeu1k1DoO1o,3391
|
|
18
19
|
klaude_code/cli/cost_cmd.py,sha256=6bL22amGEB2gfCV9KXQfN5cZYyPL6J6JVIjV65_QjJo,12471
|
|
19
20
|
klaude_code/cli/debug.py,sha256=vEHOjObhrIHDAXk3q6cOgeW2NZxCx5AWM1rJ6FiJnVU,1901
|
|
20
|
-
klaude_code/cli/list_model.py,sha256=
|
|
21
|
-
klaude_code/cli/main.py,sha256=
|
|
21
|
+
klaude_code/cli/list_model.py,sha256=dzXwahAZZv8NHPD4pvOTLaTJTEWnCjS1B-K52n3OHOs,13603
|
|
22
|
+
klaude_code/cli/main.py,sha256=xhV2rVJnFFPeV9ikFVoK9mtRiQtAqgerwYd3EubWXHQ,8754
|
|
22
23
|
klaude_code/cli/self_update.py,sha256=mn1B7Xn1keQkbwoDURzsM2fFjorzJTNLlV-Y_NYa6fA,2708
|
|
23
24
|
klaude_code/cli/session_cmd.py,sha256=IyuSkqHOLldcm8qraJWJZEme9TY5Rfqmld9NmVJuHnc,3198
|
|
24
25
|
klaude_code/config/__init__.py,sha256=Qe1BeMekBfO2-Zd30x33lB70hdM1QQZGrp4DbWSQ-II,353
|
|
25
26
|
klaude_code/config/assets/__init__.py,sha256=uMUfmXT3I-gYiI-HVr1DrE60mx5cY1o8V7SYuGqOmvY,32
|
|
26
|
-
klaude_code/config/assets/builtin_config.yaml,sha256=
|
|
27
|
+
klaude_code/config/assets/builtin_config.yaml,sha256=2ixUe3VyIQtCGd_p4uKBPryg0oXyzPH6lW4TUmglORg,7162
|
|
27
28
|
klaude_code/config/builtin_config.py,sha256=1rHcFWmS0k6rXeIqR6sF_OgGXSbEd4ugh9bh2N6VSS0,1494
|
|
28
|
-
klaude_code/config/config.py,sha256=
|
|
29
|
-
klaude_code/config/model_matcher.py,sha256=
|
|
30
|
-
klaude_code/config/sub_agent_model_helper.py,sha256=
|
|
29
|
+
klaude_code/config/config.py,sha256=u9xVkWFkR5ZYSGNkQ-uLBE_ogSpxvncuvBu6pMMuR_g,25062
|
|
30
|
+
klaude_code/config/model_matcher.py,sha256=UCC0QLuQIeEtfHDi0g1JpM1iEjfNMDQEew9FW-MWErA,6159
|
|
31
|
+
klaude_code/config/sub_agent_model_helper.py,sha256=fI-OIZWFI4116qjalsZj2pIi0waPR1cXE-OKrVMFS6g,8064
|
|
31
32
|
klaude_code/config/thinking.py,sha256=RDWH8UYbeDoIKPXaCIcvVwPAh07Ntaq8w5Zn_fhm-Fk,9329
|
|
32
33
|
klaude_code/const.py,sha256=FFBwUI2DolPu4_XNzaODyWTr1dETr-JwMQnSTt4Kimc,11149
|
|
33
34
|
klaude_code/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
34
35
|
klaude_code/core/agent.py,sha256=5TNzzzHgKLKpEcFhaM0d136kaGUn_mESC8b1nLoxS2o,3913
|
|
35
|
-
klaude_code/core/agent_profile.py,sha256=
|
|
36
|
-
klaude_code/core/executor.py,sha256=
|
|
36
|
+
klaude_code/core/agent_profile.py,sha256=EAsAHj9Jd_JaL_ydr13I3uVoBN4RIm9zmKPn3H7NYu8,12817
|
|
37
|
+
klaude_code/core/executor.py,sha256=6-XELfwj14YsrSv4RH8xI5IMMDR_qmenyaUJuqdjjWM,33534
|
|
38
|
+
klaude_code/core/loaded_skills.py,sha256=5lxPzXx2uf9mNxwEu_Jt3qRoATa2jaMvFjBfWhgbaSk,1177
|
|
37
39
|
klaude_code/core/manager/__init__.py,sha256=hdIbpnYj6i18byiWjtJIm5l7NYYDQMvafw8fePVPydc,562
|
|
38
40
|
klaude_code/core/manager/llm_clients.py,sha256=X2oMFWgJcP0tK8GEtMMDYR3HyR6_H8FuyCqpzWF5x2k,871
|
|
39
41
|
klaude_code/core/manager/llm_clients_builder.py,sha256=_88MvbjNK-4s3wKTdzP-GmoUVGKyD88oWXZ7oqRWF8A,1902
|
|
@@ -51,7 +53,7 @@ klaude_code/core/prompts/prompt-sub-agent.md,sha256=dmmdsOenbAOfqG6FmdR88spOLZkX
|
|
|
51
53
|
klaude_code/core/reminders.py,sha256=SOSB1wZMPdCtCwTpvjUW5et-d0JcnUxF7lMg90CZnA4,24384
|
|
52
54
|
klaude_code/core/task.py,sha256=rAgulw45GT1NMhe2P5aLCdCnAa_hOZxKzEAaPYMc6Jk,13982
|
|
53
55
|
klaude_code/core/tool/__init__.py,sha256=ABUzLwQbBoZPirCcgYbI88GEtswfy1JBDkFUsGpQ-zc,1415
|
|
54
|
-
klaude_code/core/tool/context.py,sha256=
|
|
56
|
+
klaude_code/core/tool/context.py,sha256=lHMjbLE--WVek8gAPOvaHz4CdeRGzLXSusMyEdEU5ss,2961
|
|
55
57
|
klaude_code/core/tool/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
56
58
|
klaude_code/core/tool/file/_utils.py,sha256=OG4BE9WyJqzH8ilVCL3D9yvAcHk-r-L9snd-E8gO_io,967
|
|
57
59
|
klaude_code/core/tool/file/apply_patch.py,sha256=LZd3pYQ9ow_TxiFnqYuzD216HmvkLX6lW6BoMd9iQRs,17080
|
|
@@ -87,10 +89,10 @@ klaude_code/core/tool/web/web_fetch_tool.md,sha256=i0IwsZ6r9vAQeCpwDBtEGrWmHPzZk
|
|
|
87
89
|
klaude_code/core/tool/web/web_fetch_tool.py,sha256=jXbJTgpI_RvyXy5ac8qIrC-AKOUX1fJ3TpqXq_BfkS4,9596
|
|
88
90
|
klaude_code/core/tool/web/web_search_tool.md,sha256=l5gGPx-fXHFel1zLBljm8isy9pwEYXGrq5cFzzw1VBw,1135
|
|
89
91
|
klaude_code/core/tool/web/web_search_tool.py,sha256=ljkgXxP6L5nJnbYB_IOUtPUN9zA_h5hBD55lhNAja08,4293
|
|
90
|
-
klaude_code/core/turn.py,sha256
|
|
92
|
+
klaude_code/core/turn.py,sha256=-HPhkQrkIbiM-szZULnd3-2Zg2lrL6AkPV7ztS6Lb8g,17667
|
|
91
93
|
klaude_code/llm/__init__.py,sha256=b4AsqnrMIs0a5qR_ti6rZcHwFzAReTwOW96EqozEoSo,287
|
|
92
94
|
klaude_code/llm/anthropic/__init__.py,sha256=PWETvaeNAAX3ue0ww1uRUIxTJG0RpWiutkn7MlwKxBs,67
|
|
93
|
-
klaude_code/llm/anthropic/client.py,sha256=
|
|
95
|
+
klaude_code/llm/anthropic/client.py,sha256=asQofiC13FeScLROMxLtDnRSj0frqe6kPRFZUNE1gm0,16242
|
|
94
96
|
klaude_code/llm/anthropic/input.py,sha256=FeNhPwP0QJS7E7kICqhRBe2hUNCYkqLf_YP5qWcI_ao,9474
|
|
95
97
|
klaude_code/llm/bedrock/__init__.py,sha256=UmXPBXMmigAJ7euIh59iivSeUdrYJwum0RYU7okkkPM,86
|
|
96
98
|
klaude_code/llm/bedrock/client.py,sha256=mETQrhGDt4uEDXO2c3y5Iao9RngygFSF6MOtwqAy1tk,2279
|
|
@@ -128,9 +130,9 @@ klaude_code/protocol/events/chat.py,sha256=mI_Ks5IIU1ZiywclQYxzhSsGA3ga7ACKShU6d
|
|
|
128
130
|
klaude_code/protocol/events/lifecycle.py,sha256=gykOiAvdxMrvZ9Jm2T_qlve6Iw70C23o2HRooR0rHg4,389
|
|
129
131
|
klaude_code/protocol/events/metadata.py,sha256=VcktYa6k51vIQ1H_KeOqQYCZkX0K9gaCQR1neOAOENs,313
|
|
130
132
|
klaude_code/protocol/events/streaming.py,sha256=U1plGQSTeGZa3E4fIxW_fHXJpuv_DSIBrmGh1l4Fm54,708
|
|
131
|
-
klaude_code/protocol/events/system.py,sha256=
|
|
133
|
+
klaude_code/protocol/events/system.py,sha256=FjAnZso1jpOY2nY7DgehuFvBtu_gh5uZqimmpgKbaMA,1392
|
|
132
134
|
klaude_code/protocol/events/tools.py,sha256=8ds_8Zj-wQWvHNAvNt1-fSIHeDffw1dsLWI7ByrAqcM,617
|
|
133
|
-
klaude_code/protocol/llm_param.py,sha256=
|
|
135
|
+
klaude_code/protocol/llm_param.py,sha256=mFdAcbzJrIFB4T2QCbLyeZxZQ_38lUNCclEZIH3eWtQ,5191
|
|
134
136
|
klaude_code/protocol/message.py,sha256=pu-wvInS781y-qSKbl9MqO7k3CtAN7Yu4hUHJCXKjZQ,6210
|
|
135
137
|
klaude_code/protocol/model.py,sha256=KboyTyfG5DntRMK98oDHomgJfUpHBdeiq51dWXRSqeM,9923
|
|
136
138
|
klaude_code/protocol/op.py,sha256=pYmvSyVrVr6LlJUiSN2GKwXiDX8meCoxYKNYHXdTKGE,5965
|
|
@@ -144,19 +146,20 @@ klaude_code/protocol/sub_agent/web.py,sha256=XOQdqlIp_xno7Q7YVFPFo4AyKU1wbrVKhIi
|
|
|
144
146
|
klaude_code/protocol/tools.py,sha256=T0mzW9EhidVMNkwH-KTeB5FgwMvXBnV_MYE5ytrU1TM,343
|
|
145
147
|
klaude_code/session/__init__.py,sha256=4sw81uQvEd3YUOOjamKk1KqGmxeb4Ic9T1Tee5zztyU,241
|
|
146
148
|
klaude_code/session/codec.py,sha256=a374UZkOusn9MgFCc--yznDljK_4Qfy6yDPfhQq5_P0,1889
|
|
147
|
-
klaude_code/session/export.py,sha256=
|
|
149
|
+
klaude_code/session/export.py,sha256=znoTUCw2tVGgDpl-sT-ba_2Bb2HaH6pvsl4EpLUdYJQ,46102
|
|
148
150
|
klaude_code/session/selector.py,sha256=snBpnz9UQCe_0K8HttSGCJECCE4YEzpWs_Fdmk2P9nI,2195
|
|
149
151
|
klaude_code/session/session.py,sha256=iQdjVoiretvsPvVkUv1rW9z5IDnwPQ6RuFAp-gATF9o,23162
|
|
150
152
|
klaude_code/session/store.py,sha256=HRrmFzwEVdExqDQlT9FBZOhlFtQmM9Im9zco8pzvUMY,6455
|
|
151
|
-
klaude_code/session/templates/export_session.html,sha256=
|
|
153
|
+
klaude_code/session/templates/export_session.html,sha256=y4H2DwYx29MuSeKgT8JWdZKNguemaDKN-b75x0sr0eU,127667
|
|
152
154
|
klaude_code/session/templates/mermaid_viewer.html,sha256=Y_wEWFm4mKWpfAz3YMis5DdLEkhw_2d8CpU6jbvGZow,27842
|
|
155
|
+
klaude_code/skill/.DS_Store,sha256=zy9qIqi2YLGzlZwHNM4oAX8rDoNTg9yxdo22PJOwupg,6148
|
|
153
156
|
klaude_code/skill/__init__.py,sha256=yeWeCfRGPOhT4mx_pjdo4fLondQ_Vx0edBtnFusLhls,839
|
|
157
|
+
klaude_code/skill/assets/.DS_Store,sha256=1lFlJ5EFymdzGAUAaI30vcaaLHt3F1LwpG7xILf9jsM,6148
|
|
154
158
|
klaude_code/skill/assets/create-plan/SKILL.md,sha256=g_SLyBid2dwj56FBzh87lZGu1t08edLs0plimT2uNzs,2481
|
|
155
159
|
klaude_code/skill/assets/deslop/SKILL.md,sha256=XMBER6gOyYnZof_u7l30CZSzmDcINe8XP-n_loah0EQ,873
|
|
156
160
|
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
161
|
klaude_code/skill/assets/skill-creator/SKILL.md,sha256=0ByoWb9ao0UKSoM5Tmz-Qe5CAPliTrVpUK0gPd9TFqo,5520
|
|
159
|
-
klaude_code/skill/loader.py,sha256=
|
|
162
|
+
klaude_code/skill/loader.py,sha256=Lcj3j5H9-5wERkvOz77J9Z0uWJ3skrpVQvnzYqrpRJU,8644
|
|
160
163
|
klaude_code/skill/manager.py,sha256=GcE6IGooYmWn75wWa2TfJj8VRaBgAlABeK3sD_bIgBY,3448
|
|
161
164
|
klaude_code/skill/system_skills.py,sha256=ryGN07t0Xv2Yn_Prfq072tdIN0Dp4ZpdXLTl7O7rCkg,6122
|
|
162
165
|
klaude_code/tui/__init__.py,sha256=Q8-0D-uesw3oFwHcFLD5UaWlTFbrj8qV7dSn6C6_g_o,274
|
|
@@ -172,7 +175,7 @@ klaude_code/tui/command/model_cmd.py,sha256=EnUcr_nnUm433G2HwEKKNssVE767IgQFNoc9
|
|
|
172
175
|
klaude_code/tui/command/model_picker.py,sha256=BAQzMHuRuK0o7q3zM5x1p2pawUuhmYDAHcSLmgKwLZg,5700
|
|
173
176
|
klaude_code/tui/command/prompt-init.md,sha256=a4_FQ3gKizqs2vl9oEY5jtG6HNhv3f-1b5RSCFq0A18,1873
|
|
174
177
|
klaude_code/tui/command/prompt_command.py,sha256=PGGoH_ZgA-0kTtpjk19rDSsWjiZyAEoUlxnSp8B8GRQ,2764
|
|
175
|
-
klaude_code/tui/command/refresh_cmd.py,sha256=
|
|
178
|
+
klaude_code/tui/command/refresh_cmd.py,sha256=_nY7Iko7GSpHmc9t2vKK2DcXRYbXfUnbGzwsmNc-yPI,1405
|
|
176
179
|
klaude_code/tui/command/registry.py,sha256=2HDrC6ZqGKSdzQAYra2TSFt1kc3tDliobjrWfgrTdX8,7028
|
|
177
180
|
klaude_code/tui/command/resume_cmd.py,sha256=eOEJI-vchrOP0zrLDTip7KYb1oRJp9te5aiHFtwOdFQ,3771
|
|
178
181
|
klaude_code/tui/command/status_cmd.py,sha256=yALYGxyUX7iVdSRAKdG526YkqOvGV9F0CJNwk8nmzu4,5164
|
|
@@ -189,12 +192,12 @@ klaude_code/tui/components/developer.py,sha256=1hDr7boJN1z_JyvvFNn8m7MAf4lPDN3eo
|
|
|
189
192
|
klaude_code/tui/components/diffs.py,sha256=JUokkkJeTIoKD0b-c-chMzIDmMjivBQqH8DYXIA3hHs,10411
|
|
190
193
|
klaude_code/tui/components/errors.py,sha256=_9ojf-23ThR-BoMwNEYG68rzILwA_O59muGvofYL10w,669
|
|
191
194
|
klaude_code/tui/components/mermaid_viewer.py,sha256=MstufMnTauMKzI8cKngXpFqVo-qya20P8ReNkplYtEw,3098
|
|
192
|
-
klaude_code/tui/components/metadata.py,sha256=
|
|
195
|
+
klaude_code/tui/components/metadata.py,sha256=ESNZ7l0fCDF8BUdAWEsgoW0iG3HPnvJ2GSrpCSXIhCM,7221
|
|
193
196
|
klaude_code/tui/components/rich/__init__.py,sha256=zEZjnHR3Fnv_sFMxwIMjoJfwDoC4GRGv3lHJzAGRq_o,236
|
|
194
197
|
klaude_code/tui/components/rich/cjk_wrap.py,sha256=eMqBxftUtll7zrytUb9WtJ6naYLyax0W4KJRpGwWulM,7602
|
|
195
198
|
klaude_code/tui/components/rich/code_panel.py,sha256=ZKuJHh-kh-hIkBXSGLERLaDbJ7I9hvtvmYKocJn39_w,4744
|
|
196
199
|
klaude_code/tui/components/rich/live.py,sha256=xiMT6dPsxM_jaazddKrV9CMJQWwpe2t9OdjffHvo1JU,2821
|
|
197
|
-
klaude_code/tui/components/rich/markdown.py,sha256=
|
|
200
|
+
klaude_code/tui/components/rich/markdown.py,sha256=dkSzovKFY8zMQqRhad9k-fpV3Iot1CxKvxe202aaP4w,19512
|
|
198
201
|
klaude_code/tui/components/rich/quote.py,sha256=gTLwxSPQd9nlp73P1ysQIEgOb-BoTE2gzyiPBLMiHcY,3834
|
|
199
202
|
klaude_code/tui/components/rich/searchable_text.py,sha256=PUe6MotKxSBY4FlPeojVjVQgxCsx_jiQ41bCzLp8WvE,2271
|
|
200
203
|
klaude_code/tui/components/rich/status.py,sha256=kNt08FQGvMZJB-zUhT5UyVFA7jvuRBNqf6yDXLEhb9c,14756
|
|
@@ -203,7 +206,7 @@ klaude_code/tui/components/sub_agent.py,sha256=afkDbndByQmrxO3lvWR3rSvlbIE0wktbj
|
|
|
203
206
|
klaude_code/tui/components/thinking.py,sha256=AXC7Xpyiu7ST-eWGLRGY7N8Dak2ny3lV3mvznmfqKmM,2890
|
|
204
207
|
klaude_code/tui/components/tools.py,sha256=Up8DQbXuiPfcbiFVZD6gmZO0YBz2SExWS-tE_xeriX4,25060
|
|
205
208
|
klaude_code/tui/components/user_input.py,sha256=6VHH77xwUUW0rW7yv8hOwGXsmK52HEsBg9-QZVbOm1A,3427
|
|
206
|
-
klaude_code/tui/components/welcome.py,sha256=
|
|
209
|
+
klaude_code/tui/components/welcome.py,sha256=ZSCcT-wFdSp3L1Fq7shWWz4Rk-BAXvsKisfvIUnP8a4,3665
|
|
207
210
|
klaude_code/tui/display.py,sha256=ovM1F8GDG0gTQjOV2KaXnjE9HFHf7AtThqSIXkP6JQY,3073
|
|
208
211
|
klaude_code/tui/input/__init__.py,sha256=cAB38ypo7dHo_jgXUCnoBTUKHtiriVaKCv4YepSU9SU,276
|
|
209
212
|
klaude_code/tui/input/clipboard.py,sha256=HjThFB9MG_YdJ76CQv7B-IUoz5JarbWUZDbUVkH1LpY,5106
|
|
@@ -211,7 +214,7 @@ klaude_code/tui/input/completers.py,sha256=lkDBjnqYPLMgR6AZHhx2bfT_vMW-fbV6aqY9S
|
|
|
211
214
|
klaude_code/tui/input/key_bindings.py,sha256=2uN48J1HRHeCBqq7WrH5J82NIU59oQscce0HquAiYCI,18876
|
|
212
215
|
klaude_code/tui/input/prompt_toolkit.py,sha256=ZwkQodc3GufGo7SMmebaOiVopkqxkMDC48y8RFeGuLk,28551
|
|
213
216
|
klaude_code/tui/machine.py,sha256=S1OKLx1YlAIQfjUAIYFJPRK-5X8cI_1mSpBqEU0NJwM,25291
|
|
214
|
-
klaude_code/tui/renderer.py,sha256=
|
|
217
|
+
klaude_code/tui/renderer.py,sha256=SUhxIbTCHK_VR_MVfFUebRv7OaMmQG0Rrrhfgv_klGY,29485
|
|
215
218
|
klaude_code/tui/runner.py,sha256=nOq8wC78HzgqHLRgHC8OgYubH--2gPcDqA6GoV913Yc,11270
|
|
216
219
|
klaude_code/tui/terminal/__init__.py,sha256=GIMnsEcIAGT_vBHvTlWEdyNmAEpruyscUA6M_j3GQZU,1412
|
|
217
220
|
klaude_code/tui/terminal/color.py,sha256=6SJR2RA8cqJINNoRz65w0HL3x9g46ydIvDOGWMeNnQU,7195
|
|
@@ -229,7 +232,7 @@ klaude_code/ui/debug_mode.py,sha256=ZvqbOx4c_rUerMbEZzOfcbNf9leqEDFjqJUlALtzF9Y,
|
|
|
229
232
|
klaude_code/ui/terminal/__init__.py,sha256=5OeAzr994r8-peWsLON0iXsAvJ2pexwMp36JY7FKGDc,179
|
|
230
233
|
klaude_code/ui/terminal/title.py,sha256=EZpLXTMhunsZPVGaxP317lH0Ad2oOh7OsjbV3yRD5is,1115
|
|
231
234
|
klaude_code/update.py,sha256=QER816AZe9u3RhRvP0Z37Jh2Ch5RLy9PREyDsI0e1dA,4480
|
|
232
|
-
klaude_code-2.5.
|
|
233
|
-
klaude_code-2.5.
|
|
234
|
-
klaude_code-2.5.
|
|
235
|
-
klaude_code-2.5.
|
|
235
|
+
klaude_code-2.5.2.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
|
|
236
|
+
klaude_code-2.5.2.dist-info/entry_points.txt,sha256=kkXIXedaTOtjXPr2rVjRVVXZYlFUcBHELaqmyVlWUFA,92
|
|
237
|
+
klaude_code-2.5.2.dist-info/METADATA,sha256=kAGfNopTOaVeDvTsAYH3-FV64kfRjSnqOpQ9iia2TuA,10249
|
|
238
|
+
klaude_code-2.5.2.dist-info/RECORD,,
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: jj-workspace
|
|
3
|
-
description: Create a jj workspace before starting work to enable parallel Claude sessions. Use this skill when starting a new task that should be isolated from other concurrent work. Triggers include "jj workspace", "parallel work", "create workspace", "isolated workspace".
|
|
4
|
-
metadata:
|
|
5
|
-
short-description: Create jj workspace for parallel work
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# JJ Workspace
|
|
9
|
-
|
|
10
|
-
Create a dedicated jj workspace before starting any task. This allows multiple Claude sessions to work in parallel without conflicts.
|
|
11
|
-
|
|
12
|
-
## Steps
|
|
13
|
-
|
|
14
|
-
1. Generate a short, descriptive workspace name based on the task (e.g., `workspace-add-login` or `workspace-fix-typo`)
|
|
15
|
-
2. Run `jj workspace add <workspace-name>` to create the workspace
|
|
16
|
-
3. Change into the workspace directory: `cd <workspace-name>`
|
|
17
|
-
4. Describe the change: `jj describe -m '<brief task description>'`
|
|
18
|
-
5. Continue all subsequent work within this workspace directory
|
|
19
|
-
|
|
20
|
-
If no task is provided, ask the user for a task description.
|
|
File without changes
|
|
File without changes
|