klaude-code 2.1.1__py3-none-any.whl → 2.3.0__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 (72) hide show
  1. klaude_code/app/__init__.py +1 -2
  2. klaude_code/app/runtime.py +13 -41
  3. klaude_code/cli/list_model.py +27 -10
  4. klaude_code/cli/main.py +42 -159
  5. klaude_code/config/assets/builtin_config.yaml +36 -14
  6. klaude_code/config/config.py +144 -7
  7. klaude_code/config/select_model.py +38 -13
  8. klaude_code/config/sub_agent_model_helper.py +217 -0
  9. klaude_code/const.py +2 -2
  10. klaude_code/core/agent_profile.py +71 -5
  11. klaude_code/core/executor.py +75 -0
  12. klaude_code/core/manager/llm_clients_builder.py +18 -12
  13. klaude_code/core/prompts/prompt-nano-banana.md +1 -0
  14. klaude_code/core/tool/shell/command_safety.py +4 -189
  15. klaude_code/core/tool/sub_agent_tool.py +2 -1
  16. klaude_code/core/turn.py +1 -1
  17. klaude_code/llm/anthropic/client.py +8 -5
  18. klaude_code/llm/anthropic/input.py +54 -29
  19. klaude_code/llm/google/client.py +2 -2
  20. klaude_code/llm/google/input.py +23 -2
  21. klaude_code/llm/openai_compatible/input.py +22 -13
  22. klaude_code/llm/openai_compatible/stream.py +1 -1
  23. klaude_code/llm/openrouter/input.py +37 -25
  24. klaude_code/llm/responses/client.py +1 -1
  25. klaude_code/llm/responses/input.py +96 -57
  26. klaude_code/protocol/commands.py +1 -2
  27. klaude_code/protocol/events/system.py +4 -0
  28. klaude_code/protocol/message.py +2 -2
  29. klaude_code/protocol/op.py +17 -0
  30. klaude_code/protocol/op_handler.py +5 -0
  31. klaude_code/protocol/sub_agent/AGENTS.md +28 -0
  32. klaude_code/protocol/sub_agent/__init__.py +10 -14
  33. klaude_code/protocol/sub_agent/image_gen.py +2 -1
  34. klaude_code/session/codec.py +2 -6
  35. klaude_code/session/session.py +9 -1
  36. klaude_code/skill/assets/create-plan/SKILL.md +3 -5
  37. klaude_code/tui/command/__init__.py +7 -10
  38. klaude_code/tui/command/clear_cmd.py +1 -1
  39. klaude_code/tui/command/command_abc.py +1 -2
  40. klaude_code/tui/command/copy_cmd.py +1 -2
  41. klaude_code/tui/command/fork_session_cmd.py +4 -4
  42. klaude_code/tui/command/model_cmd.py +6 -43
  43. klaude_code/tui/command/model_select.py +75 -15
  44. klaude_code/tui/command/refresh_cmd.py +1 -2
  45. klaude_code/tui/command/resume_cmd.py +3 -4
  46. klaude_code/tui/command/status_cmd.py +1 -1
  47. klaude_code/tui/command/sub_agent_model_cmd.py +190 -0
  48. klaude_code/tui/components/bash_syntax.py +1 -1
  49. klaude_code/tui/components/common.py +1 -1
  50. klaude_code/tui/components/developer.py +10 -15
  51. klaude_code/tui/components/metadata.py +2 -64
  52. klaude_code/tui/components/rich/cjk_wrap.py +3 -2
  53. klaude_code/tui/components/rich/status.py +49 -3
  54. klaude_code/tui/components/rich/theme.py +4 -2
  55. klaude_code/tui/components/sub_agent.py +25 -46
  56. klaude_code/tui/components/user_input.py +9 -21
  57. klaude_code/tui/components/welcome.py +99 -0
  58. klaude_code/tui/input/prompt_toolkit.py +14 -1
  59. klaude_code/tui/renderer.py +2 -3
  60. klaude_code/tui/runner.py +2 -2
  61. klaude_code/tui/terminal/selector.py +8 -18
  62. klaude_code/ui/__init__.py +0 -24
  63. klaude_code/ui/common.py +3 -2
  64. klaude_code/ui/core/display.py +2 -2
  65. {klaude_code-2.1.1.dist-info → klaude_code-2.3.0.dist-info}/METADATA +16 -81
  66. {klaude_code-2.1.1.dist-info → klaude_code-2.3.0.dist-info}/RECORD +68 -67
  67. klaude_code/tui/command/help_cmd.py +0 -51
  68. klaude_code/tui/command/prompt-commit.md +0 -82
  69. klaude_code/tui/command/release_notes_cmd.py +0 -85
  70. klaude_code/ui/exec_mode.py +0 -60
  71. {klaude_code-2.1.1.dist-info → klaude_code-2.3.0.dist-info}/WHEEL +0 -0
  72. {klaude_code-2.1.1.dist-info → klaude_code-2.3.0.dist-info}/entry_points.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  klaude_code/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- klaude_code/app/__init__.py,sha256=jPBkkpBxn39B-FQ0cdxsIVo-CxWVln07kMAfqKa5NyY,290
3
- klaude_code/app/runtime.py,sha256=LodN29ue96bIfcaZFRom38YfcamTHJmb3be7-oEDTqo,7264
2
+ klaude_code/app/__init__.py,sha256=7mgWpN9SFDqe8AW44bBn9M19nVsBcZURrsGB_8l2hrU,264
3
+ klaude_code/app/runtime.py,sha256=RBWNnB_CgFu9FsKX4YOPjIdzHOdNN0lIoUl_LMT9-SM,6152
4
4
  klaude_code/auth/__init__.py,sha256=jLUgi4V4m0t2BlVuuni7iANOErpJgAeEqByuD1sKUvQ,480
5
5
  klaude_code/auth/base.py,sha256=ccH2sC0TWB5lPpGm4FSjCgnehwn9riYiXxHCh2iFJe0,3011
6
6
  klaude_code/auth/claude/__init__.py,sha256=h1oyqEttDM5TAF6w1Stk6YXYMsbATjODCsi6GhU4zAA,218
@@ -17,25 +17,26 @@ 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=IXYsrkwbvPF89jNDpbppIlyA7b_oNt0--TNN2LPGwAA,12811
21
- klaude_code/cli/main.py,sha256=JaNiQIa2k4XZXNCXnOXNfOwdwwZmnCTHlK1_oZL5lU8,11924
20
+ klaude_code/cli/list_model.py,sha256=QujNuxIRjW3xJplwz1ysZ5wtoyhTc5KQacuPIWMOJoo,13291
21
+ klaude_code/cli/main.py,sha256=QUTsCqgVphSMFfuLd9apR5SdAhp_YrhHZAHjckQu8Mg,8748
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=fXCvNZci7g7T6uUjDFq_lxTYAvszffsrpBeC41RZkb4,8214
26
+ klaude_code/config/assets/builtin_config.yaml,sha256=EmYDfsQlBVWUh7_zITAr1U3TD9BpNQ36ofxZTGHEQHA,8596
27
27
  klaude_code/config/builtin_config.py,sha256=1rHcFWmS0k6rXeIqR6sF_OgGXSbEd4ugh9bh2N6VSS0,1494
