mycode-cli 0.4.2__tar.gz → 0.5.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.
Files changed (389) hide show
  1. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/PKG-INFO +44 -35
  2. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/README.md +42 -33
  3. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/pyproject.toml +2 -2
  4. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/config.py +17 -9
  5. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/main.py +3 -7
  6. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/runtime.py +19 -17
  7. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/deps.py +2 -1
  8. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/routers/chat.py +29 -31
  9. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/routers/sessions.py +3 -10
  10. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/schemas.py +2 -7
  11. mycode_cli-0.4.2/src/mycode_cli/server/static/assets/EditDiff-BCA9aTUr.js → mycode_cli-0.5.0/src/mycode_cli/server/static/assets/EditDiff-WSvfoXLm.js +1 -1
  12. mycode_cli-0.4.2/src/mycode_cli/server/static/assets/index-C8gu4B-1.js → mycode_cli-0.5.0/src/mycode_cli/server/static/assets/index-CzU-UeUh.js +71 -73
  13. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/index.html +1 -1
  14. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/system_prompt.py +1 -2
  15. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/tui/chat.py +9 -15
  16. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/tui/render.py +33 -33
  17. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/.gitignore +0 -0
  18. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/LICENSE +0 -0
  19. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/hatch_build.py +0 -0
  20. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/__init__.py +0 -0
  21. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/__init__.py +0 -0
  22. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/app.py +0 -0
  23. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/routers/__init__.py +0 -0
  24. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/routers/workspaces.py +0 -0
  25. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/run_manager.py +0 -0
  26. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  27. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  28. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  29. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  30. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  31. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  32. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  33. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  34. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  35. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  36. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  37. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  38. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  39. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  40. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  41. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  42. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  43. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  44. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  45. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  46. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  47. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  48. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  49. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  50. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  51. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  52. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  53. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  54. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  55. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  56. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  57. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  58. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  59. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  60. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  61. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  62. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  63. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  64. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  65. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  66. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  67. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  68. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  69. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  70. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  71. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  72. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  73. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  74. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  75. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  76. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  77. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  78. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  79. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  80. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  81. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  82. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  83. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  84. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  85. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/abap-BdImnpbu.js +0 -0
  86. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/actionscript-3-CoDkCxhg.js +0 -0
  87. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/ada-bCR0ucgS.js +0 -0
  88. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/andromeeda-C4gqWexZ.js +0 -0
  89. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/angular-html-DA-rfuFy.js +0 -0
  90. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/angular-ts-BrjP3tb8.js +0 -0
  91. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/apache-Pmp26Uib.js +0 -0
  92. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/apex-D8_7TLub.js +0 -0
  93. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/apl-CORt7UWP.js +0 -0
  94. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/applescript-Co6uUVPk.js +0 -0
  95. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/ara-BRHolxvo.js +0 -0
  96. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/asciidoc-Ve4PFQV2.js +0 -0
  97. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/asm-D_Q5rh1f.js +0 -0
  98. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/astro-HNnZUWAn.js +0 -0
  99. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/aurora-x-D-2ljcwZ.js +0 -0
  100. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/awk-DMzUqQB5.js +0 -0
  101. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/ayu-dark-DYE7WIF3.js +0 -0
  102. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/ayu-light-BA47KaF1.js +0 -0
  103. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/ayu-mirage-32ctXXKs.js +0 -0
  104. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/ballerina-BFfxhgS-.js +0 -0
  105. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/bat-BkioyH1T.js +0 -0
  106. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/beancount-k_qm7-4y.js +0 -0
  107. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/berry-uYugtg8r.js +0 -0
  108. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/bibtex-CHM0blh-.js +0 -0
  109. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/bicep-Bmn6On1c.js +0 -0
  110. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/bird2-BIv1doCn.js +0 -0
  111. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/blade-BjGOyj-B.js +0 -0
  112. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/bsl-BO_Y6i37.js +0 -0
  113. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/c-BIGW1oBm.js +0 -0
  114. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/c3-eo99z4R2.js +0 -0
  115. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/cadence-Bv_4Rxtq.js +0 -0
  116. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/cairo-KRGpt6FW.js +0 -0
  117. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/catppuccin-frappe-DFWUc33u.js +0 -0
  118. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/catppuccin-latte-C9dUb6Cb.js +0 -0
  119. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/catppuccin-macchiato-DQyhUUbL.js +0 -0
  120. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/catppuccin-mocha-D87Tk5Gz.js +0 -0
  121. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/clarity-D53aC0YG.js +0 -0
  122. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/clojure-P80f7IUj.js +0 -0
  123. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/cmake-D1j8_8rp.js +0 -0
  124. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/cobol-nBiQ_Alo.js +0 -0
  125. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/codeowners-Bp6g37R7.js +0 -0
  126. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/codeql-DsOJ9woJ.js +0 -0
  127. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/coffee-Ch7k5sss.js +0 -0
  128. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/common-lisp-Cg-RD9OK.js +0 -0
  129. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/coq-DkFqJrB1.js +0 -0
  130. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/cpp-CofmeUqb.js +0 -0
  131. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/crystal-DNxU26gB.js +0 -0
  132. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/csharp-COcwbKMJ.js +0 -0
  133. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/css-CLj8gQPS.js +0 -0
  134. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/csv-fuZLfV_i.js +0 -0
  135. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/cue-D82EKSYY.js +0 -0
  136. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/cypher-COkxafJQ.js +0 -0
  137. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/d-85-TOEBH.js +0 -0
  138. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/dark-plus-C3mMm8J8.js +0 -0
  139. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/dart-bE4Kk8sk.js +0 -0
  140. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/dax-CEL-wOlO.js +0 -0
  141. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/desktop-BmXAJ9_W.js +0 -0
  142. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/diff-D97Zzqfu.js +0 -0
  143. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/docker-BcOcwvcX.js +0 -0
  144. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/dotenv-Da5cRb03.js +0 -0
  145. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/dracula-BzJJZx-M.js +0 -0
  146. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/dracula-soft-BXkSAIEj.js +0 -0
  147. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/dream-maker-BtqSS_iP.js +0 -0
  148. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/edge-FbVlp4U3.js +0 -0
  149. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/elixir-CkH2-t6x.js +0 -0
  150. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/elm-DbKCFpqz.js +0 -0
  151. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/emacs-lisp-CXvaQtF9.js +0 -0
  152. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/erb-BYCe7drp.js +0 -0
  153. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/erlang-DsQrWhSR.js +0 -0
  154. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/everforest-dark-BgDCqdQA.js +0 -0
  155. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/everforest-light-C8M2exoo.js +0 -0
  156. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/fennel-BYunw83y.js +0 -0
  157. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/fish-BvzEVeQv.js +0 -0
  158. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/fluent-C4IJs8-o.js +0 -0
  159. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/fortran-fixed-form-CkoXwp7k.js +0 -0
  160. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/fortran-free-form-BxgE0vQu.js +0 -0
  161. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/fsharp-CXgrBDvD.js +0 -0
  162. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/gdresource-BOOCDP_w.js +0 -0
  163. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/gdscript-C5YyOfLZ.js +0 -0
  164. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/gdshader-DkwncUOv.js +0 -0
  165. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/genie-D0YGMca9.js +0 -0
  166. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/gherkin-DyxjwDmM.js +0 -0
  167. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/git-commit-F4YmCXRG.js +0 -0
  168. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/git-rebase-r7XF79zn.js +0 -0
  169. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/github-dark-DHJKELXO.js +0 -0
  170. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/github-dark-default-Cuk6v7N8.js +0 -0
  171. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/github-dark-dimmed-DH5Ifo-i.js +0 -0
  172. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/github-dark-high-contrast-E3gJ1_iC.js +0 -0
  173. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/github-light-DAi9KRSo.js +0 -0
  174. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/github-light-default-D7oLnXFd.js +0 -0
  175. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/github-light-high-contrast-BfjtVDDH.js +0 -0
  176. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/gleam-BspZqrRM.js +0 -0
  177. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/glimmer-js-ByusRIyA.js +0 -0
  178. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/glimmer-ts-BfAWNZQY.js +0 -0
  179. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/glsl-DplSGwfg.js +0 -0
  180. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/gn-n2N0HUVH.js +0 -0
  181. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/gnuplot-DdkO51Og.js +0 -0
  182. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/go-C27-OAKa.js +0 -0
  183. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/graphql-ChdNCCLP.js +0 -0
  184. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/groovy-gcz8RCvz.js +0 -0
  185. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/gruvbox-dark-hard-CFHQjOhq.js +0 -0
  186. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/gruvbox-dark-medium-GsRaNv29.js +0 -0
  187. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/gruvbox-dark-soft-CVdnzihN.js +0 -0
  188. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/gruvbox-light-hard-CH1njM8p.js +0 -0
  189. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/gruvbox-light-medium-DRw_LuNl.js +0 -0
  190. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/gruvbox-light-soft-hJgmCMqR.js +0 -0
  191. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/hack-i7_Ulhet.js +0 -0
  192. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/haml-D5jkg6IW.js +0 -0
  193. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/handlebars-BpdQsYii.js +0 -0
  194. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/haskell-Df6bDoY_.js +0 -0
  195. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/haxe-CzTSHFRz.js +0 -0
  196. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/hcl-BWvSN4gD.js +0 -0
  197. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/hjson-D5-asLiD.js +0 -0
  198. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/hlsl-D3lLCCz7.js +0 -0
  199. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/horizon-BUw7H-hv.js +0 -0
  200. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/horizon-bright-CUuTKBJd.js +0 -0
  201. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/houston-DnULxvSX.js +0 -0
  202. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/html-derivative-DlHx6ybY.js +0 -0
  203. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/html-pp8916En.js +0 -0
  204. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/http-jrhK8wxY.js +0 -0
  205. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/hurl-irOxFIW8.js +0 -0
  206. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/hxml-Bvhsp5Yf.js +0 -0
  207. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/hy-DFXneXwc.js +0 -0
  208. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/imba-DGztddWO.js +0 -0
  209. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/index-Bi2yKki-.css +0 -0
  210. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/ini-BEwlwnbL.js +0 -0
  211. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/java-CylS5w8V.js +0 -0
  212. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/javascript-wDzz0qaB.js +0 -0
  213. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/jinja-f2NsQr07.js +0 -0
  214. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/jison-wvAkD_A8.js +0 -0
  215. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/json-Cp-IABpG.js +0 -0
  216. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/json5-C9tS-k6U.js +0 -0
  217. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/jsonc-Des-eS-w.js +0 -0
  218. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/jsonl-DcaNXYhu.js +0 -0
  219. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/jsonnet-DFQXde-d.js +0 -0
  220. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/jssm-C2t-YnRu.js +0 -0
  221. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/jsx-g9-lgVsj.js +0 -0
  222. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/julia-CxzCAyBv.js +0 -0
  223. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/just-VxiPbLrw.js +0 -0
  224. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/kanagawa-dragon-CkXjmgJE.js +0 -0
  225. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/kanagawa-lotus-CfQXZHmo.js +0 -0
  226. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/kanagawa-wave-DWedfzmr.js +0 -0
  227. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/kdl-DV7GczEv.js +0 -0
  228. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/kotlin-BdnUsdx6.js +0 -0
  229. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/kusto-wEQ09or8.js +0 -0
  230. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/laserwave-DUszq2jm.js +0 -0
  231. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/latex-CWtU0Tv5.js +0 -0
  232. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/lean-BZvkOJ9d.js +0 -0
  233. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/less-B1dDrJ26.js +0 -0
  234. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/light-plus-B7mTdjB0.js +0 -0
  235. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/liquid-C0sCDyMI.js +0 -0
  236. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/llvm-DjAJT7YJ.js +0 -0
  237. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/log-2UxHyX5q.js +0 -0
  238. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/logo-BtOb2qkB.js +0 -0
  239. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/lua-BaeVxFsk.js +0 -0
  240. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/luau-C-HG3fhB.js +0 -0
  241. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/make-CHLpvVh8.js +0 -0
  242. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/markdown-Cvjx9yec.js +0 -0
  243. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/marko-DjSrsDqO.js +0 -0
  244. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/material-theme-D5KoaKCx.js +0 -0
  245. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/material-theme-darker-BfHTSMKl.js +0 -0
  246. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/material-theme-lighter-B0m2ddpp.js +0 -0
  247. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/material-theme-ocean-CyktbL80.js +0 -0
  248. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/material-theme-palenight-Csfq5Kiy.js +0 -0
  249. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/matlab-D7o27uSR.js +0 -0
  250. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/mdc-DTYItulj.js +0 -0
  251. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/mdx-Cmh6b_Ma.js +0 -0
  252. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/mermaid-mWjccvbQ.js +0 -0
  253. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/min-dark-CafNBF8u.js +0 -0
  254. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/min-light-CTRr51gU.js +0 -0
  255. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/mipsasm-CKIfxQSi.js +0 -0
  256. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/mojo-rZm6bMo-.js +0 -0
  257. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/monokai-D4h5O-jR.js +0 -0
  258. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/moonbit-_H4v1dQx.js +0 -0
  259. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/move-IF9eRakj.js +0 -0
  260. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/narrat-DRg8JJMk.js +0 -0
  261. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/nextflow-C-mBbutL.js +0 -0
  262. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/nextflow-groovy-vE_lwT2v.js +0 -0
  263. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/nginx-BpAMiNFr.js +0 -0
  264. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/night-owl-C39BiMTA.js +0 -0
  265. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/night-owl-light-CMTm3GFP.js +0 -0
  266. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/nim-BIad80T-.js +0 -0
  267. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/nix-CwoSXNpI.js +0 -0
  268. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/nord-Ddv68eIx.js +0 -0
  269. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/nushell-Cz2AlsmD.js +0 -0
  270. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/objective-c-DXmwc3jG.js +0 -0
  271. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/objective-cpp-CLxacb5B.js +0 -0
  272. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/ocaml-C0hk2d4L.js +0 -0
  273. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/odin-BBf5iR-q.js +0 -0
  274. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/one-dark-pro-DVMEJ2y_.js +0 -0
  275. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/one-light-C3Wv6jpd.js +0 -0
  276. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/openscad-C4EeE6gA.js +0 -0
  277. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/pascal-D93ZcfNL.js +0 -0
  278. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/perl-NvoQZIq0.js +0 -0
  279. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/php-R6g_5hLQ.js +0 -0
  280. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/pkl-u5AG7uiY.js +0 -0
  281. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/plastic-3e1v2bzS.js +0 -0
  282. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/plsql-ChMvpjG-.js +0 -0
  283. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/po-BTJTHyun.js +0 -0
  284. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/poimandres-CS3Unz2-.js +0 -0
  285. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/polar-C0HS_06l.js +0 -0
  286. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/postcss-CXtECtnM.js +0 -0
  287. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/powerquery-CEu0bR-o.js +0 -0
  288. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/powershell-Dpen1YoG.js +0 -0
  289. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/prisma-Dd19v3D-.js +0 -0
  290. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/prolog-CbFg5uaA.js +0 -0
  291. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/proto-C7zT0LnQ.js +0 -0
  292. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/pug-DKIMFp6K.js +0 -0
  293. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/puppet-BMWR74SV.js +0 -0
  294. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/purescript-CklMAg4u.js +0 -0
  295. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/python-B6aJPvgy.js +0 -0
  296. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/qml-3beO22l8.js +0 -0
  297. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/qmldir-C8lEn-DE.js +0 -0
  298. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/qss-IeuSbFQv.js +0 -0
  299. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/r-Dspwwk_N.js +0 -0
  300. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/racket-BqYA7rlc.js +0 -0
  301. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/raku-DXvB9xmW.js +0 -0
  302. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/razor-BDqjjVU7.js +0 -0
  303. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/red-bN70gL4F.js +0 -0
  304. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/reg-C-SQnVFl.js +0 -0
  305. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/regexp-CDVJQ6XC.js +0 -0
  306. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/rel-C3B-1QV4.js +0 -0
  307. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/riscv-BM1_JUlF.js +0 -0
  308. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/ron-D8l8udqQ.js +0 -0
  309. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/rose-pine-dawn-DHQR4-dF.js +0 -0
  310. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/rose-pine-moon-D4_iv3hh.js +0 -0
  311. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/rose-pine-qdsjHGoJ.js +0 -0
  312. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/rosmsg-BJDFO7_C.js +0 -0
  313. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/rst-CRjBmOyv.js +0 -0
  314. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/ruby-Wjq7vjNf.js +0 -0
  315. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/rust-B1yitclQ.js +0 -0
  316. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/sas-cz2c8ADy.js +0 -0
  317. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/sass-Cj5Yp3dK.js +0 -0
  318. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/scala-C151Ov-r.js +0 -0
  319. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/scheme-C98Dy4si.js +0 -0
  320. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/scss-D5BDwBP9.js +0 -0
  321. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/sdbl-DVxCFoDh.js +0 -0
  322. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/shaderlab-Dg9Lc6iA.js +0 -0
  323. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/shellscript-Yzrsuije.js +0 -0
  324. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/shellsession-BADoaaVG.js +0 -0
  325. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/slack-dark-BthQWCQV.js +0 -0
  326. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/slack-ochin-DqwNpetd.js +0 -0
  327. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/smalltalk-BERRCDM3.js +0 -0
  328. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/snazzy-light-Bw305WKR.js +0 -0
  329. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/solarized-dark-DXbdFlpD.js +0 -0
  330. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/solarized-light-L9t79GZl.js +0 -0
  331. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/solidity-rGO070M0.js +0 -0
  332. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/soy-8wufbnw4.js +0 -0
  333. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/sparql-rVzFXLq3.js +0 -0
  334. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/splunk-BtCnVYZw.js +0 -0
  335. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/sql-BLtJtn59.js +0 -0
  336. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/ssh-config-_ykCGR6B.js +0 -0
  337. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/stata-BH5u7GGu.js +0 -0
  338. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/stylus-BEDo0Tqx.js +0 -0
  339. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/surrealql-Bq5Q-fJD.js +0 -0
  340. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/svelte-Cy7k_4gC.js +0 -0
  341. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/swift-D82vCrfD.js +0 -0
  342. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/synthwave-84-CbfX1IO0.js +0 -0
  343. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/system-verilog-CnnmHF94.js +0 -0
  344. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/systemd-4A_iFExJ.js +0 -0
  345. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/talonscript-CkByrt1z.js +0 -0
  346. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/tasl-QIJgUcNo.js +0 -0
  347. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/tcl-dwOrl1Do.js +0 -0
  348. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/templ-DhtptRzy.js +0 -0
  349. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/terraform-BETggiCN.js +0 -0
  350. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/tex-idrVyKtj.js +0 -0
  351. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/tokyo-night-hegEt444.js +0 -0
  352. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/toml-vGWfd6FD.js +0 -0
  353. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/ts-tags-DQrlYJgV.js +0 -0
  354. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/tsv-B_m7g4N7.js +0 -0
  355. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/tsx-COt5Ahok.js +0 -0
  356. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/turtle-BsS91CYL.js +0 -0
  357. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/twig-xg9kU7Mw.js +0 -0
  358. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/typescript-BPQ3VLAy.js +0 -0
  359. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/typespec-CAFt9gP4.js +0 -0
  360. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/typst-DHCkPAjA.js +0 -0
  361. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/v-BcVCzyr7.js +0 -0
  362. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/vala-CsfeWuGM.js +0 -0
  363. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/vb-D17OF-Vu.js +0 -0
  364. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/verilog-BQ8w6xss.js +0 -0
  365. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/vesper-DU1UobuO.js +0 -0
  366. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/vhdl-CeAyd5Ju.js +0 -0
  367. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/viml-CJc9bBzg.js +0 -0
  368. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/vitesse-black-Bkuqu6BP.js +0 -0
  369. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/vitesse-dark-D0r3Knsf.js +0 -0
  370. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/vitesse-light-CVO1_9PV.js +0 -0
  371. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/vue-D2xRrEX4.js +0 -0
  372. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/vue-html-AaS7Mt5G.js +0 -0
  373. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/vue-vine-BoDAl6tE.js +0 -0
  374. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/vyper-CDx5xZoG.js +0 -0
  375. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/wasm-CG6Dc4jp.js +0 -0
  376. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/wasm-MzD3tlZU.js +0 -0
  377. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/wenyan-BV7otONQ.js +0 -0
  378. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/wgsl-Dx-B1_4e.js +0 -0
  379. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/wikitext-BhOHFoWU.js +0 -0
  380. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/wit-5i3qLPDT.js +0 -0
  381. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/wolfram-lXgVvXCa.js +0 -0
  382. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/xml-sdJ4AIDG.js +0 -0
  383. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/xsl-CtQFsRM5.js +0 -0
  384. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/yaml-Buea-lGh.js +0 -0
  385. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/zenscript-DVFEvuxE.js +0 -0
  386. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/assets/zig-VOosw3JB.js +0 -0
  387. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/server/static/favicon_slashes.svg +0 -0
  388. {mycode_cli-0.4.2 → mycode_cli-0.5.0}/src/mycode_cli/tui/__init__.py +0 -0
  389. {mycode_cli-0.4.2 → mycode_cli-0.5.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.4.2
3
+ Version: 0.5.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.115.0
25
- Requires-Dist: mycode-sdk==0.4.2
25
+ Requires-Dist: mycode-sdk==0.5.0
26
26
  Requires-Dist: prompt-toolkit>=3.0.52
27
27
  Requires-Dist: pyyaml>=6.0.0
28
28
  Requires-Dist: rich>=14.2.0
@@ -36,13 +36,11 @@ Description-Content-Type: text/markdown
36
36
 
37
37
  A minimal coding agent. Inspired by [pi](https://github.com/badlogic/pi-mono).
38
38
 
39
- - Minimal core (under 5k lines of code).
40
- - Unified message format and robust cross-provider replay.
41
- - 4 built-in tools: `read`, `write`, `edit`, `bash`, expanded via skills.
42
- - Inspectable runtime, append-only JSONL sessions.
43
- - Native image and pdf input support.
39
+ - Minimal agent core (< 5k lines) with multiple provider support and robust message replay.
40
+ - 4 built-in tools only (`read`, `write`, `edit`, `bash`), expanded via skills.
44
41
  - Mobile-friendly web UI.
45
- - Lightweight `mycode-sdk` for embedding the agent in other Python apps.
42
+ - Native image and pdf input support.
43
+ - Lightweight Python SDK for building custom agents.
46
44
 
47
45
  ## Quick Start
48
46
 
@@ -52,7 +50,7 @@ Requires Python 3.12+. Install via [uv](https://docs.astral.sh/uv/):
52
50
  uv tool install mycode-cli
53
51
  ```
54
52
 
55
- Interactive terminal session:
53
+ Interactive terminal UI:
56
54
 
57
55
  ```bash
58
56
  mycode
@@ -61,7 +59,7 @@ mycode
61
59
  Web UI (default at `http://localhost:8000`):
62
60
 
63
61
  ```bash
64
- mycode web (--port <port> --hostname <hostname>)
62
+ mycode web [--port <port>] [--hostname <hostname>]
65
63
  ```
66
64
 
67
65
  Single message, non-interactive:
@@ -70,32 +68,33 @@ Single message, non-interactive:
70
68
  mycode run "explain how the session store works"
71
69
  ```
72
70
 
73
- API keys are discovered automatically from environment variables (see Providers & Models).
71
+ API keys are discovered automatically from environment variables (see Providers).
72
+
73
+ ## Providers
74
74
 
75
- ## Providers & Models
75
+ | Provider | id | Env var |
76
+ | ----------------- | ------------- | -------------------- |
77
+ | Anthropic | `anthropic` | `ANTHROPIC_API_KEY` |
78
+ | OpenAI | `openai` | `OPENAI_API_KEY` |
79
+ | Google Gemini | `google` | `GEMINI_API_KEY` |
80
+ | Moonshot | `moonshotai` | `MOONSHOT_API_KEY` |
81
+ | MiniMax | `minimax` | `MINIMAX_API_KEY` |
82
+ | DeepSeek | `deepseek` | `DEEPSEEK_API_KEY` |
83
+ | Z.AI | `zai` | `ZAI_API_KEY` |
84
+ | OpenRouter | `openrouter` | `OPENROUTER_API_KEY` |
85
+ | OpenAI-compatible | `openai_chat` | — |
76
86
 
77
- | Provider | id | Env var | Default models |
78
- | ----------------- | ------------- | -------------------- | -------------------------------------------------- |
79
- | Anthropic | `anthropic` | `ANTHROPIC_API_KEY` | `claude-sonnet-4-6`, `claude-opus-4-7` |
80
- | OpenAI | `openai` | `OPENAI_API_KEY` | `gpt-5.4`, `gpt-5.4-mini` |
81
- | Google Gemini | `google` | `GEMINI_API_KEY` | `gemini-3.1-pro-preview`, `gemini-3-flash-preview` |
82
- | Moonshot | `moonshotai` | `MOONSHOT_API_KEY` | `kimi-k2.5` |
83
- | MiniMax | `minimax` | `MINIMAX_API_KEY` | `MiniMax-M2.7`, `MiniMax-M2.7-highspeed` |
84
- | DeepSeek | `deepseek` | `DEEPSEEK_API_KEY` | `deepseek-chat`, `deepseek-reasoner` |
85
- | Z.AI | `zai` | `ZAI_API_KEY` | `glm-5.1`, `glm-5-turbo` |
86
- | OpenRouter | `openrouter` | `OPENROUTER_API_KEY` | `openrouter/auto` |
87
- | OpenAI-compatible | `openai_chat` | — | (configured per provider) |
87
+ Run `/model` in tui to see the available models.
88
88
 
89
89
  ## Configuration
90
90
 
91
- No config file is required. It is only used for:
91
+ A config file is optional API keys from the environment are usually sufficient.
92
92
 
93
- 1. Setting default provider, model, and other options
94
- 2. Overriding built-in provider settings (e.g. changing the available model list)
95
- 3. Adding custom providers with any built-in provider type.
96
- 4. Customize model metadata for built-in and custom models.
93
+ Create `~/.mycode/config.json` (global) or `<workspace>/.mycode/config.json` (project, takes precedence) to:
97
94
 
98
- Config is loaded from `~/.mycode/config.json` (global) and `<workspace>/.mycode/config.json` (project-specific, takes precedence).
95
+ - set a default provider, model, and reasoning effort
96
+ - expose additional models on an existing provider (e.g. OpenRouter's catalog)
97
+ - register a custom endpoint, such as a private or regional deployment
99
98
 
100
99
  ```json
101
100
  {
@@ -133,12 +132,12 @@ Config is loaded from `~/.mycode/config.json` (global) and `<workspace>/.mycode/
133
132
  }
134
133
  ```
135
134
 
136
- - Built-in provider ids can be overridden by key without specifying `type`. Custom providers must set `type`.
135
+ - To override a built-in provider, reuse its id as the key no `type` needed. Custom providers must declare a `type` — one of the built-in protocols.
137
136
  - `reasoning_effort` controls extended thinking for supported models: `auto` (default) · `none` · `low` · `medium` · `high` · `xhigh`.
138
137
  - API keys in config accept `${ENV_VAR}` references.
139
- - Model metadata is sourced from models.dev and bundled no manual config needed for built-in models.
138
+ - Model metadata is bundled from [models.dev](https://models.dev) `{}` is enough for most models. Provide explicit fields only for models not listed there.
140
139
 
141
- > Built-in Moonshot, MiniMax, and Z.AI defaults use international endpoints. Override `base_url` in config for China endpoints.
140
+ > Built-in Moonshot, MiniMax, and Z.AI providers default to international endpoints. Override `base_url` for China endpoints.
142
141
 
143
142
  ## CLI Reference
144
143
 
@@ -152,12 +151,12 @@ mycode web --dev API only, no static files
152
151
  mycode session list list saved sessions
153
152
  ```
154
153
 
155
- Interactive slash commands: `/new` `/resume` `/provider` `/model` `/effort` `/clear` `/q`
154
+ Interactive slash commands: `/new` `/resume` `/rewind` `/provider` `/model` `/effort` `/clear` `/q`
156
155
 
157
156
  ## Development
158
157
 
159
158
  ```bash
160
- git clone <repo> && cd mycode
159
+ git clone https://github.com/legibet/mycode.git && cd mycode
161
160
  uv sync --dev
162
161
  uv run mycode
163
162
  ```
@@ -169,6 +168,14 @@ uv run mycode web --dev
169
168
  pnpm --dir web install && pnpm --dir web dev
170
169
  ```
171
170
 
171
+ Or start both together:
172
+
173
+ ```bash
174
+ just dev
175
+ ```
176
+
177
+ Other useful shortcuts: `just check` · `just test` · `just fmt`
178
+
172
179
  Build distributable artifacts:
173
180
 
174
181
  ```bash
@@ -178,6 +185,8 @@ uv build --package mycode-cli
178
185
 
179
186
  ## mycode-sdk
180
187
 
188
+ Agent core as a lightweight Python SDK for building agents. Install via: `uv add mycode-sdk`
189
+
181
190
  ```python
182
191
  import asyncio
183
192
  from mycode import Agent, bash_tool, read_tool
@@ -197,7 +206,7 @@ async def main() -> None:
197
206
  asyncio.run(main())
198
207
  ```
199
208
 
200
- See `mycode/README.md` for details.
209
+ See [mycode/README.md](mycode/README.md) for details.
201
210
 
202
211
  ## License
203
212
 
@@ -4,13 +4,11 @@
4
4
 
5
5
  A minimal coding agent. Inspired by [pi](https://github.com/badlogic/pi-mono).
6
6
 
7
- - Minimal core (under 5k lines of code).
8
- - Unified message format and robust cross-provider replay.
9
- - 4 built-in tools: `read`, `write`, `edit`, `bash`, expanded via skills.
10
- - Inspectable runtime, append-only JSONL sessions.
11
- - Native image and pdf input support.
7
+ - Minimal agent core (< 5k lines) with multiple provider support and robust message replay.
8
+ - 4 built-in tools only (`read`, `write`, `edit`, `bash`), expanded via skills.
12
9
  - Mobile-friendly web UI.
13
- - Lightweight `mycode-sdk` for embedding the agent in other Python apps.
10
+ - Native image and pdf input support.
11
+ - Lightweight Python SDK for building custom agents.
14
12
 
15
13
  ## Quick Start
16
14
 
@@ -20,7 +18,7 @@ Requires Python 3.12+. Install via [uv](https://docs.astral.sh/uv/):
20
18
  uv tool install mycode-cli
21
19
  ```
22
20
 
23
- Interactive terminal session:
21
+ Interactive terminal UI:
24
22
 
25
23
  ```bash
26
24
  mycode
@@ -29,7 +27,7 @@ mycode
29
27
  Web UI (default at `http://localhost:8000`):
30
28
 
31
29
  ```bash
32
- mycode web (--port <port> --hostname <hostname>)
30
+ mycode web [--port <port>] [--hostname <hostname>]
33
31
  ```
34
32
 
35
33
  Single message, non-interactive:
@@ -38,32 +36,33 @@ Single message, non-interactive:
38
36
  mycode run "explain how the session store works"
39
37
  ```
40
38
 
41
- API keys are discovered automatically from environment variables (see Providers & Models).
39
+ API keys are discovered automatically from environment variables (see Providers).
40
+
41
+ ## Providers
42
42
 
43
- ## Providers & Models
43
+ | Provider | id | Env var |
44
+ | ----------------- | ------------- | -------------------- |
45
+ | Anthropic | `anthropic` | `ANTHROPIC_API_KEY` |
46
+ | OpenAI | `openai` | `OPENAI_API_KEY` |
47
+ | Google Gemini | `google` | `GEMINI_API_KEY` |
48
+ | Moonshot | `moonshotai` | `MOONSHOT_API_KEY` |
49
+ | MiniMax | `minimax` | `MINIMAX_API_KEY` |
50
+ | DeepSeek | `deepseek` | `DEEPSEEK_API_KEY` |
51
+ | Z.AI | `zai` | `ZAI_API_KEY` |
52
+ | OpenRouter | `openrouter` | `OPENROUTER_API_KEY` |
53
+ | OpenAI-compatible | `openai_chat` | — |
44
54
 
45
- | Provider | id | Env var | Default models |
46
- | ----------------- | ------------- | -------------------- | -------------------------------------------------- |
47
- | Anthropic | `anthropic` | `ANTHROPIC_API_KEY` | `claude-sonnet-4-6`, `claude-opus-4-7` |
48
- | OpenAI | `openai` | `OPENAI_API_KEY` | `gpt-5.4`, `gpt-5.4-mini` |
49
- | Google Gemini | `google` | `GEMINI_API_KEY` | `gemini-3.1-pro-preview`, `gemini-3-flash-preview` |
50
- | Moonshot | `moonshotai` | `MOONSHOT_API_KEY` | `kimi-k2.5` |
51
- | MiniMax | `minimax` | `MINIMAX_API_KEY` | `MiniMax-M2.7`, `MiniMax-M2.7-highspeed` |
52
- | DeepSeek | `deepseek` | `DEEPSEEK_API_KEY` | `deepseek-chat`, `deepseek-reasoner` |
53
- | Z.AI | `zai` | `ZAI_API_KEY` | `glm-5.1`, `glm-5-turbo` |
54
- | OpenRouter | `openrouter` | `OPENROUTER_API_KEY` | `openrouter/auto` |
55
- | OpenAI-compatible | `openai_chat` | — | (configured per provider) |
55
+ Run `/model` in tui to see the available models.
56
56
 
57
57
  ## Configuration
58
58
 
59
- No config file is required. It is only used for:
59
+ A config file is optional API keys from the environment are usually sufficient.
60
60
 
61
- 1. Setting default provider, model, and other options
62
- 2. Overriding built-in provider settings (e.g. changing the available model list)
63
- 3. Adding custom providers with any built-in provider type.
64
- 4. Customize model metadata for built-in and custom models.
61
+ Create `~/.mycode/config.json` (global) or `<workspace>/.mycode/config.json` (project, takes precedence) to:
65
62
 
66
- Config is loaded from `~/.mycode/config.json` (global) and `<workspace>/.mycode/config.json` (project-specific, takes precedence).
63
+ - set a default provider, model, and reasoning effort
64
+ - expose additional models on an existing provider (e.g. OpenRouter's catalog)
65
+ - register a custom endpoint, such as a private or regional deployment
67
66
 
68
67
  ```json
69
68
  {
@@ -101,12 +100,12 @@ Config is loaded from `~/.mycode/config.json` (global) and `<workspace>/.mycode/
101
100
  }
102
101
  ```
103
102
 
104
- - Built-in provider ids can be overridden by key without specifying `type`. Custom providers must set `type`.
103
+ - To override a built-in provider, reuse its id as the key no `type` needed. Custom providers must declare a `type` — one of the built-in protocols.
105
104
  - `reasoning_effort` controls extended thinking for supported models: `auto` (default) · `none` · `low` · `medium` · `high` · `xhigh`.
106
105
  - API keys in config accept `${ENV_VAR}` references.
107
- - Model metadata is sourced from models.dev and bundled no manual config needed for built-in models.
106
+ - Model metadata is bundled from [models.dev](https://models.dev) `{}` is enough for most models. Provide explicit fields only for models not listed there.
108
107
 
109
- > Built-in Moonshot, MiniMax, and Z.AI defaults use international endpoints. Override `base_url` in config for China endpoints.
108
+ > Built-in Moonshot, MiniMax, and Z.AI providers default to international endpoints. Override `base_url` for China endpoints.
110
109
 
111
110
  ## CLI Reference
112
111
 
@@ -120,12 +119,12 @@ mycode web --dev API only, no static files
120
119
  mycode session list list saved sessions
121
120
  ```
122
121
 
123
- Interactive slash commands: `/new` `/resume` `/provider` `/model` `/effort` `/clear` `/q`
122
+ Interactive slash commands: `/new` `/resume` `/rewind` `/provider` `/model` `/effort` `/clear` `/q`
124
123
 
125
124
  ## Development
126
125
 
127
126
  ```bash
128
- git clone <repo> && cd mycode
127
+ git clone https://github.com/legibet/mycode.git && cd mycode
129
128
  uv sync --dev
130
129
  uv run mycode
131
130
  ```
@@ -137,6 +136,14 @@ uv run mycode web --dev
137
136
  pnpm --dir web install && pnpm --dir web dev
138
137
  ```
139
138
 
139
+ Or start both together:
140
+
141
+ ```bash
142
+ just dev
143
+ ```
144
+
145
+ Other useful shortcuts: `just check` · `just test` · `just fmt`
146
+
140
147
  Build distributable artifacts:
141
148
 
142
149
  ```bash
@@ -146,6 +153,8 @@ uv build --package mycode-cli
146
153
 
147
154
  ## mycode-sdk
148
155
 
156
+ Agent core as a lightweight Python SDK for building agents. Install via: `uv add mycode-sdk`
157
+
149
158
  ```python
150
159
  import asyncio
151
160
  from mycode import Agent, bash_tool, read_tool
@@ -165,7 +174,7 @@ async def main() -> None:
165
174
  asyncio.run(main())
166
175
  ```
167
176
 
168
- See `mycode/README.md` for details.
177
+ See [mycode/README.md](mycode/README.md) for details.
169
178
 
170
179
  ## License
171
180
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "mycode-cli"
7
- version = "0.4.2"
7
+ version = "0.5.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.4.2",
29
+ "mycode-sdk==0.5.0",
30
30
  "fastapi>=0.115.0",
31
31
  "uvicorn[standard]>=0.32.0",
32
32
  "rich>=14.2.0",
@@ -1,11 +1,4 @@
1
- """Application configuration and provider resolution.
2
-
3
- This module keeps runtime config loading intentionally simple:
4
-
5
- - read the global config, then the workspace config
6
- - merge provider entries by name
7
- - resolve one runnable provider from explicit args, config defaults, or env
8
- """
1
+ """Config loading, provider resolution, and CLI-owned filesystem paths."""
9
2
 
10
3
  from __future__ import annotations
11
4
 
@@ -27,9 +20,24 @@ from mycode.providers import (
27
20
  provider_default_models,
28
21
  provider_env_api_key_names,
29
22
  )
30
- from mycode.session import resolve_mycode_home
31
23
  from mycode.utils import as_bool, as_int
32
24
 
25
+ _DEFAULT_MYCODE_HOME = "~/.mycode"
26
+
27
+
28
+ def resolve_mycode_home() -> Path:
29
+ """Resolve the mycode home directory (``$MYCODE_HOME`` or ``~/.mycode``)."""
30
+
31
+ raw = os.environ.get("MYCODE_HOME", _DEFAULT_MYCODE_HOME)
32
+ return Path(raw).expanduser().resolve(strict=False)
33
+
34
+
35
+ def resolve_sessions_dir() -> Path:
36
+ """Resolve the directory used for persisted sessions."""
37
+
38
+ return resolve_mycode_home() / "sessions"
39
+
40
+
33
41
  _API_KEY_ENV_REF_RE = re.compile(r"^\$\{([A-Za-z_][A-Za-z0-9_]*)\}$")
34
42
  # Full set of user-facing choices. "auto" means "do not send an explicit effort
35
43
  # to the provider" and is represented internally as `None` after normalization.
@@ -13,7 +13,7 @@ import typer
13
13
  from mycode.agent import Agent
14
14
  from mycode.messages import ConversationMessage
15
15
  from mycode.session import SessionStore
16
- from mycode_cli.config import ResolvedProvider, Settings, get_settings, resolve_provider
16
+ from mycode_cli.config import ResolvedProvider, Settings, get_settings, resolve_provider, resolve_sessions_dir
17
17
 
18
18
  from .runtime import ResolvedSession, build_agent, resolve_session
19
19
  from .tui.chat import TerminalChat
@@ -82,7 +82,7 @@ def _bootstrap(
82
82
  raise typer.BadParameter("--session and --continue are mutually exclusive")
83
83
 
84
84
  cwd = os.path.abspath(os.getcwd())
85
- store = SessionStore()
85
+ store = SessionStore(data_dir=resolve_sessions_dir())
86
86
  view = TerminalView()
87
87
  settings = get_settings(cwd)
88
88
 
@@ -91,10 +91,7 @@ def _bootstrap(
91
91
  resolved_session = asyncio.run(
92
92
  resolve_session(
93
93
  store=store,
94
- provider=resolved_provider.provider,
95
94
  cwd=cwd,
96
- model=resolved_provider.model,
97
- api_base=resolved_provider.api_base,
98
95
  requested_session_id=session,
99
96
  continue_last=continue_last,
100
97
  )
@@ -109,7 +106,6 @@ def _bootstrap(
109
106
  settings=settings,
110
107
  resolved_provider=resolved_provider,
111
108
  session_id=resolved_session.session_id,
112
- messages=resolved_session.messages,
113
109
  max_turns=max_turns,
114
110
  )
115
111
 
@@ -222,7 +218,7 @@ def session_list(
222
218
  """List saved sessions."""
223
219
 
224
220
  cwd = os.path.abspath(os.getcwd())
225
- store = SessionStore()
221
+ store = SessionStore(data_dir=resolve_sessions_dir())
226
222
  view = TerminalView()
227
223
 
228
224
  sessions = asyncio.run(store.list_sessions(cwd=None if all_workspaces else cwd))
@@ -4,6 +4,7 @@ from __future__ import annotations
4
4
 
5
5
  from dataclasses import dataclass
6
6
  from typing import Any
7
+ from uuid import uuid4
7
8
 
8
9
  from mycode.agent import Agent
9
10
  from mycode.providers import (
@@ -48,22 +49,24 @@ def build_agent(
48
49
  settings: Settings,
49
50
  resolved_provider: ResolvedProvider,
50
51
  session_id: str,
51
- messages: list[dict[str, Any]] | None = None,
52
52
  max_turns: int | None = None,
53
53
  reasoning_effort: str | None = None,
54
54
  ) -> Agent:
55
- """Build an agent from the resolved provider, honoring model config overrides."""
55
+ """Build an agent from the resolved provider, honoring model config overrides.
56
56
 
57
- model_config = _model_config_for(settings, resolved_provider)
57
+ History is auto-loaded from disk when ``session_id`` already exists under
58
+ the store; callers never pass messages explicitly.
59
+ """
60
+
61
+ model_config = model_config_for(settings, resolved_provider)
58
62
  return Agent(
59
63
  model=resolved_provider.model,
60
64
  provider=resolved_provider.provider,
61
65
  cwd=cwd,
62
- session_dir=store.session_dir(session_id),
66
+ session_dir=store.data_dir,
63
67
  session_id=session_id,
64
68
  api_key=resolved_provider.api_key,
65
69
  api_base=resolved_provider.api_base,
66
- messages=messages,
67
70
  reasoning_effort=reasoning_effort if reasoning_effort is not None else resolved_provider.reasoning_effort,
68
71
  max_tokens=model_config.max_output_tokens if model_config else None,
69
72
  context_window=model_config.context_window if model_config else None,
@@ -77,7 +80,7 @@ def build_agent(
77
80
  )
78
81
 
79
82
 
80
- def _model_config_for(settings: Settings, resolved: ResolvedProvider) -> ModelConfig | None:
83
+ def model_config_for(settings: Settings, resolved: ResolvedProvider) -> ModelConfig | None:
81
84
  """Return the user-configured overrides for the resolved provider+model, if any."""
82
85
 
83
86
  provider_config = settings.providers.get(resolved.provider_name or "")
@@ -86,18 +89,20 @@ def _model_config_for(settings: Settings, resolved: ResolvedProvider) -> ModelCo
86
89
  return provider_config.models.get(resolved.model)
87
90
 
88
91
 
89
- def clone_agent(agent: Agent, *, store: SessionStore, session_id: str, messages: list[dict[str, Any]]) -> Agent:
90
- """Keep the current runtime config while swapping session state."""
92
+ def clone_agent(agent: Agent, *, store: SessionStore, session_id: str) -> Agent:
93
+ """Keep the current runtime config while swapping session state.
94
+
95
+ History auto-loads from disk when ``session_id`` exists under the store.
96
+ """
91
97
 
92
98
  return Agent(
93
99
  model=agent.model,
94
100
  provider=agent.provider,
95
101
  cwd=agent.cwd,
96
- session_dir=store.session_dir(session_id),
102
+ session_dir=store.data_dir,
97
103
  session_id=session_id,
98
104
  api_key=agent.api_key,
99
105
  api_base=agent.api_base,
100
- messages=messages,
101
106
  max_turns=agent.max_turns,
102
107
  max_tokens=agent.max_tokens,
103
108
  context_window=agent.context_window,
@@ -171,10 +176,7 @@ def supports_reasoning_effort(agent: Agent) -> bool:
171
176
  async def resolve_session(
172
177
  *,
173
178
  store: SessionStore,
174
- provider: str,
175
179
  cwd: str,
176
- model: str,
177
- api_base: str | None,
178
180
  requested_session_id: str | None,
179
181
  continue_last: bool,
180
182
  ) -> ResolvedSession:
@@ -205,9 +207,9 @@ async def resolve_session(
205
207
  "resumed",
206
208
  )
207
209
 
208
- data = store.draft_session(None, provider=provider, model=model, cwd=cwd, api_base=api_base)
209
- session = data.get("session") or {}
210
- return ResolvedSession(str(session.get("id") or ""), session, [], "new")
210
+ # New sessions: the id is allocated here; the on-disk session is created
211
+ # lazily by Agent.achat on the first persist.
212
+ return ResolvedSession(uuid4().hex, {}, [], "new")
211
213
 
212
214
 
213
215
  def apply_resolved_provider(agent: Agent, resolved: ResolvedProvider, settings: Settings) -> bool:
@@ -233,7 +235,7 @@ def apply_resolved_provider(agent: Agent, resolved: ResolvedProvider, settings:
233
235
  agent.reasoning_effort = resolved.reasoning_effort
234
236
 
235
237
  if runtime_changed:
236
- model_config = _model_config_for(settings, resolved)
238
+ model_config = model_config_for(settings, resolved)
237
239
  agent.refresh_capabilities(
238
240
  max_tokens=model_config.max_output_tokens if model_config else None,
239
241
  context_window=model_config.context_window if model_config else None,
@@ -8,6 +8,7 @@ from typing import Annotated
8
8
  from fastapi import Depends
9
9
 
10
10
  from mycode.session import SessionStore
11
+ from mycode_cli.config import resolve_sessions_dir
11
12
  from mycode_cli.server.run_manager import RunManager
12
13
 
13
14
 
@@ -15,7 +16,7 @@ from mycode_cli.server.run_manager import RunManager
15
16
  def get_store() -> SessionStore:
16
17
  """Return the shared session store for server requests."""
17
18
 
18
- return SessionStore()
19
+ return SessionStore(data_dir=resolve_sessions_dir())
19
20
 
20
21
 
21
22
  @lru_cache
@@ -17,7 +17,6 @@ from fastapi.responses import StreamingResponse
17
17
  from mycode.messages import (
18
18
  build_message,
19
19
  document_block,
20
- flatten_message_text,
21
20
  image_block,
22
21
  text_block,
23
22
  )
@@ -31,7 +30,7 @@ from mycode_cli.config import (
31
30
  resolve_provider,
32
31
  resolve_provider_choices,
33
32
  )
34
- from mycode_cli.runtime import build_agent
33
+ from mycode_cli.runtime import build_agent, model_config_for
35
34
  from mycode_cli.server.deps import RunManagerDep, StoreDep
36
35
  from mycode_cli.server.run_manager import ActiveRunError, RunState
37
36
  from mycode_cli.server.schemas import ChatRequest, StreamEvent
@@ -165,19 +164,19 @@ async def chat(chat: ChatRequest, store: StoreDep, runs: RunManagerDep):
165
164
 
166
165
  data = await store.load_session(session_id)
167
166
  session = (data or {}).get("session")
168
- messages = (data or {}).get("messages") or []
167
+ existing_messages = (data or {}).get("messages") or []
169
168
 
170
169
  if not session and chat.rewind_to is not None:
171
170
  raise HTTPException(status_code=400, detail="rewind_to requires an existing session")
172
171
 
173
172
  if chat.rewind_to is not None:
174
- if not (0 <= chat.rewind_to < len(messages)):
173
+ if not (0 <= chat.rewind_to < len(existing_messages)):
175
174
  raise HTTPException(
176
175
  status_code=400,
177
- detail=f"rewind_to must reference a visible message index between 0 and {len(messages) - 1}",
176
+ detail=f"rewind_to must reference a visible message index between 0 and {len(existing_messages) - 1}",
178
177
  )
179
178
 
180
- target = messages[chat.rewind_to]
179
+ target = existing_messages[chat.rewind_to]
181
180
  raw_blocks = target.get("content")
182
181
  blocks = raw_blocks if isinstance(raw_blocks, list) else []
183
182
  has_user_content = any(
@@ -194,7 +193,29 @@ async def chat(chat: ChatRequest, store: StoreDep, runs: RunManagerDep):
194
193
  detail="rewind_to must reference a real user message",
195
194
  )
196
195
 
197
- messages = messages[: chat.rewind_to]
196
+ # Capability check before any disk mutation — a failed check must not
197
+ # leave an empty session on disk or land a premature rewind marker.
198
+ model_config = model_config_for(settings, resolved)
199
+ caps = resolve_model_metadata(
200
+ provider=resolved.provider,
201
+ model=resolved.model,
202
+ supports_image_input=model_config.supports_image_input if model_config else None,
203
+ supports_pdf_input=model_config.supports_pdf_input if model_config else None,
204
+ )
205
+ content_types = {b.get("type") for b in (user_message.get("content") or []) if isinstance(b, dict)}
206
+ if "image" in content_types and not caps.supports_image_input:
207
+ raise HTTPException(status_code=400, detail="current model does not support image input")
208
+ if "document" in content_types and not caps.supports_pdf_input:
209
+ raise HTTPException(status_code=400, detail="current model does not support PDF input")
210
+
211
+ # All validation passed. Land the rewind marker (if any) and create the
212
+ # session so the response payload has a meta dict and the agent's
213
+ # auto-resume sees the correct on-disk state.
214
+ if chat.rewind_to is not None:
215
+ await store.append_rewind(session_id, chat.rewind_to)
216
+ if not session:
217
+ created = await store.create_session(session_id, cwd=cwd)
218
+ session = created["session"]
198
219
 
199
220
  agent = build_agent(
200
221
  store=store,
@@ -202,37 +223,14 @@ async def chat(chat: ChatRequest, store: StoreDep, runs: RunManagerDep):
202
223
  settings=settings,
203
224
  resolved_provider=resolved,
204
225
  session_id=session_id,
205
- messages=messages,
206
226
  reasoning_effort=reasoning_effort,
207
227
  )
208
228
 
209
- content_types = {b.get("type") for b in (user_message.get("content") or []) if isinstance(b, dict)}
210
- if "image" in content_types and not agent.supports_image_input:
211
- raise HTTPException(status_code=400, detail="current model does not support image input")
212
- if "document" in content_types and not agent.supports_pdf_input:
213
- raise HTTPException(status_code=400, detail="current model does not support PDF input")
214
-
215
- if not session:
216
- title = flatten_message_text(user_message).replace("\n", " ").strip()[:48] or "New chat"
217
- created = await store.create_session(
218
- title,
219
- session_id=session_id,
220
- provider=resolved.provider,
221
- model=resolved.model,
222
- cwd=cwd,
223
- api_base=resolved.api_base,
224
- )
225
- session = created["session"]
226
-
227
- if chat.rewind_to is not None:
228
- # Land the rewind marker before the agent appends the next user turn.
229
- await store.append_rewind(session_id, chat.rewind_to)
230
-
231
229
  try:
232
230
  run = await runs.start_run(
233
231
  session_id=session_id,
234
232
  user_message=user_message,
235
- base_messages=messages,
233
+ base_messages=agent.messages,
236
234
  agent=agent,
237
235
  )
238
236
  except ActiveRunError as exc: