klaude-code 2.3.0__py3-none-any.whl → 2.4.1__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 (54) hide show
  1. klaude_code/cli/list_model.py +3 -3
  2. klaude_code/cli/main.py +2 -2
  3. klaude_code/config/assets/builtin_config.yaml +165 -307
  4. klaude_code/config/config.py +17 -17
  5. klaude_code/config/{select_model.py → model_matcher.py} +7 -7
  6. klaude_code/config/sub_agent_model_helper.py +1 -10
  7. klaude_code/config/thinking.py +2 -2
  8. klaude_code/core/agent_profile.py +9 -23
  9. klaude_code/core/executor.py +72 -70
  10. klaude_code/core/tool/file/diff_builder.py +25 -18
  11. klaude_code/llm/anthropic/client.py +5 -5
  12. klaude_code/llm/client.py +1 -1
  13. klaude_code/llm/codex/client.py +2 -2
  14. klaude_code/llm/google/client.py +6 -6
  15. klaude_code/llm/input_common.py +2 -2
  16. klaude_code/llm/openai_compatible/client.py +3 -3
  17. klaude_code/llm/openai_compatible/stream.py +1 -1
  18. klaude_code/llm/openrouter/client.py +4 -4
  19. klaude_code/llm/openrouter/input.py +1 -3
  20. klaude_code/llm/responses/client.py +5 -5
  21. klaude_code/protocol/events/__init__.py +7 -1
  22. klaude_code/protocol/events/chat.py +10 -0
  23. klaude_code/protocol/llm_param.py +1 -1
  24. klaude_code/protocol/model.py +0 -26
  25. klaude_code/protocol/op.py +0 -5
  26. klaude_code/session/session.py +4 -2
  27. klaude_code/tui/command/clear_cmd.py +0 -1
  28. klaude_code/tui/command/command_abc.py +6 -4
  29. klaude_code/tui/command/copy_cmd.py +10 -10
  30. klaude_code/tui/command/debug_cmd.py +11 -10
  31. klaude_code/tui/command/export_online_cmd.py +18 -23
  32. klaude_code/tui/command/fork_session_cmd.py +39 -43
  33. klaude_code/tui/command/model_cmd.py +5 -7
  34. klaude_code/tui/command/{model_select.py → model_picker.py} +3 -5
  35. klaude_code/tui/command/refresh_cmd.py +0 -1
  36. klaude_code/tui/command/registry.py +15 -21
  37. klaude_code/tui/command/resume_cmd.py +10 -16
  38. klaude_code/tui/command/status_cmd.py +8 -12
  39. klaude_code/tui/command/sub_agent_model_cmd.py +11 -16
  40. klaude_code/tui/command/terminal_setup_cmd.py +8 -11
  41. klaude_code/tui/command/thinking_cmd.py +4 -6
  42. klaude_code/tui/commands.py +5 -0
  43. klaude_code/tui/components/command_output.py +96 -0
  44. klaude_code/tui/components/developer.py +3 -110
  45. klaude_code/tui/components/welcome.py +2 -2
  46. klaude_code/tui/input/prompt_toolkit.py +6 -8
  47. klaude_code/tui/machine.py +5 -0
  48. klaude_code/tui/renderer.py +5 -5
  49. klaude_code/tui/runner.py +0 -6
  50. klaude_code/tui/terminal/selector.py +7 -8
  51. {klaude_code-2.3.0.dist-info → klaude_code-2.4.1.dist-info}/METADATA +21 -74
  52. {klaude_code-2.3.0.dist-info → klaude_code-2.4.1.dist-info}/RECORD +54 -53
  53. {klaude_code-2.3.0.dist-info → klaude_code-2.4.1.dist-info}/WHEEL +0 -0
  54. {klaude_code-2.3.0.dist-info → klaude_code-2.4.1.dist-info}/entry_points.txt +0 -0
@@ -53,20 +53,19 @@ def build_model_select_items(models: list[Any]) -> list[SelectItem[str]]:
53
53
 
54
54
  items: list[SelectItem[str]] = []
55
55
  for idx, m in enumerate(models, 1):
56
- model_id = m.model_params.model or "N/A"
57
- # Display the base model name only; provider stays in the meta section.
56
+ model_id_str = m.model_id or "N/A"
58
57
  display_name = m.model_name
59
58
  first_line_prefix = f"{display_name:<{max_model_name_length}} → "
60
- meta_parts: list[str] = [m.provider]
61
- meta_parts.extend(format_model_params(m.model_params))
62
- meta_str = " · ".join(meta_parts)
59
+ provider_model = f"{m.provider}/{model_id_str}"
60
+ meta_parts = format_model_params(m)
61
+ meta_str = " · ".join(meta_parts) if meta_parts else ""
63
62
  title = [
64
63
  ("class:meta", f"{idx:>{num_width}}. "),
65
64
  ("class:msg", first_line_prefix),
66
- ("class:msg bold", model_id),
67
- ("class:meta", f" {meta_str}\n"),
65
+ ("class:msg bold", provider_model),
66
+ ("class:meta", f" {meta_str}\n" if meta_str else "\n"),
68
67
  ]
69
- search_text = f"{m.selector} {m.model_name} {model_id} {m.provider}"
68
+ search_text = f"{m.selector} {m.model_name} {model_id_str} {m.provider}"
70
69
  items.append(SelectItem(title=title, value=m.selector, search_text=search_text))
71
70
 
72
71
  return items
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: klaude-code
3
- Version: 2.3.0
3
+ Version: 2.4.1
4
4
  Summary: Minimal code agent CLI
5
5
  Requires-Dist: anthropic>=0.66.0
6
6
  Requires-Dist: chardet>=5.2.0
@@ -155,95 +155,42 @@ Open in editor:
155
155
  klaude config
