cecli-dev 0.99.3__tar.gz → 0.99.5__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 (615) hide show
  1. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/PKG-INFO +2 -2
  2. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/_version.py +3 -3
  3. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/agent_coder.py +6 -6
  4. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/base_coder.py +4 -4
  5. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/load_hook.py +22 -18
  6. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/load_mcp.py +16 -19
  7. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/load_skill.py +13 -8
  8. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/remove_hook.py +21 -17
  9. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/remove_mcp.py +12 -12
  10. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/remove_skill.py +13 -8
  11. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/conversation/files.py +2 -2
  12. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/conversation/integration.py +2 -2
  13. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/agent.yml +7 -6
  14. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/explore_symbols.py +56 -20
  15. cecli_dev-0.99.5/cecli/tools/ls.py +114 -0
  16. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/utils/base_tool.py +14 -0
  17. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli_dev.egg-info/PKG-INFO +2 -2
  18. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli_dev.egg-info/requires.txt +1 -1
  19. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/requirements/common-constraints.txt +1 -1
  20. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/requirements/requirements.in +1 -1
  21. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/requirements.txt +1 -1
  22. cecli_dev-0.99.3/cecli/tools/ls.py +0 -102
  23. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/.dockerignore +0 -0
  24. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/.flake8 +0 -0
  25. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/.gitattributes +0 -0
  26. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  27. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/.github/workflows/check_pypi_version.yml +0 -0
  28. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/.github/workflows/docker-build-test.yml +0 -0
  29. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/.github/workflows/docker-release.yml +0 -0
  30. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/.github/workflows/issues.yml +0 -0
  31. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/.github/workflows/pages.yml +0 -0
  32. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/.github/workflows/pre-commit.yml +0 -0
  33. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/.github/workflows/release.yml +0 -0
  34. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/.github/workflows/ubuntu-tests.yml +0 -0
  35. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/.github/workflows/windows-tests.yml +0 -0
  36. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/.github/workflows/windows_check_pypi_version.yml +0 -0
  37. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/.gitignore +0 -0
  38. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/.pre-commit-config.yaml +0 -0
  39. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/CHANGELOG.md +0 -0
  40. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/CNAME +0 -0
  41. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/CONTRIBUTING.md +0 -0
  42. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/HISTORY.md +0 -0
  43. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/LICENSE.txt +0 -0
  44. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/MANIFEST.in +0 -0
  45. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/README.md +0 -0
  46. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/Dockerfile +0 -0
  47. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/README.md +0 -0
  48. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/__init__.py +0 -0
  49. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/benchmark.py +0 -0
  50. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/benchmark_classic.py +0 -0
  51. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/clone-exercism.sh +0 -0
  52. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/cpp-test.sh +0 -0
  53. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/docker.sh +0 -0
  54. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/docker_build.sh +0 -0
  55. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/install-docker-ubuntu.sh +0 -0
  56. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/npm-test.sh +0 -0
  57. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/over_time.py +0 -0
  58. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/plot.sh +0 -0
  59. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/plots.py +0 -0
  60. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/problem_stats.py +0 -0
  61. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/prompts.py +0 -0
  62. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/refactor_tools.py +0 -0
  63. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/rsync.sh +0 -0
  64. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/rungrid.py +0 -0
  65. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/swe-bench-lite.txt +0 -0
  66. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/swe-bench.txt +0 -0
  67. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/swe_bench.py +0 -0
  68. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/test_benchmark.py +0 -0
  69. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/variations.1.sh +0 -0
  70. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/variations.2.sh +0 -0
  71. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/variations.3.sh +0 -0
  72. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/benchmark/variations.4.sh +0 -0
  73. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/__init__.py +0 -0
  74. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/__main__.py +0 -0
  75. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/args.py +0 -0
  76. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/args_formatter.py +0 -0
  77. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/change_tracker.py +0 -0
  78. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/__init__.py +0 -0
  79. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/architect_coder.py +0 -0
  80. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/ask_coder.py +0 -0
  81. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/chat_chunks.py +0 -0
  82. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/context_coder.py +0 -0
  83. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/copypaste_coder.py +0 -0
  84. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/editblock_coder.py +0 -0
  85. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/editblock_fenced_coder.py +0 -0
  86. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/editblock_func_coder.py +0 -0
  87. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  88. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/editor_editblock_coder.py +0 -0
  89. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/editor_whole_coder.py +0 -0
  90. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/hashline_coder.py +0 -0
  91. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/help_coder.py +0 -0
  92. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/patch_coder.py +0 -0
  93. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/search_replace.py +0 -0
  94. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/shell.py +0 -0
  95. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/single_wholefile_func_coder.py +0 -0
  96. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/udiff_coder.py +0 -0
  97. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/udiff_simple.py +0 -0
  98. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/wholefile_coder.py +0 -0
  99. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/coders/wholefile_func_coder.py +0 -0
  100. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/__init__.py +0 -0
  101. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/add.py +0 -0
  102. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/agent.py +0 -0
  103. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/agent_model.py +0 -0
  104. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/architect.py +0 -0
  105. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/ask.py +0 -0
  106. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/chat_mode.py +0 -0
  107. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/clear.py +0 -0
  108. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/code.py +0 -0
  109. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/command_prefix.py +0 -0
  110. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/commit.py +0 -0
  111. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/compact.py +0 -0
  112. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/context.py +0 -0
  113. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/context_blocks.py +0 -0
  114. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/context_management.py +0 -0
  115. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/copy.py +0 -0
  116. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/copy_context.py +0 -0
  117. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/core.py +0 -0
  118. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/diff.py +0 -0
  119. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/drop.py +0 -0
  120. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/editor.py +0 -0
  121. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/editor_model.py +0 -0
  122. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/exit.py +0 -0
  123. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/git.py +0 -0
  124. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/hashline.py +0 -0
  125. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/help.py +0 -0
  126. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/history_search.py +0 -0
  127. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/hooks.py +0 -0
  128. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/lint.py +0 -0
  129. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/list_sessions.py +0 -0
  130. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/load.py +0 -0
  131. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/load_session.py +0 -0
  132. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/ls.py +0 -0
  133. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/map.py +0 -0
  134. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/map_refresh.py +0 -0
  135. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/model.py +0 -0
  136. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/models.py +0 -0
  137. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/multiline_mode.py +0 -0
  138. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/paste.py +0 -0
  139. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/quit.py +0 -0
  140. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/read_only.py +0 -0
  141. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/read_only_stub.py +0 -0
  142. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/reasoning_effort.py +0 -0
  143. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/report.py +0 -0
  144. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/reset.py +0 -0
  145. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/rules.py +0 -0
  146. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/run.py +0 -0
  147. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/save.py +0 -0
  148. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/save_session.py +0 -0
  149. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/settings.py +0 -0
  150. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/terminal_data/linux.keytab +0 -0
  151. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/terminal_setup.py +0 -0
  152. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/test.py +0 -0
  153. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/think_tokens.py +0 -0
  154. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/tokens.py +0 -0
  155. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/undo.py +0 -0
  156. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/utils/__init__.py +0 -0
  157. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/utils/base_command.py +0 -0
  158. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/utils/helpers.py +0 -0
  159. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/utils/registry.py +0 -0
  160. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/utils/save_load_manager.py +0 -0
  161. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/voice.py +0 -0
  162. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/weak_model.py +0 -0
  163. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/web.py +0 -0
  164. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/commands/workspace.py +0 -0
  165. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/deprecated_args.py +0 -0
  166. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/diffs.py +0 -0
  167. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/dump.py +0 -0
  168. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/editor.py +0 -0
  169. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/exceptions.py +0 -0
  170. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/format_settings.py +0 -0
  171. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/help.py +0 -0
  172. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/help_pats.py +0 -0
  173. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/__init__.py +0 -0
  174. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/background_commands.py +0 -0
  175. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/command_parser.py +0 -0
  176. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/conversation/__init__.py +0 -0
  177. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/conversation/base_message.py +0 -0
  178. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/conversation/manager.py +0 -0
  179. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/conversation/service.py +0 -0
  180. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/conversation/tags.py +0 -0
  181. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/conversation/utils.py +0 -0
  182. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/copypaste.py +0 -0
  183. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/coroutines.py +0 -0
  184. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/file_searcher.py +0 -0
  185. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/hashline.py +0 -0
  186. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/hashpos/__init__.py +0 -0
  187. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/hashpos/hashpos.py +0 -0
  188. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/model_providers.py +0 -0
  189. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/monorepo/__init__.py +0 -0
  190. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/monorepo/config.py +0 -0
  191. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/monorepo/project.py +0 -0
  192. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/monorepo/workspace.py +0 -0
  193. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/monorepo/worktree.py +0 -0
  194. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/nested.py +0 -0
  195. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/observations/__init__.py +0 -0
  196. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/observations/manager.py +0 -0
  197. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/plugin_manager.py +0 -0
  198. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/profiler.py +0 -0
  199. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/requests.py +0 -0
  200. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/responses.py +0 -0
  201. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/similarity.py +0 -0
  202. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/helpers/skills.py +0 -0
  203. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/history.py +0 -0
  204. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/hooks/__init__.py +0 -0
  205. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/hooks/base.py +0 -0
  206. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/hooks/integration.py +0 -0
  207. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/hooks/manager.py +0 -0
  208. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/hooks/registry.py +0 -0
  209. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/hooks/types.py +0 -0
  210. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/interruptible_input.py +0 -0
  211. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/io.py +0 -0
  212. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/linter.py +0 -0
  213. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/llm.py +0 -0
  214. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/main.py +0 -0
  215. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/mcp/__init__.py +0 -0
  216. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/mcp/manager.py +0 -0
  217. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/mcp/oauth.py +0 -0
  218. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/mcp/server.py +0 -0
  219. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/mcp/utils.py +0 -0
  220. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/mdstream.py +0 -0
  221. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/models.py +0 -0
  222. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/onboarding.py +0 -0
  223. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/__init__.py +0 -0
  224. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/architect.yml +0 -0
  225. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/ask.yml +0 -0
  226. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/base.yml +0 -0
  227. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/context.yml +0 -0
  228. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/copypaste.yml +0 -0
  229. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/editblock.yml +0 -0
  230. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/editblock_fenced.yml +0 -0
  231. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/editblock_func.yml +0 -0
  232. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/editor_diff_fenced.yml +0 -0
  233. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/editor_editblock.yml +0 -0
  234. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/editor_whole.yml +0 -0
  235. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/hashline.yml +0 -0
  236. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/help.yml +0 -0
  237. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/patch.yml +0 -0
  238. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/single_wholefile_func.yml +0 -0
  239. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/udiff.yml +0 -0
  240. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/udiff_simple.yml +0 -0
  241. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/utils/__init__.py +0 -0
  242. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/utils/registry.py +0 -0
  243. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/utils/system.py +0 -0
  244. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/wholefile.yml +0 -0
  245. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/prompts/wholefile_func.yml +0 -0
  246. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  247. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  248. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  249. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  250. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  251. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  252. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  253. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  254. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  255. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  256. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  257. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  258. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  259. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  260. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  261. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  262. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  263. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  264. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  265. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  266. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  267. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  268. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  269. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  270. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  271. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  272. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  273. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  274. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  275. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  276. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  277. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/README.md +0 -0
  278. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  279. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  280. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  281. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  282. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  283. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  284. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  285. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  286. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  287. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  288. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  289. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  290. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  291. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  292. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  293. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  294. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  295. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  296. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  297. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  298. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  299. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  300. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  301. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  302. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  303. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  304. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/reasoning_tags.py +0 -0
  305. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/repo.py +0 -0
  306. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/repomap.py +0 -0
  307. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/report.py +0 -0
  308. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/resources/__init__.py +0 -0
  309. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/resources/model-metadata.json +0 -0
  310. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/resources/model-settings.yml +0 -0
  311. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/resources/providers.json +0 -0
  312. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/run_cmd.py +0 -0
  313. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/scrape.py +0 -0
  314. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/sendchat.py +0 -0
  315. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/sessions.py +0 -0
  316. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/special.py +0 -0
  317. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/__init__.py +0 -0
  318. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/command.py +0 -0
  319. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/command_interactive.py +0 -0
  320. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/context_manager.py +0 -0
  321. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/delete_text.py +0 -0
  322. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/finished.py +0 -0
  323. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/git_branch.py +0 -0
  324. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/git_diff.py +0 -0
  325. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/git_log.py +0 -0
  326. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/git_remote.py +0 -0
  327. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/git_show.py +0 -0
  328. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/git_status.py +0 -0
  329. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/grep.py +0 -0
  330. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/insert_text.py +0 -0
  331. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/load_skill.py +0 -0
  332. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/remove_skill.py +0 -0
  333. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/replace_text.py +0 -0
  334. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/show_context.py +0 -0
  335. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/thinking.py +0 -0
  336. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/undo_change.py +0 -0
  337. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/update_todo_list.py +0 -0
  338. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/utils/helpers.py +0 -0
  339. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/utils/output.py +0 -0
  340. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tools/utils/registry.py +0 -0
  341. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tui/__init__.py +0 -0
  342. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tui/app.py +0 -0
  343. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tui/io.py +0 -0
  344. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tui/styles.tcss +0 -0
  345. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tui/widgets/__init__.py +0 -0
  346. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tui/widgets/completion_bar.py +0 -0
  347. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tui/widgets/file_list.py +0 -0
  348. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tui/widgets/footer.py +0 -0
  349. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tui/widgets/input_area.py +0 -0
  350. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tui/widgets/input_container.py +0 -0
  351. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tui/widgets/key_hints.py +0 -0
  352. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tui/widgets/output.py +0 -0
  353. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tui/widgets/status_bar.py +0 -0
  354. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/tui/worker.py +0 -0
  355. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/urls.py +0 -0
  356. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/utils.py +0 -0
  357. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/versioncheck.py +0 -0
  358. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/voice.py +0 -0
  359. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/waiting.py +0 -0
  360. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/watch.py +0 -0
  361. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/watch_prompts.py +0 -0
  362. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/Gemfile +0 -0
  363. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/_includes/blame.md +0 -0
  364. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/_includes/get-started.md +0 -0
  365. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/_includes/help-tip.md +0 -0
  366. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/_includes/help.md +0 -0
  367. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/_includes/install.md +0 -0
  368. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/_includes/keys.md +0 -0
  369. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/_includes/model-warnings.md +0 -0
  370. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/_includes/multi-line.md +0 -0
  371. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/_includes/python-m-aider.md +0 -0
  372. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/_includes/recording.css +0 -0
  373. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/_includes/recording.md +0 -0
  374. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/_includes/works-best.md +0 -0
  375. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/_sass/_features.scss +0 -0
  376. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/_sass/_footer.scss +0 -0
  377. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/_sass/_hero.scss +0 -0
  378. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/_sass/_info.scss +0 -0
  379. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/_sass/_layout.scss +0 -0
  380. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/_sass/_reset.scss +0 -0
  381. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/_sass/_testimonials.scss +0 -0
  382. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/_sass/_typography.scss +0 -0
  383. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/_sass/_variables.scss +0 -0
  384. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/_sass/custom/custom.scss +0 -0
  385. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/_sass/global-overrides.scss +0 -0
  386. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/config/adv-model-settings.md +0 -0
  387. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/config/agent-mode.md +0 -0
  388. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/config/aider_conf.md +0 -0
  389. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/config/api-keys.md +0 -0
  390. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/config/custom-commands.md +0 -0
  391. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  392. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/config/dotenv.md +0 -0
  393. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/config/editor.md +0 -0
  394. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/config/hooks.md +0 -0
  395. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/config/mcp.md +0 -0
  396. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/config/model-aliases.md +0 -0
  397. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/config/options.md +0 -0
  398. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/config/reasoning.md +0 -0
  399. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/config/security.md +0 -0
  400. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/config/skills.md +0 -0
  401. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/config/tui.md +0 -0
  402. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/config/workspaces.md +0 -0
  403. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/config.md +0 -0
  404. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/faq.md +0 -0
  405. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/git.md +0 -0
  406. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/index.md +0 -0
  407. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/install/docker.md +0 -0
  408. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/install/optional.md +0 -0
  409. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/install.md +0 -0
  410. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/languages.md +0 -0
  411. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  412. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/legal/privacy.md +0 -0
  413. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/llms/anthropic.md +0 -0
  414. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/llms/azure.md +0 -0
  415. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/llms/bedrock.md +0 -0
  416. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/llms/cohere.md +0 -0
  417. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/llms/deepseek.md +0 -0
  418. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/llms/gemini.md +0 -0
  419. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/llms/github.md +0 -0
  420. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/llms/groq.md +0 -0
  421. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/llms/lm-studio.md +0 -0
  422. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/llms/ollama.md +0 -0
  423. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/llms/openai-compat.md +0 -0
  424. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/llms/openai.md +0 -0
  425. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/llms/openrouter.md +0 -0
  426. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/llms/other.md +0 -0
  427. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/llms/vertex.md +0 -0
  428. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/llms/warnings.md +0 -0
  429. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/llms/xai.md +0 -0
  430. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/llms.md +0 -0
  431. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/more/analytics.md +0 -0
  432. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/more/edit-formats.md +0 -0
  433. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/more/infinite-output.md +0 -0
  434. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/more-info.md +0 -0
  435. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/repomap.md +0 -0
  436. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/scripting.md +0 -0
  437. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
  438. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  439. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/troubleshooting/imports.md +0 -0
  440. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  441. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/troubleshooting/support.md +0 -0
  442. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  443. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  444. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/troubleshooting.md +0 -0
  445. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/usage/commands.md +0 -0
  446. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/usage/conventions.md +0 -0
  447. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/usage/copypaste.md +0 -0
  448. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/usage/images-urls.md +0 -0
  449. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/usage/lint-test.md +0 -0
  450. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/usage/modes.md +0 -0
  451. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/usage/not-code.md +0 -0
  452. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/usage/notifications.md +0 -0
  453. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/usage/sessions.md +0 -0
  454. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/usage/tips.md +0 -0
  455. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/usage/voice.md +0 -0
  456. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/usage/watch.md +0 -0
  457. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/docs/usage.md +0 -0
  458. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli/website/share/index.md +0 -0
  459. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli_dev.egg-info/SOURCES.txt +0 -0
  460. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli_dev.egg-info/dependency_links.txt +0 -0
  461. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli_dev.egg-info/entry_points.txt +0 -0
  462. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/cecli_dev.egg-info/top_level.txt +0 -0
  463. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/docker/Dockerfile +0 -0
  464. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  465. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/pyproject.toml +0 -0
  466. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/pytest.ini +0 -0
  467. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/requirements/requirements-dev.in +0 -0
  468. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/requirements/requirements-dev.txt +0 -0
  469. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/requirements/requirements-help.in +0 -0
  470. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/requirements/requirements-help.txt +0 -0
  471. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/requirements/requirements-playwright.in +0 -0
  472. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/requirements/requirements-playwright.txt +0 -0
  473. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/requirements/tree-sitter.in +0 -0
  474. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/30k-image.py +0 -0
  475. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/Dockerfile.jekyll +0 -0
  476. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/__init__.py +0 -0
  477. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/blame.py +0 -0
  478. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/clean_metadata.py +0 -0
  479. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/cost_analyzer.py +0 -0
  480. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/dl_icons.py +0 -0
  481. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/filter-chat-mode.js +0 -0
  482. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/generate_providers.py +0 -0
  483. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/get_contributor_list.js +0 -0
  484. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/get_hashline.py +0 -0
  485. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/history_prompts.py +0 -0
  486. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/homepage.py +0 -0
  487. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/issues.py +0 -0
  488. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/jekyll_build.sh +0 -0
  489. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/jekyll_run.sh +0 -0
  490. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/logo_svg.py +0 -0
  491. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/pip-compile.sh +0 -0
  492. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/recording_audio.py +0 -0
  493. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/redact-cast.py +0 -0
  494. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/rename_to_cecli.py +0 -0
  495. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/tmux_record.sh +0 -0
  496. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/tsl_pack_langs.py +0 -0
  497. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/update-blame.sh +0 -0
  498. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/update-docs.sh +0 -0
  499. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/update-history.py +0 -0
  500. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/versionbump.py +0 -0
  501. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/scripts/yank-old-versions.py +0 -0
  502. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/setup.cfg +0 -0
  503. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/shim.pyproject.toml +0 -0
  504. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/__init__.py +0 -0
  505. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/__init__.py +0 -0
  506. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_aws_credentials.py +0 -0
  507. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_background_commands.py +0 -0
  508. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_coder.py +0 -0
  509. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_commands.py +0 -0
  510. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_custom_commands.py +0 -0
  511. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_deprecated.py +0 -0
  512. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_editblock.py +0 -0
  513. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_editor.py +0 -0
  514. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_exceptions.py +0 -0
  515. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_find_or_blocks.py +0 -0
  516. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_hashline.py +0 -0
  517. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_history.py +0 -0
  518. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_io.py +0 -0
  519. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_linter.py +0 -0
  520. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_main.py +0 -0
  521. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_model_info_manager.py +0 -0
  522. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_model_provider_manager.py +0 -0
  523. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_models.py +0 -0
  524. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_onboarding.py +0 -0
  525. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_plugin_manager.py +0 -0
  526. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_prompts.py +0 -0
  527. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_reasoning.py +0 -0
  528. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_repo.py +0 -0
  529. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_repomap.py +0 -0
  530. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_run_cmd.py +0 -0
  531. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_sanity_check_repo.py +0 -0
  532. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_scripting.py +0 -0
  533. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_sendchat.py +0 -0
  534. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_sessions.py +0 -0
  535. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_skills.py +0 -0
  536. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_special.py +0 -0
  537. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_ssl_verification.py +0 -0
  538. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_udiff.py +0 -0
  539. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_urls.py +0 -0
  540. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_voice.py +0 -0
  541. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_watch.py +0 -0
  542. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/basic/test_wholefile.py +0 -0
  543. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/coders/test_copypaste_coder.py +0 -0
  544. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/conftest.py +0 -0
  545. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/conversations/test_conversation_integration.py +0 -0
  546. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/conversations/test_conversation_system.py +0 -0
  547. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  548. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/chat-history.md +0 -0
  549. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/arduino/test.ino +0 -0
  550. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/c/test.c +0 -0
  551. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/chatito/test.chatito +0 -0
  552. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/clojure/test.clj +0 -0
  553. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  554. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/cpp/test.cpp +0 -0
  555. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/csharp/test.cs +0 -0
  556. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/d/test.d +0 -0
  557. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/dart/test.dart +0 -0
  558. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/elisp/test.el +0 -0
  559. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/elixir/test.ex +0 -0
  560. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/elm/test.elm +0 -0
  561. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/gleam/test.gleam +0 -0
  562. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/go/test.go +0 -0
  563. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/haskell/test.hs +0 -0
  564. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/hcl/test.tf +0 -0
  565. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/java/test.java +0 -0
  566. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/javascript/test.js +0 -0
  567. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/kotlin/test.kt +0 -0
  568. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/lua/test.lua +0 -0
  569. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/matlab/test.m +0 -0
  570. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/ocaml/test.ml +0 -0
  571. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  572. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/php/test.php +0 -0
  573. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/pony/test.pony +0 -0
  574. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/properties/test.properties +0 -0
  575. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/python/test.py +0 -0
  576. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/ql/test.ql +0 -0
  577. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/r/test.r +0 -0
  578. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/racket/test.rkt +0 -0
  579. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/ruby/test.rb +0 -0
  580. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/rust/test.rs +0 -0
  581. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/scala/test.scala +0 -0
  582. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/solidity/test.sol +0 -0
  583. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/swift/test.swift +0 -0
  584. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/tsx/test.tsx +0 -0
  585. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/typescript/test.ts +0 -0
  586. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/udev/test.rules +0 -0
  587. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/languages/zig/test.zig +0 -0
  588. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/sample-code-base/sample.js +0 -0
  589. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/sample-code-base/sample.py +0 -0
  590. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  591. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/watch.js +0 -0
  592. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/watch.lisp +0 -0
  593. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/watch.py +0 -0
  594. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/fixtures/watch_question.js +0 -0
  595. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/help/test_help.py +0 -0
  596. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/helpers/monorepo/test_config.py +0 -0
  597. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/helpers/monorepo/test_config_active.py +0 -0
  598. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
  599. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
  600. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/helpers/monorepo/test_workspace.py +0 -0
  601. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/helpers/observations/test_observation_manager.py +0 -0
  602. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/hooks/__init__.py +0 -0
  603. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/hooks/test_base.py +0 -0
  604. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/hooks/test_manager.py +0 -0
  605. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/hooks/test_registry.py +0 -0
  606. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/mcp/__init__.py +0 -0
  607. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/mcp/test_manager.py +0 -0
  608. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/scrape/test_playwright_disable.py +0 -0
  609. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/scrape/test_scrape.py +0 -0
  610. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/tools/test_git_branch.py +0 -0
  611. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/tools/test_git_diff.py +0 -0
  612. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/tools/test_grep.py +0 -0
  613. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/tools/test_insert_block.py +0 -0
  614. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/tests/tools/test_registry.py +0 -0
  615. {cecli_dev-0.99.3 → cecli_dev-0.99.5}/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.99.3