28
- klaude_code/config/config.py,sha256=aDMEIcjiNk-DdtybnOHPFViUgwdXp4xb-5osAMBjTzs,18209
29
- klaude_code/config/select_model.py,sha256=TZLs195a3fsu5JeXfoZAgz-UlRqVgJG6cwH69ovHOsM,5181
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
30
31
  klaude_code/config/thinking.py,sha256=1FFN9UgPVEFyTzahTvNOM5Y4b8Bo7G1jIc93xjX3Uvk,9323
31
- klaude_code/const.py,sha256=MF9Ispv28MNqmm51xXcbRcmvw8lEKHuiczBhqmaZku4,10905
32
+ klaude_code/const.py,sha256=vdp49j8uIjKJ_H3YrRuE3jcAEhm57EL73C--By6ZXtU,10907
32
33
  klaude_code/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
34
  klaude_code/core/agent.py,sha256=_jfe3WLE8T2twYaMpgjrFM7pwzMerirsq7YTLqpoufM,3560
34
- klaude_code/core/agent_profile.py,sha256=cGeONKEx4OvDdtQ_3grHw6eCT0aHI5bybvXahhaIhBE,9770
35
- klaude_code/core/executor.py,sha256=CQ1HyrEpemNQIFYUhgd6ZIxC-h0UJAjYD7yJR0bbX3Y,31275
35
+ klaude_code/core/agent_profile.py,sha256=M3O6Ffb0WureNN_SDv5fvCrtAkpsTgFSvWitYWxyhrE,12051
36
+ klaude_code/core/executor.py,sha256=k6hs1itNzT71mXxY1F5F0Y_8i4W7GZLXhzlSZa8Xk1Y,34880
36
37
  klaude_code/core/manager/__init__.py,sha256=hdIbpnYj6i18byiWjtJIm5l7NYYDQMvafw8fePVPydc,562
37
38
  klaude_code/core/manager/llm_clients.py,sha256=X2oMFWgJcP0tK8GEtMMDYR3HyR6_H8FuyCqpzWF5x2k,871
38
- klaude_code/core/manager/llm_clients_builder.py,sha256=uvs9ea5XDUaaKh7VgbWS76LXQn4Y590nilbEBpeJSFg,1639
39
+ klaude_code/core/manager/llm_clients_builder.py,sha256=_88MvbjNK-4s3wKTdzP-GmoUVGKyD88oWXZ7oqRWF8A,1902
39
40
  klaude_code/core/manager/sub_agent_manager.py,sha256=URzvged6ra6eY0jx1yQlvq8WdhBEsMvirWtOPCcsHNM,6991
40
41
  klaude_code/core/prompts/prompt-claude-code.md,sha256=uuWBv6GrG63mdmBedAHT5U9yOpbHSKFYbbS2xBnUzOE,8290
41
42
  klaude_code/core/prompts/prompt-codex-gpt-5-1-codex-max.md,sha256=SW-y8AmR99JL_9j26k9YVAOQuZ18vR12aT5CWHkZDc4,11741
@@ -43,6 +44,7 @@ klaude_code/core/prompts/prompt-codex-gpt-5-2-codex.md,sha256=GA1pIIF6JuAl4P3FIW
43
44
  klaude_code/core/prompts/prompt-codex.md,sha256=ybL6CXrGnK6Cw9KuEicQg4kKllIcVa2NwUyuUWitPzk,21672
44
45
  klaude_code/core/prompts/prompt-gemini.md,sha256=JjE1tHSByGKJzjn4Gpj1zekT7ry1Yqbwx5qx3fZy2gE,3901
45
46
  klaude_code/core/prompts/prompt-minimal.md,sha256=6-ZmQQkE3f92W_3V2wS7ocB13wLog1_UojCjZG0K4v8,1559
47
+ klaude_code/core/prompts/prompt-nano-banana.md,sha256=3e5GUmtW41eX3pCUBB1j5TFgAM71XlFVyIsix66GEvY,81
46
48
  klaude_code/core/prompts/prompt-sub-agent-explore.md,sha256=21kFodjhvN0L-c_ZFo4yVhJOyzfgES-Dty9Vz_Ew9q8,2629
47
49
  klaude_code/core/prompts/prompt-sub-agent-image-gen.md,sha256=tXYKSzFd04OiC0dmVO9suMKeD5f9qo_4NsvqGo7irfI,78
48
50
  klaude_code/core/prompts/prompt-sub-agent-web.md,sha256=n7fcIs26Xnu_CvHda_S_k5LGTpV3njY04yo88FT_S9A,3602
@@ -67,8 +69,8 @@ klaude_code/core/tool/report_back_tool.py,sha256=SkuRhfLpVwTOSpIj7XwYfGDNBp8YsCU
67
69
  klaude_code/core/tool/shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
68
70
  klaude_code/core/tool/shell/bash_tool.md,sha256=ILKpnRCBTkU2uSDEdZQjNYo1l6hsM4TO-3RD5zWC61c,3935
69
71
  klaude_code/core/tool/shell/bash_tool.py,sha256=LPF-Iqypzfq9IMkumErTSBDgCYYNz8vvZYe7ZobqjYk,14779
70
- klaude_code/core/tool/shell/command_safety.py,sha256=Xlyn8QvjaA_krPNScpcTQwP3byoXxwoX_jc97AWvr6Q,13039
71
- klaude_code/core/tool/sub_agent_tool.py,sha256=zMcPXdPEU0RC_jJgRmKmHF6TCWOH2MNB15K5rIlVWQQ,4620
72
+ klaude_code/core/tool/shell/command_safety.py,sha256=-x-qs1ctciEvFrBNn2JQq9540lSGacaS5R7e1MmB1y4,6457
73
+ klaude_code/core/tool/sub_agent_tool.py,sha256=yTNcsBOElbDRzMNQyslVBDAe179ACCMMgKLP4sKbbwE,4674
72
74
  klaude_code/core/tool/todo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
73
75
  klaude_code/core/tool/todo/todo_write_tool.md,sha256=BFP9qIkzkakzskHwIOPVtDhehkh0F90A5oosyDuC_BE,1682
74
76
  klaude_code/core/tool/todo/todo_write_tool.py,sha256=_94zgZ7N43lQN1x5nD-kd4ayNEwjTQXUiSWLv6MW4FE,4222
@@ -86,11 +88,11 @@ klaude_code/core/tool/web/web_fetch_tool.md,sha256=jIrW-EAmfl50bBevcfioQ3Vrg8kWl
86
88
  klaude_code/core/tool/web/web_fetch_tool.py,sha256=MpAfiRVg4CNvLQlve4jphpX4juN81aR7XWOZi0I5-UQ,10323
