cecli-dev 0.98.1__tar.gz → 0.98.2__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 (601) hide show
  1. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/PKG-INFO +1 -1
  2. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/__init__.py +1 -1
  3. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/_version.py +3 -3
  4. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/agent_coder.py +5 -15
  5. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/base_coder.py +7 -6
  6. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/plugin_manager.py +4 -0
  7. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/requests.py +18 -4
  8. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/models.py +2 -2
  9. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/finished.py +1 -0
  10. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/show_context.py +4 -0
  11. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/update_todo_list.py +14 -0
  12. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/utils/base_tool.py +5 -0
  13. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/utils/registry.py +43 -19
  14. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/agent-mode.md +6 -6
  15. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli_dev.egg-info/PKG-INFO +1 -1
  16. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_repomap.py +1 -1
  17. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/tools/test_registry.py +6 -6
  18. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.dockerignore +0 -0
  19. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.flake8 +0 -0
  20. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.gitattributes +0 -0
  21. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  22. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.github/workflows/check_pypi_version.yml +0 -0
  23. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.github/workflows/docker-build-test.yml +0 -0
  24. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.github/workflows/docker-release.yml +0 -0
  25. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.github/workflows/issues.yml +0 -0
  26. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.github/workflows/pages.yml +0 -0
  27. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.github/workflows/pre-commit.yml +0 -0
  28. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.github/workflows/release.yml +0 -0
  29. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.github/workflows/ubuntu-tests.yml +0 -0
  30. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.github/workflows/windows-tests.yml +0 -0
  31. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.github/workflows/windows_check_pypi_version.yml +0 -0
  32. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.gitignore +0 -0
  33. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.pre-commit-config.yaml +0 -0
  34. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/CHANGELOG.md +0 -0
  35. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/CNAME +0 -0
  36. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/CONTRIBUTING.md +0 -0
  37. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/HISTORY.md +0 -0
  38. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/LICENSE.txt +0 -0
  39. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/MANIFEST.in +0 -0
  40. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/README.md +0 -0
  41. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/Dockerfile +0 -0
  42. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/README.md +0 -0
  43. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/__init__.py +0 -0
  44. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/benchmark.py +0 -0
  45. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/benchmark_classic.py +0 -0
  46. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/clone-exercism.sh +0 -0
  47. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/cpp-test.sh +0 -0
  48. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/docker.sh +0 -0
  49. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/docker_build.sh +0 -0
  50. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/install-docker-ubuntu.sh +0 -0
  51. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/npm-test.sh +0 -0
  52. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/over_time.py +0 -0
  53. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/plot.sh +0 -0
  54. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/plots.py +0 -0
  55. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/problem_stats.py +0 -0
  56. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/prompts.py +0 -0
  57. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/refactor_tools.py +0 -0
  58. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/rsync.sh +0 -0
  59. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/rungrid.py +0 -0
  60. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/swe-bench-lite.txt +0 -0
  61. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/swe-bench.txt +0 -0
  62. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/swe_bench.py +0 -0
  63. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/test_benchmark.py +0 -0
  64. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/variations.1.sh +0 -0
  65. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/variations.2.sh +0 -0
  66. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/variations.3.sh +0 -0
  67. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/variations.4.sh +0 -0
  68. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/__main__.py +0 -0
  69. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/args.py +0 -0
  70. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/args_formatter.py +0 -0
  71. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/change_tracker.py +0 -0
  72. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/__init__.py +0 -0
  73. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/architect_coder.py +0 -0
  74. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/ask_coder.py +0 -0
  75. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/chat_chunks.py +0 -0
  76. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/context_coder.py +0 -0
  77. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/copypaste_coder.py +0 -0
  78. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/editblock_coder.py +0 -0
  79. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/editblock_fenced_coder.py +0 -0
  80. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/editblock_func_coder.py +0 -0
  81. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  82. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/editor_editblock_coder.py +0 -0
  83. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/editor_whole_coder.py +0 -0
  84. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/hashline_coder.py +0 -0
  85. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/help_coder.py +0 -0
  86. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/patch_coder.py +0 -0
  87. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/search_replace.py +0 -0
  88. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/shell.py +0 -0
  89. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/single_wholefile_func_coder.py +0 -0
  90. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/udiff_coder.py +0 -0
  91. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/udiff_simple.py +0 -0
  92. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/wholefile_coder.py +0 -0
  93. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/wholefile_func_coder.py +0 -0
  94. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/__init__.py +0 -0
  95. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/add.py +0 -0
  96. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/agent.py +0 -0
  97. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/agent_model.py +0 -0
  98. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/architect.py +0 -0
  99. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/ask.py +0 -0
  100. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/chat_mode.py +0 -0
  101. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/clear.py +0 -0
  102. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/code.py +0 -0
  103. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/command_prefix.py +0 -0
  104. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/commit.py +0 -0
  105. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/compact.py +0 -0
  106. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/context.py +0 -0
  107. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/context_blocks.py +0 -0
  108. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/context_management.py +0 -0
  109. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/copy.py +0 -0
  110. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/copy_context.py +0 -0
  111. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/core.py +0 -0
  112. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/diff.py +0 -0
  113. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/drop.py +0 -0
  114. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/editor.py +0 -0
  115. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/editor_model.py +0 -0
  116. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/exit.py +0 -0
  117. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/git.py +0 -0
  118. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/hashline.py +0 -0
  119. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/help.py +0 -0
  120. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/history_search.py +0 -0
  121. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/hooks.py +0 -0
  122. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/lint.py +0 -0
  123. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/list_sessions.py +0 -0
  124. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/load.py +0 -0
  125. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/load_hook.py +0 -0
  126. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/load_mcp.py +0 -0
  127. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/load_session.py +0 -0
  128. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/load_skill.py +0 -0
  129. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/ls.py +0 -0
  130. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/map.py +0 -0
  131. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/map_refresh.py +0 -0
  132. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/model.py +0 -0
  133. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/models.py +0 -0
  134. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/multiline_mode.py +0 -0
  135. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/paste.py +0 -0
  136. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/quit.py +0 -0
  137. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/read_only.py +0 -0
  138. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/read_only_stub.py +0 -0
  139. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/reasoning_effort.py +0 -0
  140. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/remove_hook.py +0 -0
  141. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/remove_mcp.py +0 -0
  142. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/remove_skill.py +0 -0
  143. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/report.py +0 -0
  144. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/reset.py +0 -0
  145. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/rules.py +0 -0
  146. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/run.py +0 -0
  147. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/save.py +0 -0
  148. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/save_session.py +0 -0
  149. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/settings.py +0 -0
  150. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/terminal_data/linux.keytab +0 -0
  151. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/terminal_setup.py +0 -0
  152. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/test.py +0 -0
  153. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/think_tokens.py +0 -0
  154. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/tokens.py +0 -0
  155. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/undo.py +0 -0
  156. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/utils/__init__.py +0 -0
  157. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/utils/base_command.py +0 -0
  158. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/utils/helpers.py +0 -0
  159. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/utils/registry.py +0 -0
  160. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/utils/save_load_manager.py +0 -0
  161. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/voice.py +0 -0
  162. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/weak_model.py +0 -0
  163. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/web.py +0 -0
  164. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/deprecated_args.py +0 -0
  165. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/diffs.py +0 -0
  166. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/dump.py +0 -0
  167. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/editor.py +0 -0
  168. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/exceptions.py +0 -0
  169. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/format_settings.py +0 -0
  170. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/help.py +0 -0
  171. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/help_pats.py +0 -0
  172. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/__init__.py +0 -0
  173. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/background_commands.py +0 -0
  174. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/command_parser.py +0 -0
  175. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/conversation/__init__.py +0 -0
  176. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/conversation/base_message.py +0 -0
  177. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/conversation/files.py +0 -0
  178. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/conversation/integration.py +0 -0
  179. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/conversation/manager.py +0 -0
  180. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/conversation/service.py +0 -0
  181. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/conversation/tags.py +0 -0
  182. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/conversation/utils.py +0 -0
  183. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/copypaste.py +0 -0
  184. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/coroutines.py +0 -0
  185. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/file_searcher.py +0 -0
  186. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/hashline.py +0 -0
  187. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/hashpos/__init__.py +0 -0
  188. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/hashpos/hashpos.py +0 -0
  189. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/model_providers.py +0 -0
  190. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/nested.py +0 -0
  191. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/profiler.py +0 -0
  192. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/responses.py +0 -0
  193. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/similarity.py +0 -0
  194. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/skills.py +0 -0
  195. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/history.py +0 -0
  196. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/hooks/__init__.py +0 -0
  197. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/hooks/base.py +0 -0
  198. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/hooks/integration.py +0 -0
  199. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/hooks/manager.py +0 -0
  200. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/hooks/registry.py +0 -0
  201. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/hooks/types.py +0 -0
  202. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/interruptible_input.py +0 -0
  203. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/io.py +0 -0
  204. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/linter.py +0 -0
  205. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/llm.py +0 -0
  206. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/main.py +0 -0
  207. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/mcp/__init__.py +0 -0
  208. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/mcp/manager.py +0 -0
  209. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/mcp/oauth.py +0 -0
  210. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/mcp/server.py +0 -0
  211. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/mcp/utils.py +0 -0
  212. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/mdstream.py +0 -0
  213. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/onboarding.py +0 -0
  214. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/__init__.py +0 -0
  215. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/agent.yml +0 -0
  216. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/architect.yml +0 -0
  217. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/ask.yml +0 -0
  218. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/base.yml +0 -0
  219. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/context.yml +0 -0
  220. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/copypaste.yml +0 -0
  221. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/editblock.yml +0 -0
  222. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/editblock_fenced.yml +0 -0
  223. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/editblock_func.yml +0 -0
  224. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/editor_diff_fenced.yml +0 -0
  225. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/editor_editblock.yml +0 -0
  226. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/editor_whole.yml +0 -0
  227. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/hashline.yml +0 -0
  228. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/help.yml +0 -0
  229. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/patch.yml +0 -0
  230. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/single_wholefile_func.yml +0 -0
  231. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/udiff.yml +0 -0
  232. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/udiff_simple.yml +0 -0
  233. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/utils/__init__.py +0 -0
  234. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/utils/registry.py +0 -0
  235. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/utils/system.py +0 -0
  236. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/wholefile.yml +0 -0
  237. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/wholefile_func.yml +0 -0
  238. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  239. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  240. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  241. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  242. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  243. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  244. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  245. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  246. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  247. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  248. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  249. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  250. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  251. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  252. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  253. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  254. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  255. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  256. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  257. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  258. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  259. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  260. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  261. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  262. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  263. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  264. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  265. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  266. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  267. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  268. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  269. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/README.md +0 -0
  270. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  271. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  272. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  273. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  274. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  275. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  276. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  277. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  278. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  279. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  280. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  281. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  282. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  283. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  284. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  285. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  286. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  287. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  288. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  289. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  290. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  291. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  292. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  293. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  294. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  295. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  296. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/reasoning_tags.py +0 -0
  297. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/repo.py +0 -0
  298. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/repomap.py +0 -0
  299. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/report.py +0 -0
  300. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/resources/__init__.py +0 -0
  301. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/resources/model-metadata.json +0 -0
  302. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/resources/model-settings.yml +0 -0
  303. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/resources/providers.json +0 -0
  304. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/run_cmd.py +0 -0
  305. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/scrape.py +0 -0
  306. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/sendchat.py +0 -0
  307. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/sessions.py +0 -0
  308. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/special.py +0 -0
  309. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/__init__.py +0 -0
  310. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/command.py +0 -0
  311. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/command_interactive.py +0 -0
  312. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/context_manager.py +0 -0
  313. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/delete_text.py +0 -0
  314. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/git_branch.py +0 -0
  315. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/git_diff.py +0 -0
  316. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/git_log.py +0 -0
  317. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/git_remote.py +0 -0
  318. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/git_show.py +0 -0
  319. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/git_status.py +0 -0
  320. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/grep.py +0 -0
  321. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/insert_text.py +0 -0
  322. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/list_changes.py +0 -0
  323. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/load_skill.py +0 -0
  324. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/ls.py +0 -0
  325. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/remove_skill.py +0 -0
  326. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/replace_text.py +0 -0
  327. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/thinking.py +0 -0
  328. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/undo_change.py +0 -0
  329. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/utils/helpers.py +0 -0
  330. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/utils/output.py +0 -0
  331. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/view_files_matching.py +0 -0
  332. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/view_files_with_symbol.py +0 -0
  333. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/__init__.py +0 -0
  334. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/app.py +0 -0
  335. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/io.py +0 -0
  336. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/styles.tcss +0 -0
  337. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/widgets/__init__.py +0 -0
  338. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/widgets/completion_bar.py +0 -0
  339. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/widgets/file_list.py +0 -0
  340. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/widgets/footer.py +0 -0
  341. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/widgets/input_area.py +0 -0
  342. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/widgets/input_container.py +0 -0
  343. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/widgets/key_hints.py +0 -0
  344. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/widgets/output.py +0 -0
  345. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/widgets/status_bar.py +0 -0
  346. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/worker.py +0 -0
  347. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/urls.py +0 -0
  348. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/utils.py +0 -0
  349. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/versioncheck.py +0 -0
  350. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/voice.py +0 -0
  351. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/waiting.py +0 -0
  352. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/watch.py +0 -0
  353. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/watch_prompts.py +0 -0
  354. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/Gemfile +0 -0
  355. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/blame.md +0 -0
  356. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/get-started.md +0 -0
  357. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/help-tip.md +0 -0
  358. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/help.md +0 -0
  359. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/install.md +0 -0
  360. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/keys.md +0 -0
  361. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/model-warnings.md +0 -0
  362. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/multi-line.md +0 -0
  363. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/python-m-aider.md +0 -0
  364. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/recording.css +0 -0
  365. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/recording.md +0 -0
  366. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/works-best.md +0 -0
  367. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_sass/_features.scss +0 -0
  368. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_sass/_footer.scss +0 -0
  369. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_sass/_hero.scss +0 -0
  370. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_sass/_info.scss +0 -0
  371. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_sass/_layout.scss +0 -0
  372. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_sass/_reset.scss +0 -0
  373. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_sass/_testimonials.scss +0 -0
  374. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_sass/_typography.scss +0 -0
  375. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_sass/_variables.scss +0 -0
  376. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_sass/custom/custom.scss +0 -0
  377. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_sass/global-overrides.scss +0 -0
  378. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/adv-model-settings.md +0 -0
  379. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/aider_conf.md +0 -0
  380. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/api-keys.md +0 -0
  381. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/custom-commands.md +0 -0
  382. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  383. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/dotenv.md +0 -0
  384. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/editor.md +0 -0
  385. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/hooks.md +0 -0
  386. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/mcp.md +0 -0
  387. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/model-aliases.md +0 -0
  388. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/options.md +0 -0
  389. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/reasoning.md +0 -0
  390. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/security.md +0 -0
  391. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/skills.md +0 -0
  392. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/tui.md +0 -0
  393. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config.md +0 -0
  394. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/faq.md +0 -0
  395. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/git.md +0 -0
  396. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/index.md +0 -0
  397. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/install/docker.md +0 -0
  398. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/install/optional.md +0 -0
  399. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/install.md +0 -0
  400. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/languages.md +0 -0
  401. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  402. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/legal/privacy.md +0 -0
  403. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/anthropic.md +0 -0
  404. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/azure.md +0 -0
  405. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/bedrock.md +0 -0
  406. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/cohere.md +0 -0
  407. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/deepseek.md +0 -0
  408. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/gemini.md +0 -0
  409. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/github.md +0 -0
  410. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/groq.md +0 -0
  411. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/lm-studio.md +0 -0
  412. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/ollama.md +0 -0
  413. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/openai-compat.md +0 -0
  414. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/openai.md +0 -0
  415. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/openrouter.md +0 -0
  416. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/other.md +0 -0
  417. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/vertex.md +0 -0
  418. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/warnings.md +0 -0
  419. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/xai.md +0 -0
  420. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms.md +0 -0
  421. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/more/analytics.md +0 -0
  422. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/more/edit-formats.md +0 -0
  423. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/more/infinite-output.md +0 -0
  424. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/more-info.md +0 -0
  425. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/repomap.md +0 -0
  426. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/scripting.md +0 -0
  427. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
  428. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  429. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/troubleshooting/imports.md +0 -0
  430. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  431. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/troubleshooting/support.md +0 -0
  432. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  433. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  434. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/troubleshooting.md +0 -0
  435. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/commands.md +0 -0
  436. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/conventions.md +0 -0
  437. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/copypaste.md +0 -0
  438. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/images-urls.md +0 -0
  439. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/lint-test.md +0 -0
  440. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/modes.md +0 -0
  441. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/not-code.md +0 -0
  442. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/notifications.md +0 -0
  443. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/sessions.md +0 -0
  444. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/tips.md +0 -0
  445. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/voice.md +0 -0
  446. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/watch.md +0 -0
  447. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage.md +0 -0
  448. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/share/index.md +0 -0
  449. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli_dev.egg-info/SOURCES.txt +0 -0
  450. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli_dev.egg-info/dependency_links.txt +0 -0
  451. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli_dev.egg-info/entry_points.txt +0 -0
  452. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli_dev.egg-info/requires.txt +0 -0
  453. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli_dev.egg-info/top_level.txt +0 -0
  454. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/docker/Dockerfile +0 -0
  455. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  456. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/pyproject.toml +0 -0
  457. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/pytest.ini +0 -0
  458. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/requirements/common-constraints.txt +0 -0
  459. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/requirements/requirements-dev.in +0 -0
  460. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/requirements/requirements-dev.txt +0 -0
  461. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/requirements/requirements-help.in +0 -0
  462. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/requirements/requirements-help.txt +0 -0
  463. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/requirements/requirements-playwright.in +0 -0
  464. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/requirements/requirements-playwright.txt +0 -0
  465. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/requirements/requirements.in +0 -0
  466. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/requirements/tree-sitter.in +0 -0
  467. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/requirements.txt +0 -0
  468. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/30k-image.py +0 -0
  469. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/Dockerfile.jekyll +0 -0
  470. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/__init__.py +0 -0
  471. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/blame.py +0 -0
  472. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/clean_metadata.py +0 -0
  473. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/cost_analyzer.py +0 -0
  474. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/dl_icons.py +0 -0
  475. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/filter-chat-mode.js +0 -0
  476. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/generate_providers.py +0 -0
  477. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/get_contributor_list.js +0 -0
  478. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/get_hashline.py +0 -0
  479. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/history_prompts.py +0 -0
  480. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/homepage.py +0 -0
  481. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/issues.py +0 -0
  482. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/jekyll_build.sh +0 -0
  483. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/jekyll_run.sh +0 -0
  484. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/logo_svg.py +0 -0
  485. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/pip-compile.sh +0 -0
  486. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/recording_audio.py +0 -0
  487. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/redact-cast.py +0 -0
  488. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/rename_to_cecli.py +0 -0
  489. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/tmux_record.sh +0 -0
  490. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/tsl_pack_langs.py +0 -0
  491. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/update-blame.sh +0 -0
  492. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/update-docs.sh +0 -0
  493. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/update-history.py +0 -0
  494. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/versionbump.py +0 -0
  495. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/yank-old-versions.py +0 -0
  496. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/setup.cfg +0 -0
  497. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/shim.pyproject.toml +0 -0
  498. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/__init__.py +0 -0
  499. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/__init__.py +0 -0
  500. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_aws_credentials.py +0 -0
  501. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_background_commands.py +0 -0
  502. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_coder.py +0 -0
  503. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_commands.py +0 -0
  504. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_custom_commands.py +0 -0
  505. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_deprecated.py +0 -0
  506. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_editblock.py +0 -0
  507. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_editor.py +0 -0
  508. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_exceptions.py +0 -0
  509. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_find_or_blocks.py +0 -0
  510. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_hashline.py +0 -0
  511. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_history.py +0 -0
  512. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_io.py +0 -0
  513. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_linter.py +0 -0
  514. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_main.py +0 -0
  515. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_model_info_manager.py +0 -0
  516. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_model_provider_manager.py +0 -0
  517. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_models.py +0 -0
  518. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_onboarding.py +0 -0
  519. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_plugin_manager.py +0 -0
  520. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_prompts.py +0 -0
  521. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_reasoning.py +0 -0
  522. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_repo.py +0 -0
  523. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_run_cmd.py +0 -0
  524. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_sanity_check_repo.py +0 -0
  525. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_scripting.py +0 -0
  526. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_sendchat.py +0 -0
  527. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_sessions.py +0 -0
  528. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_skills.py +0 -0
  529. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_special.py +0 -0
  530. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_ssl_verification.py +0 -0
  531. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_udiff.py +0 -0
  532. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_urls.py +0 -0
  533. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_voice.py +0 -0
  534. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_watch.py +0 -0
  535. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_wholefile.py +0 -0
  536. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/coders/test_copypaste_coder.py +0 -0
  537. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/conftest.py +0 -0
  538. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  539. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/chat-history.md +0 -0
  540. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/arduino/test.ino +0 -0
  541. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/c/test.c +0 -0
  542. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/chatito/test.chatito +0 -0
  543. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/clojure/test.clj +0 -0
  544. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  545. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/cpp/test.cpp +0 -0
  546. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/csharp/test.cs +0 -0
  547. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/d/test.d +0 -0
  548. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/dart/test.dart +0 -0
  549. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/elisp/test.el +0 -0
  550. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/elixir/test.ex +0 -0
  551. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/elm/test.elm +0 -0
  552. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/gleam/test.gleam +0 -0
  553. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/go/test.go +0 -0
  554. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/haskell/test.hs +0 -0
  555. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/hcl/test.tf +0 -0
  556. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/java/test.java +0 -0
  557. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/javascript/test.js +0 -0
  558. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/kotlin/test.kt +0 -0
  559. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/lua/test.lua +0 -0
  560. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/matlab/test.m +0 -0
  561. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/ocaml/test.ml +0 -0
  562. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  563. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/php/test.php +0 -0
  564. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/pony/test.pony +0 -0
  565. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/properties/test.properties +0 -0
  566. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/python/test.py +0 -0
  567. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/ql/test.ql +0 -0
  568. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/r/test.r +0 -0
  569. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/racket/test.rkt +0 -0
  570. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/ruby/test.rb +0 -0
  571. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/rust/test.rs +0 -0
  572. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/scala/test.scala +0 -0
  573. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/solidity/test.sol +0 -0
  574. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/swift/test.swift +0 -0
  575. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/tsx/test.tsx +0 -0
  576. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/typescript/test.ts +0 -0
  577. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/udev/test.rules +0 -0
  578. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/zig/test.zig +0 -0
  579. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/sample-code-base/sample.js +0 -0
  580. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/sample-code-base/sample.py +0 -0
  581. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  582. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/watch.js +0 -0
  583. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/watch.lisp +0 -0
  584. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/watch.py +0 -0
  585. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/watch_question.js +0 -0
  586. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/help/test_help.py +0 -0
  587. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/hooks/__init__.py +0 -0
  588. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/hooks/test_base.py +0 -0
  589. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/hooks/test_manager.py +0 -0
  590. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/hooks/test_registry.py +0 -0
  591. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/mcp/__init__.py +0 -0
  592. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/mcp/test_manager.py +0 -0
  593. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/scrape/test_playwright_disable.py +0 -0
  594. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/scrape/test_scrape.py +0 -0
  595. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/test_conversation_integration.py +0 -0
  596. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/test_conversation_system.py +0 -0
  597. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/tools/test_git_branch.py +0 -0
  598. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/tools/test_git_diff.py +0 -0
  599. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/tools/test_grep.py +0 -0
  600. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/tools/test_insert_block.py +0 -0
  601. {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/tools/test_show_context.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cecli-dev
3
- Version: 0.98.1
3
+ Version: 0.98.2
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
@@ -1,6 +1,6 @@
1
1
  from packaging import version
2
2
 
3
- __version__ = "0.98.0.dev"
3
+ __version__ = "0.98.2.dev"
4
4
  safe_version = __version__
5
5
 
6
6
  try:
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.98.1'
22
- __version_tuple__ = version_tuple = (0, 98, 1)
21
+ __version__ = version = '0.98.2'
22
+ __version_tuple__ = version_tuple = (0, 98, 2)
23
23
 
24
- __commit_id__ = commit_id = 'g05e9595a9'
24
+ __commit_id__ = commit_id = 'g1fefb15aa'
@@ -43,6 +43,7 @@ class AgentCoder(Coder):
43
43
  def __init__(self, *args, **kwargs):
44
44
  self.recently_removed = {}
45
45
  self.tool_usage_history = []
46
+ self.loaded_custom_tools = []
46
47
  self.tool_usage_retries = 20
47
48
  self.last_round_tools = []
48
49
  self.tool_call_vectors = []
@@ -90,6 +91,7 @@ class AgentCoder(Coder):
90
91
  self.agent_config = self._get_agent_config()
91
92
  self._setup_agent()
92
93
  ToolRegistry.build_registry(agent_config=self.agent_config)
94
+ self.loaded_custom_tools = ToolRegistry.loaded_custom_tools
93
95
  super().__init__(*args, **kwargs)
94
96
 
95
97
  def _setup_agent(self):
@@ -196,6 +198,9 @@ class AgentCoder(Coder):
196
198
 
197
199
  def show_announcements(self):
198
200
  super().show_announcements()
201
+ if self.loaded_custom_tools:
202
+ self.io.tool_output(f"Loaded custom tools: {', '.join(self.loaded_custom_tools)}")
203
+
199
204
  skills = self.skills_manager.find_skills()
200
205
  if skills:
201
206
  skills_list = []
@@ -295,21 +300,6 @@ class AgentCoder(Coder):
295
300
  tasks.append(result)
296
301
  else:
297
302
  tasks.append(asyncio.to_thread(lambda: result))
298
- elif self.mcp_tools:
299
- for server_name, server_tools in self.mcp_tools:
300
- if any(
301
- t.get("function", {}).get("name") == norm_tool_name
302
- for t in server_tools
303
- ):
304
- server = self.mcp_manager.get_server(server_name)
305
- if server:
306
- for params in parsed_args_list:
307
- tasks.append(
308
- self._execute_mcp_tool(server, norm_tool_name, params)
309
- )
310
- break
311
- else:
312
- all_results_content.append(f"Error: Unknown tool name '{tool_name}'")
313
303
  else:
314
304
  all_results_content.append(f"Error: Unknown tool name '{tool_name}'")
315
305
  if tasks:
@@ -544,7 +544,7 @@ class Coder:
544
544
  max_code_line_length=map_max_line_length,
545
545
  repo_root=self.root,
546
546
  use_memory_cache=repomap_in_memory,
547
- use_enhanced_map=False if not self.args or self.args.use_enhanced_map else True,
547
+ use_enhanced_map=getattr(self.args, "use_enhanced_map", False),
548
548
  )
