cecli-dev 0.95.9__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 (557) hide show
  1. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/PKG-INFO +4 -3
  2. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/README.md +3 -2
  3. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/__init__.py +1 -1
  4. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/_version.py +3 -3
  5. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/base_coder.py +13 -3
  6. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/add.py +7 -1
  7. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/utils/base_command.py +28 -2
  8. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/io.py +12 -3
  9. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/main.py +3 -0
  10. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/mcp/manager.py +10 -4
  11. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/mcp/server.py +14 -2
  12. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/report.py +23 -5
  13. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/mcp.md +5 -1
  14. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli_dev.egg-info/PKG-INFO +4 -3
  15. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli_dev.egg-info/SOURCES.txt +1 -0
  16. cecli_dev-0.95.10/tests/basic/test_custom_commands.py +64 -0
  17. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.dockerignore +0 -0
  18. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.flake8 +0 -0
  19. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.gitattributes +0 -0
  20. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  21. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.github/workflows/check_pypi_version.yml +0 -0
  22. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.github/workflows/docker-build-test.yml +0 -0
  23. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.github/workflows/docker-release.yml +0 -0
  24. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.github/workflows/issues.yml +0 -0
  25. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.github/workflows/pages.yml +0 -0
  26. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.github/workflows/pre-commit.yml +0 -0
  27. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.github/workflows/release.yml +0 -0
  28. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.github/workflows/ubuntu-tests.yml +0 -0
  29. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.github/workflows/windows-tests.yml +0 -0
  30. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.github/workflows/windows_check_pypi_version.yml +0 -0
  31. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.gitignore +0 -0
  32. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/.pre-commit-config.yaml +0 -0
  33. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/CHANGELOG.md +0 -0
  34. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/CNAME +0 -0
  35. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/CONTRIBUTING.md +0 -0
  36. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/HISTORY.md +0 -0
  37. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/LICENSE.txt +0 -0
  38. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/MANIFEST.in +0 -0
  39. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/Dockerfile +0 -0
  40. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/README.md +0 -0
  41. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/__init__.py +0 -0
  42. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/benchmark.py +0 -0
  43. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/benchmark_classic.py +0 -0
  44. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/clone-exercism.sh +0 -0
  45. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/cpp-test.sh +0 -0
  46. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/docker.sh +0 -0
  47. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/docker_build.sh +0 -0
  48. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/install-docker-ubuntu.sh +0 -0
  49. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/npm-test.sh +0 -0
  50. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/over_time.py +0 -0
  51. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/plot.sh +0 -0
  52. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/plots.py +0 -0
  53. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/problem_stats.py +0 -0
  54. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/prompts.py +0 -0
  55. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/refactor_tools.py +0 -0
  56. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/rsync.sh +0 -0
  57. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/rungrid.py +0 -0
  58. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/swe-bench-lite.txt +0 -0
  59. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/swe-bench.txt +0 -0
  60. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/swe_bench.py +0 -0
  61. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/benchmark/test_benchmark.py +0 -0
  62. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/__main__.py +0 -0
  63. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/args.py +0 -0
  64. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/args_formatter.py +0 -0
  65. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/change_tracker.py +0 -0
  66. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/__init__.py +0 -0
  67. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/agent_coder.py +0 -0
  68. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/architect_coder.py +0 -0
  69. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/ask_coder.py +0 -0
  70. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/chat_chunks.py +0 -0
  71. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/context_coder.py +0 -0
  72. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/copypaste_coder.py +0 -0
  73. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/editblock_coder.py +0 -0
  74. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/editblock_fenced_coder.py +0 -0
  75. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/editblock_func_coder.py +0 -0
  76. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  77. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/editor_editblock_coder.py +0 -0
  78. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/editor_whole_coder.py +0 -0
  79. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/help_coder.py +0 -0
  80. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/patch_coder.py +0 -0
  81. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/search_replace.py +0 -0
  82. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/shell.py +0 -0
  83. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/single_wholefile_func_coder.py +0 -0
  84. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/udiff_coder.py +0 -0
  85. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/udiff_simple.py +0 -0
  86. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/wholefile_coder.py +0 -0
  87. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/coders/wholefile_func_coder.py +0 -0
  88. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/__init__.py +0 -0
  89. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/agent.py +0 -0
  90. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/architect.py +0 -0
  91. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/ask.py +0 -0
  92. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/chat_mode.py +0 -0
  93. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/clear.py +0 -0
  94. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/code.py +0 -0
  95. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/command_prefix.py +0 -0
  96. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/commit.py +0 -0
  97. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/context.py +0 -0
  98. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/context_blocks.py +0 -0
  99. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/context_management.py +0 -0
  100. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/copy.py +0 -0
  101. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/copy_context.py +0 -0
  102. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/core.py +0 -0
  103. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/diff.py +0 -0
  104. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/drop.py +0 -0
  105. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/editor.py +0 -0
  106. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/exit.py +0 -0
  107. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/git.py +0 -0
  108. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/help.py +0 -0
  109. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/history_search.py +0 -0
  110. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/lint.py +0 -0
  111. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/list_sessions.py +0 -0
  112. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/load.py +0 -0
  113. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/load_session.py +0 -0
  114. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/load_skill.py +0 -0
  115. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/ls.py +0 -0
  116. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/map.py +0 -0
  117. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/map_refresh.py +0 -0
  118. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/model.py +0 -0
  119. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/models.py +0 -0
  120. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/multiline_mode.py +0 -0
  121. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/paste.py +0 -0
  122. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/quit.py +0 -0
  123. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/read_only.py +0 -0
  124. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/read_only_stub.py +0 -0
  125. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/reasoning_effort.py +0 -0
  126. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/remove_skill.py +0 -0
  127. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/report.py +0 -0
  128. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/reset.py +0 -0
  129. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/run.py +0 -0
  130. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/save.py +0 -0
  131. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/save_session.py +0 -0
  132. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/settings.py +0 -0
  133. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/terminal_setup.py +0 -0
  134. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/test.py +0 -0
  135. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/think_tokens.py +0 -0
  136. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/tokens.py +0 -0
  137. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/undo.py +0 -0
  138. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/utils/__init__.py +0 -0
  139. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/utils/helpers.py +0 -0
  140. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/utils/registry.py +0 -0
  141. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/utils/save_load_manager.py +0 -0
  142. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/voice.py +0 -0
  143. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/weak_model.py +0 -0
  144. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/commands/web.py +0 -0
  145. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/deprecated_args.py +0 -0
  146. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/diffs.py +0 -0
  147. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/dump.py +0 -0
  148. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/editor.py +0 -0
  149. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/exceptions.py +0 -0
  150. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/format_settings.py +0 -0
  151. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/help.py +0 -0
  152. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/help_pats.py +0 -0
  153. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/helpers/__init__.py +0 -0
  154. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/helpers/copypaste.py +0 -0
  155. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/helpers/coroutines.py +0 -0
  156. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/helpers/file_searcher.py +0 -0
  157. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/helpers/model_providers.py +0 -0
  158. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/helpers/nested.py +0 -0
  159. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/helpers/plugin_manager.py +0 -0
  160. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/helpers/profiler.py +0 -0
  161. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/helpers/requests.py +0 -0
  162. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/helpers/similarity.py +0 -0
  163. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/helpers/skills.py +0 -0
  164. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/history.py +0 -0
  165. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/linter.py +0 -0
  166. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/llm.py +0 -0
  167. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/mcp/__init__.py +0 -0
  168. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/mcp/oauth.py +0 -0
  169. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/mcp/utils.py +0 -0
  170. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/mdstream.py +0 -0
  171. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/models.py +0 -0
  172. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/onboarding.py +0 -0
  173. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/__init__.py +0 -0
  174. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/agent.yml +0 -0
  175. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/architect.yml +0 -0
  176. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/ask.yml +0 -0
  177. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/base.yml +0 -0
  178. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/context.yml +0 -0
  179. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/copypaste.yml +0 -0
  180. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/editblock.yml +0 -0
  181. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/editblock_fenced.yml +0 -0
  182. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/editblock_func.yml +0 -0
  183. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/editor_diff_fenced.yml +0 -0
  184. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/editor_editblock.yml +0 -0
  185. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/editor_whole.yml +0 -0
  186. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/help.yml +0 -0
  187. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/patch.yml +0 -0
  188. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/single_wholefile_func.yml +0 -0
  189. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/udiff.yml +0 -0
  190. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/udiff_simple.yml +0 -0
  191. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/utils/__init__.py +0 -0
  192. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/utils/registry.py +0 -0
  193. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/utils/system.py +0 -0
  194. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/wholefile.yml +0 -0
  195. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/prompts/wholefile_func.yml +0 -0
  196. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  197. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  198. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  199. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  200. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  201. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  202. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  203. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  204. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  205. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  206. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  207. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  208. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  209. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  210. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  211. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  212. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  213. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  214. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  215. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  216. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  217. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  218. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  219. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  220. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  221. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  222. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  223. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  224. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  225. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  226. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  227. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/README.md +0 -0
  228. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  229. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  230. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  231. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  232. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  233. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  234. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  235. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  236. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  237. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  238. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  239. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  240. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  241. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  242. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  243. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  244. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  245. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  246. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  247. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  248. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  249. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  250. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  251. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  252. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  253. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  254. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/reasoning_tags.py +0 -0
  255. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/repo.py +0 -0
  256. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/repomap.py +0 -0
  257. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/resources/__init__.py +0 -0
  258. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/resources/model-metadata.json +0 -0
  259. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/resources/model-settings.yml +0 -0
  260. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/resources/providers.json +0 -0
  261. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/run_cmd.py +0 -0
  262. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/scrape.py +0 -0
  263. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/sendchat.py +0 -0
  264. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/sessions.py +0 -0
  265. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/special.py +0 -0
  266. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/__init__.py +0 -0
  267. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/command.py +0 -0
  268. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/command_interactive.py +0 -0
  269. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/context_manager.py +0 -0
  270. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/delete_block.py +0 -0
  271. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/delete_line.py +0 -0
  272. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/delete_lines.py +0 -0
  273. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/extract_lines.py +0 -0
  274. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/finished.py +0 -0
  275. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/git_branch.py +0 -0
  276. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/git_diff.py +0 -0
  277. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/git_log.py +0 -0
  278. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/git_remote.py +0 -0
  279. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/git_show.py +0 -0
  280. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/git_status.py +0 -0
  281. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/grep.py +0 -0
  282. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/indent_lines.py +0 -0
  283. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/insert_block.py +0 -0
  284. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/list_changes.py +0 -0
  285. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/load_skill.py +0 -0
  286. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/ls.py +0 -0
  287. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/remove_skill.py +0 -0
  288. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/replace_all.py +0 -0
  289. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/replace_line.py +0 -0
  290. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/replace_lines.py +0 -0
  291. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/replace_text.py +0 -0
  292. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/show_numbered_context.py +0 -0
  293. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/thinking.py +0 -0
  294. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/undo_change.py +0 -0
  295. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/update_todo_list.py +0 -0
  296. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/utils/base_tool.py +0 -0
  297. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/utils/helpers.py +0 -0
  298. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/utils/output.py +0 -0
  299. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/utils/registry.py +0 -0
  300. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/view_files_matching.py +0 -0
  301. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tools/view_files_with_symbol.py +0 -0
  302. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/__init__.py +0 -0
  303. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/app.py +0 -0
  304. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/io.py +0 -0
  305. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/styles.tcss +0 -0
  306. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/widgets/__init__.py +0 -0
  307. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/widgets/completion_bar.py +0 -0
  308. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/widgets/file_list.py +0 -0
  309. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/widgets/footer.py +0 -0
  310. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/widgets/input_area.py +0 -0
  311. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/widgets/key_hints.py +0 -0
  312. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/widgets/output.py +0 -0
  313. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/widgets/status_bar.py +0 -0
  314. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/tui/worker.py +0 -0
  315. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/urls.py +0 -0
  316. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/utils.py +0 -0
  317. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/versioncheck.py +0 -0
  318. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/voice.py +0 -0
  319. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/waiting.py +0 -0
  320. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/watch.py +0 -0
  321. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/watch_prompts.py +0 -0
  322. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/Gemfile +0 -0
  323. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/blame.md +0 -0
  324. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/get-started.md +0 -0
  325. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/help-tip.md +0 -0
  326. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/help.md +0 -0
  327. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/install.md +0 -0
  328. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/keys.md +0 -0
  329. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/model-warnings.md +0 -0
  330. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/multi-line.md +0 -0
  331. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/python-m-aider.md +0 -0
  332. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/recording.css +0 -0
  333. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/recording.md +0 -0
  334. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/replit-pipx.md +0 -0
  335. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_includes/works-best.md +0 -0
  336. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/_sass/custom/custom.scss +0 -0
  337. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/adv-model-settings.md +0 -0
  338. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/agent-mode.md +0 -0
  339. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/aider_conf.md +0 -0
  340. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/api-keys.md +0 -0
  341. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/custom-commands.md +0 -0
  342. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  343. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/dotenv.md +0 -0
  344. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/editor.md +0 -0
  345. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/model-aliases.md +0 -0
  346. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/options.md +0 -0
  347. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/reasoning.md +0 -0
  348. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/skills.md +0 -0
  349. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config/tui.md +0 -0
  350. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/config.md +0 -0
  351. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/faq.md +0 -0
  352. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/git.md +0 -0
  353. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/index.md +0 -0
  354. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/install/codespaces.md +0 -0
  355. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/install/docker.md +0 -0
  356. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/install/optional.md +0 -0
  357. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/install/replit.md +0 -0
  358. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/install.md +0 -0
  359. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/languages.md +0 -0
  360. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  361. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/legal/privacy.md +0 -0
  362. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/anthropic.md +0 -0
  363. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/azure.md +0 -0
  364. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/bedrock.md +0 -0
  365. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/cohere.md +0 -0
  366. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/deepseek.md +0 -0
  367. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/gemini.md +0 -0
  368. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/github.md +0 -0
  369. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/groq.md +0 -0
  370. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/lm-studio.md +0 -0
  371. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/ollama.md +0 -0
  372. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/openai-compat.md +0 -0
  373. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/openai.md +0 -0
  374. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/openrouter.md +0 -0
  375. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/other.md +0 -0
  376. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/vertex.md +0 -0
  377. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/warnings.md +0 -0
  378. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms/xai.md +0 -0
  379. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/llms.md +0 -0
  380. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/more/analytics.md +0 -0
  381. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/more/edit-formats.md +0 -0
  382. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/more/infinite-output.md +0 -0
  383. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/more-info.md +0 -0
  384. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/recordings/auto-accept-architect.md +0 -0
  385. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/recordings/dont-drop-original-read-files.md +0 -0
  386. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/recordings/index.md +0 -0
  387. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/recordings/model-accepts-settings.md +0 -0
  388. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/recordings/tree-sitter-language-pack.md +0 -0
  389. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/repomap.md +0 -0
  390. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/scripting.md +0 -0
  391. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/sessions.md +0 -0
  392. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/aider-not-found.md +0 -0
  393. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  394. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/imports.md +0 -0
  395. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  396. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/support.md +0 -0
  397. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  398. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  399. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/troubleshooting.md +0 -0
  400. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/browser.md +0 -0
  401. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/caching.md +0 -0
  402. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/commands.md +0 -0
  403. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/conventions.md +0 -0
  404. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/copypaste.md +0 -0
  405. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/images-urls.md +0 -0
  406. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/lint-test.md +0 -0
  407. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/modes.md +0 -0
  408. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/not-code.md +0 -0
  409. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/notifications.md +0 -0
  410. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/tips.md +0 -0
  411. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/tutorials.md +0 -0
  412. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/voice.md +0 -0
  413. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage/watch.md +0 -0
  414. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/docs/usage.md +0 -0
  415. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli/website/share/index.md +0 -0
  416. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli_dev.egg-info/dependency_links.txt +0 -0
  417. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli_dev.egg-info/entry_points.txt +0 -0
  418. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli_dev.egg-info/requires.txt +0 -0
  419. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/cecli_dev.egg-info/top_level.txt +0 -0
  420. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/docker/Dockerfile +0 -0
  421. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  422. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/pyproject.toml +0 -0
  423. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/pytest.ini +0 -0
  424. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/requirements/common-constraints.txt +0 -0
  425. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/requirements/requirements-dev.in +0 -0
  426. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/requirements/requirements-dev.txt +0 -0
  427. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/requirements/requirements-help.in +0 -0
  428. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/requirements/requirements-help.txt +0 -0
  429. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/requirements/requirements-playwright.in +0 -0
  430. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/requirements/requirements-playwright.txt +0 -0
  431. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/requirements/requirements.in +0 -0
  432. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/requirements/tree-sitter.in +0 -0
  433. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/requirements.txt +0 -0
  434. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/30k-image.py +0 -0
  435. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/Dockerfile.jekyll +0 -0
  436. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/__init__.py +0 -0
  437. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/blame.py +0 -0
  438. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/clean_metadata.py +0 -0
  439. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/cost_analyzer.py +0 -0
  440. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/dl_icons.py +0 -0
  441. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/filter-chat-mode.js +0 -0
  442. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/generate_providers.py +0 -0
  443. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/get_contributor_list.js +0 -0
  444. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/history_prompts.py +0 -0
  445. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/homepage.py +0 -0
  446. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/issues.py +0 -0
  447. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/jekyll_build.sh +0 -0
  448. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/jekyll_run.sh +0 -0
  449. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/logo_svg.py +0 -0
  450. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/pip-compile.sh +0 -0
  451. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/recording_audio.py +0 -0
  452. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/redact-cast.py +0 -0
  453. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/rename_to_cecli.py +0 -0
  454. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/tmux_record.sh +0 -0
  455. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/tsl_pack_langs.py +0 -0
  456. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/update-blame.sh +0 -0
  457. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/update-docs.sh +0 -0
  458. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/update-history.py +0 -0
  459. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/versionbump.py +0 -0
  460. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/scripts/yank-old-versions.py +0 -0
  461. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/setup.cfg +0 -0
  462. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/shim.pyproject.toml +0 -0
  463. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/__init__.py +0 -0
  464. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/__init__.py +0 -0
  465. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_aws_credentials.py +0 -0
  466. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_coder.py +0 -0
  467. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_commands.py +0 -0
  468. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_deprecated.py +0 -0
  469. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_editblock.py +0 -0
  470. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_editor.py +0 -0
  471. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_exceptions.py +0 -0
  472. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_find_or_blocks.py +0 -0
  473. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_history.py +0 -0
  474. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_io.py +0 -0
  475. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_linter.py +0 -0
  476. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_main.py +0 -0
  477. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_model_info_manager.py +0 -0
  478. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_model_provider_manager.py +0 -0
  479. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_models.py +0 -0
  480. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_onboarding.py +0 -0
  481. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_plugin_manager.py +0 -0
  482. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_prompts.py +0 -0
  483. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_reasoning.py +0 -0
  484. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_repo.py +0 -0
  485. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_repomap.py +0 -0
  486. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_run_cmd.py +0 -0
  487. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_sanity_check_repo.py +0 -0
  488. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_scripting.py +0 -0
  489. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_sendchat.py +0 -0
  490. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_sessions.py +0 -0
  491. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_skills.py +0 -0
  492. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_special.py +0 -0
  493. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_ssl_verification.py +0 -0
  494. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_udiff.py +0 -0
  495. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_urls.py +0 -0
  496. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_voice.py +0 -0
  497. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_watch.py +0 -0
  498. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/basic/test_wholefile.py +0 -0
  499. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/coders/test_copypaste_coder.py +0 -0
  500. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/conftest.py +0 -0
  501. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  502. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/chat-history.md +0 -0
  503. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/arduino/test.ino +0 -0
  504. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/c/test.c +0 -0
  505. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/chatito/test.chatito +0 -0
  506. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/clojure/test.clj +0 -0
  507. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  508. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/cpp/test.cpp +0 -0
  509. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/csharp/test.cs +0 -0
  510. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/d/test.d +0 -0
  511. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/dart/test.dart +0 -0
  512. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/elisp/test.el +0 -0
  513. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/elixir/test.ex +0 -0
  514. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/elm/test.elm +0 -0
  515. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/gleam/test.gleam +0 -0
  516. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/go/test.go +0 -0
  517. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/haskell/test.hs +0 -0
  518. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/hcl/test.tf +0 -0
  519. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/java/test.java +0 -0
  520. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/javascript/test.js +0 -0
  521. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/kotlin/test.kt +0 -0
  522. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/lua/test.lua +0 -0
  523. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/matlab/test.m +0 -0
  524. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/ocaml/test.ml +0 -0
  525. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  526. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/php/test.php +0 -0
  527. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/pony/test.pony +0 -0
  528. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/properties/test.properties +0 -0
  529. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/python/test.py +0 -0
  530. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/ql/test.ql +0 -0
  531. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/r/test.r +0 -0
  532. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/racket/test.rkt +0 -0
  533. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/ruby/test.rb +0 -0
  534. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/rust/test.rs +0 -0
  535. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/scala/test.scala +0 -0
  536. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/solidity/test.sol +0 -0
  537. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/swift/test.swift +0 -0
  538. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/tsx/test.tsx +0 -0
  539. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/typescript/test.ts +0 -0
  540. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/udev/test.rules +0 -0
  541. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/languages/zig/test.zig +0 -0
  542. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/sample-code-base/sample.js +0 -0
  543. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/sample-code-base/sample.py +0 -0
  544. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  545. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/watch.js +0 -0
  546. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/watch.lisp +0 -0
  547. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/watch.py +0 -0
  548. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/fixtures/watch_question.js +0 -0
  549. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/help/test_help.py +0 -0
  550. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/scrape/test_playwright_disable.py +0 -0
  551. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/scrape/test_scrape.py +0 -0
  552. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/tools/test_git_branch.py +0 -0
  553. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/tools/test_git_diff.py +0 -0
  554. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/tools/test_grep.py +0 -0
  555. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/tools/test_insert_block.py +0 -0
  556. {cecli_dev-0.95.9 → cecli_dev-0.95.10}/tests/tools/test_registry.py +0 -0
  557. {cecli_dev-0.95.9 → 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.9
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
@@ -230,6 +230,7 @@ The current priorities are to improve core capabilities and user experience of t
230
230
  4. **Context Delivery** - [Discussion](https://github.com/dwash96/cecli/issues/47)
231
231
  * [ ] Use workflow for internal discovery to better target file snippets needed for specific tasks
232
232
  * [ ] Add support for partial files and code snippets in model completion messages
233
+ * [ ] Update message request structure for optimal caching
233
234
 
234
235
  5. **TUI Experience** - [Discussion](https://github.com/dwash96/cecli/issues/48)
235
236
  * [x] Add a full TUI (probably using textual) to have a visual interface competitive with the other coding agent terminal programs
@@ -241,8 +242,8 @@ The current priorities are to improve core capabilities and user experience of t
241
242
  * [x] Add an explicit "finished" internal tool
242
243
  * [x] Add a configuration json setting for agent mode to specify allowed local tools to use, tool call limits, etc.
243
244
  * [ ] Add a RAG tool for the model to ask questions about the codebase
244
- * [ ] Make the system prompts more aggressive about removing unneeded files/content from the context
245
- * [ ] 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
246
247
  * [x] Add a dynamic tool discovery tool to allow the system to have only the tools it needs in context
247
248
 
248
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.9.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.9'
32
- __version_tuple__ = version_tuple = (0, 95, 9)
31
+ __version__ = version = '0.95.10'
32
+ __version_tuple__ = version_tuple = (0, 95, 10)
33
33
 
34
- __commit_id__ = commit_id = 'g38dc66252'
34
+ __commit_id__ = commit_id = 'gf1225144f'
@@ -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()
@@ -2766,7 +2776,7 @@ class Coder:
2766
2776
  return None
2767
2777
 
2768
2778
  async def get_all_server_tools():
2769
- tasks = [get_server_tools(server) for server in self.mcp_manager]
2779
+ tasks = [get_server_tools(server) for server in self.mcp_manager if server.is_enabled]
2770
2780
  results = await asyncio.gather(*tasks)
2771
2781
  return [result for result in results if result is not None]
2772
2782
 
@@ -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()
@@ -1,8 +1,34 @@
1
- from abc import ABC, abstractmethod
1
+ from abc import ABC, ABCMeta, abstractmethod
2
2
  from typing import List
3
3
 
4
4
 
5
- class BaseCommand(ABC):
5
+ class CommandMeta(ABCMeta):
6
+ """Metaclass for validating command classes at definition time."""
7
+
8
+ def __new__(mcs, name, bases, namespace):
9
+ # Create the class first
10
+ cls = super().__new__(mcs, name, bases, namespace)
11
+
12
+ # Skip validation for BaseCommand itself
13
+ if name == "BaseCommand":
14
+ return cls
15
+
16
+ if not name.endswith("Command"):
17
+ raise TypeError(f"Command class must end with 'Command', got '{name}'")
18
+
19
+ if getattr(cls, "NORM_NAME", None) is None:
20
+ raise TypeError("Command class must define NORM_NAME")
21
+
22
+ if getattr(cls, "DESCRIPTION", None) is None:
23
+ raise TypeError("Command class must define DESCRIPTION")
24
+
25
+ if "execute" not in namespace:
26
+ raise TypeError("Command class must implement execute method")
27
+
28
+ return cls
29
+
30
+
31
+ class BaseCommand(ABC, metaclass=CommandMeta):
6
32
  """Abstract base class for all commands."""
7
33
 
8
34
  # Class properties (similar to BaseTool)
@@ -42,6 +42,7 @@ from rich.text import Text
42
42
 
43
43
  from cecli.commands import SwitchCoderSignal
44
44
  from cecli.helpers import coroutines
45
+ from cecli.report import update_error_prefix
45
46
 
46
47
  from .dump import dump # noqa: F401
47
48
  from .editor import pipe_editor
@@ -1039,14 +1040,22 @@ class InputOutput:
1039
1040
  await output_task
1040
1041
  except (
1041
1042
  asyncio.CancelledError,
1042
- Exception,
1043
1043
  EOFError,
1044
- IndexError,
1045
- RuntimeError,
1046
1044
  SystemExit,
1047
1045
  SwitchCoderSignal,
1048
1046
  ):
1049
1047
  pass
1048
+ except (
1049
+ Exception,
1050
+ IndexError,
1051
+ RuntimeError,
1052
+ ):
1053
+ import traceback
1054
+
1055
+ traceback_str = traceback.format_exc()
1056
+ update_error_prefix(traceback_str)
1057
+ update_error_prefix(str(output_task))
1058
+ pass
1050
1059
 
1051
1060
  async def stop_task_streams(self):
1052
1061
  input_task = asyncio.create_task(self.stop_input_task())
@@ -976,6 +976,9 @@ async def main_async(argv=None, input=None, output=None, force_git_root=None, re
976
976
  ratio = args.context_compaction_max_tokens
977
977
  if max_input_tokens:
978
978
  args.context_compaction_max_tokens = int(max_input_tokens * ratio)
979
+ else:
980
+ # Default since some models do not have max_input_tokens specified somehow
981
+ args.context_compaction_max_tokens = 65536
979
982
  try:
980
983
  mcp_servers = load_mcp_servers(
981
984
  args.mcp_servers, args.mcp_servers_file, io, args.verbose, args.mcp_transport
@@ -22,14 +22,14 @@ class McpServerManager:
22
22
  Initialize the MCP server manager.
23
23
 
24
24
  Args:
25
- mcp_servers: JSON string containing MCP server configurations
26
- mcp_servers_file: Path to a JSON file containing MCP server configurations
25
+ servers: List of MCP Servers to manage
27
26
  io: InputOutput instance for user interaction
28
27
  verbose: Whether to output verbose logging
29
28
  """
30
29
  self.io = io
31
30
  self.verbose = verbose
32
31
  self._servers = servers
32
+
33
33
  self._server_tools: dict[str, list] = {} # Maps server name to its tools
34
34
  self._connected_servers: set[McpServer] = set()
35
35
 
@@ -74,7 +74,7 @@ class McpServerManager:
74
74
  return None
75
75
 
76
76
  async def connect_all(self) -> None:
77
- """Connect to all MCP servers."""
77
+ """Connect to all MCP servers while skipping ones that are not enabled."""
78
78
  if self.is_connected:
79
79
  self._log_verbose("Some MCP servers already connected")
80
80
  return
@@ -93,7 +93,9 @@ class McpServerManager:
93
93
  self._log_error(f"Failed to connect to MCP server {server.name}: {e}")
94
94
  return (server, False)
95
95
 
96
- results = await asyncio.gather(*[connect_server(server) for server in self._servers])
96
+ results = await asyncio.gather(
97
+ *[connect_server(server) for server in self._servers if server.is_enabled]
98
+ )
97
99
 
98
100
  for server, success in results:
99
101
  if success:
@@ -142,6 +144,10 @@ class McpServerManager:
142
144
  self._log_warning(f"MCP server not found: {name}")
143
145
  return False
144
146
 
147
+ if not server.is_enabled:
148
+ self._log_verbose("MCP is not enabled.")
149
+ return False
150
+
145
151
  if server in self._connected_servers:
146
152
  self._log_verbose(f"MCP server already connected: {name}")
147
153
  return True
@@ -39,6 +39,7 @@ class McpServer:
39
39
  """
40
40
  self.config = server_config
41
41
  self.name = server_config.get("name", "unnamed-server")
42
+ self.is_enabled = server_config.get("enabled", True)
42
43
  self.io = io
43
44
  self.verbose = verbose
44
45
  self.session = None
@@ -52,8 +53,13 @@ class McpServer:
52
53
  Otherwise, establishes a new connection and initializes the session.
53
54
 
54
55
  Returns:
55
- ClientSession: The active session
56
+ ClientSession: The active session if mcp is not disabled
56
57
  """
58
+ if not self.is_enabled:
59
+ if self.verbose and self.io:
60
+ self.io.tool_output(f"Enabled option is set to false for MCP server: {self.name}")
61
+ return None
62
+
57
63
  if self.session is not None:
58
64
  if self.verbose and self.io:
59
65
  self.io.tool_output(f"Using existing session for MCP server: {self.name}")
@@ -123,7 +129,8 @@ class HttpBasedMcpServer(McpServer):
123
129
  existing_redirect_uri = redirect_uris[0]
124
130
  if self.verbose and self.io:
125
131
  self.io.tool_output(
126
- f"Found existing redirect URI: {existing_redirect_uri}", log_only=True
132
+ f"Found existing redirect URI: {existing_redirect_uri}",
133
+ log_only=True,
127
134
  )
128
135
 
129
136
  from .utils import find_available_port
@@ -187,6 +194,11 @@ class HttpBasedMcpServer(McpServer):
187
194
  raise NotImplementedError("Subclasses must implement _create_transport")
188
195
 
189
196
  async def connect(self):
197
+ if not self.is_enabled:
198
+ if self.verbose and self.io:
199
+ self.io.tool_output(f"Enabled option is set to false for MCP server: {self.name}")
200
+ return None
201
+
190
202
  if self.session is not None:
191
203
  if self.verbose and self.io:
192
204
  self.io.tool_output(f"Using existing session for {self.name}")
@@ -12,6 +12,7 @@ from cecli.versioncheck import VERSION_CHECK_FNAME
12
12
 
13
13
  # Global variable to store resolved args data for error reporting
14
14
  resolved_args_data = None
15
+ error_prefix = []
15
16
 
16
17
  FENCE = "`" * 3
17
18
 
@@ -68,10 +69,11 @@ def format_args_for_reporting(args):
68
69
  pass
69
70
 
70
71
  # Format the output line by line
71
- lines = ["Configuration:"]
72
+ lines = ["Configuration:\n```yaml"]
72
73
  for key, value in sorted(args_dict.items()):
73
74
  lines.append(f"{key}: {value}")
74
75
 
76
+ lines.append("```")
75
77
  return "\n".join(lines)
76
78
 
77
79
 
@@ -85,6 +87,17 @@ def set_args_error_data(args):
85
87
  resolved_args_data = args
86
88
 
87
89
 
90
+ def get_error_prefix():
91
+ global error_prefix
92
+ return error_prefix
93
+
94
+
95
+ def update_error_prefix(prefix):
96
+ global error_prefix
97
+ error_prefix.append(f"{prefix}\n")
98
+ error_prefix = error_prefix[-10:]
99
+
100
+
88
101
  def report_github_issue(issue_text, title=None, confirm=True):
89
102
  """
90
103
  Compose a URL to open a new GitHub issue with the given text prefilled,
@@ -102,6 +115,7 @@ def report_github_issue(issue_text, title=None, confirm=True):
102
115
  os_info = get_os_info() + "\n"
103
116
  git_info = get_git_info() + "\n"
104
117
  args_info = format_args_for_reporting(get_args_error_data()) + "\n"
118
+ prefix_info = "".join(get_error_prefix())
105
119
 
106
120
  system_info = (
107
121
  version_info
@@ -111,6 +125,8 @@ def report_github_issue(issue_text, title=None, confirm=True):
111
125
  + os_info
112
126
  + git_info
113
127
  + "\n"
128
+ + prefix_info
129
+ + "\n"
114
130
  + args_info
115
131
  + "\n"
116
132
  )
@@ -123,11 +139,13 @@ def report_github_issue(issue_text, title=None, confirm=True):
123
139
  issue_url = f"{github_issues}?{urllib.parse.urlencode(params)}"
124
140
 
125
141
  if confirm:
126
- print(f"\n# {title}\n")
127
- print(issue_text.strip())
128
- print()
142
+ # print(f"\n# {title}\n")
143
+ # print(issue_text.strip())
144
+ # print()
129
145
  print("Please consider reporting this bug to help improve cecli!")
130
- prompt = "Open a GitHub Issue pre-filled with the above error in your browser? (Y/n) "
146
+ prompt = (
147
+ "Open a GitHub Issue pre-filled with the above error messages in your browser? (Y/n) "
148
+ )
131
149
  confirmation = input(prompt).strip().lower()
132
150
 
133
151
  yes = not confirmation or confirmation.startswith("y")
@@ -59,6 +59,10 @@ mcp-servers-file: /path/to/mcp.json
59
59
 
60
60
  These options are configurable in any of Aider's config file formats.
61
61
 
62
+ Also, you are able to say if you would like an mcp enabled/disabled in the config itself via `"enabled"` key
63
+ By default MCP servers are enabled, so you MUST explicitly disable them in the config if you dont wish
64
+ for them to be included when cecli starts up
65
+
62
66
  ### Flags
63
67
 
64
68
  You can specify MCP servers directly on the command line using the `--mcp-servers` option with a JSON or YAML string:
@@ -204,7 +208,7 @@ mcp-servers:
204
208
  "-i",
205
209
  "--rm",
206
210
  "-e",
207
- "GITHUB_PERSONAL_ACCESS_TOKEN=<access_token>",
211
+ "GITHUB_PERSONAL_ACCESS_TOKEN=<access_token>",
208
212
  "ghcr.io/github/github-mcp-server"
209
213
  ]
210
214
  ```
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cecli-dev
3
- Version: 0.95.9
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
@@ -230,6 +230,7 @@ The current priorities are to improve core capabilities and user experience of t
230
230
  4. **Context Delivery** - [Discussion](https://github.com/dwash96/cecli/issues/47)
231
231
  * [ ] Use workflow for internal discovery to better target file snippets needed for specific tasks
232
232
  * [ ] Add support for partial files and code snippets in model completion messages
233
+ * [ ] Update message request structure for optimal caching
233
234
 
234
235
  5. **TUI Experience** - [Discussion](https://github.com/dwash96/cecli/issues/48)
235
236
  * [x] Add a full TUI (probably using textual) to have a visual interface competitive with the other coding agent terminal programs
@@ -241,8 +242,8 @@ The current priorities are to improve core capabilities and user experience of t
241
242
  * [x] Add an explicit "finished" internal tool
242
243
  * [x] Add a configuration json setting for agent mode to specify allowed local tools to use, tool call limits, etc.
243
244
  * [ ] Add a RAG tool for the model to ask questions about the codebase
244
- * [ ] Make the system prompts more aggressive about removing unneeded files/content from the context
245
- * [ ] 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
246
247
  * [x] Add a dynamic tool discovery tool to allow the system to have only the tools it needs in context
247
248
 
248
249
  ### All Contributors (Both Cecli and Aider main)
@@ -463,6 +463,7 @@ tests/basic/__init__.py
463
463
  tests/basic/test_aws_credentials.py
464
464
  tests/basic/test_coder.py
465
465
  tests/basic/test_commands.py
466
+ tests/basic/test_custom_commands.py
466
467
  tests/basic/test_deprecated.py
467
468
  tests/basic/test_editblock.py
468
469
  tests/basic/test_editor.py
@@ -0,0 +1,64 @@
1
+ import pytest
2
+
3
+ from cecli.commands.utils.base_command import BaseCommand
4
+
5
+
6
+ class TestCommandMeta:
7
+ """Tests for the CommandMeta metaclass validation."""
8
+
9
+ def test_valid_custom_command_is_accepted(self):
10
+ """Test that a valid custom command class is accepted."""
11
+
12
+ class CustomCommand(BaseCommand):
13
+ NORM_NAME = "custom"
14
+ DESCRIPTION = "A valid custom command"
15
+
16
+ @classmethod
17
+ async def execute(cls, io, coder, args, **kwargs):
18
+ pass
19
+
20
+ # If we get here without exception, the test passes
21
+ assert CustomCommand.NORM_NAME == "custom"
22
+ assert CustomCommand.DESCRIPTION == "A valid custom command"
23
+
24
+ def test_class_name_must_end_with_command(self):
25
+ """Test that class name must end with 'Command'."""
26
+ with pytest.raises(TypeError, match="Command class must end with 'Command'"):
27
+
28
+ class Custom(BaseCommand):
29
+ NORM_NAME = "custom"
30
+ DESCRIPTION = "An invalid custom command"
31
+
32
+ @classmethod
33
+ async def execute(cls, io, coder, args, **kwargs):
34
+ pass
35
+
36
+ def test_must_define_norm_name(self):
37
+ """Test that NORM_NAME must be defined."""
38
+ with pytest.raises(TypeError, match="Command class must define NORM_NAME"):
39
+
40
+ class CustomCommand(BaseCommand):
41
+ DESCRIPTION = "Missing NORM_NAME"
42
+
43
+ @classmethod
44
+ async def execute(cls, io, coder, args, **kwargs):
45
+ pass
46
+
47
+ def test_must_define_description(self):
48
+ """Test that DESCRIPTION must be defined."""
49
+ with pytest.raises(TypeError, match="Command class must define DESCRIPTION"):
50
+
51
+ class CustomCommand(BaseCommand):
52
+ NORM_NAME = "custom"
53
+
54
+ @classmethod
55
+ async def execute(cls, io, coder, args, **kwargs):
56
+ pass
57
+
58
+ def test_must_implement_execute_method(self):
59
+ """Test that execute method must be implemented."""
60
+ with pytest.raises(TypeError, match="Command class must implement execute method"):
61
+
62
+ class CustomCommand(BaseCommand):
63
+ NORM_NAME = "custom"
64
+ DESCRIPTION = "Missing execute method"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes