mycode-cli 0.8.10__tar.gz → 0.9.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.
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/PKG-INFO +2 -2
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/pyproject.toml +2 -2
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/config.py +278 -115
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/permissions.py +1 -1
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/runtime.py +2 -2
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/routers/chat.py +135 -149
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/routers/sessions.py +8 -6
- mycode_cli-0.9.0/src/mycode_cli/server/routers/settings.py +176 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/run_manager.py +49 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/EditDiff-BwTMgMSU.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/EditDiff-B0IHjo9H.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/angular-html-B6qE7Fgr.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/angular-html-1A3-6kDn.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/angular-ts-CCYXQBsQ.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/angular-ts-DHbksxnM.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/apl-BHFdPdwP.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/apl-BaBAc5eF.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/astro-CdDbCEi0.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/astro-COnAvojq.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/blade-tLtw_1xC.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/blade-TOINzxFP.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/c-gShqJt5_.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/c-Nf_dof3C.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/cobol-CKazzhoF.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/cobol-C5VZrCE3.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/coffee-DsdLebDY.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/coffee-DZrxMgkq.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/cpp-Cwf1vUUo.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/cpp-sXfSrOsh.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/crystal-D2D2rLOi.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/crystal-BjlKCmcB.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/css-DCF53qDU.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/css-DIFAVgam.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/edge-DQH05KUf.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/edge-DF8HkBtE.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/elixir-2VpsbiLV.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/elixir-qnpJ3Nvm.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/elm-_CHnbifk.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/elm-BL2EN5T8.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/engine-compile-B24DC8pd.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/engine-compile-F5yGEj2z.js +3 -3
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/erb-Cxmz5KSP.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/erb-QTsb__7o.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/git-rebase-C04jMORK.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/git-rebase-0I7RXJtl.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/glimmer-js-D0Nvbzz0.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/glimmer-js-Bs8WRGgm.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/glimmer-ts-ix22zR5c.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/glimmer-ts-D9emdqIC.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/glsl-C4sVYnlm.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/glsl-D9ulPUIi.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/graphql-CmkcYwk_.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/graphql-DUJZ9UiP.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/hack-BDK0ocxa.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/hack-DYifHe-0.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/haml-wLZoRSkX.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/haml-Bz_OM7oT.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/handlebars-Bq6qdew-.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/handlebars-BjKJLgms.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/highlighter-Dlz8vejz.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/highlighter-w4GLV421.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/html-j61brix0.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/html-ClcZt6DK.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/html-derivative-B16zJ1uM.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/html-derivative-BaRvfEoQ.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/http-0baH_3Dk.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/http-D-6KTEZs.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/hurl-CR5A6vqw.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/hurl-DG0n-OrQ.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/index-_MPb8SvH.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/index-CRjupeqA.js +4 -4
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/java-B_NtVZr9.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/java-tcLPA8Yi.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/javascript-BJVvvhBF.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/javascript-CNvuR0fU.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/jinja-C_N7wio_.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/jinja-BUA2of-S.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/jison-DVVdkBIk.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/jison-D-xje2pK.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/json-sM0x8hNn.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/json-BDX8WktD.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/jsx-C9BVFirF.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/jsx-B7wMhlSu.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/julia-ChaP_3F1.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/julia-pLGJrApL.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/just-CavrxuQ2.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/just-CkNBJHi-.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/latex-DzKiPX3o.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/latex-q0kn6Pcj.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/liquid-C7DJS0P7.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/liquid-B--iPi74.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/lua-BqiiO-68.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/lua-BSzNx2dN.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/marko-D6qURI0q.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/marko-CHA5nb2O.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/mdc-CcWXXq58.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/mdc-Ckuw-Vv5.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/nginx-CpKQIPTm.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/nginx-VrfEBzs7.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/nim-8_0pTVwq.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/nim-DzAmBQZE.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/perl-D3eGItpN.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/perl-BUFrzUfQ.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/php-DxTfLPo4.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/php-Bm4RKslR.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/pug-Czlo7T9J.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/pug-n_U-KK_5.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/qml-DcXsrGQw.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/qml-B9YHUmta.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/r-p_dzGn9P.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/r-Dw_ezJH6.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/razor-DYXsAW5_.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/razor-yv2hRY5M.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/regexp-T_fsBtNr.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/regexp-D4Ukx3kJ.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/rst-ORuymkQc.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/rst-C6v-SMfD.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/ruby-ClzjSQ0l.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/ruby-CYSDCpk-.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/sas-BRTK3la1.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/sas-DrkbyhMO.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/scss-DS6I3QcS.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/scss-SpHo1rm1.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/shellscript-CiTYCSib.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/shellscript-DbHlMLhv.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/shellsession-D5DT705X.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/shellsession-DWVDoPWl.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/soy-NNJOX3cw.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/soy-D1a_iX7F.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/sql-Buaa9QxE.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/sql-CefQnlGw.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/stata-ntax-hDY.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/stata-BxFGeD9k.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/surrealql-DOI7nkTm.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/surrealql-h0ka8_Su.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/svelte-BtWRbgsA.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/svelte-I0t2JQun.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/templ-BXLB83Z5.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/templ-BibZqt9i.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/tex-DkP4hQm8.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/tex-BjKBBM3h.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/ts-tags-BhFXwTms.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/ts-tags-D1PtKTiF.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/tsx-Ct4UJ72v.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/tsx-C9yQch3d.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/twig-BVS_f6WM.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/twig-CNmz35zb.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/typescript-31zaVSb0.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/typescript-CqchtJT1.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/vue-axzl95W-.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/vue-CP0lvd8t.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/vue-html-BZJQggZA.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/vue-html-CEXjbQ_2.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/vue-vine-C0SHPvOF.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/vue-vine-CZuLbSRK.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/xml-DXLyvx5e.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/xml-BVrV4sh8.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/xsl-C1DaZKBE.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/xsl-BycG2Clx.js +1 -1
- mycode_cli-0.8.10/src/mycode_cli/server/static/assets/yaml-BSIzUixy.js → mycode_cli-0.9.0/src/mycode_cli/server/static/assets/yaml-D7btoOKo.js +1 -1
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/index.html +1 -1
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/tui/chat.py +30 -52
- mycode_cli-0.8.10/src/mycode_cli/server/routers/settings.py +0 -348
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/.gitignore +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/LICENSE +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/README.md +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/hatch_build.py +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/__init__.py +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/main.py +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/__init__.py +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/app.py +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/deps.py +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/routers/__init__.py +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/routers/workspaces.py +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/schemas.py +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/abap-smLpETzL.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/actionscript-3-o-aRvjY5.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/ada-D5RRX1i4.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/andromeeda-N4z3YzmR.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/apache-DttKlSqg.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/apex-DL7j-a2n.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/applescript-DCbL_2FX.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/ara-DqheWJCe.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/asciidoc-BH2sf2K4.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/asm-rfjOMz3U.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/aurora-x-CND-FqEb.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/awk-CMV5n9Z7.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/ayu-dark-on7xzq_B.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/ayu-light-DnGeGGc2.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/ayu-mirage-DG3LlYC_.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/ballerina-BjMqJjlr.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/bat-BaVbo_qw.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/beancount-DBt5Mbc_.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/berry-Cyjuxiss.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/bibtex-BV_0nsPq.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/bicep-C2gEwu4J.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/bird2-BRyaEJd0.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/bsl-B1qbqNES.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/c3-DTTbp5N2.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/cadence-CPz83cmI.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/cairo-BDj8wWhy.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/catppuccin-frappe-Dr22sraq.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/catppuccin-latte-C57EeX8c.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/catppuccin-macchiato-CpheI4uD.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/catppuccin-mocha-D8Lmdks_.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/clarity-CFJ2Yc3q.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/clojure-6R01QgJC.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/cmake-D5rSbMir.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/codeowners-_3A-ClkN.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/codeql-DlIhJTR7.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/common-lisp-BvQzz173.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/coq-DTNXReIC.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/csharp-BDKQY1K9.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/csv-DNUpVBxl.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/cue-DDdBc2s3.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/cypher-CguaznO2.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/d-CHcoyjv3.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/dark-plus-CqeW_0kH.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/dart-RM3aRphk.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/dax-nbnY1d79.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/desktop-BD76cvxT.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/diff-CdkWtnkL.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/docker-ZyPHc6zB.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/dotenv-BdJZEwA6.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/dracula-CtqCPLGa.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/dracula-soft-DmBpwRAy.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/dream-maker-BJL4qlg3.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/emacs-lisp-_LyYa2Ky.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/erlang-Bc4hQuqa.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/everforest-dark-CrbyKk4n.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/everforest-light-DRbSh8Tm.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/fennel-CC2BkRsS.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/fish-D2ZCzqcE.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/fluent-DKAm3m7q.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/fortran-fixed-form-B02FOYI-.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/fortran-free-form-BPTf0lbT.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/fsharp-DhdR18vN.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/gdresource-DgnrMPIx.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/gdscript-CsadCSaZ.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/gdshader-PfnN_8tR.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/genie-Bj-orPAV.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/gherkin-COVWpJ-Q.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/git-commit-DGJi7qBD.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/github-dark-default-DX3IG_X0.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/github-dark-dimmed-CH6p_7ez.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/github-dark-high-contrast-Bg2sSao5.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/github-dark-ipGuFGYC.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/github-light-BxjqOQl0.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/github-light-default-DwpDd1IQ.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/github-light-high-contrast-C0QeixPf.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/gleam-BF2NigGj.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/gn-CMIt9roj.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/gnuplot-DgWlRTEj.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/go-DLnOLj8q.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/groovy-B9qLWIkE.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/gruvbox-dark-hard-BIMX9ePb.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/gruvbox-dark-medium-DxuwyVzM.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/gruvbox-dark-soft-ba2fjht0.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/gruvbox-light-hard-DAJK2PqC.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/gruvbox-light-medium-WRifDAJD.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/gruvbox-light-soft-B0dBOoVB.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/haskell-BaGpmm_c.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/haxe-DfXTCEOz.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/hcl-CbCtpSbi.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/hjson-_4-w-pHU.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/hlsl-DpuYn7pp.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/horizon-C5RtD1fY.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/horizon-bright-pEOice34.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/houston-A0zg9vNP.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/hxml-adC65L_J.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/hy-t9zDXBje.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/imba-Bxu-TDfw.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/index-Datomjin.css +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/ini-D-v34c8N.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/json5-D0XL1D5m.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/jsonc-BBgf3TX3.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/jsonl-KrKLbtB7.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/jsonnet-B2ZwWMOt.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/jssm-ByRpI9-B.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/kanagawa-dragon-CtPmcCMp.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/kanagawa-lotus-DpOXEGCa.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/kanagawa-wave-CLVCyc-n.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/kdl-6FPPEH4H.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/kotlin-D4L3Nd2D.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/kusto-D-mmc07O.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/laserwave-7fEj4XGb.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/lean-BMVMuP2E.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/less-C95PyOu0.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/light-plus-DHI2dh3p.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/llvm-Dy3qORTl.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/log-BQop7fzg.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/logo-DKtnYmrp.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/luau-Dha4KG0q.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/make-DfmS6buu.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/markdown-BaI9LyM4.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/material-theme-Dm6ETY8i.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/material-theme-darker-BeyjmM5Z.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/material-theme-lighter-CCOYYzKL.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/material-theme-ocean-CUtPiiX3.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/material-theme-palenight-2L4zMwIM.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/matlab-BT79Cq_j.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/mdx-CxGBwLNt.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/mermaid-DLf3axBN.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/min-dark-B8TUPGHg.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/min-light-BDOoBxcA.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/mipsasm-DXuU_0cI.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/mojo-1Omp2pIo.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/monokai-E_VBmXGZ.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/moonbit-DZzq699o.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/move-DxDAOJVd.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/narrat-CxDcPPb9.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/nextflow-JEyYUlIq.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/nextflow-groovy-wvmJO4hi.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/night-owl-DefhalNX.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/night-owl-light-byb3AbEn.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/nix-DsFTDHWT.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/nord-D5rQzHT-.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/nushell-BQ_rO0AM.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/objective-c-BMq6JT_m.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/objective-cpp-DRwojuGv.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/ocaml-e4_gKO6E.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/odin-mdTPwYOg.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/one-dark-pro-DxXww9jg.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/one-light-D9c03w7t.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/openscad-D2aTdNfr.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/pascal-D4n_G8vj.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/pierre-dark-CizZ1Z5z.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/pierre-light-CHMWfAMe.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/pkl-DcjhAp0L.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/plastic-uOsw7z1x.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/plsql-BSy3Ag0J.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/po-Be96RYkA.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/poimandres-CyO4HORD.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/polar-BmhMKWum.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/postcss-BTQso3H9.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/powerquery-DVyQv3M2.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/powershell-BmtCGJVD.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/prisma-CCFA9rEj.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/prolog-DWGEEo78.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/proto-C3eop1kM.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/puppet-C0_7Nv5A.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/purescript-Bv-B8yRw.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/python-CKg5r0C3.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/qmldir-Cqfb4Lox.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/qss-Csho9BH8.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/racket-D8-uWeQH.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/raku-Cj4JSa8p.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/red-z4H4llUY.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/reg-DXGFiJSl.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/rel-CunnVTBK.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/riscv-C8BcOCkS.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/ron-DiDyR9oa.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/rose-pine-BADquuIH.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/rose-pine-dawn-BLcEeBoh.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/rose-pine-moon-BK_tLY1Y.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/rosmsg-CHmL1Uyj.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/rust-DjJFInu3.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/sass-D3xZ5o-v.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/scala-B0IRml5w.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/scheme-BhwcV3Av.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/sdbl-BmWYR-pI.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/shaderlab-DZ3Lsiak.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/slack-dark-DOnVms5P.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/slack-ochin-DcRTft4q.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/smalltalk-DVQuUMII.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/snazzy-light-x9CLJ1W9.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/solarized-dark-BB1sh-pe.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/solarized-light-9-RPS998.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/solidity-gQ4WXILB.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/sparql-B9c85a_o.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/splunk-OB48_RcD.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/ssh-config-DA9YMRGV.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/stylus-sKwvsUaC.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/swift-C72NbAtg.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/synthwave-84-eJ9uRN_S.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/system-verilog-CnWMF7Nq.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/systemd-DMzItW5N.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/talonscript-DopQCWDL.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/tasl-C28SYKbq.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/tcl-DHq7zmoF.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/terraform-CogS1YKX.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/tokyo-night-B9N7LyrF.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/toml-BH_iPsgK.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/tsv-BIkdBZX1.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/turtle-CqNXyJWZ.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/typespec-CQ9LYD_e.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/typst-T-Fsk-Sv.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/v-BhMEOw9x.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/vala-DzajMnwt.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/vb-7Xr8dEYW.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/verilog-AvXtwZir.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/vesper-CtgQQ2sf.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/vhdl-BHu0zg1P.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/viml-Di0QpLfC.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/vitesse-black-jXdfyqgD.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/vitesse-dark-B88PxG1r.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/vitesse-light-BXxZh2iV.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/vyper-C3R5yXgx.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/wasm-CEUrWlVz.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/wasm-Chsuwt1A.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/wenyan-BonVcr2i.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/wgsl-D59WYmNq.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/wikitext-ariTI2Wk.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/wit-EA4fa3Dt.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/wolfram-DDp7LhyU.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/zenscript-4WaROUyc.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/assets/zig-CJoLJGwV.js +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/favicon_slashes.svg +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/fonts/OFL.txt +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/fonts/SourceCodePro-Variable.woff2 +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/server/static/fonts/SourceSans3-Variable.woff2 +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/system_prompt.py +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/tui/__init__.py +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/tui/render.py +0 -0
- {mycode_cli-0.8.10 → mycode_cli-0.9.0}/src/mycode_cli/tui/theme.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mycode-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.9.0
|
|
4
4
|
Summary: Minimal coding agent CLI and web UI built on mycode-sdk.
|
|
5
5
|
Project-URL: Homepage, https://github.com/legibet/mycode
|
|
6
6
|
Project-URL: Repository, https://github.com/legibet/mycode
|
|
@@ -22,7 +22,7 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
22
22
|
Classifier: Topic :: Software Development
|
|
23
23
|
Requires-Python: >=3.12
|
|
24
24
|
Requires-Dist: fastapi>=0.135.0
|
|
25
|
-
Requires-Dist: mycode-sdk==0.
|
|
25
|
+
Requires-Dist: mycode-sdk==0.9.0
|
|
26
26
|
Requires-Dist: prompt-toolkit>=3.0.52
|
|
27
27
|
Requires-Dist: pyyaml>=6.0.0
|
|
28
28
|
Requires-Dist: rich>=15.0.0
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "mycode-cli"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.9.0"
|
|
8
8
|
description = "Minimal coding agent CLI and web UI built on mycode-sdk."
|
|
9
9
|
requires-python = ">=3.12"
|
|
10
10
|
license = "MIT"
|
|
@@ -26,7 +26,7 @@ classifiers = [
|
|
|
26
26
|
]
|
|
27
27
|
keywords = ["agent", "cli", "llm", "coding-agent", "fastapi"]
|
|
28
28
|
dependencies = [
|
|
29
|
-
"mycode-sdk==0.
|
|
29
|
+
"mycode-sdk==0.9.0",
|
|
30
30
|
"fastapi>=0.135.0",
|
|
31
31
|
"uvicorn[standard]>=0.45.0",
|
|
32
32
|
"rich>=15.0.0",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"""
|
|
1
|
+
"""Configuration document validation, settings loading, and provider resolution."""
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
@@ -22,27 +22,20 @@ from mycode.providers import (
|
|
|
22
22
|
from mycode.utils import as_bool, as_int
|
|
23
23
|
|
|
24
24
|
_DEFAULT_MYCODE_HOME = "~/.mycode"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
def resolve_mycode_home() -> Path:
|
|
28
|
-
"""Resolve the mycode home directory (``$MYCODE_HOME`` or ``~/.mycode``)."""
|
|
29
|
-
|
|
30
|
-
raw = os.environ.get("MYCODE_HOME", _DEFAULT_MYCODE_HOME)
|
|
31
|
-
return Path(raw).expanduser().resolve(strict=False)
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
def resolve_sessions_dir() -> Path:
|
|
35
|
-
"""Resolve the directory used for persisted sessions."""
|
|
36
|
-
|
|
37
|
-
return resolve_mycode_home() / "sessions"
|
|
38
|
-
|
|
39
|
-
|
|
40
25
|
_API_KEY_ENV_REF_RE = re.compile(r"^\$\{([A-Za-z_][A-Za-z0-9_]*)\}$")
|
|
41
|
-
|
|
42
|
-
#
|
|
26
|
+
|
|
27
|
+
# "auto" means "do not send an explicit effort to the provider"; after
|
|
28
|
+
# normalization it is represented as None.
|
|
43
29
|
REASONING_EFFORT_OPTIONS = ("auto", "none", "low", "medium", "high", "xhigh")
|
|
44
30
|
PERMISSION_LEVEL_OPTIONS = ("readonly", "safe", "standard", "yolo")
|
|
45
31
|
PERMISSION_MODE_OPTIONS = ("ask", "deny")
|
|
32
|
+
MODEL_OVERRIDE_KEYS = (
|
|
33
|
+
"context_window",
|
|
34
|
+
"max_output_tokens",
|
|
35
|
+
"supports_reasoning",
|
|
36
|
+
"supports_image_input",
|
|
37
|
+
"supports_pdf_input",
|
|
38
|
+
)
|
|
46
39
|
_EFFORT_AUTO_ALIASES = frozenset({"", "auto", "default"})
|
|
47
40
|
_EFFORT_OFF_ALIASES = frozenset({"off", "disabled"})
|
|
48
41
|
|
|
@@ -103,14 +96,17 @@ class ResolvedProvider:
|
|
|
103
96
|
model_config: ModelConfig | None = None
|
|
104
97
|
|
|
105
98
|
|
|
106
|
-
def
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
99
|
+
def resolve_mycode_home() -> Path:
|
|
100
|
+
"""Resolve the mycode home directory (``$MYCODE_HOME`` or ``~/.mycode``)."""
|
|
101
|
+
|
|
102
|
+
raw = os.environ.get("MYCODE_HOME", _DEFAULT_MYCODE_HOME)
|
|
103
|
+
return Path(raw).expanduser().resolve(strict=False)
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
def resolve_sessions_dir() -> Path:
|
|
107
|
+
"""Resolve the directory used for persisted sessions."""
|
|
108
|
+
|
|
109
|
+
return resolve_mycode_home() / "sessions"
|
|
114
110
|
|
|
115
111
|
|
|
116
112
|
def resolve_project(cwd: str) -> Path:
|
|
@@ -127,7 +123,10 @@ def project_dirs(cwd: str, project: str | Path | None = None) -> list[Path]:
|
|
|
127
123
|
"""Return directories from project to cwd, inclusive."""
|
|
128
124
|
|
|
129
125
|
cwd_path = Path(cwd).expanduser().resolve(strict=False)
|
|
130
|
-
|
|
126
|
+
if project is None:
|
|
127
|
+
project_path = resolve_project(cwd)
|
|
128
|
+
else:
|
|
129
|
+
project_path = Path(project).expanduser().resolve(strict=False)
|
|
131
130
|
|
|
132
131
|
dirs = [cwd_path]
|
|
133
132
|
while dirs[-1] != project_path:
|
|
@@ -139,51 +138,23 @@ def project_dirs(cwd: str, project: str | Path | None = None) -> list[Path]:
|
|
|
139
138
|
return list(reversed(dirs))
|
|
140
139
|
|
|
141
140
|
|
|
142
|
-
def
|
|
143
|
-
|
|
144
|
-
return {}
|
|
145
|
-
|
|
146
|
-
models: dict[str, ModelConfig] = {}
|
|
147
|
-
for model, raw in value.items():
|
|
148
|
-
if not isinstance(model, str):
|
|
149
|
-
continue
|
|
150
|
-
model_id = model.strip()
|
|
151
|
-
if not model_id:
|
|
152
|
-
continue
|
|
153
|
-
if isinstance(raw, ModelConfig):
|
|
154
|
-
models[model_id] = raw
|
|
155
|
-
continue
|
|
156
|
-
raw_config = raw if isinstance(raw, dict) else {}
|
|
157
|
-
models[model_id] = ModelConfig(
|
|
158
|
-
context_window=as_int(raw_config.get("context_window")),
|
|
159
|
-
max_output_tokens=as_int(raw_config.get("max_output_tokens")),
|
|
160
|
-
supports_reasoning=as_bool(raw_config.get("supports_reasoning")),
|
|
161
|
-
supports_image_input=as_bool(raw_config.get("supports_image_input")),
|
|
162
|
-
supports_pdf_input=as_bool(raw_config.get("supports_pdf_input")),
|
|
163
|
-
)
|
|
164
|
-
return models
|
|
141
|
+
def _candidate_config_paths(cwd: str, project: str | Path) -> list[Path]:
|
|
142
|
+
"""Return config files in override order: global, then project to cwd."""
|
|
165
143
|
|
|
144
|
+
paths = [resolve_mycode_home() / "config.json"]
|
|
145
|
+
paths.extend(path / ".mycode" / "config.json" for path in project_dirs(cwd, project))
|
|
146
|
+
return paths
|
|
166
147
|
|
|
167
|
-
def _parse_config_api_key(value: Any) -> tuple[str | None, str | None]:
|
|
168
|
-
if not isinstance(value, str):
|
|
169
|
-
return None, None
|
|
170
148
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
return None, None
|
|
149
|
+
def is_api_key_env_ref(value: str) -> str | None:
|
|
150
|
+
"""Return the env var name when ``value`` is a ``${NAME}`` reference."""
|
|
174
151
|
|
|
175
|
-
match = _API_KEY_ENV_REF_RE.fullmatch(
|
|
176
|
-
if match
|
|
177
|
-
return None, match.group(1)
|
|
178
|
-
return cleaned, None
|
|
152
|
+
match = _API_KEY_ENV_REF_RE.fullmatch(value.strip())
|
|
153
|
+
return match.group(1) if match else None
|
|
179
154
|
|
|
180
155
|
|
|
181
156
|
def parse_compact_threshold(value: Any) -> float | None:
|
|
182
|
-
"""Parse compact_threshold from config.
|
|
183
|
-
|
|
184
|
-
Returns ``None`` when the key should keep the current/default value, ``0.0``
|
|
185
|
-
when compaction is explicitly disabled, or a valid float in ``[0, 1]``.
|
|
186
|
-
"""
|
|
157
|
+
"""Parse compact_threshold from config."""
|
|
187
158
|
|
|
188
159
|
if value is None:
|
|
189
160
|
return None
|
|
@@ -201,13 +172,7 @@ def parse_compact_threshold(value: Any) -> float | None:
|
|
|
201
172
|
|
|
202
173
|
|
|
203
174
|
def normalize_reasoning_effort(value: Any) -> str | None:
|
|
204
|
-
"""Normalize a reasoning effort setting.
|
|
205
|
-
|
|
206
|
-
Returns `None` for "auto"/"default"/empty — the sentinel for "do not send an
|
|
207
|
-
explicit effort to the provider". Returns "none" for "off"/"disabled" and
|
|
208
|
-
a canonical tier string for recognized levels. Raises `ValueError` for any
|
|
209
|
-
other string (or non-string, non-None value).
|
|
210
|
-
"""
|
|
175
|
+
"""Normalize a reasoning effort setting."""
|
|
211
176
|
|
|
212
177
|
if value is None:
|
|
213
178
|
return None
|
|
@@ -258,61 +223,151 @@ def parse_permission(value: Any, current: PermissionConfig | None = None) -> Per
|
|
|
258
223
|
raise ValueError(f"permission must be a string or object, got {type(value).__name__}")
|
|
259
224
|
|
|
260
225
|
|
|
261
|
-
def
|
|
262
|
-
|
|
263
|
-
if not env_name:
|
|
264
|
-
return None
|
|
226
|
+
def validate_global_config(data: Any) -> dict[str, Any]:
|
|
227
|
+
"""Validate and clean a global config document before writing it to disk."""
|
|
265
228
|
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
229
|
+
if data is None:
|
|
230
|
+
return {}
|
|
231
|
+
if not isinstance(data, dict):
|
|
232
|
+
raise ValueError("config must be an object")
|
|
269
233
|
|
|
270
|
-
|
|
271
|
-
raise ValueError(f"missing API key env var {env_name!r} referenced by provider {provider.name!r}")
|
|
272
|
-
return None
|
|
234
|
+
out: dict[str, Any] = {}
|
|
273
235
|
|
|
236
|
+
if data.get("default") is not None:
|
|
237
|
+
default = _validate_default_config(data["default"])
|
|
238
|
+
if default:
|
|
239
|
+
out["default"] = default
|
|
274
240
|
|
|
275
|
-
|
|
276
|
-
|
|
241
|
+
if data.get("permission") is not None:
|
|
242
|
+
out["permission"] = _validate_permission_config(data["permission"])
|
|
277
243
|
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
244
|
+
raw_providers = data.get("providers")
|
|
245
|
+
if raw_providers is not None:
|
|
246
|
+
if not isinstance(raw_providers, dict):
|
|
247
|
+
raise ValueError("providers must be an object")
|
|
248
|
+
providers: dict[str, dict[str, Any]] = {}
|
|
249
|
+
for name, raw in raw_providers.items():
|
|
250
|
+
if not isinstance(name, str) or not name.strip():
|
|
251
|
+
raise ValueError("provider name must be a non-empty string")
|
|
252
|
+
provider_name = name.strip()
|
|
253
|
+
providers[provider_name] = _validate_provider_config(provider_name, raw)
|
|
254
|
+
if providers:
|
|
255
|
+
out["providers"] = providers
|
|
281
256
|
|
|
257
|
+
return out
|
|
282
258
|
|
|
283
|
-
def _candidate_config_paths(cwd: str, project: str | Path) -> list[Path]:
|
|
284
|
-
paths = [resolve_mycode_home() / "config.json"]
|
|
285
|
-
paths.extend(path / ".mycode" / "config.json" for path in project_dirs(cwd, project))
|
|
286
|
-
return paths
|
|
287
259
|
|
|
260
|
+
def _optional_config_string(raw: dict[str, Any], key: str, label: str) -> str | None:
|
|
261
|
+
if key not in raw:
|
|
262
|
+
return None
|
|
263
|
+
value = raw[key]
|
|
264
|
+
if value is None or value == "":
|
|
265
|
+
return None
|
|
266
|
+
if not isinstance(value, str):
|
|
267
|
+
raise ValueError(f"{label} must be a string")
|
|
268
|
+
return value.strip() or None
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
def _validate_default_config(raw: Any) -> dict[str, Any]:
|
|
272
|
+
if not isinstance(raw, dict):
|
|
273
|
+
raise ValueError("default must be an object")
|
|
274
|
+
|
|
275
|
+
out: dict[str, Any] = {}
|
|
276
|
+
for key in ("provider", "model"):
|
|
277
|
+
value = _optional_config_string(raw, key, f"default.{key}")
|
|
278
|
+
if value:
|
|
279
|
+
out[key] = value
|
|
280
|
+
|
|
281
|
+
effort = raw.get("reasoning_effort")
|
|
282
|
+
if effort not in (None, ""):
|
|
283
|
+
normalize_reasoning_effort(effort)
|
|
284
|
+
out["reasoning_effort"] = effort
|
|
285
|
+
|
|
286
|
+
compact_threshold = raw.get("compact_threshold")
|
|
287
|
+
if compact_threshold is False:
|
|
288
|
+
out["compact_threshold"] = False
|
|
289
|
+
elif compact_threshold is not None:
|
|
290
|
+
if isinstance(compact_threshold, bool):
|
|
291
|
+
raise ValueError("default.compact_threshold must be a number in [0, 1] or false")
|
|
292
|
+
parsed = parse_compact_threshold(compact_threshold)
|
|
293
|
+
if parsed is None:
|
|
294
|
+
raise ValueError("default.compact_threshold must be a number in [0, 1] or false")
|
|
295
|
+
out["compact_threshold"] = parsed
|
|
296
|
+
|
|
297
|
+
return out
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
def _validate_permission_config(raw: Any) -> PermissionLevel | dict[str, Any]:
|
|
301
|
+
if isinstance(raw, str):
|
|
302
|
+
return normalize_permission_level(raw)
|
|
303
|
+
if not isinstance(raw, dict):
|
|
304
|
+
raise ValueError("permission must be a string or object")
|
|
305
|
+
|
|
306
|
+
out: dict[str, Any] = {}
|
|
307
|
+
if "level" in raw:
|
|
308
|
+
out["level"] = normalize_permission_level(raw.get("level"))
|
|
309
|
+
if "mode" in raw:
|
|
310
|
+
out["mode"] = normalize_permission_mode(raw.get("mode"))
|
|
311
|
+
return out
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
def _validate_provider_config(name: str, raw: Any) -> dict[str, Any]:
|
|
315
|
+
if not isinstance(raw, dict):
|
|
316
|
+
raise ValueError(f"provider {name!r} must be an object")
|
|
317
|
+
|
|
318
|
+
out: dict[str, Any] = {}
|
|
319
|
+
raw_type = raw.get("type")
|
|
320
|
+
if raw_type in (None, ""):
|
|
321
|
+
if not is_supported_provider(name):
|
|
322
|
+
raise ValueError(f"provider {name!r} must set 'type'")
|
|
323
|
+
elif not isinstance(raw_type, str):
|
|
324
|
+
raise ValueError(f"provider {name!r}: type must be a string")
|
|
325
|
+
elif not is_supported_provider(raw_type):
|
|
326
|
+
supported = ", ".join(list_supported_providers())
|
|
327
|
+
raise ValueError(f"provider {name!r}: unsupported type {raw_type!r}; supported: {supported}")
|
|
328
|
+
else:
|
|
329
|
+
out["type"] = raw_type
|
|
288
330
|
|
|
289
|
-
|
|
290
|
-
|
|
331
|
+
for key in ("api_key", "base_url"):
|
|
332
|
+
value = _optional_config_string(raw, key, f"provider {name!r}: {key}")
|
|
333
|
+
if value:
|
|
334
|
+
out[key] = value
|
|
291
335
|
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
elif is_supported_provider(name):
|
|
297
|
-
# Built-in providers can be overridden by name without repeating type.
|
|
298
|
-
provider_type = name
|
|
299
|
-
else:
|
|
300
|
-
raise ValueError(f"provider {name!r} must set 'type'")
|
|
336
|
+
effort = raw.get("reasoning_effort")
|
|
337
|
+
if effort not in (None, ""):
|
|
338
|
+
normalize_reasoning_effort(effort)
|
|
339
|
+
out["reasoning_effort"] = effort
|
|
301
340
|
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
api_key=raw.get("api_key") or None,
|
|
310
|
-
api_key_env_var=raw.get("api_key_env_var") or None,
|
|
311
|
-
base_url=raw.get("base_url") or None,
|
|
312
|
-
reasoning_effort=normalize_reasoning_effort(raw.get("reasoning_effort")),
|
|
313
|
-
)
|
|
341
|
+
raw_models = raw.get("models")
|
|
342
|
+
if raw_models is not None:
|
|
343
|
+
models = _validate_model_config_entries(name, raw_models)
|
|
344
|
+
if models:
|
|
345
|
+
out["models"] = models
|
|
346
|
+
|
|
347
|
+
return out
|
|
314
348
|
|
|
315
|
-
|
|
349
|
+
|
|
350
|
+
def _validate_model_config_entries(name: str, raw: Any) -> dict[str, dict[str, Any]]:
|
|
351
|
+
# The settings UI sends a model list, while stored config uses a model map.
|
|
352
|
+
if isinstance(raw, list):
|
|
353
|
+
items: list[tuple[Any, Any]] = [(model, None) for model in raw]
|
|
354
|
+
elif isinstance(raw, dict):
|
|
355
|
+
items = list(raw.items())
|
|
356
|
+
else:
|
|
357
|
+
raise ValueError(f"provider {name!r}: models must be a list or object")
|
|
358
|
+
|
|
359
|
+
out: dict[str, dict[str, Any]] = {}
|
|
360
|
+
for model_id, overrides in items:
|
|
361
|
+
if not isinstance(model_id, str) or not model_id.strip():
|
|
362
|
+
raise ValueError(f"provider {name!r}: model id must be a non-empty string")
|
|
363
|
+
key = model_id.strip()
|
|
364
|
+
if overrides is None:
|
|
365
|
+
out[key] = {}
|
|
366
|
+
elif isinstance(overrides, dict):
|
|
367
|
+
out[key] = {k: v for k, v in overrides.items() if k in MODEL_OVERRIDE_KEYS and v is not None}
|
|
368
|
+
else:
|
|
369
|
+
raise ValueError(f"provider {name!r}: model {key!r} config must be an object")
|
|
370
|
+
return out
|
|
316
371
|
|
|
317
372
|
|
|
318
373
|
def get_settings(cwd: str | None = None) -> Settings:
|
|
@@ -392,6 +447,100 @@ def get_settings(cwd: str | None = None) -> Settings:
|
|
|
392
447
|
)
|
|
393
448
|
|
|
394
449
|
|
|
450
|
+
def _load_json(path: Path) -> dict[str, Any] | None:
|
|
451
|
+
"""Load a JSON object from a config file; ignore missing or invalid files."""
|
|
452
|
+
|
|
453
|
+
if not path.is_file():
|
|
454
|
+
return None
|
|
455
|
+
try:
|
|
456
|
+
data = json.loads(path.read_text(encoding="utf-8"))
|
|
457
|
+
except Exception:
|
|
458
|
+
return None
|
|
459
|
+
return data if isinstance(data, dict) else None
|
|
460
|
+
|
|
461
|
+
|
|
462
|
+
def _normalize_models(value: Any) -> dict[str, ModelConfig]:
|
|
463
|
+
"""Convert raw model overrides into runtime model config objects."""
|
|
464
|
+
|
|
465
|
+
if not isinstance(value, dict):
|
|
466
|
+
return {}
|
|
467
|
+
|
|
468
|
+
models: dict[str, ModelConfig] = {}
|
|
469
|
+
for model, raw in value.items():
|
|
470
|
+
if not isinstance(model, str):
|
|
471
|
+
continue
|
|
472
|
+
model_id = model.strip()
|
|
473
|
+
if not model_id:
|
|
474
|
+
continue
|
|
475
|
+
if isinstance(raw, ModelConfig):
|
|
476
|
+
models[model_id] = raw
|
|
477
|
+
continue
|
|
478
|
+
raw_config = raw if isinstance(raw, dict) else {}
|
|
479
|
+
models[model_id] = ModelConfig(
|
|
480
|
+
context_window=as_int(raw_config.get("context_window")),
|
|
481
|
+
max_output_tokens=as_int(raw_config.get("max_output_tokens")),
|
|
482
|
+
supports_reasoning=as_bool(raw_config.get("supports_reasoning")),
|
|
483
|
+
supports_image_input=as_bool(raw_config.get("supports_image_input")),
|
|
484
|
+
supports_pdf_input=as_bool(raw_config.get("supports_pdf_input")),
|
|
485
|
+
)
|
|
486
|
+
return models
|
|
487
|
+
|
|
488
|
+
|
|
489
|
+
def _parse_config_api_key(value: Any) -> tuple[str | None, str | None]:
|
|
490
|
+
"""Return a literal API key or an env var reference from config."""
|
|
491
|
+
|
|
492
|
+
if not isinstance(value, str):
|
|
493
|
+
return None, None
|
|
494
|
+
|
|
495
|
+
cleaned = value.strip()
|
|
496
|
+
if not cleaned:
|
|
497
|
+
return None, None
|
|
498
|
+
|
|
499
|
+
env_name = is_api_key_env_ref(cleaned)
|
|
500
|
+
if env_name:
|
|
501
|
+
return None, env_name
|
|
502
|
+
return cleaned, None
|
|
503
|
+
|
|
504
|
+
|
|
505
|
+
def _build_providers(raw_providers: dict[str, dict[str, Any]]) -> dict[str, ProviderConfig]:
|
|
506
|
+
"""Build runtime provider configs after layered config files are merged."""
|
|
507
|
+
|
|
508
|
+
providers: dict[str, ProviderConfig] = {}
|
|
509
|
+
|
|
510
|
+
for name, raw in raw_providers.items():
|
|
511
|
+
raw_type = raw.get("type")
|
|
512
|
+
if raw_type:
|
|
513
|
+
provider_type = str(raw_type)
|
|
514
|
+
elif is_supported_provider(name):
|
|
515
|
+
# Built-in providers can be overridden by name without repeating type.
|
|
516
|
+
provider_type = name
|
|
517
|
+
else:
|
|
518
|
+
raise ValueError(f"provider {name!r} must set 'type'")
|
|
519
|
+
|
|
520
|
+
models = _normalize_models(raw.get("models"))
|
|
521
|
+
if not models:
|
|
522
|
+
models = {model: ModelConfig() for model in provider_default_models(provider_type)}
|
|
523
|
+
providers[name] = ProviderConfig(
|
|
524
|
+
name=name,
|
|
525
|
+
type=provider_type,
|
|
526
|
+
models=models,
|
|
527
|
+
api_key=raw.get("api_key") or None,
|
|
528
|
+
api_key_env_var=raw.get("api_key_env_var") or None,
|
|
529
|
+
base_url=raw.get("base_url") or None,
|
|
530
|
+
reasoning_effort=normalize_reasoning_effort(raw.get("reasoning_effort")),
|
|
531
|
+
)
|
|
532
|
+
|
|
533
|
+
return providers
|
|
534
|
+
|
|
535
|
+
|
|
536
|
+
def provider_has_api_key(provider: ProviderConfig) -> bool:
|
|
537
|
+
"""Return whether a configured provider can authenticate right now."""
|
|
538
|
+
|
|
539
|
+
if provider.api_key_env_var:
|
|
540
|
+
return bool(_config_api_key_from_env_var(provider))
|
|
541
|
+
return bool(provider.api_key or provider_api_key_from_env(provider.type))
|
|
542
|
+
|
|
543
|
+
|
|
395
544
|
def resolve_provider(
|
|
396
545
|
settings: Settings,
|
|
397
546
|
*,
|
|
@@ -453,6 +602,20 @@ def resolve_provider_choices(settings: Settings) -> list[ResolvedProvider]:
|
|
|
453
602
|
return choices
|
|
454
603
|
|
|
455
604
|
|
|
605
|
+
def _config_api_key_from_env_var(provider: ProviderConfig, *, require: bool = False) -> str | None:
|
|
606
|
+
env_name = provider.api_key_env_var
|
|
607
|
+
if not env_name:
|
|
608
|
+
return None
|
|
609
|
+
|
|
610
|
+
value = (os.environ.get(env_name) or "").strip()
|
|
611
|
+
if value:
|
|
612
|
+
return value
|
|
613
|
+
|
|
614
|
+
if require:
|
|
615
|
+
raise ValueError(f"missing API key env var {env_name!r} referenced by provider {provider.name!r}")
|
|
616
|
+
return None
|
|
617
|
+
|
|
618
|
+
|
|
456
619
|
def _available_provider_references(settings: Settings) -> list[tuple[str, ProviderConfig | None]]:
|
|
457
620
|
"""Return usable provider references with the configured default first."""
|
|
458
621
|
|
|
@@ -9,7 +9,7 @@ from pathlib import Path
|
|
|
9
9
|
from typing import Literal, NamedTuple
|
|
10
10
|
|
|
11
11
|
from mycode import Hooks, ToolExecutionResult, ToolHookContext
|
|
12
|
-
from mycode.
|
|
12
|
+
from mycode.utils import resolve_path
|
|
13
13
|
from mycode_cli.config import PermissionConfig, PermissionLevel, Settings
|
|
14
14
|
from mycode_cli.system_prompt import discover_skills
|
|
15
15
|
|
|
@@ -4,7 +4,7 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
from mycode.agent import Agent
|
|
6
6
|
from mycode.session import SessionStore
|
|
7
|
-
from mycode.tools import
|
|
7
|
+
from mycode.tools import bash_tool, edit_tool, read_tool, write_tool
|
|
8
8
|
from mycode_cli.config import ResolvedProvider, Settings
|
|
9
9
|
from mycode_cli.permissions import ToolReviewCallback, build_permission_hooks
|
|
10
10
|
from mycode_cli.system_prompt import build_system_prompt
|
|
@@ -46,6 +46,6 @@ def build_agent(
|
|
|
46
46
|
compact_threshold=settings.compact_threshold,
|
|
47
47
|
max_turns=max_turns,
|
|
48
48
|
system=build_system_prompt(cwd, settings),
|
|
49
|
-
tools=
|
|
49
|
+
tools=[read_tool, write_tool, edit_tool, bash_tool],
|
|
50
50
|
hooks=hooks,
|
|
51
51
|
)
|