mycode-cli 0.1.0__tar.gz → 0.1.2__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.
- mycode_cli-0.1.2/.github/workflows/ci.yml +105 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/.github/workflows/publish.yml +1 -1
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/.pre-commit-config.yaml +1 -1
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/AGENTS.md +8 -9
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/PKG-INFO +4 -4
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/README.md +3 -3
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/docs/api.md +4 -4
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/docs/providers.md +1 -1
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/docs/sessions.md +1 -1
- mycode_cli-0.1.0/docs/frontend.md → mycode_cli-0.1.2/docs/web.md +10 -10
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/hatch_build.py +5 -5
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/cli/main.py +2 -2
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/cli/render.py +88 -46
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/core/agent.py +10 -14
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/core/config.py +23 -40
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/core/models.py +10 -31
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/core/providers/openai_chat.py +1 -1
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/core/providers/openai_responses.py +1 -1
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/core/session.py +40 -52
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/core/system_prompt.py +15 -7
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/core/tools.py +40 -38
- mycode_cli-0.1.2/mycode/core/utils.py +33 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/app.py +9 -9
- mycode_cli-0.1.2/mycode/server/static/assets/EditDiff-B_aujzJQ.js +12 -0
- mycode_cli-0.1.2/mycode/server/static/assets/index-BhG63UMx.css +1 -0
- mycode_cli-0.1.2/mycode/server/static/assets/index-DpmWOCHa.js +206 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/index.html +2 -2
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/pyproject.toml +2 -1
- mycode_cli-0.1.2/scripts/build_web.py +38 -0
- mycode_cli-0.1.2/scripts/release.sh +35 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/tests/test_models.py +6 -11
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/tests/test_rewind.py +2 -2
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/tests/test_server_app.py +8 -8
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/tests/test_tools.py +26 -2
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/uv.lock +141 -3
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/package.json +1 -1
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/components/Chat/EditDiff.tsx +22 -4
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/components/Chat/InputArea.tsx +5 -5
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/components/Chat/MessageBubble.tsx +1 -1
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/components/Chat/ReasoningBlock.tsx +7 -7
- mycode_cli-0.1.2/web/src/components/Chat/ToolCard.tsx +479 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/components/Sidebar.tsx +65 -66
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/components/WorkspacePicker.tsx +139 -122
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/index.css +14 -2
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/utils/messages.ts +6 -7
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/utils/storage.ts +2 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/tailwind.config.js +2 -1
- mycode_cli-0.1.0/frontend/src/components/Chat/ToolCard.tsx +0 -248
- mycode_cli-0.1.0/mycode/core/system_prompt.md +0 -10
- mycode_cli-0.1.0/mycode/server/static/assets/EditDiff-C1ql7kft.js +0 -12
- mycode_cli-0.1.0/mycode/server/static/assets/index-B4e4WQPq.css +0 -1
- mycode_cli-0.1.0/mycode/server/static/assets/index-C2xTNJGd.js +0 -203
- mycode_cli-0.1.0/scripts/build_frontend.py +0 -38
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/.gitignore +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/LICENSE +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/biome.json +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/docs/config.md +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/__init__.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/cli/__init__.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/cli/chat.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/cli/runtime.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/cli/theme.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/core/__init__.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/core/messages.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/core/models_catalog.json +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/core/providers/__init__.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/core/providers/anthropic_like.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/core/providers/base.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/core/providers/gemini.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/__init__.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/deps.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/routers/__init__.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/routers/chat.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/routers/sessions.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/routers/workspaces.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/run_manager.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/schemas.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/abap-BdImnpbu.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/actionscript-3-CoDkCxhg.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/ada-bCR0ucgS.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/andromeeda-C4gqWexZ.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/angular-html-DA-rfuFy.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/angular-ts-BrjP3tb8.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/apache-Pmp26Uib.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/apex-D8_7TLub.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/apl-CORt7UWP.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/applescript-Co6uUVPk.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/ara-BRHolxvo.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/asciidoc-Ve4PFQV2.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/asm-D_Q5rh1f.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/astro-HNnZUWAn.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/aurora-x-D-2ljcwZ.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/auto-render-xntwXHOX.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/awk-DMzUqQB5.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/ayu-dark-DYE7WIF3.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/ayu-light-BA47KaF1.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/ayu-mirage-32ctXXKs.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/ballerina-BFfxhgS-.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/bat-BkioyH1T.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/beancount-k_qm7-4y.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/berry-uYugtg8r.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/bibtex-CHM0blh-.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/bicep-Bmn6On1c.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/bird2-BIv1doCn.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/blade-BjGOyj-B.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/bsl-BO_Y6i37.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/c-BIGW1oBm.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/c3-eo99z4R2.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/cadence-Bv_4Rxtq.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/cairo-KRGpt6FW.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/catppuccin-frappe-DFWUc33u.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/catppuccin-latte-C9dUb6Cb.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/catppuccin-macchiato-DQyhUUbL.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/catppuccin-mocha-D87Tk5Gz.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/clarity-D53aC0YG.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/clojure-P80f7IUj.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/cmake-D1j8_8rp.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/cobol-nBiQ_Alo.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/codeowners-Bp6g37R7.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/codeql-DsOJ9woJ.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/coffee-Ch7k5sss.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/common-lisp-Cg-RD9OK.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/coq-DkFqJrB1.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/cpp-CofmeUqb.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/crystal-DNxU26gB.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/csharp-COcwbKMJ.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/css-CLj8gQPS.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/csv-fuZLfV_i.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/cue-D82EKSYY.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/cypher-COkxafJQ.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/d-85-TOEBH.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/dark-plus-C3mMm8J8.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/dart-bE4Kk8sk.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/dax-CEL-wOlO.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/desktop-BmXAJ9_W.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/diff-D97Zzqfu.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/docker-BcOcwvcX.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/dotenv-Da5cRb03.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/dracula-BzJJZx-M.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/dracula-soft-BXkSAIEj.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/dream-maker-BtqSS_iP.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/edge-FbVlp4U3.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/elixir-CkH2-t6x.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/elm-DbKCFpqz.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/emacs-lisp-CXvaQtF9.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/erb-BYCe7drp.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/erlang-DsQrWhSR.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/everforest-dark-BgDCqdQA.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/everforest-light-C8M2exoo.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/fennel-BYunw83y.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/fish-BvzEVeQv.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/fluent-C4IJs8-o.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/fortran-fixed-form-CkoXwp7k.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/fortran-free-form-BxgE0vQu.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/fsharp-CXgrBDvD.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/gdresource-BOOCDP_w.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/gdscript-C5YyOfLZ.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/gdshader-DkwncUOv.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/genie-D0YGMca9.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/gherkin-DyxjwDmM.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/git-commit-F4YmCXRG.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/git-rebase-r7XF79zn.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/github-dark-DHJKELXO.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/github-dark-default-Cuk6v7N8.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/github-dark-dimmed-DH5Ifo-i.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/github-dark-high-contrast-E3gJ1_iC.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/github-light-DAi9KRSo.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/github-light-default-D7oLnXFd.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/github-light-high-contrast-BfjtVDDH.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/gleam-BspZqrRM.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/glimmer-js-ByusRIyA.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/glimmer-ts-BfAWNZQY.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/glsl-DplSGwfg.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/gn-n2N0HUVH.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/gnuplot-DdkO51Og.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/go-C27-OAKa.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/graphql-ChdNCCLP.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/groovy-gcz8RCvz.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/gruvbox-dark-hard-CFHQjOhq.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/gruvbox-dark-medium-GsRaNv29.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/gruvbox-dark-soft-CVdnzihN.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/gruvbox-light-hard-CH1njM8p.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/gruvbox-light-medium-DRw_LuNl.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/gruvbox-light-soft-hJgmCMqR.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/hack-i7_Ulhet.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/haml-D5jkg6IW.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/handlebars-BpdQsYii.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/haskell-Df6bDoY_.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/haxe-CzTSHFRz.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/hcl-BWvSN4gD.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/hjson-D5-asLiD.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/hlsl-D3lLCCz7.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/horizon-BUw7H-hv.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/horizon-bright-CUuTKBJd.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/houston-DnULxvSX.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/html-derivative-DlHx6ybY.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/html-pp8916En.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/http-jrhK8wxY.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/hurl-irOxFIW8.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/hxml-Bvhsp5Yf.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/hy-DFXneXwc.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/imba-DGztddWO.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/ini-BEwlwnbL.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/java-CylS5w8V.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/javascript-wDzz0qaB.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/jinja-f2NsQr07.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/jison-wvAkD_A8.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/json-Cp-IABpG.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/json5-C9tS-k6U.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/jsonc-Des-eS-w.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/jsonl-DcaNXYhu.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/jsonnet-DFQXde-d.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/jssm-C2t-YnRu.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/jsx-g9-lgVsj.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/julia-CxzCAyBv.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/just-VxiPbLrw.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/kanagawa-dragon-CkXjmgJE.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/kanagawa-lotus-CfQXZHmo.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/kanagawa-wave-DWedfzmr.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/katex-DnJR2-55.css +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/kdl-DV7GczEv.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/kotlin-BdnUsdx6.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/kusto-wEQ09or8.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/laserwave-DUszq2jm.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/latex-CWtU0Tv5.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/lean-BZvkOJ9d.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/less-B1dDrJ26.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/light-plus-B7mTdjB0.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/liquid-C0sCDyMI.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/llvm-DjAJT7YJ.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/log-2UxHyX5q.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/logo-BtOb2qkB.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/lua-BaeVxFsk.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/luau-C-HG3fhB.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/make-CHLpvVh8.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/markdown-Cvjx9yec.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/marko-DjSrsDqO.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/material-theme-D5KoaKCx.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/material-theme-darker-BfHTSMKl.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/material-theme-lighter-B0m2ddpp.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/material-theme-ocean-CyktbL80.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/material-theme-palenight-Csfq5Kiy.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/matlab-D7o27uSR.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/mdc-DTYItulj.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/mdx-Cmh6b_Ma.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/mermaid-mWjccvbQ.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/min-dark-CafNBF8u.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/min-light-CTRr51gU.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/mipsasm-CKIfxQSi.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/mojo-rZm6bMo-.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/monokai-D4h5O-jR.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/moonbit-_H4v1dQx.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/move-IF9eRakj.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/narrat-DRg8JJMk.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/nextflow-C-mBbutL.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/nextflow-groovy-vE_lwT2v.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/nginx-BpAMiNFr.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/night-owl-C39BiMTA.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/night-owl-light-CMTm3GFP.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/nim-BIad80T-.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/nix-CwoSXNpI.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/nord-Ddv68eIx.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/nushell-Cz2AlsmD.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/objective-c-DXmwc3jG.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/objective-cpp-CLxacb5B.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/ocaml-C0hk2d4L.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/odin-BBf5iR-q.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/one-dark-pro-DVMEJ2y_.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/one-light-C3Wv6jpd.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/openscad-C4EeE6gA.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/pascal-D93ZcfNL.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/perl-NvoQZIq0.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/php-R6g_5hLQ.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/pkl-u5AG7uiY.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/plastic-3e1v2bzS.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/plsql-ChMvpjG-.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/po-BTJTHyun.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/poimandres-CS3Unz2-.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/polar-C0HS_06l.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/postcss-CXtECtnM.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/powerquery-CEu0bR-o.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/powershell-Dpen1YoG.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/prisma-Dd19v3D-.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/prolog-CbFg5uaA.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/proto-C7zT0LnQ.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/pug-DKIMFp6K.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/puppet-BMWR74SV.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/purescript-CklMAg4u.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/python-B6aJPvgy.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/qml-3beO22l8.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/qmldir-C8lEn-DE.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/qss-IeuSbFQv.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/r-Dspwwk_N.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/racket-BqYA7rlc.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/raku-DXvB9xmW.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/razor-BDqjjVU7.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/red-bN70gL4F.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/reg-C-SQnVFl.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/regexp-CDVJQ6XC.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/rel-C3B-1QV4.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/riscv-BM1_JUlF.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/ron-D8l8udqQ.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/rose-pine-dawn-DHQR4-dF.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/rose-pine-moon-D4_iv3hh.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/rose-pine-qdsjHGoJ.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/rosmsg-BJDFO7_C.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/rst-CRjBmOyv.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/ruby-Wjq7vjNf.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/rust-B1yitclQ.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/sas-cz2c8ADy.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/sass-Cj5Yp3dK.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/scala-C151Ov-r.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/scheme-C98Dy4si.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/scss-D5BDwBP9.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/sdbl-DVxCFoDh.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/shaderlab-Dg9Lc6iA.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/shellscript-Yzrsuije.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/shellsession-BADoaaVG.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/slack-dark-BthQWCQV.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/slack-ochin-DqwNpetd.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/smalltalk-BERRCDM3.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/snazzy-light-Bw305WKR.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/solarized-dark-DXbdFlpD.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/solarized-light-L9t79GZl.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/solidity-rGO070M0.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/soy-8wufbnw4.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/sparql-rVzFXLq3.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/splunk-BtCnVYZw.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/sql-BLtJtn59.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/ssh-config-_ykCGR6B.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/stata-BH5u7GGu.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/stylus-BEDo0Tqx.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/surrealql-Bq5Q-fJD.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/svelte-Cy7k_4gC.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/swift-D82vCrfD.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/synthwave-84-CbfX1IO0.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/system-verilog-CnnmHF94.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/systemd-4A_iFExJ.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/talonscript-CkByrt1z.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/tasl-QIJgUcNo.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/tcl-dwOrl1Do.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/templ-DhtptRzy.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/terraform-BETggiCN.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/tex-idrVyKtj.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/tokyo-night-hegEt444.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/toml-vGWfd6FD.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/ts-tags-DQrlYJgV.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/tsv-B_m7g4N7.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/tsx-COt5Ahok.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/turtle-BsS91CYL.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/twig-xg9kU7Mw.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/typescript-BPQ3VLAy.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/typespec-CAFt9gP4.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/typst-DHCkPAjA.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/v-BcVCzyr7.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/vala-CsfeWuGM.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/vb-D17OF-Vu.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/verilog-BQ8w6xss.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/vesper-DU1UobuO.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/vhdl-CeAyd5Ju.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/viml-CJc9bBzg.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/vitesse-black-Bkuqu6BP.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/vitesse-dark-D0r3Knsf.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/vitesse-light-CVO1_9PV.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/vue-D2xRrEX4.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/vue-html-AaS7Mt5G.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/vue-vine-BoDAl6tE.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/vyper-CDx5xZoG.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/wasm-CG6Dc4jp.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/wasm-MzD3tlZU.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/wenyan-BV7otONQ.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/wgsl-Dx-B1_4e.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/wikitext-BhOHFoWU.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/wit-5i3qLPDT.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/wolfram-lXgVvXCa.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/xml-sdJ4AIDG.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/xsl-CtQFsRM5.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/yaml-Buea-lGh.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/zenscript-DVFEvuxE.js +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/mycode/server/static/assets/zig-VOosw3JB.js +0 -0
- {mycode_cli-0.1.0/frontend/public → mycode_cli-0.1.2/mycode/server/static}/favicon_slashes.svg +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/scripts/__init__.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/scripts/update_models_catalog.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/tests/conftest.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/tests/test_agent_loop.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/tests/test_agent_provider_request.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/tests/test_bash.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/tests/test_cli.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/tests/test_cli_imports.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/tests/test_compact.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/tests/test_config.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/tests/test_instructions.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/tests/test_provider_adapters.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/tests/test_run_manager.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/tests/test_session.py +0 -0
- {mycode_cli-0.1.0 → mycode_cli-0.1.2}/tests/test_skills.py +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/index.html +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/pnpm-lock.yaml +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/postcss.config.js +0 -0
- {mycode_cli-0.1.0/mycode/server/static → mycode_cli-0.1.2/web/public}/favicon_slashes.svg +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/App.tsx +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/components/Chat/CodeBlock.tsx +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/components/Chat/HighlightedCode.tsx +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/components/Chat/MarkdownBlock.tsx +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/components/Chat/MessageList.tsx +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/components/Layout.tsx +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/components/MobileHeader.tsx +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/components/ThemeProvider.tsx +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/components/UI/Button.tsx +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/hooks/sessionSelection.test.ts +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/hooks/sessionSelection.ts +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/hooks/useChat.test.tsx +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/hooks/useChat.ts +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/main.tsx +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/test/setup.ts +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/types.ts +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/utils/clipboard.ts +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/utils/cn.ts +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/utils/config.ts +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/utils/highlighter.ts +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/utils/messages.test.ts +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/utils/storage.test.ts +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/src/vite-env.d.ts +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/tsconfig.json +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/vite.config.ts +0 -0
- {mycode_cli-0.1.0/frontend → mycode_cli-0.1.2/web}/vitest.config.ts +0 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
pull_request:
|
|
8
|
+
|
|
9
|
+
concurrency:
|
|
10
|
+
group: ci-${{ github.workflow }}-${{ github.ref }}
|
|
11
|
+
cancel-in-progress: true
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
python:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- name: Checkout
|
|
18
|
+
uses: actions/checkout@v6
|
|
19
|
+
|
|
20
|
+
- name: Install uv
|
|
21
|
+
uses: astral-sh/setup-uv@v7
|
|
22
|
+
|
|
23
|
+
- name: Install pnpm
|
|
24
|
+
uses: pnpm/action-setup@v4
|
|
25
|
+
with:
|
|
26
|
+
version: 10
|
|
27
|
+
|
|
28
|
+
- name: Install Node.js
|
|
29
|
+
uses: actions/setup-node@v6
|
|
30
|
+
with:
|
|
31
|
+
node-version: 20
|
|
32
|
+
cache: pnpm
|
|
33
|
+
cache-dependency-path: web/pnpm-lock.yaml
|
|
34
|
+
|
|
35
|
+
- name: Install Python
|
|
36
|
+
run: uv python install 3.12
|
|
37
|
+
|
|
38
|
+
- name: Sync Python dependencies
|
|
39
|
+
run: uv sync --locked --dev
|
|
40
|
+
|
|
41
|
+
- name: Lint Python
|
|
42
|
+
run: uv run ruff check .
|
|
43
|
+
|
|
44
|
+
- name: Run Python tests
|
|
45
|
+
run: uv run pytest
|
|
46
|
+
|
|
47
|
+
web:
|
|
48
|
+
runs-on: ubuntu-latest
|
|
49
|
+
steps:
|
|
50
|
+
- name: Checkout
|
|
51
|
+
uses: actions/checkout@v6
|
|
52
|
+
|
|
53
|
+
- name: Install pnpm
|
|
54
|
+
uses: pnpm/action-setup@v4
|
|
55
|
+
with:
|
|
56
|
+
version: 10
|
|
57
|
+
|
|
58
|
+
- name: Install Node.js
|
|
59
|
+
uses: actions/setup-node@v6
|
|
60
|
+
with:
|
|
61
|
+
node-version: 20
|
|
62
|
+
cache: pnpm
|
|
63
|
+
cache-dependency-path: web/pnpm-lock.yaml
|
|
64
|
+
|
|
65
|
+
- name: Install web dependencies
|
|
66
|
+
run: pnpm --dir web install --frozen-lockfile
|
|
67
|
+
|
|
68
|
+
- name: Lint web
|
|
69
|
+
run: pnpm --dir web check
|
|
70
|
+
|
|
71
|
+
- name: Typecheck web
|
|
72
|
+
run: pnpm --dir web typecheck
|
|
73
|
+
|
|
74
|
+
- name: Run web tests
|
|
75
|
+
run: pnpm --dir web test:run
|
|
76
|
+
|
|
77
|
+
package:
|
|
78
|
+
runs-on: ubuntu-latest
|
|
79
|
+
steps:
|
|
80
|
+
- name: Checkout
|
|
81
|
+
uses: actions/checkout@v6
|
|
82
|
+
|
|
83
|
+
- name: Install uv
|
|
84
|
+
uses: astral-sh/setup-uv@v7
|
|
85
|
+
|
|
86
|
+
- name: Install pnpm
|
|
87
|
+
uses: pnpm/action-setup@v4
|
|
88
|
+
with:
|
|
89
|
+
version: 10
|
|
90
|
+
|
|
91
|
+
- name: Install Node.js
|
|
92
|
+
uses: actions/setup-node@v6
|
|
93
|
+
with:
|
|
94
|
+
node-version: 20
|
|
95
|
+
cache: pnpm
|
|
96
|
+
cache-dependency-path: web/pnpm-lock.yaml
|
|
97
|
+
|
|
98
|
+
- name: Install Python
|
|
99
|
+
run: uv python install 3.12
|
|
100
|
+
|
|
101
|
+
- name: Build package
|
|
102
|
+
run: uv build --no-sources
|
|
103
|
+
|
|
104
|
+
- name: Verify wheel import
|
|
105
|
+
run: uv run --isolated --no-project --with dist/*.whl -- python -c "import mycode"
|
|
@@ -27,8 +27,7 @@ Core runtime (`mycode/core/`):
|
|
|
27
27
|
- `session.py` — append-only JSONL session storage, compact/rewind events, interrupted tool repair
|
|
28
28
|
- `config.py` — layered config loading and provider resolution
|
|
29
29
|
- `models.py` — bundled model metadata lookup (`context_window`, `supports_reasoning`, `supports_image_input`)
|
|
30
|
-
- `system_prompt.py` — runtime system prompt assembly, AGENTS.md discovery, skills discovery
|
|
31
|
-
- `system_prompt.md` — system prompt template
|
|
30
|
+
- `system_prompt.py` — runtime system prompt assembly, inlined base prompt, AGENTS.md discovery, skills discovery
|
|
32
31
|
- `providers/base.py` — ProviderAdapter abstract interface
|
|
33
32
|
- `providers/__init__.py` — adapter registry and provider lookup helpers
|
|
34
33
|
- `providers/anthropic_like.py` — adapters: `anthropic`, `moonshotai`, `minimax`
|
|
@@ -52,7 +51,7 @@ Server (`mycode/server/`):
|
|
|
52
51
|
- `run_manager.py` — concurrent run management
|
|
53
52
|
- `schemas.py` — Pydantic request/response models
|
|
54
53
|
|
|
55
|
-
|
|
54
|
+
Web UI (`web/src/`):
|
|
56
55
|
|
|
57
56
|
- `hooks/useChat.ts` — chat state, SSE streaming, tool runtime
|
|
58
57
|
- `utils/messages.ts` — buildRenderMessages() — canonical blocks → UI messages
|
|
@@ -125,7 +124,7 @@ All adapters implement `ProviderAdapter.stream_turn()`. Message projection to pr
|
|
|
125
124
|
|
|
126
125
|
## SSE Contract
|
|
127
126
|
|
|
128
|
-
**Do not change event names or payload shapes without updating server, CLI, and
|
|
127
|
+
**Do not change event names or payload shapes without updating server, CLI, and web UI.**
|
|
129
128
|
|
|
130
129
|
| event | payload |
|
|
131
130
|
| ------------- | ------------------------------------------------------- |
|
|
@@ -143,7 +142,7 @@ All adapters implement `ProviderAdapter.stream_turn()`. Message projection to pr
|
|
|
143
142
|
- `docs/config.md` — Config files, schema, API key resolution, reasoning effort, skills/instructions discovery
|
|
144
143
|
- `docs/providers.md` — Per-adapter details: SDK, base URL, env vars, reasoning effort mapping, quirks
|
|
145
144
|
- `docs/sessions.md` — Storage layout, JSONL record types, compact/rewind/repair, format version
|
|
146
|
-
- `docs/
|
|
145
|
+
- `docs/web.md` — Component structure, message state model, build process
|
|
147
146
|
|
|
148
147
|
## Interfaces
|
|
149
148
|
|
|
@@ -161,7 +160,7 @@ All adapters implement `ProviderAdapter.stream_turn()`. Message projection to pr
|
|
|
161
160
|
- `POST /api/chat` — start a run from `message` or `input`; returns `{run, session}` JSON immediately
|
|
162
161
|
- `GET /api/runs/{run_id}/stream` — SSE stream for a run
|
|
163
162
|
- `POST /api/runs/{run_id}/cancel` — cancel a run
|
|
164
|
-
- `GET /api/config` — provider, reasoning, and image-input metadata for
|
|
163
|
+
- `GET /api/config` — provider, reasoning, and image-input metadata for the web UI
|
|
165
164
|
- Session CRUD at `/api/sessions`
|
|
166
165
|
- Workspace browser at `/api/workspaces`
|
|
167
166
|
|
|
@@ -171,9 +170,9 @@ All adapters implement `ProviderAdapter.stream_turn()`. Message projection to pr
|
|
|
171
170
|
uv sync --dev # Python setup
|
|
172
171
|
uv run mycode # run CLI
|
|
173
172
|
uv run mycode web --dev # API only (backend for Vite dev)
|
|
174
|
-
pnpm --dir
|
|
175
|
-
pnpm --dir
|
|
176
|
-
uv run --no-project python scripts/
|
|
173
|
+
pnpm --dir web test:run # run web UI tests once
|
|
174
|
+
pnpm --dir web dev # Vite web UI dev server
|
|
175
|
+
uv run --no-project python scripts/build_web.py # rebuild packaged web UI
|
|
177
176
|
uv build # build wheel + sdist
|
|
178
177
|
```
|
|
179
178
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mycode-cli
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: Minimal coding agent with web UI
|
|
5
5
|
Project-URL: Homepage, https://github.com/legibet/mycode
|
|
6
6
|
Project-URL: Repository, https://github.com/legibet/mycode
|
|
@@ -166,13 +166,13 @@ Web development (backend + Vite dev server):
|
|
|
166
166
|
|
|
167
167
|
```bash
|
|
168
168
|
uv run mycode web --dev
|
|
169
|
-
pnpm --dir
|
|
169
|
+
pnpm --dir web install && pnpm --dir web dev
|
|
170
170
|
```
|
|
171
171
|
|
|
172
|
-
Rebuild packaged
|
|
172
|
+
Rebuild packaged web assets:
|
|
173
173
|
|
|
174
174
|
```bash
|
|
175
|
-
uv run --no-project python scripts/
|
|
175
|
+
uv run --no-project python scripts/build_web.py
|
|
176
176
|
```
|
|
177
177
|
|
|
178
178
|
Build distributable artifacts:
|
|
@@ -133,13 +133,13 @@ Web development (backend + Vite dev server):
|
|
|
133
133
|
|
|
134
134
|
```bash
|
|
135
135
|
uv run mycode web --dev
|
|
136
|
-
pnpm --dir
|
|
136
|
+
pnpm --dir web install && pnpm --dir web dev
|
|
137
137
|
```
|
|
138
138
|
|
|
139
|
-
Rebuild packaged
|
|
139
|
+
Rebuild packaged web assets:
|
|
140
140
|
|
|
141
141
|
```bash
|
|
142
|
-
uv run --no-project python scripts/
|
|
142
|
+
uv run --no-project python scripts/build_web.py
|
|
143
143
|
```
|
|
144
144
|
|
|
145
145
|
Build distributable artifacts:
|
|
@@ -77,7 +77,7 @@ Cancel a running agent run. Returns `{status: "ok", run: {...}}`.
|
|
|
77
77
|
|
|
78
78
|
### `GET /api/config?cwd=...`
|
|
79
79
|
|
|
80
|
-
Returns current provider configuration for the
|
|
80
|
+
Returns current provider configuration for the web UI.
|
|
81
81
|
|
|
82
82
|
Response:
|
|
83
83
|
|
|
@@ -148,7 +148,7 @@ Load session with full message history. If the session has an active run, overla
|
|
|
148
148
|
}
|
|
149
149
|
```
|
|
150
150
|
|
|
151
|
-
`pending_events` contains the active run's buffered SSE events. The
|
|
151
|
+
`pending_events` contains the active run's buffered SSE events. The web UI reapplies them, then reconnects with `after=<last seq>`.
|
|
152
152
|
|
|
153
153
|
### `DELETE /api/sessions/{id}`
|
|
154
154
|
|
|
@@ -194,7 +194,7 @@ Response: `{cwd: "...", exists: true}`
|
|
|
194
194
|
|
|
195
195
|
`GET /api/runs/{run_id}/stream` produces the following event types. The `StreamEvent` schema is in `mycode/server/schemas.py`.
|
|
196
196
|
|
|
197
|
-
**Do not change event names or payload shapes without updating server, CLI, and
|
|
197
|
+
**Do not change event names or payload shapes without updating server, CLI, and web UI.**
|
|
198
198
|
|
|
199
199
|
| event | payload fields |
|
|
200
200
|
| ------------- | ---------------------------------------------------------------------------- |
|
|
@@ -206,7 +206,7 @@ Response: `{cwd: "...", exists: true}`
|
|
|
206
206
|
| `compact` | `message: str` |
|
|
207
207
|
| `error` | `message: str` |
|
|
208
208
|
|
|
209
|
-
Every event also carries `seq: int` for reconnect support. The
|
|
209
|
+
Every event also carries `seq: int` for reconnect support. The web UI uses `after` parameter to resume from a specific seq number.
|
|
210
210
|
|
|
211
211
|
## Run Manager
|
|
212
212
|
|
|
@@ -18,7 +18,7 @@ class ProviderAdapter(ABC):
|
|
|
18
18
|
def project_tool_call_id(tool_call_id: str, used_tool_call_ids: set[str]) -> str: ...
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
`prepare_messages()` converts canonical session history to provider-safe wire format. The base implementation
|
|
21
|
+
`prepare_messages()` converts canonical session history to provider-safe wire format. The base implementation in `base.py` handles:
|
|
22
22
|
- Stripping error/aborted/cancelled assistant turns
|
|
23
23
|
- Projecting tool call IDs (some providers restrict charset/length)
|
|
24
24
|
- Dropping replay images when `request.supports_image_input` is false
|
|
@@ -83,7 +83,7 @@ Triggered in `Agent._compact_if_needed()` after a successful turn completes:
|
|
|
83
83
|
3. Build a compact event with the summary text and `compacted_count`
|
|
84
84
|
4. Persist the compact event (append-only — original messages stay in JSONL)
|
|
85
85
|
5. Apply `apply_compact()` in memory to rebuild the message list
|
|
86
|
-
6. Emit SSE `compact` event to
|
|
86
|
+
6. Emit SSE `compact` event to the web UI
|
|
87
87
|
|
|
88
88
|
`should_compact()` checks multiple usage field names: `input_tokens`, `prompt_tokens`, `prompt_token_count`.
|
|
89
89
|
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Web UI
|
|
2
2
|
|
|
3
|
-
React + Vite app in `
|
|
3
|
+
React + Vite app in `web/`. Built assets are copied to `mycode/server/static/` for packaged serving.
|
|
4
4
|
|
|
5
5
|
## Serving Modes
|
|
6
6
|
|
|
7
|
-
- `mycode web` — serves packaged
|
|
8
|
-
- `mycode web --dev` — API only; no static files (pair with `pnpm --dir
|
|
7
|
+
- `mycode web` — serves packaged web assets from `mycode/server/static/`
|
|
8
|
+
- `mycode web --dev` — API only; no static files (pair with `pnpm --dir web dev`)
|
|
9
9
|
|
|
10
10
|
CORS is enabled for all origins in the FastAPI app.
|
|
11
11
|
|
|
12
12
|
## Component Structure
|
|
13
13
|
|
|
14
14
|
```
|
|
15
|
-
|
|
15
|
+
web/src/
|
|
16
16
|
App.tsx # root layout, config loading, session init
|
|
17
17
|
main.tsx # React entry
|
|
18
18
|
types.ts # shared TypeScript types
|
|
@@ -96,7 +96,7 @@ Image input:
|
|
|
96
96
|
|
|
97
97
|
## Config Persistence
|
|
98
98
|
|
|
99
|
-
|
|
99
|
+
Web UI config is persisted to `localStorage`:
|
|
100
100
|
|
|
101
101
|
- `provider`, `model`, `cwd`, `reasoningEffort`
|
|
102
102
|
- `auto` and empty string both mean "do not send reasoning_effort to server"
|
|
@@ -105,12 +105,12 @@ Frontend config is persisted to `localStorage`:
|
|
|
105
105
|
## Build
|
|
106
106
|
|
|
107
107
|
```bash
|
|
108
|
-
pnpm --dir
|
|
109
|
-
pnpm --dir
|
|
110
|
-
uv run --no-project python scripts/
|
|
108
|
+
pnpm --dir web test:run # run web UI tests once
|
|
109
|
+
pnpm --dir web dev # dev server (Vite HMR)
|
|
110
|
+
uv run --no-project python scripts/build_web.py # production build → mycode/server/static/
|
|
111
111
|
uv build # packages static/ into wheel/sdist
|
|
112
112
|
```
|
|
113
113
|
|
|
114
|
-
Built `
|
|
114
|
+
Built `web/dist/` is **not** the serving path. `scripts/build_web.py` copies the built output into `mycode/server/static/` which is what gets packaged and served.
|
|
115
115
|
|
|
116
116
|
If `mycode/server/static/` is missing at startup, the server falls back to API-only mode with a warning log.
|
|
@@ -10,17 +10,17 @@ if str(ROOT_DIR) not in sys.path:
|
|
|
10
10
|
sys.path.insert(0, str(ROOT_DIR))
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
def
|
|
14
|
-
from scripts.
|
|
13
|
+
def build_web_assets() -> None:
|
|
14
|
+
from scripts.build_web import build_web
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
build_web()
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
class CustomBuildHook(BuildHookInterface):
|
|
20
20
|
def initialize(self, version: str, build_data: dict) -> None:
|
|
21
21
|
del version, build_data
|
|
22
|
-
|
|
22
|
+
build_web_assets()
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
if __name__ == "__main__":
|
|
26
|
-
|
|
26
|
+
build_web_assets()
|
|
@@ -206,7 +206,7 @@ def run(
|
|
|
206
206
|
def web(
|
|
207
207
|
hostname: Annotated[str, typer.Option(help="Hostname to listen on")] = "127.0.0.1",
|
|
208
208
|
port: Annotated[int | None, typer.Option(help="Port to listen on")] = None,
|
|
209
|
-
dev: Annotated[bool, typer.Option(help="API-only backend for
|
|
209
|
+
dev: Annotated[bool, typer.Option(help="API-only backend for web UI dev workflows")] = False,
|
|
210
210
|
) -> None:
|
|
211
211
|
"""Start the web server."""
|
|
212
212
|
|
|
@@ -218,7 +218,7 @@ def web(
|
|
|
218
218
|
|
|
219
219
|
from mycode.server.app import create_app
|
|
220
220
|
|
|
221
|
-
uvicorn.run(create_app(
|
|
221
|
+
uvicorn.run(create_app(serve_web=not dev), host=hostname, port=resolved_port)
|
|
222
222
|
|
|
223
223
|
|
|
224
224
|
@session_app.command("list")
|
|
@@ -106,6 +106,19 @@ _TOOL_PREVIEW_KEY: dict[str, str] = {
|
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
|
|
109
|
+
def _tool_preview(name: str, args: dict[str, Any]) -> str:
|
|
110
|
+
"""Extract a one-line preview string for a tool call."""
|
|
111
|
+
|
|
112
|
+
if not args:
|
|
113
|
+
return ""
|
|
114
|
+
key = _TOOL_PREVIEW_KEY.get(name.lower())
|
|
115
|
+
raw = args.get(key) if key else next(iter(args.values()), "")
|
|
116
|
+
preview = str(raw or "")
|
|
117
|
+
if len(preview) > 60:
|
|
118
|
+
preview = preview[:60] + "…"
|
|
119
|
+
return preview
|
|
120
|
+
|
|
121
|
+
|
|
109
122
|
def format_local_timestamp(value: str, display_format: str) -> str:
|
|
110
123
|
"""Format an ISO timestamp with a simple local fallback."""
|
|
111
124
|
|
|
@@ -199,14 +212,7 @@ class TerminalView:
|
|
|
199
212
|
self.console.print(_LeftMarkdown(str(content), code_theme=CODE_THEME))
|
|
200
213
|
else:
|
|
201
214
|
name, args = content
|
|
202
|
-
preview =
|
|
203
|
-
if isinstance(args, dict) and args:
|
|
204
|
-
key = _TOOL_PREVIEW_KEY.get(name.lower())
|
|
205
|
-
raw = args.get(key) if key else next(iter(args.values()), "")
|
|
206
|
-
preview = str(raw or "")
|
|
207
|
-
if len(preview) > 60:
|
|
208
|
-
preview = preview[:60] + "…"
|
|
209
|
-
|
|
215
|
+
preview = _tool_preview(name, args if isinstance(args, dict) else {})
|
|
210
216
|
line = Text()
|
|
211
217
|
line.append(f"{TOOL_MARKER} ", style=SUCCESS)
|
|
212
218
|
line.append(name.capitalize(), style=TOOL_NAME)
|
|
@@ -356,6 +362,7 @@ class ReplyRenderer:
|
|
|
356
362
|
self._tool_name: str = ""
|
|
357
363
|
self._tool_args: dict[str, Any] = {}
|
|
358
364
|
self._tool_buffered = False
|
|
365
|
+
self._tool_live: Live | None = None
|
|
359
366
|
self._usage: dict[str, Any] | None = None
|
|
360
367
|
|
|
361
368
|
async def render(
|
|
@@ -446,13 +453,21 @@ class ReplyRenderer:
|
|
|
446
453
|
self._tool_name = name
|
|
447
454
|
self._tool_args = args
|
|
448
455
|
|
|
449
|
-
# Bash streams output — print header immediately.
|
|
450
|
-
# Other tools are fast — defer to tool_done for single-line display.
|
|
451
456
|
if name.lower() == "bash":
|
|
457
|
+
# Bash streams output — print header immediately.
|
|
452
458
|
self._print_tool_header(name, args)
|
|
453
459
|
self._tool_buffered = False
|
|
454
460
|
else:
|
|
461
|
+
# Other tools are fast — show spinner until tool_done.
|
|
455
462
|
self._tool_buffered = True
|
|
463
|
+
if self._live_mode:
|
|
464
|
+
self._tool_live = Live(
|
|
465
|
+
self._build_tool_spinner(name, args),
|
|
466
|
+
console=self._console,
|
|
467
|
+
refresh_per_second=12,
|
|
468
|
+
transient=True,
|
|
469
|
+
)
|
|
470
|
+
self._tool_live.start()
|
|
456
471
|
|
|
457
472
|
def tool_output(self, line: str) -> None:
|
|
458
473
|
"""Render one streamed output line from a running tool."""
|
|
@@ -476,14 +491,14 @@ class ReplyRenderer:
|
|
|
476
491
|
duration = f"{elapsed:.1f}s" if elapsed >= 0.5 else ""
|
|
477
492
|
|
|
478
493
|
if self._tool_buffered:
|
|
479
|
-
|
|
494
|
+
self._stop_tool_live()
|
|
480
495
|
self._tool_buffered = False
|
|
481
496
|
if is_error:
|
|
482
497
|
self._print_tool_header(self._tool_name, self._tool_args)
|
|
483
498
|
first_line = shown_text.split("\n", 1)[0][:100]
|
|
484
499
|
self._console.print(Text(f" {first_line}", style=ERROR))
|
|
485
500
|
else:
|
|
486
|
-
suffix = self.
|
|
501
|
+
suffix = self._format_tool_suffix(self._tool_name, self._tool_args, duration)
|
|
487
502
|
self._print_tool_header(self._tool_name, self._tool_args, suffix=suffix)
|
|
488
503
|
else:
|
|
489
504
|
# Bash: streaming tool
|
|
@@ -511,13 +526,7 @@ class ReplyRenderer:
|
|
|
511
526
|
) -> None:
|
|
512
527
|
"""Print the ``⏺ Name preview [suffix]`` tool header line."""
|
|
513
528
|
|
|
514
|
-
preview =
|
|
515
|
-
if args:
|
|
516
|
-
key = _TOOL_PREVIEW_KEY.get(name.lower())
|
|
517
|
-
raw = args.get(key) if key else next(iter(args.values()), "")
|
|
518
|
-
preview = str(raw or "")
|
|
519
|
-
if len(preview) > 60:
|
|
520
|
-
preview = preview[:60] + "…"
|
|
529
|
+
preview = _tool_preview(name, args)
|
|
521
530
|
|
|
522
531
|
text = Text()
|
|
523
532
|
text.append(f"{TOOL_MARKER} ", style=SUCCESS)
|
|
@@ -529,34 +538,66 @@ class ReplyRenderer:
|
|
|
529
538
|
text.append_text(suffix)
|
|
530
539
|
self._console.print(text)
|
|
531
540
|
|
|
541
|
+
def _build_tool_spinner(self, name: str, args: dict[str, Any]) -> Spinner:
|
|
542
|
+
"""Build a transient spinner shown while a buffered tool runs."""
|
|
543
|
+
|
|
544
|
+
preview = _tool_preview(name, args)
|
|
545
|
+
label = Text()
|
|
546
|
+
label.append(f" {name.capitalize()}", style=TOOL_NAME)
|
|
547
|
+
if preview:
|
|
548
|
+
label.append(f" {preview}", style=MUTED)
|
|
549
|
+
return Spinner("dots", text=label, style="dim")
|
|
550
|
+
|
|
551
|
+
def _stop_tool_live(self) -> None:
|
|
552
|
+
if self._tool_live is not None:
|
|
553
|
+
self._tool_live.stop()
|
|
554
|
+
self._tool_live = None
|
|
555
|
+
|
|
532
556
|
@staticmethod
|
|
533
|
-
def
|
|
534
|
-
"""
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
added
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
557
|
+
def _format_tool_suffix(name: str, args: dict[str, Any], duration: str) -> Text | None:
|
|
558
|
+
"""Build the inline suffix shown after the tool preview on success."""
|
|
559
|
+
|
|
560
|
+
parts = Text()
|
|
561
|
+
lower = name.lower()
|
|
562
|
+
|
|
563
|
+
if lower == "edit":
|
|
564
|
+
old_text = args.get("oldText")
|
|
565
|
+
new_text = args.get("newText")
|
|
566
|
+
if isinstance(old_text, str) and isinstance(new_text, str):
|
|
567
|
+
added = 0
|
|
568
|
+
removed = 0
|
|
569
|
+
for tag, old_start, old_end, new_start, new_end in SequenceMatcher(
|
|
570
|
+
None,
|
|
571
|
+
old_text.splitlines(),
|
|
572
|
+
new_text.splitlines(),
|
|
573
|
+
).get_opcodes():
|
|
574
|
+
if tag in {"replace", "delete"}:
|
|
575
|
+
removed += old_end - old_start
|
|
576
|
+
if tag in {"replace", "insert"}:
|
|
577
|
+
added += new_end - new_start
|
|
578
|
+
parts.append(f"+{added}", style="green")
|
|
579
|
+
parts.append(f" −{removed}", style="red")
|
|
580
|
+
elif lower == "read":
|
|
581
|
+
offset = args.get("offset")
|
|
582
|
+
limit = args.get("limit")
|
|
583
|
+
if isinstance(offset, int) and isinstance(limit, int):
|
|
584
|
+
parts.append(f":{offset}-{offset + limit}", style=MUTED)
|
|
585
|
+
elif isinstance(offset, int):
|
|
586
|
+
parts.append(f":{offset}", style=MUTED)
|
|
587
|
+
elif isinstance(limit, int):
|
|
588
|
+
parts.append(f":1-{limit}", style=MUTED)
|
|
589
|
+
elif lower == "write":
|
|
590
|
+
content = args.get("content")
|
|
591
|
+
if isinstance(content, str):
|
|
592
|
+
lines = content.count("\n") + 1
|
|
593
|
+
parts.append(f"({lines} lines)", style=MUTED)
|
|
594
|
+
|
|
595
|
+
if duration:
|
|
596
|
+
if parts.plain:
|
|
597
|
+
parts.append(" · ", style=MUTED)
|
|
598
|
+
parts.append(duration, style=MUTED)
|
|
599
|
+
|
|
600
|
+
return parts if parts.plain else None
|
|
560
601
|
|
|
561
602
|
def compact(self, message: str) -> None:
|
|
562
603
|
"""Render a context compaction notification."""
|
|
@@ -663,6 +704,7 @@ class ReplyRenderer:
|
|
|
663
704
|
if self._live is not None:
|
|
664
705
|
self._live.stop()
|
|
665
706
|
self._live = None
|
|
707
|
+
self._stop_tool_live()
|
|
666
708
|
self._reasoning.clear()
|
|
667
709
|
self._text.clear()
|
|
668
710
|
self._printed_static_reasoning = False
|
|
@@ -241,7 +241,7 @@ class Agent:
|
|
|
241
241
|
if self._cancel_event.is_set():
|
|
242
242
|
raise asyncio.CancelledError
|
|
243
243
|
|
|
244
|
-
self._provider_event_task = asyncio.
|
|
244
|
+
self._provider_event_task = asyncio.create_task(anext(provider_stream))
|
|
245
245
|
try:
|
|
246
246
|
yield await self._provider_event_task
|
|
247
247
|
except StopAsyncIteration:
|
|
@@ -384,24 +384,20 @@ class Agent:
|
|
|
384
384
|
if event.type != "tool_done":
|
|
385
385
|
continue
|
|
386
386
|
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
result_display_text = str(result_data.get("display_text") or "")
|
|
391
|
-
result_is_error = bool(result_data.get("is_error"))
|
|
392
|
-
result_content = result_data.get("content")
|
|
387
|
+
d = event.data
|
|
388
|
+
model_text = str(d.get("model_text") or "")
|
|
389
|
+
content = d.get("content")
|
|
393
390
|
tool_results.append(
|
|
394
391
|
tool_result_block(
|
|
395
|
-
tool_use_id=
|
|
396
|
-
model_text=
|
|
397
|
-
display_text=
|
|
398
|
-
is_error=
|
|
399
|
-
content=
|
|
392
|
+
tool_use_id=str(d.get("tool_use_id") or ""),
|
|
393
|
+
model_text=model_text,
|
|
394
|
+
display_text=str(d.get("display_text") or ""),
|
|
395
|
+
is_error=bool(d.get("is_error")),
|
|
396
|
+
content=content if isinstance(content, list) else None,
|
|
400
397
|
)
|
|
401
398
|
)
|
|
402
399
|
|
|
403
|
-
|
|
404
|
-
if tool_was_cancelled and self._cancel_event.is_set():
|
|
400
|
+
if model_text == "error: cancelled" and self._cancel_event.is_set():
|
|
405
401
|
tool_result_message = build_message("user", tool_results)
|
|
406
402
|
self.messages.append(tool_result_message)
|
|
407
403
|
if on_persist:
|