cecli-dev 0.99.6__tar.gz → 0.99.7__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 (621) hide show
  1. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/PKG-INFO +3 -1
  2. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/__init__.py +1 -1
  3. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/_version.py +3 -3
  4. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/agent_coder.py +1 -1
  5. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/copy_context.py +5 -4
  6. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/background_commands.py +49 -1
  7. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/conversation/integration.py +0 -12
  8. cecli_dev-0.99.7/cecli/helpers/leak_detect.py +351 -0
  9. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/history.py +2 -19
  10. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/main.py +31 -0
  11. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/models.py +0 -1
  12. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/agent.yml +1 -1
  13. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/base.yml +7 -5
  14. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/__init__.py +2 -2
  15. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/command.py +44 -8
  16. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/command_interactive.py +5 -1
  17. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/context_manager.py +40 -16
  18. cecli_dev-0.99.6/cecli/tools/explore_symbols.py → cecli_dev-0.99.7/cecli/tools/explore_code.py +4 -4
  19. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/show_context.py +3 -2
  20. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli_dev.egg-info/PKG-INFO +3 -1
  21. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli_dev.egg-info/SOURCES.txt +2 -1
  22. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli_dev.egg-info/requires.txt +2 -0
  23. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/requirements/common-constraints.txt +4 -0
  24. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/requirements/requirements-dev.in +2 -0
  25. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/requirements/requirements-dev.txt +8 -0
  26. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/.dockerignore +0 -0
  27. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/.flake8 +0 -0
  28. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/.gitattributes +0 -0
  29. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  30. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/.github/workflows/check_pypi_version.yml +0 -0
  31. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/.github/workflows/docker-build-test.yml +0 -0
  32. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/.github/workflows/docker-release.yml +0 -0
  33. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/.github/workflows/issues.yml +0 -0
  34. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/.github/workflows/pages.yml +0 -0
  35. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/.github/workflows/pre-commit.yml +0 -0
  36. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/.github/workflows/release.yml +0 -0
  37. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/.github/workflows/ubuntu-tests.yml +0 -0
  38. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/.github/workflows/windows-tests.yml +0 -0
  39. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/.github/workflows/windows_check_pypi_version.yml +0 -0
  40. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/.gitignore +0 -0
  41. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/.pre-commit-config.yaml +0 -0
  42. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/CHANGELOG.md +0 -0
  43. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/CNAME +0 -0
  44. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/CONTRIBUTING.md +0 -0
  45. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/HISTORY.md +0 -0
  46. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/LICENSE.txt +0 -0
  47. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/MANIFEST.in +0 -0
  48. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/README.md +0 -0
  49. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/Dockerfile +0 -0
  50. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/README.md +0 -0
  51. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/__init__.py +0 -0
  52. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/benchmark.py +0 -0
  53. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/benchmark_classic.py +0 -0
  54. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/clone-exercism.sh +0 -0
  55. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/cpp-test.sh +0 -0
  56. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/docker.sh +0 -0
  57. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/docker_build.sh +0 -0
  58. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/install-docker-ubuntu.sh +0 -0
  59. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/npm-test.sh +0 -0
  60. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/over_time.py +0 -0
  61. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/plot.sh +0 -0
  62. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/plots.py +0 -0
  63. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/problem_stats.py +0 -0
  64. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/prompts.py +0 -0
  65. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/refactor_tools.py +0 -0
  66. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/rsync.sh +0 -0
  67. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/rungrid.py +0 -0
  68. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/swe-bench-lite.txt +0 -0
  69. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/swe-bench.txt +0 -0
  70. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/swe_bench.py +0 -0
  71. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/test_benchmark.py +0 -0
  72. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/variations.1.sh +0 -0
  73. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/variations.2.sh +0 -0
  74. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/variations.3.sh +0 -0
  75. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/benchmark/variations.4.sh +0 -0
  76. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/__main__.py +0 -0
  77. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/args.py +0 -0
  78. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/args_formatter.py +0 -0
  79. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/change_tracker.py +0 -0
  80. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/__init__.py +0 -0
  81. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/architect_coder.py +0 -0
  82. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/ask_coder.py +0 -0
  83. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/base_coder.py +0 -0
  84. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/chat_chunks.py +0 -0
  85. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/context_coder.py +0 -0
  86. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/copypaste_coder.py +0 -0
  87. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/editblock_coder.py +0 -0
  88. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/editblock_fenced_coder.py +0 -0
  89. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/editblock_func_coder.py +0 -0
  90. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  91. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/editor_editblock_coder.py +0 -0
  92. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/editor_whole_coder.py +0 -0
  93. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/hashline_coder.py +0 -0
  94. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/help_coder.py +0 -0
  95. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/patch_coder.py +0 -0
  96. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/search_replace.py +0 -0
  97. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/shell.py +0 -0
  98. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/single_wholefile_func_coder.py +0 -0
  99. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/udiff_coder.py +0 -0
  100. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/udiff_simple.py +0 -0
  101. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/wholefile_coder.py +0 -0
  102. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/coders/wholefile_func_coder.py +0 -0
  103. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/__init__.py +0 -0
  104. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/add.py +0 -0
  105. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/agent.py +0 -0
  106. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/agent_model.py +0 -0
  107. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/architect.py +0 -0
  108. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/ask.py +0 -0
  109. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/chat_mode.py +0 -0
  110. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/clear.py +0 -0
  111. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/code.py +0 -0
  112. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/command_prefix.py +0 -0
  113. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/commit.py +0 -0
  114. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/compact.py +0 -0
  115. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/context.py +0 -0
  116. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/context_blocks.py +0 -0
  117. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/context_management.py +0 -0
  118. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/copy.py +0 -0
  119. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/core.py +0 -0
  120. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/diff.py +0 -0
  121. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/drop.py +0 -0
  122. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/editor.py +0 -0
  123. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/editor_model.py +0 -0
  124. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/exit.py +0 -0
  125. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/git.py +0 -0
  126. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/hashline.py +0 -0
  127. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/help.py +0 -0
  128. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/history_search.py +0 -0
  129. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/hooks.py +0 -0
  130. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/lint.py +0 -0
  131. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/list_sessions.py +0 -0
  132. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/load.py +0 -0
  133. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/load_hook.py +0 -0
  134. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/load_mcp.py +0 -0
  135. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/load_session.py +0 -0
  136. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/load_skill.py +0 -0
  137. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/ls.py +0 -0
  138. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/map.py +0 -0
  139. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/map_refresh.py +0 -0
  140. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/model.py +0 -0
  141. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/models.py +0 -0
  142. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/multiline_mode.py +0 -0
  143. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/paste.py +0 -0
  144. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/quit.py +0 -0
  145. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/read_only.py +0 -0
  146. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/read_only_stub.py +0 -0
  147. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/reasoning_effort.py +0 -0
  148. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/remove_hook.py +0 -0
  149. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/remove_mcp.py +0 -0
  150. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/remove_skill.py +0 -0
  151. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/report.py +0 -0
  152. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/reset.py +0 -0
  153. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/rules.py +0 -0
  154. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/run.py +0 -0
  155. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/save.py +0 -0
  156. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/save_session.py +0 -0
  157. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/settings.py +0 -0
  158. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/terminal_data/linux.keytab +0 -0
  159. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/terminal_setup.py +0 -0
  160. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/test.py +0 -0
  161. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/think_tokens.py +0 -0
  162. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/tokens.py +0 -0
  163. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/undo.py +0 -0
  164. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/utils/__init__.py +0 -0
  165. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/utils/base_command.py +0 -0
  166. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/utils/helpers.py +0 -0
  167. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/utils/registry.py +0 -0
  168. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/utils/save_load_manager.py +0 -0
  169. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/voice.py +0 -0
  170. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/weak_model.py +0 -0
  171. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/web.py +0 -0
  172. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/commands/workspace.py +0 -0
  173. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/deprecated_args.py +0 -0
  174. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/diffs.py +0 -0
  175. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/dump.py +0 -0
  176. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/editor.py +0 -0
  177. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/exceptions.py +0 -0
  178. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/format_settings.py +0 -0
  179. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/help.py +0 -0
  180. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/help_pats.py +0 -0
  181. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/__init__.py +0 -0
  182. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/command_parser.py +0 -0
  183. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/conversation/__init__.py +0 -0
  184. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/conversation/base_message.py +0 -0
  185. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/conversation/files.py +0 -0
  186. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/conversation/manager.py +0 -0
  187. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/conversation/service.py +0 -0
  188. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/conversation/tags.py +0 -0
  189. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/conversation/utils.py +0 -0
  190. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/copypaste.py +0 -0
  191. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/coroutines.py +0 -0
  192. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/file_searcher.py +0 -0
  193. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/grep_ast/__init__.py +0 -0
  194. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/grep_ast/dump.py +0 -0
  195. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/grep_ast/grep_ast.py +0 -0
  196. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/grep_ast/main.py +0 -0
  197. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/grep_ast/parsers.py +0 -0
  198. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/grep_ast/tsl.py +0 -0
  199. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/hashline.py +0 -0
  200. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/hashpos/__init__.py +0 -0
  201. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/hashpos/hashpos.py +0 -0
  202. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/model_providers.py +0 -0
  203. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/monorepo/__init__.py +0 -0
  204. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/monorepo/config.py +0 -0
  205. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/monorepo/project.py +0 -0
  206. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/monorepo/workspace.py +0 -0
  207. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/monorepo/worktree.py +0 -0
  208. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/nested.py +0 -0
  209. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/observations/__init__.py +0 -0
  210. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/observations/manager.py +0 -0
  211. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/plugin_manager.py +0 -0
  212. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/profiler.py +0 -0
  213. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/requests.py +0 -0
  214. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/responses.py +0 -0
  215. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/similarity.py +0 -0
  216. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/helpers/skills.py +0 -0
  217. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/hooks/__init__.py +0 -0
  218. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/hooks/base.py +0 -0
  219. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/hooks/integration.py +0 -0
  220. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/hooks/manager.py +0 -0
  221. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/hooks/registry.py +0 -0
  222. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/hooks/types.py +0 -0
  223. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/interruptible_input.py +0 -0
  224. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/io.py +0 -0
  225. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/linter.py +0 -0
  226. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/llm.py +0 -0
  227. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/mcp/__init__.py +0 -0
  228. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/mcp/manager.py +0 -0
  229. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/mcp/oauth.py +0 -0
  230. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/mcp/server.py +0 -0
  231. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/mcp/utils.py +0 -0
  232. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/mdstream.py +0 -0
  233. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/onboarding.py +0 -0
  234. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/__init__.py +0 -0
  235. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/architect.yml +0 -0
  236. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/ask.yml +0 -0
  237. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/context.yml +0 -0
  238. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/copypaste.yml +0 -0
  239. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/editblock.yml +0 -0
  240. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/editblock_fenced.yml +0 -0
  241. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/editblock_func.yml +0 -0
  242. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/editor_diff_fenced.yml +0 -0
  243. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/editor_editblock.yml +0 -0
  244. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/editor_whole.yml +0 -0
  245. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/hashline.yml +0 -0
  246. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/help.yml +0 -0
  247. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/patch.yml +0 -0
  248. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/single_wholefile_func.yml +0 -0
  249. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/udiff.yml +0 -0
  250. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/udiff_simple.yml +0 -0
  251. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/utils/__init__.py +0 -0
  252. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/utils/registry.py +0 -0
  253. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/utils/system.py +0 -0
  254. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/wholefile.yml +0 -0
  255. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/prompts/wholefile_func.yml +0 -0
  256. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  257. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  258. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  259. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  260. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  261. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  262. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  263. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  264. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  265. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  266. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  267. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  268. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  269. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  270. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  271. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  272. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  273. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  274. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  275. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  276. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  277. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  278. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  279. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  280. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  281. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  282. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  283. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  284. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  285. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  286. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  287. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/README.md +0 -0
  288. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  289. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  290. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  291. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  292. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  293. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  294. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  295. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  296. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  297. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  298. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  299. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  300. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  301. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  302. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  303. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  304. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  305. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  306. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  307. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  308. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  309. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  310. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  311. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  312. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  313. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  314. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/reasoning_tags.py +0 -0
  315. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/repo.py +0 -0
  316. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/repomap.py +0 -0
  317. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/report.py +0 -0
  318. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/resources/__init__.py +0 -0
  319. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/resources/model-metadata.json +0 -0
  320. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/resources/model-settings.yml +0 -0
  321. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/resources/providers.json +0 -0
  322. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/run_cmd.py +0 -0
  323. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/scrape.py +0 -0
  324. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/sendchat.py +0 -0
  325. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/sessions.py +0 -0
  326. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/special.py +0 -0
  327. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/delete_text.py +0 -0
  328. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/finished.py +0 -0
  329. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/git_branch.py +0 -0
  330. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/git_diff.py +0 -0
  331. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/git_log.py +0 -0
  332. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/git_remote.py +0 -0
  333. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/git_show.py +0 -0
  334. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/git_status.py +0 -0
  335. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/grep.py +0 -0
  336. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/insert_text.py +0 -0
  337. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/load_skill.py +0 -0
  338. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/ls.py +0 -0
  339. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/remove_skill.py +0 -0
  340. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/replace_text.py +0 -0
  341. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/thinking.py +0 -0
  342. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/undo_change.py +0 -0
  343. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/update_todo_list.py +0 -0
  344. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/utils/base_tool.py +0 -0
  345. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/utils/helpers.py +0 -0
  346. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/utils/output.py +0 -0
  347. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tools/utils/registry.py +0 -0
  348. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tui/__init__.py +0 -0
  349. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tui/app.py +0 -0
  350. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tui/io.py +0 -0
  351. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tui/styles.tcss +0 -0
  352. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tui/widgets/__init__.py +0 -0
  353. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tui/widgets/completion_bar.py +0 -0
  354. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tui/widgets/file_list.py +0 -0
  355. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tui/widgets/footer.py +0 -0
  356. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tui/widgets/input_area.py +0 -0
  357. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tui/widgets/input_container.py +0 -0
  358. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tui/widgets/key_hints.py +0 -0
  359. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tui/widgets/output.py +0 -0
  360. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tui/widgets/status_bar.py +0 -0
  361. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/tui/worker.py +0 -0
  362. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/urls.py +0 -0
  363. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/utils.py +0 -0
  364. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/versioncheck.py +0 -0
  365. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/voice.py +0 -0
  366. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/waiting.py +0 -0
  367. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/watch.py +0 -0
  368. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/watch_prompts.py +0 -0
  369. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/Gemfile +0 -0
  370. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/_includes/blame.md +0 -0
  371. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/_includes/get-started.md +0 -0
  372. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/_includes/help-tip.md +0 -0
  373. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/_includes/help.md +0 -0
  374. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/_includes/install.md +0 -0
  375. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/_includes/keys.md +0 -0
  376. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/_includes/model-warnings.md +0 -0
  377. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/_includes/multi-line.md +0 -0
  378. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/_includes/python-m-aider.md +0 -0
  379. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/_includes/recording.css +0 -0
  380. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/_includes/recording.md +0 -0
  381. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/_includes/works-best.md +0 -0
  382. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/_sass/_features.scss +0 -0
  383. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/_sass/_footer.scss +0 -0
  384. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/_sass/_hero.scss +0 -0
  385. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/_sass/_info.scss +0 -0
  386. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/_sass/_layout.scss +0 -0
  387. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/_sass/_reset.scss +0 -0
  388. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/_sass/_testimonials.scss +0 -0
  389. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/_sass/_typography.scss +0 -0
  390. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/_sass/_variables.scss +0 -0
  391. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/_sass/custom/custom.scss +0 -0
  392. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/_sass/global-overrides.scss +0 -0
  393. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/config/adv-model-settings.md +0 -0
  394. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/config/agent-mode.md +0 -0
  395. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/config/aider_conf.md +0 -0
  396. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/config/api-keys.md +0 -0
  397. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/config/custom-commands.md +0 -0
  398. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  399. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/config/dotenv.md +0 -0
  400. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/config/editor.md +0 -0
  401. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/config/hooks.md +0 -0
  402. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/config/mcp.md +0 -0
  403. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/config/model-aliases.md +0 -0
  404. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/config/options.md +0 -0
  405. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/config/reasoning.md +0 -0
  406. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/config/security.md +0 -0
  407. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/config/skills.md +0 -0
  408. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/config/tui.md +0 -0
  409. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/config/workspaces.md +0 -0
  410. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/config.md +0 -0
  411. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/faq.md +0 -0
  412. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/git.md +0 -0
  413. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/index.md +0 -0
  414. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/install/docker.md +0 -0
  415. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/install/optional.md +0 -0
  416. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/install.md +0 -0
  417. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/languages.md +0 -0
  418. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  419. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/legal/privacy.md +0 -0
  420. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/llms/anthropic.md +0 -0
  421. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/llms/azure.md +0 -0
  422. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/llms/bedrock.md +0 -0
  423. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/llms/cohere.md +0 -0
  424. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/llms/deepseek.md +0 -0
  425. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/llms/gemini.md +0 -0
  426. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/llms/github.md +0 -0
  427. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/llms/groq.md +0 -0
  428. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/llms/lm-studio.md +0 -0
  429. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/llms/ollama.md +0 -0
  430. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/llms/openai-compat.md +0 -0
  431. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/llms/openai.md +0 -0
  432. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/llms/openrouter.md +0 -0
  433. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/llms/other.md +0 -0
  434. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/llms/vertex.md +0 -0
  435. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/llms/warnings.md +0 -0
  436. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/llms/xai.md +0 -0
  437. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/llms.md +0 -0
  438. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/more/analytics.md +0 -0
  439. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/more/edit-formats.md +0 -0
  440. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/more/infinite-output.md +0 -0
  441. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/more-info.md +0 -0
  442. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/repomap.md +0 -0
  443. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/scripting.md +0 -0
  444. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
  445. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  446. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/troubleshooting/imports.md +0 -0
  447. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  448. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/troubleshooting/support.md +0 -0
  449. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  450. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  451. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/troubleshooting.md +0 -0
  452. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/usage/commands.md +0 -0
  453. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/usage/conventions.md +0 -0
  454. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/usage/copypaste.md +0 -0
  455. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/usage/images-urls.md +0 -0
  456. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/usage/lint-test.md +0 -0
  457. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/usage/modes.md +0 -0
  458. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/usage/not-code.md +0 -0
  459. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/usage/notifications.md +0 -0
  460. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/usage/sessions.md +0 -0
  461. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/usage/tips.md +0 -0
  462. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/usage/voice.md +0 -0
  463. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/usage/watch.md +0 -0
  464. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/docs/usage.md +0 -0
  465. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli/website/share/index.md +0 -0
  466. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli_dev.egg-info/dependency_links.txt +0 -0
  467. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli_dev.egg-info/entry_points.txt +0 -0
  468. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/cecli_dev.egg-info/top_level.txt +0 -0
  469. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/docker/Dockerfile +0 -0
  470. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  471. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/pyproject.toml +0 -0
  472. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/pytest.ini +0 -0
  473. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/requirements/requirements-help.in +0 -0
  474. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/requirements/requirements-help.txt +0 -0
  475. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/requirements/requirements-playwright.in +0 -0
  476. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/requirements/requirements-playwright.txt +0 -0
  477. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/requirements/requirements.in +0 -0
  478. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/requirements/tree-sitter.in +0 -0
  479. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/requirements.txt +0 -0
  480. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/30k-image.py +0 -0
  481. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/Dockerfile.jekyll +0 -0
  482. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/__init__.py +0 -0
  483. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/blame.py +0 -0
  484. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/clean_metadata.py +0 -0
  485. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/cost_analyzer.py +0 -0
  486. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/dl_icons.py +0 -0
  487. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/filter-chat-mode.js +0 -0
  488. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/generate_providers.py +0 -0
  489. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/get_contributor_list.js +0 -0
  490. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/get_hashline.py +0 -0
  491. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/history_prompts.py +0 -0
  492. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/homepage.py +0 -0
  493. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/issues.py +0 -0
  494. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/jekyll_build.sh +0 -0
  495. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/jekyll_run.sh +0 -0
  496. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/logo_svg.py +0 -0
  497. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/pip-compile.sh +0 -0
  498. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/recording_audio.py +0 -0
  499. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/redact-cast.py +0 -0
  500. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/rename_to_cecli.py +0 -0
  501. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/tmux_record.sh +0 -0
  502. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/tsl_pack_langs.py +0 -0
  503. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/update-blame.sh +0 -0
  504. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/update-docs.sh +0 -0
  505. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/update-history.py +0 -0
  506. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/versionbump.py +0 -0
  507. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/scripts/yank-old-versions.py +0 -0
  508. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/setup.cfg +0 -0
  509. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/shim.pyproject.toml +0 -0
  510. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/__init__.py +0 -0
  511. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/__init__.py +0 -0
  512. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_aws_credentials.py +0 -0
  513. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_background_commands.py +0 -0
  514. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_coder.py +0 -0
  515. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_commands.py +0 -0
  516. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_custom_commands.py +0 -0
  517. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_deprecated.py +0 -0
  518. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_editblock.py +0 -0
  519. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_editor.py +0 -0
  520. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_exceptions.py +0 -0
  521. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_find_or_blocks.py +0 -0
  522. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_hashline.py +0 -0
  523. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_history.py +0 -0
  524. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_io.py +0 -0
  525. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_linter.py +0 -0
  526. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_main.py +0 -0
  527. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_model_info_manager.py +0 -0
  528. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_model_provider_manager.py +0 -0
  529. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_models.py +0 -0
  530. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_onboarding.py +0 -0
  531. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_plugin_manager.py +0 -0
  532. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_prompts.py +0 -0
  533. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_reasoning.py +0 -0
  534. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_repo.py +0 -0
  535. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_repomap.py +0 -0
  536. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_run_cmd.py +0 -0
  537. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_sanity_check_repo.py +0 -0
  538. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_scripting.py +0 -0
  539. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_sendchat.py +0 -0
  540. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_sessions.py +0 -0
  541. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_skills.py +0 -0
  542. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_special.py +0 -0
  543. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_ssl_verification.py +0 -0
  544. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_udiff.py +0 -0
  545. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_urls.py +0 -0
  546. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_voice.py +0 -0
  547. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_watch.py +0 -0
  548. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/basic/test_wholefile.py +0 -0
  549. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/coders/test_copypaste_coder.py +0 -0
  550. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/conftest.py +0 -0
  551. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/conversations/test_conversation_integration.py +0 -0
  552. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/conversations/test_conversation_system.py +0 -0
  553. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  554. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/chat-history.md +0 -0
  555. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/arduino/test.ino +0 -0
  556. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/c/test.c +0 -0
  557. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/chatito/test.chatito +0 -0
  558. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/clojure/test.clj +0 -0
  559. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  560. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/cpp/test.cpp +0 -0
  561. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/csharp/test.cs +0 -0
  562. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/d/test.d +0 -0
  563. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/dart/test.dart +0 -0
  564. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/elisp/test.el +0 -0
  565. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/elixir/test.ex +0 -0
  566. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/elm/test.elm +0 -0
  567. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/gleam/test.gleam +0 -0
  568. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/go/test.go +0 -0
  569. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/haskell/test.hs +0 -0
  570. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/hcl/test.tf +0 -0
  571. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/java/test.java +0 -0
  572. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/javascript/test.js +0 -0
  573. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/kotlin/test.kt +0 -0
  574. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/lua/test.lua +0 -0
  575. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/matlab/test.m +0 -0
  576. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/ocaml/test.ml +0 -0
  577. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  578. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/php/test.php +0 -0
  579. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/pony/test.pony +0 -0
  580. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/properties/test.properties +0 -0
  581. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/python/test.py +0 -0
  582. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/ql/test.ql +0 -0
  583. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/r/test.r +0 -0
  584. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/racket/test.rkt +0 -0
  585. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/ruby/test.rb +0 -0
  586. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/rust/test.rs +0 -0
  587. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/scala/test.scala +0 -0
  588. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/solidity/test.sol +0 -0
  589. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/swift/test.swift +0 -0
  590. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/tsx/test.tsx +0 -0
  591. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/typescript/test.ts +0 -0
  592. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/udev/test.rules +0 -0
  593. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/languages/zig/test.zig +0 -0
  594. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/sample-code-base/sample.js +0 -0
  595. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/sample-code-base/sample.py +0 -0
  596. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  597. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/watch.js +0 -0
  598. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/watch.lisp +0 -0
  599. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/watch.py +0 -0
  600. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/fixtures/watch_question.js +0 -0
  601. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/help/test_help.py +0 -0
  602. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/helpers/monorepo/test_config.py +0 -0
  603. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/helpers/monorepo/test_config_active.py +0 -0
  604. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
  605. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
  606. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/helpers/monorepo/test_workspace.py +0 -0
  607. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/helpers/observations/test_observation_manager.py +0 -0
  608. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/hooks/__init__.py +0 -0
  609. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/hooks/test_base.py +0 -0
  610. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/hooks/test_manager.py +0 -0
  611. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/hooks/test_registry.py +0 -0
  612. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/mcp/__init__.py +0 -0
  613. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/mcp/test_manager.py +0 -0
  614. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/scrape/test_playwright_disable.py +0 -0
  615. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/scrape/test_scrape.py +0 -0
  616. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/tools/test_git_branch.py +0 -0
  617. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/tools/test_git_diff.py +0 -0
  618. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/tools/test_grep.py +0 -0
  619. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/tools/test_insert_block.py +0 -0
  620. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/tests/tools/test_registry.py +0 -0
  621. {cecli_dev-0.99.6 → cecli_dev-0.99.7}/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.6
3
+ Version: 0.99.7
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
@@ -78,6 +78,8 @@ Requires-Dist: codespell; extra == "dev"
78
78
  Requires-Dist: uv; extra == "dev"
79
79
  Requires-Dist: memray; extra == "dev"
80
80
  Requires-Dist: objgraph; extra == "dev"
81
+ Requires-Dist: pympler; extra == "dev"
82
+ Requires-Dist: guppy3; extra == "dev"
81
83
  Provides-Extra: help
82
84
  Requires-Dist: llama-index-embeddings-huggingface; extra == "help"
83
85
  Requires-Dist: numpy>=1.26.4; extra == "help"
@@ -1,6 +1,6 @@
1
1
  from packaging import version
2
2
 
3
- __version__ = "0.99.6.dev"
3
+ __version__ = "0.99.7.dev"
4
4
  safe_version = __version__
5
5
 
6
6
  try:
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.99.6'
22
- __version_tuple__ = version_tuple = (0, 99, 6)
21
+ __version__ = version = '0.99.7'
22
+ __version_tuple__ = version_tuple = (0, 99, 7)
23
23
 
24
- __commit_id__ = commit_id = 'g835b8b50f'
24
+ __commit_id__ = commit_id = 'gf217080c8'
@@ -53,7 +53,7 @@ class AgentCoder(Coder):
53
53
  self.read_tools = {
54
54
  "command",
55
55
  "commandinteractive",
56
- "exploresymbols",
56
+ "explorecode",
57
57
  "ls",
58
58
  "grep",
59
59
  "showcontext",
@@ -4,6 +4,7 @@ import pyperclip
4
4
 
5
5
  from cecli.commands.utils.base_command import BaseCommand
6
6
  from cecli.commands.utils.helpers import format_command_result
7
+ from cecli.helpers.conversation import ConversationService, MessageTag
7
8
 
8
9
 
9
10
  class CopyContextCommand(BaseCommand):
@@ -13,13 +14,13 @@ class CopyContextCommand(BaseCommand):
13
14
  @classmethod
14
15
  async def execute(cls, io, coder, args, **kwargs):
15
16
  """Execute the copy-context command with given parameters."""
16
- chunks = coder.format_chat_chunks()
17
+ manager = ConversationService.get_manager(coder)
17
18
 
18
19
  markdown = ""
19
20
 
20
- # Only include specified chunks in order
21
- for messages in [chunks.repo, chunks.readonly_files, chunks.chat_files]:
22
- for msg in messages:
21
+ # Only include specified chunks in order using conversation tags
22
+ for tag in [MessageTag.REPO, MessageTag.READONLY_FILES, MessageTag.CHAT_FILES]:
23
+ for msg in manager.get_messages_dict(tag=tag):
23
24
  # Only include user messages
24
25
  if msg["role"] != "user":
25
26
  continue
@@ -11,7 +11,7 @@ import platform
11
11
  import subprocess
12
12
  import threading
13
13
  from collections import deque
14
- from typing import Dict, Optional, Tuple
14
+ from typing import Dict, List, Optional, Tuple
15
15
 
16
16
  try:
17
17
  import pty
@@ -624,3 +624,51 @@ class BackgroundCommandManager:
624
624
  ),
625
625
  }
626
626
  return result
627
+
628
+ @staticmethod
629
+ def save_paginated_output(
630
+ output: str,
631
+ command_key: str,
632
+ page_size: int,
633
+ abs_root_path_func,
634
+ local_agent_folder_func,
635
+ ) -> Optional[Tuple[str, List[str], List[str]]]:
636
+ """
637
+ Save long output to paginated files in a folder for later access.
638
+
639
+ When output exceeds the page_size threshold, it is split into multiple
640
+ files named `{page_number}.txt` inside a folder named `{command_key}`
641
+ in the agent's local folder.
642
+
643
+ Args:
644
+ output: Full output text to save
645
+ command_key: Command key used for both folder naming and as the filename root
646
+ page_size: Maximum characters per page (typically large_file_token_threshold)
647
+ abs_root_path_func: Callable to convert relative path to absolute (e.g., coder.abs_root_path)
648
+ local_agent_folder_func: Callable to generate relative paths (e.g., coder.local_agent_folder)
649
+
650
+ Returns:
651
+ Tuple of (folder path, rel file paths list, alias paths list), or None if output fits in one page.
652
+ """
653
+ if not output or len(output) <= page_size:
654
+ return None
655
+
656
+ folder_path = local_agent_folder_func(command_key)
657
+ abs_folder = abs_root_path_func(folder_path)
658
+ os.makedirs(abs_folder, exist_ok=True)
659
+
660
+ num_pages = (len(output) + page_size - 1) // page_size
661
+
662
+ for i in range(num_pages):
663
+ page_num = i + 1
664
+ filename = f"{page_num}.txt"
665
+ abs_path = os.path.join(abs_folder, filename)
666
+ page_content = output[i * page_size : (i + 1) * page_size]
667
+ with open(abs_path, "w") as f:
668
+ f.write(page_content)
669
+
670
+ file_paths = [f"{folder_path}/{page_num}.txt" for page_num in range(1, num_pages + 1)]
671
+ alias_paths = [
672
+ f"command_key::{command_key}/{page_num}.txt" for page_num in range(1, num_pages + 1)
673
+ ]
674
+ return (folder_path, file_paths, alias_paths)
@@ -786,12 +786,6 @@ class ConversationChunks:
786
786
  tag=MessageTag.FILE_CONTEXTS,