87
89
  klaude_code/core/tool/web/web_search_tool.md,sha256=l5gGPx-fXHFel1zLBljm8isy9pwEYXGrq5cFzzw1VBw,1135
88
90
  klaude_code/core/tool/web/web_search_tool.py,sha256=ljkgXxP6L5nJnbYB_IOUtPUN9zA_h5hBD55lhNAja08,4293
89
- klaude_code/core/turn.py,sha256=IVcAGuFY8yz77XkEUHeaK_WHjF_PWY2JBq6fM-Zk8_w,18080
91
+ klaude_code/core/turn.py,sha256=Xjg8PCcpug3Okl12ciWBO7EiqZxlBYtGuY2gAKV3GFk,18081
90
92
  klaude_code/llm/__init__.py,sha256=b4AsqnrMIs0a5qR_ti6rZcHwFzAReTwOW96EqozEoSo,287
91
93
  klaude_code/llm/anthropic/__init__.py,sha256=PWETvaeNAAX3ue0ww1uRUIxTJG0RpWiutkn7MlwKxBs,67
92
- klaude_code/llm/anthropic/client.py,sha256=NvVd0bQJxi9Pg6uVeBdzM3JnRsWVy4yJdMv8rPYz01k,12211
93
- klaude_code/llm/anthropic/input.py,sha256=0DG33g-8qXD5rP43zYsIF7UiZML0IKJxZfr6fcOlfNQ,8365
94
+ klaude_code/llm/anthropic/client.py,sha256=Mch_Q1Vtzh-Mw4hPedFm2BCgGivmq4r3IJXx_w7F3Pg,12341
95
+ klaude_code/llm/anthropic/input.py,sha256=FeNhPwP0QJS7E7kICqhRBe2hUNCYkqLf_YP5qWcI_ao,9474
94
96
  klaude_code/llm/bedrock/__init__.py,sha256=UmXPBXMmigAJ7euIh59iivSeUdrYJwum0RYU7okkkPM,86
95
97
  klaude_code/llm/bedrock/client.py,sha256=n78PIMONAMiRc-l4-mY9qOu0dhUuirmaRpmvuzWdEsk,2400
96
98
  klaude_code/llm/claude/__init__.py,sha256=8VCvvEjQQI-RpAMfHCl5ct4zlDU_jgbAuLOc9p9u-B4,61
@@ -99,56 +101,57 @@ klaude_code/llm/client.py,sha256=yZ_ob0BERRjrOc3t_kJioIdMioghXdOYUErH67zME2k,100
99
101
  klaude_code/llm/codex/__init__.py,sha256=8vN2j2ezWB_UVpfqQ8ooStsBeLL5SY4SUMXOXdWiMaI,132
100
102
  klaude_code/llm/codex/client.py,sha256=kLHAmNwyijwzAKsFnC-5NBXboJTVvEqMcQylQLO-P4M,5522
101
103
  klaude_code/llm/google/__init__.py,sha256=tQtf_mh_mC3E4S9XAsnhS2JZXGRnYUsBKF0jpXZTvM0,61
102
- klaude_code/llm/google/client.py,sha256=gc5rd5MVvRCFTrusqvkfq8TTW4HiuR5YYb0VX9bOxrs,13694
103
- klaude_code/llm/google/input.py,sha256=yBeqMk9E5nS-0jl1kEAALwnuqgKZdXApRG2KdAhPQqE,7519
104
+ klaude_code/llm/google/client.py,sha256=SfNgAHKYcL-V4NGEET34lFkSTFE5NdHjsRJK4h1lZeI,13721
105
+ klaude_code/llm/google/input.py,sha256=EVO-EHbLeD8mSW_3sglfboJzGUwGt2zXqoNRmw__Cbo,8378
104
106
  klaude_code/llm/image.py,sha256=jt9FBPFhAIo48pauIEJMIhB9WuDt4wwNs9s3LiEsETE,4272
105
107
  klaude_code/llm/input_common.py,sha256=B1QtRJspDXLdbvzykSn-FWjyi1047GeTmQnaAicCCAg,6219
106
108
  klaude_code/llm/openai_compatible/__init__.py,sha256=ACGpnki7k53mMcCl591aw99pm9jZOZk0ghr7atOfNps,81
107
109
  klaude_code/llm/openai_compatible/client.py,sha256=jAcIJc7SPd7IgpFNbp-rBcPFVNcRqgSEar-shf8z1RI,5007
108
- klaude_code/llm/openai_compatible/input.py,sha256=dNEBeAYD6Sd_-ONLazphGNFYmXkY5YoHIPKGBLAQMXU,2830
109
- klaude_code/llm/openai_compatible/stream.py,sha256=O3Seb8clC0AiA7trrruEteLqpFRY-eCjQfePG6L-7BA,12985
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
110
112
  klaude_code/llm/openai_compatible/tool_call_accumulator.py,sha256=quajimkUR1uSIPVXYsVNiQSTnOSVt7WuyZ23RyT7lJs,4906
111
113
  klaude_code/llm/openrouter/__init__.py,sha256=_As8lHjwj6vapQhLorZttTpukk5ZiCdhFdGT38_ASPo,69
112
114
  klaude_code/llm/openrouter/client.py,sha256=49kXzl4vsddU5zaTfM8dpTezgwd8LIpVPJ9ACK7Dro0,6017
113
- klaude_code/llm/openrouter/input.py,sha256=5XSMcoYGLl_xOJJiP3w0E2F6HJFJ7OeLWi7I4teJUSs,5610
115
+ klaude_code/llm/openrouter/input.py,sha256=qlBCkPCQEZTZU_aWWPf-11zjwHh9qa468xgk9jIVg04,6198
114
116
  klaude_code/llm/openrouter/reasoning.py,sha256=S0s3OAyfFVm5lHYmQqB3ZIUZlbnlV5zB2gNT3ZRbDZs,4335
115
117
  klaude_code/llm/registry.py,sha256=wEf9wvbb9CMvlNDtndKzKY5LN3zqEJYPI2v9kIrqfGI,2235
116
118
  klaude_code/llm/responses/__init__.py,sha256=WsiyvnNiIytaYcaAqNiB8GI-5zcpjjeODPbMlteeFjA,67
117
- klaude_code/llm/responses/client.py,sha256=8kZBxDrW9jRGYPjkExBeBTnpzUUnxyqqITI8bfF-Ris,12580
118
- klaude_code/llm/responses/input.py,sha256=BYZFBh6qa85pQjVrHds9q3A_aMfhSN2GB0e7VX-h8g4,7575
119
+ klaude_code/llm/responses/client.py,sha256=vb8w749A7xJyRSj6mlVw51rFRgCtpDvhMApJzU07Vjo,12581
120
+ klaude_code/llm/responses/input.py,sha256=T2mAzSR7-z7AFkUjw33c1U3UCBkGX9hlLJVJk5EUnzg,9178
119
121
  klaude_code/llm/usage.py,sha256=Hukt4hKGUb2EnmwGy2-1Ku0oxEI6J7gOU0EsOSBBJAk,5034
