mycode-cli 0.18.0__tar.gz → 0.19.1__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 (414) hide show
  1. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/PKG-INFO +15 -13
  2. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/README.md +14 -12
  3. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/pyproject.toml +2 -2
  4. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/runtime.py +6 -11
  5. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/routers/chat.py +162 -26
  6. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/routers/sessions.py +28 -14
  7. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/run_manager.py +161 -40
  8. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/schemas.py +26 -14
  9. mycode_cli-0.19.1/src/mycode_cli/server/static/assets/index-CrhooK9g.js +395 -0
  10. mycode_cli-0.19.1/src/mycode_cli/server/static/assets/index-D9h4EXyc.css +1 -0
  11. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/index.html +2 -2
  12. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/sessions.py +82 -33
  13. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/system_prompt.py +11 -1
  14. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/tools.py +110 -48
  15. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/tui/chat.py +143 -41
  16. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/tui/render.py +29 -8
  17. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/tui/terminal.py +63 -14
  18. mycode_cli-0.18.0/src/mycode_cli/server/static/assets/index-C7MhyuLY.js +0 -389
  19. mycode_cli-0.18.0/src/mycode_cli/server/static/assets/index-D71Nwfrp.css +0 -1
  20. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/.gitignore +0 -0
  21. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/LICENSE +0 -0
  22. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/hatch_build.py +0 -0
  23. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/__init__.py +0 -0
  24. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/config.py +0 -0
  25. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/main.py +0 -0
  26. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/permissions.py +0 -0
  27. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/__init__.py +0 -0
  28. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/app.py +0 -0
  29. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/deps.py +0 -0
  30. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/routers/__init__.py +0 -0
  31. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/routers/settings.py +0 -0
  32. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/routers/workspaces.py +0 -0
  33. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/EditDiff-DOjxGJl-.js +0 -0
  34. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  35. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  36. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  37. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  38. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  39. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  40. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  41. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  42. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  43. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  44. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  45. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  46. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  47. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  48. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  49. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  50. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  51. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  52. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  53. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  54. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  55. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  56. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  57. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  58. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  59. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  60. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  61. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  62. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  63. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  64. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  65. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  66. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  67. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  68. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  69. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  70. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  71. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  72. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  73. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  74. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  75. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  76. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  77. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  78. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  79. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  80. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  81. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  82. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  83. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  84. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  85. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  86. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  87. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  88. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  89. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  90. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  91. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  92. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  93. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/ThemeProvider-zTKbpxjH.js +0 -0
  94. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/abap-CLvhMVsD.js +0 -0
  95. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/actionscript-3--17pq3dv.js +0 -0
  96. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/ada-C5qYipkI.js +0 -0
  97. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/andromeeda-vGVdxbeo.js +0 -0
  98. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/angular-html-BVBpGdXr.js +0 -0
  99. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/angular-ts-BfdufMKP.js +0 -0
  100. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/apache-U0d_L8uA.js +0 -0
  101. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/apex-VAyPSnFM.js +0 -0
  102. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/apl-DWBSSoBH.js +0 -0
  103. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/applescript-CCn79oCD.js +0 -0
  104. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/ara-4CJ0cIlV.js +0 -0
  105. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/asciidoc-DE70LPWp.js +0 -0
  106. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/asm-Cmm7eHzH.js +0 -0
  107. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/astro-3LtMP0Sq.js +0 -0
  108. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/aurora-x-CDeNXAV0.js +0 -0
  109. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/awk-BWXHIvNe.js +0 -0
  110. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/ayu-dark-DluEY0Gj.js +0 -0
  111. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/ayu-light-C3h-C4tm.js +0 -0
  112. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/ayu-mirage-Bqwy1Gya.js +0 -0
  113. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/ballerina-B7ZEbQpA.js +0 -0
  114. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/bat-Bo4NYOV-.js +0 -0
  115. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/beancount-D-usSTwE.js +0 -0
  116. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/berry-DKpUyyne.js +0 -0
  117. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/bibtex-Ci_nEsc7.js +0 -0
  118. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/bicep-CUHmPFLl.js +0 -0
  119. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/bird2-C6vDhewU.js +0 -0
  120. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/blade-llJRbbtR.js +0 -0
  121. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/bsl-BkkzgIyY.js +0 -0
  122. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/c-Wt1voDr2.js +0 -0
  123. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/c3-BFHwR3_K.js +0 -0
  124. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/cadence-CQ2zXKGN.js +0 -0
  125. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/cairo-DLTphjLi.js +0 -0
  126. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/catppuccin-frappe-3VR1Za6u.js +0 -0
  127. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/catppuccin-latte-DwIHMF0Q.js +0 -0
  128. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/catppuccin-macchiato-DYnBP6_5.js +0 -0
  129. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/catppuccin-mocha-DYhrFGRu.js +0 -0
  130. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/clarity-SemFz856.js +0 -0
  131. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/clojure-DqKBuwfJ.js +0 -0
  132. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/cmake-Bj61d0ZC.js +0 -0
  133. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/cobol-x_HIyl2P.js +0 -0
  134. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/codeowners-C8r90Shi.js +0 -0
  135. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/codeql-oeQT6MSM.js +0 -0
  136. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/coffee-CThvmt4R.js +0 -0
  137. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/common-lisp-Cv5bFMCO.js +0 -0
  138. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/coq-BrsZFFmf.js +0 -0
  139. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/cpp-NtAeskI3.js +0 -0
  140. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/crystal-DNu_sX0G.js +0 -0
  141. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/csharp-oqKa8noW.js +0 -0
  142. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/css-DJp_X0uY.js +0 -0
  143. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/csv-Dx-8-gkx.js +0 -0
  144. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/cue-CE9AQfxI.js +0 -0
  145. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/cypher-ClKdZ_lG.js +0 -0
  146. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/d-qD-0Kul2.js +0 -0
  147. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/dark-plus-Cs2F2srj.js +0 -0
  148. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/dart-CnvKMtbv.js +0 -0
  149. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/dax-BkyTk9wS.js +0 -0
  150. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/desktop-Dlh5hvp9.js +0 -0
  151. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/diff-woXpYk--.js +0 -0
  152. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/docker-IyjqRm3v.js +0 -0
  153. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/dotenv-_5a1GRtc.js +0 -0
  154. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/dracula-BHWKrbxM.js +0 -0
  155. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/dracula-soft-5eyTD99u.js +0 -0
  156. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/dream-maker-DW3nJb8Q.js +0 -0
  157. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/edge-ozw5tpLl.js +0 -0
  158. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/elixir-VhA6FeZt.js +0 -0
  159. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/elm-dREJmIFz.js +0 -0
  160. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/emacs-lisp-B4R74twV.js +0 -0
  161. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/engine-compile-Cbfz3NVV.js +0 -0
  162. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/erb-CIg6G69l.js +0 -0
  163. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/erlang-Cphh6RMH.js +0 -0
  164. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/everforest-dark-sB-x3p7T.js +0 -0
  165. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/everforest-light-Df2xbC6M.js +0 -0
  166. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/fennel-DQxkIbk2.js +0 -0
  167. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/fish-BJitypiv.js +0 -0
  168. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/fluent-C03EYrpw.js +0 -0
  169. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/fortran-fixed-form-DEKoE2YW.js +0 -0
  170. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/fortran-free-form-CYNrtFtB.js +0 -0
  171. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/fsharp-D13ZGOAj.js +0 -0
  172. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/gdresource-C0sCabJj.js +0 -0
  173. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/gdscript-Cp2uCuqX.js +0 -0
  174. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/gdshader-CBce3t8t.js +0 -0
  175. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/genie-CV2tkWYe.js +0 -0
  176. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/gherkin-DExj1W_8.js +0 -0
  177. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/git-commit-BSykSTBG.js +0 -0
  178. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/git-rebase-B44mJPta.js +0 -0
  179. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/github-dark-C-LZuMrd.js +0 -0
  180. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/github-dark-default-DXG-b-1a.js +0 -0
  181. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/github-dark-dimmed-Bx1FflLF.js +0 -0
  182. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/github-dark-high-contrast-B_tTalzw.js +0 -0
  183. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/github-light-EUqPIrTm.js +0 -0
  184. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/github-light-default-BXViO-2h.js +0 -0
  185. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/github-light-high-contrast-B68TUdTA.js +0 -0
  186. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/gleam-CSRkHgEL.js +0 -0
  187. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/glimmer-js-vH_gHG0-.js +0 -0
  188. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/glimmer-ts--abOzSAQ.js +0 -0
  189. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/glsl-Dv5r7kPw.js +0 -0
  190. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/gn-ilITqXS6.js +0 -0
  191. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/gnuplot-7GGW24-e.js +0 -0
  192. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/go-rLFTqkRN.js +0 -0
  193. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/graphql-CB4jsw2E.js +0 -0
  194. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/groovy-CacY0gHj.js +0 -0
  195. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/gruvbox-dark-hard-C820rvS2.js +0 -0
  196. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/gruvbox-dark-medium-BPjhmG05.js +0 -0
  197. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/gruvbox-dark-soft-MrdJrrXF.js +0 -0
  198. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/gruvbox-light-hard-BC_s9l72.js +0 -0
  199. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/gruvbox-light-medium-BAWPOn9u.js +0 -0
  200. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/gruvbox-light-soft-BSMLrYjP.js +0 -0
  201. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/hack-DvEYX148.js +0 -0
  202. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/haml-zE6W3STP.js +0 -0
  203. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/handlebars-CzBR2SDs.js +0 -0
  204. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/haskell-D8IpX4py.js +0 -0
  205. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/haxe-OTjmBuCE.js +0 -0
  206. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/hcl-Dh228itO.js +0 -0
  207. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/highlighter-CZbuWYc3.js +0 -0
  208. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/hjson-CxZEssPk.js +0 -0
  209. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/hlsl-Cvrh5tZx.js +0 -0
  210. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/horizon-CE9ld1lL.js +0 -0
  211. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/horizon-bright-DSNQnXHK.js +0 -0
  212. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/houston-CsvMBhTu.js +0 -0
  213. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/html-C8UlPnhE.js +0 -0
  214. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/html-derivative-CY6NRz-J.js +0 -0
  215. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/http-Cyd7bS_S.js +0 -0
  216. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/hurl-CWPsiEpf.js +0 -0
  217. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/hxml-B0Qn7Nwc.js +0 -0
  218. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/hy-CZbG8q4J.js +0 -0
  219. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/imba-DsUTQ-LC.js +0 -0
  220. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/ini-B5eOa1yu.js +0 -0
  221. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/java-CGc3VwQr.js +0 -0
  222. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/javascript-CUt1pgmJ.js +0 -0
  223. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/jinja-CD-Z-FLd.js +0 -0
  224. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/jison-imPNup1l.js +0 -0
  225. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/json-Bg9ijW3F.js +0 -0
  226. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/json5-BR5RXkoi.js +0 -0
  227. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/jsonc-CYpm1nAK.js +0 -0
  228. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/jsonl-CmCQp5Yx.js +0 -0
  229. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/jsonnet-CJTPZ8u_.js +0 -0
  230. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/jssm-DXw9l8Rf.js +0 -0
  231. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/jsx-CY6oMTks.js +0 -0
  232. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/julia-Dc3O-irA.js +0 -0
  233. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/just-BhOq_Kbv.js +0 -0
  234. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/kanagawa-dragon-CXtmUGW6.js +0 -0
  235. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/kanagawa-lotus-BN08jTvb.js +0 -0
  236. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/kanagawa-wave-CTweb8Dz.js +0 -0
  237. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/kdl-CsD5j6eV.js +0 -0
  238. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/kotlin-DhhofPvG.js +0 -0
  239. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/kusto-C7mF5XQf.js +0 -0
  240. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/laserwave-C_8bwKvT.js +0 -0
  241. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/latex-Cu4Y1d5w.js +0 -0
  242. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/lean-CewbzKMR.js +0 -0
  243. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/less-DVTAwKKz.js +0 -0
  244. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/light-plus-DVQuIRkW.js +0 -0
  245. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/liquid-CvXMrjlQ.js +0 -0
  246. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/llvm-Cm23YOpf.js +0 -0
  247. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/log-BNLmms1o.js +0 -0
  248. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/logo-Cluzi2Zq.js +0 -0
  249. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/lua-BjLEUjKY.js +0 -0
  250. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/luau-FMPmPwt6.js +0 -0
  251. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/make-Dixweg8N.js +0 -0
  252. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/markdown-BYOwaDjH.js +0 -0
  253. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/marko-DvhNOisQ.js +0 -0
  254. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/material-theme-Bm3Qr25_.js +0 -0
  255. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/material-theme-darker-2IIEA8gg.js +0 -0
  256. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/material-theme-lighter-uhdI0v04.js +0 -0
  257. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/material-theme-ocean-CHQ94UKr.js +0 -0
  258. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/material-theme-palenight-B5W6OYN7.js +0 -0
  259. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/matlab-D7qyCx1q.js +0 -0
  260. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/mdc-Bm9TpL1X.js +0 -0
  261. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/mdx-DQZ5AkYe.js +0 -0
  262. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/mermaid-Bk4SNUv9.js +0 -0
  263. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/min-dark-BSWPekZh.js +0 -0
  264. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/min-light-DDpmG2fV.js +0 -0
  265. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/mipsasm-BMqwQI7S.js +0 -0
  266. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/mojo-BgCJLMeH.js +0 -0
  267. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/monokai-CdkpiU2Y.js +0 -0
  268. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/moonbit-CaWjb8XO.js +0 -0
  269. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/move-B1IS1UjX.js +0 -0
  270. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/narrat-_X_XdTYD.js +0 -0
  271. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/nextflow-BJtWHP5T.js +0 -0
  272. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/nextflow-groovy-DJMQeKeT.js +0 -0
  273. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/nginx-Bhc82uuv.js +0 -0
  274. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/night-owl-DhmEMT88.js +0 -0
  275. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/night-owl-light-eJ-hLW7d.js +0 -0
  276. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/nim-DXTVBFnF.js +0 -0
  277. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/nix-IvuFDN5E.js +0 -0
  278. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/nord-Cb4Vim4T.js +0 -0
  279. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/nushell-DcLAeLz5.js +0 -0
  280. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/objective-c-D1A_Heim.js +0 -0
  281. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/objective-cpp-BsSzOQcm.js +0 -0
  282. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/ocaml-O90oeIOV.js +0 -0
  283. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/odin-B1RWQWA5.js +0 -0
  284. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/one-dark-pro-CLwyXe_n.js +0 -0
  285. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/one-light-D7Lr4KcI.js +0 -0
  286. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/openscad-BUDT5pXO.js +0 -0
  287. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/pascal-4ZHwLPI5.js +0 -0
  288. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/perl-C7veXV9z.js +0 -0
  289. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/php-BRiuMnnr.js +0 -0
  290. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/pierre-dark-sU4Zdns8.js +0 -0
  291. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/pierre-dark-soft-HXgun5vs.js +0 -0
  292. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/pierre-dark-vibrant-D4RhcSIK.js +0 -0
  293. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/pierre-light-DWBk51d8.js +0 -0
  294. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/pierre-light-soft-CodEzPxf.js +0 -0
  295. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/pierre-light-vibrant-B76X7i5Y.js +0 -0
  296. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/pkl-ot-7Btpt.js +0 -0
  297. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/plastic-DQwYfKfQ.js +0 -0
  298. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/plsql-DGHpHOYJ.js +0 -0
  299. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/po-BiJDBrnU.js +0 -0
  300. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/poimandres-DRFjx7u4.js +0 -0
  301. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/polar-C7UOKdEL.js +0 -0
  302. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/postcss-BXeXVLqQ.js +0 -0
  303. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/powerquery-DNMTfnFr.js +0 -0
  304. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/powershell-DshXNtvi.js +0 -0
  305. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/preload-helper-FMEmyu_K.js +0 -0
  306. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/prisma-BsRQq5mF.js +0 -0
  307. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/prolog-iXnhIJG7.js +0 -0
  308. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/proto-DB4EqR-F.js +0 -0
  309. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/pug-C5hz5LQ7.js +0 -0
  310. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/puppet-CDv2pdJW.js +0 -0
  311. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/purescript-9MfHhQsQ.js +0 -0
  312. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/python-gzcpVVnB.js +0 -0
  313. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/qml-BdUV3aTS.js +0 -0
  314. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/qmldir-DCQb3MpD.js +0 -0
  315. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/qss-Fe1Jh2GI.js +0 -0
  316. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/r-8R7vtdQc.js +0 -0
  317. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/racket-DcIDlBhZ.js +0 -0
  318. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/raku-B3gFvitq.js +0 -0
  319. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/razor-DRL52XO2.js +0 -0
  320. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/red-CJ3rzSJv.js +0 -0
  321. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/reg-CRGYupPL.js +0 -0
  322. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/regexp-Omp9DhTb.js +0 -0
  323. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/rel-BtDbiS_P.js +0 -0
  324. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/riscv-Ckw8ddFX.js +0 -0
  325. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/rolldown-runtime-QTnfLwEv.js +0 -0
  326. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/ron-VUp2lXgN.js +0 -0
  327. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/rose-pine-BthvhNj6.js +0 -0
  328. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/rose-pine-dawn-Dg85fqjY.js +0 -0
  329. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/rose-pine-moon-hon4tzzS.js +0 -0
  330. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/rosmsg-CAekHB0j.js +0 -0
  331. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/rst-BHX71KW9.js +0 -0
  332. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/ruby-B--HzjGU.js +0 -0
  333. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/rust-Cfkwpbl8.js +0 -0
  334. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/sas-DrLaYOK_.js +0 -0
  335. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/sass-DXrisJhu.js +0 -0
  336. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/scala-DKOlJaKm.js +0 -0
  337. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/scheme-DQCgrYNe.js +0 -0
  338. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/scss-DdSxiZKl.js +0 -0
  339. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/sdbl-bTVj8UrX.js +0 -0
  340. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/shaderlab-TOUzSsQk.js +0 -0
  341. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/shellscript-DwcUjJBL.js +0 -0
  342. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/shellsession-CPZkydE6.js +0 -0
  343. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/slack-dark-DnToyrRv.js +0 -0
  344. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/slack-ochin-B2OO5cIa.js +0 -0
  345. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/smalltalk-B16xEiuN.js +0 -0
  346. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/snazzy-light-4G7pJPwS.js +0 -0
  347. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/solarized-dark-DV17i1UV.js +0 -0
  348. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/solarized-light-DSh2HLQt.js +0 -0
  349. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/solidity-CKzVLygQ.js +0 -0
  350. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/soy-Br5FhD7c.js +0 -0
  351. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/sparql-D_iOobhT.js +0 -0
  352. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/splunk-BC2Px7Mm.js +0 -0
  353. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/sql-DNssxck8.js +0 -0
  354. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/ssh-config-BgfXC-Er.js +0 -0
  355. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/stata-DXn1tqOr.js +0 -0
  356. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/stylus-B6D30XZt.js +0 -0
  357. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/surrealql-IeLNQw0f.js +0 -0
  358. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/svelte-DOdLCIlh.js +0 -0
  359. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/swift-DonLKvLd.js +0 -0
  360. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/synthwave-84-nFMaYfgc.js +0 -0
  361. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/system-verilog-DJ5XKQeo.js +0 -0
  362. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/systemd-BxMlprV5.js +0 -0
  363. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/talonscript-CohzipZa.js +0 -0
  364. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/tasl-DMoTqEGO.js +0 -0
  365. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/tcl-CZd0xW_V.js +0 -0
  366. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/templ-CIwIngms.js +0 -0
  367. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/terraform-DswuEJGm.js +0 -0
  368. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/tex-D8QMumu5.js +0 -0
  369. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/tokyo-night-oM2G3aXe.js +0 -0
  370. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/toml-CcmNWLt0.js +0 -0
  371. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/ts-tags-BMVY4q-l.js +0 -0
  372. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/tsv-sltzmVWM.js +0 -0
  373. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/tsx-5Eka4NBX.js +0 -0
  374. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/turtle-ByJddavk.js +0 -0
  375. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/twig-C8o_5mgw.js +0 -0
  376. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/typescript-DOu2WMV5.js +0 -0
  377. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/typespec-BRdr0IET.js +0 -0
  378. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/typst-DI99ib-x.js +0 -0
  379. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/v-DETTlOr0.js +0 -0
  380. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/vala-zf12oZj6.js +0 -0
  381. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/vb-Djn5o6TS.js +0 -0
  382. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/verilog-CiiDBU1e.js +0 -0
  383. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/vesper-DdrHHSXu.js +0 -0
  384. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/vhdl-BroJfC0k.js +0 -0
  385. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/viml-DvXPmvsu.js +0 -0
  386. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/vitesse-black-fwtXNY1n.js +0 -0
  387. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/vitesse-dark-BZCL-v6S.js +0 -0
  388. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/vitesse-light-VbXTXTou.js +0 -0
  389. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/vue-BU18DNDL.js +0 -0
  390. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/vue-html-BeluIYX0.js +0 -0
  391. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/vue-vine-DGUAbOCX.js +0 -0
  392. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/vyper-CgoNMtux.js +0 -0
  393. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/wasm-BnjxR4X6.js +0 -0
  394. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/wasm-ByWQv1Qj.js +0 -0
  395. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/wenyan-C8pVoKbM.js +0 -0
  396. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/wgsl-BsKzXJz4.js +0 -0
  397. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/wikitext-ClFFjSW2.js +0 -0
  398. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/wit-DdvCle-K.js +0 -0
  399. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/wolfram-DLL8P-h_.js +0 -0
  400. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/xml-DIqSwXR3.js +0 -0
  401. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/xsl-Ct_-YIAy.js +0 -0
  402. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/yaml-DTtCYNlS.js +0 -0
  403. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/zenscript-BnlCZFoB.js +0 -0
  404. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/assets/zig-CMLA9XwU.js +0 -0
  405. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/favicon_slashes.svg +0 -0
  406. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/fonts/OFL.txt +0 -0
  407. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/fonts/SourceCodePro-Variable.woff2 +0 -0
  408. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/server/static/fonts/SourceSans3-Variable.woff2 +0 -0
  409. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/state.py +0 -0
  410. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/tui/__init__.py +0 -0
  411. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/tui/markdown.py +0 -0
  412. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/tui/theme.py +0 -0
  413. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/web_tools.py +0 -0
  414. {mycode_cli-0.18.0 → mycode_cli-0.19.1}/src/mycode_cli/workspace.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: mycode-cli