549
549
 
550
550
  self.summarizer = summarizer or ChatSummary(
@@ -3221,12 +3221,13 @@ class Coder:
3221
3221
  try:
3222
3222
  func = chunk.choices[0].delta.function_call
3223
3223
  # dump(func)
3224
- for k, v in func.items():
3225
- self.tool_reflection = True
3226
- self.io.update_spinner_suffix(v)
3224
+ if func:
3225
+ for k, v in func.items():
3226
+ self.tool_reflection = True
3227
+ self.io.update_spinner_suffix(v)
3227
3228
 
3228
- received_content = True
3229
- self.token_profiler.on_token()
3229
+ received_content = True
3230
+ self.token_profiler.on_token()
3230
3231
  except AttributeError:
3231
3232
  pass
3232
3233
 
@@ -37,6 +37,8 @@ def normalize_filename(filename: str) -> str:
37
37
  :param filename: Original filename
38
38
  :return: Normalized module name
39
39
  """
40
+ if not filename:
41
+ return ""
40
42
  # Remove extension
41
43
  name = Path(filename).stem
42
44
 
@@ -58,6 +60,8 @@ def load_module(source, module_name=None, reload=False):
58
60
  :param module_name: name of module to register in sys.modules
59
61
  :return: loaded module
60
62
  """
63
+ if not source:
64
+ return None
61
65
  # Convert to absolute path for cache key
62
66
  source_path = Path(source).resolve()
63
67
 
@@ -125,7 +125,7 @@ def concatenate_user_messages(messages):
125
125
  return result
126
126
 
127
127
 
128
- def add_continue_for_no_prefill(model, messages):
128
+ def add_continue_for_no_prefill(model, messages, tools):
129
129
  """Add a 'Continue' user message for models that don't support assistant prefill.
130
130
 
131
131
  Args:
@@ -139,20 +139,34 @@ def add_continue_for_no_prefill(model, messages):
139
139
  # Check if model doesn't support assistant prefill
140
140
  # If not, inject a dummy user message with content "Continue"
141
141
  # but only if the last message is not already a user message
142
+ append_message = False
143
+
142
144
  if not model.info.get("supports_assistant_prefill", False):
143
145
  # Only add "Continue" if the last message is not a user message
144
146
  if not messages or messages[-1].get("role") != "user":
145
147
  # Add a user message with content "Continue" to the messages list
146
- messages.append({"role": "user", "content": "Continue"})
148
+ append_message = True
149
+
150
+ if (
151
+ tools
152
+ and messages
153
+ and messages[-1].get("role") == "assistant"
154
+ and messages[-1].get("prefix", False)
155
+ ):
156
+ messages[-1].pop("prefix", None)
157
+ append_message = True
158
+
159
+ if append_message:
160
+ messages.append({"role": "user", "content": "Continue"})
147
161
 
148
162
  return messages
149
163
 
150
164
 
151
- def model_request_parser(model, messages):
165
+ def model_request_parser(model, messages, tools):
152
166
  messages = thought_signature(model, messages)
153
167
  messages = remove_empty_tool_calls(messages)
154
168
  messages = concatenate_user_messages(messages)
155
169
  messages = ensure_alternating_roles(messages)
156
170
  messages = add_reasoning_content(messages)
157
- messages = add_continue_for_no_prefill(model, messages)
171
+ messages = add_continue_for_no_prefill(model, messages, tools)
158
172
  return messages
@@ -977,7 +977,7 @@ class Model(ModelSettings):
977
977
  ):
978
978
  if os.environ.get("CECLI_SANITY_CHECK_TURNS"):
979
979
  sanity_check_messages(messages)
980
- messages = model_request_parser(self, messages)
980
+ messages = model_request_parser(self, messages, tools)
981
981
  if self.verbose:
982
982
  for message in messages:
983
983
  msg_role = message.get("role")
@@ -1120,7 +1120,7 @@ class Model(ModelSettings):
1120
1120
  from cecli.exceptions import LiteLLMExceptions
1121
1121
 
1122
1122
  litellm_ex = LiteLLMExceptions()
1123
- messages = model_request_parser(self, messages)
1123
+ messages = model_request_parser(self, messages, None)
1124
1124
  retry_delay = 0.125
1125
1125
  if self.verbose:
1126
1126
  dump(messages)
@@ -3,6 +3,7 @@ from cecli.tools.utils.base_tool import BaseTool
3
3
 
4
4
  class Tool(BaseTool):
5
5
  NORM_NAME = "finished"
6
+ TRACK_INVOCATIONS = False
6
7
  SCHEMA = {
7
8
  "type": "function",
8
9
  "function": {
@@ -277,3 +277,7 @@ class Tool(BaseTool):
277
277
  except Exception as e:
278
278
  # Handle unexpected errors during processing
279
279
  return handle_tool_error(coder, tool_name, e)
280
+
281
+ @classmethod
282
+ def on_duplicate_request(cls, coder, **kwargs):
283
+ coder.edit_allowed = True
@@ -76,6 +76,13 @@ class Tool(BaseTool):
76
76
  remaining_tasks = []
77
77
 
78
78
  for task_item in tasks:
79
+ if not isinstance(task_item, dict):
80
+ task_item = {
81
+ "task": str(task_item),
82
+ "done": False,
83
+ "current": False,
84
+ }
85
+
79
86
  if task_item.get("done", False):
80
87
  done_tasks.append(f"✓ {task_item['task']}")
81
88
  else:
@@ -197,6 +204,13 @@ class Tool(BaseTool):
197
204
  remaining_tasks = []
198
205
 
199
206
  for task_item in tasks:
207
+ if not isinstance(task_item, dict):
208
+ task_item = {
209
+ "task": str(task_item),
210
+ "done": False,
211
+ "current": False,
212
+ }
213
+
200
214
  if task_item.get("done", False):
201
215
  done_tasks.append(f"✓ {task_item['task']}")
202
216
  else:
@@ -81,6 +81,7 @@ class BaseTool(ABC):
81
81
  f"Tool '{tool_name}' has been called with identical parameters recently. "
82
82
  "This request is denied to prevent repeated operations."
83
83
  )
84
+ cls.on_duplicate_request(coder, **params)
84
85
  return handle_tool_error(coder, tool_name, ValueError(error_msg))
85
86
 
86
87
  # Add current invocation to history (keeping only last 3)
@@ -99,3 +100,7 @@ class BaseTool(ABC):
99
100
  @classmethod
100
101
  def format_output(cls, coder, mcp_server, tool_response):
101
102
  print_tool_response(coder=coder, mcp_server=mcp_server, tool_response=tool_response)
103
+
104
+ @classmethod
105
+ def on_duplicate_request(cls, coder, **kwargs):
106
+ pass
@@ -6,6 +6,7 @@ this provides centralized tool registration, discovery, and filtering
6
6
  based on agent configuration.
7
7
  """
8
8
 
9
+ import traceback
9
10
  from pathlib import Path
10
11
  from typing import Dict, List, Optional, Set, Type
11
12
 
@@ -19,11 +20,25 @@ class ToolRegistry:
19
20
  _tools: Dict[str, Type] = {} # normalized name -> Tool class
20
21
  _essential_tools: Set[str] = {"contextmanager", "replacetext", "finished"}
21
22
  _registry: Dict[str, Type] = {} # cached filtered registry
23
+ loaded_custom_tools: List[str] = []
22
24
 
23
25
  @classmethod
24
26
  def register(cls, tool_class):
25
- """Register a tool class."""
26
- name = tool_class.NORM_NAME
27
+ """Register a tool class using the name from its SCHEMA."""
28
+ name = None
29
+ if hasattr(tool_class, "SCHEMA"):
30
+ try:
31
+ name = tool_class.SCHEMA.get("function", {}).get("name", "").lower()
32
+ except Exception:
33
+ pass
34
+
35
+ if not name and hasattr(tool_class, "NORM_NAME"):
36
+ name = tool_class.NORM_NAME
37
+
38
+ if not name:
39
+ # Unable to determine a name, can't register
40
+ return
41
+
27
42
  cls._tools[name] = tool_class
28
43
 
29
44
  @classmethod
@@ -46,13 +61,15 @@ class ToolRegistry:
46
61
  tools_includelist/tools_excludelist keys
47
62
 
48
63
  Returns:
49
- Dictionary mapping normalized tool names to tool classes
64
+ A dictionary mapping normalized tool names to tool classes.
65
+ Custom loaded tools are stored in `ToolRegistry.loaded_custom_tools`.
50
66
  """
51
67
  if agent_config is None:
52
68
  agent_config = {}
53
69
 
54
70
  # Load tools from tool_paths if specified
55
71
  tools_paths = agent_config.get("tools_paths", agent_config.get("tool_paths", []))
72
+ loaded_custom_tools = []
56
73
 
57
74
  for tool_path in tools_paths:
58
75
  path = Path(tool_path)
@@ -65,9 +82,12 @@ class ToolRegistry:
65
82
  # Check if module has a Tool class
66
83
  if hasattr(module, "Tool"):
67
84
  cls.register(module.Tool)
85
+ if module.Tool.NORM_NAME:
86
+ loaded_custom_tools.append(module.Tool.NORM_NAME)
68
87
  except Exception as e:
69
88
  # Log error but continue with other files
70
89
  print(f"Error loading tool from {py_file}: {e}")
90
+ print(traceback.format_exc())
71
91
  else:
72
92
  # If it's a file, try to load it directly
73
93
  if path.exists() and path.suffix == ".py":
@@ -75,8 +95,11 @@ class ToolRegistry:
75
95
  module = plugin_manager.load_module(str(path))
76
96
  if hasattr(module, "Tool"):
77
97
  cls.register(module.Tool)
98
+ if module.Tool.NORM_NAME:
99
+ loaded_custom_tools.append(module.Tool.NORM_NAME)
78
100
  except Exception as e:
79
101
  print(f"Error loading tool from {path}: {e}")
102
+ print(traceback.format_exc())
80
103
 
81
104
  # Get include/exclude lists from config
82
105
  tools_includelist = agent_config.get(
@@ -86,28 +109,29 @@ class ToolRegistry:
86
109
  "tools_excludelist", agent_config.get("tools_blacklist", [])
87
110
  )
88
111
 
89
- registry = {}
90
-
91
- for tool_name, tool_class in cls._tools.items():
92
- should_include = True
93
-
94
- # Apply include list if specified
95
- if tools_includelist:
96
- should_include = tool_name in tools_includelist
112
+ # Start with a base set of tools
113
+ if tools_includelist:
114
+ # If includelist is provided, start with only those tools
115
+ working_set = set(tools_includelist)
116
+ else:
117
+ # Otherwise, start with all registered tools
118
+ working_set = set(cls._tools.keys())
97
119
 
98
- # Essential tools are always included
99
- if tool_name in cls._essential_tools:
100
- should_include = True
120
+ # Add essential tools, they can't be removed by the excludelist
121
+ working_set.update(cls._essential_tools)
101
122
 
102
- # Apply exclude list (unless essential)
103
- if tool_name in tools_excludelist and tool_name not in cls._essential_tools:
104
- should_include = False
123
+ # Remove tools from the excludelist, but keep essential ones
124
+ if tools_excludelist:
125
+ for tool_name in tools_excludelist:
126
+ if tool_name in working_set and tool_name not in cls._essential_tools:
127
+ working_set.remove(tool_name)
105
128
 
106
- if should_include:
107
- registry[tool_name] = tool_class
129
+ # Build the final registry from the working set
130
+ registry = {name: cls._tools[name] for name in working_set if name in cls._tools}
108
131
 
109
132
  # Store the built registry in the class attribute
110
133
  cls._registry = registry
134
+ cls.loaded_custom_tools = loaded_custom_tools
111
135
  return registry
112
136
 
113
137
  @classmethod
@@ -160,7 +160,7 @@ agent-config:
160
160
  # Tool configuration
161
161
  tools_includelist: [contextmanager", "replacetext", "finished"] # Optional: Whitelist of tools
162
162
  tools_excludelist: ["command", "commandinteractive"] # Optional: Blacklist of tools
163
- tool_paths: ["./custom-tools", "~/my-tools"] # Optional: Directories or files containing custom tools
163
+ tools_paths: ["./custom-tools", "~/my-tools"] # Optional: Directories or files containing custom tools
164
164
 
165
165
  # Context blocks configuration
166
166
  include_context_blocks: ["todo_list", "git_status"] # Optional: Context blocks to include
@@ -184,7 +184,7 @@ agent-config:
184
184
  - **`skip_cli_confirmations`**: YOLO mode, be brave and let the LLM cook, can also use the option `yolo` (default: False)
185
185
  - **`tools_includelist`**: Array of tool names to allow (only these tools will be available)
186
186
  - **`tools_excludelist`**: Array of tool names to exclude (these tools will be disabled)
187
- - **`tool_paths`**: Array of directories or Python files containing custom tools to load
187
+ - **`tools_paths`**: Array of directories or Python files containing custom tools to load
188
188
  - **`include_context_blocks`**: Array of context block names to include (overrides default set)
189
189
  - **`exclude_context_blocks`**: Array of context block names to exclude from default set
190
190
 
@@ -241,14 +241,14 @@ class Tool(BaseTool):
241
241
  return f"Tool executed with parameter: {parameter_name}"
242
242
  ```
243
243
 
244
- To load custom tools, specify the `tool_paths` configuration option in your agent config:
244
+ To load custom tools, specify the `tools_paths` configuration option in your agent config:
245
245
 
246
246
  ```yaml
247
247
  agent-config:
248
- tool_paths: ["./custom-tools", "~/my-tools"]
248
+ tools_paths: ["./custom-tools", "~/my-tools"]
249
249
  ```
250
250
 
251
- The `tool_paths` can include:
251
+ The `tools_paths` can include:
252
252
  - **Directories**: All `.py` files in the directory will be scanned for `Tool` classes
253
253
  - **Individual Python files**: Specific tool files can be loaded directly
254
254
 
@@ -288,7 +288,7 @@ agent-config:
288
288
  # Tool configuration
289
289
  tools_includelist: ["contextmanager", "replacetext", "finished"] # Optional: Whitelist of tools
290
290
  tools_excludelist: ["command", "commandinteractive"] # Optional: Blacklist of tools
291
- tool_paths: ["./custom-tools", "~/my-tools"] # Optional: Directories or files containing custom tools
291
+ tools_paths: ["./custom-tools", "~/my-tools"] # Optional: Directories or files containing custom tools
292
292
 
293
293
  # Context blocks configuration
294
294
  include_context_blocks: ["todo_list", "git_status"] # Optional: Context blocks to include
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cecli-dev
3
- Version: 0.98.1
3
+ Version: 0.98.2
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
@@ -577,7 +577,7 @@ class TestRepoMapAllLanguages:
577
577
  f.write(content)
578
578
 
579
579
  io = InputOutput()
580
- repo_map = RepoMap(main_model=self.GPT35, io=io)
580
+ repo_map = RepoMap(main_model=self.GPT35, io=io, use_enhanced_map=True)
581
581
  other_files = [test_file]
582
582
  result = repo_map.get_repo_map([], other_files)
583
583
  dump(lang)
@@ -58,14 +58,14 @@ class TestToolRegistry:
58
58
 
59
59
  def test_build_registry_with_includelist(self):
60
60
  """Test filtering with tools_includelist"""
61
- config = {"tools_includelist": ["contextmanager", "replacetext", "finished"]}
61
+ config = {"tools_includelist": ["contextmanager", "replacetext"]}
62
62
  registry = ToolRegistry.build_registry(config)
63
63
 
64
- # Should only include tools in the includelist
65
- assert len(registry) == 3, "Should only include tools from includelist"
64
+ # Should only include tools from includelist, plus essential tools
65
+ assert len(registry) == 3, "Should include 2 from list + 1 essential"
66
66
  assert "contextmanager" in registry
67
67
  assert "replacetext" in registry
68
- assert "finished" in registry
68
+ assert "finished" in registry # Essential
69
69
  assert "command" not in registry, "Should not include tools not in includelist"
70
70
 
71
71
  def test_build_registry_with_excludelist(self):
@@ -92,13 +92,13 @@ class TestToolRegistry:
92
92
  def test_build_registry_combined_filters(self):
93
93
  """Test combined filtering with includelist and excludelist"""
94
94
  config = {
95
- "tools_includelist": ["contextmanager", "replacetext", "finished", "command"],
95
+ "tools_includelist": ["contextmanager", "replacetext", "command"],
96
96
  "tools_excludelist": ["commandinteractive"],
97
97
  }
98
98
  registry = ToolRegistry.build_registry(config)
99
99
 
100
100
  # Should respect all filters
101
- assert len(registry) == 4, "Should include exactly 4 tools"
101
+ assert len(registry) == 4, "Should include exactly 4 tools (3 from list + finished)"
102
102
  assert "contextmanager" in registry
103
103
  assert "replacetext" in registry
104
104
  assert "finished" in registry
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
File without changes
File without changes
File without changes