120
122
  klaude_code/log.py,sha256=vyCuV18DX0miengbJF9510UsBrWidSln-CM6pVCe0GA,9301
121
123
  klaude_code/protocol/__init__.py,sha256=TTPnuyQ22RypoTGKdoiS7ZEgHzinuaRHUrauzHDh7Xo,246
122
- klaude_code/protocol/commands.py,sha256=zW16Vgd_90DKWTLRAmegVVXGpK8fnZKUvTNM2u63cnM,976
124
+ klaude_code/protocol/commands.py,sha256=HuAwIUHfw77F2mKTKO2xnrOkmrnJPvoFE78ELJ2RDJQ,962
123
125
  klaude_code/protocol/events/__init__.py,sha256=2KaHK32Bpo17eHiwVNEHmbdJOtjG3vO0NrbyLxJlkg8,1606
124
126
  klaude_code/protocol/events/base.py,sha256=QfqgksjA2Hj-ClmwKVeJ7QA6Z7YdzjswO1NfAVnPCoI,335
125
127
  klaude_code/protocol/events/chat.py,sha256=FB-fLLii7TN7r0FrvfgrhZT2x4sRsivjKHV8J2b5Bsw,426
126
128
  klaude_code/protocol/events/lifecycle.py,sha256=5csZkv3oZIuLzs_7H84v8HgAYwbjIjkZOHfjxq9YfxM,357
127
129
  klaude_code/protocol/events/metadata.py,sha256=oVZ1zanGcTEFkHW8fLEqS2Z1A9e1MMcjLOcNwUUuCBI,285
128
130
  klaude_code/protocol/events/streaming.py,sha256=U1plGQSTeGZa3E4fIxW_fHXJpuv_DSIBrmGh1l4Fm54,708
129
- klaude_code/protocol/events/system.py,sha256=0c3x8WwqAo5Y0JmukKbn7FKtgEv-ErqwJb5PGjuHehk,1294
131
+ klaude_code/protocol/events/system.py,sha256=ihWZLNyPO0xvHAVjMkbGt2FqL8m-ZVreq-MTZLfxQnc,1453
130
132
  klaude_code/protocol/events/tools.py,sha256=8ds_8Zj-wQWvHNAvNt1-fSIHeDffw1dsLWI7ByrAqcM,617
131
133
  klaude_code/protocol/llm_param.py,sha256=nyk5bW3AF8KziDawcImwDLiFiv07bu1ci62TslWxUkg,5161
132
- klaude_code/protocol/message.py,sha256=gG9GSr4Tysafe7Rl93LZ-xJnqkfn9rFaUEbAG6_H5gE,6208
134
+ klaude_code/protocol/message.py,sha256=pu-wvInS781y-qSKbl9MqO7k3CtAN7Yu4hUHJCXKjZQ,6210
133
135
  klaude_code/protocol/model.py,sha256=tBwvGlmsI_GPsYrCuk5-QHqC-v0UgBSdm9UjEPOvTiM,10805
134
- klaude_code/protocol/op.py,sha256=Us8O5Nuz6Wx03ftrLYiiLceCuzbNZ1ehwW62e_uMEvU,5646
135
- klaude_code/protocol/op_handler.py,sha256=NgQWyLZwPqRRH93hMvPH-TCK8YbLeDpnKeNVnlt27_o,1765
136
- klaude_code/protocol/sub_agent/__init__.py,sha256=KkSdKAD45DERZoMS7zyTg0AWPgVmK-po0uv5rt_d-zE,3972
136
+ klaude_code/protocol/op.py,sha256=_H4l6POFukwOW-Bkps58RWePuRMNNtKEQ0mxwcBxnGU,6314
137
+ klaude_code/protocol/op_handler.py,sha256=B-dmye-6fgQNUDSa2s9cnHogz_Jl4yoQ9EiNgkgjjtA,1973
138
+ klaude_code/protocol/sub_agent/AGENTS.md,sha256=DHeHl11PYprTOQxInENCEnwnh3kIztBLjvETkwWAO08,1299
139
+ klaude_code/protocol/sub_agent/__init__.py,sha256=RKPFJawd0AB7nRYBxdwuG-14D8pT6HF1-DPCTAxwohI,3784
137
140
  klaude_code/protocol/sub_agent/explore.py,sha256=beDpcPFUds54JLhQyVEpuhVp5xm5hRnkp6F3gMCIvw8,2712
138
- klaude_code/protocol/sub_agent/image_gen.py,sha256=e2iRpGnWUHdZw96wC-f-Ik8HXYnvxTqQRqWXhNtUv2E,4812
141
+ klaude_code/protocol/sub_agent/image_gen.py,sha256=T6zf29-rDiO8qg8VG-Mdpe0fEAnNB6kx1iZLyZW0ZMY,4897
139
142
  klaude_code/protocol/sub_agent/task.py,sha256=96XHxbySu_zdM2K6WjlkPFGXoVDVrLiK2hew1cmwGS4,4290
140
143
  klaude_code/protocol/sub_agent/web.py,sha256=XZEfY-bKhpw9RZPkrcohLQDMufQITeeweW7ZOHgk2Ao,3200
141
144
  klaude_code/protocol/tools.py,sha256=T0mzW9EhidVMNkwH-KTeB5FgwMvXBnV_MYE5ytrU1TM,343
142
145
  klaude_code/session/__init__.py,sha256=4sw81uQvEd3YUOOjamKk1KqGmxeb4Ic9T1Tee5zztyU,241
143
- klaude_code/session/codec.py,sha256=fTtaS20H5G6M7k7vufg55c88ZGAblhFk9xGAm3CvWT0,2007
146
+ klaude_code/session/codec.py,sha256=a374UZkOusn9MgFCc--yznDljK_4Qfy6yDPfhQq5_P0,1889
144
147
  klaude_code/session/export.py,sha256=Oa0BdrqipFGkGp62dAsvQ-bPQr0HFAQBpAb7OmgaNno,38926
145
148
  klaude_code/session/selector.py,sha256=snBpnz9UQCe_0K8HttSGCJECCE4YEzpWs_Fdmk2P9nI,2195
146
- klaude_code/session/session.py,sha256=IUYPe8gd7ipiZPQKINXSXjelysLQIFLfLftPoAJsLN0,22719
149
+ klaude_code/session/session.py,sha256=j7BwWWiop-TofhRlrGrQOHB5Fa1UUHOoj3WFrLEQ19c,23117
147
150
  klaude_code/session/store.py,sha256=HRrmFzwEVdExqDQlT9FBZOhlFtQmM9Im9zco8pzvUMY,6455
148
151
  klaude_code/session/templates/export_session.html,sha256=GRSx1dfRKCSNgKqP51Rs6mT6xWo_ntZrep4-ZzlKru8,125862