3
- Version: 0.18.0
3
+ Version: 0.19.1
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
@@ -25,7 +25,7 @@ Requires-Dist: beautifulsoup4>=4.15.0
25
25
  Requires-Dist: fastapi>=0.139.0
26
26
  Requires-Dist: httpx2>=2.10.0
27
27
  Requires-Dist: markdownify>=1.2.3
28
- Requires-Dist: mycode-sdk==0.18.0
28
+ Requires-Dist: mycode-sdk==0.19.1
29
29
  Requires-Dist: prompt-toolkit>=3.0.52
30
30
  Requires-Dist: pydantic>=2.13.4
31
31
  Requires-Dist: pygments>=2.20.0
@@ -122,21 +122,23 @@ The CLI assembles the system prompt from instructions files and discovered skill
122
122
 
123
123
  ## Terminal UI
124
124
 
125
- | Key | Action |
126
- | ---------------------------- | --------------------------------------------------------------------------- |
127
- | Enter | Send the message; with a completion menu open, accept the highlighted entry |
128
- | Esc then Enter, or Alt+Enter | Insert a newline |
129
- | Esc | Interrupt the reply; close a selection list |
130
- | Ctrl+C | Interrupt the reply; otherwise clear the input |
131
- | Ctrl+D | Exit (empty input only) |
132
- | Ctrl+L | Clear the screen |
133
- | Up / Down | Move between lines; on the first or last line, browse input history |
125
+ | Key | Action |
126
+ | ---------------------------- | -------------------------------------------------------------------------------------- |
127
+ | Enter | Send the message (steer while a reply runs); with a completion menu open, accept it |
128
+ | Ctrl+Q | Queue the message for after the reply; otherwise send it |
129
+ | Alt+Up | Take back pending steers and queued messages into the input |
130
+ | Esc then Enter, or Alt+Enter | Insert a newline |
131
+ | Esc | Take back pending messages and interrupt the reply; close a selection list |
132
+ | Ctrl+C | Take back pending messages and interrupt the reply; otherwise clear the input |
133
+ | Ctrl+D | Exit (empty input only) |
134
+ | Ctrl+L | Clear the screen |
135
+ | Up / Down | Move between lines; on the first or last line, browse input history |
134
136
 
