klaude-code 1.2.17__py3-none-any.whl → 1.2.19__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- klaude_code/cli/config_cmd.py +1 -1
- klaude_code/cli/debug.py +1 -1
- klaude_code/cli/main.py +45 -31
- klaude_code/cli/runtime.py +49 -13
- klaude_code/{version.py → cli/self_update.py} +110 -2
- klaude_code/command/__init__.py +4 -1
- klaude_code/command/clear_cmd.py +2 -7
- klaude_code/command/command_abc.py +33 -5
- klaude_code/command/debug_cmd.py +79 -0
- klaude_code/command/diff_cmd.py +2 -6
- klaude_code/command/export_cmd.py +7 -7
- klaude_code/command/export_online_cmd.py +9 -8
- klaude_code/command/help_cmd.py +4 -9
- klaude_code/command/model_cmd.py +10 -6
- klaude_code/command/prompt_command.py +2 -6
- klaude_code/command/refresh_cmd.py +2 -7
- klaude_code/command/registry.py +69 -26
- klaude_code/command/release_notes_cmd.py +2 -6
- klaude_code/command/status_cmd.py +2 -7
- klaude_code/command/terminal_setup_cmd.py +2 -6
- klaude_code/command/thinking_cmd.py +16 -10
- klaude_code/config/select_model.py +81 -5
- klaude_code/const/__init__.py +1 -1
- klaude_code/core/executor.py +257 -110
- klaude_code/core/manager/__init__.py +2 -4
- klaude_code/core/prompts/prompt-claude-code.md +1 -1
- klaude_code/core/prompts/prompt-sub-agent-explore.md +14 -2
- klaude_code/core/prompts/prompt-sub-agent-web.md +8 -5
- klaude_code/core/reminders.py +9 -35
- klaude_code/core/task.py +9 -7
- klaude_code/core/tool/file/read_tool.md +1 -1
- klaude_code/core/tool/file/read_tool.py +41 -12
- klaude_code/core/tool/memory/skill_loader.py +12 -10
- klaude_code/core/tool/shell/bash_tool.py +22 -2
- klaude_code/core/tool/tool_registry.py +1 -1
- klaude_code/core/tool/tool_runner.py +26 -23
- klaude_code/core/tool/truncation.py +23 -9
- klaude_code/core/tool/web/web_fetch_tool.md +1 -1
- klaude_code/core/tool/web/web_fetch_tool.py +36 -1
- klaude_code/core/turn.py +28 -0
- klaude_code/llm/anthropic/client.py +25 -9
- klaude_code/llm/openai_compatible/client.py +5 -2
- klaude_code/llm/openrouter/client.py +7 -3
- klaude_code/llm/responses/client.py +6 -1
- klaude_code/protocol/commands.py +1 -0
- klaude_code/protocol/sub_agent/web.py +3 -2
- klaude_code/session/session.py +35 -15
- klaude_code/session/templates/export_session.html +45 -32
- klaude_code/trace/__init__.py +20 -2
- klaude_code/ui/modes/repl/completers.py +231 -73
- klaude_code/ui/modes/repl/event_handler.py +8 -6
- klaude_code/ui/modes/repl/input_prompt_toolkit.py +1 -1
- klaude_code/ui/modes/repl/renderer.py +2 -2
- klaude_code/ui/renderers/common.py +54 -0
- klaude_code/ui/renderers/developer.py +2 -3
- klaude_code/ui/renderers/errors.py +1 -1
- klaude_code/ui/renderers/metadata.py +12 -5
- klaude_code/ui/renderers/thinking.py +24 -8
- klaude_code/ui/renderers/tools.py +82 -14
- klaude_code/ui/rich/code_panel.py +112 -0
- klaude_code/ui/rich/markdown.py +3 -4
- klaude_code/ui/rich/status.py +0 -2
- klaude_code/ui/rich/theme.py +10 -1
- klaude_code/ui/utils/common.py +0 -18
- {klaude_code-1.2.17.dist-info → klaude_code-1.2.19.dist-info}/METADATA +32 -7
- {klaude_code-1.2.17.dist-info → klaude_code-1.2.19.dist-info}/RECORD +69 -68
- klaude_code/core/manager/agent_manager.py +0 -132
- /klaude_code/{config → cli}/list_model.py +0 -0
- {klaude_code-1.2.17.dist-info → klaude_code-1.2.19.dist-info}/WHEEL +0 -0
- {klaude_code-1.2.17.dist-info → klaude_code-1.2.19.dist-info}/entry_points.txt +0 -0
|
@@ -7,56 +7,57 @@ klaude_code/auth/codex/oauth.py,sha256=4hAGZ2Dv87NC3loEws7U5yNyPyIrryGm5YXY2FkHe
|
|
|
7
7
|
klaude_code/auth/codex/token_manager.py,sha256=F4xH5PhE9cksqTiWsU_YAboNe284VgUFWF2VY1sZV9U,2720
|
|
8
8
|
klaude_code/cli/__init__.py,sha256=YzlAoWAr5rx5oe6B_4zPxRFS4QaZauuy1AFwampP5fg,45
|
|
9
9
|
klaude_code/cli/auth_cmd.py,sha256=UWMHjn9xZp2o8OZc-x8y9MnkZgRWOkFXk05iKJYcySE,2561
|
|
10
|
-
klaude_code/cli/config_cmd.py,sha256=
|
|
11
|
-
klaude_code/cli/debug.py,sha256=
|
|
12
|
-
klaude_code/cli/
|
|
13
|
-
klaude_code/cli/
|
|
10
|
+
klaude_code/cli/config_cmd.py,sha256=SBFmBnHvkf5IJtpsDDuHsHWQCmYd2i4PtIMBOKpxmOM,2894
|
|
11
|
+
klaude_code/cli/debug.py,sha256=vohQVqy6fB59p4NYoiQb8BiLcl5YiGvugDXc2hYGFTc,2417
|
|
12
|
+
klaude_code/cli/list_model.py,sha256=9YOxhWE0J59NaY-SrgPA9_jA1A8rlOGwWmzK0TRuos4,8011
|
|
13
|
+
klaude_code/cli/main.py,sha256=K6VkJOmxVPc0jGNJPG3wumupUCx69DSpLmvKlANw98s,9485
|
|
14
|
+
klaude_code/cli/runtime.py,sha256=GhRX3MQznj18iq3wkUGYBqTsn-eH5B9En3s_dQqcS_Y,13404
|
|
15
|
+
klaude_code/cli/self_update.py,sha256=fekLNRm3ivZ-Xbc-79rcgDBXbq-Zb-BkSQOGMRLeTAs,7986
|
|
14
16
|
klaude_code/cli/session_cmd.py,sha256=jAopkqq_DGgoDIcGxT-RSzn9R4yqBC8NCaNgK1GLqnQ,2634
|
|
15
|
-
klaude_code/command/__init__.py,sha256=
|
|
16
|
-
klaude_code/command/clear_cmd.py,sha256=
|
|
17
|
-
klaude_code/command/command_abc.py,sha256=
|
|
18
|
-
klaude_code/command/
|
|
19
|
-
klaude_code/command/
|
|
20
|
-
klaude_code/command/
|
|
21
|
-
klaude_code/command/
|
|
22
|
-
klaude_code/command/
|
|
17
|
+
klaude_code/command/__init__.py,sha256=6IhjtxjTz6sum4as4sp8N4_sSNlX0DDUEaXIqgJ5C8c,3290
|
|
18
|
+
klaude_code/command/clear_cmd.py,sha256=963rYDVwZLlGLzdn11GD9HbYsd71KJP7WeT5e3pbQcA,564
|
|
19
|
+
klaude_code/command/command_abc.py,sha256=R6Ji0LxiPBN4gtlaWkmbzzJQc2JXE1EiMkrEOq_bvas,3300
|
|
20
|
+
klaude_code/command/debug_cmd.py,sha256=hRwIgB5aWdYS5DFfCuJjAaP6M38bP05ob0_6kb-J47M,2696
|
|
21
|
+
klaude_code/command/diff_cmd.py,sha256=6XhnnPxytT_IcNdHZUcrpFkKEv_g_eyb5b7S-OZ6x-E,5159
|
|
22
|
+
klaude_code/command/export_cmd.py,sha256=_NW5FV3qHDeh5yDP1VXdNOI5J0AmPJu9ODnQaegsnAY,3466
|
|
23
|
+
klaude_code/command/export_online_cmd.py,sha256=gUEJkBuZkyNcy-Bt2nnwymfaKrZCjFdX3seAIQoK8aE,5802
|
|
24
|
+
klaude_code/command/help_cmd.py,sha256=gJQRLEOyT0Cqr-RvVdTpmmd8lbj2FzyOsADyJecGPPY,1574
|
|
25
|
+
klaude_code/command/model_cmd.py,sha256=wCFdc8Hg1V01odEtQSKIF8Q8u8R-_pELTXBolU9DAeQ,1572
|
|
23
26
|
klaude_code/command/prompt-deslop.md,sha256=YGaAXqem39zd0UWCFjWUj83Cf7cvUJq1768aJExFqeg,1346
|
|
24
27
|
klaude_code/command/prompt-dev-docs-update.md,sha256=g1IWIWIa-3qlNOw5mBA4N9H1_nvYcw8AKo7XoQw_AZQ,1855
|
|
25
28
|
klaude_code/command/prompt-dev-docs.md,sha256=PU9iT6XdUEH6grfSjHVma7xKOQcA__ZTKlEDkbbO0hA,1783
|
|
26
29
|
klaude_code/command/prompt-handoff.md,sha256=RXIeXNwOpSpkwAyNFSvQFoo077TVkbj11fqQ2r8aCh4,1638
|
|
27
30
|
klaude_code/command/prompt-init.md,sha256=a4_FQ3gKizqs2vl9oEY5jtG6HNhv3f-1b5RSCFq0A18,1873
|
|
28
|
-
klaude_code/command/prompt_command.py,sha256=
|
|
29
|
-
klaude_code/command/refresh_cmd.py,sha256=
|
|
30
|
-
klaude_code/command/registry.py,sha256
|
|
31
|
-
klaude_code/command/release_notes_cmd.py,sha256=
|
|
32
|
-
klaude_code/command/status_cmd.py,sha256=
|
|
33
|
-
klaude_code/command/terminal_setup_cmd.py,sha256=
|
|
34
|
-
klaude_code/command/thinking_cmd.py,sha256=
|
|
31
|
+
klaude_code/command/prompt_command.py,sha256=ml4YZAoJV7ARS6-vfkSxndujGKWoqg559Oei75AaH40,2515
|
|
32
|
+
klaude_code/command/refresh_cmd.py,sha256=SbyAK9ovHdvb0gYyMFefVTbPTv6TzvR3aRp8Li9e5v4,1178
|
|
33
|
+
klaude_code/command/registry.py,sha256=-K1vA183C1Fs_4nWkJ_pvz_vnhQ0rPdomUwOu9oSc80,5358
|
|
34
|
+
klaude_code/command/release_notes_cmd.py,sha256=dKouhH7EUqLO2tQtvqqmLgGDP_F-oh8elsDMHL865Vg,2615
|
|
35
|
+
klaude_code/command/status_cmd.py,sha256=bySD1WGT9UB8cc7vrGvifL24knhY4cXkoa_UbUTm8xE,5300
|
|
36
|
+
klaude_code/command/terminal_setup_cmd.py,sha256=TZTdgo1Xsx6-QFXdZPF3dlT4JyzvmA389Uoz0ATyS9M,10852
|
|
37
|
+
klaude_code/command/thinking_cmd.py,sha256=bPIJlWF6CFrAXAmp7v0WG01gIsJsMNbadd_17S5H3Hk,8434
|
|
35
38
|
klaude_code/config/__init__.py,sha256=Qrqvi8nizkj6N77h2vDj0r4rbgCiqxvz2HLBPFuWulA,120
|
|
36
39
|
klaude_code/config/config.py,sha256=2jvM6a8zoC-TdRFaLIw3OW5paxxeXC6l-o05ds4RysA,7263
|
|
37
|
-
klaude_code/config/
|
|
38
|
-
klaude_code/
|
|
39
|
-
klaude_code/const/__init__.py,sha256=uNLYBV7avW00NQDJ_ZB6n0xEeF-CYlyswKOBAHk2MmI,4256
|
|
40
|
+
klaude_code/config/select_model.py,sha256=KCdFjaoHXyO9QidNna_OGdDrvlEXtRUXKfG-F8kdNLk,5188
|
|
41
|
+
klaude_code/const/__init__.py,sha256=MWm6fppZfAd8EGPdQgdEvRzrMRJ1Ei6Ma11eoNg4es0,4256
|
|
40
42
|
klaude_code/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
43
|
klaude_code/core/agent.py,sha256=bWm-UFX_0-KAy5j_YHH8X8o3MJT4-40Ni2EaDP2SL5k,5819
|
|
42
|
-
klaude_code/core/executor.py,sha256=
|
|
43
|
-
klaude_code/core/manager/__init__.py,sha256=
|
|
44
|
-
klaude_code/core/manager/agent_manager.py,sha256=Z_LEV9WP-4h6tLAy4_WJnnJElY8MfH1OTRHk_LRw0VI,5202
|
|
44
|
+
klaude_code/core/executor.py,sha256=XJrnCnPjiH0R76zgtzJbLJtRGN00YLZhLgMQyW917dU,24009
|
|
45
|
+
klaude_code/core/manager/__init__.py,sha256=hdIbpnYj6i18byiWjtJIm5l7NYYDQMvafw8fePVPydc,562
|
|
45
46
|
klaude_code/core/manager/llm_clients.py,sha256=X2oMFWgJcP0tK8GEtMMDYR3HyR6_H8FuyCqpzWF5x2k,871
|
|
46
47
|
klaude_code/core/manager/llm_clients_builder.py,sha256=pPZ_xBh-_ipV66L-9a1fnwNos4iik82Zkq0E0y3WrfI,1521
|
|
47
48
|
klaude_code/core/manager/sub_agent_manager.py,sha256=G4se7JvDBYtEJ2t-dzOAoBYZcQcyjlAoIaAZwsnSn0s,4709
|
|
48
49
|
klaude_code/core/prompt.py,sha256=o0BHYPdr8Jcv7xGWGgNRKvWsrw9D51MJGNWq8JYH4o0,3552
|
|
49
|
-
klaude_code/core/prompts/prompt-claude-code.md,sha256=
|
|
50
|
+
klaude_code/core/prompts/prompt-claude-code.md,sha256=uuWBv6GrG63mdmBedAHT5U9yOpbHSKFYbbS2xBnUzOE,8290
|
|
50
51
|
klaude_code/core/prompts/prompt-codex-gpt-5-1-codex-max.md,sha256=SW-y8AmR99JL_9j26k9YVAOQuZ18vR12aT5CWHkZDc4,11741
|
|
51
52
|
klaude_code/core/prompts/prompt-codex-gpt-5-1.md,sha256=jNi593_4L3EoMvjS0TwltF2b684gtDBsYHa9npxO34A,24239
|
|
52
53
|
klaude_code/core/prompts/prompt-gemini.md,sha256=JjE1tHSByGKJzjn4Gpj1zekT7ry1Yqbwx5qx3fZy2gE,3901
|
|
53
54
|
klaude_code/core/prompts/prompt-minimal.md,sha256=6-ZmQQkE3f92W_3V2wS7ocB13wLog1_UojCjZG0K4v8,1559
|
|
54
|
-
klaude_code/core/prompts/prompt-sub-agent-explore.md,sha256=
|
|
55
|
+
klaude_code/core/prompts/prompt-sub-agent-explore.md,sha256=21kFodjhvN0L-c_ZFo4yVhJOyzfgES-Dty9Vz_Ew9q8,2629
|
|
55
56
|
klaude_code/core/prompts/prompt-sub-agent-oracle.md,sha256=1PLI3snvxnenCOPVrL0IxZnBl5b2xxGhlufHAyLyf60,1376
|
|
56
|
-
klaude_code/core/prompts/prompt-sub-agent-web.md,sha256=
|
|
57
|
+
klaude_code/core/prompts/prompt-sub-agent-web.md,sha256=RMJJVXmPKWTI2lOad85ichTaKKJL_PPpznOwg1j7z6U,2312
|
|
57
58
|
klaude_code/core/prompts/prompt-sub-agent.md,sha256=dmmdsOenbAOfqG6FmdR88spOLZkXmntDBs-cmZ9DN_g,897
|
|
58
|
-
klaude_code/core/reminders.py,sha256=
|
|
59
|
-
klaude_code/core/task.py,sha256=
|
|
59
|
+
klaude_code/core/reminders.py,sha256=LA8sWzYQNlwRaAeXFtso5a0HOc5ECxpDaxGgDJAmDLw,18601
|
|
60
|
+
klaude_code/core/task.py,sha256=7AXbM5vrcf6eZcKfj9xgMPEirzWtuOjYKY-_kXxHKyk,10502
|
|
60
61
|
klaude_code/core/tool/__init__.py,sha256=qNdrji0JlmDp6nW9wFngT_38FpsSgCMkaKhRLpTZERk,2158
|
|
61
62
|
klaude_code/core/tool/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
62
63
|
klaude_code/core/tool/file/_utils.py,sha256=LLmdEOJnC7MgdiAlWtBPZR0h23oM9wD_UsKqU1Nfkbs,774
|
|
@@ -67,20 +68,20 @@ klaude_code/core/tool/file/edit_tool.md,sha256=rEcUjJuPC46t1nXWjTDxplDcxWDbzTWsr
|
|
|
67
68
|
klaude_code/core/tool/file/edit_tool.py,sha256=0fDe9QSDW33t9Ujsj-L6xMqo4FuaEwVLcCpLVmzKs4k,9806
|
|
68
69
|
klaude_code/core/tool/file/multi_edit_tool.md,sha256=4G39b-jGdJdGGbBTj7R6tcUfcui9tXn6CLQ5uaX5y1M,2485
|
|
69
70
|
klaude_code/core/tool/file/multi_edit_tool.py,sha256=TI8Z8qlXUlrJ4ThVyPSUcocNC-B7NHyixoCqV-mi9G0,6886
|
|
70
|
-
klaude_code/core/tool/file/read_tool.md,sha256=
|
|
71
|
-
klaude_code/core/tool/file/read_tool.py,sha256=
|
|
71
|
+
klaude_code/core/tool/file/read_tool.md,sha256=74SLSl1tq3L0por73M0QV_ws41MRIvGXQpfLb8dmtp0,1351
|
|
72
|
+
klaude_code/core/tool/file/read_tool.py,sha256=3hAhc260VAD6lCdbj-ZzwKLs4i2CuVWSjrEMSKtqM-Y,14108
|
|
72
73
|
klaude_code/core/tool/file/write_tool.md,sha256=CNnYgtieUasuHdpXLDpTEsqe492Pf7v75M4RQ3oIer8,613
|
|
73
74
|
klaude_code/core/tool/file/write_tool.py,sha256=TdGZlxFec4hQNmWgD5Rlos5bCI9Z1RJtjhPvg15v5hk,4339
|
|
74
75
|
klaude_code/core/tool/memory/__init__.py,sha256=oeBpjUXcAilCtYXhiXDzavw5-BE_pbB2ZxsFJKTTcdc,143
|
|
75
76
|
klaude_code/core/tool/memory/memory_tool.md,sha256=qWytU7k0kQQbne_8n4cei2-dDTNpHesmbI2PYza3XR0,1299
|
|
76
77
|
klaude_code/core/tool/memory/memory_tool.py,sha256=xasFf1IQp1LFaL4ctDIQt5jfrd_z62ZsBeE42QIKAKs,18949
|
|
77
|
-
klaude_code/core/tool/memory/skill_loader.py,sha256=
|
|
78
|
+
klaude_code/core/tool/memory/skill_loader.py,sha256=WGC3svsasEIM8yDAjFmFId1HQuEhuD3KFEvgoXcHmD4,8870
|
|
78
79
|
klaude_code/core/tool/memory/skill_tool.md,sha256=UfjJK5EGAd3mf7ym5rIrRdPyV3kBTxNnwzOjNnHOBrE,973
|
|
79
80
|
klaude_code/core/tool/memory/skill_tool.py,sha256=8SC4asNZSKfExuhzbyGz4f2cr78PgCpNkut_31IHePw,3602
|
|
80
81
|
klaude_code/core/tool/report_back_tool.py,sha256=KRZzQAIxniwXe58SDJcfK_DCf9TFFAx8XC75wPEjmpY,3246
|
|
81
82
|
klaude_code/core/tool/shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
82
83
|
klaude_code/core/tool/shell/bash_tool.md,sha256=ILKpnRCBTkU2uSDEdZQjNYo1l6hsM4TO-3RD5zWC61c,3935
|
|
83
|
-
klaude_code/core/tool/shell/bash_tool.py,sha256=
|
|
84
|
+
klaude_code/core/tool/shell/bash_tool.py,sha256=xW6-F_SnSVZwAel9UB1jaCKz26ogusHIQU9ZlyV-QhE,5263
|
|
84
85
|
klaude_code/core/tool/shell/command_safety.py,sha256=bGsooLovuzq8WmLcZ2v24AVBDj3bZv2p4GSL0IlixvM,13192
|
|
85
86
|
klaude_code/core/tool/sub_agent_tool.py,sha256=vFRmULiOERqK0V9OoHww80e3yA_Q5Wxu3iv8Dpxi8d0,2992
|
|
86
87
|
klaude_code/core/tool/todo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -91,41 +92,41 @@ klaude_code/core/tool/todo/update_plan_tool.md,sha256=OoEF4voHHd5J3VDv7tq3UCHdXA
|
|
|
91
92
|
klaude_code/core/tool/todo/update_plan_tool.py,sha256=5MmmApG0wObBgc-mLETjIMupxIv-SZ7Q0uJO2Krtl1k,3794
|
|
92
93
|
klaude_code/core/tool/tool_abc.py,sha256=3FlVZ8a6hC-_Ci23_cpLaap9nHinHgxSB1TsZL5ylUQ,731
|
|
93
94
|
klaude_code/core/tool/tool_context.py,sha256=M6KpU2xtgKeQmvAZwqeLnzbzWvjxTt_M0p2ohC1tsb4,4157
|
|
94
|
-
klaude_code/core/tool/tool_registry.py,sha256=
|
|
95
|
-
klaude_code/core/tool/tool_runner.py,sha256=
|
|
96
|
-
klaude_code/core/tool/truncation.py,sha256=
|
|
95
|
+
klaude_code/core/tool/tool_registry.py,sha256=VFB0Z4BWtYKIWtpZVGhjSLcgfK244gow_UYZn1IcJQY,2642
|
|
96
|
+
klaude_code/core/tool/tool_runner.py,sha256=1MQUzqd4pWCVN1UJan4xROj6PkI2FrLBYCi_V3fyFN0,10710
|
|
97
|
+
klaude_code/core/tool/truncation.py,sha256=YPKzelOM45rHW_OkcfX5_Ojg_pPi8yDZu7lSnwl9b_k,7334
|
|
97
98
|
klaude_code/core/tool/web/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
98
99
|
klaude_code/core/tool/web/mermaid_tool.md,sha256=Ketpxpr7lz8238p5Q7ZzcyWchWd4dU68u708-dxaZds,978
|
|
99
100
|
klaude_code/core/tool/web/mermaid_tool.py,sha256=Ok0A27oHLnV1c__74bheUuy3wpqDJ1zaXUSxuuqsNPI,2630
|
|
100
|
-
klaude_code/core/tool/web/web_fetch_tool.md,sha256=
|
|
101
|
-
klaude_code/core/tool/web/web_fetch_tool.py,sha256=
|
|
101
|
+
klaude_code/core/tool/web/web_fetch_tool.md,sha256=jIrW-EAmfl50bBevcfioQ3Vrg8kWlHSut8ze_sRgRGw,486
|
|
102
|
+
klaude_code/core/tool/web/web_fetch_tool.py,sha256=otqg2RXnRZLnDKeG1c1zVOH5amPhsdj8czft4pmx_mM,6260
|
|
102
103
|
klaude_code/core/tool/web/web_search_tool.md,sha256=l5gGPx-fXHFel1zLBljm8isy9pwEYXGrq5cFzzw1VBw,1135
|
|
103
104
|
klaude_code/core/tool/web/web_search_tool.py,sha256=riI5ugsrkg1kOaaQ-Q2CYyGYx6r8WRo1db0eoitSEH0,3829
|
|
104
|
-
klaude_code/core/turn.py,sha256=
|
|
105
|
+
klaude_code/core/turn.py,sha256=PvtVV5GLAvYYAsl3RJNDnIvX1Yp4Va8whr0TR8x-9PI,12706
|
|
105
106
|
klaude_code/llm/__init__.py,sha256=b4AsqnrMIs0a5qR_ti6rZcHwFzAReTwOW96EqozEoSo,287
|
|
106
107
|
klaude_code/llm/anthropic/__init__.py,sha256=PWETvaeNAAX3ue0ww1uRUIxTJG0RpWiutkn7MlwKxBs,67
|
|
107
|
-
klaude_code/llm/anthropic/client.py,sha256=
|
|
108
|
+
klaude_code/llm/anthropic/client.py,sha256=EYBi2Ak1_DCJmZ-HG8uCz1W-6YRg9fLsCc3fjDIaUJM,10656
|
|
108
109
|
klaude_code/llm/anthropic/input.py,sha256=nyDX3uFK0GVduSiLlBEgBjAl70e0pgIZSF3PbbbuW78,8585
|
|
109
110
|
klaude_code/llm/client.py,sha256=FbFnzLUAKM61goiYNdKi8-D4rBfu_ksaxjJtmJn0w_4,960
|
|
110
111
|
klaude_code/llm/codex/__init__.py,sha256=8vN2j2ezWB_UVpfqQ8ooStsBeLL5SY4SUMXOXdWiMaI,132
|
|
111
112
|
klaude_code/llm/codex/client.py,sha256=0BAOiLAdk2PxBEYuC_TGOs4_h6yfNZr1YWuf1lzkBxM,5329
|
|
112
113
|
klaude_code/llm/input_common.py,sha256=NxiYlhGRFntiLiKm5sKLCF0xGYW6DwcyvIhj6KAZoeU,8533
|
|
113
114
|
klaude_code/llm/openai_compatible/__init__.py,sha256=ACGpnki7k53mMcCl591aw99pm9jZOZk0ghr7atOfNps,81
|
|
114
|
-
klaude_code/llm/openai_compatible/client.py,sha256=
|
|
115
|
+
klaude_code/llm/openai_compatible/client.py,sha256=ctGJAZkg3vUNN34RoTTZsakC22u4kVNmtOmun1GszvU,7991
|
|
115
116
|
klaude_code/llm/openai_compatible/input.py,sha256=rtWVjpwb9tLrinucezmncQXet8MerUxE5Gxc32sfDr4,3750
|
|
116
117
|
klaude_code/llm/openai_compatible/stream_processor.py,sha256=EOJeoWlQGHrDj6chMclflj9RMqFgE1X7cdieQ5U5rZI,3415
|
|
117
118
|
klaude_code/llm/openai_compatible/tool_call_accumulator.py,sha256=kuw3ceDgenQz2Ccc9KYqBkDo6F1sDb5Aga6m41AIECA,4071
|
|
118
119
|
klaude_code/llm/openrouter/__init__.py,sha256=_As8lHjwj6vapQhLorZttTpukk5ZiCdhFdGT38_ASPo,69
|
|
119
|
-
klaude_code/llm/openrouter/client.py,sha256=
|
|
120
|
+
klaude_code/llm/openrouter/client.py,sha256=9QeqXCwDjtqQWkW3h8qwJ6B3qAv1RmssQNJcCVS3wzc,9087
|
|
120
121
|
klaude_code/llm/openrouter/input.py,sha256=aHVJCejkwzWaTM_EBbgmzKWyZfttAws2Y7QDW_NCnZk,5671
|
|
121
122
|
klaude_code/llm/openrouter/reasoning_handler.py,sha256=r8I2F-oFTCkqJpINv74SCQZXwAuQZym7wJi5ScSe6hs,3378
|
|
122
123
|
klaude_code/llm/registry.py,sha256=grgHetTd-lSxTXiY689QW_Zd6voaid7qBqSnulpg_fE,1734
|
|
123
124
|
klaude_code/llm/responses/__init__.py,sha256=WsiyvnNiIytaYcaAqNiB8GI-5zcpjjeODPbMlteeFjA,67
|
|
124
|
-
klaude_code/llm/responses/client.py,sha256=
|
|
125
|
+
klaude_code/llm/responses/client.py,sha256=XEsVehevQJ0WFbEVxIkI-su7VwIcaeq0P9eSrIRcGug,10184
|
|
125
126
|
klaude_code/llm/responses/input.py,sha256=qr61LmQJdcb_f-ofrAz06WpK_k4PEcI36XsyuZAXbKk,6805
|
|
126
127
|
klaude_code/llm/usage.py,sha256=cq6yZNSKBhRVVjFqBYJQrK3mw9ZSLXaTpbDeal-BjBQ,4205
|
|
127
128
|
klaude_code/protocol/__init__.py,sha256=aGUgzhYqvhuT3Mk2vj7lrHGriH4h9TSbqV1RsRFAZjQ,194
|
|
128
|
-
klaude_code/protocol/commands.py,sha256=
|
|
129
|
+
klaude_code/protocol/commands.py,sha256=z9Ckp_YGC403axcqIkB-xTUM-gtlTtd-1lNx83AQriE,662
|
|
129
130
|
klaude_code/protocol/events.py,sha256=KUMf1rLNdHQO9cZiQ9Pa1VsKkP1PTMbUkp18bu_jGy8,3935
|
|
130
131
|
klaude_code/protocol/llm_param.py,sha256=cb4ubLq21PIsMOC8WJb0aid12z_sT1b7FsbNJMr-jLg,4255
|
|
131
132
|
klaude_code/protocol/model.py,sha256=JDWjN_GiUwJQxVA2HFXo2cryR_UOEjDBeVB3SwmrbE8,12584
|
|
@@ -135,14 +136,14 @@ klaude_code/protocol/sub_agent/__init__.py,sha256=Abap5lPLgnSCQsVD3axfeqnj2UtxOc
|
|
|
135
136
|
klaude_code/protocol/sub_agent/explore.py,sha256=Z4M7i98XBLew38ClXiW-hJteSYjMUu2b548rkR7JW3A,2579
|
|
136
137
|
klaude_code/protocol/sub_agent/oracle.py,sha256=0cbuutKQcvwaM--Q15mbkCdbpZMF4YjxDN1jkuGVKp4,3344
|
|
137
138
|
klaude_code/protocol/sub_agent/task.py,sha256=fvj4i1vfWXivStQ-9urDS40wTWkmNRvl6D-A0exExJg,3608
|
|
138
|
-
klaude_code/protocol/sub_agent/web.py,sha256=
|
|
139
|
+
klaude_code/protocol/sub_agent/web.py,sha256=XEQsKn4X2CMyyzMxNUWVbiSna8P5p0FYBk4kFYuTEB0,3030
|
|
139
140
|
klaude_code/protocol/tools.py,sha256=QvFtVAGkA5elef3HWnSs7FcxcI0FOn4N_toCLT-S6Rw,401
|
|
140
141
|
klaude_code/session/__init__.py,sha256=oXcDA5w-gJCbzmlF8yuWy3ezIW9DgFBNUs-gJHUJ-Rc,121
|
|
141
142
|
klaude_code/session/export.py,sha256=bgljE-3vGH2fKl6d8UptGmG4sPoy8gdVgSstMBsMy9M,26783
|
|
142
143
|
klaude_code/session/selector.py,sha256=gijwWQkSV20XYP3Fxr27mFXuqP4ChY2DQm_YuBOTQKw,2888
|
|
143
|
-
klaude_code/session/session.py,sha256=
|
|
144
|
-
klaude_code/session/templates/export_session.html,sha256=
|
|
145
|
-
klaude_code/trace/__init__.py,sha256=
|
|
144
|
+
klaude_code/session/session.py,sha256=dfXRY5m5GaSqHXGHo5AQe99RHuFnD5yjw4Q1W0DFCXM,22647
|
|
145
|
+
klaude_code/session/templates/export_session.html,sha256=7rjs2iIFL3tynWsFkhDN1hn7TndeNfaeqsV9KO_sP60,50229
|
|
146
|
+
klaude_code/trace/__init__.py,sha256=q8uOYhWr2_Mia1aEK_vkqx91YAfFM25ItIB6J8n3_pM,352
|
|
146
147
|
klaude_code/trace/log.py,sha256=0H_RqkytSpt6AAIFDg-MV_8vA9zsR9BB1UqT6moTTTg,9134
|
|
147
148
|
klaude_code/ui/__init__.py,sha256=XuEQsFUkJet8HI04cRmNLwnHOUqaPCRy4hF7PJnIfCY,2737
|
|
148
149
|
klaude_code/ui/core/__init__.py,sha256=2NakrTDcxem5D0atyEY_Rxv1BbKCeZweF63L6AAq6r8,23
|
|
@@ -156,40 +157,40 @@ klaude_code/ui/modes/exec/__init__.py,sha256=RsYa-DmDJj6g7iXb4H9mm2_Cu-KDQOD10RJ
|
|
|
156
157
|
klaude_code/ui/modes/exec/display.py,sha256=m2kkgaUoGD9rEVUmcm7Vs_PyAI2iruKCJYRhANjSsKo,1965
|
|
157
158
|
klaude_code/ui/modes/repl/__init__.py,sha256=35a6SUiL1SDi2i43X2VjHQw97rR7yhbLBzkGI5aC6Bc,1526
|
|
158
159
|
klaude_code/ui/modes/repl/clipboard.py,sha256=ZCpk7kRSXGhh0Q_BWtUUuSYT7ZOqRjAoRcg9T9n48Wo,5137
|
|
159
|
-
klaude_code/ui/modes/repl/completers.py,sha256=
|
|
160
|
+
klaude_code/ui/modes/repl/completers.py,sha256=R22W1t4oGkpxyoo2igvXpSAwsaMzcenA21kJdx3DkJ0,24776
|
|
160
161
|
klaude_code/ui/modes/repl/display.py,sha256=0u4ISeOoYjynF7InYyV-PMOZqP44QBbjYOLOL18V0c0,2245
|
|
161
|
-
klaude_code/ui/modes/repl/event_handler.py,sha256=
|
|
162
|
-
klaude_code/ui/modes/repl/input_prompt_toolkit.py,sha256=
|
|
162
|
+
klaude_code/ui/modes/repl/event_handler.py,sha256=tQuJ8nzXRKZ8aXxIe_iqv_klno_m7tgGuC0mCogvX6E,23859
|
|
163
|
+
klaude_code/ui/modes/repl/input_prompt_toolkit.py,sha256=Y0BUyc63VJpnWbRf486_8tQWjFwQ_ABCP8gQQc4mfIA,6366
|
|
163
164
|
klaude_code/ui/modes/repl/key_bindings.py,sha256=Fxz9Ey2SnOHvfleMeSYVduxuofY0Yo-97hMRs-OMe-o,7800
|
|
164
|
-
klaude_code/ui/modes/repl/renderer.py,sha256=
|
|
165
|
+
klaude_code/ui/modes/repl/renderer.py,sha256=YJAF3Cx2fmyrmGOHLVRvUlXvlRR8ptYZtngR50Vg7uY,11639
|
|
165
166
|
klaude_code/ui/renderers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
166
167
|
klaude_code/ui/renderers/assistant.py,sha256=Dxy6v4pX28RyWhnrjBteY8_NvDIi_jQa-j0mWt-eqWY,569
|
|
167
|
-
klaude_code/ui/renderers/common.py,sha256=
|
|
168
|
-
klaude_code/ui/renderers/developer.py,sha256=
|
|
168
|
+
klaude_code/ui/renderers/common.py,sha256=3wVTOX2UR575yA_vmqheM4cmNOoFu_UKMrrD7kzwPUw,1787
|
|
169
|
+
klaude_code/ui/renderers/developer.py,sha256=_xpsLZE6NhSZmmpHUmJMS3uZlOniNhLwf6M9er00d44,6876
|
|
169
170
|
klaude_code/ui/renderers/diffs.py,sha256=iPQxxZW1JGPwtTdCKMEkDlNb5trLm9tdWjfMRmtj6yQ,7616
|
|
170
|
-
klaude_code/ui/renderers/errors.py,sha256=
|
|
171
|
-
klaude_code/ui/renderers/metadata.py,sha256=
|
|
171
|
+
klaude_code/ui/renderers/errors.py,sha256=o9pOHRqZ0nxMPwkmV4CG81X7taW1-izvga6RY3fFRMI,516
|
|
172
|
+
klaude_code/ui/renderers/metadata.py,sha256=K0D9nx02rulZb2Sz_yOasFvlSFxG5U-VI3mIKD0JqbE,8290
|
|
172
173
|
klaude_code/ui/renderers/sub_agent.py,sha256=grQ_9G_7iYHdCpxrM0qDAKEMQfXcxBv0bI0GPe3s0lE,4961
|
|
173
|
-
klaude_code/ui/renderers/thinking.py,sha256=
|
|
174
|
-
klaude_code/ui/renderers/tools.py,sha256=
|
|
174
|
+
klaude_code/ui/renderers/thinking.py,sha256=hUIJzgsjvpK2cM_C2103cG4gz785FUt1PtQsQtgji9s,1764
|
|
175
|
+
klaude_code/ui/renderers/tools.py,sha256=Ch-Ads0Bj4qI3enZ7-A6j7QTY8mp9-tHMO7Eev_82z4,23690
|
|
175
176
|
klaude_code/ui/renderers/user_input.py,sha256=rDdOYvbgJ6oePQAtyTCK-KhARfLKytpTZboZ-cFIuJQ,2603
|
|
176
177
|
klaude_code/ui/rich/__init__.py,sha256=olvMm2SteyKioOqUJbEoav2TsDr_mtKqkSaifNumjwc,27
|
|
178
|
+
klaude_code/ui/rich/code_panel.py,sha256=MdUP4QSaQJQxX0MQJT0pvrkhpGYZx3gWdIRbZT_Uj_I,3938
|
|
177
179
|
klaude_code/ui/rich/live.py,sha256=Uid0QAZG7mHb4KrCF8p9c9n1nHLHzW75xSqcLZ4bLWY,2098
|
|
178
|
-
klaude_code/ui/rich/markdown.py,sha256=
|
|
180
|
+
klaude_code/ui/rich/markdown.py,sha256=cL1irwj4OuEdUvOSUjUopiuf_VMHKd52yXHIsl3JINA,10787
|
|
179
181
|
klaude_code/ui/rich/quote.py,sha256=tZcxN73SfDBHF_qk0Jkh9gWBqPBn8VLp9RF36YRdKEM,1123
|
|
180
182
|
klaude_code/ui/rich/searchable_text.py,sha256=DCVZgEFv7_ergAvT2v7XrfQAUXUzhmAwuVAchlIx8RY,2448
|
|
181
|
-
klaude_code/ui/rich/status.py,sha256=
|
|
182
|
-
klaude_code/ui/rich/theme.py,sha256=
|
|
183
|
+
klaude_code/ui/rich/status.py,sha256=QKwH-QhkpcX-6Zg7TuX6TUcuu-wY1PdBK-JEr8HQ8u0,9746
|
|
184
|
+
klaude_code/ui/rich/theme.py,sha256=5m4xDw436GLVecsnKo94lRo44pPuFPXHV-dcxrdHQAI,10723
|
|
183
185
|
klaude_code/ui/terminal/__init__.py,sha256=GIMnsEcIAGT_vBHvTlWEdyNmAEpruyscUA6M_j3GQZU,1412
|
|
184
186
|
klaude_code/ui/terminal/color.py,sha256=M-i09DVlLAhAyhQjfeAi7OipoGi1p_OVkaZxeRfykY0,7135
|
|
185
187
|
klaude_code/ui/terminal/control.py,sha256=6SGNwxorP3jMW9xqnZy2BC0OsJd4DSrS13O3t6YlZzs,4916
|
|
186
188
|
klaude_code/ui/terminal/notifier.py,sha256=wkRM66d98Oh6PujnN4bB7NiQxIYEHqQXverMKU43H5E,3187
|
|
187
189
|
klaude_code/ui/terminal/progress_bar.py,sha256=MDnhPbqCnN4GDgLOlxxOEVZPDwVC_XL2NM5sl1MFNcQ,2133
|
|
188
190
|
klaude_code/ui/utils/__init__.py,sha256=YEsCLjbCPaPza-UXTPUMTJTrc9BmNBUP5CbFWlshyOQ,15
|
|
189
|
-
klaude_code/ui/utils/common.py,sha256=
|
|
191
|
+
klaude_code/ui/utils/common.py,sha256=tqHqwgLtAyP805kwRFyoAL4EgMutcNb3Y-GAXJ4IeuM,2263
|
|
190
192
|
klaude_code/ui/utils/debouncer.py,sha256=x8AYxf48Xd6tabBvH8cVl1bIV8FzyeDo3HswDjtNfwU,1266
|
|
191
|
-
klaude_code/
|
|
192
|
-
klaude_code-1.2.
|
|
193
|
-
klaude_code-1.2.
|
|
194
|
-
klaude_code-1.2.
|
|
195
|
-
klaude_code-1.2.17.dist-info/RECORD,,
|
|
193
|
+
klaude_code-1.2.19.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
|
|
194
|
+
klaude_code-1.2.19.dist-info/entry_points.txt,sha256=7CWKjolvs6dZiYHpelhA_FRJ-sVDh43eu3iWuOhKc_w,53
|
|
195
|
+
klaude_code-1.2.19.dist-info/METADATA,sha256=J5wh59EP87_jfujv6Df6ysIKyK0piN3k3Bub8nNWBVQ,7606
|
|
196
|
+
klaude_code-1.2.19.dist-info/RECORD,,
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
"""Agent and session manager.
|
|
2
|
-
|
|
3
|
-
This module contains :class:`AgentManager`, a helper responsible for
|
|
4
|
-
creating and tracking agents per session, applying model changes, and
|
|
5
|
-
clearing conversations. It is used by the executor context to keep
|
|
6
|
-
agent-related responsibilities separate from operation dispatch.
|
|
7
|
-
"""
|
|
8
|
-
|
|
9
|
-
from __future__ import annotations
|
|
10
|
-
|
|
11
|
-
import asyncio
|
|
12
|
-
|
|
13
|
-
from klaude_code.config import load_config
|
|
14
|
-
from klaude_code.core.agent import Agent, DefaultModelProfileProvider, ModelProfileProvider
|
|
15
|
-
from klaude_code.core.manager.llm_clients import LLMClients
|
|
16
|
-
from klaude_code.llm.registry import create_llm_client
|
|
17
|
-
from klaude_code.protocol import commands, events, model
|
|
18
|
-
from klaude_code.session.session import Session
|
|
19
|
-
from klaude_code.trace import DebugType, log_debug
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
class AgentManager:
|
|
23
|
-
"""Manager component that tracks agents and their sessions."""
|
|
24
|
-
|
|
25
|
-
def __init__(
|
|
26
|
-
self,
|
|
27
|
-
event_queue: asyncio.Queue[events.Event],
|
|
28
|
-
llm_clients: LLMClients,
|
|
29
|
-
model_profile_provider: ModelProfileProvider | None = None,
|
|
30
|
-
) -> None:
|
|
31
|
-
self._event_queue: asyncio.Queue[events.Event] = event_queue
|
|
32
|
-
self._llm_clients: LLMClients = llm_clients
|
|
33
|
-
self._model_profile_provider: ModelProfileProvider = model_profile_provider or DefaultModelProfileProvider()
|
|
34
|
-
self._active_agents: dict[str, Agent] = {}
|
|
35
|
-
|
|
36
|
-
async def emit_event(self, event: events.Event) -> None:
|
|
37
|
-
"""Emit an event to the shared event queue."""
|
|
38
|
-
|
|
39
|
-
await self._event_queue.put(event)
|
|
40
|
-
|
|
41
|
-
async def ensure_agent(self, session_id: str | None = None) -> Agent:
|
|
42
|
-
"""Return an existing agent for the session or create a new one.
|
|
43
|
-
|
|
44
|
-
If session_id is None, a new session is created with an auto-generated ID.
|
|
45
|
-
If session_id is provided, attempts to load existing session or creates new one.
|
|
46
|
-
"""
|
|
47
|
-
if session_id is None:
|
|
48
|
-
session = Session.create()
|
|
49
|
-
else:
|
|
50
|
-
agent = self._active_agents.get(session_id)
|
|
51
|
-
if agent is not None:
|
|
52
|
-
return agent
|
|
53
|
-
session = Session.load(session_id)
|
|
54
|
-
profile = self._model_profile_provider.build_profile(self._llm_clients.main)
|
|
55
|
-
agent = Agent(session=session, profile=profile)
|
|
56
|
-
|
|
57
|
-
async for evt in agent.replay_history():
|
|
58
|
-
await self.emit_event(evt)
|
|
59
|
-
|
|
60
|
-
await self.emit_event(
|
|
61
|
-
events.WelcomeEvent(
|
|
62
|
-
work_dir=str(session.work_dir),
|
|
63
|
-
llm_config=self._llm_clients.main.get_llm_config(),
|
|
64
|
-
)
|
|
65
|
-
)
|
|
66
|
-
|
|
67
|
-
self._active_agents[session.id] = agent
|
|
68
|
-
log_debug(
|
|
69
|
-
f"Initialized agent for session: {session.id}",
|
|
70
|
-
style="cyan",
|
|
71
|
-
debug_type=DebugType.EXECUTION,
|
|
72
|
-
)
|
|
73
|
-
return agent
|
|
74
|
-
|
|
75
|
-
async def apply_model_change(self, agent: Agent, model_name: str) -> None:
|
|
76
|
-
"""Change the model used by an agent and notify the UI."""
|
|
77
|
-
|
|
78
|
-
config = load_config()
|
|
79
|
-
if config is None:
|
|
80
|
-
raise ValueError("Configuration must be initialized before changing model")
|
|
81
|
-
|
|
82
|
-
llm_config = config.get_model_config(model_name)
|
|
83
|
-
llm_client = create_llm_client(llm_config)
|
|
84
|
-
agent.set_model_profile(self._model_profile_provider.build_profile(llm_client))
|
|
85
|
-
|
|
86
|
-
developer_item = model.DeveloperMessageItem(
|
|
87
|
-
content=f"switched to model: {model_name}",
|
|
88
|
-
command_output=model.CommandOutput(command_name=commands.CommandName.MODEL),
|
|
89
|
-
)
|
|
90
|
-
agent.session.append_history([developer_item])
|
|
91
|
-
|
|
92
|
-
await self.emit_event(events.DeveloperMessageEvent(session_id=agent.session.id, item=developer_item))
|
|
93
|
-
await self.emit_event(events.WelcomeEvent(llm_config=llm_config, work_dir=str(agent.session.work_dir)))
|
|
94
|
-
|
|
95
|
-
async def apply_clear(self, agent: Agent) -> None:
|
|
96
|
-
"""Start a new conversation for an agent and notify the UI."""
|
|
97
|
-
|
|
98
|
-
old_session_id = agent.session.id
|
|
99
|
-
|
|
100
|
-
# Create a new session instance to replace the current one
|
|
101
|
-
new_session = Session(work_dir=agent.session.work_dir)
|
|
102
|
-
new_session.model_name = agent.session.model_name
|
|
103
|
-
|
|
104
|
-
# Replace the agent's session with the new one
|
|
105
|
-
agent.session = new_session
|
|
106
|
-
agent.session.save()
|
|
107
|
-
|
|
108
|
-
# Update the active_agents mapping
|
|
109
|
-
self._active_agents.pop(old_session_id, None)
|
|
110
|
-
self._active_agents[new_session.id] = agent
|
|
111
|
-
|
|
112
|
-
developer_item = model.DeveloperMessageItem(
|
|
113
|
-
content="started new conversation",
|
|
114
|
-
command_output=model.CommandOutput(command_name=commands.CommandName.CLEAR),
|
|
115
|
-
)
|
|
116
|
-
|
|
117
|
-
await self.emit_event(events.DeveloperMessageEvent(session_id=agent.session.id, item=developer_item))
|
|
118
|
-
|
|
119
|
-
def get_active_agent(self, session_id: str) -> Agent | None:
|
|
120
|
-
"""Return the active agent for a session id if present."""
|
|
121
|
-
|
|
122
|
-
return self._active_agents.get(session_id)
|
|
123
|
-
|
|
124
|
-
def active_session_ids(self) -> list[str]:
|
|
125
|
-
"""Return a snapshot list of session ids that currently have agents."""
|
|
126
|
-
|
|
127
|
-
return list(self._active_agents.keys())
|
|
128
|
-
|
|
129
|
-
def all_active_agents(self) -> dict[str, Agent]:
|
|
130
|
-
"""Return a snapshot of all active agents keyed by session id."""
|
|
131
|
-
|
|
132
|
-
return dict(self._active_agents)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|