149
152
  klaude_code/session/templates/mermaid_viewer.html,sha256=Y_wEWFm4mKWpfAz3YMis5DdLEkhw_2d8CpU6jbvGZow,27842
150
153
  klaude_code/skill/__init__.py,sha256=yeWeCfRGPOhT4mx_pjdo4fLondQ_Vx0edBtnFusLhls,839
151
- klaude_code/skill/assets/create-plan/SKILL.md,sha256=xzKarva3A7fVrmC2518MohapqI8e-5m08o7T3L32-xY,2581
154
+ klaude_code/skill/assets/create-plan/SKILL.md,sha256=g_SLyBid2dwj56FBzh87lZGu1t08edLs0plimT2uNzs,2481
152
155
  klaude_code/skill/assets/deslop/SKILL.md,sha256=XMBER6gOyYnZof_u7l30CZSzmDcINe8XP-n_loah0EQ,873
153
156
  klaude_code/skill/assets/handoff/SKILL.md,sha256=GDHrEqWUeAQy7gGhha_y5jzjpv8C-xhk0hqMH5h59v8,1712
154
157
  klaude_code/skill/assets/jj-workspace/SKILL.md,sha256=toxoyrBBoGl9Yv4PYrw_gD071LLZ2RoepUR8qTDRn1M,977
@@ -157,77 +160,75 @@ klaude_code/skill/loader.py,sha256=dq-92iX4RWUZd8sFO3KZySOVf5-M6xev29tJlaC0Ivw,8
157
160
  klaude_code/skill/manager.py,sha256=qPUaZmbKO6f6kF-a948spinRQTCHB4ek7k9TV3elaTE,3448
158
161
  klaude_code/skill/system_skills.py,sha256=ryGN07t0Xv2Yn_Prfq072tdIN0Dp4ZpdXLTl7O7rCkg,6122
159
162
  klaude_code/tui/__init__.py,sha256=Q8-0D-uesw3oFwHcFLD5UaWlTFbrj8qV7dSn6C6_g_o,274
160
- klaude_code/tui/command/__init__.py,sha256=LeurVZ6ghkiJNr-VA3ShbPeQQZDA-BDJSTWxGUQHW0w,3571
161
- klaude_code/tui/command/clear_cmd.py,sha256=BDJI3_6x76WeF9ZBLe4ShDybpV4RTvyjyWH7ZsHvp_Y,782
162
- klaude_code/tui/command/command_abc.py,sha256=d1i4QbFqWC5V4LPmofMHTxGrxNLwOWe-z_bUKoAmRiQ,2540
163
- klaude_code/tui/command/copy_cmd.py,sha256=Gf2F-JgO3Kq8RuwMo9oQ918fWIXul06uiyvqzic64DE,1920
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
164
167
  klaude_code/tui/command/debug_cmd.py,sha256=KkVsspq3o_b4fB2u9Qms-LJQYVI7ZGn6uvSkp3pZZgE,2744
165
168
  klaude_code/tui/command/export_cmd.py,sha256=KdFlOMJ6gruKYnd_24eWJJb21t9gLVwI1FnN1s08m5U,1609
166
169
  klaude_code/tui/command/export_online_cmd.py,sha256=26cPEh6lJW8hwUV1i4q3Be3AThzbPHJI9FuvTfhtJFU,6163
167
- klaude_code/tui/command/fork_session_cmd.py,sha256=Hu5Gcdfw_rxx5RjfqaGht7fr55pydM_vUlwRMseJpe4,10216
168
- klaude_code/tui/command/help_cmd.py,sha256=nvQ9m6hPcJpwKPx6H7XH4o_C41u6uOYuZiBF0ZsO8uw,1678
169
- klaude_code/tui/command/model_cmd.py,sha256=X07psfW-6aan9nxgqRoRVQ_dvZdhTY9XcU-H-NRbGDg,2950
170
- klaude_code/tui/command/model_select.py,sha256=gmttq2I-KDDyU-mCZd4WnqkVkMMpsBP7-fOo0ONjxZ8,3189
171
- klaude_code/tui/command/prompt-commit.md,sha256=6hv1lrf8SkwNp1ptw0wn8uNydg5uxgna88eUo6Uqr3w,2400
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
172
173
  klaude_code/tui/command/prompt-init.md,sha256=a4_FQ3gKizqs2vl9oEY5jtG6HNhv3f-1b5RSCFq0A18,1873
173
174
  klaude_code/tui/command/prompt_command.py,sha256=PGGoH_ZgA-0kTtpjk19rDSsWjiZyAEoUlxnSp8B8GRQ,2764
174
- klaude_code/tui/command/refresh_cmd.py,sha256=yLL9YufaucMUtzDAHqZKpiP5DR-uNLIC_rxZBhzgqC0,1327
175
+ klaude_code/tui/command/refresh_cmd.py,sha256=qGFyzGrlUO2MpdVqKr14JEmyVL_q0C5mFh0H53AUR0E,1282
175
176
  klaude_code/tui/command/registry.py,sha256=LdVGBTK64XqGtCj2eUqU2rNdX4tbiWvmTv25HuQPnBU,7253
176
- klaude_code/tui/command/release_notes_cmd.py,sha256=SOjDURB3ML4u7zeR1QVB7oFVQna-S05h3LJrcBXG3J8,2686
177
- klaude_code/tui/command/resume_cmd.py,sha256=w1-UAM95CIPonfH39XU-EVM5f7B-AW1jTCA7VFkPigs,4244
178
- klaude_code/tui/command/status_cmd.py,sha256=WjV4CssyMCj9_CzMdlYwMWRFSK6nkDRRnApuEZdcgQc,5417
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
179
180
  klaude_code/tui/command/terminal_setup_cmd.py,sha256=C2kXelp8DZsMYZ08Gun-kgvtr07HIclcCNfwQtXgY18,10910
180
181
  klaude_code/tui/command/thinking_cmd.py,sha256=Lf4SgLi7-mtr6sIJDqOz9Zzeue_cHwWzCCl0NLE_bpY,3072
181
182
  klaude_code/tui/commands.py,sha256=jIQHE9Nk7bIxbNJ2cgnUgGbitRA1O8HSSceXfqjyLMk,3261
182
183
  klaude_code/tui/components/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
183
184
  klaude_code/tui/components/assistant.py,sha256=3VUIGf_BJhmoWZ5bHw-QUTMElUxp-MZQKUMWNimHKLE,904