787
787
  hash_key=("file_context_user", file_path),
788
788
  force=True,
789
- promotion=(
790
- ConversationService.get_manager(coder).DEFAULT_TAG_PROMOTION_VALUE
791
- if promote_messages
792
- else None
793
- ),
794
- mark_for_demotion=1 if promote_messages else None,
795
789
  )
796
790
 
797
791
  ConversationService.get_manager(coder).add_message(
@@ -799,12 +793,6 @@ class ConversationChunks:
799
793
  tag=MessageTag.FILE_CONTEXTS,
800
794
  hash_key=("file_context_assistant", file_path),
801
795
  force=True,
802
- promotion=(
803
- ConversationService.get_manager(coder).DEFAULT_TAG_PROMOTION_VALUE
804
- if promote_messages
805
- else None
806
- ),
807
- mark_for_demotion=1 if promote_messages else None,
808
796
  )
809
797
 
810
798
  def reset(self) -> None:
@@ -0,0 +1,351 @@
1
+ """Memory leak detection and heap analysis utilities.
2
+
3
+ Provides a MemorySnapshot class to inspect the largest allocated objects
4
+ in the Python heap: dicts, lists, and custom class instances.
5
+
6
+ Usage:
7
+ from cecli.helpers.leak_detect import MemorySnapshot
8
+
9
+ snap = MemorySnapshot()
10
+ snap.print_report()
11
+
12
+ # Programmatic access:
13
+ for item in snap.largest_dicts(5):
14
+ print(item["size_kb"], item["keys"])
15
+ """
16
+
17
+ from __future__ import annotations
18
+
19
+ import gc
20
+ import sys
21
+ from collections import Counter
22
+ from dataclasses import dataclass, field
23
+ from typing import Any, Dict, List, Optional
24
+
25
+ # ── Optional dependency wrappers ──
26
+
27
+
28
+ def _has_pympler() -> bool:
29
+ try:
30
+ import pympler # noqa: F401
31
+
32
+ return True
33
+ except ImportError:
34
+ return False
35
+
36
+
37
+ def _pympler_deep_size(obj: Any) -> int:
38
+ """Return deep size of *obj* in bytes using pympler (if available)."""
39
+ from pympler import asizeof
40
+
41
+ return asizeof.asizeof(obj)
42
+
43
+
44
+ def _has_guppy() -> bool:
45
+ try:
46
+ from guppy import hpy # noqa: F401
47
+
48
+ return True
49
+ except ImportError:
50
+ return False
51
+
52
+
53
+ def _guppy_heap_summary() -> str:
54
+ """Return per-type heap summary as a formatted string (guppy)."""
55
+ from guppy import hpy
56
+
57
+ hp = hpy()
58
+ heap = hp.heap()
59
+ return str(heap)
60
+
61
+
62
+ # ── Data structures ──
63
+
64
+
65
+ @dataclass
66
+ class ObjectInfo:
67
+ """Describes a single allocated object found during a heap scan."""
68
+
69
+ type_name: str
70
+ size_bytes: int
71
+ size_kb: float
72
+ repr_str: str
73
+ obj: Any = field(repr=False)
74
+
75
+ @property
76
+ def size_mb(self) -> float:
77
+ return self.size_bytes / (1024 * 1024)
78
+
79
+
80
+ @dataclass
81
+ class TypeSummary:
82
+ """Aggregated statistics for a single type across the heap."""
83
+
84
+ type_name: str
85
+ count: int
86
+ total_size_bytes: int
87
+
88
+ @property
89
+ def total_size_kb(self) -> float:
90
+ return self.total_size_bytes / 1024
91
+
92
+ @property
93
+ def total_size_mb(self) -> float:
94
+ return self.total_size_bytes / (1024 * 1024)
95
+
96
+
97
+ # ── Snapshot class ──
98
+
99
+
100
+ class MemorySnapshot:
101
+ """Capture and analyse the current Python heap.
102
+
103
+ Uses pympler when available for deep (recursive) size calculations;
104
+ falls back to sys.getsizeof (shallow) otherwise.
105
+
106
+ Example
107
+ -------
108
+ >>> snap = MemorySnapshot()
109
+ >>> snap.print_report()
110
+
111
+ Usage
112
+ -------
113
+ from cecli.helpers.leak_detect import MemorySnapshot
114
+ MemorySnapshot().print_report()
115
+ """
116
+
117
+ def __init__(self, force_gc: bool = True):
118
+ if force_gc:
119
+ gc.collect()
120
+ self._all_objects: List[Any] = gc.get_objects()
121
+ self._has_pympler = _has_pympler()
122
+ self._has_guppy = _has_guppy()
123
+
124
+ # ── Size helpers ──
125
+
126
+ def _size_of(self, obj: Any) -> int:
127
+ # if self._has_pympler:
128
+ # return _pympler_deep_size(obj)
129
+ return sys.getsizeof(obj)
130
+
131
+ # ── Public query methods ──
132
+
133
+ def largest_objects(self, n: int = 15) -> List[ObjectInfo]:
134
+ """Return the *n* largest objects in the heap (any type)."""
135
+ seen: set = set()
136
+ results: List[ObjectInfo] = []
137
+
138
+ try:
139
+ for obj in self._all_objects:
140
+ obj_id = id(obj)
141
+ if obj_id in seen:
142
+ continue
143
+ seen.add(obj_id)
144
+ size = self._size_of(obj)
145
+ if size < 1024:
146
+ continue
147
+ try:
148
+ short = repr(obj)[:80]
149
+ except Exception:
150
+ short = "<repr failed>"
151
+ results.append(
152
+ ObjectInfo(
153
+ type_name=type(obj).__name__,
154
+ size_bytes=size,
155
+ size_kb=size / 1024,
156
+ repr_str=short,
157
+ obj=obj,
158
+ )
159
+ )
160
+ except Exception as e:
161
+ print(e)
162
+
163
+ results.sort(key=lambda x: x.size_bytes, reverse=True)
164
+ print("result")
165
+ return results[:n]
166
+
167
+ def largest_dicts(self, n: int = 5) -> List[ObjectInfo]:
168
+ """Return the *n* largest ``dict`` objects."""
169
+ return self._filter_type(dict, n)
170
+
171
+ def largest_lists(self, n: int = 5) -> List[ObjectInfo]:
172
+ """Return the *n* largest ``list`` objects."""
173
+ return self._filter_type(list, n)
174
+
175
+ def largest_class_instances(
176
+ self, classes: Optional[tuple] = None, n: int = 5
177
+ ) -> List[ObjectInfo]:
178
+ """Return the *n* largest instances of the given *classes*.
179
+
180
+ When *classes* is ``None`` all instances of user-defined classes
181
+ (excluding builtins) are considered.
182
+ """
183
+ if classes is not None:
184
+ targets = tuple(c for c in classes if isinstance(c, type))
185
+ else:
186
+ # Heuristic: any type whose module is not a built-in.
187
+ targets = None
188
+
189
+ seen: set = set()
190
+ results: List[ObjectInfo] = []
191
+
192
+ for obj in self._all_objects:
193
+ obj_id = id(obj)
194
+ if obj_id in seen:
195
+ continue
196
+ seen.add(obj_id)
197
+ if not isinstance(obj, type) and not callable(obj):
198
+ if targets is not None:
199
+ if not isinstance(obj, targets):
200
+ continue
201
+ else:
202
+ mod = type(obj).__module__
203
+ if mod in ("builtins", "_abc", "abc"):
204
+ continue
205
+ if type(obj).__name__.startswith("_"):
206
+ continue
207
+
208
+ size = self._size_of(obj)
209
+ if size < 512:
210
+ continue
211
+ try:
212
+ short = repr(obj)[:80]
213
+ except Exception:
214
+ short = "<repr failed>"
215
+ results.append(
216
+ ObjectInfo(
217
+ type_name=type(obj).__name__,
218
+ size_bytes=size,
219
+ size_kb=size / 1024,
220
+ repr_str=short,
221
+ obj=obj,
222
+ )
223
+ )
224
+
225
+ results.sort(key=lambda x: x.size_bytes, reverse=True)
226
+ return results[:n]
227
+
228
+ def type_summary(self, n: int = 15) -> List[TypeSummary]:
229
+ """Aggregate heap usage by type (total count and size)."""
230
+ counter: Counter = Counter()
231
+ size_map: Dict[str, int] = {}
232
+
233
+ seen: set = set()
234
+ for obj in self._all_objects:
235
+ obj_id = id(obj)
236
+ if obj_id in seen:
237
+ continue
238
+ seen.add(obj_id)
239
+ tn = type(obj).__name__
240
+ counter[tn] += 1
241
+ size_map[tn] = size_map.get(tn, 0) + self._size_of(obj)
242
+
243
+ sorted_types = sorted(counter, key=lambda t: size_map[t], reverse=True)
244
+
245
+ return [
246
+ TypeSummary(
247
+ type_name=tn,
248
+ count=counter[tn],
249
+ total_size_bytes=size_map[tn],
250
+ )
251
+ for tn in sorted_types[:n]
252
+ ]
253
+
254
+ def guppy_summary(self) -> Optional[str]:
255
+ """Return per-type heap summary string via guppy (if installed)."""
256
+ if not self._has_guppy:
257
+ return None
258
+ return _guppy_heap_summary()
259
+
260
+ # ── Report ──
261
+
262
+ def print_report(self) -> None:
263
+ """Print a human-readable memory report to stdout."""
264
+ print("=" * 70)
265
+ print("MemorySnapshot Report")
266
+ print(f" Objects scanned : {len(self._all_objects):,}")
267
+ print(
268
+ f" Deep sizes : {'yes (pympler)' if self._has_pympler else 'no (sys.getsizeof)'}"
269
+ )
270
+ print(f" Guppy available : {'yes' if self._has_guppy else 'no'}")
271
+ print("=" * 70)
272
+
273
+ # 1. Largest objects
274
+ print("\n>> TOP 15 LARGEST OBJECTS (any type)")
275
+ print(" " + "-" * 60)
276
+ for item in self.largest_objects(15):
277
+ print(f" {item.size_kb:>10.1f} KB {item.type_name:<15s} {item.repr_str}")
278
+
279
+ # 2. Largest dicts
280
+ print("\n>> LARGEST DICTS")
281
+ print(" " + "-" * 60)
282
+ for item in self.largest_dicts(5):
283
+ d = item.obj
284
+ keys_preview = list(d.keys())[:5] if isinstance(d, dict) else []
285
+ print(f" {item.size_kb:>10.1f} KB dict[{len(d)} keys] keys={keys_preview!r}")
286
+
287
+ # 3. Largest lists
288
+ print("\n>> LARGEST LISTS")
289
+ print(" " + "-" * 60)
290
+ for item in self.largest_lists(5):
291
+ lst = item.obj
292
+ first = lst[0] if lst else "empty"
293
+ print(f" {item.size_kb:>10.1f} KB list[{len(lst)} items] first={first!r}")
294
+
295
+ # 4. Largest class instances
296
+ print("\n>> LARGEST CLASS INSTANCES (custom)")
297
+ print(" " + "-" * 60)
298
+ for item in self.largest_class_instances(n=10):
299
+ print(f" {item.size_kb:>10.1f} KB {item.type_name}")
300
+
301
+ # 5. Type summary
302
+ print("\n>> TYPE SUMMARY (total size per type)")
303
+ print(" " + "-" * 60)
304
+ for ts in self.type_summary(12):
305
+ print(f" {ts.total_size_kb:>10.1f} KB ({ts.count:>7,} objs) {ts.type_name}")
306
+
307
+ # 6. Guppy summary if available
308
+ if self._has_guppy:
309
+ print("\n>> GUPPY HEAP SUMMARY")
310
+ print(" " + "-" * 60)
311
+ summary = self.guppy_summary()
312
+ if summary:
313
+ for line in summary.split("\n"):
314
+ print(f" {line}")
315
+
316
+ print()
317
+
318
+ # ── Internal helpers ──
319
+
320
+ def _filter_type(self, typ: type, n: int) -> List[ObjectInfo]:
321
+ """Return the *n* largest objects of a specific built-in type."""
322
+ seen: set = set()
323
+ results: List[ObjectInfo] = []
324
+
325
+ for obj in self._all_objects:
326
+ obj_id = id(obj)
327
+ if obj_id in seen:
328
+ continue
329
+ seen.add(obj_id)
330
+ if not isinstance(obj, typ):
331
+ continue
332
+
333
+ size = self._size_of(obj)
334
+ if size < 512:
335
+ continue
336
+ try:
337
+ short = repr(obj)[:80]
338
+ except Exception:
339
+ short = "<repr failed>"
340
+ results.append(
341
+ ObjectInfo(
342
+ type_name=type(obj).__name__,
343
+ size_bytes=size,
344
+ size_kb=size / 1024,
345
+ repr_str=short,
346
+ obj=obj,
347
+ )
348
+ )
349
+
350
+ results.sort(key=lambda x: x.size_bytes, reverse=True)
351
+ return results[:n]
@@ -136,28 +136,11 @@ class ChatSummary:
136
136
  raise ValueError(err)