135
- Messages typed while a reply runs are queued and sent in order after it finishes.
137
+ While a reply runs, Enter steers it: the model sees the message at its next step, after the running tools finish. Ctrl+Q queues the message instead; queued messages are sent together as the next turn when the reply finishes. Pending messages show above the input. Commands are unavailable until the reply ends.
136
138
 
137
139
  `@path` attaches a file to the message: text files as snapshots, images and PDFs as image or document input. Pasted file paths become `@path` references.
138
140
 
139
- Slash commands: `/new` `/resume` `/rewind` `/model` `/effort` `/clear` `/compact` `/q`. `exit` and `quit` also exit.
141
+ Slash commands: `/new` (alias `/clear`) `/resume` `/rewind` `/model` `/effort` `/compact` `/quit` (alias `/exit`). `exit` and `quit` also exit.
140
142
 
141
143
  ## CLI Reference
142
144
 
@@ -85,21 +85,23 @@ The CLI assembles the system prompt from instructions files and discovered skill
85
85
 
86
86
  ## Terminal UI
87
87
 
88
- | Key | Action |
89
- | ---------------------------- | --------------------------------------------------------------------------- |
90
- | Enter | Send the message; with a completion menu open, accept the highlighted entry |
91
- | Esc then Enter, or Alt+Enter | Insert a newline |
92
- | Esc | Interrupt the reply; close a selection list |
93
- | Ctrl+C | Interrupt the reply; otherwise clear the input |
94
- | Ctrl+D | Exit (empty input only) |
95
- | Ctrl+L | Clear the screen |
96
- | Up / Down | Move between lines; on the first or last line, browse input history |
97
-
98
- Messages typed while a reply runs are queued and sent in order after it finishes.
88
+ | Key | Action |
89
+ | ---------------------------- | -------------------------------------------------------------------------------------- |
90
+ | Enter | Send the message (steer while a reply runs); with a completion menu open, accept it |
91
+ | Ctrl+Q | Queue the message for after the reply; otherwise send it |
92
+ | Alt+Up | Take back pending steers and queued messages into the input |
93
+ | Esc then Enter, or Alt+Enter | Insert a newline |
94
+ | Esc | Take back pending messages and interrupt the reply; close a selection list |
95
+ | Ctrl+C | Take back pending messages and interrupt the reply; otherwise clear the input |
96
+ | Ctrl+D | Exit (empty input only) |
97
+ | Ctrl+L | Clear the screen |
98
+ | Up / Down | Move between lines; on the first or last line, browse input history |
99
+
100
+ While a reply runs, Enter steers it: the model sees the message at its next step, after the running tools finish. Ctrl+Q queues the message instead; queued messages are sent together as the next turn when the reply finishes. Pending messages show above the input. Commands are unavailable until the reply ends.
99
101
 