184
- klaude_code/tui/components/bash_syntax.py,sha256=zNvge6qvz9ujjMh2nUs2CNKIxSpXLJ5cgOLuvOmEGqY,7420
185
- klaude_code/tui/components/common.py,sha256=RzOiIqVPWCzjX8VMMJSkvP0F-l91g9lMTb_smNpEdDE,4648
186
- klaude_code/tui/components/developer.py,sha256=WM9VXukiEMZrGv7rsr-OIFS2SxOj5vx6kxzHJoeoBA8,10035
185
+ klaude_code/tui/components/bash_syntax.py,sha256=0Pceo8w7jbK56smaVSBzkZYgCXzqqy7Qnx6kDZOh1yA,7450
186
+ klaude_code/tui/components/common.py,sha256=ajslaejKj-ZnHFGcMenkmUN3k7PNKrIEZZIB74VE-rQ,4663
187
+ klaude_code/tui/components/developer.py,sha256=aBgNJ-a3c3UQJIrleoqtVHB05grg0EOH-Gg-383RQek,9756
187
188
  klaude_code/tui/components/diffs.py,sha256=JUokkkJeTIoKD0b-c-chMzIDmMjivBQqH8DYXIA3hHs,10411
188
189
  klaude_code/tui/components/errors.py,sha256=_9ojf-23ThR-BoMwNEYG68rzILwA_O59muGvofYL10w,669
189
190
  klaude_code/tui/components/mermaid_viewer.py,sha256=MstufMnTauMKzI8cKngXpFqVo-qya20P8ReNkplYtEw,3098
190
- klaude_code/tui/components/metadata.py,sha256=tVeD2WunfLwUKP11OuLo0d0N3aEjk0J5BDJsq1f-ACQ,9397
191
+ klaude_code/tui/components/metadata.py,sha256=fhfXia7EN8r7IXpzKxflTJy5M6cL9hDFMXbhwnnNR6U,7235
191
192
  klaude_code/tui/components/rich/__init__.py,sha256=zEZjnHR3Fnv_sFMxwIMjoJfwDoC4GRGv3lHJzAGRq_o,236
192
- klaude_code/tui/components/rich/cjk_wrap.py,sha256=ncmifgTwF6q95iayHQyazGbntt7BRQb_Ed7aXc8JU6Y,7551
193
+ klaude_code/tui/components/rich/cjk_wrap.py,sha256=eMqBxftUtll7zrytUb9WtJ6naYLyax0W4KJRpGwWulM,7602
193
194
  klaude_code/tui/components/rich/code_panel.py,sha256=ZKuJHh-kh-hIkBXSGLERLaDbJ7I9hvtvmYKocJn39_w,4744
194
195
  klaude_code/tui/components/rich/live.py,sha256=xiMT6dPsxM_jaazddKrV9CMJQWwpe2t9OdjffHvo1JU,2821
195
196
  klaude_code/tui/components/rich/markdown.py,sha256=wgTRzDJTcI2u5vr_WbAnoBjQHcSe4RIrpOdynw1nBB8,19286
196
197
  klaude_code/tui/components/rich/quote.py,sha256=gTLwxSPQd9nlp73P1ysQIEgOb-BoTE2gzyiPBLMiHcY,3834
197
198
  klaude_code/tui/components/rich/searchable_text.py,sha256=PUe6MotKxSBY4FlPeojVjVQgxCsx_jiQ41bCzLp8WvE,2271
198
- klaude_code/tui/components/rich/status.py,sha256=Dy5GgEJzYNrWNh7QG5PQCfTGS99CllDOdWVqvbCafYE,13320
199
- klaude_code/tui/components/rich/theme.py,sha256=CgLqUdITLwpqcrD0vypk1PWTBOXfLBbn0_ELyJPg4Lk,15048
200
- klaude_code/tui/components/sub_agent.py,sha256=FojxwNnBTwYSSBMG4DmC2IJfr-bLTJiDcViKoL1d0uQ,6955
199
+ klaude_code/tui/components/rich/status.py,sha256=kNt08FQGvMZJB-zUhT5UyVFA7jvuRBNqf6yDXLEhb9c,14756
200
+ klaude_code/tui/components/rich/theme.py,sha256=KCPY3Kv5uYpnlULv131XSvW7yDe2z3lx1P2kxLNcCRs,15151
201
+ klaude_code/tui/components/sub_agent.py,sha256=YfcmFzyNKuFNr0pqaJHTEf_AmkKyEN0xnx7bfHPNYA0,6079
201
202
  klaude_code/tui/components/thinking.py,sha256=AXC7Xpyiu7ST-eWGLRGY7N8Dak2ny3lV3mvznmfqKmM,2890
202
203
  klaude_code/tui/components/tools.py,sha256=xqrWBDPsVtOeyE-qF_Idzr1Dhf5bjgrvl-v6svv-H3Q,26230
203
- klaude_code/tui/components/user_input.py,sha256=9tLeRSWdwXmLm0Fe6DUlV4KHKpN6eUP4nhQ7ywddz8o,3959
204
+ klaude_code/tui/components/user_input.py,sha256=6VHH77xwUUW0rW7yv8hOwGXsmK52HEsBg9-QZVbOm1A,3427
205
+ klaude_code/tui/components/welcome.py,sha256=GXws5bejMcQfChA631m8v_OWSpTuQ9P9hhaqJrY0nyg,3768
204
206
  klaude_code/tui/display.py,sha256=ovM1F8GDG0gTQjOV2KaXnjE9HFHf7AtThqSIXkP6JQY,3073
205
207
  klaude_code/tui/input/__init__.py,sha256=cAB38ypo7dHo_jgXUCnoBTUKHtiriVaKCv4YepSU9SU,276
206
208
  klaude_code/tui/input/clipboard.py,sha256=HjThFB9MG_YdJ76CQv7B-IUoz5JarbWUZDbUVkH1LpY,5106
207
209
  klaude_code/tui/input/completers.py,sha256=lkDBjnqYPLMgR6AZHhx2bfT_vMW-fbV6aqY9SqRwq74,32571
208
210
  klaude_code/tui/input/key_bindings.py,sha256=2uN48J1HRHeCBqq7WrH5J82NIU59oQscce0HquAiYCI,18876
209
- klaude_code/tui/input/prompt_toolkit.py,sha256=_joijghnXG0-vu8D-Om4eU_jprLiTpyabfNH6aqaqpA,27224
211
+ klaude_code/tui/input/prompt_toolkit.py,sha256=2Yz9gn-hbFHVnjaeHod5heX2NutHTuvbo6IjuPDI_Ls,27815
210
212
  klaude_code/tui/machine.py,sha256=1aA2iYjCjF6VQ1x62wWtiY4Jqzn2R8-hkDOb2vNw6e8,23355
211
- klaude_code/tui/renderer.py,sha256=JzKzYrKjG8HYsJV5Akq7DWtgY8bCebGq3GRrVfcXeBw,29476
212
- klaude_code/tui/runner.py,sha256=SGwKIo3EH6vA1Qlfb0KtFaNid2lyGL_4Jb2gjVa1MZs,11560
213
+ klaude_code/tui/renderer.py,sha256=WD2-oHCAltp9-7EJ5KwivXmVIQydwe3JT33N_TuJcUo,29424
214
+ klaude_code/tui/runner.py,sha256=crdwlPcqSrqG0HNsuzd6yfrFHMTZa4GNAeQzjq788eA,11542
213
215
  klaude_code/tui/terminal/__init__.py,sha256=GIMnsEcIAGT_vBHvTlWEdyNmAEpruyscUA6M_j3GQZU,1412