137
137
 
138
138
  async def summarize_all_as_text(self, messages, prompt, max_tokens=None):
139
- content = ""
140
- for msg in messages:
141
- role = msg["role"].upper()
142
- if role not in ("USER", "ASSISTANT"):
143
- continue
144
- if not msg.get("content"):
145
- continue
146
- content += f"# {role}\n"
147
- content += msg["content"]
148
- if not content.endswith("\n"):
149
- content += "\n"
150
-
151
- summarize_messages = [
152
- dict(role="system", content=prompt),
153
- dict(role="user", content=content),
154
- ]
139
+ messages.append(dict(role="user", content=prompt))
155
140
 
156
141
  for model in self.models:
157
142
  try:
158
- summary = await model.simple_send_with_retries(
159
- summarize_messages, max_tokens=max_tokens
160
- )
143
+ summary = await model.simple_send_with_retries(messages, max_tokens=max_tokens)
161
144
  if summary is not None:
162
145
  return summary
163
146
  except Exception as e:
@@ -23,6 +23,7 @@ import asyncio
23
23
  import json
24
24
  import os
25
25
  import re
26
+ import shutil
26
27
  import threading
27
28
  import time
28
29
  import traceback
@@ -1511,6 +1512,36 @@ async def graceful_exit(coder=None, exit_code=0):
1511
1512
 