156
156
  ```
157
157
 
158
- ##### Adding Models to Built-in Providers
158
+ ##### Model Configuration
159
159
 
160
- You can add custom models to existing built-in providers without redefining the entire provider. Just reference the `provider_name` and add your `model_list`:
160
+ You can add custom models to built-in providers or define new ones. Configuration is inherited from built-in providers by matching `provider_name`.
161
161
 
162
162
  ```yaml
163
163
  # ~/.klaude/klaude-config.yaml
164
164
  provider_list:
165
- - provider_name: openrouter # Reference existing built-in provider
166
- model_list:
167
- - model_name: seed
168
- model_params:
169
- model: bytedance-seed/seed-1.6 # Model ID from OpenRouter
170
- context_limit: 262000
171
- cost:
172
- input: 0.25
173
- output: 2
174
- ```
175
-
176
- **How merging works:**
177
- - Your models are merged with the built-in models for that provider
178
- - You only need `provider_name` and `model_list` - protocol, api_key, etc. are inherited from the built-in config
179
- - To override a built-in model, use the same `model_name` (e.g., `sonnet` to customize the built-in sonnet)
180
-
181
- **More examples:**
182
-
183
- ```yaml
184
- provider_list:
185
- # Add multiple models to OpenRouter
165
+ # Add/Override models for built-in OpenRouter provider
186
166
  - provider_name: openrouter
187
167
  model_list:
188
168
  - model_name: qwen-coder
189
- model_params:
190
- model: qwen/qwen-2.5-coder-32b-instruct
191
- context_limit: 131072
192
- cost:
193
- input: 0.3
194
- output: 0.9
195
- - model_name: llama-405b
196
- model_params:
197
- model: meta-llama/llama-3.1-405b-instruct
198
- context_limit: 131072
199
- cost:
200
- input: 0.8
201
- output: 0.8
202
-
203
- # Add models to Anthropic provider
204
- - provider_name: anthropic
205
- model_list:
206
- - model_name: haiku@ant
207
- model_params:
208
- model: claude-3-5-haiku-20241022
209
- context_limit: 200000
210
- cost:
211
- input: 1.0
212
- output: 5.0
213
- ```
214
-
215
- After adding models, run `klaude list` to verify they appear in the model list.
216
-
217
- ##### Overriding Provider Settings
218
-
219
- Override provider-level settings (like api_key) while keeping built-in models:
220
-
221
- ```yaml
222
- provider_list:
223
- - provider_name: anthropic
224
- api_key: sk-my-custom-key # Override the default ${ANTHROPIC_API_KEY}
225
- # Built-in models (sonnet, opus) are still available
226
- ```
227
-
228
- ##### Adding New Providers
229
-
230
- For providers not in the built-in list, you must specify `protocol`:
231
-
232
- ```yaml
233
- provider_list:
234
- - provider_name: my-azure-openai
169
+ model_id: qwen/qwen-2.5-coder-32b-instruct
170
+ context_limit: 131072
171
+ cost: { input: 0.3, output: 0.9 }
172
+ - model_name: sonnet # Override built-in sonnet params
173
+ model_id: anthropic/claude-3.5-sonnet
174
+ context_limit: 200000
175
+
176
+ # Add a completely new provider
177
+ - provider_name: my-azure
235
178
  protocol: openai
236
179
  api_key: ${AZURE_OPENAI_KEY}
237
180
  base_url: https://my-instance.openai.azure.com/
238
181
  is_azure: true
239
182
  azure_api_version: "2024-02-15-preview"
240
183
  model_list:
241
- - model_name: gpt-4-azure
242
- model_params:
243
- model: gpt-4
244
- context_limit: 128000
184
+ - model_name: gpt-4
185
+ model_id: gpt-4-deploy-name
186
+ context_limit: 128000
245
187
  ```
246
188
 
189
+ **Key Tips:**
190
+ - **Merging**: If `provider_name` matches a built-in provider, settings like `protocol` and `api_key` are inherited.
191
+ - **Overriding**: Use the same `model_name` as a built-in model to override its parameters.
192
+ - **Environment Variables**: Use `${VAR_NAME}` syntax for secrets.
193
+
247
194
  ##### Supported Protocols
248
195
 
249
196
  - `anthropic` - Anthropic Messages API
@@ -17,23 +17,23 @@ klaude_code/cli/auth_cmd.py,sha256=4h59A0UrNBCAf_IL_tVU3GY4kxraoab3CTjgCdKvJGM,6
17
17
  klaude_code/cli/config_cmd.py,sha256=ZDNt1qtXbiWtFJBIaqtfqKrGHXQ1X-NHBeu1k1DoO1o,3391
18
18
  klaude_code/cli/cost_cmd.py,sha256=6bL22amGEB2gfCV9KXQfN5cZYyPL6J6JVIjV65_QjJo,12471
19
19
  klaude_code/cli/debug.py,sha256=vEHOjObhrIHDAXk3q6cOgeW2NZxCx5AWM1rJ6FiJnVU,1901
20
- klaude_code/cli/list_model.py,sha256=QujNuxIRjW3xJplwz1ysZ5wtoyhTc5KQacuPIWMOJoo,13291
21
- klaude_code/cli/main.py,sha256=QUTsCqgVphSMFfuLd9apR5SdAhp_YrhHZAHjckQu8Mg,8748
20
+ klaude_code/cli/list_model.py,sha256=I3dLrbLfh-cy_FvDCYvKnFGGn9x8v04PtOCcpImUv1U,13258
21
+ klaude_code/cli/main.py,sha256=RBmCs-k6Yvcpyw1tjKqSS1HB2Ing7N93qzsr8OwbtJY,8738
22
22
  klaude_code/cli/self_update.py,sha256=mn1B7Xn1keQkbwoDURzsM2fFjorzJTNLlV-Y_NYa6fA,2708
23
23
  klaude_code/cli/session_cmd.py,sha256=IyuSkqHOLldcm8qraJWJZEme9TY5Rfqmld9NmVJuHnc,3198
24
24
  klaude_code/config/__init__.py,sha256=Qe1BeMekBfO2-Zd30x33lB70hdM1QQZGrp4DbWSQ-II,353
25
25
  klaude_code/config/assets/__init__.py,sha256=uMUfmXT3I-gYiI-HVr1DrE60mx5cY1o8V7SYuGqOmvY,32
26
- klaude_code/config/assets/builtin_config.yaml,sha256=EmYDfsQlBVWUh7_zITAr1U3TD9BpNQ36ofxZTGHEQHA,8596
26
+ klaude_code/config/assets/builtin_config.yaml,sha256=70SunejGS2fPCw4lxsqtaaCtP53uw1szuWrkvEYoftA,7023
27
27
  klaude_code/config/builtin_config.py,sha256=1rHcFWmS0k6rXeIqR6sF_OgGXSbEd4ugh9bh2N6VSS0,1494
28
- klaude_code/config/config.py,sha256=tzLb_GK-vORBwcg2qH2TLTX7eTSTOWeK4E0kG04XzsI,24003
29
- klaude_code/config/select_model.py,sha256=NZvwUE_F5ii3NaTAZ0HR16UIUuJGIl2zlSydvv_m9kc,6170
30
- klaude_code/config/sub_agent_model_helper.py,sha256=Yd74gxA8OW5X5ijeKUfRdQvrmtRH4hwgBGPeh8OsDfs,8544
31
- klaude_code/config/thinking.py,sha256=1FFN9UgPVEFyTzahTvNOM5Y4b8Bo7G1jIc93xjX3Uvk,9323
28
+ klaude_code/config/config.py,sha256=0-CLWK5oGGa5PY6o2mVkLNiaiuoaG8zp1UvQ6q0_Xxc,23948
29
+ klaude_code/config/model_matcher.py,sha256=8pYt7DhEhsjLlYS7G14k6KdDtIzcNj2fYhQQach_JTU,6110
30
+ klaude_code/config/sub_agent_model_helper.py,sha256=ntEZXocf3nGesFb8TeyGy1zoB8-yHKih4zngJRdjvf4,8040
31
+ klaude_code/config/thinking.py,sha256=RDWH8UYbeDoIKPXaCIcvVwPAh07Ntaq8w5Zn_fhm-Fk,9329
32
32
  klaude_code/const.py,sha256=vdp49j8uIjKJ_H3YrRuE3jcAEhm57EL73C--By6ZXtU,10907
33
33
  klaude_code/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
34
  klaude_code/core/agent.py,sha256=_jfe3WLE8T2twYaMpgjrFM7pwzMerirsq7YTLqpoufM,3560
35
- klaude_code/core/agent_profile.py,sha256=M3O6Ffb0WureNN_SDv5fvCrtAkpsTgFSvWitYWxyhrE,12051
36
- klaude_code/core/executor.py,sha256=k6hs1itNzT71mXxY1F5F0Y_8i4W7GZLXhzlSZa8Xk1Y,34880
35
+ klaude_code/core/agent_profile.py,sha256=iS-0lX_-UtAaj-fpk0VbOOQz6vCtHW7UQAx9xqDOrk8,11489
36
+ klaude_code/core/executor.py,sha256=LC-K6hfThs2fwPhI2pEmUe5tCW7OipSg4fAQeJhOVEo,34039
37
37
  klaude_code/core/manager/__init__.py,sha256=hdIbpnYj6i18byiWjtJIm5l7NYYDQMvafw8fePVPydc,562
38
38
  klaude_code/core/manager/llm_clients.py,sha256=X2oMFWgJcP0tK8GEtMMDYR3HyR6_H8FuyCqpzWF5x2k,871
39
39
  klaude_code/core/manager/llm_clients_builder.py,sha256=_88MvbjNK-4s3wKTdzP-GmoUVGKyD88oWXZ7oqRWF8A,1902
@@ -58,7 +58,7 @@ klaude_code/core/tool/file/_utils.py,sha256=OG4BE9WyJqzH8ilVCL3D9yvAcHk-r-L9snd-
58
58
  klaude_code/core/tool/file/apply_patch.py,sha256=LZd3pYQ9ow_TxiFnqYuzD216HmvkLX6lW6BoMd9iQRs,17080
59
59
  klaude_code/core/tool/file/apply_patch_tool.md,sha256=KVDsjUiLDa97gym0NrZNVG4jA1_zN-2i-B3upVQyOhU,59
60
60
  klaude_code/core/tool/file/apply_patch_tool.py,sha256=t7zNZW2wYpDyHutxq7nx_xSs7GbPx8UymveSR25F2-8,8079
61
- klaude_code/core/tool/file/diff_builder.py,sha256=d3n0RYBuhOD3yophmqNw4ok-da2kxerNixcTf_IXJHk,5911
61
+ klaude_code/core/tool/file/diff_builder.py,sha256=IH5Ws8LvcU66DnPfI40m_qfDyjN3mH4C1LVjC9eKYJQ,6044
62
62
  klaude_code/core/tool/file/edit_tool.md,sha256=rEcUjJuPC46t1nXWjTDxplDcxWDbzTWsr6_bYt5_aRI,1110
63
63
  klaude_code/core/tool/file/edit_tool.py,sha256=oEwm4LWmqcJbZ93CAbLP7njxZ4wnymyrx2VlBuAN8fk,10898
64
64
  klaude_code/core/tool/file/read_tool.md,sha256=74SLSl1tq3L0por73M0QV_ws41MRIvGXQpfLb8dmtp0,1351
@@ -91,49 +91,49 @@ klaude_code/core/tool/web/web_search_tool.py,sha256=ljkgXxP6L5nJnbYB_IOUtPUN9zA_
91
91
  klaude_code/core/turn.py,sha256=Xjg8PCcpug3Okl12ciWBO7EiqZxlBYtGuY2gAKV3GFk,18081
92
92
  klaude_code/llm/__init__.py,sha256=b4AsqnrMIs0a5qR_ti6rZcHwFzAReTwOW96EqozEoSo,287
93
93
  klaude_code/llm/anthropic/__init__.py,sha256=PWETvaeNAAX3ue0ww1uRUIxTJG0RpWiutkn7MlwKxBs,67
94
- klaude_code/llm/anthropic/client.py,sha256=Mch_Q1Vtzh-Mw4hPedFm2BCgGivmq4r3IJXx_w7F3Pg,12341
94
+ klaude_code/llm/anthropic/client.py,sha256=l0b4aMs7LoaowKYNdwz3_xTZVLyfKwfcKXOHbKnJmRs,12356
95
95
  klaude_code/llm/anthropic/input.py,sha256=FeNhPwP0QJS7E7kICqhRBe2hUNCYkqLf_YP5qWcI_ao,9474
96
96
  klaude_code/llm/bedrock/__init__.py,sha256=UmXPBXMmigAJ7euIh59iivSeUdrYJwum0RYU7okkkPM,86
97
97
  klaude_code/llm/bedrock/client.py,sha256=n78PIMONAMiRc-l4-mY9qOu0dhUuirmaRpmvuzWdEsk,2400
98
98
  klaude_code/llm/claude/__init__.py,sha256=8VCvvEjQQI-RpAMfHCl5ct4zlDU_jgbAuLOc9p9u-B4,61
99
99
  klaude_code/llm/claude/client.py,sha256=naQU8D0Nhj0NfqZMXnJTOSKK59zHQhhSpbaVx8XQ0JU,4026
100
- klaude_code/llm/client.py,sha256=yZ_ob0BERRjrOc3t_kJioIdMioghXdOYUErH67zME2k,1002
100
+ klaude_code/llm/client.py,sha256=NI8ZX0sKbO3L3CGOr2uuVgSQFU7tYPLRpr-xd6jscQk,1005
101
101
  klaude_code/llm/codex/__init__.py,sha256=8vN2j2ezWB_UVpfqQ8ooStsBeLL5SY4SUMXOXdWiMaI,132
102
- klaude_code/llm/codex/client.py,sha256=kLHAmNwyijwzAKsFnC-5NBXboJTVvEqMcQylQLO-P4M,5522
102
+ klaude_code/llm/codex/client.py,sha256=K7AthuwszD4w3TiRCyuJ75MEzxoC-oclt0FNQW3wQQ0,5528
103
103
  klaude_code/llm/google/__init__.py,sha256=tQtf_mh_mC3E4S9XAsnhS2JZXGRnYUsBKF0jpXZTvM0,61
104
- klaude_code/llm/google/client.py,sha256=SfNgAHKYcL-V4NGEET34lFkSTFE5NdHjsRJK4h1lZeI,13721
104
+ klaude_code/llm/google/client.py,sha256=P9K6O1Cd2WHozh79HLzufB257x_in-vErMaC_AjfSfk,13739
105
105
  klaude_code/llm/google/input.py,sha256=EVO-EHbLeD8mSW_3sglfboJzGUwGt2zXqoNRmw__Cbo,8378
106
106
  klaude_code/llm/image.py,sha256=jt9FBPFhAIo48pauIEJMIhB9WuDt4wwNs9s3LiEsETE,4272
107
- klaude_code/llm/input_common.py,sha256=B1QtRJspDXLdbvzykSn-FWjyi1047GeTmQnaAicCCAg,6219
107
+ klaude_code/llm/input_common.py,sha256=-GnZ87BfzyGqXTP3WYflFOqbRcbKpJjE9mjIv8qKWsQ,6228
108
108
  klaude_code/llm/openai_compatible/__init__.py,sha256=ACGpnki7k53mMcCl591aw99pm9jZOZk0ghr7atOfNps,81
109
- klaude_code/llm/openai_compatible/client.py,sha256=jAcIJc7SPd7IgpFNbp-rBcPFVNcRqgSEar-shf8z1RI,5007
109
+ klaude_code/llm/openai_compatible/client.py,sha256=lG2HzCb27WWc8KgT07brbGMO0SxjXQ3hDDDeEOkae6Y,5016
110
110
  klaude_code/llm/openai_compatible/input.py,sha256=VpgT2wbph6bFsB6OFWKnIdjE32W_gKA_p39T-xuJPrE,3217
111
- klaude_code/llm/openai_compatible/stream.py,sha256=1z3d5rEX-RxNse2aSlqiF_EsUiNTGb4WleNeIF6HXaI,12986
111
+ klaude_code/llm/openai_compatible/stream.py,sha256=9iNmTuatbVsXpcFwLm3_x980X06vKdQ424vSjEhEpKY,12989
112
112
  klaude_code/llm/openai_compatible/tool_call_accumulator.py,sha256=quajimkUR1uSIPVXYsVNiQSTnOSVt7WuyZ23RyT7lJs,4906
113
113
  klaude_code/llm/openrouter/__init__.py,sha256=_As8lHjwj6vapQhLorZttTpukk5ZiCdhFdGT38_ASPo,69
114
- klaude_code/llm/openrouter/client.py,sha256=49kXzl4vsddU5zaTfM8dpTezgwd8LIpVPJ9ACK7Dro0,6017
115
- klaude_code/llm/openrouter/input.py,sha256=qlBCkPCQEZTZU_aWWPf-11zjwHh9qa468xgk9jIVg04,6198
114
+ klaude_code/llm/openrouter/client.py,sha256=ccxzTgfoRz4gSC4s5R49RULW7C8fYK32_992GQMEP2Q,6029
115
+ klaude_code/llm/openrouter/input.py,sha256=Z_Cf6TnMZ5KQNJ0E5IIDCKK2OWlzi8IW0S5A72BBGT0,6176
116
116
  klaude_code/llm/openrouter/reasoning.py,sha256=S0s3OAyfFVm5lHYmQqB3ZIUZlbnlV5zB2gNT3ZRbDZs,4335
117
117
  klaude_code/llm/registry.py,sha256=wEf9wvbb9CMvlNDtndKzKY5LN3zqEJYPI2v9kIrqfGI,2235
118
118
  klaude_code/llm/responses/__init__.py,sha256=WsiyvnNiIytaYcaAqNiB8GI-5zcpjjeODPbMlteeFjA,67
119
- klaude_code/llm/responses/client.py,sha256=vb8w749A7xJyRSj6mlVw51rFRgCtpDvhMApJzU07Vjo,12581
119
+ klaude_code/llm/responses/client.py,sha256=i4-mgE2kDSBP8ynH0lQiuUVDakEu2ZXwQjPV8t3c4dw,12596
120
120
  klaude_code/llm/responses/input.py,sha256=T2mAzSR7-z7AFkUjw33c1U3UCBkGX9hlLJVJk5EUnzg,9178
121
121
  klaude_code/llm/usage.py,sha256=Hukt4hKGUb2EnmwGy2-1Ku0oxEI6J7gOU0EsOSBBJAk,5034
122
122
  klaude_code/log.py,sha256=vyCuV18DX0miengbJF9510UsBrWidSln-CM6pVCe0GA,9301
123
123
  klaude_code/protocol/__init__.py,sha256=TTPnuyQ22RypoTGKdoiS7ZEgHzinuaRHUrauzHDh7Xo,246
124
124
  klaude_code/protocol/commands.py,sha256=HuAwIUHfw77F2mKTKO2xnrOkmrnJPvoFE78ELJ2RDJQ,962
125
- klaude_code/protocol/events/__init__.py,sha256=2KaHK32Bpo17eHiwVNEHmbdJOtjG3vO0NrbyLxJlkg8,1606
125
+ klaude_code/protocol/events/__init__.py,sha256=5WoUQzj3P7Lih6xO6keaJmaLOyxboO1OtOPavrNNj24,1673
126
126
  klaude_code/protocol/events/base.py,sha256=QfqgksjA2Hj-ClmwKVeJ7QA6Z7YdzjswO1NfAVnPCoI,335
127
- klaude_code/protocol/events/chat.py,sha256=FB-fLLii7TN7r0FrvfgrhZT2x4sRsivjKHV8J2b5Bsw,426
127
+ klaude_code/protocol/events/chat.py,sha256=mI_Ks5IIU1ZiywclQYxzhSsGA3ga7ACKShU6d9_KqSs,731
128
128
  klaude_code/protocol/events/lifecycle.py,sha256=5csZkv3oZIuLzs_7H84v8HgAYwbjIjkZOHfjxq9YfxM,357
129
129
  klaude_code/protocol/events/metadata.py,sha256=oVZ1zanGcTEFkHW8fLEqS2Z1A9e1MMcjLOcNwUUuCBI,285
130
130
  klaude_code/protocol/events/streaming.py,sha256=U1plGQSTeGZa3E4fIxW_fHXJpuv_DSIBrmGh1l4Fm54,708
131
131
  klaude_code/protocol/events/system.py,sha256=ihWZLNyPO0xvHAVjMkbGt2FqL8m-ZVreq-MTZLfxQnc,1453
132
132
  klaude_code/protocol/events/tools.py,sha256=8ds_8Zj-wQWvHNAvNt1-fSIHeDffw1dsLWI7ByrAqcM,617
133
- klaude_code/protocol/llm_param.py,sha256=nyk5bW3AF8KziDawcImwDLiFiv07bu1ci62TslWxUkg,5161
133
+ klaude_code/protocol/llm_param.py,sha256=DSCxBdFSdQV8qOhEjjjYNapgA3v4TBkN5V9HgEWho_k,5164
134
134
  klaude_code/protocol/message.py,sha256=pu-wvInS781y-qSKbl9MqO7k3CtAN7Yu4hUHJCXKjZQ,6210
135
- klaude_code/protocol/model.py,sha256=tBwvGlmsI_GPsYrCuk5-QHqC-v0UgBSdm9UjEPOvTiM,10805
136
- klaude_code/protocol/op.py,sha256=_H4l6POFukwOW-Bkps58RWePuRMNNtKEQ0mxwcBxnGU,6314
135
+ klaude_code/protocol/model.py,sha256=JYiJxmtC7FHnUTwHvuikdrtgbjRvx9zRinOEWpetZu0,10117
136
+ klaude_code/protocol/op.py,sha256=pYmvSyVrVr6LlJUiSN2GKwXiDX8meCoxYKNYHXdTKGE,5965
137
137
  klaude_code/protocol/op_handler.py,sha256=B-dmye-6fgQNUDSa2s9cnHogz_Jl4yoQ9EiNgkgjjtA,1973
138
138
  klaude_code/protocol/sub_agent/AGENTS.md,sha256=DHeHl11PYprTOQxInENCEnwnh3kIztBLjvETkwWAO08,1299
139
139
  klaude_code/protocol/sub_agent/__init__.py,sha256=RKPFJawd0AB7nRYBxdwuG-14D8pT6HF1-DPCTAxwohI,3784
@@ -146,7 +146,7 @@ klaude_code/session/__init__.py,sha256=4sw81uQvEd3YUOOjamKk1KqGmxeb4Ic9T1Tee5zzt
146
146
  klaude_code/session/codec.py,sha256=a374UZkOusn9MgFCc--yznDljK_4Qfy6yDPfhQq5_P0,1889
147
147
  klaude_code/session/export.py,sha256=Oa0BdrqipFGkGp62dAsvQ-bPQr0HFAQBpAb7OmgaNno,38926
148
148
  klaude_code/session/selector.py,sha256=snBpnz9UQCe_0K8HttSGCJECCE4YEzpWs_Fdmk2P9nI,2195
149
- klaude_code/session/session.py,sha256=j7BwWWiop-TofhRlrGrQOHB5Fa1UUHOoj3WFrLEQ19c,23117
149
+ klaude_code/session/session.py,sha256=iQdjVoiretvsPvVkUv1rW9z5IDnwPQ6RuFAp-gATF9o,23162
150
150
  klaude_code/session/store.py,sha256=HRrmFzwEVdExqDQlT9FBZOhlFtQmM9Im9zco8pzvUMY,6455
151
151
  klaude_code/session/templates/export_session.html,sha256=GRSx1dfRKCSNgKqP51Rs6mT6xWo_ntZrep4-ZzlKru8,125862
152
152
  klaude_code/session/templates/mermaid_viewer.html,sha256=Y_wEWFm4mKWpfAz3YMis5DdLEkhw_2d8CpU6jbvGZow,27842
@@ -161,30 +161,31 @@ klaude_code/skill/manager.py,sha256=qPUaZmbKO6f6kF-a948spinRQTCHB4ek7k9TV3elaTE,
161
161
  klaude_code/skill/system_skills.py,sha256=ryGN07t0Xv2Yn_Prfq072tdIN0Dp4ZpdXLTl7O7rCkg,6122
162
162
  klaude_code/tui/__init__.py,sha256=Q8-0D-uesw3oFwHcFLD5UaWlTFbrj8qV7dSn6C6_g_o,274
163
163
  klaude_code/tui/command/__init__.py,sha256=qeQYDQ93mCOgP4SdHTXcMvrqQ8xdmMiNH-nBzmMUqIw,3477
164
- klaude_code/tui/command/clear_cmd.py,sha256=Z3fk7KskzmxdLTcHcJwNkk6C8cKszDQ9FjuHBSAIpHQ,771
165
- klaude_code/tui/command/command_abc.py,sha256=CcF3P5jXIecANWovwloDp3YbIp8So5X_6AFFrc6KObc,2497
166
- klaude_code/tui/command/copy_cmd.py,sha256=hx47q08W5aVbbIzA_-EaB3pTn86gIYWlx9jOQsj3aVg,1879
167
- klaude_code/tui/command/debug_cmd.py,sha256=KkVsspq3o_b4fB2u9Qms-LJQYVI7ZGn6uvSkp3pZZgE,2744
164
+ klaude_code/tui/command/clear_cmd.py,sha256=9stN0blD24sME_xvTae0gN1r9caZA7QmLWnxzhTB4iA,744
165
+ klaude_code/tui/command/command_abc.py,sha256=sTzn0LAJguDKPrXK-0wkiadf0jQuAtuXbDMfDZJ4pqk,2438
166
+ klaude_code/tui/command/copy_cmd.py,sha256=T-r1tWpNCNeixHeTnaR5RWd7bNkjw10CsPERTNRBy3U,1789
167
+ klaude_code/tui/command/debug_cmd.py,sha256=cXi2ymcsbcJVCKfVKPvtUFPOmgNFEpwG-IcLlnkiyZY,2698
168
168
  klaude_code/tui/command/export_cmd.py,sha256=KdFlOMJ6gruKYnd_24eWJJb21t9gLVwI1FnN1s08m5U,1609
169
- klaude_code/tui/command/export_online_cmd.py,sha256=26cPEh6lJW8hwUV1i4q3Be3AThzbPHJI9FuvTfhtJFU,6163
170
- klaude_code/tui/command/fork_session_cmd.py,sha256=S64v9P7GXrHQaFb4mVqqy4hRfHDH5-2cPLSFP_i1LX8,10084
171
- klaude_code/tui/command/model_cmd.py,sha256=BQOhhvNJEiqPdRdkz4_54J1w5Jr7nq5Z7ePmlPZ3lDE,1891
172
- klaude_code/tui/command/model_select.py,sha256=gN7YNI4VA3iybefLfVPztcRymhRoqbWC9thEyq1UrHo,5743
169
+ klaude_code/tui/command/export_online_cmd.py,sha256=34De0K486wNOC5yjjPemcGTILrKQhWld2qfV3c0PUQ8,5664
170
+ klaude_code/tui/command/fork_session_cmd.py,sha256=iOrHBinISPIpX2jdfWnkS7991drUILHkiAJ5uB3pDSg,9668
171
+ klaude_code/tui/command/model_cmd.py,sha256=EnUcr_nnUm433G2HwEKKNssVE767IgQFNoc9etxPpmY,1734
172
+ klaude_code/tui/command/model_picker.py,sha256=BAQzMHuRuK0o7q3zM5x1p2pawUuhmYDAHcSLmgKwLZg,5700
173
173
  klaude_code/tui/command/prompt-init.md,sha256=a4_FQ3gKizqs2vl9oEY5jtG6HNhv3f-1b5RSCFq0A18,1873
174
174
  klaude_code/tui/command/prompt_command.py,sha256=PGGoH_ZgA-0kTtpjk19rDSsWjiZyAEoUlxnSp8B8GRQ,2764
175
- klaude_code/tui/command/refresh_cmd.py,sha256=qGFyzGrlUO2MpdVqKr14JEmyVL_q0C5mFh0H53AUR0E,1282
176
- klaude_code/tui/command/registry.py,sha256=LdVGBTK64XqGtCj2eUqU2rNdX4tbiWvmTv25HuQPnBU,7253
177
- klaude_code/tui/command/resume_cmd.py,sha256=hARQaE6R0bH8gAAFoCEpbgr_3bCOHCwmgNHVra30jRY,4133
178
- klaude_code/tui/command/status_cmd.py,sha256=laqho0wP6G2OioEMQrF87RFcp2pEveCdmqxar9peHpY,5384
179
- klaude_code/tui/command/sub_agent_model_cmd.py,sha256=czf78k_9lL6XcswQLOjnA1kqT7q9vkhboL8u7TsP6Xs,6310
180
- klaude_code/tui/command/terminal_setup_cmd.py,sha256=C2kXelp8DZsMYZ08Gun-kgvtr07HIclcCNfwQtXgY18,10910
181
- klaude_code/tui/command/thinking_cmd.py,sha256=Lf4SgLi7-mtr6sIJDqOz9Zzeue_cHwWzCCl0NLE_bpY,3072
182
- klaude_code/tui/commands.py,sha256=jIQHE9Nk7bIxbNJ2cgnUgGbitRA1O8HSSceXfqjyLMk,3261
175
+ klaude_code/tui/command/refresh_cmd.py,sha256=Lisqdbm64Ma5IB7Z2Gv1dBdaGiqYbCDGFX497-gnfBM,1255
176
+ klaude_code/tui/command/registry.py,sha256=2HDrC6ZqGKSdzQAYra2TSFt1kc3tDliobjrWfgrTdX8,7028
177
+ klaude_code/tui/command/resume_cmd.py,sha256=eOEJI-vchrOP0zrLDTip7KYb1oRJp9te5aiHFtwOdFQ,3771
178
+ klaude_code/tui/command/status_cmd.py,sha256=yALYGxyUX7iVdSRAKdG526YkqOvGV9F0CJNwk8nmzu4,5164
179
+ klaude_code/tui/command/sub_agent_model_cmd.py,sha256=1xSgi-s_suC_cPJRFdIgPcV4sjvNxev77HUt9g-jvs8,5892
180
+ klaude_code/tui/command/terminal_setup_cmd.py,sha256=DfusD9c8eVkWPKGtQI0JvTgJnU_686huyzXsYE9TSEM,10639
181
+ klaude_code/tui/command/thinking_cmd.py,sha256=SG3EWNWWpV11I-4KuKpq3cHdC6eamHn6X4J8FRyRMow,2915
182
+ klaude_code/tui/commands.py,sha256=JBGmWFa31nVRmNJnfRUS9YSWIp79uw9XO0s11JY8SIM,3378
183
183
  klaude_code/tui/components/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
184
184
  klaude_code/tui/components/assistant.py,sha256=3VUIGf_BJhmoWZ5bHw-QUTMElUxp-MZQKUMWNimHKLE,904
185
185
  klaude_code/tui/components/bash_syntax.py,sha256=0Pceo8w7jbK56smaVSBzkZYgCXzqqy7Qnx6kDZOh1yA,7450
186
+ klaude_code/tui/components/command_output.py,sha256=n1bxmPTXysJrm2UERNeOxC9fyW57qm-DIjQ5DU10wxE,3737
186
187
  klaude_code/tui/components/common.py,sha256=ajslaejKj-ZnHFGcMenkmUN3k7PNKrIEZZIB74VE-rQ,4663
187
- klaude_code/tui/components/developer.py,sha256=aBgNJ-a3c3UQJIrleoqtVHB05grg0EOH-Gg-383RQek,9756
188
+ klaude_code/tui/components/developer.py,sha256=1hDr7boJN1z_JyvvFNn8m7MAf4lPDN3eoqmofE0lv4Y,5414
188
189
  klaude_code/tui/components/diffs.py,sha256=JUokkkJeTIoKD0b-c-chMzIDmMjivBQqH8DYXIA3hHs,10411
189
190
  klaude_code/tui/components/errors.py,sha256=_9ojf-23ThR-BoMwNEYG68rzILwA_O59muGvofYL10w,669
190
191
  klaude_code/tui/components/mermaid_viewer.py,sha256=MstufMnTauMKzI8cKngXpFqVo-qya20P8ReNkplYtEw,3098
@@ -202,23 +203,23 @@ klaude_code/tui/components/sub_agent.py,sha256=YfcmFzyNKuFNr0pqaJHTEf_AmkKyEN0xn
202
203
  klaude_code/tui/components/thinking.py,sha256=AXC7Xpyiu7ST-eWGLRGY7N8Dak2ny3lV3mvznmfqKmM,2890
203
204
  klaude_code/tui/components/tools.py,sha256=xqrWBDPsVtOeyE-qF_Idzr1Dhf5bjgrvl-v6svv-H3Q,26230
204
205
  klaude_code/tui/components/user_input.py,sha256=6VHH77xwUUW0rW7yv8hOwGXsmK52HEsBg9-QZVbOm1A,3427
205
- klaude_code/tui/components/welcome.py,sha256=GXws5bejMcQfChA631m8v_OWSpTuQ9P9hhaqJrY0nyg,3768
206
+ klaude_code/tui/components/welcome.py,sha256=4jYVsX1sGpAqjStM28gEN91MKd_O1quDFbunpLAZnnM,3774
206
207
  klaude_code/tui/display.py,sha256=ovM1F8GDG0gTQjOV2KaXnjE9HFHf7AtThqSIXkP6JQY,3073
207
208
  klaude_code/tui/input/__init__.py,sha256=cAB38ypo7dHo_jgXUCnoBTUKHtiriVaKCv4YepSU9SU,276
208
209
  klaude_code/tui/input/clipboard.py,sha256=HjThFB9MG_YdJ76CQv7B-IUoz5JarbWUZDbUVkH1LpY,5106
209
210
  klaude_code/tui/input/completers.py,sha256=lkDBjnqYPLMgR6AZHhx2bfT_vMW-fbV6aqY9SqRwq74,32571
210
211
  klaude_code/tui/input/key_bindings.py,sha256=2uN48J1HRHeCBqq7WrH5J82NIU59oQscce0HquAiYCI,18876
211
- klaude_code/tui/input/prompt_toolkit.py,sha256=2Yz9gn-hbFHVnjaeHod5heX2NutHTuvbo6IjuPDI_Ls,27815
212
- klaude_code/tui/machine.py,sha256=1aA2iYjCjF6VQ1x62wWtiY4Jqzn2R8-hkDOb2vNw6e8,23355
213
- klaude_code/tui/renderer.py,sha256=WD2-oHCAltp9-7EJ5KwivXmVIQydwe3JT33N_TuJcUo,29424
214
- klaude_code/tui/runner.py,sha256=crdwlPcqSrqG0HNsuzd6yfrFHMTZa4GNAeQzjq788eA,11542
212
+ klaude_code/tui/input/prompt_toolkit.py,sha256=O3EZG1yOgaxrILbmQf4srVuBqDtkShpkxU3LecMP5o8,27790
213
+ klaude_code/tui/machine.py,sha256=c02JvEuWeBk-TmqPCk9G6efsNhwh7yY_Xi3z6kz-zqw,23512
214
+ klaude_code/tui/renderer.py,sha256=3VXxFe08n0WVkHt5_vOOBCploVPA_SQUgZsXnv5KI_A,29451
215
+ klaude_code/tui/runner.py,sha256=nOq8wC78HzgqHLRgHC8OgYubH--2gPcDqA6GoV913Yc,11270
215
216
  klaude_code/tui/terminal/__init__.py,sha256=GIMnsEcIAGT_vBHvTlWEdyNmAEpruyscUA6M_j3GQZU,1412
216
217
  klaude_code/tui/terminal/color.py,sha256=6SJR2RA8cqJINNoRz65w0HL3x9g46ydIvDOGWMeNnQU,7195
217
218
  klaude_code/tui/terminal/control.py,sha256=m2fL6uHum5Li25X2IPnI4z_oVzMpVYcSldB-r0NLLzk,4920
218
219
  klaude_code/tui/terminal/image.py,sha256=ytzmw1J3fmaq49nWTDRmK_7aMIGbdUPCtVccSpVRHxY,1195
219
220
  klaude_code/tui/terminal/notifier.py,sha256=-aTtgRvpzQcfbkOfbeDOfUs3l9smNBZX-60G9f0326Y,4643
220
221
  klaude_code/tui/terminal/progress_bar.py,sha256=Go-0_ZodrmJVaQodaPnyxVU2nkpkBaYLnZBqwAUQukE,2133
221
- klaude_code/tui/terminal/selector.py,sha256=mxsk4PHSmVfUxikzcTCivUePdy3pPdOE4IwatZeioXA,24057
222
+ klaude_code/tui/terminal/selector.py,sha256=kzlHs-DTiErlGwLPAhtVH0JiIoW3mbBPcAQnT0plhjI,24017
222
223
  klaude_code/ui/__init__.py,sha256=3k9Sbesq0nNN3jcSMDqJ4zUcys4PKzGg4Xsum-6dZis,451
223
224
  klaude_code/ui/common.py,sha256=_KmCNM-U8VowObYkfq8e9cyuvN1dF85P56hG8tGYlts,4309
224
225
  klaude_code/ui/core/__init__.py,sha256=2NakrTDcxem5D0atyEY_Rxv1BbKCeZweF63L6AAq6r8,23
@@ -228,7 +229,7 @@ klaude_code/ui/debug_mode.py,sha256=ZvqbOx4c_rUerMbEZzOfcbNf9leqEDFjqJUlALtzF9Y,
228
229
  klaude_code/ui/terminal/__init__.py,sha256=5OeAzr994r8-peWsLON0iXsAvJ2pexwMp36JY7FKGDc,179
229
230
  klaude_code/ui/terminal/title.py,sha256=EZpLXTMhunsZPVGaxP317lH0Ad2oOh7OsjbV3yRD5is,1115
230
231
  klaude_code/update.py,sha256=QER816AZe9u3RhRvP0Z37Jh2Ch5RLy9PREyDsI0e1dA,4480
231
- klaude_code-2.3.0.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
232
- klaude_code-2.3.0.dist-info/entry_points.txt,sha256=kkXIXedaTOtjXPr2rVjRVVXZYlFUcBHELaqmyVlWUFA,92
233
- klaude_code-2.3.0.dist-info/METADATA,sha256=RHeaq1sIMCIPbyRqGULF_QG7VD3lJzueAmfMCtKK9zk,11498
234
- klaude_code-2.3.0.dist-info/RECORD,,
232
+ klaude_code-2.4.1.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
233
+ klaude_code-2.4.1.dist-info/entry_points.txt,sha256=kkXIXedaTOtjXPr2rVjRVVXZYlFUcBHELaqmyVlWUFA,92
234
+ klaude_code-2.4.1.dist-info/METADATA,sha256=msAo2mU-ca2EXKPe6y-8Bt1Ij3w2Op055Uf3tKKRXSk,10242
235
+ klaude_code-2.4.1.dist-info/RECORD,,