214
216
  klaude_code/tui/terminal/color.py,sha256=6SJR2RA8cqJINNoRz65w0HL3x9g46ydIvDOGWMeNnQU,7195
215
217
  klaude_code/tui/terminal/control.py,sha256=m2fL6uHum5Li25X2IPnI4z_oVzMpVYcSldB-r0NLLzk,4920
216
218
  klaude_code/tui/terminal/image.py,sha256=ytzmw1J3fmaq49nWTDRmK_7aMIGbdUPCtVccSpVRHxY,1195
217
219
  klaude_code/tui/terminal/notifier.py,sha256=-aTtgRvpzQcfbkOfbeDOfUs3l9smNBZX-60G9f0326Y,4643
218
220
  klaude_code/tui/terminal/progress_bar.py,sha256=Go-0_ZodrmJVaQodaPnyxVU2nkpkBaYLnZBqwAUQukE,2133
219
- klaude_code/tui/terminal/selector.py,sha256=QPddET-LfSU4we7NLHk17CqTWPKd6CQ0kj1Ire_WM3Q,24398
220
- klaude_code/ui/__init__.py,sha256=BRd15myEsdOPC9FyDeOuM0ahzQA_-6YYkt_eNhc-whc,1173
221
- klaude_code/ui/common.py,sha256=FA1koSH8egLBT2Pb_D065gfK7u6-wTuGA9_WRembX3s,4249
221
+ klaude_code/tui/terminal/selector.py,sha256=mxsk4PHSmVfUxikzcTCivUePdy3pPdOE4IwatZeioXA,24057
222
+ klaude_code/ui/__init__.py,sha256=3k9Sbesq0nNN3jcSMDqJ4zUcys4PKzGg4Xsum-6dZis,451
223
+ klaude_code/ui/common.py,sha256=_KmCNM-U8VowObYkfq8e9cyuvN1dF85P56hG8tGYlts,4309
222
224
  klaude_code/ui/core/__init__.py,sha256=2NakrTDcxem5D0atyEY_Rxv1BbKCeZweF63L6AAq6r8,23
223
- klaude_code/ui/core/display.py,sha256=ACfsJEjamAkhVesQ7Vm3PyuLXkowuQ5PCE93utiiPRM,3582
225
+ klaude_code/ui/core/display.py,sha256=wk3_4-SE93BpxJOrx9MzEouMc4wTsYo7bBj9eeJO-ik,3569
224
226
  klaude_code/ui/core/input.py,sha256=8wXszl2Es6BbpqUjXMZka-7zc1d0kuySCxJUiDGHTaY,2593
225
227
  klaude_code/ui/debug_mode.py,sha256=ZvqbOx4c_rUerMbEZzOfcbNf9leqEDFjqJUlALtzF9Y,1111
226
- klaude_code/ui/exec_mode.py,sha256=8-eGJeoJo1ke9Atpeu4JErh4A0GcrHYvALktfnqQygE,1765
227
228
  klaude_code/ui/terminal/__init__.py,sha256=5OeAzr994r8-peWsLON0iXsAvJ2pexwMp36JY7FKGDc,179
228
229
  klaude_code/ui/terminal/title.py,sha256=EZpLXTMhunsZPVGaxP317lH0Ad2oOh7OsjbV3yRD5is,1115
229
230
  klaude_code/update.py,sha256=QER816AZe9u3RhRvP0Z37Jh2Ch5RLy9PREyDsI0e1dA,4480