1512
1513
  if coder.mcp_manager and coder.mcp_manager.is_connected:
1513
1514
  await coder.mcp_manager.disconnect_all()
1515
+ # Cleanup old agent directories
1516
+ try:
1517
+ git_root = get_git_root()
1518
+ if git_root:
1519
+ agents_dir = Path(git_root) / ".cecli" / "agents"
1520
+ else:
1521
+ agents_dir = Path(".cecli") / "agents"
1522
+
1523
+ if agents_dir.exists():
1524
+ now = time.time()
1525
+ week_seconds = 7 * 24 * 60 * 60
1526
+
1527
+ for agent_folder in agents_dir.iterdir():
1528
+ if agent_folder.is_dir():
1529
+ try:
1530
+ mtime = agent_folder.stat().st_mtime
1531
+ if (now - mtime) > week_seconds:
1532
+ shutil.rmtree(agent_folder, ignore_errors=True)
1533
+ else:
1534
+ # Remove empty sub-folders in remaining folders
1535
+ for sub_folder in agent_folder.iterdir():
1536
+ if sub_folder.is_dir():
1537
+ try:
1538
+ sub_folder.rmdir()
1539
+ except OSError:
1540
+ pass
1541
+ except (OSError, PermissionError):
1542
+ pass
1543
+ except Exception:
1544
+ pass
1514
1545
 