3
+ Version: 0.99.5
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
@@ -52,7 +52,7 @@ Requires-Dist: textual>=6.0.0
52
52
  Requires-Dist: tomlkit>=0.14.0
53
53
  Requires-Dist: truststore
54
54
  Requires-Dist: xxhash>=3.6.0
55
- Requires-Dist: py-cymbal>=0.1.5
55
+ Requires-Dist: py-cymbal>=0.1.24
56
56
  Requires-Dist: rustworkx>=0.15.0
57
57
  Requires-Dist: scipy>=1.15.3
58
58
  Requires-Dist: importlib-metadata>=7.2.1
@@ -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.99.3'
22
- __version_tuple__ = version_tuple = (0, 99, 3)
21
+ __version__ = version = '0.99.5'
22
+ __version_tuple__ = version_tuple = (0, 99, 5)
23
23
 
24
- __commit_id__ = commit_id = 'g2909d229a'
24
+ __commit_id__ = commit_id = 'g4a4e977c3'
@@ -1016,25 +1016,25 @@ I will proceed based on the tool results and updated context.""")
1016
1016
 
1017
1017
  if not self.model_kwargs:
1018
1018
  self.model_kwargs = {
1019
- "temperature": default_temp + 0.1,
1020
- "frequency_penalty": default_fp + 0.2,
1019
+ "temperature": default_temp + 2**-5,
1020
+ "frequency_penalty": default_fp + 2**-5,
1021
1021
  # "presence_penalty": 0.1,
1022
1022
  }
1023
1023
  else:
1024
1024
  temperature = nested.getter(self.model_kwargs, "temperature", default_temp)
1025
1025
  freq_penalty = nested.getter(self.model_kwargs, "frequency_penalty", default_fp)
1026
1026
 
1027
- self.model_kwargs["temperature"] = temperature + 0.1
1028
- self.model_kwargs["frequency_penalty"] = freq_penalty + 0.1
1027
+ self.model_kwargs["temperature"] = temperature + 2**-5
1028
+ self.model_kwargs["frequency_penalty"] = freq_penalty + 2**-5
1029
1029
 
1030
1030
  if random.random() < 0.2:
1031
1031
  self.model_kwargs["temperature"] = max(
1032
1032
  default_temp,
1033
- temperature - 0.15,
1033
+ temperature - 2**-4,
1034
1034
  )
1035
1035
  self.model_kwargs["frequency_penalty"] = max(
1036
1036
  default_fp,
1037
- freq_penalty - 0.15,
1037
+ freq_penalty - 2**-4,
1038
1038
  )
1039
1039
 
1040
1040
  self.model_kwargs["temperature"] = max(
@@ -2737,8 +2737,8 @@ class Coder:
2737
2737
  message_dict=tool_response,
2738
2738
  tag=MessageTag.CUR,
2739
2739
  hash_key=(tool_response["tool_call_id"], str(time.monotonic_ns())),
2740
- promotion=ConversationService.get_manager(self).DEFAULT_TAG_PROMOTION_VALUE,
2741
- mark_for_demotion=1,
2740
+ # promotion=ConversationService.get_manager(self).DEFAULT_TAG_PROMOTION_VALUE,
2741
+ # mark_for_demotion=1,
2742
2742
  )
2743
2743
 
2744
2744
  return bool(tool_responses)
@@ -2925,8 +2925,8 @@ class Coder:
2925
2925
  message_dict=msg,
2926
2926
  tag=MessageTag.CUR,
2927
2927
  hash_key=("assistant_message", str(msg), str(time.monotonic_ns())),
2928
- promotion=ConversationService.get_manager(self).DEFAULT_TAG_PROMOTION_VALUE,
2929
- mark_for_demotion=1,
2928
+ # promotion=ConversationService.get_manager(self).DEFAULT_TAG_PROMOTION_VALUE,
2929
+ # mark_for_demotion=1,
2930
2930
  )
2931
2931
 
2932
2932
  def get_file_mentions(self, content, ignore_current=False):
@@ -15,24 +15,28 @@ class LoadHookCommand(BaseCommand):
15
15
  if not args.strip():
16
16
  io.tool_error("Usage: /load-hook <hook-name>")
17
17
  return 1
18
-
19
- hook_name = args.strip()
20
-
21
- # Check if hook exists
18
+ hook_names = args.strip().split()
22
19
  hook_manager = HookManager()
23
- if not hook_manager.hook_exists(hook_name):
24
- io.tool_error(f"Error: Hook '{hook_name}' not found")
25
- return 1
20
+ results = []
21
+ errors = 0
26
22
 
27
- # Enable the hook
28
- success = hook_manager.enable_hook(hook_name)
23
+ for hook_name in hook_names:
24
+ if not hook_manager.hook_exists(hook_name):
25
+ io.tool_error(f"Error: Hook '{hook_name}' not found")
26
+ results.append(f"Hook '{hook_name}' not found")
27
+ errors += 1
28
+ continue
29
29
 
30
- if success:
31
- io.tool_output(f"Hook '{hook_name}' enabled successfully")
32
- return 0
33
- else:
34
- io.tool_error(f"Error: Failed to enable hook '{hook_name}'")
35
- return 1
30
+ success = hook_manager.enable_hook(hook_name)
31
+ if success:
32
+ io.tool_output(f"Hook '{hook_name}' enabled successfully")
33
+ results.append(f"Hook '{hook_name}' enabled")
34
+ else:
35
+ io.tool_error(f"Error: Failed to enable hook '{hook_name}'")
36
+ results.append(f"Failed to enable hook '{hook_name}'")
37
+ errors += 1
38
+
39
+ return 0 if errors == 0 else 1
36
40
 
37
41
  @classmethod
38
42
  def get_completions(cls, io, coder, args) -> List[str]:
@@ -58,10 +62,10 @@ class LoadHookCommand(BaseCommand):
58
62
  """Get help text for the load-hook command."""
59
63
  help_text = super().get_help()
60
64
  help_text += "\nUsage:\n"
61
- help_text += " /load-hook <hook-name> # Enable a specific hook\n"
65
+ help_text += " /load-hook <hook-name>... # Enable one or more hooks\n"
62
66
  help_text += "\nExamples:\n"
63
67
  help_text += " /load-hook my_start_hook\n"
64
- help_text += " /load-hook check_commands\n"
65
- help_text += "\nThis command enables a hook that was previously disabled.\n"
68
+ help_text += " /load-hook check_commands my_start_hook\n"
69
+ help_text += "\nThis command enables one or more hooks that were previously disabled.\n"
66
70
  help_text += "Use /hooks to see all available hooks and their current state.\n"
67
71
  return help_text
@@ -19,25 +19,22 @@ class LoadMcpCommand(BaseCommand):
19
19
  io, cls.NORM_NAME, "No MCP servers found, nothing to load."
20
20
  )
21
21
 
22
- server_name = args.strip()
23
- server = coder.mcp_manager.get_server(server_name)
24
- if server is None:
25
- return format_command_result(
26
- io, cls.NORM_NAME, "", f"MCP server {server_name} does not exist."
27
- )
28
-
29
- did_connect = await coder.mcp_manager.connect_server(server.name)
30
-
31
- if not did_connect:
32
- return format_command_result(io, cls.NORM_NAME, f"Unable to load server: {server_name}")
22
+ server_names = args.strip().split()
23
+ results = []
24
+ for server_name in server_names:
25
+ server = coder.mcp_manager.get_server(server_name)
26
+ if server is None:
27
+ results.append(f"MCP server {server_name} does not exist.")
28
+ continue
33
29
 
34
- try:
30
+ did_connect = await coder.mcp_manager.connect_server(server.name)
35
31
  if did_connect:
36
- return format_command_result(io, cls.NORM_NAME, f"Loaded server: {server_name}")
32
+ results.append(f"Loaded server: {server_name}")
37
33
  else:
38
- return format_command_result(
39
- io, cls.NORM_NAME, "", f"Unable to Load server: {server_name}"
40
- )
34
+ results.append(f"Unable to load server: {server_name}")
35
+
36
+ try:
37
+ return format_command_result(io, cls.NORM_NAME, "\n".join(results))
41
38
  finally:
42
39
  from . import SwitchCoderSignal
43
40
 
@@ -69,9 +66,9 @@ class LoadMcpCommand(BaseCommand):
69
66
  """Get help text for the load-mcp command."""
70
67
  help_text = super().get_help()
71
68
  help_text += "\nUsage:\n"
72
- help_text += " /load-mcp <mcp-name> # Load a mcp by name\n"
69
+ help_text += " /load-mcp <mcp-name>... # Load one or more mcps by name\n"
73
70
  help_text += "\nExamples:\n"
74
71
  help_text += " /load-mcp context7 # Load the context7 mcp\n"
75
- help_text += " /load-mcp github # Load the github mcp\n"
76
- help_text += "\nThis command loads a MCP server by name.\n"
72
+ help_text += " /load-mcp github context7 # Load both github and context7 mcps\n"
73
+ help_text += "\nThis command loads one or more MCP servers by name.\n"
77
74
  return help_text
@@ -15,7 +15,7 @@ class LoadSkillCommand(BaseCommand):
15
15
  io.tool_output("Usage: /load-skill <skill-name>")
16
16
  return format_command_result(io, "load-skill", "Usage: /load-skill <skill-name>")
17
17
 
18
- skill_name = args.strip()
18
+ skill_names = args.strip().split()
19
19
 
20
20
  # Check if we're in agent mode
21
21
  if not hasattr(coder, "edit_format") or coder.edit_format != "agent":
@@ -35,10 +35,14 @@ class LoadSkillCommand(BaseCommand):
35
35
  )
36
36
  return format_command_result(io, "load-skill", "Skills manager is not initialized")
37
37
 
38
- # Use the instance method on skills_manager
39
- result = coder.skills_manager.load_skill(skill_name)
40
- io.tool_output(result)
41
- return format_command_result(io, "load-skill", f"Loaded skill: {skill_name}")
38
+ results = []
39
+ for skill_name in skill_names:
40
+ # Use the instance method on skills_manager
41
+ result = coder.skills_manager.load_skill(skill_name)
42
+ io.tool_output(result)
43
+ results.append(result)
44
+
45
+ return format_command_result(io, "load-skill", "\n".join(results))
42
46
 
43
47
  @classmethod
44
48
  def get_completions(cls, io, coder, args) -> List[str]:
@@ -57,12 +61,13 @@ class LoadSkillCommand(BaseCommand):
57
61
  """Get help text for the load-skill command."""
58
62
  help_text = super().get_help()
59
63
  help_text += "\nUsage:\n"
60
- help_text += " /load-skill <skill-name> # Load a skill by name\n"
64
+ help_text += " /load-skill <skill-name>... # Load one or more skills by name\n"
61
65
  help_text += "\nExamples:\n"
62
66
  help_text += " /load-skill pdf # Load the PDF skill\n"
63
- help_text += " /load-skill web # Load the web skill\n"
67
+ help_text += " /load-skill web pdf # Load both web and PDF skills\n"
64
68
  help_text += (
65
- "\nThis command loads a skill by name. Skills are only available in agent mode.\n"
69
+ "\nThis command loads one or more skills by name. Skills are only available in agent"
70
+ " mode.\n"
66
71
  )
67
72
  help_text += "Skills provide additional functionality and tools to the agent.\n"
68
73
  return help_text
@@ -15,24 +15,28 @@ class RemoveHookCommand(BaseCommand):
15
15
  if not args.strip():
16
16
  io.tool_error("Usage: /remove-hook <hook-name>")
17
17
  return 1
18
-
19
- hook_name = args.strip()
20
-
21
- # Check if hook exists
18
+ hook_names = args.strip().split()
22
19
  hook_manager = HookManager()
23
- if not hook_manager.hook_exists(hook_name):
24
- io.tool_error(f"Error: Hook '{hook_name}' not found")
25
- return 1
20
+ results = []
21
+ errors = 0
26
22
 
27
- # Disable the hook
28
- success = hook_manager.disable_hook(hook_name)
23
+ for hook_name in hook_names:
24
+ if not hook_manager.hook_exists(hook_name):
25
+ io.tool_error(f"Error: Hook '{hook_name}' not found")
26
+ results.append(f"Hook '{hook_name}' not found")
27
+ errors += 1
28
+ continue
29
29
 
30
- if success:
31
- io.tool_output(f"Hook '{hook_name}' disabled successfully")
32
- return 0
33
- else:
34
- io.tool_error(f"Error: Failed to disable hook '{hook_name}'")
35
- return 1
30
+ success = hook_manager.disable_hook(hook_name)
31
+ if success:
32
+ io.tool_output(f"Hook '{hook_name}' disabled successfully")
33
+ results.append(f"Hook '{hook_name}' disabled")
34
+ else:
35
+ io.tool_error(f"Error: Failed to disable hook '{hook_name}'")
36
+ results.append(f"Failed to disable hook '{hook_name}'")
37
+ errors += 1
38
+
39
+ return 0 if errors == 0 else 1
36
40
 
37
41
  @classmethod
38
42
  def get_completions(cls, io, coder, args) -> List[str]:
@@ -58,10 +62,10 @@ class RemoveHookCommand(BaseCommand):
58
62
  """Get help text for the remove-hook command."""
59
63
  help_text = super().get_help()
60
64
  help_text += "\nUsage:\n"
61
- help_text += " /remove-hook <hook-name> # Disable a specific hook\n"
65
+ help_text += " /remove-hook <hook-name>... # Disable one or more hooks\n"
62
66
  help_text += "\nExamples:\n"
63
67
  help_text += " /remove-hook my_start_hook\n"
64
- help_text += " /remove-hook check_commands\n"
68
+ help_text += " /remove-hook check_commands my_start_hook\n"
65
69
  help_text += "\nThis command disables a hook without removing it from the registry.\n"
66
70
  help_text += "Use /load-hook to re-enable it later.\n"
67
71
  help_text += "Use /hooks to see all available hooks and their current state.\n"
@@ -19,16 +19,17 @@ class RemoveMcpCommand(BaseCommand):
19
19
  io, cls.NORM_NAME, "No MCP servers connected, nothing to remove."
20
20
  )
21
21
 
22
- server_name = args.strip()
23
- was_disconnected = await coder.mcp_manager.disconnect_server(server_name)
24
-
25
- try:
22
+ server_names = args.strip().split()
23
+ results = []
24
+ for server_name in server_names:
25
+ was_disconnected = await coder.mcp_manager.disconnect_server(server_name)
26
26
  if was_disconnected:
27
- return format_command_result(io, cls.NORM_NAME, f"Removed server: {server_name}")
27
+ results.append(f"Removed server: {server_name}")
28
28
  else:
29
- return format_command_result(
30
- io, cls.NORM_NAME, "", f"Unable to remove server: {server_name}"
31
- )
29
+ results.append(f"Unable to remove server: {server_name}")
30
+
31
+ try:
32
+ return format_command_result(io, cls.NORM_NAME, "\n".join(results))
32
33
  finally:
33
34
  from . import SwitchCoderSignal
34
35
 
@@ -57,9 +58,8 @@ class RemoveMcpCommand(BaseCommand):
57
58
  """Get help text for the remove-mcp command."""
58
59
  help_text = super().get_help()
59
60
  help_text += "\nUsage:\n"
60
- help_text += " /remove-mcp <mcp-name> # Remove a mcp by name\n"
61
+ help_text += " /remove-mcp <mcp-name>... # Remove one or more mcps by name\n"
61
62
  help_text += "\nExamples:\n"
62
63
  help_text += " /remove-mcp context7 # Remove the context7 mcp\n"
63
- help_text += " /remove-mcp github # Remove the github mcp\n"
64
- help_text += "\nThis command removes a MCP server by name.\n"
65
- return help_text
64
+ help_text += " /remove-mcp github context7 # Remove both github and context7 mcps\n"
65
+ help_text += "\nThis command removes one or more MCP servers by name.\n"
@@ -15,7 +15,7 @@ class RemoveSkillCommand(BaseCommand):
15
15
  io.tool_output("Usage: /remove-skill <skill-name>")
16
16
  return format_command_result(io, "remove-skill", "Usage: /remove-skill <skill-name>")
17
17
 
18
- skill_name = args.strip()
18
+ skill_names = args.strip().split()
19
19
 
20
20
  # Check if we're in agent mode
21
21
  if not hasattr(coder, "edit_format") or coder.edit_format != "agent":
@@ -35,10 +35,14 @@ class RemoveSkillCommand(BaseCommand):
35
35
  )
36
36
  return format_command_result(io, "remove-skill", "Skills manager is not initialized")
37
37
 
38
- # Use the instance method on skills_manager
39
- result = coder.skills_manager.remove_skill(skill_name)
40
- io.tool_output(result)
41
- return format_command_result(io, "remove-skill", f"Removed skill: {skill_name}")
38
+ results = []
39
+ for skill_name in skill_names:
40
+ # Use the instance method on skills_manager
41
+ result = coder.skills_manager.remove_skill(skill_name)
42
+ io.tool_output(result)
43
+ results.append(result)
44
+
45
+ return format_command_result(io, "remove-skill", "\n".join(results))
42
46
 
43
47
  @classmethod
44
48
  def get_completions(cls, io, coder, args) -> List[str]:
@@ -57,12 +61,13 @@ class RemoveSkillCommand(BaseCommand):
57
61
  """Get help text for the remove-skill command."""
58
62
  help_text = super().get_help()
59
63
  help_text += "\nUsage:\n"
60
- help_text += " /remove-skill <skill-name> # Remove a skill by name\n"
64
+ help_text += " /remove-skill <skill-name>... # Remove one or more skills by name\n"
61
65
  help_text += "\nExamples:\n"
62
66
  help_text += " /remove-skill pdf # Remove the PDF skill\n"
63
- help_text += " /remove-skill web # Remove the web skill\n"
67
+ help_text += " /remove-skill web pdf # Remove both web and PDF skills\n"
64
68
  help_text += (
65
- "\nThis command removes a skill by name. Skills are only available in agent mode.\n"
69
+ "\nThis command removes one or more skills by name. Skills are only available in agent"
70
+ " mode.\n"
66
71
  )
67
72
  help_text += "Skills provide additional functionality and tools to the agent.\n"
68
73
  return help_text
@@ -261,8 +261,8 @@ class ConversationFiles:
261
261
  ConversationService.get_manager(coder).add_message(
262
262
  message_dict=diff_message,
263
263
  tag=MessageTag.DIFFS,
264
- promotion=ConversationService.get_manager(coder).DEFAULT_TAG_PROMOTION_VALUE,
265
- mark_for_demotion=1,
264
+ # promotion=ConversationService.get_manager(coder).DEFAULT_TAG_PROMOTION_VALUE,
265
+ # mark_for_demotion=1,
266
266
  )
267
267
 
268
268
  return diff
@@ -8,7 +8,7 @@ import xxhash
8
8
  from cecli.utils import is_image_file
9
9
 
10
10
  from .service import ConversationService
11
- from .tags import MessageTag
11
+ from .tags import DEFAULT_TAG_PRIORITY, MessageTag
12
12
 
13
13
 
14
14
  class ConversationChunks:
@@ -897,7 +897,7 @@ class ConversationChunks:
897
897
  ConversationService.get_manager(coder).add_message(
898
898
  message_dict={"role": "user", "content": block_content},
899
899
  tag=MessageTag.STATIC, # Use STATIC tag but with different priority
900
- priority=250, # Between CUR (200) and REMINDER (300)
900
+ priority=DEFAULT_TAG_PRIORITY[MessageTag.REMINDER] + 25, # After REMINDER (300)
901
901
  mark_for_delete=0,
902
902
  hash_key=("post_message", block_type),
903
903
  force=True,
@@ -63,12 +63,13 @@ main_system: |
63
63
 
64
64
  system_reminder: |
65
65
  <context name="critical_reminders">
66
- ## Reminders
67
- **Strict Scope**: Stay on task. Do not alter functionality and syntax that is out of scope or pursue unrequested refactors. Do not attempt to modify large files in one shot. Work step by step.
68
- **Context Hygiene**: Remove files and loaded skills from context using `ContextManager` and/or `RemoveSkill` once they are no longer needed to save tokens and prevent confusion.
69
- **Turn Management**: Tool calls trigger the next turn. Do not include tool calls in your final summary to the user. You must use `ShowContext` to view the relevant hashline range before each edit.
70
- **Sandbox**: Use `.cecli/temp` for all verification and temporary logic.
71
- **Novelty**: Do not repeat phrases in your responses to the user. You do not need to declare you understand the task. Simply proceed. Only give status updates when you have new information.
66
+ ## Operational Rules
67
+ - **Scope**: No unrequested refactors. Edit files incrementally; avoid full-file rewrites.
68
+ - **Hygiene**: Use `ContextManager`/`RemoveSkill` to evict unneeded files/skills immediately after use.
69
+ - **Verification**: You MUST use `ShowContext` to verify hashline ranges before every edit.
70
+ - **Outputs**: Tool calls trigger turns. Never include tool syntax in final user summaries.
71
+ - **Sandbox**: Perform all verification and temp logic in `.cecli/temp`.
72
+ - **Vibe**: Zero conversational filler. Do not confirm instructions or state "I understand." Provide status updates only when you have new information.
72
73
 
73
74
  {lazy_prompt}
74
75
  {shell_cmd_reminder}
@@ -5,12 +5,16 @@ from cecli.tools.utils.base_tool import BaseTool
5
5
  from cecli.tools.utils.helpers import ToolError
6
6
  from cecli.tools.utils.output import color_markers, tool_footer, tool_header
7
7
 
8
+ cwd = os.getcwd()
9
+
8
10
  try:
9
11
  import cymbal
10
12
 
11
13
  CYMBAL_AVAILABLE = True
12
14
  except ImportError:
13
15
  CYMBAL_AVAILABLE = False
16
+ finally:
17
+ os.chdir(cwd)
14
18
 
15
19
 
16
20
  class Tool(BaseTool):
@@ -95,14 +99,12 @@ class Tool(BaseTool):
95
99
  repo_path = getattr(coder, "root", ".")
96
100
 
97
101
  try:
98
- # If we can't get a db_path or it doesn't exist, index it.
99
- if not os.path.exists(c.db_path):
100
- c.index(repo_path)
102
+ # Always index to ensure we have the latest data
103
+ c.index(repo_path)
101
104
  except Exception as e:
102
105
  error_msg = f"Failed to index repository: {str(e)}"
103
106
  coder.io.tool_error(error_msg)
104
107
  return f"Error: {error_msg}"
105
-
106
108
  all_results = []
107
109
  all_failed_queries = []
108
110
  total_successful_queries = 0
@@ -117,11 +119,8 @@ class Tool(BaseTool):
117
119
  results = c.search(symbol, limit=limit)
118
120
  all_results.append(cls._format_search_results(results, symbol))
119
121
  elif action == "investigate":
120
- # Parse symbol for file hint format: {file}:{symbol} or {package}.{symbol}
121
122
  symbol_name = symbol
122
123
  file_hint = ""
123
-
124
- # Check for file:symbol format (e.g., "config.go:Config")
125
124
  if ":" in symbol:
126
125
  parts = symbol.split(":", 1)
127
126
  if len(parts) == 2:
@@ -135,7 +134,6 @@ class Tool(BaseTool):
135
134
  )
136
135
  except Exception as e:
137
136
  if "multiple matches" in str(e).lower():
138
- # Fallback to search to show locations
139
137
  results = c.search(symbol_name, limit=10)
140
138
  locations = "\n".join(
141
139
  [f"- {r['file']}:{r['start_line']}" for r in results]
@@ -178,6 +176,9 @@ class Tool(BaseTool):
178
176
  except Exception as e:
179
177
  coder.io.tool_error(f"Error in ExploreSymbols: {str(e)}")
180
178
  return f"Error: {str(e)}"
179
+ finally:
180
+ if "c" in locals():
181
+ c.close()
181
182
 
182
183
  @classmethod
183
184
  def _format_search_results(cls, results, symbol):
@@ -187,14 +188,18 @@ class Tool(BaseTool):
187
188
 
188
189
  formatted = [f"Found {len(results)} symbols matching '{symbol}':"]
189
190
  for i, result in enumerate(results[:15], 1):
190
- # Extract symbol attributes (adjust based on actual cymbal result structure)
191
- # Extract symbol attributes from dictionary
192
191
  name = result.get("name", "Unknown")
193
192
  kind = result.get("kind", "unknown")
194
- file = result.get("file", "Unknown")
193
+ file = result.get("rel_path") or result.get("file", "Unknown")
195
194
  start_line = result.get("start_line", 0)
195
+ signature = result.get("signature", "")
196
+ parent = result.get("parent")
196
197
 
197
- formatted.append(f"{i}. {name} ({kind}) at {file}:{start_line}")
198
+ location = f"{file}:{start_line}"
199
+ if parent:
200
+ location = f"{location} (in {parent})"
201
+
202
+ formatted.append(f"{i}. {name}{signature} ({kind}) at {location}")
198
203
 
199
204
  if len(results) > 15:
200
205
  formatted.append(f"... and {len(results) - 15} more results")
@@ -207,17 +212,33 @@ class Tool(BaseTool):
207
212
  if not investigation:
208
213
  return f"No information found for symbol '{symbol}'"
209
214
 
215
+ # Handle nested structure if present
216
+ if "results" in investigation and "result" in investigation["results"]:
217
+ investigation = investigation["results"]["result"]
218
+
210
219
  formatted = [f"Investigation of symbol '{symbol}':"]
211
220
 
212
221
  # Extract definition information
213
222
  definition = investigation.get("symbol")
214
223
  if definition:
215
224
  def_name = definition.get("name", symbol)
216
- def_file = definition.get("file", "Unknown")
225
+ def_file = definition.get("rel_path") or definition.get("file", "Unknown")
217
226
  def_line = definition.get("start_line", 0)
218
227
  def_kind = definition.get("kind", "unknown")
219
- formatted.append(f"Definition: {def_name} ({def_kind}) at {def_file}:{def_line}")
220
-
228
+ def_sig = definition.get("signature", "")
229
+ formatted.append(
230
+ f"Definition: {def_name}{def_sig} ({def_kind}) at {def_file}:{def_line}"
231
+ )
232
+
233
+ # Source code snippet
234
+ source = investigation.get("source")
235
+ if source:
236
+ formatted.append("\nSource Code:")
237
+ formatted.append("```python")
238
+ formatted.append(source.strip())
239
+ formatted.append("```")
240
+
241
+ # References
221
242
  references = investigation.get("refs", [])
222
243
  ref_count = len(references) if references else 0
223
244
  formatted.append(f"\nReferences found: {ref_count}")
@@ -225,13 +246,26 @@ class Tool(BaseTool):
225
246
  if references and ref_count > 0:
226
247
  formatted.append("Top references:")
227
248
  for i, ref in enumerate(references[:10], 1):
228
- ref_file = ref.get("file", "Unknown")
249
+ ref_file = ref.get("rel_path") or ref.get("file", "Unknown")
229
250
  ref_line = ref.get("line", 0)
230
251
  formatted.append(f"{i}. {ref_file}:{ref_line}")
231
252
 
232
253
  if ref_count > 10:
233
254
  formatted.append(f"... and {ref_count - 10} more references")
234
255
 
256
+ # Impact / Callers
257
+ impact = investigation.get("impact", [])
258
+ if impact:
259
+ formatted.append("\nImpact (Callers):")
260
+ for i, imp in enumerate(impact[:10], 1):
261
+ imp_file = imp.get("rel_path") or imp.get("file", "Unknown")
262
+ imp_line = imp.get("line", 0)
263
+ imp_caller = imp.get("caller", "unknown")
264
+ formatted.append(f"{i}. {imp_caller} at {imp_file}:{imp_line}")
265
+
266
+ if len(impact) > 10:
267
+ formatted.append(f"... and {len(impact) - 10} more callers")
268
+
235
269
  return "\n".join(formatted)
236
270
 
237
271
  @classmethod
@@ -242,11 +276,15 @@ class Tool(BaseTool):
242
276
 
243
277
  formatted = [f"Found {len(references)} references to '{symbol}':"]
244
278
  for i, ref in enumerate(references[:15], 1):
245
- # Extract reference attributes from dictionary
246
- file = ref.get("file", "Unknown")
279
+ file = ref.get("rel_path") or ref.get("file", "Unknown")
247
280
  line = ref.get("line", 0)
281
+ context = ref.get("context", [])
248
282
 
249
283
  formatted.append(f"{i}. {file}:{line}")
284
+ if context:
285
+ formatted.append(" Context:")
286
+ for line_text in context:
287
+ formatted.append(f" {line_text.strip()}")
250
288
 
251
289
  if len(references) > 15:
252
290
  formatted.append(f"... and {len(references) - 15} more references")
@@ -266,8 +304,6 @@ class Tool(BaseTool):
266
304
 
267
305
  # Output header
268
306
  tool_header(coder=coder, mcp_server=mcp_server, tool_response=tool_response)
269
-
270
- # Output each query with the requested format
271
307
  queries = params.get("queries", [])
272
308
  if queries:
273
309
  coder.io.tool_output("")