cecli-dev 0.95.7__tar.gz → 0.95.9__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 (557) hide show
  1. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/CONTRIBUTING.md +7 -9
  2. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/PKG-INFO +17 -8
  3. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/README.md +16 -8
  4. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/__init__.py +1 -1
  5. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/_version.py +3 -3
  6. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/args.py +11 -6
  7. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/coders/agent_coder.py +11 -10
  8. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/coders/base_coder.py +20 -15
  9. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/__init__.py +3 -0
  10. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/core.py +4 -4
  11. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/exit.py +0 -8
  12. cecli_dev-0.95.9/cecli/commands/history_search.py +112 -0
  13. cecli_dev-0.95.9/cecli/commands/terminal_setup.py +759 -0
  14. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/helpers/model_providers.py +4 -3
  15. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/io.py +7 -7
  16. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/main.py +60 -50
  17. cecli_dev-0.95.9/cecli/mcp/__init__.py +14 -0
  18. cecli_dev-0.95.9/cecli/mcp/manager.py +249 -0
  19. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/mcp/oauth.py +0 -25
  20. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/mcp/server.py +15 -4
  21. cecli_dev-0.95.7/cecli/mcp/__init__.py → cecli_dev-0.95.9/cecli/mcp/utils.py +32 -2
  22. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/onboarding.py +1 -1
  23. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tui/app.py +16 -6
  24. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tui/widgets/completion_bar.py +1 -0
  25. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tui/widgets/input_area.py +4 -0
  26. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tui/widgets/output.py +19 -6
  27. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/urls.py +2 -2
  28. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/utils.py +9 -6
  29. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/versioncheck.py +6 -2
  30. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/config/tui.md +13 -5
  31. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli_dev.egg-info/PKG-INFO +17 -8
  32. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli_dev.egg-info/SOURCES.txt +3 -0
  33. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli_dev.egg-info/requires.txt +3 -0
  34. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/requirements/requirements.in +1 -0
  35. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_coder.py +38 -23
  36. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_commands.py +132 -124
  37. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_main.py +16 -9
  38. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_model_provider_manager.py +17 -4
  39. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_sessions.py +5 -5
  40. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/scrape/test_scrape.py +1 -1
  41. cecli_dev-0.95.7/cecli/commands/history_search.py +0 -40
  42. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/.dockerignore +0 -0
  43. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/.flake8 +0 -0
  44. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/.gitattributes +0 -0
  45. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  46. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/.github/workflows/check_pypi_version.yml +0 -0
  47. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/.github/workflows/docker-build-test.yml +0 -0
  48. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/.github/workflows/docker-release.yml +0 -0
  49. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/.github/workflows/issues.yml +0 -0
  50. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/.github/workflows/pages.yml +0 -0
  51. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/.github/workflows/pre-commit.yml +0 -0
  52. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/.github/workflows/release.yml +0 -0
  53. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/.github/workflows/ubuntu-tests.yml +0 -0
  54. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/.github/workflows/windows-tests.yml +0 -0
  55. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/.github/workflows/windows_check_pypi_version.yml +0 -0
  56. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/.gitignore +0 -0
  57. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/.pre-commit-config.yaml +0 -0
  58. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/CHANGELOG.md +0 -0
  59. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/CNAME +0 -0
  60. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/HISTORY.md +0 -0
  61. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/LICENSE.txt +0 -0
  62. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/MANIFEST.in +0 -0
  63. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/benchmark/Dockerfile +0 -0
  64. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/benchmark/README.md +0 -0
  65. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/benchmark/__init__.py +0 -0
  66. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/benchmark/benchmark.py +0 -0
  67. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/benchmark/benchmark_classic.py +0 -0
  68. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/benchmark/clone-exercism.sh +0 -0
  69. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/benchmark/cpp-test.sh +0 -0
  70. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/benchmark/docker.sh +0 -0
  71. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/benchmark/docker_build.sh +0 -0
  72. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/benchmark/install-docker-ubuntu.sh +0 -0
  73. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/benchmark/npm-test.sh +0 -0
  74. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/benchmark/over_time.py +0 -0
  75. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/benchmark/plot.sh +0 -0
  76. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/benchmark/plots.py +0 -0
  77. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/benchmark/problem_stats.py +0 -0
  78. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/benchmark/prompts.py +0 -0
  79. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/benchmark/refactor_tools.py +0 -0
  80. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/benchmark/rsync.sh +0 -0
  81. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/benchmark/rungrid.py +0 -0
  82. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/benchmark/swe-bench-lite.txt +0 -0
  83. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/benchmark/swe-bench.txt +0 -0
  84. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/benchmark/swe_bench.py +0 -0
  85. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/benchmark/test_benchmark.py +0 -0
  86. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/__main__.py +0 -0
  87. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/args_formatter.py +0 -0
  88. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/change_tracker.py +0 -0
  89. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/coders/__init__.py +0 -0
  90. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/coders/architect_coder.py +0 -0
  91. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/coders/ask_coder.py +0 -0
  92. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/coders/chat_chunks.py +0 -0
  93. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/coders/context_coder.py +0 -0
  94. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/coders/copypaste_coder.py +0 -0
  95. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/coders/editblock_coder.py +0 -0
  96. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/coders/editblock_fenced_coder.py +0 -0
  97. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/coders/editblock_func_coder.py +0 -0
  98. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  99. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/coders/editor_editblock_coder.py +0 -0
  100. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/coders/editor_whole_coder.py +0 -0
  101. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/coders/help_coder.py +0 -0
  102. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/coders/patch_coder.py +0 -0
  103. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/coders/search_replace.py +0 -0
  104. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/coders/shell.py +0 -0
  105. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/coders/single_wholefile_func_coder.py +0 -0
  106. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/coders/udiff_coder.py +0 -0
  107. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/coders/udiff_simple.py +0 -0
  108. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/coders/wholefile_coder.py +0 -0
  109. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/coders/wholefile_func_coder.py +0 -0
  110. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/add.py +0 -0
  111. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/agent.py +0 -0
  112. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/architect.py +0 -0
  113. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/ask.py +0 -0
  114. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/chat_mode.py +0 -0
  115. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/clear.py +0 -0
  116. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/code.py +0 -0
  117. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/command_prefix.py +0 -0
  118. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/commit.py +0 -0
  119. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/context.py +0 -0
  120. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/context_blocks.py +0 -0
  121. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/context_management.py +0 -0
  122. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/copy.py +0 -0
  123. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/copy_context.py +0 -0
  124. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/diff.py +0 -0
  125. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/drop.py +0 -0
  126. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/editor.py +0 -0
  127. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/git.py +0 -0
  128. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/help.py +0 -0
  129. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/lint.py +0 -0
  130. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/list_sessions.py +0 -0
  131. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/load.py +0 -0
  132. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/load_session.py +0 -0
  133. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/load_skill.py +0 -0
  134. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/ls.py +0 -0
  135. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/map.py +0 -0
  136. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/map_refresh.py +0 -0
  137. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/model.py +0 -0
  138. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/models.py +0 -0
  139. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/multiline_mode.py +0 -0
  140. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/paste.py +0 -0
  141. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/quit.py +0 -0
  142. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/read_only.py +0 -0
  143. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/read_only_stub.py +0 -0
  144. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/reasoning_effort.py +0 -0
  145. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/remove_skill.py +0 -0
  146. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/report.py +0 -0
  147. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/reset.py +0 -0
  148. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/run.py +0 -0
  149. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/save.py +0 -0
  150. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/save_session.py +0 -0
  151. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/settings.py +0 -0
  152. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/test.py +0 -0
  153. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/think_tokens.py +0 -0
  154. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/tokens.py +0 -0
  155. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/undo.py +0 -0
  156. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/utils/__init__.py +0 -0
  157. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/utils/base_command.py +0 -0
  158. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/utils/helpers.py +0 -0
  159. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/utils/registry.py +0 -0
  160. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/utils/save_load_manager.py +0 -0
  161. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/voice.py +0 -0
  162. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/weak_model.py +0 -0
  163. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/commands/web.py +0 -0
  164. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/deprecated_args.py +0 -0
  165. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/diffs.py +0 -0
  166. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/dump.py +0 -0
  167. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/editor.py +0 -0
  168. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/exceptions.py +0 -0
  169. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/format_settings.py +0 -0
  170. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/help.py +0 -0
  171. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/help_pats.py +0 -0
  172. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/helpers/__init__.py +0 -0
  173. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/helpers/copypaste.py +0 -0
  174. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/helpers/coroutines.py +0 -0
  175. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/helpers/file_searcher.py +0 -0
  176. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/helpers/nested.py +0 -0
  177. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/helpers/plugin_manager.py +0 -0
  178. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/helpers/profiler.py +0 -0
  179. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/helpers/requests.py +0 -0
  180. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/helpers/similarity.py +0 -0
  181. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/helpers/skills.py +0 -0
  182. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/history.py +0 -0
  183. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/linter.py +0 -0
  184. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/llm.py +0 -0
  185. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/mdstream.py +0 -0
  186. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/models.py +0 -0
  187. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/prompts/__init__.py +0 -0
  188. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/prompts/agent.yml +0 -0
  189. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/prompts/architect.yml +0 -0
  190. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/prompts/ask.yml +0 -0
  191. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/prompts/base.yml +0 -0
  192. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/prompts/context.yml +0 -0
  193. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/prompts/copypaste.yml +0 -0
  194. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/prompts/editblock.yml +0 -0
  195. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/prompts/editblock_fenced.yml +0 -0
  196. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/prompts/editblock_func.yml +0 -0
  197. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/prompts/editor_diff_fenced.yml +0 -0
  198. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/prompts/editor_editblock.yml +0 -0
  199. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/prompts/editor_whole.yml +0 -0
  200. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/prompts/help.yml +0 -0
  201. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/prompts/patch.yml +0 -0
  202. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/prompts/single_wholefile_func.yml +0 -0
  203. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/prompts/udiff.yml +0 -0
  204. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/prompts/udiff_simple.yml +0 -0
  205. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/prompts/utils/__init__.py +0 -0
  206. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/prompts/utils/registry.py +0 -0
  207. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/prompts/utils/system.py +0 -0
  208. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/prompts/wholefile.yml +0 -0
  209. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/prompts/wholefile_func.yml +0 -0
  210. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  211. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  212. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  213. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  214. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  215. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  216. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  217. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  218. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  219. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  220. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  221. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  222. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  223. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  224. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  225. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  226. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  227. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  228. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  229. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  230. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  231. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  232. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  233. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  234. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  235. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  236. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  237. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  238. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  239. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  240. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  241. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/README.md +0 -0
  242. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  243. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  244. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  245. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  246. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  247. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  248. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  249. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  250. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  251. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  252. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  253. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  254. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  255. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  256. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  257. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  258. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  259. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  260. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  261. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  262. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  263. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  264. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  265. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  266. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  267. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  268. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/reasoning_tags.py +0 -0
  269. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/repo.py +0 -0
  270. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/repomap.py +0 -0
  271. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/report.py +0 -0
  272. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/resources/__init__.py +0 -0
  273. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/resources/model-metadata.json +0 -0
  274. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/resources/model-settings.yml +0 -0
  275. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/resources/providers.json +0 -0
  276. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/run_cmd.py +0 -0
  277. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/scrape.py +0 -0
  278. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/sendchat.py +0 -0
  279. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/sessions.py +0 -0
  280. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/special.py +0 -0
  281. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/__init__.py +0 -0
  282. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/command.py +0 -0
  283. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/command_interactive.py +0 -0
  284. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/context_manager.py +0 -0
  285. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/delete_block.py +0 -0
  286. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/delete_line.py +0 -0
  287. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/delete_lines.py +0 -0
  288. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/extract_lines.py +0 -0
  289. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/finished.py +0 -0
  290. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/git_branch.py +0 -0
  291. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/git_diff.py +0 -0
  292. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/git_log.py +0 -0
  293. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/git_remote.py +0 -0
  294. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/git_show.py +0 -0
  295. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/git_status.py +0 -0
  296. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/grep.py +0 -0
  297. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/indent_lines.py +0 -0
  298. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/insert_block.py +0 -0
  299. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/list_changes.py +0 -0
  300. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/load_skill.py +0 -0
  301. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/ls.py +0 -0
  302. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/remove_skill.py +0 -0
  303. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/replace_all.py +0 -0
  304. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/replace_line.py +0 -0
  305. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/replace_lines.py +0 -0
  306. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/replace_text.py +0 -0
  307. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/show_numbered_context.py +0 -0
  308. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/thinking.py +0 -0
  309. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/undo_change.py +0 -0
  310. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/update_todo_list.py +0 -0
  311. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/utils/base_tool.py +0 -0
  312. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/utils/helpers.py +0 -0
  313. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/utils/output.py +0 -0
  314. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/utils/registry.py +0 -0
  315. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/view_files_matching.py +0 -0
  316. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tools/view_files_with_symbol.py +0 -0
  317. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tui/__init__.py +0 -0
  318. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tui/io.py +3 -3
  319. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tui/styles.tcss +0 -0
  320. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tui/widgets/__init__.py +0 -0
  321. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tui/widgets/file_list.py +0 -0
  322. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tui/widgets/footer.py +0 -0
  323. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tui/widgets/key_hints.py +0 -0
  324. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tui/widgets/status_bar.py +0 -0
  325. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/tui/worker.py +0 -0
  326. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/voice.py +0 -0
  327. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/waiting.py +0 -0
  328. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/watch.py +0 -0
  329. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/watch_prompts.py +0 -0
  330. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/Gemfile +0 -0
  331. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/_includes/blame.md +0 -0
  332. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/_includes/get-started.md +0 -0
  333. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/_includes/help-tip.md +0 -0
  334. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/_includes/help.md +0 -0
  335. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/_includes/install.md +0 -0
  336. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/_includes/keys.md +0 -0
  337. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/_includes/model-warnings.md +0 -0
  338. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/_includes/multi-line.md +0 -0
  339. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/_includes/python-m-aider.md +0 -0
  340. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/_includes/recording.css +0 -0
  341. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/_includes/recording.md +0 -0
  342. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/_includes/replit-pipx.md +0 -0
  343. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/_includes/works-best.md +0 -0
  344. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/_sass/custom/custom.scss +0 -0
  345. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/config/adv-model-settings.md +0 -0
  346. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/config/agent-mode.md +0 -0
  347. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/config/aider_conf.md +0 -0
  348. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/config/api-keys.md +0 -0
  349. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/config/custom-commands.md +0 -0
  350. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  351. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/config/dotenv.md +0 -0
  352. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/config/editor.md +0 -0
  353. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/config/mcp.md +0 -0
  354. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/config/model-aliases.md +0 -0
  355. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/config/options.md +0 -0
  356. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/config/reasoning.md +0 -0
  357. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/config/skills.md +0 -0
  358. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/config.md +0 -0
  359. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/faq.md +0 -0
  360. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/git.md +0 -0
  361. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/index.md +0 -0
  362. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/install/codespaces.md +0 -0
  363. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/install/docker.md +0 -0
  364. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/install/optional.md +0 -0
  365. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/install/replit.md +0 -0
  366. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/install.md +0 -0
  367. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/languages.md +0 -0
  368. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  369. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/legal/privacy.md +0 -0
  370. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/llms/anthropic.md +0 -0
  371. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/llms/azure.md +0 -0
  372. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/llms/bedrock.md +0 -0
  373. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/llms/cohere.md +0 -0
  374. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/llms/deepseek.md +0 -0
  375. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/llms/gemini.md +0 -0
  376. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/llms/github.md +0 -0
  377. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/llms/groq.md +0 -0
  378. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/llms/lm-studio.md +0 -0
  379. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/llms/ollama.md +0 -0
  380. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/llms/openai-compat.md +0 -0
  381. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/llms/openai.md +0 -0
  382. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/llms/openrouter.md +0 -0
  383. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/llms/other.md +0 -0
  384. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/llms/vertex.md +0 -0
  385. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/llms/warnings.md +0 -0
  386. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/llms/xai.md +0 -0
  387. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/llms.md +0 -0
  388. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/more/analytics.md +0 -0
  389. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/more/edit-formats.md +0 -0
  390. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/more/infinite-output.md +0 -0
  391. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/more-info.md +0 -0
  392. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/recordings/auto-accept-architect.md +0 -0
  393. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/recordings/dont-drop-original-read-files.md +0 -0
  394. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/recordings/index.md +0 -0
  395. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/recordings/model-accepts-settings.md +0 -0
  396. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/recordings/tree-sitter-language-pack.md +0 -0
  397. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/repomap.md +0 -0
  398. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/scripting.md +0 -0
  399. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/sessions.md +0 -0
  400. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/troubleshooting/aider-not-found.md +0 -0
  401. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  402. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/troubleshooting/imports.md +0 -0
  403. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  404. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/troubleshooting/support.md +0 -0
  405. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  406. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  407. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/troubleshooting.md +0 -0
  408. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/usage/browser.md +0 -0
  409. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/usage/caching.md +0 -0
  410. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/usage/commands.md +0 -0
  411. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/usage/conventions.md +0 -0
  412. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/usage/copypaste.md +0 -0
  413. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/usage/images-urls.md +0 -0
  414. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/usage/lint-test.md +0 -0
  415. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/usage/modes.md +0 -0
  416. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/usage/not-code.md +0 -0
  417. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/usage/notifications.md +0 -0
  418. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/usage/tips.md +0 -0
  419. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/usage/tutorials.md +0 -0
  420. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/usage/voice.md +0 -0
  421. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/usage/watch.md +0 -0
  422. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/docs/usage.md +0 -0
  423. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli/website/share/index.md +0 -0
  424. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli_dev.egg-info/dependency_links.txt +0 -0
  425. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli_dev.egg-info/entry_points.txt +0 -0
  426. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/cecli_dev.egg-info/top_level.txt +0 -0
  427. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/docker/Dockerfile +0 -0
  428. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  429. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/pyproject.toml +0 -0
  430. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/pytest.ini +0 -0
  431. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/requirements/common-constraints.txt +0 -0
  432. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/requirements/requirements-dev.in +0 -0
  433. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/requirements/requirements-dev.txt +0 -0
  434. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/requirements/requirements-help.in +0 -0
  435. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/requirements/requirements-help.txt +0 -0
  436. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/requirements/requirements-playwright.in +0 -0
  437. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/requirements/requirements-playwright.txt +0 -0
  438. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/requirements/tree-sitter.in +0 -0
  439. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/requirements.txt +0 -0
  440. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/30k-image.py +0 -0
  441. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/Dockerfile.jekyll +0 -0
  442. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/__init__.py +0 -0
  443. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/blame.py +0 -0
  444. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/clean_metadata.py +0 -0
  445. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/cost_analyzer.py +0 -0
  446. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/dl_icons.py +0 -0
  447. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/filter-chat-mode.js +0 -0
  448. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/generate_providers.py +0 -0
  449. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/get_contributor_list.js +0 -0
  450. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/history_prompts.py +0 -0
  451. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/homepage.py +0 -0
  452. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/issues.py +0 -0
  453. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/jekyll_build.sh +0 -0
  454. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/jekyll_run.sh +0 -0
  455. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/logo_svg.py +0 -0
  456. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/pip-compile.sh +0 -0
  457. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/recording_audio.py +0 -0
  458. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/redact-cast.py +0 -0
  459. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/rename_to_cecli.py +0 -0
  460. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/tmux_record.sh +0 -0
  461. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/tsl_pack_langs.py +0 -0
  462. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/update-blame.sh +0 -0
  463. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/update-docs.sh +0 -0
  464. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/update-history.py +0 -0
  465. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/versionbump.py +0 -0
  466. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/scripts/yank-old-versions.py +0 -0
  467. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/setup.cfg +0 -0
  468. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/shim.pyproject.toml +0 -0
  469. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/__init__.py +0 -0
  470. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/__init__.py +0 -0
  471. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_aws_credentials.py +0 -0
  472. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_deprecated.py +0 -0
  473. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_editblock.py +0 -0
  474. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_editor.py +0 -0
  475. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_exceptions.py +0 -0
  476. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_find_or_blocks.py +0 -0
  477. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_history.py +0 -0
  478. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_io.py +0 -0
  479. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_linter.py +0 -0
  480. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_model_info_manager.py +0 -0
  481. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_models.py +0 -0
  482. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_onboarding.py +0 -0
  483. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_plugin_manager.py +0 -0
  484. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_prompts.py +0 -0
  485. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_reasoning.py +0 -0
  486. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_repo.py +0 -0
  487. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_repomap.py +0 -0
  488. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_run_cmd.py +0 -0
  489. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_sanity_check_repo.py +0 -0
  490. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_scripting.py +0 -0
  491. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_sendchat.py +0 -0
  492. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_skills.py +0 -0
  493. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_special.py +0 -0
  494. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_ssl_verification.py +0 -0
  495. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_udiff.py +0 -0
  496. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_urls.py +0 -0
  497. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_voice.py +0 -0
  498. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_watch.py +0 -0
  499. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/basic/test_wholefile.py +0 -0
  500. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/coders/test_copypaste_coder.py +0 -0
  501. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/conftest.py +0 -0
  502. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  503. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/chat-history.md +0 -0
  504. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/arduino/test.ino +0 -0
  505. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/c/test.c +0 -0
  506. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/chatito/test.chatito +0 -0
  507. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/clojure/test.clj +0 -0
  508. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  509. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/cpp/test.cpp +0 -0
  510. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/csharp/test.cs +0 -0
  511. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/d/test.d +0 -0
  512. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/dart/test.dart +0 -0
  513. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/elisp/test.el +0 -0
  514. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/elixir/test.ex +0 -0
  515. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/elm/test.elm +0 -0
  516. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/gleam/test.gleam +0 -0
  517. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/go/test.go +0 -0
  518. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/haskell/test.hs +0 -0
  519. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/hcl/test.tf +0 -0
  520. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/java/test.java +0 -0
  521. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/javascript/test.js +0 -0
  522. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/kotlin/test.kt +0 -0
  523. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/lua/test.lua +0 -0
  524. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/matlab/test.m +0 -0
  525. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/ocaml/test.ml +0 -0
  526. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  527. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/php/test.php +0 -0
  528. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/pony/test.pony +0 -0
  529. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/properties/test.properties +0 -0
  530. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/python/test.py +0 -0
  531. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/ql/test.ql +0 -0
  532. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/r/test.r +0 -0
  533. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/racket/test.rkt +0 -0
  534. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/ruby/test.rb +0 -0
  535. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/rust/test.rs +0 -0
  536. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/scala/test.scala +0 -0
  537. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/solidity/test.sol +0 -0
  538. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/swift/test.swift +0 -0
  539. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/tsx/test.tsx +0 -0
  540. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/typescript/test.ts +0 -0
  541. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/udev/test.rules +0 -0
  542. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/languages/zig/test.zig +0 -0
  543. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/sample-code-base/sample.js +0 -0
  544. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/sample-code-base/sample.py +0 -0
  545. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  546. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/watch.js +0 -0
  547. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/watch.lisp +0 -0
  548. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/watch.py +0 -0
  549. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/fixtures/watch_question.js +0 -0
  550. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/help/test_help.py +0 -0
  551. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/scrape/test_playwright_disable.py +0 -0
  552. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/tools/test_git_branch.py +0 -0
  553. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/tools/test_git_diff.py +0 -0
  554. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/tools/test_grep.py +0 -0
  555. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/tools/test_insert_block.py +0 -0
  556. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/tools/test_registry.py +0 -0
  557. {cecli_dev-0.95.7 → cecli_dev-0.95.9}/tests/tools/test_show_numbered_context.py +0 -0