1515
1546
  return exit_code
1516
1547
 
@@ -1128,7 +1128,6 @@ class Model(ModelSettings):
1128
1128
  from cecli.exceptions import LiteLLMExceptions
1129
1129
 
1130
1130
  litellm_ex = LiteLLMExceptions()
1131
- messages = model_request_parser(self, messages, None)
1132
1131
  retry_delay = 0.125
1133
1132
  if self.verbose:
1134
1133
  dump(messages)
@@ -39,7 +39,7 @@ main_system: |
39
39
  <context name="workflow_and_tool_usage">
40
40
  ## Core Workflow
41
41
  1. **Plan**: Start by using `UpdateTodoList` to outline the task.
42
- 2. **Explore**: Use discovery tools (`ExploreSymbols`, `Grep`, `Ls`) to research and gather understanding for you task. Use `ContextManager` to add files contents as context.
42
+ 2. **Explore**: Use discovery tools (`ExploreCode`, `Grep`, `Ls`) to research and gather understanding for you task. Use `ContextManager` to add files contents as context.
43
43
  3. **Execute**: Use the appropriate editing tool. Mark files as editable with `ContextManager` before attempting edits. Proactively use skills if they are available.
44
44
  4. **Verify & Recover**: Review the diff output of every edit. If an edit fails or introduces linting errors, use `UndoChange` immediately.
