cecli-dev 0.99.3__tar.gz → 0.99.4__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 (614) hide show
  1. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/PKG-INFO +2 -2
  2. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/_version.py +3 -3
  3. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/agent_coder.py +6 -6
  4. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/base_coder.py +4 -4
  5. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/load_hook.py +22 -18
  6. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/load_mcp.py +16 -19
  7. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/load_skill.py +13 -8
  8. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/remove_hook.py +21 -17
  9. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/remove_mcp.py +12 -12
  10. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/remove_skill.py +13 -8
  11. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/conversation/files.py +2 -2
  12. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/conversation/integration.py +2 -2
  13. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/agent.yml +7 -6
  14. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/ls.py +1 -0
  15. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/utils/base_tool.py +14 -0
  16. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli_dev.egg-info/PKG-INFO +2 -2
  17. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli_dev.egg-info/requires.txt +1 -1
  18. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/requirements/common-constraints.txt +1 -1
  19. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/requirements/requirements.in +1 -1
  20. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/requirements.txt +1 -1
  21. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/.dockerignore +0 -0
  22. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/.flake8 +0 -0
  23. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/.gitattributes +0 -0
  24. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  25. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/.github/workflows/check_pypi_version.yml +0 -0
  26. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/.github/workflows/docker-build-test.yml +0 -0
  27. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/.github/workflows/docker-release.yml +0 -0
  28. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/.github/workflows/issues.yml +0 -0
  29. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/.github/workflows/pages.yml +0 -0
  30. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/.github/workflows/pre-commit.yml +0 -0
  31. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/.github/workflows/release.yml +0 -0
  32. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/.github/workflows/ubuntu-tests.yml +0 -0
  33. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/.github/workflows/windows-tests.yml +0 -0
  34. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/.github/workflows/windows_check_pypi_version.yml +0 -0
  35. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/.gitignore +0 -0
  36. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/.pre-commit-config.yaml +0 -0
  37. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/CHANGELOG.md +0 -0
  38. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/CNAME +0 -0
  39. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/CONTRIBUTING.md +0 -0
  40. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/HISTORY.md +0 -0
  41. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/LICENSE.txt +0 -0
  42. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/MANIFEST.in +0 -0
  43. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/README.md +0 -0
  44. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/Dockerfile +0 -0
  45. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/README.md +0 -0
  46. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/__init__.py +0 -0
  47. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/benchmark.py +0 -0
  48. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/benchmark_classic.py +0 -0
  49. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/clone-exercism.sh +0 -0
  50. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/cpp-test.sh +0 -0
  51. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/docker.sh +0 -0
  52. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/docker_build.sh +0 -0
  53. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/install-docker-ubuntu.sh +0 -0
  54. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/npm-test.sh +0 -0
  55. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/over_time.py +0 -0
  56. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/plot.sh +0 -0
  57. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/plots.py +0 -0
  58. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/problem_stats.py +0 -0
  59. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/prompts.py +0 -0
  60. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/refactor_tools.py +0 -0
  61. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/rsync.sh +0 -0
  62. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/rungrid.py +0 -0
  63. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/swe-bench-lite.txt +0 -0
  64. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/swe-bench.txt +0 -0
  65. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/swe_bench.py +0 -0
  66. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/test_benchmark.py +0 -0
  67. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/variations.1.sh +0 -0
  68. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/variations.2.sh +0 -0
  69. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/variations.3.sh +0 -0
  70. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/benchmark/variations.4.sh +0 -0
  71. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/__init__.py +0 -0
  72. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/__main__.py +0 -0
  73. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/args.py +0 -0
  74. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/args_formatter.py +0 -0
  75. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/change_tracker.py +0 -0
  76. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/__init__.py +0 -0
  77. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/architect_coder.py +0 -0
  78. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/ask_coder.py +0 -0
  79. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/chat_chunks.py +0 -0
  80. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/context_coder.py +0 -0
  81. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/copypaste_coder.py +0 -0
  82. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/editblock_coder.py +0 -0
  83. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/editblock_fenced_coder.py +0 -0
  84. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/editblock_func_coder.py +0 -0
  85. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  86. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/editor_editblock_coder.py +0 -0
  87. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/editor_whole_coder.py +0 -0
  88. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/hashline_coder.py +0 -0
  89. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/help_coder.py +0 -0
  90. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/patch_coder.py +0 -0
  91. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/search_replace.py +0 -0
  92. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/shell.py +0 -0
  93. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/single_wholefile_func_coder.py +0 -0
  94. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/udiff_coder.py +0 -0
  95. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/udiff_simple.py +0 -0
  96. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/wholefile_coder.py +0 -0
  97. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/coders/wholefile_func_coder.py +0 -0
  98. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/__init__.py +0 -0
  99. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/add.py +0 -0
  100. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/agent.py +0 -0
  101. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/agent_model.py +0 -0
  102. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/architect.py +0 -0
  103. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/ask.py +0 -0
  104. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/chat_mode.py +0 -0
  105. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/clear.py +0 -0
  106. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/code.py +0 -0
  107. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/command_prefix.py +0 -0
  108. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/commit.py +0 -0
  109. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/compact.py +0 -0
  110. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/context.py +0 -0
  111. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/context_blocks.py +0 -0
  112. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/context_management.py +0 -0
  113. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/copy.py +0 -0
  114. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/copy_context.py +0 -0
  115. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/core.py +0 -0
  116. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/diff.py +0 -0
  117. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/drop.py +0 -0
  118. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/editor.py +0 -0
  119. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/editor_model.py +0 -0
  120. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/exit.py +0 -0
  121. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/git.py +0 -0
  122. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/hashline.py +0 -0
  123. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/help.py +0 -0
  124. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/history_search.py +0 -0
  125. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/hooks.py +0 -0
  126. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/lint.py +0 -0
  127. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/list_sessions.py +0 -0
  128. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/load.py +0 -0
  129. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/load_session.py +0 -0
  130. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/ls.py +0 -0
  131. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/map.py +0 -0
  132. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/map_refresh.py +0 -0
  133. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/model.py +0 -0
  134. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/models.py +0 -0
  135. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/multiline_mode.py +0 -0
  136. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/paste.py +0 -0
  137. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/quit.py +0 -0
  138. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/read_only.py +0 -0
  139. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/read_only_stub.py +0 -0
  140. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/reasoning_effort.py +0 -0
  141. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/report.py +0 -0
  142. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/reset.py +0 -0
  143. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/rules.py +0 -0
  144. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/run.py +0 -0
  145. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/save.py +0 -0
  146. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/save_session.py +0 -0
  147. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/settings.py +0 -0
  148. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/terminal_data/linux.keytab +0 -0
  149. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/terminal_setup.py +0 -0
  150. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/test.py +0 -0
  151. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/think_tokens.py +0 -0
  152. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/tokens.py +0 -0
  153. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/undo.py +0 -0
  154. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/utils/__init__.py +0 -0
  155. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/utils/base_command.py +0 -0
  156. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/utils/helpers.py +0 -0
  157. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/utils/registry.py +0 -0
  158. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/utils/save_load_manager.py +0 -0
  159. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/voice.py +0 -0
  160. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/weak_model.py +0 -0
  161. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/web.py +0 -0
  162. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/commands/workspace.py +0 -0
  163. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/deprecated_args.py +0 -0
  164. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/diffs.py +0 -0
  165. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/dump.py +0 -0
  166. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/editor.py +0 -0
  167. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/exceptions.py +0 -0
  168. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/format_settings.py +0 -0
  169. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/help.py +0 -0
  170. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/help_pats.py +0 -0
  171. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/__init__.py +0 -0
  172. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/background_commands.py +0 -0
  173. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/command_parser.py +0 -0
  174. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/conversation/__init__.py +0 -0
  175. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/conversation/base_message.py +0 -0
  176. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/conversation/manager.py +0 -0
  177. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/conversation/service.py +0 -0
  178. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/conversation/tags.py +0 -0
  179. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/conversation/utils.py +0 -0
  180. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/copypaste.py +0 -0
  181. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/coroutines.py +0 -0
  182. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/file_searcher.py +0 -0
  183. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/hashline.py +0 -0
  184. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/hashpos/__init__.py +0 -0
  185. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/hashpos/hashpos.py +0 -0
  186. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/model_providers.py +0 -0
  187. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/monorepo/__init__.py +0 -0
  188. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/monorepo/config.py +0 -0
  189. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/monorepo/project.py +0 -0
  190. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/monorepo/workspace.py +0 -0
  191. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/monorepo/worktree.py +0 -0
  192. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/nested.py +0 -0
  193. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/observations/__init__.py +0 -0
  194. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/observations/manager.py +0 -0
  195. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/plugin_manager.py +0 -0
  196. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/profiler.py +0 -0
  197. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/requests.py +0 -0
  198. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/responses.py +0 -0
  199. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/similarity.py +0 -0
  200. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/helpers/skills.py +0 -0
  201. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/history.py +0 -0
  202. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/hooks/__init__.py +0 -0
  203. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/hooks/base.py +0 -0
  204. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/hooks/integration.py +0 -0
  205. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/hooks/manager.py +0 -0
  206. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/hooks/registry.py +0 -0
  207. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/hooks/types.py +0 -0
  208. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/interruptible_input.py +0 -0
  209. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/io.py +0 -0
  210. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/linter.py +0 -0
  211. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/llm.py +0 -0
  212. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/main.py +0 -0
  213. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/mcp/__init__.py +0 -0
  214. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/mcp/manager.py +0 -0
  215. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/mcp/oauth.py +0 -0
  216. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/mcp/server.py +0 -0
  217. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/mcp/utils.py +0 -0
  218. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/mdstream.py +0 -0
  219. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/models.py +0 -0
  220. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/onboarding.py +0 -0
  221. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/__init__.py +0 -0
  222. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/architect.yml +0 -0
  223. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/ask.yml +0 -0
  224. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/base.yml +0 -0
  225. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/context.yml +0 -0
  226. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/copypaste.yml +0 -0
  227. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/editblock.yml +0 -0
  228. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/editblock_fenced.yml +0 -0
  229. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/editblock_func.yml +0 -0
  230. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/editor_diff_fenced.yml +0 -0
  231. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/editor_editblock.yml +0 -0
  232. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/editor_whole.yml +0 -0
  233. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/hashline.yml +0 -0
  234. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/help.yml +0 -0
  235. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/patch.yml +0 -0
  236. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/single_wholefile_func.yml +0 -0
  237. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/udiff.yml +0 -0
  238. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/udiff_simple.yml +0 -0
  239. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/utils/__init__.py +0 -0
  240. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/utils/registry.py +0 -0
  241. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/utils/system.py +0 -0
  242. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/wholefile.yml +0 -0
  243. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/prompts/wholefile_func.yml +0 -0
  244. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  245. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  246. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  247. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  248. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  249. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  250. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  251. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  252. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  253. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  254. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  255. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  256. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  257. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  258. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  259. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  260. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  261. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  262. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  263. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  264. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  265. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  266. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  267. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  268. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  269. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  270. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  271. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  272. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  273. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  274. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  275. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/README.md +0 -0
  276. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  277. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  278. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  279. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  280. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  281. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  282. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  283. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  284. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  285. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  286. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  287. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  288. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  289. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  290. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  291. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  292. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  293. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  294. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  295. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  296. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  297. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  298. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  299. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  300. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  301. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  302. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/reasoning_tags.py +0 -0
  303. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/repo.py +0 -0
  304. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/repomap.py +0 -0
  305. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/report.py +0 -0
  306. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/resources/__init__.py +0 -0
  307. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/resources/model-metadata.json +0 -0
  308. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/resources/model-settings.yml +0 -0
  309. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/resources/providers.json +0 -0
  310. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/run_cmd.py +0 -0
  311. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/scrape.py +0 -0
  312. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/sendchat.py +0 -0
  313. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/sessions.py +0 -0
  314. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/special.py +0 -0
  315. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/__init__.py +0 -0
  316. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/command.py +0 -0
  317. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/command_interactive.py +0 -0
  318. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/context_manager.py +0 -0
  319. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/delete_text.py +0 -0
  320. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/explore_symbols.py +0 -0
  321. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/finished.py +0 -0
  322. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/git_branch.py +0 -0
  323. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/git_diff.py +0 -0
  324. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/git_log.py +0 -0
  325. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/git_remote.py +0 -0
  326. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/git_show.py +0 -0
  327. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/git_status.py +0 -0
  328. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/grep.py +0 -0
  329. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/insert_text.py +0 -0
  330. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/load_skill.py +0 -0
  331. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/remove_skill.py +0 -0
  332. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/replace_text.py +0 -0
  333. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/show_context.py +0 -0
  334. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/thinking.py +0 -0
  335. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/undo_change.py +0 -0
  336. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/update_todo_list.py +0 -0
  337. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/utils/helpers.py +0 -0
  338. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/utils/output.py +0 -0
  339. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tools/utils/registry.py +0 -0
  340. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tui/__init__.py +0 -0
  341. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tui/app.py +0 -0
  342. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tui/io.py +0 -0
  343. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tui/styles.tcss +0 -0
  344. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tui/widgets/__init__.py +0 -0
  345. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tui/widgets/completion_bar.py +0 -0
  346. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tui/widgets/file_list.py +0 -0
  347. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tui/widgets/footer.py +0 -0
  348. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tui/widgets/input_area.py +0 -0
  349. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tui/widgets/input_container.py +0 -0
  350. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tui/widgets/key_hints.py +0 -0
  351. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tui/widgets/output.py +0 -0
  352. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tui/widgets/status_bar.py +0 -0
  353. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/tui/worker.py +0 -0
  354. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/urls.py +0 -0
  355. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/utils.py +0 -0
  356. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/versioncheck.py +0 -0
  357. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/voice.py +0 -0
  358. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/waiting.py +0 -0
  359. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/watch.py +0 -0
  360. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/watch_prompts.py +0 -0
  361. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/Gemfile +0 -0
  362. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/_includes/blame.md +0 -0
  363. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/_includes/get-started.md +0 -0
  364. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/_includes/help-tip.md +0 -0
  365. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/_includes/help.md +0 -0
  366. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/_includes/install.md +0 -0
  367. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/_includes/keys.md +0 -0
  368. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/_includes/model-warnings.md +0 -0
  369. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/_includes/multi-line.md +0 -0
  370. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/_includes/python-m-aider.md +0 -0
  371. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/_includes/recording.css +0 -0
  372. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/_includes/recording.md +0 -0
  373. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/_includes/works-best.md +0 -0
  374. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/_sass/_features.scss +0 -0
  375. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/_sass/_footer.scss +0 -0
  376. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/_sass/_hero.scss +0 -0
  377. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/_sass/_info.scss +0 -0
  378. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/_sass/_layout.scss +0 -0
  379. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/_sass/_reset.scss +0 -0
  380. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/_sass/_testimonials.scss +0 -0
  381. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/_sass/_typography.scss +0 -0
  382. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/_sass/_variables.scss +0 -0
  383. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/_sass/custom/custom.scss +0 -0
  384. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/_sass/global-overrides.scss +0 -0
  385. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/config/adv-model-settings.md +0 -0
  386. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/config/agent-mode.md +0 -0
  387. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/config/aider_conf.md +0 -0
  388. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/config/api-keys.md +0 -0
  389. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/config/custom-commands.md +0 -0
  390. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  391. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/config/dotenv.md +0 -0
  392. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/config/editor.md +0 -0
  393. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/config/hooks.md +0 -0
  394. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/config/mcp.md +0 -0
  395. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/config/model-aliases.md +0 -0
  396. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/config/options.md +0 -0
  397. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/config/reasoning.md +0 -0
  398. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/config/security.md +0 -0
  399. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/config/skills.md +0 -0
  400. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/config/tui.md +0 -0
  401. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/config/workspaces.md +0 -0
  402. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/config.md +0 -0
  403. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/faq.md +0 -0
  404. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/git.md +0 -0
  405. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/index.md +0 -0
  406. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/install/docker.md +0 -0
  407. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/install/optional.md +0 -0
  408. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/install.md +0 -0
  409. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/languages.md +0 -0
  410. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  411. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/legal/privacy.md +0 -0
  412. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/llms/anthropic.md +0 -0
  413. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/llms/azure.md +0 -0
  414. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/llms/bedrock.md +0 -0
  415. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/llms/cohere.md +0 -0
  416. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/llms/deepseek.md +0 -0
  417. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/llms/gemini.md +0 -0
  418. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/llms/github.md +0 -0
  419. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/llms/groq.md +0 -0
  420. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/llms/lm-studio.md +0 -0
  421. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/llms/ollama.md +0 -0
  422. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/llms/openai-compat.md +0 -0
  423. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/llms/openai.md +0 -0
  424. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/llms/openrouter.md +0 -0
  425. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/llms/other.md +0 -0
  426. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/llms/vertex.md +0 -0
  427. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/llms/warnings.md +0 -0
  428. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/llms/xai.md +0 -0
  429. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/llms.md +0 -0
  430. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/more/analytics.md +0 -0
  431. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/more/edit-formats.md +0 -0
  432. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/more/infinite-output.md +0 -0
  433. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/more-info.md +0 -0
  434. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/repomap.md +0 -0
  435. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/scripting.md +0 -0
  436. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
  437. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  438. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/troubleshooting/imports.md +0 -0
  439. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  440. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/troubleshooting/support.md +0 -0
  441. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  442. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  443. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/troubleshooting.md +0 -0
  444. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/usage/commands.md +0 -0
  445. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/usage/conventions.md +0 -0
  446. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/usage/copypaste.md +0 -0
  447. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/usage/images-urls.md +0 -0
  448. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/usage/lint-test.md +0 -0
  449. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/usage/modes.md +0 -0
  450. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/usage/not-code.md +0 -0
  451. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/usage/notifications.md +0 -0
  452. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/usage/sessions.md +0 -0
  453. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/usage/tips.md +0 -0
  454. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/usage/voice.md +0 -0
  455. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/usage/watch.md +0 -0
  456. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/docs/usage.md +0 -0
  457. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli/website/share/index.md +0 -0
  458. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli_dev.egg-info/SOURCES.txt +0 -0
  459. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli_dev.egg-info/dependency_links.txt +0 -0
  460. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli_dev.egg-info/entry_points.txt +0 -0
  461. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/cecli_dev.egg-info/top_level.txt +0 -0
  462. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/docker/Dockerfile +0 -0
  463. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  464. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/pyproject.toml +0 -0
  465. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/pytest.ini +0 -0
  466. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/requirements/requirements-dev.in +0 -0
  467. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/requirements/requirements-dev.txt +0 -0
  468. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/requirements/requirements-help.in +0 -0
  469. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/requirements/requirements-help.txt +0 -0
  470. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/requirements/requirements-playwright.in +0 -0
  471. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/requirements/requirements-playwright.txt +0 -0
  472. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/requirements/tree-sitter.in +0 -0
  473. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/30k-image.py +0 -0
  474. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/Dockerfile.jekyll +0 -0
  475. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/__init__.py +0 -0
  476. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/blame.py +0 -0
  477. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/clean_metadata.py +0 -0
  478. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/cost_analyzer.py +0 -0
  479. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/dl_icons.py +0 -0
  480. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/filter-chat-mode.js +0 -0
  481. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/generate_providers.py +0 -0
  482. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/get_contributor_list.js +0 -0
  483. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/get_hashline.py +0 -0
  484. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/history_prompts.py +0 -0
  485. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/homepage.py +0 -0
  486. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/issues.py +0 -0
  487. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/jekyll_build.sh +0 -0
  488. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/jekyll_run.sh +0 -0
  489. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/logo_svg.py +0 -0
  490. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/pip-compile.sh +0 -0
  491. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/recording_audio.py +0 -0
  492. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/redact-cast.py +0 -0
  493. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/rename_to_cecli.py +0 -0
  494. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/tmux_record.sh +0 -0
  495. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/tsl_pack_langs.py +0 -0
  496. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/update-blame.sh +0 -0
  497. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/update-docs.sh +0 -0
  498. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/update-history.py +0 -0
  499. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/versionbump.py +0 -0
  500. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/scripts/yank-old-versions.py +0 -0
  501. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/setup.cfg +0 -0
  502. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/shim.pyproject.toml +0 -0
  503. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/__init__.py +0 -0
  504. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/__init__.py +0 -0
  505. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_aws_credentials.py +0 -0
  506. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_background_commands.py +0 -0
  507. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_coder.py +0 -0
  508. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_commands.py +0 -0
  509. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_custom_commands.py +0 -0
  510. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_deprecated.py +0 -0
  511. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_editblock.py +0 -0
  512. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_editor.py +0 -0
  513. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_exceptions.py +0 -0
  514. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_find_or_blocks.py +0 -0
  515. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_hashline.py +0 -0
  516. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_history.py +0 -0
  517. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_io.py +0 -0
  518. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_linter.py +0 -0
  519. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_main.py +0 -0
  520. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_model_info_manager.py +0 -0
  521. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_model_provider_manager.py +0 -0
  522. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_models.py +0 -0
  523. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_onboarding.py +0 -0
  524. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_plugin_manager.py +0 -0
  525. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_prompts.py +0 -0
  526. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_reasoning.py +0 -0
  527. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_repo.py +0 -0
  528. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_repomap.py +0 -0
  529. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_run_cmd.py +0 -0
  530. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_sanity_check_repo.py +0 -0
  531. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_scripting.py +0 -0
  532. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_sendchat.py +0 -0
  533. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_sessions.py +0 -0
  534. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_skills.py +0 -0
  535. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_special.py +0 -0
  536. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_ssl_verification.py +0 -0
  537. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_udiff.py +0 -0
  538. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_urls.py +0 -0
  539. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_voice.py +0 -0
  540. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_watch.py +0 -0
  541. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/basic/test_wholefile.py +0 -0
  542. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/coders/test_copypaste_coder.py +0 -0
  543. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/conftest.py +0 -0
  544. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/conversations/test_conversation_integration.py +0 -0
  545. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/conversations/test_conversation_system.py +0 -0
  546. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  547. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/chat-history.md +0 -0
  548. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/arduino/test.ino +0 -0
  549. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/c/test.c +0 -0
  550. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/chatito/test.chatito +0 -0
  551. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/clojure/test.clj +0 -0
  552. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  553. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/cpp/test.cpp +0 -0
  554. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/csharp/test.cs +0 -0
  555. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/d/test.d +0 -0
  556. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/dart/test.dart +0 -0
  557. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/elisp/test.el +0 -0
  558. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/elixir/test.ex +0 -0
  559. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/elm/test.elm +0 -0
  560. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/gleam/test.gleam +0 -0
  561. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/go/test.go +0 -0
  562. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/haskell/test.hs +0 -0
  563. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/hcl/test.tf +0 -0
  564. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/java/test.java +0 -0
  565. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/javascript/test.js +0 -0
  566. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/kotlin/test.kt +0 -0
  567. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/lua/test.lua +0 -0
  568. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/matlab/test.m +0 -0
  569. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/ocaml/test.ml +0 -0
  570. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  571. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/php/test.php +0 -0
  572. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/pony/test.pony +0 -0
  573. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/properties/test.properties +0 -0
  574. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/python/test.py +0 -0
  575. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/ql/test.ql +0 -0
  576. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/r/test.r +0 -0
  577. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/racket/test.rkt +0 -0
  578. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/ruby/test.rb +0 -0
  579. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/rust/test.rs +0 -0
  580. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/scala/test.scala +0 -0
  581. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/solidity/test.sol +0 -0
  582. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/swift/test.swift +0 -0
  583. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/tsx/test.tsx +0 -0
  584. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/typescript/test.ts +0 -0
  585. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/udev/test.rules +0 -0
  586. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/languages/zig/test.zig +0 -0
  587. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/sample-code-base/sample.js +0 -0
  588. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/sample-code-base/sample.py +0 -0
  589. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  590. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/watch.js +0 -0
  591. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/watch.lisp +0 -0
  592. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/watch.py +0 -0
  593. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/fixtures/watch_question.js +0 -0
  594. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/help/test_help.py +0 -0
  595. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/helpers/monorepo/test_config.py +0 -0
  596. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/helpers/monorepo/test_config_active.py +0 -0
  597. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
  598. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
  599. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/helpers/monorepo/test_workspace.py +0 -0
  600. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/helpers/observations/test_observation_manager.py +0 -0
  601. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/hooks/__init__.py +0 -0
  602. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/hooks/test_base.py +0 -0
  603. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/hooks/test_manager.py +0 -0
  604. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/hooks/test_registry.py +0 -0
  605. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/mcp/__init__.py +0 -0
  606. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/mcp/test_manager.py +0 -0
  607. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/scrape/test_playwright_disable.py +0 -0
  608. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/scrape/test_scrape.py +0 -0
  609. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/tools/test_git_branch.py +0 -0
  610. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/tools/test_git_diff.py +0 -0
  611. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/tools/test_grep.py +0 -0
  612. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/tools/test_insert_block.py +0 -0
  613. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/tests/tools/test_registry.py +0 -0
  614. {cecli_dev-0.99.3 → cecli_dev-0.99.4}/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.4
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.6
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.4'
22
+ __version_tuple__ = version_tuple = (0, 99, 4)
23
23
 
24
- __commit_id__ = commit_id = 'g2909d229a'
24
+ __commit_id__ = commit_id = 'g25cca8975'
@@ -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}
@@ -7,6 +7,7 @@ from cecli.tools.utils.output import color_markers, tool_footer, tool_header
7
7
 
8
8
  class Tool(BaseTool):
9
9
  NORM_NAME = "ls"
10
+ TRACK_INVOCATIONS = False
10
11
  SCHEMA = {
11
12
  "type": "function",
12
13
  "function": {
@@ -14,6 +14,7 @@ class BaseTool(ABC):
14
14
 
15
15
  # Invocation tracking for detecting repeated tool calls
16
16
  _invocations = {} # Dict to store last 3 invocations per tool
17
+ _invocation_summary = set() # Set to track distinct tool names
17
18
  TRACK_INVOCATIONS = True # Default to True, subclasses can override
18
19
 
19
20
  @classmethod
@@ -86,6 +87,18 @@ class BaseTool(ABC):
86
87
  else:
87
88
  tool_name = cls.__name__
88
89
 
90
+ # Check if adding this tool would reach 3 distinct tools
91
+ # If so, clear all tracking and start fresh without counting this tool
92
+ if (
93
+ len(cls._invocation_summary) + (0 if tool_name in cls._invocation_summary else 1)
94
+ >= 3
95
+ ):
96
+ cls._invocations.clear()
97
+ cls._invocation_summary.clear()
98
+ else:
99
+ # Only add to summary if we didn't just clear everything
100
+ cls._invocation_summary.add(tool_name)
101
+
89
102
  # Initialize invocation tracking for this tool if not exists
90
103
  if tool_name not in cls._invocations:
91
104
  cls._invocations[tool_name] = []
@@ -127,3 +140,4 @@ class BaseTool(ABC):
127
140
  @classmethod
128
141
  def clear_invocation_cache(cls):
129
142
  cls._invocations.clear()
143
+ cls._invocation_summary.clear()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cecli-dev
3
- Version: 0.99.3
3
+ Version: 0.99.4
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.6
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
@@ -32,7 +32,7 @@ textual>=6.0.0
32
32
  tomlkit>=0.14.0
33
33
  truststore
34
34
  xxhash>=3.6.0
35
- py-cymbal>=0.1.5
35
+ py-cymbal>=0.1.6
36
36
  rustworkx>=0.15.0
37
37
  scipy>=1.15.3
38
38
  importlib-metadata>=7.2.1
@@ -345,7 +345,7 @@ psutil==7.1.3
345
345
  # via -r requirements/requirements.in
346
346
  ptyprocess==0.7.0
347
347
  # via pexpect
348
- py-cymbal==0.1.5
348
+ py-cymbal==0.1.6
349
349
  # via -r requirements/requirements.in
350
350
  pycodestyle==2.14.0
351
351
  # via flake8
@@ -32,7 +32,7 @@ textual>=6.0.0
32
32
  tomlkit>=0.14.0
33
33
  truststore
34
34
  xxhash>=3.6.0
35
- py-cymbal>=0.1.5
35
+ py-cymbal>=0.1.6
36
36
 
37
37
  # Replaced networkx with rustworkx for better performance in repomap
38
38
  rustworkx>=0.15.0
@@ -274,7 +274,7 @@ ptyprocess==0.7.0
274
274
  # via
275
275
  # -c requirements/common-constraints.txt
276
276
  # pexpect
277
- py-cymbal==0.1.5
277
+ py-cymbal==0.1.6
278
278
  # via
279
279
  # -c requirements/common-constraints.txt
280
280
  # -r requirements/requirements.in
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