@@ -1,4 +1,3 @@
1
-
2
1
  # Contributing to the Project
3
2
 
4
3
  We welcome contributions in the form of bug reports, feature requests,
@@ -24,30 +23,29 @@ ensure that your contributions can be integrated smoothly.
24
23
 
25
24
  ```bash
26
25
  # Clone the repository
27
- git clone https://github.com/dwash96/aider-ce.git
28
- cd aider-ce
26
+ git clone https://github.com/dwash96/cecli.git
27
+ cd cecli
29
28
 
30
29
  # Make a venv
31
30
  python3 -m venv venv
32
31
  source venv/bin/activate
33
32
 
34
- # Install UV because it's superior
33
+ # Install UV because it's superior (skip if you already have it installed globally)
35
34
  pip install uv
36
35
 
37
36
  # Build Project
38
37
  uv pip install --native-tls -e .
39
38
 
40
39
  # Add tool chain
41
- uv install --native-tls pre-commit
40
+ uv pip install --native-tls pre-commit
42
41
  pre-commit install
43
42
 
44
43
  # Run Program
45
- aider-ce
46
-
47
- # OR!
48
-
49
44
  cecli
50
45
 
46
+ # OR! (legacy)
47
+ aider-ce
48
+
51
49
  ```
52
50
 
