cecli-dev 0.95.8__tar.gz → 0.95.10__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 (559) hide show
  1. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/PKG-INFO +5 -3
  2. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/README.md +3 -2
  3. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/__init__.py +1 -1
  4. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/_version.py +3 -3
  5. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/args.py +0 -6
  6. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/agent_coder.py +11 -10
  7. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/base_coder.py +32 -17
  8. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/add.py +7 -1
  9. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/core.py +4 -4
  10. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/exit.py +0 -8
  11. cecli_dev-0.95.10/cecli/commands/history_search.py +112 -0
  12. cecli_dev-0.95.10/cecli/commands/terminal_setup.py +759 -0
  13. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/utils/base_command.py +28 -2
  14. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/helpers/model_providers.py +4 -3
  15. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/io.py +13 -4
  16. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/main.py +59 -51
  17. cecli_dev-0.95.10/cecli/mcp/__init__.py +14 -0
  18. cecli_dev-0.95.10/cecli/mcp/manager.py +255 -0
  19. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/mcp/oauth.py +0 -25
  20. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/mcp/server.py +29 -6
  21. cecli_dev-0.95.8/cecli/mcp/__init__.py → cecli_dev-0.95.10/cecli/mcp/utils.py +32 -2
  22. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/onboarding.py +1 -1
  23. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/report.py +23 -5
  24. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/app.py +14 -1
  25. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/widgets/completion_bar.py +1 -0
  26. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/widgets/input_area.py +4 -0
  27. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/widgets/output.py +19 -6
  28. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/utils.py +9 -6
  29. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/versioncheck.py +5 -1
  30. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/mcp.md +5 -1
  31. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/tui.md +8 -0
  32. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli_dev.egg-info/PKG-INFO +5 -3
  33. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli_dev.egg-info/SOURCES.txt +3 -0
  34. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli_dev.egg-info/requires.txt +3 -0
  35. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/requirements/requirements.in +1 -0
  36. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_coder.py +38 -23
  37. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_commands.py +132 -124
  38. cecli_dev-0.95.10/tests/basic/test_custom_commands.py +64 -0
  39. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_main.py +16 -9
  40. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_model_provider_manager.py +17 -4
  41. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_sessions.py +5 -5
  42. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/scrape/test_scrape.py +1 -1
  43. cecli_dev-0.95.8/cecli/commands/history_search.py +0 -40
  44. cecli_dev-0.95.8/cecli/commands/terminal_setup.py +0 -365
  45. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.dockerignore +0 -0
  46. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.flake8 +0 -0
  47. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.gitattributes +0 -0
  48. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  49. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.github/workflows/check_pypi_version.yml +0 -0
  50. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.github/workflows/docker-build-test.yml +0 -0
  51. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.github/workflows/docker-release.yml +0 -0
  52. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.github/workflows/issues.yml +0 -0
  53. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.github/workflows/pages.yml +0 -0
  54. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.github/workflows/pre-commit.yml +0 -0
  55. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.github/workflows/release.yml +0 -0
  56. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.github/workflows/ubuntu-tests.yml +0 -0
  57. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.github/workflows/windows-tests.yml +0 -0
  58. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.github/workflows/windows_check_pypi_version.yml +0 -0
  59. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.gitignore +0 -0
  60. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/.pre-commit-config.yaml +0 -0
  61. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/CHANGELOG.md +0 -0
  62. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/CNAME +0 -0
  63. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/CONTRIBUTING.md +0 -0
  64. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/HISTORY.md +0 -0
  65. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/LICENSE.txt +0 -0
  66. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/MANIFEST.in +0 -0
  67. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/Dockerfile +0 -0
  68. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/README.md +0 -0
  69. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/__init__.py +0 -0
  70. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/benchmark.py +0 -0
  71. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/benchmark_classic.py +0 -0
  72. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/clone-exercism.sh +0 -0
  73. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/cpp-test.sh +0 -0
  74. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/docker.sh +0 -0
  75. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/docker_build.sh +0 -0
  76. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/install-docker-ubuntu.sh +0 -0
  77. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/npm-test.sh +0 -0
  78. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/over_time.py +0 -0
  79. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/plot.sh +0 -0
  80. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/plots.py +0 -0
  81. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/problem_stats.py +0 -0
  82. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/prompts.py +0 -0
  83. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/refactor_tools.py +0 -0
  84. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/rsync.sh +0 -0
  85. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/rungrid.py +0 -0
  86. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/swe-bench-lite.txt +0 -0
  87. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/swe-bench.txt +0 -0
  88. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/swe_bench.py +0 -0
  89. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/benchmark/test_benchmark.py +0 -0
  90. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/__main__.py +0 -0
  91. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/args_formatter.py +0 -0
  92. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/change_tracker.py +0 -0
  93. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/__init__.py +0 -0
  94. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/architect_coder.py +0 -0
  95. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/ask_coder.py +0 -0
  96. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/chat_chunks.py +0 -0
  97. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/context_coder.py +0 -0
  98. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/copypaste_coder.py +0 -0
  99. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/editblock_coder.py +0 -0
  100. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/editblock_fenced_coder.py +0 -0
  101. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/editblock_func_coder.py +0 -0
  102. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  103. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/editor_editblock_coder.py +0 -0
  104. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/editor_whole_coder.py +0 -0
  105. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/help_coder.py +0 -0
  106. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/patch_coder.py +0 -0
  107. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/search_replace.py +0 -0
  108. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/shell.py +0 -0
  109. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/single_wholefile_func_coder.py +0 -0
  110. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/udiff_coder.py +0 -0
  111. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/udiff_simple.py +0 -0
  112. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/wholefile_coder.py +0 -0
  113. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/coders/wholefile_func_coder.py +0 -0
  114. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/__init__.py +0 -0
  115. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/agent.py +0 -0
  116. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/architect.py +0 -0
  117. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/ask.py +0 -0
  118. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/chat_mode.py +0 -0
  119. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/clear.py +0 -0
  120. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/code.py +0 -0
  121. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/command_prefix.py +0 -0
  122. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/commit.py +0 -0
  123. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/context.py +0 -0
  124. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/context_blocks.py +0 -0
  125. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/context_management.py +0 -0
  126. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/copy.py +0 -0
  127. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/copy_context.py +0 -0
  128. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/diff.py +0 -0
  129. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/drop.py +0 -0
  130. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/editor.py +0 -0
  131. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/git.py +0 -0
  132. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/help.py +0 -0
  133. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/lint.py +0 -0
  134. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/list_sessions.py +0 -0
  135. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/load.py +0 -0
  136. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/load_session.py +0 -0
  137. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/load_skill.py +0 -0
  138. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/ls.py +0 -0
  139. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/map.py +0 -0
  140. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/map_refresh.py +0 -0
  141. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/model.py +0 -0
  142. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/models.py +0 -0
  143. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/multiline_mode.py +0 -0
  144. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/paste.py +0 -0
  145. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/quit.py +0 -0
  146. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/read_only.py +0 -0
  147. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/read_only_stub.py +0 -0
  148. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/reasoning_effort.py +0 -0
  149. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/remove_skill.py +0 -0
  150. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/report.py +0 -0
  151. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/reset.py +0 -0
  152. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/run.py +0 -0
  153. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/save.py +0 -0
  154. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/save_session.py +0 -0
  155. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/settings.py +0 -0
  156. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/test.py +0 -0
  157. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/think_tokens.py +0 -0
  158. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/tokens.py +0 -0
  159. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/undo.py +0 -0
  160. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/utils/__init__.py +0 -0
  161. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/utils/helpers.py +0 -0
  162. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/utils/registry.py +0 -0
  163. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/utils/save_load_manager.py +0 -0
  164. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/voice.py +0 -0
  165. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/weak_model.py +0 -0
  166. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/commands/web.py +0 -0
  167. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/deprecated_args.py +0 -0
  168. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/diffs.py +0 -0
  169. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/dump.py +0 -0
  170. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/editor.py +0 -0
  171. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/exceptions.py +0 -0
  172. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/format_settings.py +0 -0
  173. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/help.py +0 -0
  174. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/help_pats.py +0 -0
  175. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/helpers/__init__.py +0 -0
  176. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/helpers/copypaste.py +0 -0
  177. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/helpers/coroutines.py +0 -0
  178. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/helpers/file_searcher.py +0 -0
  179. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/helpers/nested.py +0 -0
  180. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/helpers/plugin_manager.py +0 -0
  181. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/helpers/profiler.py +0 -0
  182. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/helpers/requests.py +0 -0
  183. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/helpers/similarity.py +0 -0
  184. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/helpers/skills.py +0 -0
  185. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/history.py +0 -0
  186. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/linter.py +0 -0
  187. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/llm.py +0 -0
  188. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/mdstream.py +0 -0
  189. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/models.py +0 -0
  190. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/__init__.py +0 -0
  191. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/agent.yml +0 -0
  192. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/architect.yml +0 -0
  193. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/ask.yml +0 -0
  194. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/base.yml +0 -0
  195. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/context.yml +0 -0
  196. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/copypaste.yml +0 -0
  197. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/editblock.yml +0 -0
  198. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/editblock_fenced.yml +0 -0
  199. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/editblock_func.yml +0 -0
  200. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/editor_diff_fenced.yml +0 -0
  201. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/editor_editblock.yml +0 -0
  202. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/editor_whole.yml +0 -0
  203. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/help.yml +0 -0
  204. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/patch.yml +0 -0
  205. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/single_wholefile_func.yml +0 -0
  206. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/udiff.yml +0 -0
  207. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/udiff_simple.yml +0 -0
  208. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/utils/__init__.py +0 -0
  209. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/utils/registry.py +0 -0
  210. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/utils/system.py +0 -0
  211. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/wholefile.yml +0 -0
  212. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/prompts/wholefile_func.yml +0 -0
  213. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  214. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  215. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  216. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  217. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  218. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  219. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  220. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  221. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  222. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  223. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  224. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  225. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  226. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  227. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  228. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  229. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  230. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  231. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  232. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  233. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  234. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  235. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  236. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  237. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  238. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  239. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  240. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  241. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  242. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  243. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  244. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/README.md +0 -0
  245. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  246. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  247. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  248. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  249. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  250. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  251. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  252. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  253. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  254. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  255. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  256. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  257. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  258. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  259. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  260. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  261. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  262. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  263. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  264. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  265. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  266. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  267. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  268. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  269. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  270. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  271. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/reasoning_tags.py +0 -0
  272. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/repo.py +0 -0
  273. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/repomap.py +0 -0
  274. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/resources/__init__.py +0 -0
  275. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/resources/model-metadata.json +0 -0
  276. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/resources/model-settings.yml +0 -0
  277. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/resources/providers.json +0 -0
  278. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/run_cmd.py +0 -0
  279. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/scrape.py +0 -0
  280. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/sendchat.py +0 -0
  281. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/sessions.py +0 -0
  282. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/special.py +0 -0
  283. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/__init__.py +0 -0
  284. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/command.py +0 -0
  285. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/command_interactive.py +0 -0
  286. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/context_manager.py +0 -0
  287. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/delete_block.py +0 -0
  288. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/delete_line.py +0 -0
  289. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/delete_lines.py +0 -0
  290. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/extract_lines.py +0 -0
  291. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/finished.py +0 -0
  292. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/git_branch.py +0 -0
  293. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/git_diff.py +0 -0
  294. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/git_log.py +0 -0
  295. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/git_remote.py +0 -0
  296. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/git_show.py +0 -0
  297. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/git_status.py +0 -0
  298. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/grep.py +0 -0
  299. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/indent_lines.py +0 -0
  300. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/insert_block.py +0 -0
  301. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/list_changes.py +0 -0
  302. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/load_skill.py +0 -0
  303. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/ls.py +0 -0
  304. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/remove_skill.py +0 -0
  305. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/replace_all.py +0 -0
  306. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/replace_line.py +0 -0
  307. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/replace_lines.py +0 -0
  308. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/replace_text.py +0 -0
  309. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/show_numbered_context.py +0 -0
  310. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/thinking.py +0 -0
  311. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/undo_change.py +0 -0
  312. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/update_todo_list.py +0 -0
  313. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/utils/base_tool.py +0 -0
  314. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/utils/helpers.py +0 -0
  315. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/utils/output.py +0 -0
  316. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/utils/registry.py +0 -0
  317. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/view_files_matching.py +0 -0
  318. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tools/view_files_with_symbol.py +0 -0
  319. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/__init__.py +0 -0
  320. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/io.py +0 -0
  321. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/styles.tcss +0 -0
  322. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/widgets/__init__.py +0 -0
  323. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/widgets/file_list.py +0 -0
  324. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/widgets/footer.py +0 -0
  325. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/widgets/key_hints.py +0 -0
  326. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/widgets/status_bar.py +0 -0
  327. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/tui/worker.py +0 -0
  328. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/urls.py +0 -0
  329. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/voice.py +0 -0
  330. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/waiting.py +0 -0
  331. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/watch.py +0 -0
  332. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/watch_prompts.py +0 -0
  333. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/Gemfile +0 -0
  334. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/blame.md +0 -0
  335. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/get-started.md +0 -0
  336. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/help-tip.md +0 -0
  337. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/help.md +0 -0
  338. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/install.md +0 -0
  339. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/keys.md +0 -0
  340. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/model-warnings.md +0 -0
  341. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/multi-line.md +0 -0
  342. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/python-m-aider.md +0 -0
  343. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/recording.css +0 -0
  344. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/recording.md +0 -0
  345. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/replit-pipx.md +0 -0
  346. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_includes/works-best.md +0 -0
  347. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/_sass/custom/custom.scss +0 -0
  348. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/adv-model-settings.md +0 -0
  349. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/agent-mode.md +0 -0
  350. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/aider_conf.md +0 -0
  351. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/api-keys.md +0 -0
  352. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/custom-commands.md +0 -0
  353. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  354. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/dotenv.md +0 -0
  355. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/editor.md +0 -0
  356. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/model-aliases.md +0 -0
  357. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/options.md +0 -0
  358. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/reasoning.md +0 -0
  359. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config/skills.md +0 -0
  360. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/config.md +0 -0
  361. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/faq.md +0 -0
  362. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/git.md +0 -0
  363. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/index.md +0 -0
  364. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/install/codespaces.md +0 -0
  365. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/install/docker.md +0 -0
  366. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/install/optional.md +0 -0
  367. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/install/replit.md +0 -0
  368. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/install.md +0 -0
  369. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/languages.md +0 -0
  370. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  371. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/legal/privacy.md +0 -0
  372. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/anthropic.md +0 -0
  373. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/azure.md +0 -0
  374. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/bedrock.md +0 -0
  375. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/cohere.md +0 -0
  376. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/deepseek.md +0 -0
  377. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/gemini.md +0 -0
  378. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/github.md +0 -0
  379. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/groq.md +0 -0
  380. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/lm-studio.md +0 -0
  381. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/ollama.md +0 -0
  382. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/openai-compat.md +0 -0
  383. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/openai.md +0 -0
  384. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/openrouter.md +0 -0
  385. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/other.md +0 -0
  386. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/vertex.md +0 -0
  387. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/warnings.md +0 -0
  388. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms/xai.md +0 -0
  389. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/llms.md +0 -0
  390. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/more/analytics.md +0 -0
  391. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/more/edit-formats.md +0 -0
  392. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/more/infinite-output.md +0 -0
  393. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/more-info.md +0 -0
  394. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/recordings/auto-accept-architect.md +0 -0
  395. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/recordings/dont-drop-original-read-files.md +0 -0
  396. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/recordings/index.md +0 -0
  397. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/recordings/model-accepts-settings.md +0 -0
  398. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/recordings/tree-sitter-language-pack.md +0 -0
  399. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/repomap.md +0 -0
  400. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/scripting.md +0 -0
  401. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/sessions.md +0 -0
  402. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/aider-not-found.md +0 -0
  403. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  404. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/imports.md +0 -0
  405. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  406. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/support.md +0 -0
  407. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  408. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  409. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting.md +0 -0
  410. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/browser.md +0 -0
  411. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/caching.md +0 -0
  412. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/commands.md +0 -0
  413. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/conventions.md +0 -0
  414. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/copypaste.md +0 -0
  415. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/images-urls.md +0 -0
  416. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/lint-test.md +0 -0
  417. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/modes.md +0 -0
  418. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/not-code.md +0 -0
  419. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/notifications.md +0 -0
  420. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/tips.md +0 -0
  421. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/tutorials.md +0 -0
  422. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/voice.md +0 -0
  423. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage/watch.md +0 -0
  424. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/docs/usage.md +0 -0
  425. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli/website/share/index.md +0 -0
  426. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli_dev.egg-info/dependency_links.txt +0 -0
  427. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli_dev.egg-info/entry_points.txt +0 -0
  428. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/cecli_dev.egg-info/top_level.txt +0 -0
  429. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/docker/Dockerfile +0 -0
  430. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  431. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/pyproject.toml +0 -0
  432. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/pytest.ini +0 -0
  433. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/requirements/common-constraints.txt +0 -0
  434. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/requirements/requirements-dev.in +0 -0
  435. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/requirements/requirements-dev.txt +0 -0
  436. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/requirements/requirements-help.in +0 -0
  437. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/requirements/requirements-help.txt +0 -0
  438. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/requirements/requirements-playwright.in +0 -0
  439. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/requirements/requirements-playwright.txt +0 -0
  440. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/requirements/tree-sitter.in +0 -0
  441. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/requirements.txt +0 -0
  442. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/30k-image.py +0 -0
  443. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/Dockerfile.jekyll +0 -0
  444. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/__init__.py +0 -0
  445. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/blame.py +0 -0
  446. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/clean_metadata.py +0 -0
  447. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/cost_analyzer.py +0 -0
  448. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/dl_icons.py +0 -0
  449. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/filter-chat-mode.js +0 -0
  450. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/generate_providers.py +0 -0
  451. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/get_contributor_list.js +0 -0
  452. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/history_prompts.py +0 -0
  453. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/homepage.py +0 -0
  454. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/issues.py +0 -0
  455. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/jekyll_build.sh +0 -0
  456. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/jekyll_run.sh +0 -0
  457. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/logo_svg.py +0 -0
  458. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/pip-compile.sh +0 -0
  459. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/recording_audio.py +0 -0
  460. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/redact-cast.py +0 -0
  461. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/rename_to_cecli.py +0 -0
  462. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/tmux_record.sh +0 -0
  463. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/tsl_pack_langs.py +0 -0
  464. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/update-blame.sh +0 -0
  465. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/update-docs.sh +0 -0
  466. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/update-history.py +0 -0
  467. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/versionbump.py +0 -0
  468. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/scripts/yank-old-versions.py +0 -0
  469. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/setup.cfg +0 -0
  470. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/shim.pyproject.toml +0 -0
  471. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/__init__.py +0 -0
  472. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/__init__.py +0 -0
  473. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_aws_credentials.py +0 -0
  474. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_deprecated.py +0 -0
  475. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_editblock.py +0 -0
  476. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_editor.py +0 -0
  477. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_exceptions.py +0 -0
  478. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_find_or_blocks.py +0 -0
  479. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_history.py +0 -0
  480. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_io.py +0 -0
  481. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_linter.py +0 -0
  482. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_model_info_manager.py +0 -0
  483. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_models.py +0 -0
  484. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_onboarding.py +0 -0
  485. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_plugin_manager.py +0 -0
  486. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_prompts.py +0 -0
  487. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_reasoning.py +0 -0
  488. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_repo.py +0 -0
  489. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_repomap.py +0 -0
  490. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_run_cmd.py +0 -0
  491. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_sanity_check_repo.py +0 -0
  492. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_scripting.py +0 -0
  493. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_sendchat.py +0 -0
  494. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_skills.py +0 -0
  495. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_special.py +0 -0
  496. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_ssl_verification.py +0 -0
  497. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_udiff.py +0 -0
  498. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_urls.py +0 -0
  499. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_voice.py +0 -0
  500. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_watch.py +0 -0
  501. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/basic/test_wholefile.py +0 -0
  502. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/coders/test_copypaste_coder.py +0 -0
  503. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/conftest.py +0 -0
  504. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  505. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/chat-history.md +0 -0
  506. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/arduino/test.ino +0 -0
  507. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/c/test.c +0 -0
  508. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/chatito/test.chatito +0 -0
  509. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/clojure/test.clj +0 -0
  510. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  511. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/cpp/test.cpp +0 -0
  512. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/csharp/test.cs +0 -0
  513. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/d/test.d +0 -0
  514. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/dart/test.dart +0 -0
  515. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/elisp/test.el +0 -0
  516. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/elixir/test.ex +0 -0
  517. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/elm/test.elm +0 -0
  518. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/gleam/test.gleam +0 -0
  519. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/go/test.go +0 -0
  520. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/haskell/test.hs +0 -0
  521. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/hcl/test.tf +0 -0
  522. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/java/test.java +0 -0
  523. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/javascript/test.js +0 -0
  524. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/kotlin/test.kt +0 -0
  525. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/lua/test.lua +0 -0
  526. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/matlab/test.m +0 -0
  527. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/ocaml/test.ml +0 -0
  528. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  529. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/php/test.php +0 -0
  530. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/pony/test.pony +0 -0
  531. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/properties/test.properties +0 -0
  532. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/python/test.py +0 -0
  533. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/ql/test.ql +0 -0
  534. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/r/test.r +0 -0
  535. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/racket/test.rkt +0 -0
  536. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/ruby/test.rb +0 -0
  537. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/rust/test.rs +0 -0
  538. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/scala/test.scala +0 -0
  539. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/solidity/test.sol +0 -0
  540. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/swift/test.swift +0 -0
  541. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/tsx/test.tsx +0 -0
  542. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/typescript/test.ts +0 -0
  543. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/udev/test.rules +0 -0
  544. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/languages/zig/test.zig +0 -0
  545. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/sample-code-base/sample.js +0 -0
  546. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/sample-code-base/sample.py +0 -0
  547. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  548. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/watch.js +0 -0
  549. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/watch.lisp +0 -0
  550. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/watch.py +0 -0
  551. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/fixtures/watch_question.js +0 -0
  552. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/help/test_help.py +0 -0
  553. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/scrape/test_playwright_disable.py +0 -0
  554. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/tools/test_git_branch.py +0 -0
  555. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/tools/test_git_diff.py +0 -0
  556. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/tools/test_grep.py +0 -0
  557. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/tools/test_insert_block.py +0 -0
  558. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/tools/test_registry.py +0 -0
  559. {cecli_dev-0.95.8 → cecli_dev-0.95.10}/tests/tools/test_show_numbered_context.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cecli-dev
