klaude-code 1.2.7__py3-none-any.whl → 1.2.9__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 (52) hide show
  1. klaude_code/auth/codex/__init__.py +1 -1
  2. klaude_code/command/__init__.py +2 -0
  3. klaude_code/command/prompt-deslop.md +14 -0
  4. klaude_code/command/release_notes_cmd.py +86 -0
  5. klaude_code/command/status_cmd.py +92 -54
  6. klaude_code/core/agent.py +13 -19
  7. klaude_code/core/manager/sub_agent_manager.py +5 -1
  8. klaude_code/core/prompt.py +38 -28
  9. klaude_code/core/reminders.py +4 -4
  10. klaude_code/core/task.py +60 -45
  11. klaude_code/core/tool/__init__.py +2 -0
  12. klaude_code/core/tool/file/apply_patch_tool.py +1 -1
  13. klaude_code/core/tool/file/edit_tool.py +1 -1
  14. klaude_code/core/tool/file/multi_edit_tool.py +1 -1
  15. klaude_code/core/tool/file/write_tool.py +1 -1
  16. klaude_code/core/tool/memory/memory_tool.py +2 -2
  17. klaude_code/core/tool/sub_agent_tool.py +2 -1
  18. klaude_code/core/tool/todo/todo_write_tool.py +1 -1
  19. klaude_code/core/tool/todo/update_plan_tool.py +1 -1
  20. klaude_code/core/tool/tool_context.py +21 -4
  21. klaude_code/core/tool/tool_runner.py +5 -8
  22. klaude_code/core/tool/web/mermaid_tool.py +1 -4
  23. klaude_code/core/turn.py +90 -62
  24. klaude_code/llm/anthropic/client.py +15 -46
  25. klaude_code/llm/client.py +1 -1
  26. klaude_code/llm/codex/client.py +44 -30
  27. klaude_code/llm/input_common.py +0 -6
  28. klaude_code/llm/openai_compatible/client.py +29 -73
  29. klaude_code/llm/openai_compatible/input.py +6 -4
  30. klaude_code/llm/openai_compatible/stream_processor.py +82 -0
  31. klaude_code/llm/openrouter/client.py +29 -59
  32. klaude_code/llm/openrouter/input.py +4 -27
  33. klaude_code/llm/responses/client.py +49 -79
  34. klaude_code/llm/usage.py +51 -10
  35. klaude_code/protocol/commands.py +1 -0
  36. klaude_code/protocol/events.py +12 -2
  37. klaude_code/protocol/model.py +142 -26
  38. klaude_code/protocol/sub_agent.py +5 -1
  39. klaude_code/session/export.py +51 -27
  40. klaude_code/session/session.py +33 -16
  41. klaude_code/session/templates/export_session.html +4 -1
  42. klaude_code/ui/modes/repl/__init__.py +1 -5
  43. klaude_code/ui/modes/repl/event_handler.py +153 -54
  44. klaude_code/ui/modes/repl/renderer.py +6 -4
  45. klaude_code/ui/renderers/developer.py +35 -25
  46. klaude_code/ui/renderers/metadata.py +68 -30
  47. klaude_code/ui/renderers/tools.py +53 -87
  48. klaude_code/ui/rich/markdown.py +5 -5
  49. {klaude_code-1.2.7.dist-info → klaude_code-1.2.9.dist-info}/METADATA +1 -1
  50. {klaude_code-1.2.7.dist-info → klaude_code-1.2.9.dist-info}/RECORD +52 -49
  51. {klaude_code-1.2.7.dist-info → klaude_code-1.2.9.dist-info}/WHEEL +0 -0
  52. {klaude_code-1.2.7.dist-info → klaude_code-1.2.9.dist-info}/entry_points.txt +0 -0
@@ -121,32 +121,24 @@ def render_read_tool_call(arguments: str) -> RenderableType:
121
121
  return grid
122
122
 
123
123
 
124
- def render_edit_tool_call(arguments: str) -> Text:
125
- render_result: Text = Text.assemble(("→ ", ThemeKey.TOOL_MARK))
124
+ def render_edit_tool_call(arguments: str) -> RenderableType:
125
+ grid = create_grid()
126
+ tool_name_column = Text.assemble(("→", ThemeKey.TOOL_MARK), " ", ("Edit", ThemeKey.TOOL_NAME))
126
127
  try:
127
128
  json_dict = json.loads(arguments)
128
129
  file_path = json_dict.get("file_path")
129
- render_result = (
130
- render_result.append_text(Text("Edit", ThemeKey.TOOL_NAME))
131
- .append_text(Text(" "))
132
- .append_text(render_path(file_path, ThemeKey.TOOL_PARAM_FILE_PATH))
133
- )
130
+ arguments_column = render_path(file_path, ThemeKey.TOOL_PARAM_FILE_PATH)
134
131
  except json.JSONDecodeError:
135
- render_result = (
136
- render_result.append_text(Text("Edit", ThemeKey.TOOL_NAME))
137
- .append_text(Text(" "))
138
- .append_text(
139
- Text(
140
- arguments.strip()[: const.INVALID_TOOL_CALL_MAX_LENGTH],
141
- style=ThemeKey.INVALID_TOOL_CALL_ARGS,
142
- )
143
- )
132
+ arguments_column = Text(
133
+ arguments.strip()[: const.INVALID_TOOL_CALL_MAX_LENGTH],
134
+ style=ThemeKey.INVALID_TOOL_CALL_ARGS,
144
135
  )
145
- return render_result
136
+ grid.add_row(tool_name_column, arguments_column)
137
+ return grid
146
138
 
147
139
 
148
- def render_write_tool_call(arguments: str) -> Text:
149
- render_result: Text = Text.assemble(("→ ", ThemeKey.TOOL_MARK))
140
+ def render_write_tool_call(arguments: str) -> RenderableType:
141
+ grid = create_grid()
150
142
  try:
151
143
  json_dict = json.loads(arguments)
152
144
  file_path = json_dict.get("file_path")
@@ -157,97 +149,77 @@ def render_write_tool_call(arguments: str) -> Text:
157
149
  abs_path = (Path().cwd() / abs_path).resolve()
158
150
  if abs_path.exists():
159
151
  op_label = "Overwrite"
160
- render_result = (
161
- render_result.append_text(Text(op_label, ThemeKey.TOOL_NAME))
162
- .append_text(Text(" "))
163
- .append_text(render_path(file_path, ThemeKey.TOOL_PARAM_FILE_PATH))
164
- )
152
+ tool_name_column = Text.assemble(("→", ThemeKey.TOOL_MARK), " ", (op_label, ThemeKey.TOOL_NAME))
153
+ arguments_column = render_path(file_path, ThemeKey.TOOL_PARAM_FILE_PATH)
165
154
  except json.JSONDecodeError:
166
- render_result = (
167
- render_result.append_text(Text("Write", ThemeKey.TOOL_NAME))
168
- .append_text(Text(" "))
169
- .append_text(
170
- Text(
171
- arguments.strip()[: const.INVALID_TOOL_CALL_MAX_LENGTH],
172
- style=ThemeKey.INVALID_TOOL_CALL_ARGS,
173
- )
174
- )
155
+ tool_name_column = Text.assemble(("→", ThemeKey.TOOL_MARK), " ", ("Write", ThemeKey.TOOL_NAME))
156
+ arguments_column = Text(
157
+ arguments.strip()[: const.INVALID_TOOL_CALL_MAX_LENGTH],
158
+ style=ThemeKey.INVALID_TOOL_CALL_ARGS,
175
159
  )
176
- return render_result
160
+ grid.add_row(tool_name_column, arguments_column)
161
+ return grid
177
162
 
178
163
 
179
- def render_multi_edit_tool_call(arguments: str) -> Text:
180
- render_result: Text = Text.assemble(("→ ", ThemeKey.TOOL_MARK), ("MultiEdit", ThemeKey.TOOL_NAME), " ")
164
+ def render_multi_edit_tool_call(arguments: str) -> RenderableType:
165
+ grid = create_grid()
166
+ tool_name_column = Text.assemble(("→", ThemeKey.TOOL_MARK), " ", ("MultiEdit", ThemeKey.TOOL_NAME))
181
167
  try:
182
168
  json_dict = json.loads(arguments)
183
169
  file_path = json_dict.get("file_path")
184
170
  edits = json_dict.get("edits", [])
185
- render_result = (
186
- render_result.append_text(render_path(file_path, ThemeKey.TOOL_PARAM_FILE_PATH))
187
- .append_text(Text(" - "))
188
- .append_text(Text(f"{len(edits)}", ThemeKey.TOOL_PARAM_BOLD))
189
- .append_text(Text(" updates", ThemeKey.TOOL_PARAM_FILE_PATH))
171
+ arguments_column = Text.assemble(
172
+ render_path(file_path, ThemeKey.TOOL_PARAM_FILE_PATH),
173
+ Text(" - "),
174
+ Text(f"{len(edits)}", ThemeKey.TOOL_PARAM_BOLD),
175
+ Text(" updates", ThemeKey.TOOL_PARAM_FILE_PATH),
190
176
  )
191
177
  except json.JSONDecodeError:
192
- render_result = render_result.append_text(
193
- Text(
194
- arguments.strip()[: const.INVALID_TOOL_CALL_MAX_LENGTH],
195
- style=ThemeKey.INVALID_TOOL_CALL_ARGS,
196
- )
178
+ arguments_column = Text(
179
+ arguments.strip()[: const.INVALID_TOOL_CALL_MAX_LENGTH],
180
+ style=ThemeKey.INVALID_TOOL_CALL_ARGS,
197
181
  )
198
- return render_result
182
+ grid.add_row(tool_name_column, arguments_column)
183
+ return grid
199
184
 
200
185
 
201
186
  def render_apply_patch_tool_call(arguments: str) -> RenderableType:
187
+ grid = create_grid()
188
+ tool_name_column = Text.assemble(("→", ThemeKey.TOOL_MARK), " ", ("Apply Patch", ThemeKey.TOOL_NAME))
189
+
202
190
  try:
203
191
  payload = json.loads(arguments)
204
192
  except json.JSONDecodeError:
205
- return Text.assemble(
206
- ("→ ", ThemeKey.TOOL_MARK),
207
- ("Apply Patch", ThemeKey.TOOL_NAME),
208
- " ",
209
- Text(
210
- arguments.strip()[: const.INVALID_TOOL_CALL_MAX_LENGTH],
211
- style=ThemeKey.INVALID_TOOL_CALL_ARGS,
212
- ),
193
+ arguments_column = Text(
194
+ arguments.strip()[: const.INVALID_TOOL_CALL_MAX_LENGTH],
195
+ style=ThemeKey.INVALID_TOOL_CALL_ARGS,
213
196
  )
197
+ grid.add_row(tool_name_column, arguments_column)
198
+ return grid
214
199
 
215
200
  patch_content = payload.get("patch", "")
216
-
217
- grid = create_grid()
218
- header = Text.assemble(("→ ", ThemeKey.TOOL_MARK), ("Apply Patch", ThemeKey.TOOL_NAME))
219
- summary = Text("", ThemeKey.TOOL_PARAM)
201
+ arguments_column = Text("", ThemeKey.TOOL_PARAM)
220
202
 
221
203
  if isinstance(patch_content, str):
222
204
  lines = [line for line in patch_content.splitlines() if line and not line.startswith("*** Begin Patch")]
223
205
  if lines:
224
- summary = Text(lines[0][: const.INVALID_TOOL_CALL_MAX_LENGTH], ThemeKey.TOOL_PARAM)
206
+ arguments_column = Text(lines[0][: const.INVALID_TOOL_CALL_MAX_LENGTH], ThemeKey.TOOL_PARAM)
225
207
  else:
226
- summary = Text(
208
+ arguments_column = Text(
227
209
  str(patch_content)[: const.INVALID_TOOL_CALL_MAX_LENGTH],
228
210
  ThemeKey.INVALID_TOOL_CALL_ARGS,
229
211
  )
230
212
 
231
- if summary.plain:
232
- grid.add_row(header, summary)
233
- else:
234
- grid.add_row(header, Text("", ThemeKey.TOOL_PARAM))
235
-
213
+ grid.add_row(tool_name_column, arguments_column)
236
214
  return grid
237
215
 
238
216
 
239
217
  def render_todo(tr: events.ToolResultEvent) -> RenderableType:
240
- if tr.ui_extra is None:
241
- return Text.assemble(
242
- (" ✘", ThemeKey.ERROR_BOLD),
243
- " ",
244
- Text("(no content)", style=ThemeKey.ERROR),
245
- )
246
- if tr.ui_extra.type != model.ToolResultUIExtraType.TODO_LIST or tr.ui_extra.todo_list is None:
218
+ if not isinstance(tr.ui_extra, model.TodoListUIExtra):
247
219
  return Text.assemble(
248
220
  (" ✘", ThemeKey.ERROR_BOLD),
249
221
  " ",
250
- Text("(invalid ui_extra)", style=ThemeKey.ERROR),
222
+ Text("(no content)" if tr.ui_extra is None else "(invalid ui_extra)", style=ThemeKey.ERROR),
251
223
  )
252
224
 
253
225
  ui_extra = tr.ui_extra.todo_list
@@ -283,11 +255,9 @@ def render_generic_tool_result(result: str, *, is_error: bool = False) -> Render
283
255
  def _extract_mermaid_link(
284
256
  ui_extra: model.ToolResultUIExtra | None,
285
257
  ) -> model.MermaidLinkUIExtra | None:
286
- if ui_extra is None:
287
- return None
288
- if ui_extra.type != model.ToolResultUIExtraType.MERMAID_LINK:
289
- return None
290
- return ui_extra.mermaid_link
258
+ if isinstance(ui_extra, model.MermaidLinkUIExtra):
259
+ return ui_extra
260
+ return None
291
261
 
292
262
 
293
263
  def render_memory_tool_call(arguments: str) -> RenderableType:
@@ -380,11 +350,9 @@ def render_mermaid_tool_result(tr: events.ToolResultEvent) -> RenderableType:
380
350
  def _extract_truncation(
381
351
  ui_extra: model.ToolResultUIExtra | None,
382
352
  ) -> model.TruncationUIExtra | None:
383
- if ui_extra is None:
384
- return None
385
- if ui_extra.type != model.ToolResultUIExtraType.TRUNCATION:
386
- return None
387
- return ui_extra.truncation
353
+ if isinstance(ui_extra, model.TruncationUIExtra):
354
+ return ui_extra
355
+ return None
388
356
 
389
357
 
390
358
  def render_truncation_info(ui_extra: model.TruncationUIExtra) -> RenderableType:
@@ -496,9 +464,7 @@ def render_tool_call(e: events.ToolCallEvent) -> RenderableType | None:
496
464
 
497
465
 
498
466
  def _extract_diff_text(ui_extra: model.ToolResultUIExtra | None) -> str | None:
499
- if ui_extra is None:
500
- return None
501
- if ui_extra.type == model.ToolResultUIExtraType.DIFF_TEXT:
467
+ if isinstance(ui_extra, model.DiffTextUIExtra):
502
468
  return ui_extra.diff_text
503
469
  return None
504
470
 
@@ -102,7 +102,6 @@ class MarkdownStream:
102
102
 
103
103
  # Defer Live creation until the first update.
104
104
  self.live: Live | None = None
105
- self._live_started: bool = False
106
105
 
107
106
  # Streaming control
108
107
  self.when: float = 0.0 # Timestamp of last update
@@ -119,9 +118,10 @@ class MarkdownStream:
119
118
  self.mark: str | None = mark
120
119
  self.indent: int = max(indent, 0)
121
120
 
122
- # Defer Live creation until the first update
123
- self.live: Live | None = None
124
- self._live_started: bool = False
121
+ @property
122
+ def _live_started(self) -> bool:
123
+ """Check if Live display has been started (derived from self.live)."""
124
+ return self.live is not None
125
125
 
126
126
  def _render_markdown_to_lines(self, text: str) -> list[str]:
127
127
  """Render markdown text to a list of lines.
@@ -214,7 +214,7 @@ class MarkdownStream:
214
214
  console=self.console,
215
215
  )
216
216
  self.live.start()
217
- self._live_started = True
217
+ # Note: self._live_started is now a property derived from self.live
218
218
 
219
219
  # If live rendering isn't available (e.g., after a final update), stop.
220
220
  if self.live is None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: klaude-code
3
- Version: 1.2.7
3
+ Version: 1.2.9
4
4
  Summary: Add your description here
5
5
  Requires-Dist: anthropic>=0.66.0
6
6
  Requires-Dist: openai>=1.102.0
@@ -1,6 +1,6 @@
1
1
  klaude_code/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  klaude_code/auth/__init__.py,sha256=jLUgi4V4m0t2BlVuuni7iANOErpJgAeEqByuD1sKUvQ,480
3
- klaude_code/auth/codex/__init__.py,sha256=dC81gQ8nujoy9IBF9znUbMQbjv0lDWWdHrm-R5yo5cM,501
3
+ klaude_code/auth/codex/__init__.py,sha256=rrpPvr-_R4kbj_oZ2U_fPmIfDPZov9Pjz2bAFpztUJk,502
4
4
  klaude_code/auth/codex/exceptions.py,sha256=TcAKPozsY3SCh_krTYFlJ8FU5jepgSTg-5UO1dA4OgE,388
5
5
  klaude_code/auth/codex/jwt_utils.py,sha256=tuaJKT4vAIGeaQjNzgNcHWGrYYSDrDeaQT9h4cw5Us8,1134
6
6
  klaude_code/auth/codex/oauth.py,sha256=ap78TUPJsF6O6cnkkuj11w1t4bCIVQzyVkuDvOLo0oo,7848
@@ -9,20 +9,22 @@ klaude_code/cli/__init__.py,sha256=YzlAoWAr5rx5oe6B_4zPxRFS4QaZauuy1AFwampP5fg,4
9
9
  klaude_code/cli/main.py,sha256=4c0pwFDJXIrumvHKKJthlEkUm6p5RLfPfBOrK4HerTE,11609
10
10
  klaude_code/cli/runtime.py,sha256=It7JwXi4MfaRHV2CaBjDmR8M8VVJEXoljXMUc7pR85Y,12347
11
11
  klaude_code/cli/session_cmd.py,sha256=cIBm3uUurke-TfBvQHz9mGW29LOAh22FIpXVyypnwDo,2549
12
- klaude_code/command/__init__.py,sha256=ApRFYqzmDxXe-jJ0tHg4qe4XsJ4QSICu8ICQcmwxQ1Y,1125
12
+ klaude_code/command/__init__.py,sha256=dN2JLmHIzcUJW5xsiah6DS0MuqcVCgr6l1wwzDcipZQ,1203
13
13
  klaude_code/command/clear_cmd.py,sha256=ojsDdZnv_-bDYBPecpdY85DfGicst9Jf9j7esg2z2hE,674
14
14
  klaude_code/command/command_abc.py,sha256=WWY9qi7SILttPl6fJNi9ThevsqpGFoQJ1ecgoosd_Ms,2547
15
15
  klaude_code/command/diff_cmd.py,sha256=306PcTeKokLmchp6mIWeZ2rokINsU5-2f4iGrjEbkCE,5269
16
16
  klaude_code/command/export_cmd.py,sha256=lsnBwxjiHyxgU7TPmT038ZVsOVqNxV2l-6U9T-dxI1g,3498
17
17
  klaude_code/command/help_cmd.py,sha256=VddWegAJS5OjbAZ35c9Pb0SSDZpPH5PqRyQ--sdseII,1709
18
18
  klaude_code/command/model_cmd.py,sha256=EApytBR6gl1Po9Mi7YVvDWgV-0ivgw-RQTnQ__EIvFQ,1510
19
+ klaude_code/command/prompt-deslop.md,sha256=YGaAXqem39zd0UWCFjWUj83Cf7cvUJq1768aJExFqeg,1346
19
20
  klaude_code/command/prompt-dev-docs-update.md,sha256=g1IWIWIa-3qlNOw5mBA4N9H1_nvYcw8AKo7XoQw_AZQ,1855
20
21
  klaude_code/command/prompt-dev-docs.md,sha256=PU9iT6XdUEH6grfSjHVma7xKOQcA__ZTKlEDkbbO0hA,1783
21
22
  klaude_code/command/prompt-init.md,sha256=a4_FQ3gKizqs2vl9oEY5jtG6HNhv3f-1b5RSCFq0A18,1873
22
23
  klaude_code/command/prompt_command.py,sha256=cDdLAyGk3JFS-nRlNzTnT8T35QQ-FC6RT0fD5ELZGO4,2405
23
24
  klaude_code/command/refresh_cmd.py,sha256=kgpbcnqf1n_ihMW99AfTXeZEkE2_MNwgQ9DbNfl2jqY,1288
24
25
  klaude_code/command/registry.py,sha256=OZhQqoLfWjqojJauemc8L2rnwPhYoAh2Kjx3HSAz_ZE,3554
25
- klaude_code/command/status_cmd.py,sha256=ogB8x2swxirh5cs0iiBokmLVD287ztM4PySjT-Qid9c,4330
26
+ klaude_code/command/release_notes_cmd.py,sha256=vVkb0pQTyZBDqPhlO1nA18ftZdft9L7EALPz1nxFQro,2725
27
+ klaude_code/command/status_cmd.py,sha256=VL8bghmYl2evDWDjd-KChNnXZsEFF2oU5bWLbvULZic,5431
26
28
  klaude_code/command/terminal_setup_cmd.py,sha256=bQfMDZIzak8emkmuaY43_2YaS7t908sUJ_orYwccTtY,10957
27
29
  klaude_code/config/__init__.py,sha256=9XVCYYqzJtCi46I94hbUmJ2yTFuZ-UlH-QTx7OpLAkQ,292
28
30
  klaude_code/config/config.py,sha256=Vc9u7-40T81Rbx1OdMqSWZLh3vf9aj4wmBUnIOH7jAw,6526
@@ -30,14 +32,14 @@ klaude_code/config/list_model.py,sha256=08vLxar7YAcUNzGTN6bUbPtAoXXyfO5y6LjaaXMb
30
32
  klaude_code/config/select_model.py,sha256=el1jqXlNyYmHH_dvdcEkWVOYqIZ9y05_VJRlfZk7HkQ,2565
31
33
  klaude_code/const/__init__.py,sha256=joTUQF1NEA-OHY3fuNIjNYYxOJlBW-MtSQ3YE3EAer4,3980
32
34
  klaude_code/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
- klaude_code/core/agent.py,sha256=XCzoo0fR5WVlJjSdOURB1FgvMbgRt4xrLydPORkbqOU,6193
35
+ klaude_code/core/agent.py,sha256=PMMKEbDyPAx-Np4GEkn3_7apgtVK1ydHAHHvfsh5htA,5918
34
36
  klaude_code/core/executor.py,sha256=cuFxabyChIq8VqFr1ssbAy-VByHu0qJynJfEq2iHajI,18653
35
37
  klaude_code/core/manager/__init__.py,sha256=6CswltCHXBUcezlW7xui2S1swDp8JTkS1YiEHmq4-no,658
36
38
  klaude_code/core/manager/agent_manager.py,sha256=5InJ1EaPKbBSLZy7vLro2B8-DbbjPRHHc4D9SuiT9Rw,4908
37
39
  klaude_code/core/manager/llm_clients.py,sha256=Fdkd7EijC9IDnEPU622cFLeaYGojov5Z2nPyR0xhj3Q,1335
38
40
  klaude_code/core/manager/llm_clients_builder.py,sha256=NzZKWXv8xB4GA1Hd6whEYM746atMavnI_nJaq7K5G08,1710
39
- klaude_code/core/manager/sub_agent_manager.py,sha256=X6jilMg4HSIck_m032AyRUarpuux6TVI15g6L8_3T9Q,3474
40
- klaude_code/core/prompt.py,sha256=VQasJ1J1f1cKytMgUsbmY_vhqe2nTJuU2D9VErUGodU,2961
41
+ klaude_code/core/manager/sub_agent_manager.py,sha256=FLMOPDuLn0dFpY7FGtKQkktONaWu0__Go1E-wuAK-9A,3754
42
+ klaude_code/core/prompt.py,sha256=9eO5AqPXYdIw6QZw-HGIcmCPOMFFJVv73nk7xpAf4BA,3329
41
43
  klaude_code/core/prompts/prompt-claude-code.md,sha256=3OY5ShcYPp8f0XrIl-3pBVIDZkweWsLzDHy5ldnSOJc,8954
42
44
  klaude_code/core/prompts/prompt-codex-gpt-5-1-codex-max.md,sha256=SW-y8AmR99JL_9j26k9YVAOQuZ18vR12aT5CWHkZDc4,11741
43
45
  klaude_code/core/prompts/prompt-codex-gpt-5-1.md,sha256=jNi593_4L3EoMvjS0TwltF2b684gtDBsYHa9npxO34A,24239
@@ -46,24 +48,24 @@ klaude_code/core/prompts/prompt-subagent-explore.md,sha256=m7eQMTWWibaZIMPNbMYUh
46
48
  klaude_code/core/prompts/prompt-subagent-oracle.md,sha256=hGtyDm_6UhJZUJwfXt5A-170is1KMHls85fEEo45z-w,1376
47
49
  klaude_code/core/prompts/prompt-subagent-webfetch.md,sha256=kHtJINbCRiRDrip_q6idHHU3CwbDfrVlpgtSZvugOWI,2304
48
50
  klaude_code/core/prompts/prompt-subagent.md,sha256=dmmdsOenbAOfqG6FmdR88spOLZkXmntDBs-cmZ9DN_g,897
49
- klaude_code/core/reminders.py,sha256=CTVIAqwU8bVB02eq9vI4Iha-xO4_MxaCr71maRpfwmE,18221
50
- klaude_code/core/task.py,sha256=h3UyU9yRY01Mhsshp5PZBpD3-B5z-s4Kb76gTS0ASO8,10102
51
- klaude_code/core/tool/__init__.py,sha256=GQjs6IXqtiKn8RI3OmM0wki8p16SBnvuHVBez4Z5xqo,2120
51
+ klaude_code/core/reminders.py,sha256=OGmdAV0z5glmkdz-6v14gt2JWie-KnaobhqAcs5wbqk,18225
52
+ klaude_code/core/task.py,sha256=wM5zrtazYr8Aqriw-VN1DENrbAXuGOHd3titwVA6kk8,10475
53
+ klaude_code/core/tool/__init__.py,sha256=-pxK4iCkvcdLpav74foMNdeIjsC6PMkVaw_q5kajivg,2170
52
54
  klaude_code/core/tool/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
55
  klaude_code/core/tool/file/apply_patch.py,sha256=gUukVxt0qEP2NLHiPsmFWOi0sOuW0FaUnN0BfZ6FcII,17257
54
56
  klaude_code/core/tool/file/apply_patch_tool.md,sha256=KVDsjUiLDa97gym0NrZNVG4jA1_zN-2i-B3upVQyOhU,59
55
- klaude_code/core/tool/file/apply_patch_tool.py,sha256=tUefdyXFf96TgnxDSvAQrdAF2sfhDedhduhwjohPn2M,8261
57
+ klaude_code/core/tool/file/apply_patch_tool.py,sha256=cz9E7oYW9CjaokXhjAeyIxsukdvHVM2uM3cvwwDTNxg,8215
56
58
  klaude_code/core/tool/file/edit_tool.md,sha256=rEcUjJuPC46t1nXWjTDxplDcxWDbzTWsr6_bYt5_aRI,1110
57
- klaude_code/core/tool/file/edit_tool.py,sha256=rmWWcH5of9ufDqBpc0VGLYTjuB_YNUaDgZi8ykTfPMQ,10532
59
+ klaude_code/core/tool/file/edit_tool.py,sha256=XfIAf29heynFJ44yAvmXn6eXBv8PXoCVFIujMgo-wkc,10486
58
60
  klaude_code/core/tool/file/multi_edit_tool.md,sha256=4G39b-jGdJdGGbBTj7R6tcUfcui9tXn6CLQ5uaX5y1M,2485
59
- klaude_code/core/tool/file/multi_edit_tool.py,sha256=SBiFVqZHNF80GOAJFRiLWRd-k_p7NqQPuJ-YAJHy3nY,7426
61
+ klaude_code/core/tool/file/multi_edit_tool.py,sha256=h4QvIrfamjubCsjzJKcWn__Y6zMp73_Ttak4bBaDHGw,7380
60
62
  klaude_code/core/tool/file/read_tool.md,sha256=FeRW9WMUNCtgbezjohvSJjFLZhQd1EaHVcjCI4eQHf4,1472
61
63
  klaude_code/core/tool/file/read_tool.py,sha256=N7Z4MC9vjLKHfUX-rioV63xVQ7fUANy8_hjvoXPDMX4,12894
62
64
  klaude_code/core/tool/file/write_tool.md,sha256=CNnYgtieUasuHdpXLDpTEsqe492Pf7v75M4RQ3oIer8,613
63
- klaude_code/core/tool/file/write_tool.py,sha256=5XrMiRzOVJjKgWqq9AnT6VG4OVNDqfHfXMK72RyE3T8,4878
65
+ klaude_code/core/tool/file/write_tool.py,sha256=xoGkw0ei4bnJMvcUgt1iJjpHzNv36HjyjumOrqpKdkw,4832
64
66
  klaude_code/core/tool/memory/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
65
67
  klaude_code/core/tool/memory/memory_tool.md,sha256=LNpu2kStqcfDA7AXj7IiQqgC6_Yf5kQm06fSVgyN4Jw,1011
66
- klaude_code/core/tool/memory/memory_tool.py,sha256=beNlM-C9aOIck2_qJOGx1YkQ8z3UCR_ufHMr_jxYnJ8,19066
68
+ klaude_code/core/tool/memory/memory_tool.py,sha256=h777Iju8gNijCfYMEALeoyRomBY0FXGu46gykehCeUA,19018
67
69
  klaude_code/core/tool/memory/skill_loader.py,sha256=AOFU5RQfR6GAKemHEgI40F-X8t8yCnSKsS8Oi6nfZtA,8567
68
70
  klaude_code/core/tool/memory/skill_tool.md,sha256=UfjJK5EGAd3mf7ym5rIrRdPyV3kBTxNnwzOjNnHOBrE,973
69
71
  klaude_code/core/tool/memory/skill_tool.py,sha256=Ma0iLQya3AndatUHfEANTDtXzhTly0AkzckPuQ1JXtA,3209
@@ -71,58 +73,59 @@ klaude_code/core/tool/shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMp
71
73
  klaude_code/core/tool/shell/bash_tool.md,sha256=ILKpnRCBTkU2uSDEdZQjNYo1l6hsM4TO-3RD5zWC61c,3935
72
74
  klaude_code/core/tool/shell/bash_tool.py,sha256=qPB7W51LmFsRxWJoqKih1vNTGIOaXE4wfxnKPzBXs6g,4490
73
75
  klaude_code/core/tool/shell/command_safety.py,sha256=r5nTltVj1Iil7dmnYByj4jp4du7AtPEaUa4J6XdrlTo,13209
74
- klaude_code/core/tool/sub_agent_tool.py,sha256=CpQAG9P6ovtDBaQ_khXNoIfGerbHJVL7UnNRtcqtX5c,2763
76
+ klaude_code/core/tool/sub_agent_tool.py,sha256=Ohroht4z-W_kuBo0AvKoL40XQM0QGzScIDAuqYKXSVk,2765
75
77
  klaude_code/core/tool/todo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
78
  klaude_code/core/tool/todo/todo_write_tool.md,sha256=AJ2OkZGcccQYDXkydPAr5JI2SExBF8qJd0rXsHySLps,9711
77
- klaude_code/core/tool/todo/todo_write_tool.py,sha256=LPCAq_GiG3fPWvVkidl-gITCWSGXLUsyYi0fdUCTv2g,4552
79
+ klaude_code/core/tool/todo/todo_write_tool.py,sha256=XgSo8F1aJn_0fkh9Gx-5DHNFNlbZys1bUjwhe6NwyLU,4506
78
80
  klaude_code/core/tool/todo/update_plan_tool.md,sha256=OoEF4voHHd5J3VDv7tq3UCHdXApkBvxdHXUf5tVOkE8,157
79
- klaude_code/core/tool/todo/update_plan_tool.py,sha256=4l8BO_f0ZZTbI8JNL9mIU_lPo1Qo7E1s93Kz9CR2DuA,3840
81
+ klaude_code/core/tool/todo/update_plan_tool.py,sha256=5MmmApG0wObBgc-mLETjIMupxIv-SZ7Q0uJO2Krtl1k,3794
80
82
  klaude_code/core/tool/tool_abc.py,sha256=3FlVZ8a6hC-_Ci23_cpLaap9nHinHgxSB1TsZL5ylUQ,731
81
- klaude_code/core/tool/tool_context.py,sha256=vCA3oYN_YHnINoxejsdEUfM2QxlbXRaJ3D9_udc-8wk,3749
83
+ klaude_code/core/tool/tool_context.py,sha256=Slnykn14GwN9V_-IBRX3xu0xjvA-Fi3bqHTYR-Z7A5Y,4175
82
84
  klaude_code/core/tool/tool_registry.py,sha256=2d-5zIsODztgJe7obS1OAZbrQSqAquULcoXPLLEr2Xs,2665
83
- klaude_code/core/tool/tool_runner.py,sha256=IyVjMnGVMAjs8bJuCMBfFE1eQ39FSjnOz3Wb5HHQ0T4,10259
85
+ klaude_code/core/tool/tool_runner.py,sha256=I9BfeRgtVT3IoZGXgEVvzTEF8-fpKFqtbt6MgznJleI,10079
84
86
  klaude_code/core/tool/truncation.py,sha256=hHeJDrvvNt0wE9yGZVaZheYUW0VoJ7QbopKo6wjyP-w,6644
85
87
  klaude_code/core/tool/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
88
  klaude_code/core/tool/web/mermaid_tool.md,sha256=Ketpxpr7lz8238p5Q7ZzcyWchWd4dU68u708-dxaZds,978
87
- klaude_code/core/tool/web/mermaid_tool.py,sha256=GUwWcrakSZH_Jp61Q_i5TvwQj6sWMrIW0ZbNpJ0dVtE,2750
89
+ klaude_code/core/tool/web/mermaid_tool.py,sha256=Ok0A27oHLnV1c__74bheUuy3wpqDJ1zaXUSxuuqsNPI,2630
88
90
  klaude_code/core/tool/web/web_fetch_tool.md,sha256=_5U-LSoI86rD26nPb0D5BQCr6hj8eyF0UELSiyLznCA,347
89
91
  klaude_code/core/tool/web/web_fetch_tool.py,sha256=iu6kM_-90K8mqHbK9Loui96vICV7d8rmtss68rcFqw0,4958
90
- klaude_code/core/turn.py,sha256=_Jx0huYlUXXTvgEIo_LFisJnFYssdyZePELSw7d_vHg,8391
92
+ klaude_code/core/turn.py,sha256=0Pc8GI2tuY2wukCPxCrWvuPlhhZRfXcrduNrDG0yeG8,9517
91
93
  klaude_code/llm/__init__.py,sha256=hjegW9bOyTZ6tN6TxQaMWKkEOuapgK2LJ0vWs9FLj_c,594
92
94
  klaude_code/llm/anthropic/__init__.py,sha256=PWETvaeNAAX3ue0ww1uRUIxTJG0RpWiutkn7MlwKxBs,67
93
- klaude_code/llm/anthropic/client.py,sha256=yEsp3JSVj-18y-UiYT6zQUMRg8PYJ-Ao3bSPSBiJSJM,11166
95
+ klaude_code/llm/anthropic/client.py,sha256=OWjs1O3yVJyYMhX1Im3nwfU9WDtI_hGpKDRelZSjFRY,9539
94
96
  klaude_code/llm/anthropic/input.py,sha256=qPo4nmhnhSfLqef4UUVoIz8EjoXTxvlsrfsc_6qqM_s,8039
95
- klaude_code/llm/client.py,sha256=Un5LA5Z622JQ1MYEfJi7gXj3ycX3ce0WvYPcOogM32Y,1527
97
+ klaude_code/llm/client.py,sha256=WspUKmeKpjNvj1nu6aEdRpuZRQRCQG4NyVcOWNclZZw,1543
96
98
  klaude_code/llm/codex/__init__.py,sha256=8vN2j2ezWB_UVpfqQ8ooStsBeLL5SY4SUMXOXdWiMaI,132
97
- klaude_code/llm/codex/client.py,sha256=CKBIC9G9uvTxzNDE8sadSotQ8hVXpMWydb7aC-fVv_s,4182
98
- klaude_code/llm/input_common.py,sha256=yLn-g9T_lC3AnPPilFwlKEA2-vnIgyOKlHFBYB00jm8,8972
99
+ klaude_code/llm/codex/client.py,sha256=apEFy64OmVBuxgdVfFwmSSbzwJED-YGo0BIJwf673_c,4919
100
+ klaude_code/llm/input_common.py,sha256=purxHHMo_yahNvv0Y1pH7WmfTfZgZqUqyo2JvdFiVO0,8526
99
101
  klaude_code/llm/openai_compatible/__init__.py,sha256=ACGpnki7k53mMcCl591aw99pm9jZOZk0ghr7atOfNps,81
100
- klaude_code/llm/openai_compatible/client.py,sha256=LqwkmKZdgDJq8_zlwsb35-QRhunP-ec0VFKMr-SM_uk,9215
101
- klaude_code/llm/openai_compatible/input.py,sha256=AispOfSlQPmFWPgDYs2j3Q_2zwpYyZDf6oQNG8Z5q1M,3590
102
+ klaude_code/llm/openai_compatible/client.py,sha256=iwA9FYZJETOmV8cZdQJ_Dnyb57Ua2CASONsQCMdTOsY,7524
103
+ klaude_code/llm/openai_compatible/input.py,sha256=rtWVjpwb9tLrinucezmncQXet8MerUxE5Gxc32sfDr4,3750
104
+ klaude_code/llm/openai_compatible/stream_processor.py,sha256=ckOBWZ_iUqgcESD5pnvjqJxvPI7YA4k9DYZkZ37KbmE,3388
102
105
  klaude_code/llm/openai_compatible/tool_call_accumulator.py,sha256=kuw3ceDgenQz2Ccc9KYqBkDo6F1sDb5Aga6m41AIECA,4071
103
106
  klaude_code/llm/openrouter/__init__.py,sha256=_As8lHjwj6vapQhLorZttTpukk5ZiCdhFdGT38_ASPo,69
104
- klaude_code/llm/openrouter/client.py,sha256=oq8VPmehAdSK9wsnKCNDRmkicEbeZ4sjy7bPfuWBNPc,9101
105
- klaude_code/llm/openrouter/input.py,sha256=JrO3T8XMRumjwDoP4sc1UKTU9K_BFot63pi83sUN-IE,5901
107
+ klaude_code/llm/openrouter/client.py,sha256=R7baVbNrxS4vvZnPjhNo7nxqznYlv0_nFkQy7Yhh2XU,7854
108
+ klaude_code/llm/openrouter/input.py,sha256=2GuDVHd_74ZtHQyFyTGhZqtWjM7m5GYqFtKf--AvmlI,5059
106
109
  klaude_code/llm/openrouter/reasoning_handler.py,sha256=TYIHdwMopi8DVqOpeN3vpyp-GcWOZgTeRnT5QvlK70U,8100
107
110
  klaude_code/llm/registry.py,sha256=KBKSelBLlGooInpzfVztN6OZqqfc0WzmB-cT8lE5fw8,686
108
111
  klaude_code/llm/responses/__init__.py,sha256=WsiyvnNiIytaYcaAqNiB8GI-5zcpjjeODPbMlteeFjA,67
109
- klaude_code/llm/responses/client.py,sha256=f1CoXjst1orWQ7eZujpOCBTrUfX0DLU5YTezEna68Lw,10594
112
+ klaude_code/llm/responses/client.py,sha256=vyCgo4spD6-63Pm0-3ha1AaEB5uwIG9A6GYH3dAFvH0,9293
110
113
  klaude_code/llm/responses/input.py,sha256=hnTnOGpo1-N_vsi7C3O_PJoj-Gf1cBdt9Q1sal3vhYM,6079
111
- klaude_code/llm/usage.py,sha256=CsZ3eAkt8lwJ47r0UV1fThu32tBBPAr-Zjc_-xq63rY,4302
114
+ klaude_code/llm/usage.py,sha256=Qkfq3iK66MZiqrjyf4mTOgElYW2yORECpiclXYHhyZM,5486
112
115
  klaude_code/protocol/__init__.py,sha256=aGUgzhYqvhuT3Mk2vj7lrHGriH4h9TSbqV1RsRFAZjQ,194
113
- klaude_code/protocol/commands.py,sha256=zoqyBSpFZI8q8LP3rlr1mR-ekCufx-DfPGbzqsgx7X8,544
114
- klaude_code/protocol/events.py,sha256=Pw8lY7rJLwk-FjKWtX8C_-Op7p0KWLaI-PH1_U7Uoyg,3290
116
+ klaude_code/protocol/commands.py,sha256=ulHcHvvRbJosmp51l-xNio8ImDEI8uVmG17wVH2kg90,580
117
+ klaude_code/protocol/events.py,sha256=exOriAIxdIzS7WDKCw3am-uw1egx_8tVbvcgO6s3nMI,3562
115
118
  klaude_code/protocol/llm_param.py,sha256=Hjq8Z-3nGhAJovf-lcsNc0kBVGRDWKe910J5lZwQfq4,4424
116
- klaude_code/protocol/model.py,sha256=7pSKURu6FLetkD6MlnpGZqTXclJSv6Uxj1GgreVs0XM,7816
119
+ klaude_code/protocol/model.py,sha256=w0qFg4qUEdch7g9_ppjxSxdlPhajvENZklVErSLH6Cg,11972
117
120
  klaude_code/protocol/op.py,sha256=rkPvDRsOgPyibMI1n0pDO7ghFWJBfDGas9BnACtmfO4,2654
118
121
  klaude_code/protocol/op_handler.py,sha256=_lnv3-RxKkrTfGTNBlQ23gbHJBEtMLC8O48SYWDtPjE,843
119
- klaude_code/protocol/sub_agent.py,sha256=M17Cu58xC40j2pQF0cjeFaGtfLOMjiNIHNzE7Ej50LQ,13419
122
+ klaude_code/protocol/sub_agent.py,sha256=dPOG0rGQJEpx2w0FtXodP0VsJLnCtPa5vIAP4eZ1iq8,13548
120
123
  klaude_code/protocol/tools.py,sha256=hkjVirnQqGTJS46IWvVKXWR4usPPUgDZDnm34LzAVSc,348
121
124
  klaude_code/session/__init__.py,sha256=oXcDA5w-gJCbzmlF8yuWy3ezIW9DgFBNUs-gJHUJ-Rc,121
122
- klaude_code/session/export.py,sha256=lmU_X_NjNP3G8SNF2dxZk2wp4Q4S0KM4UYU200fZE5s,23573
125
+ klaude_code/session/export.py,sha256=rB6s4gJUn7ZjGDwsh8yEQx92XR7_iI6YB9jg_FZpsYA,24363
123
126
  klaude_code/session/selector.py,sha256=HTboyzih7V8zbZoSsArJ-GVC1EnXTGocHJwFmZfbeSg,2567
124
- klaude_code/session/session.py,sha256=KLE3QUNvt8d7Zu_Mj2x6rdHygzsUtLsvMzQbsiIOrKg,19195
125
- klaude_code/session/templates/export_session.html,sha256=q8CradCANsE2uj00qnH6v1KV5QZQPHSWzxXcVCVT0qk,41406
127
+ klaude_code/session/session.py,sha256=zZHuZaLjd3OUMUL_Qrczq5JM1vMZqpegk-tV767e9Fk,19618
128
+ klaude_code/session/templates/export_session.html,sha256=O25hJaq2WnKFswZSxJOzufGj0WYmva9IQjwod2mzYRc,41537
126
129
  klaude_code/trace/__init__.py,sha256=B-S4qdCj8W88AaC_gVmhTaejH6eLYClBVh2Q6aGAVBk,184
127
130
  klaude_code/trace/log.py,sha256=0K0uek2KWq0zkUZijcO-TBM6STLe-h_8IIW0lx7V7ZA,4865
128
131
  klaude_code/ui/__init__.py,sha256=AL1Ro0u8ObNPMj4sci_U4zakG7IpnI3bie-C63E2QPI,2873
@@ -135,28 +138,28 @@ klaude_code/ui/modes/debug/__init__.py,sha256=1-1tAk7FtENdYzExSttYdHiJ-qH3DIQ5yY
135
138
  klaude_code/ui/modes/debug/display.py,sha256=11I-JN9OEz2zBIqhEXctSUaDO1Z0nT_cG8R78jIBftk,1067
136
139
  klaude_code/ui/modes/exec/__init__.py,sha256=RsYa-DmDJj6g7iXb4H9mm2_Cu-KDQOD10RJd3yhVf_k,12
137
140
  klaude_code/ui/modes/exec/display.py,sha256=m2kkgaUoGD9rEVUmcm7Vs_PyAI2iruKCJYRhANjSsKo,1965
138
- klaude_code/ui/modes/repl/__init__.py,sha256=WlSaybzk2M3Dngf8mJZWr5vx-yJpeph7lTb5Nm9fMRo,1635
141
+ klaude_code/ui/modes/repl/__init__.py,sha256=JursXYxevw0hrezE-urGo25962InIXVPj_uYnPafN-U,1528
139
142
  klaude_code/ui/modes/repl/clipboard.py,sha256=_WVLgv-4mprERmcw7iRYTunrSUU51-oojp_hFCM3gVk,5117
140
143
  klaude_code/ui/modes/repl/completers.py,sha256=V6pxi61w1z0B1eDliudahBQJ6wkPXAGI4AaBg8J0XtE,18283
141
144
  klaude_code/ui/modes/repl/display.py,sha256=v-Jxe7MWpOCEsx9FFEzqKaIg0jLS7ZU9bevooBjxxEQ,2242
142
- klaude_code/ui/modes/repl/event_handler.py,sha256=5I8Ds1AfUF9eZtKiq99p_Vh3GMB-VV8YjWvwDuUv96c,15812
145
+ klaude_code/ui/modes/repl/event_handler.py,sha256=qZdyDmPN_KsMYjkGlm6-H4Owqo5JVGH-XB0x7h9YKz8,18797
143
146
  klaude_code/ui/modes/repl/input_prompt_toolkit.py,sha256=wwXTQ_ZP70y_SgIQenttY82aBZDsRYhxerEqm46gpOM,7592
144
147
  klaude_code/ui/modes/repl/key_bindings.py,sha256=Px-QdRHkzvb2fDGg5d3JHic5ieiGiPcXorPJ5bAM8dI,7801
145
- klaude_code/ui/modes/repl/renderer.py,sha256=o1QubSm9lej-bVZ1G3ie-5qRxgPMDUo42kC9dTZRkvU,11893
148
+ klaude_code/ui/modes/repl/renderer.py,sha256=G7K9HXqFKLdEvWgz3JpruJk02RBULqq7-GSu_gCkP-A,11962
146
149
  klaude_code/ui/renderers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
147
150
  klaude_code/ui/renderers/assistant.py,sha256=Dxy6v4pX28RyWhnrjBteY8_NvDIi_jQa-j0mWt-eqWY,569
148
151
  klaude_code/ui/renderers/common.py,sha256=TPH7LCbeJGqB8ArTsVitqJHEyOxHU6nwnRtvF04nLJ4,184
149
- klaude_code/ui/renderers/developer.py,sha256=hVSpAKx-b9MJUBxKgYd4rY-3J-O4g7wpjbp88M_k6nU,6182
152
+ klaude_code/ui/renderers/developer.py,sha256=fE-9LRzVLiKnK3ctFcuDDP_eehohhsgPCH_tYaOp-xs,6378
150
153
  klaude_code/ui/renderers/diffs.py,sha256=P--aLjvZy4z77FDx6uM9LlIYVjYlyZwj0MncdJTO2AA,7691
151
154
  klaude_code/ui/renderers/errors.py,sha256=c_fbnoNOnvuI3Bb24IujwV8Mpes-qWS_xCWfAcBvg6A,517
152
- klaude_code/ui/renderers/metadata.py,sha256=tFmekiQ70Rfulj0cqE7AeKVlVjOD6KVEFAIhFuzpTvc,7195
155
+ klaude_code/ui/renderers/metadata.py,sha256=od1MYeD2776I4rkvV2B3Nv6lzPbYsDXxazEBu13cqHM,8815
153
156
  klaude_code/ui/renderers/sub_agent.py,sha256=3cyn95pu4IniOJyWW4vfQ-X72iLufQ3LT9CkAQMuF4k,2686
154
157
  klaude_code/ui/renderers/thinking.py,sha256=jzDfvYuwpafndmBMMb6UumGxur9iFi_X0LYIo08eDlw,1179
155
- klaude_code/ui/renderers/tools.py,sha256=0Ekh5p7kwUYCuPfVrU-OAoLptt6Onx_jE9awBfxCm3I,20426
158
+ klaude_code/ui/renderers/tools.py,sha256=kHxInHy9N3n4Np0svQsy6JUDjlUzG0gr2-7t4WG58YA,19564
156
159
  klaude_code/ui/renderers/user_input.py,sha256=rDdOYvbgJ6oePQAtyTCK-KhARfLKytpTZboZ-cFIuJQ,2603
157
160
  klaude_code/ui/rich/__init__.py,sha256=olvMm2SteyKioOqUJbEoav2TsDr_mtKqkSaifNumjwc,27
158
161
  klaude_code/ui/rich/live.py,sha256=Uid0QAZG7mHb4KrCF8p9c9n1nHLHzW75xSqcLZ4bLWY,2098
159
- klaude_code/ui/rich/markdown.py,sha256=hvL0uvMxUBi7II-Jizn9U92mk4flJpEh_xJkxDQhEK8,11425
162
+ klaude_code/ui/rich/markdown.py,sha256=XYJoTAiNnXXWySxwmlPuAGWelV6sZgQ6foZUX_s43IE,11461
160
163
  klaude_code/ui/rich/quote.py,sha256=tZcxN73SfDBHF_qk0Jkh9gWBqPBn8VLp9RF36YRdKEM,1123
161
164
  klaude_code/ui/rich/searchable_text.py,sha256=Adr2EFewX1UInypz-vMOUgZP9gk3Zk8_d2utWhV3K90,2452
162
165
  klaude_code/ui/rich/status.py,sha256=sHTenGYERGiLwnkwdGFjFw9WDbbnMSPTKeEJiSYYNaU,8503
@@ -170,7 +173,7 @@ klaude_code/ui/utils/__init__.py,sha256=YEsCLjbCPaPza-UXTPUMTJTrc9BmNBUP5CbFWlsh
170
173
  klaude_code/ui/utils/common.py,sha256=xzw-Mgj0agxrf22QxpH7YzVIpkMXIRY6SgXWtLYF0yU,2881
171
174
  klaude_code/ui/utils/debouncer.py,sha256=TFF1z7B7-FxONEigkYohhShDlqo4cOcqydE9zz7JBHc,1270
172
175
  klaude_code/version.py,sha256=QDgEqSFhyTSiABQFQc9VfujMPQcdjgoCaYTQsr94x0Q,4752
173
- klaude_code-1.2.7.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
174
- klaude_code-1.2.7.dist-info/entry_points.txt,sha256=7CWKjolvs6dZiYHpelhA_FRJ-sVDh43eu3iWuOhKc_w,53
175
- klaude_code-1.2.7.dist-info/METADATA,sha256=B8198x-bOx9HK5McY8m6q4WtnFLQ3evMLkYDhorFLtM,5140
176
- klaude_code-1.2.7.dist-info/RECORD,,
176
+ klaude_code-1.2.9.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
177
+ klaude_code-1.2.9.dist-info/entry_points.txt,sha256=7CWKjolvs6dZiYHpelhA_FRJ-sVDh43eu3iWuOhKc_w,53
178
+ klaude_code-1.2.9.dist-info/METADATA,sha256=7XSISIuiSdvBL_sDMhmtwSaYCDu_kr77v32LpiumUHY,5140
179
+ klaude_code-1.2.9.dist-info/RECORD,,