klaude-code 2.34.0__tar.gz → 2.35.0__tar.gz
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-2.34.0 → klaude_code-2.35.0}/PKG-INFO +1 -1
- {klaude_code-2.34.0 → klaude_code-2.35.0}/pyproject.toml +1 -1
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/agent.py +4 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/agent_profile.py +2 -2
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/runtime/agent_ops.py +31 -8
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/runtime/dispatcher.py +55 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/step.py +1 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/task.py +15 -1
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/app/runtime_facade.py +89 -3
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/cli/headless_cmd.py +52 -10
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/const.py +2 -1
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/control/runtime/actor.py +1 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/events.py +13 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/message.py +9 -1
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/models/__init__.py +2 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/models/tool_ui.py +13 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/op.py +17 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/op_handler.py +5 -0
- klaude_code-2.35.0/src/klaude_code/protocol/shell_task.py +27 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/sub_agent/finder.py +1 -1
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/sub_agent/general_purpose.py +1 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/sub_agent/maintenance_review.py +1 -1
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/sub_agent/review.py +1 -1
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/tools.py +1 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/app.py +11 -1
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/headless.py +132 -10
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/prevent_sleep.py +2 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/routes/headless.py +85 -2
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/routes/server.py +5 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/routes/ws.py +109 -8
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/upgrade.py +2 -1
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/session/session.py +2 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/__init__.py +2 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/core/context.py +5 -1
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/shell/bash_tool.md +4 -0
- klaude_code-2.35.0/src/klaude_code/tool/shell/bash_tool.py +228 -0
- klaude_code-2.35.0/src/klaude_code/tool/shell/manage_shell_tool.md +8 -0
- klaude_code-2.35.0/src/klaude_code/tool/shell/manage_shell_tool.py +107 -0
- klaude_code-2.35.0/src/klaude_code/tool/shell/task_manager.py +561 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/__init__.py +3 -0
- klaude_code-2.35.0/src/klaude_code/tui/command/tasks_cmd.py +70 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/types.py +1 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/commands.py +7 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/tools/_dispatch.py +14 -1
- klaude_code-2.35.0/src/klaude_code/tui/components/tools/_manage_shell.py +191 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/tools/_presentation.py +9 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/tools/compact.py +28 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/input/images.py +11 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/machine.py +38 -3
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/renderer.py +56 -6
- klaude_code-2.34.0/src/klaude_code/.DS_Store +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/PaperMono-Variable-DQvzASPe.woff2 +0 -0
- klaude_code-2.34.0/src/klaude_code/server/web/assets/c-BIGW1oBm.js +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/assets/cpp-DddhVWhK.js +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/assets/csharp-DSvCPggb.js +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/assets/css-CLj8gQPS.js +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/assets/go-C27-OAKa.js +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/assets/html-CfGypltT.js +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/assets/index-gobToU9i.js +0 -506
- klaude_code-2.34.0/src/klaude_code/server/web/assets/index-vwkr7oYA.css +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/assets/ini-BEwlwnbL.js +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/assets/java-CylS5w8V.js +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/assets/kotlin-BdnUsdx6.js +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/assets/less-B1dDrJ26.js +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/assets/lua-BaeVxFsk.js +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/assets/markdown-Cvjx9yec.js +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/assets/mdx-Cmh6b_Ma.js +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/assets/php-Dpscij6T.js +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/assets/python-B6aJPvgy.js +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/assets/ruby-AMTQbAGo.js +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/assets/rust-B1yitclQ.js +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/assets/scss-D5BDwBP9.js +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/assets/sql-CRqJ_cUM.js +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/assets/swift-C2oV4EkX.js +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/assets/toml-vGWfd6FD.js +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/assets/xml-sdJ4AIDG.js +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/assets/yaml-Buea-lGh.js +0 -1
- klaude_code-2.34.0/src/klaude_code/server/web/favicon.svg +0 -9
- klaude_code-2.34.0/src/klaude_code/server/web/index.html +0 -14
- klaude_code-2.34.0/src/klaude_code/tool/shell/bash_tool.py +0 -359
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/abap-BdImnpbu.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/actionscript-3-CoDkCxhg.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/ada-bCR0ucgS.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/andromeeda-C4gqWexZ.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/angular-html-CU67Zn6k.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/angular-ts-BwZT4LLn.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/apache-Pmp26Uib.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/apex-D8_7TLub.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/apl-dKokRX4l.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/applescript-Co6uUVPk.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/ara-BRHolxvo.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/asciidoc-Ve4PFQV2.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/asm-D_Q5rh1f.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/astro-CbQHKStN.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/aurora-x-D-2ljcwZ.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/awk-DMzUqQB5.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/ayu-dark-DYE7WIF3.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/ayu-light-BA47KaF1.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/ayu-mirage-32ctXXKs.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/ballerina-BFfxhgS-.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/bat-BkioyH1T.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/beancount-k_qm7-4y.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/berry-uYugtg8r.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/bibtex-CHM0blh-.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/bicep-Bmn6On1c.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/bird2-DPOp833l.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/blade-D4QpJJKB.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/bsl-BO_Y6i37.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/c-BIGW1oBm.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/c3-eo99z4R2.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/cadence-Bv_4Rxtq.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/cairo-KRGpt6FW.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/catppuccin-frappe-DFWUc33u.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/catppuccin-latte-C9dUb6Cb.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/catppuccin-macchiato-DQyhUUbL.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/catppuccin-mocha-D87Tk5Gz.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/clarity-D53aC0YG.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/clojure-P80f7IUj.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/cmake-D1j8_8rp.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/cobol-nwyudZeR.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/codeowners-Bp6g37R7.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/codeql-DsOJ9woJ.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/coffee-Ch7k5sss.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/common-lisp-Cg-RD9OK.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/coq-DkFqJrB1.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/cpp-CofmeUqb.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/crystal-tKQVLTB8.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/csharp-COcwbKMJ.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/css-DPfMkruS.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/csv-fuZLfV_i.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/cue-D82EKSYY.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/cypher-COkxafJQ.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/d-85-TOEBH.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/dark-plus-C3mMm8J8.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/dart-CF10PKvl.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/dax-CEL-wOlO.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/desktop-BmXAJ9_W.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/diff-D97Zzqfu.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/docker-BcOcwvcX.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/dotenv-Da5cRb03.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/dracula-BzJJZx-M.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/dracula-soft-BXkSAIEj.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/dream-maker-BtqSS_iP.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/edge-BkV0erSs.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/elixir-CDX3lj18.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/elm-DbKCFpqz.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/emacs-lisp-C9XAeP06.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/erb-B12qg9BL.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/erlang-DsQrWhSR.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/everforest-dark-BgDCqdQA.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/everforest-light-C8M2exoo.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/fennel-BYunw83y.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/fish-BvzEVeQv.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/fluent-C4IJs8-o.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/fortran-fixed-form-CkoXwp7k.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/fortran-free-form-BxgE0vQu.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/fsharp-CXgrBDvD.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/gdresource-BOOCDP_w.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/gdscript-C5YyOfLZ.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/gdshader-DkwncUOv.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/genie-D0YGMca9.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/gherkin-DyxjwDmM.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/git-commit-F4YmCXRG.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/git-rebase-r7XF79zn.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/github-dark-DHJKELXO.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/github-dark-default-Cuk6v7N8.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/github-dark-dimmed-DH5Ifo-i.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/github-dark-high-contrast-E3gJ1_iC.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/github-light-DAi9KRSo.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/github-light-default-D7oLnXFd.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/github-light-high-contrast-BfjtVDDH.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/gleam-BspZqrRM.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/glimmer-js-Rg0-pVw9.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/glimmer-ts-U6CK756n.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/glsl-DplSGwfg.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/gn-n2N0HUVH.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/gnuplot-DdkO51Og.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/go-CxLEBnE3.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/graphql-ChdNCCLP.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/groovy-gcz8RCvz.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/gruvbox-dark-hard-CFHQjOhq.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/gruvbox-dark-medium-GsRaNv29.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/gruvbox-dark-soft-CVdnzihN.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/gruvbox-light-hard-CH1njM8p.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/gruvbox-light-medium-DRw_LuNl.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/gruvbox-light-soft-hJgmCMqR.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/hack-CaT9iCJl.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/haml-B8DHNrY2.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/handlebars-BL8al0AC.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/haskell-Df6bDoY_.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/haxe-CzTSHFRz.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/hcl-BWvSN4gD.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/highlighted-body-OFNGDK62-BAlPQylW.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/hjson-D5-asLiD.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/hlsl-D3lLCCz7.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/horizon-BUw7H-hv.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/horizon-bright-Cn-bp-IR.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/houston-DnULxvSX.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/html-GMplVEZG.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/html-derivative-BFtXZ54Q.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/http-jrhK8wxY.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/hurl-irOxFIW8.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/hxml-Bvhsp5Yf.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/hy-DFXneXwc.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/imba-DGztddWO.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/index-C9qNNGOM.css +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/index-DAO84tSS.js +0 -134
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/index-YF27pVQl.js +0 -2352
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/ini-BEwlwnbL.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/java-CylS5w8V.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/javascript-wDzz0qaB.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/jinja-4LBKfQ-Z.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/jison-wvAkD_A8.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/json-Cp-IABpG.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/json5-C9tS-k6U.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/jsonc-Des-eS-w.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/jsonl-DcaNXYhu.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/jsonnet-DFQXde-d.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/jssm-C2t-YnRu.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/jsx-g9-lgVsj.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/julia-CxzCAyBv.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/just-Cw27pwNe.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/kanagawa-dragon-CkXjmgJE.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/kanagawa-lotus-CfQXZHmo.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/kanagawa-wave-DWedfzmr.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/kdl-DV7GczEv.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/kotlin-BdnUsdx6.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/kusto-DZf3V79B.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/laserwave-DUszq2jm.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/latex-CWtU0Tv5.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/lean-BZvkOJ9d.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/less-B1dDrJ26.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/light-plus-B7mTdjB0.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/liquid-DYVedYrR.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/llvm-DjAJT7YJ.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/log-2UxHyX5q.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/logo-BtOb2qkB.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/lua-BaeVxFsk.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/luau-C-HG3fhB.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/make-CHLpvVh8.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/markdown-Cvjx9yec.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/marko-CnJfTvn9.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/material-theme-D5KoaKCx.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/material-theme-darker-BfHTSMKl.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/material-theme-lighter-B0m2ddpp.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/material-theme-ocean-CyktbL80.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/material-theme-palenight-Csfq5Kiy.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/matlab-D7o27uSR.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/mdc-BMNejdWA.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/mdx-Cmh6b_Ma.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/mermaid-mWjccvbQ.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/min-dark-CafNBF8u.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/min-light-CTRr51gU.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/mipsasm-CKIfxQSi.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/mojo-rZm6bMo-.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/monokai-D4h5O-jR.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/moonbit-_H4v1dQx.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/move-IF9eRakj.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/narrat-DRg8JJMk.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/nextflow-Zz6hmt5N.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/nextflow-groovy-BeH2EWoN.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/nginx-BpAMiNFr.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/night-owl-C39BiMTA.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/night-owl-light-CMTm3GFP.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/nim-CVrawwO9.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/nix-CwoSXNpI.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/nord-Ddv68eIx.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/nushell-Cz2AlsmD.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/objective-c-DXmwc3jG.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/objective-cpp-CLxacb5B.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/ocaml-C0hk2d4L.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/odin-BBf5iR-q.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/one-dark-pro-DVMEJ2y_.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/one-light-C3Wv6jpd.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/openscad-C4EeE6gA.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/pascal-D93ZcfNL.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/perl-C0TMdlhV.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/php-Dhbhpdrm.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/pierre-dark-DF2SEV7i.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/pierre-light-DOlZxES8.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/pkl-u5AG7uiY.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/plastic-3e1v2bzS.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/plsql-ChMvpjG-.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/po-BTJTHyun.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/poimandres-CS3Unz2-.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/polar-C0HS_06l.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/postcss-CXtECtnM.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/powerquery-CEu0bR-o.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/powershell-Dpen1YoG.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/prisma-Dd19v3D-.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/prolog-CbFg5uaA.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/proto-C7zT0LnQ.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/pug-CGlum2m_.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/puppet-BMWR74SV.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/purescript-CklMAg4u.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/python-B6aJPvgy.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/qml-3beO22l8.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/qmldir-C8lEn-DE.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/qss-IeuSbFQv.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/r-Dspwwk_N.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/racket-BqYA7rlc.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/raku-DXvB9xmW.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/razor-Uh8Bk_45.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/red-bN70gL4F.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/reg-C-SQnVFl.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/regexp-CDVJQ6XC.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/rel-C3B-1QV4.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/riscv-BM1_JUlF.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/ron-D8l8udqQ.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/rose-pine-dawn-DHQR4-dF.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/rose-pine-moon-D4_iv3hh.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/rose-pine-qdsjHGoJ.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/rosmsg-BJDFO7_C.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/rst-BrH8l1NY.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/ruby-Dw2BHqvy.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/rust-B1yitclQ.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/sas-cz2c8ADy.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/sass-Cj5Yp3dK.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/scala-C151Ov-r.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/scheme-C98Dy4si.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/scss-OYdSNvt2.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/sdbl-DVxCFoDh.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/shaderlab-Dg9Lc6iA.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/shellscript-Yzrsuije.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/shellsession-BADoaaVG.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/slack-dark-BthQWCQV.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/slack-ochin-DqwNpetd.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/smalltalk-BERRCDM3.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/snazzy-light-Bw305WKR.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/solarized-dark-DXbdFlpD.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/solarized-light-L9t79GZl.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/solidity-rGO070M0.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/soy-Brmx7dQM.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/sparql-rVzFXLq3.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/splunk-BtCnVYZw.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/sql-BLtJtn59.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/ssh-config-_ykCGR6B.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/stata-BH5u7GGu.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/stylus-BEDo0Tqx.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/surrealql-Bq5Q-fJD.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/svelte-C_ipcX3V.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/swift-D82vCrfD.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/synthwave-84-CbfX1IO0.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/system-verilog-CnnmHF94.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/systemd-4A_iFExJ.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/talonscript-CkByrt1z.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/tasl-QIJgUcNo.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/tcl-dwOrl1Do.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/templ-P3uqSqPl.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/terraform-BETggiCN.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/tex-idrVyKtj.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/tokyo-night-hegEt444.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/toml-vGWfd6FD.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/ts-tags-zn1MmPIZ.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/tsv-B_m7g4N7.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/tsx-COt5Ahok.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/turtle-BsS91CYL.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/twig-DNn4PbVi.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/typescript-BPQ3VLAy.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/typespec-BGHnOYBU.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/typst-DHCkPAjA.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/v-BcVCzyr7.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/vala-CsfeWuGM.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/vb-D17OF-Vu.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/verilog-BQ8w6xss.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/vesper-DU1UobuO.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/vhdl-CeAyd5Ju.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/viml-CJc9bBzg.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/vitesse-black-Bkuqu6BP.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/vitesse-dark-D0r3Knsf.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/vitesse-light-CVO1_9PV.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/vue-DN_0RTcg.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/vue-html-AaS7Mt5G.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/vue-vine-CQOfvN7w.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/vyper-CDx5xZoG.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/wasm-CG6Dc4jp.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/wasm-MzD3tlZU.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/wenyan-BV7otONQ.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/wgsl-Dx-B1_4e.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/wikitext-BhOHFoWU.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/wit-5i3qLPDT.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/wolfram-lXgVvXCa.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/xml-sdJ4AIDG.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/xsl-CtQFsRM5.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/yaml-Buea-lGh.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/zenscript-DVFEvuxE.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/assets/zig-VOosw3JB.js +0 -1
- klaude_code-2.34.0/src/klaude_code/web/dist/favicon.svg +0 -3
- klaude_code-2.34.0/src/klaude_code/web/dist/fonts/InterVariable-Italic.woff2 +0 -0
- klaude_code-2.34.0/src/klaude_code/web/dist/fonts/InterVariable.woff2 +0 -0
- klaude_code-2.34.0/src/klaude_code/web/dist/index.html +0 -21
- {klaude_code-2.34.0 → klaude_code-2.35.0}/README.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/attachments/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/attachments/autonomy.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/attachments/collection.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/attachments/files.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/attachments/memory.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/attachments/skills.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/attachments/state.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/away_summary.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/bash_mode.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/cache_break_detection.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/cache_safe.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/compaction/AGENTS.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/compaction/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/compaction/compaction.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/compaction/overflow.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/connectivity.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/context_usage.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/handoff/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/handoff/handoff.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/handoff/manager.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/llm_request.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/model_fallback.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/prompt_suggestion/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/prompt_suggestion/prompt_suggestion.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/rewind/AGENTS.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/rewind/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/rewind/summary.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/runtime/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/runtime/away_summary.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/runtime/config_ops.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/runtime/llm.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/runtime/sub_agent.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/session_stats.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/session_title.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/side_question.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/skill_inventory.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/suspend.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/system_prompt.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/token_estimate.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/agent/welcome_context.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/app/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/app/auth_flow.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/app/herdr.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/app/ports/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/app/ports/display.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/app/ports/input.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/app/ports/interaction.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/app/runtime.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/auth/AGENTS.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/auth/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/auth/base.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/auth/codex/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/auth/codex/exceptions.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/auth/codex/jwt_utils.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/auth/codex/oauth.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/auth/codex/token_manager.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/auth/env.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/auth/removed_provider.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/auth/xai/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/auth/xai/exceptions.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/auth/xai/oauth.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/auth/xai/token_manager.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/cli/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/cli/agents_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/cli/attach_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/cli/auth_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/cli/config_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/cli/cost_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/cli/debug.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/cli/list_model.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/cli/main.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/cli/oauth_usage.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/cli/self_update.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/cli/server_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/cli/trace_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/cli/uds_client.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/config/AGENTS.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/config/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/config/assets/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/config/assets/builtin_config.yaml +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/config/builtin_config.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/config/config.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/config/formatters.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/config/loader.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/config/merge.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/config/model_matcher.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/config/sub_agent_model.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/control/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/control/event_bus.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/control/event_tape.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/control/runtime/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/control/runtime/registry.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/control/user_interaction.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/AGENTS.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/anthropic/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/anthropic/client.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/anthropic/input.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/bedrock_anthropic/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/bedrock_anthropic/client.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/client.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/google/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/google/client.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/google/input.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/google_vertex/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/google_vertex/client.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/http.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/image.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/input_common.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/json_stable.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/model_workarounds.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/openai_codex/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/openai_codex/client.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/openai_compatible/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/openai_compatible/client.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/openai_compatible/input.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/openai_compatible/stream.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/openai_responses/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/openai_responses/client.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/openai_responses/input.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/openai_responses/prompt_cache.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/openrouter/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/openrouter/client.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/openrouter/input.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/openrouter/reasoning.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/proxy_support.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/registry.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/stop_reason.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/stream_parts.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/usage.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/xai_oauth/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/llm/xai_oauth/client.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/log.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/prompts/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/prompts/attachments.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/prompts/away_summary.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/prompts/compaction.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/prompts/grilling.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/prompts/handoff.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/prompts/messages.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/prompts/prompt_suggestion.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/prompts/session_title.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/prompts/side_question.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/prompts/sub_agents/prompt-sub-agent-finder.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/prompts/sub_agents/prompt-sub-agent-maintenance-review.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/prompts/sub_agents/prompt-sub-agent-review.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/prompts/sub_agents.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/prompts/system/auto-memory-prompt.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/prompts/system/base-system-prompt-gpt.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/prompts/system/base-system-prompt.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/prompts/system/following-conventions-prompt.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/prompts/system/git-workspace-hygiene-prompt.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/prompts/system/visual-explanation-prompt.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/env_sync.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/input_syntax.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/llm_param.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/model_id.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/models/common.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/models/context_usage.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/models/developer_ui.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/models/file_tracking.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/models/session_runtime.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/models/sub_agent.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/models/task_metadata.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/models/todo.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/models/usage.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/sub_agent/AGENTS.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/sub_agent/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/system_prompt.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/user_interaction.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/protocol/version.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/binding.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/display.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/history_bridge.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/host_guard.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/interaction.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/lifecycle.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/paths.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/routes/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/routes/sessions.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/routes/web.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/routes/web_api.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/server.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/session_index.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/session_live.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/session_state.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/session_tape.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/startup_log.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/state.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/server/system_context.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/session/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/session/codec.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/session/history.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/session/ledger.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/session/meta.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/session/search.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/session/selector.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/session/store.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/session/store_registry.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/AGENTS.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/.git +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/.gitignore +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/SOURCES.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/agent-browser/SKILL.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/agent-browser/references/authentication.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/agent-browser/references/commands.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/agent-browser/references/profiling.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/agent-browser/references/proxy-support.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/agent-browser/references/session-management.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/agent-browser/references/snapshot-refs.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/agent-browser/references/video-recording.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/agent-browser/templates/authenticated-session.sh +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/agent-browser/templates/capture-workflow.sh +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/agent-browser/templates/form-automation.sh +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/frontend-design/SKILL.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/image-gen/LICENSE.txt +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/image-gen/SKILL.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/image-gen/references/cli.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/image-gen/references/gateway-api.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/image-gen/references/model-routing.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/image-gen/references/prompting.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/image-gen/references/sample-prompts.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/image-gen/scripts/image_gen.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/image-gen/tests/test_image_gen.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/klaude-config/SKILL.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/klaude-config/references/background-agents.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/klaude-config/references/builtin-providers.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/klaude-config/references/config-file.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/klaude-config/references/memory-files.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/klaude-config/references/skill-system.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/pdf/SKILL.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/pdf/forms.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/pdf/reference.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/pdf/scripts/check_bounding_boxes.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/pdf/scripts/check_fillable_fields.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/pdf/scripts/convert_pdf_to_images.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/pdf/scripts/create_validation_image.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/pdf/scripts/extract_form_field_info.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/pdf/scripts/extract_form_structure.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/pdf/scripts/fill_fillable_fields.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/pdf/scripts/fill_pdf_form_with_annotations.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/playwright/LICENSE.txt +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/playwright/NOTICE.txt +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/playwright/SKILL.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/playwright/assets/playwright-small.svg +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/playwright/assets/playwright.png +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/playwright/references/cli.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/playwright/references/workflows.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/playwright/scripts/playwright_cli.sh +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/render-mermaid/.gitignore +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/render-mermaid/SKILL.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/render-mermaid/package.json +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/render-mermaid/references/config/first-time-setup.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/render-mermaid/references/config/preferences-schema.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/render-mermaid/references/templates/standalone.html +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/render-mermaid/references/troubleshooting.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/render-mermaid/scripts/render_mermaid.js +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/render-mermaid/scripts/setup.sh +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/session-logs/SKILL.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/skill-creator/SKILL.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/assets/skills-lock.json +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/loader.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/manager.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/skill/system_skills.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/AGENTS.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/agent_tool.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/agent_tool.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/ask_user_question_tool.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/ask_user_question_tool.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/core/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/core/abc.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/core/ansi.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/core/offload.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/core/registry.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/core/runner.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/file/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/file/_read_core.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/file/_utils.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/file/apply_patch.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/file/apply_patch_tool.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/file/apply_patch_tool.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/file/diff_builder.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/file/edit_tool.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/file/edit_tool.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/file/look_at_tool.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/file/look_at_tool.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/file/read_handlers.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/file/read_tool.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/file/read_tool.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/file/write_tool.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/file/write_tool.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/handoff_tool.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/handoff_tool.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/shell/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/shell/command_safety.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/shell/file_tracking.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/todo/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/todo/todo_write_tool.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/todo/todo_write_tool.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/web/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/web/external_content.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/web/ssrf.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/web/web_cache.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/web/web_fetch_tool.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/web/web_fetch_tool.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/web/web_search_tool.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tool/web/web_search_tool.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/AGENTS.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/client/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/client/base.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/client/command_agent.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/client/server_api.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/client/socket_client.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/AGENTS.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/auth_selector.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/btw_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/command_abc.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/compact_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/context_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/continue_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/copy_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/fork_session_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/grill_me_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/login_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/logout_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/manage_providers_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/model_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/model_picker.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/new_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/provider_manager.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/recap_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/refresh_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/registry.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/reload_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/rewind_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/status_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/sub_agent_model_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/command/switch_cmd.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/away_summary.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/bash_syntax.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/command_output.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/common.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/context_usage.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/developer.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/diffs.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/errors.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/metadata.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/rich/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/rich/cjk_wrap.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/rich/clip.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/rich/markdown.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/rich/mermaid.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/rich/quote.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/rich/status.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/rich/theme.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/side_question.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/sub_agent.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/task_file_changes.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/thinking.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/tools/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/tools/_bash.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/tools/_common.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/tools/_file.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/tools/_look_at.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/tools/_question.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/tools/_read.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/tools/_todo.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/tools/_web.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/user_input.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/components/welcome.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/display.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/input/AGENTS.md +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/input/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/input/color_scheme.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/input/completers.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/input/completion_menu.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/input/csi_u.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/input/drag_drop.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/input/flicker_safe_stdout.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/input/key_bindings.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/input/paste.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/input/prompt_status_bar.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/input/prompt_toolkit.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/input/pt_theme.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/input/resize_watcher.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/runner.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/status_runtime.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/terminal/__init__.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/terminal/ask_user_question.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/terminal/color.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/terminal/control.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/terminal/image.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/terminal/notifier.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/terminal/selector.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/terminal/session_selector.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/terminal/title.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/terminal/tty_state.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/transcript_detail.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/tui/workspace.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/update.py +0 -0
- {klaude_code-2.34.0 → klaude_code-2.35.0}/src/klaude_code/workspace.py +0 -0
|
@@ -12,6 +12,7 @@ from klaude_code.protocol.models import TaskMetadata
|
|
|
12
12
|
from klaude_code.session import Session
|
|
13
13
|
from klaude_code.tool import build_todo_context, get_registry
|
|
14
14
|
from klaude_code.tool.core.context import RunSubtask
|
|
15
|
+
from klaude_code.tool.shell.task_manager import ShellTaskManager
|
|
15
16
|
|
|
16
17
|
|
|
17
18
|
class Agent:
|
|
@@ -33,6 +34,7 @@ class Agent:
|
|
|
33
34
|
| None
|
|
34
35
|
) = None,
|
|
35
36
|
model_profile_provider: ModelProfileProvider | None = None,
|
|
37
|
+
shell_task_manager: ShellTaskManager | None = None,
|
|
36
38
|
):
|
|
37
39
|
self.session: Session = session
|
|
38
40
|
self.profile: AgentProfile = profile
|
|
@@ -47,6 +49,7 @@ class Agent:
|
|
|
47
49
|
self._last_interrupt_prefill_text: str | None = None
|
|
48
50
|
self.request_user_interaction = request_user_interaction
|
|
49
51
|
self._model_profile_provider = model_profile_provider
|
|
52
|
+
self.shell_task_manager = shell_task_manager
|
|
50
53
|
if not self.session.model_name:
|
|
51
54
|
self.session.model_name = profile.llm_client.model_name
|
|
52
55
|
|
|
@@ -195,6 +198,7 @@ class Agent:
|
|
|
195
198
|
run_subtask=run_subtask,
|
|
196
199
|
request_user_interaction=self.request_user_interaction,
|
|
197
200
|
prompt_cache_key=self.session.prompt_cache_key,
|
|
201
|
+
shell_task_manager=self.shell_task_manager,
|
|
198
202
|
)
|
|
199
203
|
context = TaskExecutionContext(
|
|
200
204
|
session=self.session,
|
|
@@ -38,7 +38,7 @@ class AgentProfile:
|
|
|
38
38
|
attachments: list[Attachment]
|
|
39
39
|
|
|
40
40
|
|
|
41
|
-
MAIN_AGENT_COMMON_BASE_TOOLS: list[str] = [tools.BASH, tools.READ]
|
|
41
|
+
MAIN_AGENT_COMMON_BASE_TOOLS: list[str] = [tools.BASH, tools.MANAGE_SHELL, tools.READ]
|
|
42
42
|
MAIN_AGENT_APPLY_PATCH_DIFF_TOOLS: list[str] = [tools.APPLY_PATCH, tools.TODO_WRITE]
|
|
43
43
|
MAIN_AGENT_EDIT_WRITE_DIFF_TOOLS: list[str] = [tools.EDIT, tools.WRITE, tools.TODO_WRITE]
|
|
44
44
|
MAIN_AGENT_COMMON_TOOLS: list[str] = [
|
|
@@ -219,6 +219,6 @@ class VanillaModelProfileProvider(ModelProfileProvider):
|
|
|
219
219
|
return AgentProfile(
|
|
220
220
|
llm_client=llm_client,
|
|
221
221
|
system_prompt="You're an agent running in user's terminal",
|
|
222
|
-
tools=get_tool_schemas([tools.BASH, tools.EDIT, tools.WRITE, tools.READ]),
|
|
222
|
+
tools=get_tool_schemas([tools.BASH, tools.MANAGE_SHELL, tools.EDIT, tools.WRITE, tools.READ]),
|
|
223
223
|
attachments=[],
|
|
224
224
|
)
|
|
@@ -46,6 +46,7 @@ from klaude_code.protocol import events, message, op, user_interaction
|
|
|
46
46
|
from klaude_code.protocol.models import SubAgentState, TaskMetadata
|
|
47
47
|
from klaude_code.protocol.sub_agent import SubAgentResult
|
|
48
48
|
from klaude_code.session.session import Session
|
|
49
|
+
from klaude_code.tool.shell.task_manager import ShellTaskManager
|
|
49
50
|
from klaude_code.update import get_startup_update_summary
|
|
50
51
|
|
|
51
52
|
|
|
@@ -100,8 +101,12 @@ class AgentOperationHandler:
|
|
|
100
101
|
[PendingUserInteractionRequest],
|
|
101
102
|
Awaitable[user_interaction.UserInteractionResponse],
|
|
102
103
|
],
|
|
104
|
+
shell_task_manager: ShellTaskManager | None = None,
|
|
105
|
+
has_pending_shell_notifications: Callable[[str], bool] | None = None,
|
|
103
106
|
) -> None:
|
|
104
107
|
self._emit_event = emit_event
|
|
108
|
+
self._shell_task_manager = shell_task_manager
|
|
109
|
+
self._has_pending_shell_notifications = has_pending_shell_notifications
|
|
105
110
|
self._llm_clients_template = llm_clients
|
|
106
111
|
self._model_profile_provider = model_profile_provider
|
|
107
112
|
self._sub_agent_launcher: SubAgentLauncher | None = None
|
|
@@ -401,6 +406,7 @@ class AgentOperationHandler:
|
|
|
401
406
|
compact_llm_client=session_clients.compact,
|
|
402
407
|
request_user_interaction=self._build_request_user_interaction_callback(session_id=session.id),
|
|
403
408
|
model_profile_provider=profile_provider,
|
|
409
|
+
shell_task_manager=self._shell_task_manager,
|
|
404
410
|
)
|
|
405
411
|
|
|
406
412
|
# Another initializer may have completed while this one built the
|
|
@@ -498,6 +504,7 @@ class AgentOperationHandler:
|
|
|
498
504
|
compact_llm_client=session_clients.compact,
|
|
499
505
|
request_user_interaction=self._build_request_user_interaction_callback(session_id=session.id),
|
|
500
506
|
model_profile_provider=profile_provider,
|
|
507
|
+
shell_task_manager=self._shell_task_manager,
|
|
501
508
|
)
|
|
502
509
|
runtime.set_agent(agent)
|
|
503
510
|
return agent
|
|
@@ -639,6 +646,10 @@ class AgentOperationHandler:
|
|
|
639
646
|
debug_type=DebugType.EXECUTION,
|
|
640
647
|
)
|
|
641
648
|
return
|
|
649
|
+
if (self._shell_task_manager is not None and session_id in self._shell_task_manager.active_session_ids()) or (
|
|
650
|
+
self._has_pending_shell_notifications is not None and self._has_pending_shell_notifications(session_id)
|
|
651
|
+
):
|
|
652
|
+
return
|
|
642
653
|
suppress = should_suggest(agent.session)
|
|
643
654
|
if suppress is not None:
|
|
644
655
|
log_debug(
|
|
@@ -720,10 +731,7 @@ class AgentOperationHandler:
|
|
|
720
731
|
frozen_images = await asyncio.to_thread(
|
|
721
732
|
lambda: [freeze_image_for_history(image, images_dir=images_dir) for image in images]
|
|
722
733
|
)
|
|
723
|
-
return
|
|
724
|
-
text=user_input.text,
|
|
725
|
-
images=frozen_images,
|
|
726
|
-
)
|
|
734
|
+
return user_input.model_copy(update={"images": frozen_images})
|
|
727
735
|
|
|
728
736
|
async def run_agent(self, operation: op.RunAgentOperation) -> None:
|
|
729
737
|
agent = await self.ensure_agent(operation.session_id)
|
|
@@ -749,10 +757,14 @@ class AgentOperationHandler:
|
|
|
749
757
|
frozen_input.text,
|
|
750
758
|
frozen_input.images,
|
|
751
759
|
),
|
|
760
|
+
source=frozen_input.source,
|
|
761
|
+
shell_tasks=frozen_input.shell_tasks,
|
|
752
762
|
)
|
|
753
763
|
]
|
|
754
764
|
)
|
|
755
|
-
if self._should_refresh_session_title_during_task(
|
|
765
|
+
if operation.shell_notification_generation is None and self._should_refresh_session_title_during_task(
|
|
766
|
+
agent.session.id
|
|
767
|
+
):
|
|
756
768
|
self._schedule_session_title_refresh(agent.session)
|
|
757
769
|
|
|
758
770
|
existing_active = self.get_active_task(operation.id)
|
|
@@ -763,7 +775,13 @@ class AgentOperationHandler:
|
|
|
763
775
|
|
|
764
776
|
async def _run_with_event_context() -> None:
|
|
765
777
|
with event_publish_context(task_id=task_id):
|
|
766
|
-
await self._run_agent_task(
|
|
778
|
+
await self._run_agent_task(
|
|
779
|
+
agent,
|
|
780
|
+
frozen_input,
|
|
781
|
+
task_id,
|
|
782
|
+
operation.session_id,
|
|
783
|
+
shell_notification=operation.shell_notification_generation is not None,
|
|
784
|
+
)
|
|
767
785
|
|
|
768
786
|
task: asyncio.Task[None] = asyncio.create_task(_run_with_event_context())
|
|
769
787
|
self._register_task(
|
|
@@ -1098,6 +1116,7 @@ class AgentOperationHandler:
|
|
|
1098
1116
|
compact_llm_client=session_clients.compact,
|
|
1099
1117
|
request_user_interaction=self._build_request_user_interaction_callback(session_id=new_session.id),
|
|
1100
1118
|
model_profile_provider=self._model_profile_provider,
|
|
1119
|
+
shell_task_manager=self._shell_task_manager,
|
|
1101
1120
|
)
|
|
1102
1121
|
|
|
1103
1122
|
old_runtime.clear_execution_state()
|
|
@@ -1146,6 +1165,7 @@ class AgentOperationHandler:
|
|
|
1146
1165
|
compact_llm_client=session_clients.compact,
|
|
1147
1166
|
request_user_interaction=self._build_request_user_interaction_callback(session_id=new_session.id),
|
|
1148
1167
|
model_profile_provider=self._model_profile_provider,
|
|
1168
|
+
shell_task_manager=self._shell_task_manager,
|
|
1149
1169
|
)
|
|
1150
1170
|
|
|
1151
1171
|
old_runtime.clear_execution_state()
|
|
@@ -1435,6 +1455,8 @@ class AgentOperationHandler:
|
|
|
1435
1455
|
user_input: message.UserInputPayload,
|
|
1436
1456
|
task_id: str,
|
|
1437
1457
|
session_id: str,
|
|
1458
|
+
*,
|
|
1459
|
+
shell_notification: bool = False,
|
|
1438
1460
|
) -> None:
|
|
1439
1461
|
try:
|
|
1440
1462
|
log_debug(
|
|
@@ -1471,7 +1493,8 @@ class AgentOperationHandler:
|
|
|
1471
1493
|
|
|
1472
1494
|
# Task completed normally — predict the user's next prompt in the
|
|
1473
1495
|
# background. Cancelled implicitly when the next user turn starts.
|
|
1474
|
-
|
|
1496
|
+
if not shell_notification:
|
|
1497
|
+
self._schedule_prompt_suggestion(agent)
|
|
1475
1498
|
|
|
1476
1499
|
except asyncio.CancelledError:
|
|
1477
1500
|
log_debug(
|
|
@@ -1495,7 +1518,7 @@ class AgentOperationHandler:
|
|
|
1495
1518
|
)
|
|
1496
1519
|
finally:
|
|
1497
1520
|
self._remove_task(session_id=session_id, task_id=task_id)
|
|
1498
|
-
if not self._should_refresh_session_title_during_task(session_id):
|
|
1521
|
+
if not shell_notification and not self._should_refresh_session_title_during_task(session_id):
|
|
1499
1522
|
self._schedule_session_title_refresh(agent.session)
|
|
1500
1523
|
log_debug(
|
|
1501
1524
|
f"Cleaned up agent task {task_id}",
|
|
@@ -3,8 +3,10 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
import asyncio
|
|
6
|
+
import contextlib
|
|
6
7
|
from collections.abc import Awaitable, Callable
|
|
7
8
|
from dataclasses import dataclass
|
|
9
|
+
from pathlib import Path
|
|
8
10
|
from typing import Literal
|
|
9
11
|
|
|
10
12
|
from klaude_code.agent.agent import Agent
|
|
@@ -18,6 +20,7 @@ from klaude_code.control.runtime.actor import SessionActor
|
|
|
18
20
|
from klaude_code.control.user_interaction import PendingUserInteractionRequest
|
|
19
21
|
from klaude_code.protocol import events, op, user_interaction
|
|
20
22
|
from klaude_code.protocol.op_handler import OperationHandler
|
|
23
|
+
from klaude_code.tool.shell.task_manager import ShellTaskManager
|
|
21
24
|
|
|
22
25
|
|
|
23
26
|
@dataclass(frozen=True)
|
|
@@ -40,6 +43,7 @@ class OperationDispatcherPorts:
|
|
|
40
43
|
# and awaits operations on them via these facade entry points.
|
|
41
44
|
submit_operation: Callable[[op.Operation], Awaitable[str]]
|
|
42
45
|
wait_for_operation: Callable[[str], Awaitable[Literal["completed", "rejected", "failed"] | None]]
|
|
46
|
+
disable_shell_notifications: Callable[[str], None]
|
|
43
47
|
|
|
44
48
|
|
|
45
49
|
class OperationDispatcher:
|
|
@@ -59,10 +63,13 @@ class OperationDispatcher:
|
|
|
59
63
|
ports: OperationDispatcherPorts,
|
|
60
64
|
model_profile_provider: ModelProfileProvider | None = None,
|
|
61
65
|
on_model_change: Callable[[str], None] | None = None,
|
|
66
|
+
shell_task_manager: ShellTaskManager | None = None,
|
|
67
|
+
has_pending_shell_notifications: Callable[[str], bool] | None = None,
|
|
62
68
|
):
|
|
63
69
|
self._event_bus = event_bus
|
|
64
70
|
self.llm_clients: LLMClients = llm_clients
|
|
65
71
|
self._ports = ports
|
|
72
|
+
self._shell_task_manager = shell_task_manager
|
|
66
73
|
|
|
67
74
|
resolved_profile_provider = model_profile_provider or DefaultModelProfileProvider()
|
|
68
75
|
self.model_profile_provider: ModelProfileProvider = resolved_profile_provider
|
|
@@ -79,6 +86,8 @@ class OperationDispatcher:
|
|
|
79
86
|
register_task=ports.register_task,
|
|
80
87
|
remove_task=ports.remove_task,
|
|
81
88
|
request_user_interaction=self.request_user_interaction,
|
|
89
|
+
shell_task_manager=shell_task_manager,
|
|
90
|
+
has_pending_shell_notifications=has_pending_shell_notifications,
|
|
82
91
|
)
|
|
83
92
|
self._sub_agent_launcher = SubAgentLauncher(
|
|
84
93
|
handler=self._agent_operation_handler,
|
|
@@ -216,6 +225,51 @@ class OperationDispatcher:
|
|
|
216
225
|
async def handle_run_bash(self, operation: op.RunBashOperation) -> None:
|
|
217
226
|
await self._agent_operation_handler.run_bash(operation)
|
|
218
227
|
|
|
228
|
+
async def handle_manage_shell(self, operation: op.ManageShellOperation) -> None:
|
|
229
|
+
manager = self._shell_task_manager
|
|
230
|
+
if manager is None:
|
|
231
|
+
return
|
|
232
|
+
actor = self._ports.get_session_actor(operation.session_id)
|
|
233
|
+
agent = actor.get_agent() if actor is not None else None
|
|
234
|
+
work_dir = agent.session.work_dir if agent is not None else None
|
|
235
|
+
try:
|
|
236
|
+
tasks = await manager.list_tasks(operation.session_id, work_dir=work_dir)
|
|
237
|
+
if operation.action == "list":
|
|
238
|
+
await self.emit_event(events.ShellTasksUpdatedEvent(session_id=operation.session_id, tasks=tasks))
|
|
239
|
+
content = (
|
|
240
|
+
"\n".join(
|
|
241
|
+
f"{task.task_id} {task.status} exit={task.exit_code} {task.description or task.command}"
|
|
242
|
+
for task in tasks
|
|
243
|
+
)
|
|
244
|
+
or "No background shell tasks."
|
|
245
|
+
)
|
|
246
|
+
else:
|
|
247
|
+
task_id = operation.task_id
|
|
248
|
+
if task_id is None:
|
|
249
|
+
if not tasks:
|
|
250
|
+
raise ValueError("No background shell tasks.")
|
|
251
|
+
task_id = tasks[-1].task_id
|
|
252
|
+
if operation.action == "stop":
|
|
253
|
+
task = await manager.stop_task(operation.session_id, task_id)
|
|
254
|
+
content = f"{task.task_id}: {task.status}; log: {task.output_path}"
|
|
255
|
+
else:
|
|
256
|
+
offset = operation.offset
|
|
257
|
+
if operation.task_id is None and offset == 0:
|
|
258
|
+
task = next(task for task in tasks if task.task_id == task_id)
|
|
259
|
+
with contextlib.suppress(OSError):
|
|
260
|
+
offset = max(0, Path(task.output_path).stat().st_size - operation.limit)
|
|
261
|
+
output = await manager.read_output(
|
|
262
|
+
operation.session_id, task_id, offset=offset, limit=operation.limit
|
|
263
|
+
)
|
|
264
|
+
content = (
|
|
265
|
+
f"{output.task.task_id}: {output.task.status}; log: {output.task.output_path}\n"
|
|
266
|
+
f"{output.output}\nNext offset: {output.next_offset}"
|
|
267
|
+
)
|
|
268
|
+
except (ValueError, KeyError, OSError) as exc:
|
|
269
|
+
await self.emit_event(events.NoticeEvent(session_id=operation.session_id, content=str(exc), is_error=True))
|
|
270
|
+
return
|
|
271
|
+
await self.emit_event(events.NoticeEvent(session_id=operation.session_id, content=content))
|
|
272
|
+
|
|
219
273
|
async def handle_continue_agent(self, operation: op.ContinueAgentOperation) -> None:
|
|
220
274
|
await self._agent_operation_handler.continue_agent(operation)
|
|
221
275
|
|
|
@@ -282,6 +336,7 @@ class OperationDispatcher:
|
|
|
282
336
|
)
|
|
283
337
|
if not interrupted:
|
|
284
338
|
return
|
|
339
|
+
self._ports.disable_shell_notifications(operation.session_id)
|
|
285
340
|
cancelled_requests = self.cancel_pending_user_interactions(session_id=operation.session_id)
|
|
286
341
|
await self._emit_interaction_cancelled_events(cancelled_requests, reason="interrupt")
|
|
287
342
|
# Sub-agents run in their own actors; cancelling the parent task no
|
|
@@ -468,6 +468,7 @@ class StepExecutor:
|
|
|
468
468
|
run_subtask=session_ctx.run_subtask,
|
|
469
469
|
handoff_manager=ctx.handoff_manager,
|
|
470
470
|
request_user_interaction=session_ctx.request_user_interaction,
|
|
471
|
+
shell_task_manager=session_ctx.shell_task_manager,
|
|
471
472
|
)
|
|
472
473
|
|
|
473
474
|
executor = ToolExecutor(
|
|
@@ -49,6 +49,7 @@ from klaude_code.protocol.models import (
|
|
|
49
49
|
from klaude_code.session.session import Session
|
|
50
50
|
from klaude_code.tool import FileTracker, TodoContext, ToolABC, get_registry
|
|
51
51
|
from klaude_code.tool.core.context import RunSubtask
|
|
52
|
+
from klaude_code.tool.shell.task_manager import ShellTaskManager
|
|
52
53
|
|
|
53
54
|
type RequestUserInteraction = Callable[
|
|
54
55
|
[
|
|
@@ -225,6 +226,7 @@ class SessionContext:
|
|
|
225
226
|
run_subtask: RunSubtask | None
|
|
226
227
|
request_user_interaction: RequestUserInteraction | None
|
|
227
228
|
prompt_cache_key: str | None = None
|
|
229
|
+
shell_task_manager: ShellTaskManager | None = None
|
|
228
230
|
|
|
229
231
|
|
|
230
232
|
@dataclass
|
|
@@ -295,6 +297,18 @@ class TaskExecutor:
|
|
|
295
297
|
) -> list[events.DeveloperMessageEvent]:
|
|
296
298
|
ctx = self._context
|
|
297
299
|
attachment_results = await collect_attachments(ctx.session, ctx.profile.attachments)
|
|
300
|
+
manager = ctx.session_ctx.shell_task_manager
|
|
301
|
+
if manager is not None:
|
|
302
|
+
tasks = await manager.list_tasks(ctx.session.id, work_dir=ctx.session.work_dir)
|
|
303
|
+
active = [task for task in tasks if task.status in ("running", "stopping")]
|
|
304
|
+
if active:
|
|
305
|
+
# Runtime-owned identifiers only; command/log text is untrusted.
|
|
306
|
+
summary = "\n".join(f"- {task.task_id}: {task.status}; log: {task.output_path}" for task in active)
|
|
307
|
+
attachment_results.append(
|
|
308
|
+
message.DeveloperMessage(
|
|
309
|
+
parts=[message.TextPart(text=f"Active background shell tasks in this session:\n{summary}")]
|
|
310
|
+
)
|
|
311
|
+
)
|
|
298
312
|
events_to_emit: list[events.DeveloperMessageEvent] = []
|
|
299
313
|
existing: set[str] = set()
|
|
300
314
|
if skip_existing:
|
|
@@ -620,7 +634,7 @@ class TaskExecutor:
|
|
|
620
634
|
ctx = self._context
|
|
621
635
|
session_ctx = ctx.session_ctx
|
|
622
636
|
self._started_at = time.perf_counter()
|
|
623
|
-
self._current_user_input_text = user_input.text
|
|
637
|
+
self._current_user_input_text = user_input.text if user_input.source != "shell_completion" else None
|
|
624
638
|
self._task_visible_output_started = False
|
|
625
639
|
self._last_interrupt_show_notice = True
|
|
626
640
|
self._last_interrupt_prefill_text = None
|
|
@@ -2,7 +2,7 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
import asyncio
|
|
4
4
|
import contextlib
|
|
5
|
-
from collections.abc import Callable
|
|
5
|
+
from collections.abc import Awaitable, Callable
|
|
6
6
|
from typing import Literal
|
|
7
7
|
|
|
8
8
|
from klaude_code.agent.agent import Agent
|
|
@@ -14,7 +14,9 @@ from klaude_code.control.runtime.registry import OperationLifecycleHooks, Sessio
|
|
|
14
14
|
from klaude_code.control.user_interaction import PendingUserInteractionRequest
|
|
15
15
|
from klaude_code.log import DebugType, log_debug
|
|
16
16
|
from klaude_code.protocol import events, op, user_interaction
|
|
17
|
+
from klaude_code.protocol.shell_task import ShellTaskSnapshot
|
|
17
18
|
from klaude_code.session.session import Session
|
|
19
|
+
from klaude_code.tool.shell.task_manager import ShellTaskManager
|
|
18
20
|
|
|
19
21
|
|
|
20
22
|
class OperationCompletionAwaiter:
|
|
@@ -92,6 +94,14 @@ class RuntimeFacade:
|
|
|
92
94
|
model_profile_provider: ModelProfileProvider | None = None,
|
|
93
95
|
on_model_change: Callable[[str], None] | None = None,
|
|
94
96
|
):
|
|
97
|
+
self._stopped = False
|
|
98
|
+
self._shell_notification_generations: dict[str, int] = {}
|
|
99
|
+
self._shell_notifications_disabled: set[str] = set()
|
|
100
|
+
self._shell_completion_handler: Callable[[ShellTaskSnapshot, int], Awaitable[None]] | None = None
|
|
101
|
+
self._shell_pending_provider: Callable[[str], bool] | None = None
|
|
102
|
+
self.shell_task_manager = ShellTaskManager(
|
|
103
|
+
on_update=self._shell_tasks_updated, on_complete=self._shell_completed
|
|
104
|
+
)
|
|
95
105
|
self.session_registry = SessionRegistry(
|
|
96
106
|
handle_operation=self._execute_operation,
|
|
97
107
|
reject_operation=self._reject_operation,
|
|
@@ -125,9 +135,12 @@ class RuntimeFacade:
|
|
|
125
135
|
on_child_task_state_change=self._on_child_task_state_change,
|
|
126
136
|
submit_operation=self.submit,
|
|
127
137
|
wait_for_operation=self.wait_for,
|
|
138
|
+
disable_shell_notifications=self.disable_shell_notifications,
|
|
128
139
|
),
|
|
129
140
|
model_profile_provider,
|
|
130
141
|
on_model_change,
|
|
142
|
+
shell_task_manager=self.shell_task_manager,
|
|
143
|
+
has_pending_shell_notifications=self.has_pending_shell_notifications,
|
|
131
144
|
)
|
|
132
145
|
self._operation_awaiter = OperationCompletionAwaiter(event_bus)
|
|
133
146
|
self._stopped = False
|
|
@@ -314,6 +327,30 @@ class RuntimeFacade:
|
|
|
314
327
|
if self._stopped:
|
|
315
328
|
raise RuntimeError("RuntimeFacade is stopped")
|
|
316
329
|
|
|
330
|
+
if isinstance(operation, op.InterruptOperation):
|
|
331
|
+
actor = self.session_registry.get_session_actor(operation.session_id)
|
|
332
|
+
root = actor.snapshot().active_root_task if actor is not None else None
|
|
333
|
+
if operation.expected_operation_id is None or (
|
|
334
|
+
root is not None and root.operation_id == operation.expected_operation_id
|
|
335
|
+
):
|
|
336
|
+
pending = [operation.session_id]
|
|
337
|
+
disabled: set[str] = set()
|
|
338
|
+
actors = self.session_registry.list_session_actors()
|
|
339
|
+
while pending:
|
|
340
|
+
session_id = pending.pop()
|
|
341
|
+
if session_id in disabled:
|
|
342
|
+
continue
|
|
343
|
+
disabled.add(session_id)
|
|
344
|
+
self.disable_shell_notifications(session_id)
|
|
345
|
+
for actor in actors:
|
|
346
|
+
agent = actor.get_agent()
|
|
347
|
+
if agent is not None and agent.session.parent_session_id == session_id:
|
|
348
|
+
pending.append(actor.session_id)
|
|
349
|
+
elif (
|
|
350
|
+
isinstance(operation, op.RunAgentOperation) and operation.shell_notification_generation is None
|
|
351
|
+
) or isinstance(operation, op.RunBashOperation | op.FollowUpAgentOperation):
|
|
352
|
+
self.resume_shell_notifications(operation.session_id)
|
|
353
|
+
|
|
317
354
|
self._operation_awaiter.register(operation.id)
|
|
318
355
|
try:
|
|
319
356
|
await self.session_registry.submit(operation)
|
|
@@ -331,6 +368,39 @@ class RuntimeFacade:
|
|
|
331
368
|
async def emit_event(self, event: events.Event) -> None:
|
|
332
369
|
await self._operation_dispatcher.emit_event(event)
|
|
333
370
|
|
|
371
|
+
async def _shell_tasks_updated(self, session_id: str, tasks: list[ShellTaskSnapshot]) -> None:
|
|
372
|
+
if not self._stopped:
|
|
373
|
+
await self.emit_event(events.ShellTasksUpdatedEvent(session_id=session_id, tasks=tasks))
|
|
374
|
+
|
|
375
|
+
async def _shell_completed(self, task: ShellTaskSnapshot) -> None:
|
|
376
|
+
generation = self.shell_notification_generation(task.session_id)
|
|
377
|
+
if generation is not None and self._shell_completion_handler is not None:
|
|
378
|
+
await self._shell_completion_handler(task, generation)
|
|
379
|
+
|
|
380
|
+
def set_shell_completion_handler(
|
|
381
|
+
self,
|
|
382
|
+
handler: Callable[[ShellTaskSnapshot, int], Awaitable[None]] | None,
|
|
383
|
+
*,
|
|
384
|
+
has_pending: Callable[[str], bool] | None = None,
|
|
385
|
+
) -> None:
|
|
386
|
+
self._shell_completion_handler = handler
|
|
387
|
+
self._shell_pending_provider = has_pending
|
|
388
|
+
|
|
389
|
+
def has_pending_shell_notifications(self, session_id: str) -> bool:
|
|
390
|
+
return self._shell_pending_provider is not None and self._shell_pending_provider(session_id)
|
|
391
|
+
|
|
392
|
+
def shell_notification_generation(self, session_id: str) -> int | None:
|
|
393
|
+
if self._stopped or session_id in self._shell_notifications_disabled:
|
|
394
|
+
return None
|
|
395
|
+
return self._shell_notification_generations.get(session_id, 0)
|
|
396
|
+
|
|
397
|
+
def disable_shell_notifications(self, session_id: str) -> None:
|
|
398
|
+
self._shell_notification_generations[session_id] = self._shell_notification_generations.get(session_id, 0) + 1
|
|
399
|
+
self._shell_notifications_disabled.add(session_id)
|
|
400
|
+
|
|
401
|
+
def resume_shell_notifications(self, session_id: str) -> None:
|
|
402
|
+
self._shell_notifications_disabled.discard(session_id)
|
|
403
|
+
|
|
334
404
|
async def replay_session_history(self, session_id: str) -> None:
|
|
335
405
|
"""Replay an initialized session's transcript to the display."""
|
|
336
406
|
await self._operation_dispatcher.replay_session_history(session_id)
|
|
@@ -350,7 +420,9 @@ class RuntimeFacade:
|
|
|
350
420
|
return self._operation_dispatcher.current_agent
|
|
351
421
|
|
|
352
422
|
def has_running_tasks(self) -> bool:
|
|
353
|
-
return
|
|
423
|
+
return self.shell_task_manager.has_running_tasks() or any(
|
|
424
|
+
not active.task.done() for active in self._operation_dispatcher.list_active_tasks()
|
|
425
|
+
)
|
|
354
426
|
|
|
355
427
|
def cancel_auto_away_summary(self, session_id: str) -> None:
|
|
356
428
|
self._operation_dispatcher.cancel_auto_away_summary(session_id)
|
|
@@ -365,6 +437,8 @@ class RuntimeFacade:
|
|
|
365
437
|
|
|
366
438
|
closed = await self.session_registry.close_session(session_id, force=force)
|
|
367
439
|
if closed:
|
|
440
|
+
self.disable_shell_notifications(session_id)
|
|
441
|
+
await self.shell_task_manager.stop_session(session_id)
|
|
368
442
|
for request in cancelled_requests:
|
|
369
443
|
await self._operation_dispatcher.emit_event(
|
|
370
444
|
events.UserInteractionCancelledEvent(
|
|
@@ -392,7 +466,12 @@ class RuntimeFacade:
|
|
|
392
466
|
# Never reclaim the primary (TUI-active) session or any session an
|
|
393
467
|
# exclusion provider vouches for (the server excludes every session
|
|
394
468
|
# with a live WS attach — an attached-but-quiet TUI is still in use).
|
|
395
|
-
exclude: set[str] =
|
|
469
|
+
exclude: set[str] = self.shell_task_manager.active_session_ids()
|
|
470
|
+
exclude |= {
|
|
471
|
+
actor.session_id
|
|
472
|
+
for actor in self.session_registry.list_session_actors()
|
|
473
|
+
if self.has_pending_shell_notifications(actor.session_id)
|
|
474
|
+
}
|
|
396
475
|
primary = self._operation_dispatcher.current_session_id()
|
|
397
476
|
if primary is not None:
|
|
398
477
|
exclude.add(primary)
|
|
@@ -412,6 +491,7 @@ class RuntimeFacade:
|
|
|
412
491
|
|
|
413
492
|
async def stop(self) -> None:
|
|
414
493
|
self._stopped = True
|
|
494
|
+
await self.shell_task_manager.aclose()
|
|
415
495
|
sessions_to_flush: list[Agent] = []
|
|
416
496
|
for runtime in self.session_registry.list_session_actors():
|
|
417
497
|
agent = runtime.get_agent()
|
|
@@ -459,6 +539,12 @@ class RuntimeFacade:
|
|
|
459
539
|
log_debug("RuntimeFacade stopped", debug_type=DebugType.EXECUTION)
|
|
460
540
|
|
|
461
541
|
async def _execute_operation(self, operation: op.Operation) -> None:
|
|
542
|
+
if (
|
|
543
|
+
isinstance(operation, op.RunAgentOperation)
|
|
544
|
+
and operation.shell_notification_generation is not None
|
|
545
|
+
and self.shell_notification_generation(operation.session_id) != operation.shell_notification_generation
|
|
546
|
+
):
|
|
547
|
+
return
|
|
462
548
|
try:
|
|
463
549
|
log_debug(
|
|
464
550
|
f"Handling operation {operation.id} of type {operation.type.value}",
|
|
@@ -692,9 +692,23 @@ def ps_command(
|
|
|
692
692
|
# -- brief --
|
|
693
693
|
|
|
694
694
|
|
|
695
|
+
def _truncate_middle(text: str, limit: int) -> str:
|
|
696
|
+
if len(text) <= limit:
|
|
697
|
+
return text
|
|
698
|
+
marker = "\n… [middle truncated] …\n"
|
|
699
|
+
if limit <= len(marker):
|
|
700
|
+
return text[: max(0, limit - 1)] + "…" if limit > 0 else ""
|
|
701
|
+
remaining = limit - len(marker)
|
|
702
|
+
head = (remaining + 1) // 2
|
|
703
|
+
tail = remaining // 2
|
|
704
|
+
return text[:head] + marker + (text[-tail:] if tail else "")
|
|
705
|
+
|
|
706
|
+
|
|
695
707
|
def brief_command(
|
|
696
708
|
target: str = typer.Argument(..., metavar="TARGET"),
|
|
697
|
-
max_chars: int = typer.Option(
|
|
709
|
+
max_chars: int = typer.Option(
|
|
710
|
+
4000, "--max-chars", min=1, show_default=False, help="Target output size (default 4000)"
|
|
711
|
+
),
|
|
698
712
|
full_last: bool = typer.Option(False, "--full-last", help="Do not truncate the last assistant message"),
|
|
699
713
|
json_: bool = typer.Option(False, "--json", help="Machine-readable"),
|
|
700
714
|
) -> None:
|
|
@@ -703,9 +717,13 @@ def brief_command(
|
|
|
703
717
|
Never dumps the full transcript.
|
|
704
718
|
|
|
705
719
|
\b
|
|
706
|
-
Sections: state, title, model, dir, todos, current
|
|
707
|
-
|
|
708
|
-
(
|
|
720
|
+
Sections: state, title, model, dir, latest user request, todos, current tool call,
|
|
721
|
+
recent tool calls from the latest user turn (up to 5, with result status),
|
|
722
|
+
pending request (when waiting_input), recent assistant messages (up to 5,
|
|
723
|
+
older messages middle-truncated), token usage, changed-files summary.
|
|
724
|
+
The latest message gets the text budget first; --full-last keeps it whole.
|
|
725
|
+
In-progress assistant text is included and marked as streaming.
|
|
726
|
+
Metadata and pending requests are never cut to meet the budget.
|
|
709
727
|
"""
|
|
710
728
|
body = _api("GET", f"/api/headless/sessions/{target}/brief")
|
|
711
729
|
if json_:
|
|
@@ -727,6 +745,8 @@ def brief_command(
|
|
|
727
745
|
lines.append(f"agent: {body.get('agent_type')}")
|
|
728
746
|
if body.get("approval_policy"):
|
|
729
747
|
lines.append(f"approval: {body.get('approval_policy')}")
|
|
748
|
+
if body.get("last_user_message"):
|
|
749
|
+
lines.append(f"request: {body.get('last_user_message')}")
|
|
730
750
|
|
|
731
751
|
todos = body.get("todos") or []
|
|
732
752
|
if todos:
|
|
@@ -738,6 +758,12 @@ def brief_command(
|
|
|
738
758
|
if body.get("current_tool_call"):
|
|
739
759
|
lines.append(f"current tool: {body.get('current_tool_call')}")
|
|
740
760
|
|
|
761
|
+
recent_tools = body.get("recent_tool_calls") or []
|
|
762
|
+
if recent_tools:
|
|
763
|
+
lines.append("recent tools:")
|
|
764
|
+
for tool in recent_tools:
|
|
765
|
+
lines.append(f" [{tool.get('status')}] {tool.get('activity')}")
|
|
766
|
+
|
|
741
767
|
pending = body.get("pending_request")
|
|
742
768
|
if isinstance(pending, dict):
|
|
743
769
|
lines.extend(_pending_request_lines(pending, target=target))
|
|
@@ -753,20 +779,36 @@ def brief_command(
|
|
|
753
779
|
)
|
|
754
780
|
|
|
755
781
|
changes = body.get("file_change_summary") or {}
|
|
756
|
-
edited = list(changes.get("edited_files") or [])
|
|
782
|
+
edited = list(dict.fromkeys([*(changes.get("edited_files") or []), *(changes.get("created_files") or [])]))
|
|
757
783
|
if edited or changes.get("diff_lines_added") or changes.get("diff_lines_removed"):
|
|
784
|
+
work_dir = str(body.get("work_dir") or "").rstrip("/")
|
|
785
|
+
paths = [_abbrev_home(str(path).removeprefix(f"{work_dir}/")) for path in edited[:8]]
|
|
786
|
+
more = f", … {len(edited) - 8} more" if len(edited) > 8 else ""
|
|
758
787
|
lines.append(
|
|
759
788
|
f"files: +{changes.get('diff_lines_added', 0)}/-{changes.get('diff_lines_removed', 0)} "
|
|
760
|
-
f"({', '.join(
|
|
789
|
+
f"({', '.join(paths)}{more})"
|
|
761
790
|
)
|
|
762
791
|
|
|
763
792
|
last_message = str(body.get("last_assistant_message") or "")
|
|
764
793
|
if last_message:
|
|
765
|
-
|
|
794
|
+
last_label = "last message (streaming):" if body.get("assistant_streaming") else "last message:"
|
|
795
|
+
used = sum(len(line) + 1 for line in lines) + len(last_label) + 2
|
|
766
796
|
budget = max(200, max_chars - used)
|
|
767
|
-
if not full_last
|
|
768
|
-
last_message = last_message
|
|
769
|
-
|
|
797
|
+
if not full_last:
|
|
798
|
+
last_message = _truncate_middle(last_message, budget)
|
|
799
|
+
earlier = list(body.get("recent_assistant_messages") or [])[:-1]
|
|
800
|
+
remaining = max_chars - used - len(last_message) - len("earlier messages:\n")
|
|
801
|
+
previews: list[str] = []
|
|
802
|
+
for text in reversed(earlier):
|
|
803
|
+
if remaining < 80:
|
|
804
|
+
break
|
|
805
|
+
preview = _truncate_middle(str(text), min(300, remaining - 5))
|
|
806
|
+
previews.append(f" > {preview}")
|
|
807
|
+
remaining -= len(previews[-1]) + 1
|
|
808
|
+
if previews:
|
|
809
|
+
lines.append("earlier messages:")
|
|
810
|
+
lines.extend(reversed(previews))
|
|
811
|
+
lines.append(last_label)
|
|
770
812
|
lines.append(last_message)
|
|
771
813
|
|
|
772
814
|
typer.echo("\n".join(lines))
|
|
@@ -113,7 +113,8 @@ BLOCKED_DEVICE_PATHS = frozenset(
|
|
|
113
113
|
# Tool - Bash / Shell
|
|
114
114
|
# =============================================================================
|
|
115
115
|
|
|
116
|
-
BASH_DEFAULT_TIMEOUT_MS =
|
|
116
|
+
BASH_DEFAULT_TIMEOUT_MS = 1800000 # Hard runtime limit for bash commands (milliseconds)
|
|
117
|
+
BASH_DEFAULT_WAIT_MS = 10000 # Foreground wait before background handoff (milliseconds)
|
|
117
118
|
BASH_TERMINATE_TIMEOUT_SEC = 1.0 # Timeout before escalating to SIGKILL (seconds)
|
|
118
119
|
BASH_MODE_SESSION_OUTPUT_MAX_BYTES = 200 * 1024 * 1024 # Max command output captured for session history
|
|
119
120
|
|
|
@@ -489,6 +489,7 @@ def _is_control_operation(operation: op.Operation) -> bool:
|
|
|
489
489
|
return isinstance(
|
|
490
490
|
operation,
|
|
491
491
|
op.FollowUpAgentOperation
|
|
492
|
+
| op.ManageShellOperation
|
|
492
493
|
| op.InterruptOperation
|
|
493
494
|
| op.UserInteractionRespondOperation
|
|
494
495
|
| op.CloseSessionOperation,
|