45
45
  5. **Finished**: Use the `Finished` tool only after verifying the solution. Briefly summarize the changes for the user.
@@ -84,8 +84,9 @@ rename_with_shell: ""
84
84
  go_ahead_tip: ""
85
85
 
86
86
  compaction_prompt: |
87
+ ---
87
88
  # Instruction: Context Compaction & State Preservation
88
- The following conversation is exceeding the context limit. Transform this history into a "Mission Intent" summary that allows a new LLM instance to resume with zero loss of technical momentum.
89
+ The current conversation is exceeding the context limit. Transform this history into a "Mission Intent" summary that allows a new LLM instance to resume with zero loss of technical momentum.
89
90
 
90
91
  ## Required Output Format:
91
92
 
@@ -100,11 +101,11 @@ compaction_prompt: |
100
101
  ### 3. Strategic Pivot & Next Steps
101
102
  - **Current Intent**: What is the model currently trying to prove or implement?
102
103
  - **Immediate Next Steps**: The prioritized next tool calls and logic steps.
103
- ---
104
- ## Conversation History to Compact:
104
+
105
105
 
106
106
  observation_prompt: |
107
- Review the following conversation history and extract an
107
+ ---
108
+ Review the current conversation stream and extract an
108
109
  event-based log of key decisions, tool outputs, and user requests.
109
110
  Focus on "what happened" rather than a narrative summary.
110
111
  Use a bulleted list of concise, factual statements.
@@ -112,7 +113,8 @@ observation_prompt: |
112
113
  Do not describe tool syntax; describe what was learned or changed in one sentence per bullet.
113
114
 
114
115
  reflection_prompt: |
115
- Condense the following observation log into a consolidated set of
116
+ ---
117
+ Condense this observation log into a consolidated set of
116
118
  key historical facts. Additionally, explicitly state the
117
119
  CURRENT GOALS and NEXT STEPS based on the history.
118
120
 
@@ -7,7 +7,7 @@ from . import (
7
7
  command_interactive,
8
8
  context_manager,
9
9
  delete_text,
10
- explore_symbols,
10
+ explore_code,
11
11
  finished,
12
12
  git_branch,
13
13
  git_diff,
@@ -33,7 +33,7 @@ TOOL_MODULES = [
33
33
  command_interactive,
34
34
  context_manager,
35
35
  delete_text,
36
- explore_symbols,
36
+ explore_code,
37
37
  finished,
38
38
  git_branch,
39
39
  git_diff,