230
- klaude_code-2.1.1.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
231
- klaude_code-2.1.1.dist-info/entry_points.txt,sha256=kkXIXedaTOtjXPr2rVjRVVXZYlFUcBHELaqmyVlWUFA,92
232
- klaude_code-2.1.1.dist-info/METADATA,sha256=VFe9EEfYurBQhvvN9pl-k8DyNQr0ISL6Ymp-jF48iI4,12782
233
- klaude_code-2.1.1.dist-info/RECORD,,
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,,
@@ -1,51 +0,0 @@
1
- from klaude_code.protocol import commands, events, message, model
2
-
3
- from .command_abc import Agent, CommandABC, CommandResult
4
-
5
-
6
- class HelpCommand(CommandABC):
7
- """Display help information for all available slash commands."""
8
-
9
- @property
10
- def name(self) -> commands.CommandName:
11
- return commands.CommandName.HELP
12
-
13
- @property
14
- def summary(self) -> str:
15
- return "Show help and available commands"
16
-
17
- async def run(self, agent: Agent, user_input: message.UserInputPayload) -> CommandResult:
18
- del user_input # unused
19
- lines: list[str] = [
20
- """
21
- Usage:
22
- [b]@[/b] to mention file
23
- [b]esc[/b] to interrupt agent task
24
- [b]shift-enter[/b] or [b]ctrl-j[/b] for new line
25
- [b]ctrl-v[/b] for pasting image
26
- [b]ctrl-l[/b] to switch model
27
- [b]ctrl-t[/b] to switch thinking level
28
- [b]--continue[/b] or [b]--resume[/b] to continue an old session
29
-
30
- Available slash commands:"""
31
- ]
32
-
33
- # Import here to avoid circular dependency
34
- from .registry import get_commands
35
-
36
- commands = get_commands()
37
-
38
- if commands:
39
- for cmd_name, cmd_obj in sorted(commands.items()):
40
- placeholder = f" \\[{cmd_obj.placeholder}]" if cmd_obj.support_addition_params else ""
41
- lines.append(f" [b]/{cmd_name}[/b]{placeholder} — {cmd_obj.summary}")
42
-
43
- event = events.DeveloperMessageEvent(
44
- session_id=agent.session.id,
45
- item=message.DeveloperMessage(
46
- parts=message.text_parts_from_str("\n".join(lines)),
47
- ui_extra=model.build_command_output_extra(self.name),
48
- ),
49
- )
50
-
51
- return CommandResult(events=[event])
@@ -1,82 +0,0 @@
1
- ---
2
- description: Commit current git changes
3
- ---
4
-
5
- ## Workflow
6
-
7
- ### Step 1: Detect version control system
8
-
9
- Check if `jj` is available in the current environment. (check in your <env> tag)
10
-
11
- ### Step 2: Run pre-commit checks
12
-
13
- Before creating a commit, run the following checks:
14
-
15
- 1. Run the project's linter to check and fix code style issues
16
- 2. Run the project's test suite to ensure all tests pass
17
- 3. If either check fails, stop the commit process and report the errors to the user
18
- 4. If both checks pass, proceed to the next step
19
-
20
- ### Step 3A: If jj is available
21
-
22
- 1. Run `jj status` and `jj log -r 'ancestors(@, 10)'` to see working copy changes and the last 10 changes
23
- 2. For each change that has no description (shows as "(no description set)"):
24
- - Run `jj diff -r <change_id> --git` to view the diff
25
- - Read related files if needed to understand the context
26
- - Use `jj describe -r <change_id>` to add a meaningful description
27
-
28
- ### Step 2B: If jj is not available (git)
29
-
30
- 1. Run `git status` to check working directory state
31
- 2. Run `git diff --cached` to check if there are staged changes
32
- 3. If staging area has content:
33
- - Ask the user: "Staging area has changes. Commit only staged changes, or stage and commit all changes?"
34
- - If user chooses staged only: proceed with staged changes
35
- - If user chooses all: run `git add -A` first
36
- 4. If staging area is empty:
37
- - Run `git add -A` to stage all changes
38
- 5. Review the changes with `git diff --cached`
39
- 6. Create the commit
40
-
41
- ## Commit Message Format
42
-
43
- In order to ensure good formatting, ALWAYS pass the commit message via a HEREDOC:
44
-
45
- For jj:
46
- ```bash
47
- jj describe -m "$(cat <<'EOF'
48
- Commit message here.
49
- EOF
50
- )"
51
- ```
52
-
53
- For git:
54
- ```bash
55
- git commit -m "$(cat <<'EOF'
56
- Commit message here.
57
- EOF
58
- )"
59
- ```
60
-
61
- ## Message Style
62
-
63
- Follow the [Conventional Commits](https://www.conventionalcommits.org/) specification:
64
-
65
- ```
66
- <type>(<scope>): <description>
67
- ```
68
-
69
- Types:
70
- - `feat`: New feature
71
- - `fix`: Bug fix
72
- - `docs`: Documentation changes
73
- - `style`: Code style changes (formatting, no logic change)
74
- - `refactor`: Code refactoring (no feature or fix)
75
- - `test`: Adding or updating tests
76
- - `chore`: Build process, dependencies, or tooling changes
77
-
78
- Examples:
79
- - `feat(cli): add --verbose flag for debug output`
80
- - `fix(llm): handle API timeout errors gracefully`
81
- - `docs(readme): update installation instructions`
82
- - `refactor(core): simplify session state management`
@@ -1,85 +0,0 @@
1
- from pathlib import Path
2
-
3
- from klaude_code.protocol import commands, events, message, model
4
-
5
- from .command_abc import Agent, CommandABC, CommandResult
6
-
7
-
8
- def _read_changelog() -> str:
9
- """Read CHANGELOG.md from project root."""
10
- changelog_path = Path(__file__).parent.parent.parent.parent / "CHANGELOG.md"
11
- if not changelog_path.exists():
12
- return "CHANGELOG.md not found"
13
- return changelog_path.read_text(encoding="utf-8")
14
-
15
-
16
- def _extract_releases(changelog: str, count: int = 1) -> str:
17
- """Extract release sections from changelog in reverse order (oldest first).
18
-
19
- Args:
20
- changelog: The full changelog content.
21
- count: Number of releases to extract (default 1).
22
-
23
- Returns:
24
- The content of the specified number of releases, with newest at bottom.
25
- """
26
- lines = changelog.split("\n")
27
- releases: list[list[str]] = []
28
- current_release: list[str] = []
29
- version_count = 0
30
-
31
- for line in lines:
32
- # Skip [Unreleased] section header
33
- if line.startswith("## [Unreleased]"):
34
- continue
35
-
36
- # Check for version header (e.g., ## [1.2.8] - 2025-12-01)
37
- if line.startswith("## [") and "]" in line:
38
- if current_release:
39
- releases.append(current_release)
40
- version_count += 1
41
- if version_count > count:
42
- break
43
- current_release = [line]
44
- continue
45
-
46
- if version_count > 0:
47
- current_release.append(line)
48
-
49
- # Append the last release if exists
50
- if current_release and version_count <= count:
51
- releases.append(current_release)
52
-
53
- if not releases:
54
- return "No release notes found"
55
-
56
- # Reverse to show oldest first, newest last
57
- releases.reverse()
58
- return "\n".join("\n".join(release) for release in releases).strip()
59
-
60
-
61
- class ReleaseNotesCommand(CommandABC):
62
- """Display the latest release notes from CHANGELOG.md."""
63
-
64
- @property
65
- def name(self) -> commands.CommandName:
66
- return commands.CommandName.RELEASE_NOTES
67
-
68
- @property
69
- def summary(self) -> str:
70
- return "Show the latest release notes"
71
-
72
- async def run(self, agent: Agent, user_input: message.UserInputPayload) -> CommandResult:
73
- del user_input # unused
74
- changelog = _read_changelog()
75
- content = _extract_releases(changelog, count=10)
76
-
77
- event = events.DeveloperMessageEvent(
78
- session_id=agent.session.id,
79
- item=message.DeveloperMessage(
80
- parts=message.text_parts_from_str(content),
81
- ui_extra=model.build_command_output_extra(self.name),
82
- ),
83
- )
84
-
85
- return CommandResult(events=[event])
@@ -1,60 +0,0 @@
1
- import sys
2
- from typing import override
3
-
4
- from klaude_code.protocol import events
5
- from klaude_code.ui.core.display import DisplayABC
6
-
7
-
8
- class ExecDisplay(DisplayABC):
9
- """A display implementation for exec mode - only handles TaskFinishEvent."""
10
-
11
- @override
12
- async def consume_event(self, event: events.Event) -> None:
13
- """Only handle TaskFinishEvent."""
14
- match event:
15
- case events.TaskStartEvent():
16
- pass
17
- case events.ErrorEvent() as e:
18
- print(f"Error: {e.error_message}")
19
- case events.TaskFinishEvent() as e:
20
- # Print the task result when task finishes
21
- if e.task_result.strip():
22
- print(e.task_result)
23
- case _:
24
- # Ignore all other events
25
- pass
26
-
27
- @override
28
- async def start(self) -> None:
29
- """Do nothing on start."""
30
- pass
31
-
32
- @override
33
- async def stop(self) -> None:
34
- """Do nothing on stop."""
35
- pass
36
-
37
-
38
- class StreamJsonDisplay(DisplayABC):
39
- """A display implementation that streams all events as JSON lines."""
40
-
41
- @override
42
- async def consume_event(self, event: events.Event) -> None:
43
- """Stream each event as a JSON line."""
44
- if isinstance(event, events.EndEvent):
45
- return
46
- event_type = type(event).__name__
47
- json_data = event.model_dump_json()
48
- # Output format: {"type": "EventName", "data": {...}}
49
- print(f'{{"type": "{event_type}", "data": {json_data}}}', flush=True)
50
- sys.stdout.flush()
51
-
52
- @override
53
- async def start(self) -> None:
54
- """Do nothing on start."""
55
- pass
56
-
57
- @override
58
- async def stop(self) -> None:
59
- """Do nothing on stop."""
60
- pass