100
102
  `@path` attaches a file to the message: text files as snapshots, images and PDFs as image or document input. Pasted file paths become `@path` references.
101
103
 
102
- Slash commands: `/new` `/resume` `/rewind` `/model` `/effort` `/clear` `/compact` `/q`. `exit` and `quit` also exit.
104
+ Slash commands: `/new` (alias `/clear`) `/resume` `/rewind` `/model` `/effort` `/compact` `/quit` (alias `/exit`). `exit` and `quit` also exit.
103
105
 
104
106
  ## CLI Reference
105
107
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "mycode-cli"
7
- version = "0.18.0"
7
+ version = "0.19.1"
8
8
  description = "Minimal coding agent CLI and web UI built on mycode-sdk."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.12"
@@ -26,7 +26,7 @@ classifiers = [
26
26
  ]
27
27
  keywords = ["agent", "cli", "llm", "coding-agent", "fastapi"]
28
28
  dependencies = [
29
- "mycode-sdk==0.18.0",
29
+ "mycode-sdk==0.19.1",
30
30
  "fastapi>=0.139.0",
31
31
  "uvicorn[standard]>=0.51.0",
32
32
  "rich>=15.0.0",
@@ -5,26 +5,21 @@ from __future__ import annotations
5
5
  from mycode.agent import Agent
6
6
  from mycode_cli.config import ResolvedProvider, Settings
7
7
  from mycode_cli.permissions import ToolReviewCallback, build_permission_hooks
8
- from mycode_cli.sessions import SessionStore, sum_session_cost
8
+ from mycode_cli.sessions import SessionStore, SessionTotals, sum_session_totals
9
9
  from mycode_cli.system_prompt import build_system_prompt
10
10
  from mycode_cli.tools import DEFAULT_TOOLS
11
11
  from mycode_cli.web_tools import build_web_tools
12
12
  from mycode_cli.workspace import CliDeps
13
13
 
14
14
 
15
- def sum_known_costs(*costs: float | None) -> float | None:
16
- known = [cost for cost in costs if cost is not None]
17
- return sum(known) if known else None
15
+ async def load_session_totals(store: SessionStore, session_id: str) -> SessionTotals:
16
+ """Load the session's cumulative usage and USD cost from its raw JSONL timeline.
18
17
 
19
-
20
- async def load_session_cost(store: SessionStore, session_id: str) -> float | None:
21
- """Load the session's cumulative USD cost from its raw JSONL timeline.
22
-
23
- Counts persisted costs from tool loops, compact summaries, and turns
24
- discarded by rewind. Records without a cost are skipped.
18
+ Counts tool loops, compact summaries, and turns discarded by rewind.
19
+ Records without usage or cost contribute nothing to that total.
25
20
  """
26
21
 
27
- return sum_session_cost(await store.load_raw_messages(session_id))
22
+ return sum_session_totals(await store.load_raw_messages(session_id))
28
23
 
29
24
 
30
25
  def build_agent(
@@ -3,6 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  import asyncio
6
+ import io
6
7
  import json
7
8
  import os
8
9
  from base64 import b64encode
@@ -10,6 +11,7 @@ from collections.abc import AsyncIterator
10
11
  from dataclasses import replace
11
12
  from pathlib import Path
12
13
  from typing import Annotated, Any, cast
14
+ from uuid import uuid4
13
15
 
14
16
  from fastapi import APIRouter, HTTPException, Query, Request
15
17
  from fastapi import Path as PathParam
@@ -21,7 +23,7 @@ from mycode.attachments import (
21
23
  detect_document_mime_type,
22
24
  detect_image_mime_type,
23
25
  )
24
- from mycode.compact import has_compactable_history
26
+ from mycode.compact import DEFAULT_COMPACT_THRESHOLD, has_compactable_history
25
27
  from mycode.messages import (
26
28
  ConversationMessage,
27
29
  build_message,
@@ -30,6 +32,7 @@ from mycode.messages import (
30
32
  image_block,
31
33
  text_block,
32
34
  )
35
+ from mycode.models import ModelMetadata
33
36
  from mycode_cli.config import (
34
37
  ResolvedProvider,
35
38
  get_settings,
@@ -40,22 +43,25 @@ from mycode_cli.config import (
40
43
  resolve_provider_choices,
41
44
  )
42
45
  from mycode_cli.permissions import ToolReviewDecision, ToolReviewRequest
43
- from mycode_cli.runtime import build_agent, load_session_cost
46
+ from mycode_cli.runtime import build_agent, load_session_totals
44
47
  from mycode_cli.server.deps import RunManagerDep, StoreDep, resolve_workspace_cwd
45
- from mycode_cli.server.run_manager import ActiveRunError
48
+ from mycode_cli.server.run_manager import ActiveRunError, RunAgent
46
49
  from mycode_cli.server.schemas import (
47
50
  CancelRunResponse,
48
51
  ChatRequest,
49
52
  ChatResponse,
50
53
  CompactRequest,
51
- CompactResponse,
52
54
  DecideRequest,
55
+ PendingInputRequest,
53
56
  RunInfo,
57
+ RunResponse,
54
58
  StatusResponse,
55
59
  StreamEvent,
60
+ UserInputRequest,
56
61
  )
57
62
  from mycode_cli.system_prompt import build_skill_snapshot_blocks, discover_slash_skills
58
- from mycode_cli.workspace import resolve_path
63
+ from mycode_cli.tools import read_text_window
64
+ from mycode_cli.workspace import CliDeps, resolve_path
59
65
 
60
66
  router = APIRouter()
61
67
 
@@ -69,7 +75,7 @@ def _resolve_workspace_attachment_path(rel_path: str, *, cwd: str) -> Path:
69
75
 
70
76
 
71
77
  def _read_workspace_text_attachment(rel_path: str, *, name: str | None, cwd: str) -> list[dict[str, Any]]:
72
- """Read a workspace text file selected via the @ menu into a `<file>` block.
78
+ """Read a workspace text file selected via the @ menu into a `<file>` block, bounded like ``read``.
73
79
 
74
80
  Re-validates the path at send time: it must resolve inside ``cwd`` (guards
75
81
  against a symlink swapped in after selection), be a regular file, and be
@@ -81,16 +87,40 @@ def _read_workspace_text_attachment(rel_path: str, *, name: str | None, cwd: str
81
87
  if detect_image_mime_type(path) or detect_document_mime_type(path):
82
88
  raise HTTPException(status_code=400, detail=f"not a text file: {rel_path}")
83
89
  try:
84
- return build_attachment_blocks([Attachment.path(path, name=name or rel_path)])
85
- except ValueError as exc:
86
- raise HTTPException(status_code=400, detail=str(exc)) from exc
90
+ with path.open(encoding="utf-8") as file:
91
+ window = read_text_window(file)
92
+ except UnicodeDecodeError as exc:
93
+ raise HTTPException(status_code=400, detail=f"not UTF-8 text: {rel_path}") from exc
94
+ return build_attachment_blocks([Attachment.text(window.render(path), name=name or rel_path)])
95
+
96
+
97
+ def _write_uploads(uploads: dict[Path, str]) -> None:
98
+ for path, text in uploads.items():
99
+ path.parent.mkdir(parents=True, exist_ok=True)
100
+ path.write_text(text, encoding="utf-8")
101
+
102
+
103
+ def _remove_uploads(uploads: dict[Path, str]) -> None:
104
+ """Undo ``_write_uploads`` for a message the run refused."""
105
+
106
+ for path in uploads:
107
+ path.unlink(missing_ok=True)
87
108
 
88
109
 
89
- async def _build_user_message(chat: ChatRequest, cwd: str) -> ConversationMessage:
110
+ async def _build_user_message(chat: UserInputRequest, deps: CliDeps) -> tuple[ConversationMessage, dict[Path, str]]:
111
+ """Build the user message and the uploads to save before it is sent.
112
+
113
+ A text upload that does not fit one read window is shown truncated, and its
114
+ full text is returned for ``tool_output_dir`` so the model can read the rest.
115
+ The caller writes it once the request has passed validation.
116
+ """
117
+
118
+ cwd = str(deps.cwd)
119
+ uploads: dict[Path, str] = {}
90
120
  if not chat.input:
91
121
  text = str(chat.message or "").strip()
92
122
  snapshots = await asyncio.to_thread(build_skill_snapshot_blocks, text, cwd)
93
- return build_message("user", [*snapshots, text_block(text)])
123
+ return build_message("user", [*snapshots, text_block(text)]), uploads
94
124
 
95
125
  blocks: list[dict[str, Any]] = []
96
126
  visible_text: list[str] = []
@@ -103,7 +133,12 @@ async def _build_user_message(chat: ChatRequest, cwd: str) -> ConversationMessag
103
133
  continue
104
134
  text = block.text or ""
105
135
  if block.is_attachment:
106
- blocks.extend(build_attachment_blocks([Attachment.text(text, name=str(block.name or "attached-file"))]))
136
+ name = str(block.name or "attached-file")
137
+ window = read_text_window(io.StringIO(text, newline=None))
138
+ upload_path = deps.tool_output_dir / f"upload-{uuid4().hex}"
139
+ if window.partial:
140
+ uploads[upload_path] = text
141
+ blocks.extend(build_attachment_blocks([Attachment.text(window.render(upload_path), name=name)]))
107
142
  elif text:
108
143
  visible_text.append(text)
109
144
  blocks.append(text_block(text))
@@ -140,7 +175,15 @@ async def _build_user_message(chat: ChatRequest, cwd: str) -> ConversationMessag
140
175
  raise HTTPException(status_code=400, detail="input must include at least one non-empty block")
141
176
  snapshots = await asyncio.to_thread(build_skill_snapshot_blocks, "\n".join(visible_text), cwd)
142
177
  blocks[:0] = snapshots
143
- return build_message("user", blocks)
178
+ return build_message("user", blocks), uploads
179
+
180
+
181
+ def _check_input_support(message: ConversationMessage, model: ModelMetadata | RunAgent) -> None:
182
+ content_types = {b.get("type") for b in (message.get("content") or []) if isinstance(b, dict)}
183
+ if "image" in content_types and not model.supports_image_input:
184
+ raise HTTPException(status_code=400, detail="current model does not support image input")
185
+ if "document" in content_types and not model.supports_pdf_input:
186
+ raise HTTPException(status_code=400, detail="current model does not support PDF input")
144
187
 
145
188
 
146
189
  def _validate_rewind_request(
@@ -182,7 +225,9 @@ async def chat(chat: ChatRequest, store: StoreDep, runs: RunManagerDep) -> ChatR
182
225
  api_base=chat.api_base,
183
226
  )
184
227
  session_id = chat.session_id or "default"
185
- user_message = await _build_user_message(chat, cwd)
228
+ user_message, uploads = await _build_user_message(
229
+ chat, CliDeps.for_session(cwd=cwd, data_dir=store.data_dir, session_id=session_id)
230
+ )
186
231
 
187
232
  # Capability check before any disk mutation — a failed check must not
188
233
  # leave an empty session on disk or land a premature rewind marker.
@@ -192,11 +237,7 @@ async def chat(chat: ChatRequest, store: StoreDep, runs: RunManagerDep) -> ChatR
192
237
  model=resolved.model,
193
238
  model_config=model_config,
194
239
  )
195
- content_types = {b.get("type") for b in (user_message.get("content") or []) if isinstance(b, dict)}
196
- if "image" in content_types and not model_meta.supports_image_input:
197
- raise HTTPException(status_code=400, detail="current model does not support image input")
198
- if "document" in content_types and not model_meta.supports_pdf_input:
199
- raise HTTPException(status_code=400, detail="current model does not support PDF input")
240
+ _check_input_support(user_message, model_meta)
200
241
 
201
242
  reasoning_effort = resolved.reasoning_effort
202
243
  if "reasoning_effort" in chat.model_fields_set:
@@ -241,9 +282,10 @@ async def chat(chat: ChatRequest, store: StoreDep, runs: RunManagerDep) -> ChatR
241
282
  existing_messages = data["messages"] if data else []
242
283
  _validate_rewind_request(session=session, messages=existing_messages, rewind_to=chat.rewind_to)
243
284
 
244
- # All validation passed. Land the rewind marker (if any) and register
245
- # the user turn in the catalog: first turn creates the entry and sets
246
- # the title, later turns bump updated_at.
285
+ # All validation passed. Save uploads, land the rewind marker (if any)
286
+ # and register the user turn in the catalog: first turn creates the
287
+ # entry and sets the title, later turns bump updated_at.
288
+ await asyncio.to_thread(_write_uploads, uploads)
247
289
  if chat.rewind_to is not None:
248
290
  await store.append_rewind(session_id, chat.rewind_to)
249
291
  session = await store.record_user_turn(
@@ -274,10 +316,11 @@ async def chat(chat: ChatRequest, store: StoreDep, runs: RunManagerDep) -> ChatR
274
316
  try:
275
317
  run = await runs.start_run(
276
318
  session_id=session_id,
319
+ cwd=cwd,
277
320
  user_message=user_message,
278
321
  base_messages=agent.messages,
279
322
  agent=agent,
280
- session_cost_base=await load_session_cost(store, session_id),
323
+ session_base=await load_session_totals(store, session_id),
281
324
  )
282
325
  except ActiveRunError as exc:
283
326
  existing = await runs.get_run(exc.run_id)
@@ -339,7 +382,7 @@ async def compact_session(
339
382
  body: CompactRequest,
340
383
  store: StoreDep,
341
384
  runs: RunManagerDep,
342
- ) -> CompactResponse:
385
+ ) -> RunResponse:
343
386
  """Start a compact run: summarize the session and append one compact marker."""
344
387
 
345
388
  async with runs.session_operation(session_id):
@@ -372,9 +415,10 @@ async def compact_session(
372
415
  try:
373
416
  run = await runs.start_compact(
374
417
  session_id=session_id,
418
+ cwd=cwd,
375
419
  base_messages=agent.messages,
376
420
  agent=agent,
377
- session_cost_base=data["session_cost"],
421
+ session_base=data["totals"],
378
422
  on_complete=store.touch,
379
423
  )
380
424
  except ActiveRunError as exc:
@@ -384,7 +428,95 @@ async def compact_session(
384
428
  detail["run"] = existing.info()
385
429
  raise HTTPException(status_code=409, detail=detail) from exc
386
430
 
387
- return CompactResponse(run=RunInfo.model_validate(run))
431
+ return RunResponse(run=RunInfo.model_validate(run))
432
+
433
+
434
+ @router.post("/runs/{run_id}/steer")
435
+ async def steer_run(
436
+ run_id: Annotated[str, PathParam(min_length=1)], body: PendingInputRequest, store: StoreDep, runs: RunManagerDep
437
+ ) -> RunResponse:
438
+ """Hand a user message to the running chat for its next step boundary."""
439
+
440
+ state = await runs.get_run(run_id)
441
+ if state is None:
442
+ raise HTTPException(status_code=404, detail="run not found")
443
+ message, uploads = await _build_user_message(
444
+ body, CliDeps.for_session(cwd=state.cwd, data_dir=store.data_dir, session_id=state.session_id)
445
+ )
446
+ message["meta"] = {"input_id": body.input_id}
447
+ _check_input_support(message, state.agent)
448
+ # Uploads are on disk before the model can see the message; a refusal removes them.
449
+ await asyncio.to_thread(_write_uploads, uploads)
450
+ if not state.agent.steer(message):
451
+ await asyncio.to_thread(_remove_uploads, uploads)
452
+ raise HTTPException(
453
+ status_code=409,
454
+ detail={"message": "run is not accepting steers", "run": state.info()},
455
+ )
456
+ return RunResponse(run=RunInfo.model_validate(state.info()))
457
+
458
+
459
+ @router.post("/sessions/{session_id}/queue")
460
+ async def queue_message(
461
+ session_id: Annotated[str, PathParam(min_length=1)],
462
+ body: PendingInputRequest,
463
+ store: StoreDep,
464
+ runs: RunManagerDep,
465
+ ) -> RunResponse:
466
+ """Queue a user message as the next turn of the session's running chat."""
467
+
468
+ state = await runs.get_active_run(session_id)
469
+ if state is None:
470
+ raise HTTPException(status_code=409, detail={"message": "session has no running chat to queue on"})
471
+ message, uploads = await _build_user_message(
472
+ body, CliDeps.for_session(cwd=state.cwd, data_dir=store.data_dir, session_id=session_id)
473
+ )
474
+ message["meta"] = {"input_id": body.input_id}
475
+ _check_input_support(message, state.agent)
476
+ await asyncio.to_thread(_write_uploads, uploads)
477
+ if not await runs.enqueue(state, message):
478
+ await asyncio.to_thread(_remove_uploads, uploads)
479
+ raise HTTPException(status_code=409, detail={"message": "session has no running chat to queue on"})
480
+ await store.record_user_turn(
481
+ session_id,
482
+ cwd=state.cwd,
483
+ text=flatten_message_text(message, include_thinking=False),
484
+ )
485
+ return RunResponse(run=RunInfo.model_validate(state.info()))
486
+
487
+
488
+ @router.delete("/sessions/{session_id}/queue/{input_id}")
489
+ async def remove_queued_message(
490
+ session_id: Annotated[str, PathParam(min_length=1)],
491
+ input_id: Annotated[str, PathParam(min_length=1)],
492
+ runs: RunManagerDep,
493
+ ) -> RunResponse:
494
+ """Remove a queued message that has not been delivered."""
495
+
496
+ run = await runs.remove_queued(session_id, input_id)
497
+ if run is None:
498
+ raise HTTPException(status_code=404, detail="queued message not found")
499
+ return RunResponse(run=RunInfo.model_validate(run))
500
+
501
+
502
+ @router.post("/sessions/{session_id}/queue/{input_id}/steer")
503
+ async def steer_queued_message(
504
+ session_id: Annotated[str, PathParam(min_length=1)],
505
+ input_id: Annotated[str, PathParam(min_length=1)],
506
+ runs: RunManagerDep,
507
+ ) -> RunResponse:
508
+ """Move a queued message into the current turn, keeping it as built."""
509
+
510
+ state = await runs.get_active_run(session_id)
511
+ moved = None if state is None else await runs.steer_queued(state, input_id)
512
+ if state is None or moved is None:
513
+ raise HTTPException(status_code=404, detail="queued message not found")
514
+ if not moved:
515
+ raise HTTPException(
516
+ status_code=409,
517
+ detail={"message": "run is not accepting steers", "run": state.info()},
518
+ )
519
+ return RunResponse(run=RunInfo.model_validate(state.info()))
388
520
 
389
521
 
390
522
  @router.get("/config")
@@ -454,6 +586,10 @@ async def get_config(cwd: Annotated[str | None, Query()] = None) -> dict[str, An
454
586
  "cwd_exists": os.path.isdir(resolved_cwd),
455
587
  "project": settings.project,
456
588
  "config_paths": settings.config_paths,
589
+ # Effective for this cwd; 0 disables automatic compaction.
590
+ "compact_threshold": (
591
+ settings.compact_threshold if settings.compact_threshold is not None else DEFAULT_COMPACT_THRESHOLD
592
+ ),
457
593
  "skills": [{"name": skill.name, "description": skill.description} for skill in skills],
458
594
  "setup_error": setup_error,
459
595
  }
@@ -11,6 +11,7 @@ from fastapi import Path as PathParam
11
11
  from mycode.messages import ConversationMessage
12
12
  from mycode_cli.server.deps import RunManagerDep, StoreDep, resolve_workspace_cwd
13
13
  from mycode_cli.server.schemas import SessionCreateRequest, StatusResponse
14
+ from mycode_cli.sessions import SessionTotals
14
15
 
15
16
  router = APIRouter(prefix="/sessions", tags=["sessions"])
16
17
 
@@ -50,6 +51,21 @@ async def list_sessions(
50
51
  return {"sessions": sessions}
51
52
 
52
53
 
54
+ @router.get("/search")
55
+ async def search_sessions(
56
+ store: StoreDep,
57
+ runs: RunManagerDep,
58
+ q: Annotated[str, Query(min_length=1)],
59
+ cwd: Annotated[str | None, Query()] = None,
60
+ limit: Annotated[int, Query(ge=1)] = 50,
61
+ ) -> dict[str, Any]:
62
+ results = await store.search_sessions(q, cwd=cwd, limit=limit)
63
+ for result in results:
64
+ session = result["session"]
65
+ session["is_running"] = await runs.has_active_run(str(session["id"]))
66
+ return {"results": results}
67
+
68
+
53
69
  @router.get("/{session_id}")
54
70
  async def load_session(
55
71
  session_id: Annotated[str, PathParam(min_length=1)], store: StoreDep, runs: RunManagerDep
@@ -62,22 +78,31 @@ async def load_session(
62
78
  return {
63
79
  "session": await store.load_metadata(session_id),
64
80
  "messages": _redact_document_data(active["messages"]),
65
- "session_cost": active["session_cost"],
81
+ **active["totals"].payload(),
66
82
  "active_run": active["run"],
67
83
  "pending_events": active["pending_events"],
84
+ "pending": {kind: _redact_document_data(messages) for kind, messages in active["pending"].items()},
68
85
  }
69
86
 
70
87
  data = await store.load_session(session_id)
71
88
 
72
89
  if data is None:
73
- return {"session": None, "messages": [], "session_cost": None, "active_run": None, "pending_events": []}
90
+ return {
91
+ "session": None,
92
+ "messages": [],
93
+ **SessionTotals().payload(),
94
+ "active_run": None,
95
+ "pending_events": [],
96
+ "pending": {"steers": [], "queue": []},
97
+ }
74
98
 
75
99
  return {
76
100
  "session": data["session"],
77
101
  "messages": _redact_document_data(data["messages"]),
78
- "session_cost": data["session_cost"],
102
+ **data["totals"].payload(),
79
103
  "active_run": None,
80
104
  "pending_events": [],
105
+ "pending": {"steers": [], "queue": []},
81
106
  }
82
107
 
83
108
 
@@ -90,14 +115,3 @@ async def delete_session(
90
115
  raise HTTPException(status_code=409, detail="session has a running task")
91
116
  await store.delete_session(session_id)
92
117
  return StatusResponse(status="ok")
93
-
94
-
95
- @router.post("/{session_id}/clear")
96
- async def clear_session(
97
- session_id: Annotated[str, PathParam(min_length=1)], store: StoreDep, runs: RunManagerDep
98
- ) -> StatusResponse:
99
- async with runs.session_operation(session_id):
100
- if await runs.has_active_run(session_id):
101
- raise HTTPException(status_code=409, detail="session has a running task")
102
- await store.clear_session(session_id)
103
- return StatusResponse(status="ok")