3
- Version: 0.95.8
3
+ Version: 0.95.10
4
4
  Summary: we also can't pronounce cecli
5
5
  Project-URL: Homepage, https://github.com/dwash96/cecli
6
6
  Project-URL: Documentation, https://github.com/dwash96/cecli
@@ -54,6 +54,7 @@ Requires-Dist: truststore
54
54
  Requires-Dist: rustworkx>=0.15.0
55
55
  Requires-Dist: scipy>=1.15.3
56
56
  Requires-Dist: importlib-metadata>=7.2.1
57
+ Requires-Dist: tomli>=2.3.0; python_version <= "3.10"
57
58
  Requires-Dist: tree-sitter==0.23.2; python_version < "3.10"
58
59
  Requires-Dist: tree-sitter>=0.25.1; python_version >= "3.10"
59
60
  Provides-Extra: dev
@@ -229,6 +230,7 @@ The current priorities are to improve core capabilities and user experience of t
229
230
  4. **Context Delivery** - [Discussion](https://github.com/dwash96/cecli/issues/47)
230
231
  * [ ] Use workflow for internal discovery to better target file snippets needed for specific tasks
231
232
  * [ ] Add support for partial files and code snippets in model completion messages
233
+ * [ ] Update message request structure for optimal caching
232
234
 
233
235
  5. **TUI Experience** - [Discussion](https://github.com/dwash96/cecli/issues/48)
234
236
  * [x] Add a full TUI (probably using textual) to have a visual interface competitive with the other coding agent terminal programs
@@ -240,8 +242,8 @@ The current priorities are to improve core capabilities and user experience of t
240
242
  * [x] Add an explicit "finished" internal tool
241
243
  * [x] Add a configuration json setting for agent mode to specify allowed local tools to use, tool call limits, etc.
242
244
  * [ ] Add a RAG tool for the model to ask questions about the codebase
243
- * [ ] Make the system prompts more aggressive about removing unneeded files/content from the context
244
- * [ ] Add a plugin-like system for allowing agent mode to use user-defined tools in simple python files
245
+ * [x] Make the system prompts more aggressive about removing unneeded files/content from the context
246
+ * [x] Add a plugin-like system for allowing agent mode to use user-defined tools in simple python files
245
247
  * [x] Add a dynamic tool discovery tool to allow the system to have only the tools it needs in context
246
248
 
247
249
  ### All Contributors (Both Cecli and Aider main)
@@ -146,6 +146,7 @@ The current priorities are to improve core capabilities and user experience of t
146
146
  4. **Context Delivery** - [Discussion](https://github.com/dwash96/cecli/issues/47)
147
147
  * [ ] Use workflow for internal discovery to better target file snippets needed for specific tasks
148
148
  * [ ] Add support for partial files and code snippets in model completion messages
149
+ * [ ] Update message request structure for optimal caching
149
150
 
150
151
  5. **TUI Experience** - [Discussion](https://github.com/dwash96/cecli/issues/48)
151
152
  * [x] Add a full TUI (probably using textual) to have a visual interface competitive with the other coding agent terminal programs
@@ -157,8 +158,8 @@ The current priorities are to improve core capabilities and user experience of t
157
158
  * [x] Add an explicit "finished" internal tool
158
159
  * [x] Add a configuration json setting for agent mode to specify allowed local tools to use, tool call limits, etc.
159
160
  * [ ] Add a RAG tool for the model to ask questions about the codebase
160
- * [ ] Make the system prompts more aggressive about removing unneeded files/content from the context
161
- * [ ] Add a plugin-like system for allowing agent mode to use user-defined tools in simple python files
161
+ * [x] Make the system prompts more aggressive about removing unneeded files/content from the context
162
+ * [x] Add a plugin-like system for allowing agent mode to use user-defined tools in simple python files
162
163
  * [x] Add a dynamic tool discovery tool to allow the system to have only the tools it needs in context
163
164
 
164
165
  ### All Contributors (Both Cecli and Aider main)
@@ -1,6 +1,6 @@
1
1
  from packaging import version
2
2
 
3
- __version__ = "0.95.8.dev"
3
+ __version__ = "0.95.10.dev"
4
4
  safe_version = __version__
5
5
 
6
6
  try:
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.95.8'
32
- __version_tuple__ = version_tuple = (0, 95, 8)
31
+ __version__ = version = '0.95.10'
32
+ __version_tuple__ = version_tuple = (0, 95, 10)
33
33
 
34
- __commit_id__ = commit_id = 'g930eeb2cb'
34
+ __commit_id__ = commit_id = 'gf1225144f'
@@ -757,12 +757,6 @@ def get_parser(default_config_files, git_root):
757
757
  help="Show release notes on first run of new version (default: None, ask user)",
758
758
  default=None,
759
759
  )
760
- group.add_argument(
761
- "--install-main-branch",
762
- action="store_true",
763
- help="Install the latest version from the main branch",
764
- default=False,
765
- )
766
760
  group.add_argument(
767
761
  "--upgrade",
768
762
  "--update",
@@ -23,7 +23,7 @@ from cecli.helpers.similarity import (
23
23
  normalize_vector,
24
24
  )
25
25
  from cecli.helpers.skills import SkillsManager
26
- from cecli.mcp.server import LocalServer
26
+ from cecli.mcp import LocalServer, McpServerManager
27
27
  from cecli.repo import ANY_GIT_ERROR
28
28
  from cecli.tools.utils.registry import ToolRegistry
29
29
 
@@ -209,14 +209,17 @@ class AgentCoder(Coder):
209
209
  local_tools = self.get_local_tool_schemas()
210
210
  if not local_tools:
211
211
  return
212
+
212
213
  local_server_config = {"name": server_name}
213
214
  local_server = LocalServer(local_server_config)
214
- if not self.mcp_servers:
215
- self.mcp_servers = []
216
- if not any(isinstance(s, LocalServer) for s in self.mcp_servers):
217
- self.mcp_servers.append(local_server)
215
+
216
+ if not self.mcp_manager:
217
+ self.mcp_manager = McpServerManager()
218
+ if not self.mcp_manager.get_server(server_name):
219
+ await self.mcp_manager.add_server(local_server)
218
220
  if not self.mcp_tools:
219
221
  self.mcp_tools = []
222
+
220
223
  if server_name not in [name for name, _ in self.mcp_tools]:
221
224
  self.mcp_tools.append((local_server.name, local_tools))
222
225
 
@@ -257,9 +260,7 @@ class AgentCoder(Coder):
257
260
  t.get("function", {}).get("name") == norm_tool_name
258
261
  for t in server_tools
259
262
  ):
260
- server = next(
261
- (s for s in self.mcp_servers if s.name == server_name), None
262
- )
263
+ server = self.mcp_manager.get_server(server_name)
263
264
  if server:
264
265
  for params in parsed_args_list:
265
266
  tasks.append(
@@ -955,7 +956,7 @@ I will proceed based on the current context.""")
955
956
  if self.mcp_tools:
956
957
  for server_name, server_tools in self.mcp_tools:
957
958
  if any(t.get("function", {}).get("name") == norm_tool_name for t in server_tools):
958
- server = next((s for s in self.mcp_servers if s.name == server_name), None)
959
+ server = self.mcp_manager.get_server(server_name)
959
960
  if server:
960
961
  return await self._execute_mcp_tool(server, norm_tool_name, params)
961
962
  else:
@@ -1499,7 +1500,7 @@ Just reply with fixed versions of the {blocks} above that failed to match.
1499
1500
  if shared_output:
1500
1501
  self.io.tool_output("Shell command output:\n" + shared_output)
1501
1502
  if self.auto_test and not self.reflected_message:
1502
- test_errors = await self.commands.cmd_test(self.test_cmd)
1503
+ test_errors = await self.commands.execute("test", self.test_cmd)
1503
1504
  if test_errors:
1504
1505
  ok = await self.io.confirm_ask("Attempt to fix test errors?")
1505
1506
  if ok:
@@ -44,7 +44,7 @@ from cecli.history import ChatSummary
44
44
  from cecli.io import ConfirmGroup, InputOutput
45
45
  from cecli.linter import Linter
46
46
  from cecli.llm import litellm
47
- from cecli.mcp.server import LocalServer
47
+ from cecli.mcp import LocalServer
48
48
  from cecli.models import RETRY_TIMEOUT
49
49
  from cecli.reasoning_tags import (
50
50
  REASONING_TAG,
@@ -138,7 +138,7 @@ class Coder:
138
138
  chat_language = None
139
139
  commit_language = None
140
140
  file_watcher = None
141
- mcp_servers = None
141
+ mcp_manager = None
142
142
  mcp_tools = None
143
143
  run_one_completed = True
144
144
  compact_context_completed = True
@@ -249,8 +249,8 @@ class Coder:
249
249
 
250
250
  if res is not None:
251
251
  if from_coder:
252
- if from_coder.mcp_servers and kwargs.get("mcp_servers", False):
253
- res.mcp_servers = from_coder.mcp_servers
252
+ if from_coder.mcp_manager:
253
+ res.mcp_manager = from_coder.mcp_manager
254
254
  res.mcp_tools = from_coder.mcp_tools
255
255
 
256
256
  # Transfer TUI app weak reference
@@ -316,7 +316,7 @@ class Coder:
316
316
  file_watcher=None,
317
317
  auto_copy_context=False,
318
318
  auto_accept_architect=True,
319
- mcp_servers=None,
319
+ mcp_manager=None,
320
320
  enable_context_compaction=False,
321
321
  context_compaction_max_tokens=None,
322
322
  context_compaction_summary_tokens=8192,
@@ -350,7 +350,7 @@ class Coder:
350
350
  self.args = args
351
351
 
352
352
  self.num_cache_warming_pings = num_cache_warming_pings
353
- self.mcp_servers = mcp_servers
353
+ self.mcp_manager = mcp_manager
354
354
  self.enable_context_compaction = enable_context_compaction
355
355
 
356
356
  self.context_compaction_max_tokens = context_compaction_max_tokens
@@ -1330,14 +1330,24 @@ class Coder:
1330
1330
  await self.io.input_task
1331
1331
  user_message = self.io.input_task.result()
1332
1332
 
1333
- if self.args and not self.args.tui:
1333
+ if (
1334
+ self.args
1335
+ and not self.args.tui
1336
+ and self.show_pretty()
1337
+ and self.args.fancy_input
1338
+ ):
1334
1339
  self.io.tool_output("Processing...\n")
1335
1340
 
1336
1341
  self.io.output_task = asyncio.create_task(self.generate(user_message, preproc))
1337
1342
 
1338
1343
  await self.io.output_task
1339
1344
 
1340
- if self.args and not self.args.tui:
1345
+ if (
1346
+ self.args
1347
+ and not self.args.tui
1348
+ and self.show_pretty()
1349
+ and self.args.fancy_input
1350
+ ):
1341
1351
  self.io.tool_output("Finished.")
1342
1352
 
1343
1353
  self.io.ring_bell()
@@ -1564,7 +1574,7 @@ class Coder:
1564
1574
 
1565
1575
  def copy_context(self):
1566
1576
  if self.auto_copy_context:
1567
- self.commands.cmd_copy_context()
1577
+ self.commands.execute("copy-context", "")
1568
1578
 
1569
1579
  async def get_input(self):
1570
1580
  inchat_files = self.get_inchat_relative_files()
@@ -1684,7 +1694,7 @@ class Coder:
1684
1694
  explicit_yes_required=self.args.yes_always_commands,
1685
1695
  ):
1686
1696
  inp += "\n\n"
1687
- inp += await self.commands.do_run("web", url, return_content=True)
1697
+ inp += await self.commands.execute("web", url, return_content=True)
1688
1698
  else:
1689
1699
  self.rejected_urls.add(url)
1690
1700
 
@@ -2438,7 +2448,7 @@ class Coder:
2438
2448
  ]
2439
2449
 
2440
2450
  if edited and self.auto_test:
2441
- test_errors = await self.commands.cmd_test(self.test_cmd)
2451
+ test_errors = await self.commands.execute("test", self.test_cmd)
2442
2452
  self.test_outcome = not test_errors
2443
2453
  if test_errors:
2444
2454
  ok = await self.io.confirm_ask("Attempt to fix test errors?")
@@ -2562,7 +2572,7 @@ class Coder:
2562
2572
  and tool_name_from_schema.lower() == tool_call.function.name.lower()
2563
2573
  ):
2564
2574
  # Find the McpServer instance that will be used for communication
2565
- for server in self.mcp_servers:
2575
+ for server in self.mcp_manager:
2566
2576
  if server.name == server_name:
2567
2577
  if server not in server_tool_calls:
2568
2578
  server_tool_calls[server] = []
@@ -2740,6 +2750,7 @@ class Coder:
2740
2750
  Initialize tools from all configured MCP servers. MCP Servers that fail to be
2741
2751
  initialized will not be available to the Coder instance.
2742
2752
  """
2753
+ # TODO(@gopar): refactor here once we have fully moved over to use the mcp manager
2743
2754
  tools = []
2744
2755
 
2745
2756
  async def get_server_tools(server):
@@ -2750,9 +2761,13 @@ class Coder:
2750
2761
  return (server.name, server_tools)
2751
2762
 
2752
2763
  try:
2753
- session = await server.connect()
2764
+ did_connect = await self.mcp_manager.connect_server(server.name)
2765
+ if not did_connect:
2766
+ raise Exception("Failed to load tools")
2767
+
2768
+ server = self.mcp_manager.get_server(server.name)
2754
2769
  server_tools = await experimental_mcp_client.load_mcp_tools(
2755
- session=session, format="openai"
2770
+ session=server.session, format="openai"
2756
2771
  )
2757
2772
  return (server.name, server_tools)
2758
2773
  except Exception as e:
@@ -2761,11 +2776,11 @@ class Coder:
2761
2776
  return None
2762
2777
 
2763
2778
  async def get_all_server_tools():
2764
- tasks = [get_server_tools(server) for server in self.mcp_servers]
2779
+ tasks = [get_server_tools(server) for server in self.mcp_manager if server.is_enabled]
2765
2780
  results = await asyncio.gather(*tasks)
2766
2781
  return [result for result in results if result is not None]
2767
2782
 
2768
- if self.mcp_servers:
2783
+ if self.mcp_manager:
2769
2784
  # Retry initialization in case of CancelledError
2770
2785
  max_retries = 3
2771
2786
  for i in range(max_retries):
@@ -3852,7 +3867,7 @@ class Coder:
3852
3867
  self.coder_commit_hashes.add(commit_hash)
3853
3868
  self.last_coder_commit_message = commit_message
3854
3869
  if self.show_diffs:
3855
- self.commands.cmd_diff()
3870
+ self.commands.execute("diff", "")
3856
3871
 
3857
3872
  def show_undo_hint(self):
3858
3873
  if not self.commit_before_message:
@@ -65,7 +65,13 @@ class AddCommand(BaseCommand):
65
65
  io.tool_output(f"You can add to git with: /git add {fname}")
66
66
  continue
67
67
 
68
- if await io.confirm_ask(f"No files matched '{word}'. Do you want to create {fname}?"):
68
+ confirm_fname = os.path.relpath(fname)
69
+ if len(confirm_fname) > 64:
70
+ confirm_fname = f".../{os.path.basename(confirm_fname)}"
71
+
72
+ if await io.confirm_ask(
73
+ f"No files matched '{confirm_fname}'. Do you want to create this file?"
74
+ ):
69
75
  try:
70
76
  fname.parent.mkdir(parents=True, exist_ok=True)
71
77
  fname.touch()
@@ -178,7 +178,7 @@ class Commands:
178
178
  commands = [f"/{cmd}" for cmd in registry_commands]
179
179
  return sorted(commands)
180
180
 
181
- async def do_run(self, cmd_name, args, **kwargs):
181
+ async def execute(self, cmd_name, args, **kwargs):
182
182
  command_class = CommandRegistry.get_command(cmd_name)
183
183
  if not command_class:
184
184
  self.io.tool_output(f"Error: Command {cmd_name} not found.")
@@ -224,17 +224,17 @@ class Commands:
224
224
 
225
225
  async def run(self, inp):
226
226
  if inp.startswith("!"):
227
- return await self.do_run("run", inp[1:])
227
+ return await self.execute("run", inp[1:])
228
228
  res = self.matching_commands(inp)
229
229
  if res is None:
230
230
  return
231
231
  matching_commands, first_word, rest_inp = res
232
232
  if len(matching_commands) == 1:
233
233
  command = matching_commands[0][1:]
234
- return await self.do_run(command, rest_inp)
234
+ return await self.execute(command, rest_inp)
235
235
  elif first_word in matching_commands:
236
236
  command = first_word[1:]
237
- return await self.do_run(command, rest_inp)
237
+ return await self.execute(command, rest_inp)
238
238
  elif len(matching_commands) > 1:
239
239
  self.io.tool_error(f"Ambiguous command: {', '.join(matching_commands)}")
240
240
  else:
@@ -14,14 +14,6 @@ class ExitCommand(BaseCommand):
14
14
  @classmethod
15
15
  async def execute(cls, io, coder, args, **kwargs):
16
16
  """Execute the exit command with given parameters."""
17
- for server in coder.mcp_servers:
18
- try:
19
- await server.exit_stack.aclose()
20
- except Exception:
21
- pass
22
-
23
- await asyncio.sleep(0)
24
-
25
17
  # Check if running in TUI mode - use graceful exit to restore terminal
26
18
  if hasattr(io, "request_exit"):
27
19
  io.request_exit()
@@ -0,0 +1,112 @@
1
+ import os
2
+ from typing import List
3
+
4
+ from cecli.commands.utils.base_command import BaseCommand
5
+ from cecli.commands.utils.helpers import format_command_result
6
+ from cecli.utils import run_fzf
7
+
8
+
9
+ class HistorySearchCommand(BaseCommand):
10
+ NORM_NAME = "history-search"
11
+ DESCRIPTION = "Fuzzy search in history and paste it in the prompt"
12
+
13
+ @classmethod
14
+ async def execute(cls, io, coder, args, **kwargs):
15
+ """Execute the history-search command with given parameters."""
16
+ # Get history lines based on whether we're in TUI mode or not
17
+ if coder.tui and coder.tui():
18
+ # In TUI mode, parse the history file directly using our custom parser
19
+ history_lines = cls.parse_input_history_file(io.input_history_file)
20
+ else:
21
+ # In non-TUI mode, use the io.get_input_history() method
22
+ history_lines = io.get_input_history()
23
+
24
+ selected_lines = run_fzf(history_lines, coder=coder)
25
+ if selected_lines:
26
+ io.set_placeholder("".join(selected_lines))
27
+
28
+ if coder.tui and coder.tui():
29
+ coder.tui().set_input_value("".join(selected_lines))
30
+ return format_command_result(
31
+ io, "history-search", "Selected history lines and set placeholder"
32
+ )
33
+ else:
34
+ return format_command_result(io, "history-search", "No history lines selected")
35
+
36
+ @classmethod
37
+ def get_completions(cls, io, coder, args) -> List[str]:
38
+ """Get completion options for history-search command."""
39
+ return []
40
+
41
+ @classmethod
42
+ def get_help(cls) -> str:
43
+ """Get help text for the history-search command."""
44
+ help_text = super().get_help()
45
+ help_text += "\nUsage:\n"
46
+ help_text += " /history-search # Fuzzy search through command history\n"
47
+ help_text += (
48
+ "\nThis command opens a fuzzy finder (FZF) to search through your command history.\n"
49
+ )
50
+ help_text += "Selected lines will be pasted into the input prompt for editing.\n"
51
+ return help_text
52
+
53
+ @classmethod
54
+ def parse_input_history_file(cls, file_path: str) -> List[str]:
55
+ """Parse the input history file format.
56
+
57
+ The file format consists of blocks separated by timestamp lines starting with '#'.
58
+ Each block has lines starting with '+' for the actual input.
59
+
60
+ Args:
61
+ file_path: Path to the history file
62
+
63
+ Returns:
64
+ List of history entries (strings)
65
+ """
66
+ if not file_path or not os.path.exists(file_path):
67
+ return []
68
+
69
+ try:
70
+ with open(file_path, "r") as f:
71
+ content = f.read()
72
+ except (OSError, IOError):
73
+ return []
74
+
75
+ # Parse the file format: blocks separated by timestamp lines starting with '#'
76
+ # Each block has lines starting with '+' for the actual input
77
+ history = []
78
+ current_block = []
79
+ in_block = False
80
+
81
+ for line in content.splitlines():
82
+ line = line.rstrip("\n")
83
+
84
+ if line.startswith("#"):
85
+ # This is a timestamp line - start a new block
86
+ if current_block:
87
+ # Join the current block lines and add to history
88
+ block_text = "\n".join(current_block)
89
+ history.append(block_text)
90
+ current_block = []
91
+ in_block = True
92
+ # Reset in_block if we encounter another timestamp without any + lines
93
+ # This handles consecutive timestamp lines
94
+ elif line.startswith("+") and in_block:
95
+ # This is an input line in the current block
96
+ # Remove the leading '+' and add to current block
97
+ # Use [1:] to remove the first character (the '+')
98
+ # This preserves any leading spaces that might be part of the input
99
+ current_block.append(line[1:])
100
+ elif line.strip() == "":
101
+ # Empty line - ignore
102
+ continue
103
+ else:
104
+ # Unexpected line format - skip it
105
+ continue
106
+
107
+ # Don't forget the last block
108
+ if current_block:
109
+ block_text = "\n".join(current_block)
110
+ history.append(block_text)
111
+
112
+ return history