53
51
  ### Building the Docker Image
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cecli-dev
3
- Version: 0.95.7
3
+ Version: 0.95.9
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
@@ -99,15 +100,15 @@ LLMs are a part of our lives from here on out so join us in learning about and c
99
100
 
100
101
  ## Documentation/Other Notes:
101
102
 
102
- * [Agent Mode](https://github.com/dwash96/cecli/blob/main/aider/website/docs/config/agent-mode.md)
103
- * [MCP Configuration](https://github.com/dwash96/cecli/blob/main/aider/website/docs/config/mcp.md)
104
- * [TUI Configuration](https://github.com/dwash96/cecli/blob/main/aider/website/docs/config/tui.md)
105
- * [Skills](https://github.com/dwash96/cecli/blob/main/aider/website/docs/config/skills.md)
106
- * [Session Management](https://github.com/dwash96/cecli/blob/main/aider/website/docs/sessions.md)
103
+ * [Agent Mode](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/agent-mode.md)
104
+ * [MCP Configuration](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/mcp.md)
105
+ * [TUI Configuration](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/tui.md)
106
+ * [Skills](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/skills.md)
107
+ * [Session Management](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/sessions.md)
107
108
  * [Custom Commands](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/custom-commands.md)
108
109
  * [Custom System Prompts](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/custom-system-prompts.md)
109
110
  * [Custom Tools](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/agent-mode.md#creating-custom-tools)
110
- * [Advanced Model Configuration](https://github.com/dwash96/cecli/blob/main/aider/website/docs/config/model-aliases.md#advanced-model-settings)
111
+ * [Advanced Model Configuration](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/model-aliases.md#advanced-model-settings)
111
112
  * [Aider Original Documentation (still mostly applies)](https://aider.chat/)
112
113
 
113
114
  You can see a selection of the enhancements and updates by comparing the help output:
@@ -184,7 +185,15 @@ DEEPSEEK_API_KEY="..."
184
185
 
185
186
  ### Run Program
186
187
 
187
- If you are in the directory with your .aider.conf.yml file, then simply running `cecli` or `aider-ce` will start the agent with your configuration. If you want additional sandboxing, we publish a docker container that can be ran as follows:
188
+ If you are in the directory with your .aider.conf.yml file, then simply running `cecli` or `aider-ce` will start the agent with your configuration. For best results, since terminal emulators can be finicky, we highly suggest running:
189
+
190
+ ```bash
191
+ cecli --terminal-setup
192
+ ```
193
+
194
+ On first run to configure keybindings for the program (notably `shift+enter`). Support for terminals is ongoing so feel free to make a github issue or chat in the discord for us to figure out what's needed to support automatically setting up a given terminal.
195
+
196
+ If you want additional sandboxing, we publish a docker container that can be ran as follows:
188
197
 
189
198
  ```bash
190
199
  docker pull dustinwashington/aider-ce
@@ -16,15 +16,15 @@ LLMs are a part of our lives from here on out so join us in learning about and c
16
16
 
17
17
  ## Documentation/Other Notes:
18
18
 
19
- * [Agent Mode](https://github.com/dwash96/cecli/blob/main/aider/website/docs/config/agent-mode.md)
20
- * [MCP Configuration](https://github.com/dwash96/cecli/blob/main/aider/website/docs/config/mcp.md)
21
- * [TUI Configuration](https://github.com/dwash96/cecli/blob/main/aider/website/docs/config/tui.md)
22
- * [Skills](https://github.com/dwash96/cecli/blob/main/aider/website/docs/config/skills.md)
23
- * [Session Management](https://github.com/dwash96/cecli/blob/main/aider/website/docs/sessions.md)
19
+ * [Agent Mode](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/agent-mode.md)
20
+ * [MCP Configuration](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/mcp.md)
21
+ * [TUI Configuration](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/tui.md)
22
+ * [Skills](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/skills.md)
23
+ * [Session Management](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/sessions.md)
24
24
  * [Custom Commands](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/custom-commands.md)
25
25
  * [Custom System Prompts](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/custom-system-prompts.md)
26
26
  * [Custom Tools](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/agent-mode.md#creating-custom-tools)
27
- * [Advanced Model Configuration](https://github.com/dwash96/cecli/blob/main/aider/website/docs/config/model-aliases.md#advanced-model-settings)
27
+ * [Advanced Model Configuration](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/model-aliases.md#advanced-model-settings)
28
28
  * [Aider Original Documentation (still mostly applies)](https://aider.chat/)
29
29
 
30
30
  You can see a selection of the enhancements and updates by comparing the help output:
@@ -101,7 +101,15 @@ DEEPSEEK_API_KEY="..."
101
101
 
102
102
  ### Run Program
103
103
 
104
- If you are in the directory with your .aider.conf.yml file, then simply running `cecli` or `aider-ce` will start the agent with your configuration. If you want additional sandboxing, we publish a docker container that can be ran as follows:
104
+ If you are in the directory with your .aider.conf.yml file, then simply running `cecli` or `aider-ce` will start the agent with your configuration. For best results, since terminal emulators can be finicky, we highly suggest running:
105
+
106
+ ```bash
107
+ cecli --terminal-setup
108
+ ```
109
+
110
+ On first run to configure keybindings for the program (notably `shift+enter`). Support for terminals is ongoing so feel free to make a github issue or chat in the discord for us to figure out what's needed to support automatically setting up a given terminal.
111
+
112
+ If you want additional sandboxing, we publish a docker container that can be ran as follows:
105
113
 
106
114
  ```bash
107
115
  docker pull dustinwashington/aider-ce
@@ -464,4 +472,4 @@ The current priorities are to improve core capabilities and user experience of t
464
472
  <td></td>
465
473
  </tr>
466
474
  </tbody>
467
- </table>
475
+ </table>
@@ -1,6 +1,6 @@
1
1
  from packaging import version
2
2
 
3
- __version__ = "0.95.7.dev"
3
+ __version__ = "0.95.9.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.7'
32
- __version_tuple__ = version_tuple = (0, 95, 7)
31
+ __version__ = version = '0.95.9'
32
+ __version_tuple__ = version_tuple = (0, 95, 9)
33
33
 
34
- __commit_id__ = commit_id = 'gc8f1f83a5'
34
+ __commit_id__ = commit_id = 'g38dc66252'
@@ -456,6 +456,17 @@ def get_parser(default_config_files, git_root):
456
456
  default=False,
457
457
  help="Restore the previous chat history messages (default: False)",
458
458
  )
459
+ #########
460
+ group = parser.add_argument_group("Input settings")
461
+ group.add_argument(
462
+ "--terminal-setup",
463
+ action=argparse.BooleanOptionalAction,
464
+ default=False,
465
+ help=(
466
+ "Auto-configure terminal emulator for shift+enter support for new lines (default:"
467
+ " False)"
468
+ ),
469
+ )
459
470
  ##########
460
471
  group = parser.add_argument_group("Output settings")
461
472
  group.add_argument(
@@ -746,12 +757,6 @@ def get_parser(default_config_files, git_root):
746
757
  help="Show release notes on first run of new version (default: None, ask user)",
747
758
  default=None,
748
759
  )
749
- group.add_argument(
750
- "--install-main-branch",
751
- action="store_true",
752
- help="Install the latest version from the main branch",
753
- default=False,
754
- )
755
760
  group.add_argument(
756
761
  "--upgrade",
757
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
@@ -1564,7 +1564,7 @@ class Coder:
1564
1564
 
1565
1565
  def copy_context(self):
1566
1566
  if self.auto_copy_context:
1567
- self.commands.cmd_copy_context()
1567
+ self.commands.execute("copy-context", "")
1568
1568
 
1569
1569
  async def get_input(self):
1570
1570
  inchat_files = self.get_inchat_relative_files()
@@ -1684,7 +1684,7 @@ class Coder:
1684
1684
  explicit_yes_required=self.args.yes_always_commands,
1685
1685
  ):
1686
1686
  inp += "\n\n"
1687
- inp += await self.commands.do_run("web", url, return_content=True)
1687
+ inp += await self.commands.execute("web", url, return_content=True)
1688
1688
  else:
1689
1689
  self.rejected_urls.add(url)
1690
1690
 
@@ -2438,7 +2438,7 @@ class Coder:
2438
2438
  ]
2439
2439
 
2440
2440
  if edited and self.auto_test:
2441
- test_errors = await self.commands.cmd_test(self.test_cmd)
2441
+ test_errors = await self.commands.execute("test", self.test_cmd)
2442
2442
  self.test_outcome = not test_errors
2443
2443
  if test_errors:
2444
2444
  ok = await self.io.confirm_ask("Attempt to fix test errors?")
@@ -2562,7 +2562,7 @@ class Coder:
2562
2562
  and tool_name_from_schema.lower() == tool_call.function.name.lower()
2563
2563
  ):
2564
2564
  # Find the McpServer instance that will be used for communication
2565
- for server in self.mcp_servers:
2565
+ for server in self.mcp_manager:
2566
2566
  if server.name == server_name:
2567
2567
  if server not in server_tool_calls:
2568
2568
  server_tool_calls[server] = []
@@ -2740,6 +2740,7 @@ class Coder:
2740
2740
  Initialize tools from all configured MCP servers. MCP Servers that fail to be
2741
2741
  initialized will not be available to the Coder instance.
2742
2742
  """
2743
+ # TODO(@gopar): refactor here once we have fully moved over to use the mcp manager
2743
2744
  tools = []
2744
2745
 
2745
2746
  async def get_server_tools(server):
@@ -2750,9 +2751,13 @@ class Coder:
2750
2751
  return (server.name, server_tools)
2751
2752
 
2752
2753
  try:
2753
- session = await server.connect()
2754
+ did_connect = await self.mcp_manager.connect_server(server.name)
2755
+ if not did_connect:
2756
+ raise Exception("Failed to load tools")
2757
+
2758
+ server = self.mcp_manager.get_server(server.name)
2754
2759
  server_tools = await experimental_mcp_client.load_mcp_tools(
2755
- session=session, format="openai"
2760
+ session=server.session, format="openai"
2756
2761
  )
2757
2762
  return (server.name, server_tools)
2758
2763
  except Exception as e:
@@ -2761,11 +2766,11 @@ class Coder:
2761
2766
  return None
2762
2767
 
2763
2768
  async def get_all_server_tools():
2764
- tasks = [get_server_tools(server) for server in self.mcp_servers]
2769
+ tasks = [get_server_tools(server) for server in self.mcp_manager]
2765
2770
  results = await asyncio.gather(*tasks)
2766
2771
  return [result for result in results if result is not None]
2767
2772
 
2768
- if self.mcp_servers:
2773
+ if self.mcp_manager:
2769
2774
  # Retry initialization in case of CancelledError
2770
2775
  max_retries = 3
2771
2776
  for i in range(max_retries):
@@ -3852,7 +3857,7 @@ class Coder:
3852
3857
  self.coder_commit_hashes.add(commit_hash)
3853
3858
  self.last_coder_commit_message = commit_message
3854
3859
  if self.show_diffs:
3855
- self.commands.cmd_diff()
3860
+ self.commands.execute("diff", "")
3856
3861
 
3857
3862
  def show_undo_hint(self):
3858
3863
  if not self.commit_before_message:
@@ -51,6 +51,7 @@ from .run import RunCommand
51
51
  from .save import SaveCommand
52
52
  from .save_session import SaveSessionCommand
53
53
  from .settings import SettingsCommand
54
+ from .terminal_setup import TerminalSetupCommand
54
55
  from .test import TestCommand
55
56
  from .think_tokens import ThinkTokensCommand
56
57
  from .tokens import TokensCommand
@@ -123,6 +124,7 @@ CommandRegistry.register(CopyContextCommand)
123
124
  CommandRegistry.register(CommandPrefixCommand)
124
125
  CommandRegistry.register(LoadSkillCommand)
125
126
  CommandRegistry.register(RemoveSkillCommand)
127
+ CommandRegistry.register(TerminalSetupCommand)
126
128
 
127
129
 
128
130
  __all__ = [
@@ -187,6 +189,7 @@ __all__ = [
187
189
  "CommandPrefixCommand",
188
190
  "LoadSkillCommand",
189
191
  "RemoveSkillCommand",
192
+ "TerminalSetupCommand",
190
193
  "SwitchCoderSignal",
191
194
  "Commands",
192
195
  ]
@@ -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