cecli-dev 0.99.5__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.5 → cecli_dev-0.99.7}/.pre-commit-config.yaml +4 -4
  2. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/PKG-INFO +5 -2
  3. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/benchmark.py +1 -3
  4. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/__init__.py +1 -1
  5. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/_version.py +3 -3
  6. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/agent_coder.py +2 -1
  7. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/base_coder.py +3 -2
  8. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/copy_context.py +5 -4
  9. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/load_mcp.py +30 -13
  10. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/remove_mcp.py +19 -7
  11. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/background_commands.py +49 -1
  12. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/conversation/integration.py +89 -13
  13. cecli_dev-0.99.7/cecli/helpers/grep_ast/__init__.py +4 -0
  14. cecli_dev-0.99.7/cecli/helpers/grep_ast/dump.py +29 -0
  15. cecli_dev-0.99.7/cecli/helpers/grep_ast/grep_ast.py +294 -0
  16. cecli_dev-0.99.7/cecli/helpers/grep_ast/main.py +111 -0
  17. cecli_dev-0.99.7/cecli/helpers/grep_ast/parsers.py +310 -0
  18. cecli_dev-0.99.7/cecli/helpers/grep_ast/tsl.py +10 -0
  19. cecli_dev-0.99.7/cecli/helpers/leak_detect.py +351 -0
  20. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/history.py +2 -19
  21. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/linter.py +2 -2
  22. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/main.py +31 -0
  23. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/models.py +9 -2
  24. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/onboarding.py +3 -3
  25. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/agent.yml +1 -1
  26. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/base.yml +7 -5
  27. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/repomap.py +8 -3
  28. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/report.py +4 -4
  29. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/resources/model-metadata.json +550 -29
  30. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/sessions.py +8 -7
  31. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/__init__.py +2 -2
  32. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/command.py +44 -8
  33. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/command_interactive.py +5 -1
  34. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/context_manager.py +40 -16
  35. cecli_dev-0.99.5/cecli/tools/explore_symbols.py → cecli_dev-0.99.7/cecli/tools/explore_code.py +4 -4
  36. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/show_context.py +3 -2
  37. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/watch.py +1 -1
  38. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli_dev.egg-info/PKG-INFO +5 -2
  39. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli_dev.egg-info/SOURCES.txt +8 -1
  40. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli_dev.egg-info/requires.txt +6 -1
  41. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/requirements/common-constraints.txt +11 -8
  42. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/requirements/requirements-dev.in +2 -0
  43. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/requirements/requirements-dev.txt +8 -0
  44. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/requirements/requirements.in +3 -2
  45. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/requirements.txt +8 -8
  46. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/30k-image.py +6 -2
  47. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_models.py +14 -4
  48. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_sessions.py +4 -2
  49. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/help/test_help.py +10 -0
  50. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/hooks/test_base.py +0 -1
  51. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/.dockerignore +0 -0
  52. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/.flake8 +0 -0
  53. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/.gitattributes +0 -0
  54. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  55. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/.github/workflows/check_pypi_version.yml +0 -0
  56. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/.github/workflows/docker-build-test.yml +0 -0
  57. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/.github/workflows/docker-release.yml +0 -0
  58. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/.github/workflows/issues.yml +0 -0
  59. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/.github/workflows/pages.yml +0 -0
  60. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/.github/workflows/pre-commit.yml +0 -0
  61. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/.github/workflows/release.yml +0 -0
  62. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/.github/workflows/ubuntu-tests.yml +0 -0
  63. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/.github/workflows/windows-tests.yml +0 -0
  64. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/.github/workflows/windows_check_pypi_version.yml +0 -0
  65. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/.gitignore +0 -0
  66. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/CHANGELOG.md +0 -0
  67. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/CNAME +0 -0
  68. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/CONTRIBUTING.md +0 -0
  69. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/HISTORY.md +0 -0
  70. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/LICENSE.txt +0 -0
  71. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/MANIFEST.in +0 -0
  72. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/README.md +0 -0
  73. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/Dockerfile +0 -0
  74. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/README.md +0 -0
  75. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/__init__.py +0 -0
  76. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/benchmark_classic.py +0 -0
  77. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/clone-exercism.sh +0 -0
  78. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/cpp-test.sh +0 -0
  79. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/docker.sh +0 -0
  80. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/docker_build.sh +0 -0
  81. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/install-docker-ubuntu.sh +0 -0
  82. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/npm-test.sh +0 -0
  83. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/over_time.py +0 -0
  84. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/plot.sh +0 -0
  85. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/plots.py +0 -0
  86. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/problem_stats.py +0 -0
  87. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/prompts.py +0 -0
  88. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/refactor_tools.py +0 -0
  89. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/rsync.sh +0 -0
  90. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/rungrid.py +0 -0
  91. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/swe-bench-lite.txt +0 -0
  92. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/swe-bench.txt +0 -0
  93. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/swe_bench.py +0 -0
  94. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/test_benchmark.py +0 -0
  95. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/variations.1.sh +0 -0
  96. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/variations.2.sh +0 -0
  97. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/variations.3.sh +0 -0
  98. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/benchmark/variations.4.sh +0 -0
  99. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/__main__.py +0 -0
  100. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/args.py +0 -0
  101. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/args_formatter.py +0 -0
  102. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/change_tracker.py +0 -0
  103. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/__init__.py +0 -0
  104. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/architect_coder.py +0 -0
  105. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/ask_coder.py +0 -0
  106. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/chat_chunks.py +0 -0
  107. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/context_coder.py +0 -0
  108. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/copypaste_coder.py +0 -0
  109. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/editblock_coder.py +0 -0
  110. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/editblock_fenced_coder.py +0 -0
  111. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/editblock_func_coder.py +0 -0
  112. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  113. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/editor_editblock_coder.py +0 -0
  114. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/editor_whole_coder.py +0 -0
  115. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/hashline_coder.py +0 -0
  116. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/help_coder.py +0 -0
  117. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/patch_coder.py +0 -0
  118. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/search_replace.py +0 -0
  119. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/shell.py +0 -0
  120. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/single_wholefile_func_coder.py +0 -0
  121. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/udiff_coder.py +0 -0
  122. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/udiff_simple.py +0 -0
  123. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/wholefile_coder.py +0 -0
  124. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/coders/wholefile_func_coder.py +0 -0
  125. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/__init__.py +0 -0
  126. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/add.py +0 -0
  127. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/agent.py +0 -0
  128. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/agent_model.py +0 -0
  129. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/architect.py +0 -0
  130. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/ask.py +0 -0
  131. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/chat_mode.py +0 -0
  132. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/clear.py +0 -0
  133. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/code.py +0 -0
  134. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/command_prefix.py +0 -0
  135. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/commit.py +0 -0
  136. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/compact.py +0 -0
  137. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/context.py +0 -0
  138. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/context_blocks.py +0 -0
  139. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/context_management.py +0 -0
  140. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/copy.py +0 -0
  141. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/core.py +0 -0
  142. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/diff.py +0 -0
  143. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/drop.py +0 -0
  144. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/editor.py +0 -0
  145. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/editor_model.py +0 -0
  146. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/exit.py +0 -0
  147. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/git.py +0 -0
  148. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/hashline.py +0 -0
  149. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/help.py +0 -0
  150. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/history_search.py +0 -0
  151. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/hooks.py +0 -0
  152. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/lint.py +0 -0
  153. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/list_sessions.py +0 -0
  154. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/load.py +0 -0
  155. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/load_hook.py +0 -0
  156. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/load_session.py +0 -0
  157. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/load_skill.py +0 -0
  158. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/ls.py +0 -0
  159. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/map.py +0 -0
  160. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/map_refresh.py +0 -0
  161. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/model.py +0 -0
  162. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/models.py +0 -0
  163. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/multiline_mode.py +0 -0
  164. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/paste.py +0 -0
  165. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/quit.py +0 -0
  166. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/read_only.py +0 -0
  167. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/read_only_stub.py +0 -0
  168. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/reasoning_effort.py +0 -0
  169. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/remove_hook.py +0 -0
  170. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/remove_skill.py +0 -0
  171. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/report.py +0 -0
  172. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/reset.py +0 -0
  173. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/rules.py +0 -0
  174. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/run.py +0 -0
  175. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/save.py +0 -0
  176. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/save_session.py +0 -0
  177. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/settings.py +0 -0
  178. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/terminal_data/linux.keytab +0 -0
  179. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/terminal_setup.py +0 -0
  180. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/test.py +0 -0
  181. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/think_tokens.py +0 -0
  182. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/tokens.py +0 -0
  183. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/undo.py +0 -0
  184. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/utils/__init__.py +0 -0
  185. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/utils/base_command.py +0 -0
  186. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/utils/helpers.py +0 -0
  187. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/utils/registry.py +0 -0
  188. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/utils/save_load_manager.py +0 -0
  189. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/voice.py +0 -0
  190. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/weak_model.py +0 -0
  191. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/web.py +0 -0
  192. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/commands/workspace.py +0 -0
  193. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/deprecated_args.py +0 -0
  194. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/diffs.py +0 -0
  195. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/dump.py +0 -0
  196. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/editor.py +0 -0
  197. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/exceptions.py +0 -0
  198. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/format_settings.py +0 -0
  199. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/help.py +0 -0
  200. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/help_pats.py +0 -0
  201. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/__init__.py +0 -0
  202. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/command_parser.py +0 -0
  203. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/conversation/__init__.py +0 -0
  204. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/conversation/base_message.py +0 -0
  205. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/conversation/files.py +0 -0
  206. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/conversation/manager.py +0 -0
  207. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/conversation/service.py +0 -0
  208. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/conversation/tags.py +0 -0
  209. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/conversation/utils.py +0 -0
  210. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/copypaste.py +0 -0
  211. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/coroutines.py +0 -0
  212. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/file_searcher.py +0 -0
  213. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/hashline.py +0 -0
  214. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/hashpos/__init__.py +0 -0
  215. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/hashpos/hashpos.py +0 -0
  216. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/model_providers.py +0 -0
  217. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/monorepo/__init__.py +0 -0
  218. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/monorepo/config.py +0 -0
  219. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/monorepo/project.py +0 -0
  220. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/monorepo/workspace.py +0 -0
  221. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/monorepo/worktree.py +0 -0
  222. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/nested.py +0 -0
  223. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/observations/__init__.py +0 -0
  224. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/observations/manager.py +0 -0
  225. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/plugin_manager.py +0 -0
  226. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/profiler.py +0 -0
  227. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/requests.py +0 -0
  228. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/responses.py +0 -0
  229. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/similarity.py +0 -0
  230. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/helpers/skills.py +0 -0
  231. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/hooks/__init__.py +0 -0
  232. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/hooks/base.py +0 -0
  233. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/hooks/integration.py +0 -0
  234. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/hooks/manager.py +0 -0
  235. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/hooks/registry.py +0 -0
  236. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/hooks/types.py +0 -0
  237. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/interruptible_input.py +0 -0
  238. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/io.py +0 -0
  239. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/llm.py +0 -0
  240. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/mcp/__init__.py +0 -0
  241. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/mcp/manager.py +0 -0
  242. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/mcp/oauth.py +0 -0
  243. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/mcp/server.py +0 -0
  244. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/mcp/utils.py +0 -0
  245. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/mdstream.py +0 -0
  246. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/__init__.py +0 -0
  247. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/architect.yml +0 -0
  248. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/ask.yml +0 -0
  249. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/context.yml +0 -0
  250. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/copypaste.yml +0 -0
  251. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/editblock.yml +0 -0
  252. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/editblock_fenced.yml +0 -0
  253. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/editblock_func.yml +0 -0
  254. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/editor_diff_fenced.yml +0 -0
  255. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/editor_editblock.yml +0 -0
  256. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/editor_whole.yml +0 -0
  257. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/hashline.yml +0 -0
  258. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/help.yml +0 -0
  259. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/patch.yml +0 -0
  260. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/single_wholefile_func.yml +0 -0
  261. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/udiff.yml +0 -0
  262. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/udiff_simple.yml +0 -0
  263. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/utils/__init__.py +0 -0
  264. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/utils/registry.py +0 -0
  265. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/utils/system.py +0 -0
  266. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/wholefile.yml +0 -0
  267. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/prompts/wholefile_func.yml +0 -0
  268. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  269. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  270. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  271. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  272. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  273. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  274. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  275. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  276. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  277. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  278. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  279. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  280. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  281. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  282. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  283. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  284. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  285. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  286. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  287. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  288. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  289. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  290. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  291. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  292. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  293. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  294. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  295. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  296. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  297. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  298. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  299. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/README.md +0 -0
  300. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  301. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  302. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  303. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  304. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  305. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  306. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  307. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  308. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  309. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  310. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  311. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  312. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  313. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  314. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  315. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  316. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  317. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  318. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  319. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  320. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  321. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  322. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  323. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  324. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  325. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  326. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/reasoning_tags.py +0 -0
  327. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/repo.py +0 -0
  328. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/resources/__init__.py +0 -0
  329. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/resources/model-settings.yml +0 -0
  330. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/resources/providers.json +0 -0
  331. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/run_cmd.py +0 -0
  332. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/scrape.py +0 -0
  333. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/sendchat.py +0 -0
  334. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/special.py +0 -0
  335. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/delete_text.py +0 -0
  336. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/finished.py +0 -0
  337. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/git_branch.py +0 -0
  338. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/git_diff.py +0 -0
  339. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/git_log.py +0 -0
  340. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/git_remote.py +0 -0
  341. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/git_show.py +0 -0
  342. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/git_status.py +0 -0
  343. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/grep.py +0 -0
  344. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/insert_text.py +0 -0
  345. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/load_skill.py +0 -0
  346. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/ls.py +0 -0
  347. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/remove_skill.py +0 -0
  348. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/replace_text.py +0 -0
  349. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/thinking.py +0 -0
  350. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/undo_change.py +0 -0
  351. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/update_todo_list.py +0 -0
  352. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/utils/base_tool.py +0 -0
  353. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/utils/helpers.py +0 -0
  354. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/utils/output.py +0 -0
  355. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tools/utils/registry.py +0 -0
  356. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tui/__init__.py +0 -0
  357. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tui/app.py +0 -0
  358. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tui/io.py +0 -0
  359. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tui/styles.tcss +0 -0
  360. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tui/widgets/__init__.py +0 -0
  361. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tui/widgets/completion_bar.py +0 -0
  362. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tui/widgets/file_list.py +0 -0
  363. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tui/widgets/footer.py +0 -0
  364. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tui/widgets/input_area.py +0 -0
  365. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tui/widgets/input_container.py +0 -0
  366. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tui/widgets/key_hints.py +0 -0
  367. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tui/widgets/output.py +0 -0
  368. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tui/widgets/status_bar.py +0 -0
  369. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/tui/worker.py +0 -0
  370. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/urls.py +0 -0
  371. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/utils.py +0 -0
  372. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/versioncheck.py +0 -0
  373. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/voice.py +0 -0
  374. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/waiting.py +0 -0
  375. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/watch_prompts.py +0 -0
  376. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/Gemfile +0 -0
  377. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/_includes/blame.md +0 -0
  378. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/_includes/get-started.md +0 -0
  379. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/_includes/help-tip.md +0 -0
  380. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/_includes/help.md +0 -0
  381. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/_includes/install.md +0 -0
  382. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/_includes/keys.md +0 -0
  383. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/_includes/model-warnings.md +0 -0
  384. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/_includes/multi-line.md +0 -0
  385. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/_includes/python-m-aider.md +0 -0
  386. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/_includes/recording.css +0 -0
  387. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/_includes/recording.md +0 -0
  388. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/_includes/works-best.md +0 -0
  389. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/_sass/_features.scss +0 -0
  390. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/_sass/_footer.scss +0 -0
  391. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/_sass/_hero.scss +0 -0
  392. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/_sass/_info.scss +0 -0
  393. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/_sass/_layout.scss +0 -0
  394. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/_sass/_reset.scss +0 -0
  395. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/_sass/_testimonials.scss +0 -0
  396. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/_sass/_typography.scss +0 -0
  397. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/_sass/_variables.scss +0 -0
  398. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/_sass/custom/custom.scss +0 -0
  399. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/_sass/global-overrides.scss +0 -0
  400. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/config/adv-model-settings.md +0 -0
  401. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/config/agent-mode.md +0 -0
  402. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/config/aider_conf.md +0 -0
  403. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/config/api-keys.md +0 -0
  404. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/config/custom-commands.md +0 -0
  405. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  406. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/config/dotenv.md +0 -0
  407. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/config/editor.md +0 -0
  408. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/config/hooks.md +0 -0
  409. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/config/mcp.md +0 -0
  410. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/config/model-aliases.md +0 -0
  411. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/config/options.md +0 -0
  412. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/config/reasoning.md +0 -0
  413. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/config/security.md +0 -0
  414. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/config/skills.md +0 -0
  415. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/config/tui.md +0 -0
  416. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/config/workspaces.md +0 -0
  417. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/config.md +0 -0
  418. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/faq.md +0 -0
  419. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/git.md +0 -0
  420. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/index.md +0 -0
  421. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/install/docker.md +0 -0
  422. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/install/optional.md +0 -0
  423. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/install.md +0 -0
  424. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/languages.md +0 -0
  425. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  426. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/legal/privacy.md +0 -0
  427. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/llms/anthropic.md +0 -0
  428. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/llms/azure.md +0 -0
  429. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/llms/bedrock.md +0 -0
  430. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/llms/cohere.md +0 -0
  431. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/llms/deepseek.md +0 -0
  432. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/llms/gemini.md +0 -0
  433. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/llms/github.md +0 -0
  434. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/llms/groq.md +0 -0
  435. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/llms/lm-studio.md +0 -0
  436. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/llms/ollama.md +0 -0
  437. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/llms/openai-compat.md +0 -0
  438. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/llms/openai.md +0 -0
  439. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/llms/openrouter.md +0 -0
  440. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/llms/other.md +0 -0
  441. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/llms/vertex.md +0 -0
  442. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/llms/warnings.md +0 -0
  443. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/llms/xai.md +0 -0
  444. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/llms.md +0 -0
  445. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/more/analytics.md +0 -0
  446. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/more/edit-formats.md +0 -0
  447. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/more/infinite-output.md +0 -0
  448. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/more-info.md +0 -0
  449. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/repomap.md +0 -0
  450. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/scripting.md +0 -0
  451. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
  452. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  453. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/troubleshooting/imports.md +0 -0
  454. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  455. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/troubleshooting/support.md +0 -0
  456. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  457. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  458. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/troubleshooting.md +0 -0
  459. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/usage/commands.md +0 -0
  460. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/usage/conventions.md +0 -0
  461. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/usage/copypaste.md +0 -0
  462. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/usage/images-urls.md +0 -0
  463. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/usage/lint-test.md +0 -0
  464. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/usage/modes.md +0 -0
  465. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/usage/not-code.md +0 -0
  466. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/usage/notifications.md +0 -0
  467. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/usage/sessions.md +0 -0
  468. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/usage/tips.md +0 -0
  469. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/usage/voice.md +0 -0
  470. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/usage/watch.md +0 -0
  471. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/docs/usage.md +0 -0
  472. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli/website/share/index.md +0 -0
  473. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli_dev.egg-info/dependency_links.txt +0 -0
  474. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli_dev.egg-info/entry_points.txt +0 -0
  475. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/cecli_dev.egg-info/top_level.txt +0 -0
  476. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/docker/Dockerfile +0 -0
  477. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  478. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/pyproject.toml +0 -0
  479. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/pytest.ini +0 -0
  480. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/requirements/requirements-help.in +0 -0
  481. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/requirements/requirements-help.txt +0 -0
  482. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/requirements/requirements-playwright.in +0 -0
  483. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/requirements/requirements-playwright.txt +0 -0
  484. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/requirements/tree-sitter.in +0 -0
  485. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/Dockerfile.jekyll +0 -0
  486. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/__init__.py +0 -0
  487. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/blame.py +0 -0
  488. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/clean_metadata.py +0 -0
  489. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/cost_analyzer.py +0 -0
  490. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/dl_icons.py +0 -0
  491. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/filter-chat-mode.js +0 -0
  492. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/generate_providers.py +0 -0
  493. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/get_contributor_list.js +0 -0
  494. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/get_hashline.py +0 -0
  495. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/history_prompts.py +0 -0
  496. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/homepage.py +0 -0
  497. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/issues.py +0 -0
  498. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/jekyll_build.sh +0 -0
  499. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/jekyll_run.sh +0 -0
  500. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/logo_svg.py +0 -0
  501. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/pip-compile.sh +0 -0
  502. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/recording_audio.py +0 -0
  503. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/redact-cast.py +0 -0
  504. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/rename_to_cecli.py +0 -0
  505. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/tmux_record.sh +0 -0
  506. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/tsl_pack_langs.py +0 -0
  507. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/update-blame.sh +0 -0
  508. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/update-docs.sh +0 -0
  509. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/update-history.py +0 -0
  510. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/versionbump.py +0 -0
  511. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/scripts/yank-old-versions.py +0 -0
  512. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/setup.cfg +0 -0
  513. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/shim.pyproject.toml +0 -0
  514. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/__init__.py +0 -0
  515. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/__init__.py +0 -0
  516. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_aws_credentials.py +0 -0
  517. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_background_commands.py +0 -0
  518. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_coder.py +0 -0
  519. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_commands.py +0 -0
  520. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_custom_commands.py +0 -0
  521. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_deprecated.py +0 -0
  522. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_editblock.py +0 -0
  523. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_editor.py +0 -0
  524. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_exceptions.py +0 -0
  525. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_find_or_blocks.py +0 -0
  526. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_hashline.py +0 -0
  527. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_history.py +0 -0
  528. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_io.py +0 -0
  529. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_linter.py +0 -0
  530. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_main.py +0 -0
  531. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_model_info_manager.py +0 -0
  532. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_model_provider_manager.py +0 -0
  533. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_onboarding.py +0 -0
  534. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_plugin_manager.py +0 -0
  535. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_prompts.py +0 -0
  536. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_reasoning.py +0 -0
  537. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_repo.py +0 -0
  538. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_repomap.py +0 -0
  539. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_run_cmd.py +0 -0
  540. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_sanity_check_repo.py +0 -0
  541. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_scripting.py +0 -0
  542. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_sendchat.py +0 -0
  543. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_skills.py +0 -0
  544. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_special.py +0 -0
  545. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_ssl_verification.py +0 -0
  546. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_udiff.py +0 -0
  547. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_urls.py +0 -0
  548. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_voice.py +0 -0
  549. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_watch.py +0 -0
  550. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/basic/test_wholefile.py +0 -0
  551. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/coders/test_copypaste_coder.py +0 -0
  552. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/conftest.py +0 -0
  553. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/conversations/test_conversation_integration.py +0 -0
  554. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/conversations/test_conversation_system.py +0 -0
  555. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  556. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/chat-history.md +0 -0
  557. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/arduino/test.ino +0 -0
  558. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/c/test.c +0 -0
  559. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/chatito/test.chatito +0 -0
  560. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/clojure/test.clj +0 -0
  561. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  562. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/cpp/test.cpp +0 -0
  563. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/csharp/test.cs +0 -0
  564. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/d/test.d +0 -0
  565. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/dart/test.dart +0 -0
  566. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/elisp/test.el +0 -0
  567. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/elixir/test.ex +0 -0
  568. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/elm/test.elm +0 -0
  569. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/gleam/test.gleam +0 -0
  570. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/go/test.go +0 -0
  571. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/haskell/test.hs +0 -0
  572. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/hcl/test.tf +0 -0
  573. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/java/test.java +0 -0
  574. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/javascript/test.js +0 -0
  575. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/kotlin/test.kt +0 -0
  576. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/lua/test.lua +0 -0
  577. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/matlab/test.m +0 -0
  578. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/ocaml/test.ml +0 -0
  579. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  580. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/php/test.php +0 -0
  581. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/pony/test.pony +0 -0
  582. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/properties/test.properties +0 -0
  583. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/python/test.py +0 -0
  584. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/ql/test.ql +0 -0
  585. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/r/test.r +0 -0
  586. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/racket/test.rkt +0 -0
  587. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/ruby/test.rb +0 -0
  588. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/rust/test.rs +0 -0
  589. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/scala/test.scala +0 -0
  590. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/solidity/test.sol +0 -0
  591. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/swift/test.swift +0 -0
  592. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/tsx/test.tsx +0 -0
  593. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/typescript/test.ts +0 -0
  594. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/udev/test.rules +0 -0
  595. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/languages/zig/test.zig +0 -0
  596. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/sample-code-base/sample.js +0 -0
  597. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/sample-code-base/sample.py +0 -0
  598. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  599. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/watch.js +0 -0
  600. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/watch.lisp +0 -0
  601. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/watch.py +0 -0
  602. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/fixtures/watch_question.js +0 -0
  603. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/helpers/monorepo/test_config.py +0 -0
  604. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/helpers/monorepo/test_config_active.py +0 -0
  605. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
  606. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
  607. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/helpers/monorepo/test_workspace.py +0 -0
  608. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/helpers/observations/test_observation_manager.py +0 -0
  609. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/hooks/__init__.py +0 -0
  610. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/hooks/test_manager.py +0 -0
  611. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/hooks/test_registry.py +0 -0
  612. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/mcp/__init__.py +0 -0
  613. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/mcp/test_manager.py +0 -0
  614. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/scrape/test_playwright_disable.py +0 -0
  615. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/scrape/test_scrape.py +0 -0
  616. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/tools/test_git_branch.py +0 -0
  617. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/tools/test_git_diff.py +0 -0
  618. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/tools/test_grep.py +0 -0
  619. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/tools/test_insert_block.py +0 -0
  620. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/tools/test_registry.py +0 -0
  621. {cecli_dev-0.99.5 → cecli_dev-0.99.7}/tests/tools/test_show_context.py +0 -0
@@ -1,21 +1,21 @@
1
1
  repos:
2
2
  - repo: https://github.com/PyCQA/isort
3
- rev: 5.12.0
3
+ rev: 9.0.0a3
4
4
  hooks:
5
5
  - id: isort
6
6
  args: ["--profile", "black"]
7
7
  - repo: https://github.com/psf/black
8
- rev: 23.3.0
8
+ rev: 26.3.1
9
9
  hooks:
10
10
  - id: black
11
11
  args: ["--line-length", "100", "--preview"]
12
12
  - repo: https://github.com/pycqa/flake8
13
- rev: 7.1.0
13
+ rev: 7.3.0
14
14
  hooks:
15
15
  - id: flake8
16
16
  args: ["--show-source"]
17
17
  - repo: https://github.com/codespell-project/codespell
18
- rev: v2.2.6
18
+ rev: v2.4.2
19
19
  hooks:
20
20
  - id: codespell
21
21
  args: ["--skip", "cecli/website/docs/languages.md"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cecli-dev
3
- Version: 0.99.5
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
@@ -27,7 +27,6 @@ Requires-Dist: prompt_toolkit
27
27
  Requires-Dist: backoff>=2.2.1
28
28
  Requires-Dist: pathspec>=0.12.1
29
29
  Requires-Dist: diskcache>=5.6.3
30
- Requires-Dist: grep_ast
31
30
  Requires-Dist: packaging>=25.0
32
31
  Requires-Dist: sounddevice>=0.5.2
33
32
  Requires-Dist: soundfile>=0.13.1
@@ -59,6 +58,8 @@ Requires-Dist: importlib-metadata>=7.2.1
59
58
  Requires-Dist: tomli>=2.3.0; python_version <= "3.10"
60
59
  Requires-Dist: tree-sitter==0.23.2; python_version < "3.10"
61
60
  Requires-Dist: tree-sitter>=0.25.1; python_version >= "3.10"
61
+ Requires-Dist: tree-sitter-language-pack<=0.13.0
62
+ Requires-Dist: tree_sitter_languages==1.10.2; python_version <= "3.12"
62
63
  Provides-Extra: dev
63
64
  Requires-Dist: pytest; extra == "dev"
64
65
  Requires-Dist: pytest-asyncio; extra == "dev"
@@ -77,6 +78,8 @@ Requires-Dist: codespell; extra == "dev"
77
78
  Requires-Dist: uv; extra == "dev"
78
79
  Requires-Dist: memray; extra == "dev"
79
80
  Requires-Dist: objgraph; extra == "dev"
81
+ Requires-Dist: pympler; extra == "dev"
82
+ Requires-Dist: guppy3; extra == "dev"
80
83
  Provides-Extra: help
81
84
  Requires-Dist: llama-index-embeddings-huggingface; extra == "help"
82
85
  Requires-Dist: numpy>=1.26.4; extra == "help"
@@ -292,9 +292,7 @@ def main(
292
292
 
293
293
  if not dry and "CECLI_DOCKER" not in os.environ:
294
294
  logger.warning("Warning: Benchmarking runs unvetted code. Run in a docker container.")
295
- logger.warning(
296
- "Set CECLI_DOCKER in the environment to by-pass this check at your own risk."
297
- )
295
+ logger.warning("Set CECLI_DOCKER in the environment to bypass this check at your own risk.")
298
296
  return
299
297
 
300
298
  # Check dirs exist
@@ -1,6 +1,6 @@
1
1
  from packaging import version
2
2
 
3
- __version__ = "0.99.3.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.5'
22
- __version_tuple__ = version_tuple = (0, 99, 5)
21
+ __version__ = version = '0.99.7'
22
+ __version_tuple__ = version_tuple = (0, 99, 7)
23
23
 
24
- __commit_id__ = commit_id = 'g4a4e977c3'
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",
@@ -582,6 +582,7 @@ class AgentCoder(Coder):
582
582
 
583
583
  # Add post-message context blocks (priority 250 - between CUR and REMINDER)
584
584
  ConversationService.get_chunks(self).add_post_message_context_blocks()
585
+ ConversationService.get_chunks(self).add_randomized_cta()
585
586
 
586
587
  return ConversationService.get_manager(self).get_messages_dict()
587
588
 
@@ -1131,8 +1131,9 @@ class Coder:
1131
1131
  "other_files": other_files,
1132
1132
  "mentioned_fnames": mentioned_fnames,
1133
1133
  "all_abs_files": all_abs_files,
1134
- "read_only_count": len(set(self.abs_read_only_fnames)) + len(
1135
- set(self.abs_read_only_stubs_fnames)
1134
+ "read_only_count": (
1135
+ len(set(self.abs_read_only_fnames))
1136
+ + len(set(self.abs_read_only_stubs_fnames))
1136
1137
  ),
1137
1138
  }
1138
1139
  )
@@ -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
@@ -6,7 +6,7 @@ from cecli.commands.utils.helpers import format_command_result
6
6
 
7
7
  class LoadMcpCommand(BaseCommand):
8
8
  NORM_NAME = "load-mcp"
9
- DESCRIPTION = "Load a MCP server by name"
9
+ DESCRIPTION = "Load MCP server(s) by name, or use '*' to load all enabled servers"
10
10
 
11
11
  @classmethod
12
12
  async def execute(cls, io, coder, args, **kwargs):
@@ -21,17 +21,34 @@ class LoadMcpCommand(BaseCommand):
21
21
 
22
22
  server_names = args.strip().split()
23
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
29
24
 
30
- did_connect = await coder.mcp_manager.connect_server(server.name)
31
- if did_connect:
32
- results.append(f"Loaded server: {server_name}")
33
- else:
34
- results.append(f"Unable to load server: {server_name}")
25
+ # Handle '*' wildcard to load all servers enabled by default
26
+ if server_names == ["*"]:
27
+ for server in coder.mcp_manager.servers:
28
+ if server in coder.mcp_manager.connected_servers:
29
+ results.append(f"Server already loaded: {server.name}")
30
+ continue
31
+ auto_connect = server.config.get("enabled", True)
32
+ if not auto_connect:
33
+ results.append(f"Skipping server (not enabled by default): {server.name}")
34
+ continue
35
+ did_connect = await coder.mcp_manager.connect_server(server.name)
36
+ if did_connect:
37
+ results.append(f"Loaded server: {server.name}")
38
+ else:
39
+ results.append(f"Unable to load server: {server.name}")
40
+ else:
41
+ for server_name in server_names:
42
+ server = coder.mcp_manager.get_server(server_name)
43
+ if server is None:
44
+ results.append(f"MCP server {server_name} does not exist.")
45
+ continue
46
+
47
+ did_connect = await coder.mcp_manager.connect_server(server.name)
48
+ if did_connect:
49
+ results.append(f"Loaded server: {server_name}")
50
+ else:
51
+ results.append(f"Unable to load server: {server_name}")
35
52
 
36
53
  try:
37
54
  return format_command_result(io, cls.NORM_NAME, "\n".join(results))
@@ -67,8 +84,8 @@ class LoadMcpCommand(BaseCommand):
67
84
  help_text = super().get_help()
68
85
  help_text += "\nUsage:\n"
69
86
  help_text += " /load-mcp <mcp-name>... # Load one or more mcps by name\n"
87
+ help_text += " /load-mcp * # Load all mcps enabled by default\n"
70
88
  help_text += "\nExamples:\n"
71
89
  help_text += " /load-mcp context7 # Load the context7 mcp\n"
72
90
  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"
74
- return help_text
91
+ help_text += " /load-mcp * # Load all mcps enabled by default\n"
@@ -6,7 +6,7 @@ from cecli.commands.utils.helpers import format_command_result
6
6
 
7
7
  class RemoveMcpCommand(BaseCommand):
8
8
  NORM_NAME = "remove-mcp"
9
- DESCRIPTION = "Remove a MCP server by name"
9
+ DESCRIPTION = "Remove a MCP server by name, or use '*' to remove all"
10
10
 
11
11
  @classmethod
12
12
  async def execute(cls, io, coder, args, **kwargs):
@@ -21,12 +21,23 @@ class RemoveMcpCommand(BaseCommand):
21
21
 
22
22
  server_names = args.strip().split()
23
23
  results = []
24
- for server_name in server_names:
25
- was_disconnected = await coder.mcp_manager.disconnect_server(server_name)
26
- if was_disconnected:
27
- results.append(f"Removed server: {server_name}")
24
+
25
+ # Handle '*' wildcard to disconnect all servers
26
+ if server_names == ["*"]:
27
+ connected = [s for s in coder.mcp_manager.servers if s.is_connected]
28
+ if not connected:
29
+ results.append("No MCP servers connected, nothing to remove.")
28
30
  else:
29
- results.append(f"Unable to remove server: {server_name}")
31
+ for server in connected:
32
+ await coder.mcp_manager.disconnect_server(server.name)
33
+ results.append(f"Removed server: {server.name}")
34
+ else:
35
+ for server_name in server_names:
36
+ was_disconnected = await coder.mcp_manager.disconnect_server(server_name)
37
+ if was_disconnected:
38
+ results.append(f"Removed server: {server_name}")
39
+ else:
40
+ results.append(f"Unable to remove server: {server_name}")
30
41
 
31
42
  try:
32
43
  return format_command_result(io, cls.NORM_NAME, "\n".join(results))
@@ -59,7 +70,8 @@ class RemoveMcpCommand(BaseCommand):
59
70
  help_text = super().get_help()
60
71
  help_text += "\nUsage:\n"
61
72
  help_text += " /remove-mcp <mcp-name>... # Remove one or more mcps by name\n"
73
+ help_text += " /remove-mcp * # Remove all connected mcps\n"
62
74
  help_text += "\nExamples:\n"
63
75
  help_text += " /remove-mcp context7 # Remove the context7 mcp\n"
64
76
  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"
77
+ help_text += " /remove-mcp * # Remove all connected mcps\n"
@@ -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)
@@ -1,4 +1,5 @@
1
1
  import json
2
+ import random
2
3
  import weakref
3
4
  from typing import Any, Dict, List
4
5
  from uuid import UUID
@@ -93,7 +94,9 @@ class ConversationChunks:
93
94
  ):
94
95
  msg = dict(
95
96
  role="user",
96
- content=coder.fmt_system_prompt(coder.gpt_prompts.system_reminder),
97
+ content=self._shuffle_reminders(
98
+ coder.fmt_system_prompt(coder.gpt_prompts.system_reminder)
99
+ ),
97
100
  )
98
101
  ConversationService.get_manager(coder).add_message(
99
102
  message_dict=msg,
@@ -103,6 +106,62 @@ class ConversationChunks:
103
106
  mark_for_delete=0,
104
107
  )
105
108
 
109
+ def add_randomized_cta(self) -> None:
110
+ coder = self.get_coder()
111
+ if not coder:
112
+ return
113
+
114
+ message = random.choice(
115
+ [
116
+ "Given the above, please call any tools necessary to make progress on your task",
117
+ (
118
+ "Based on the information provided, please execute the appropriate tools to"
119
+ " move the task forward."
120
+ ),
121
+ "With this context in mind, please proceed with your work.",
122
+ (
123
+ "In light of the above, please utilize the required tools to continue with this"
124
+ " request."
125
+ ),
126
+ (
127
+ "Continue making progress. If you have reached the goal, summarize the results."
128
+ " Otherwise, call the next necessary tool."
129
+ ),
130
+ (
131
+ "Please use the proper tools to fulfill the next steps of this task based on"
132
+ " the current data."
133
+ ),
134
+ (
135
+ "You’ve got what you need, please invoke the right tools to keep making"
136
+ " progress towards our goal."
137
+ ),
138
+ (
139
+ "Considering what we've established, please use the available tools to complete"
140
+ " the current objective."
141
+ ),
142
+ (
143
+ "Given this information, please use the available tools to proceed with the"
144
+ " assignment."
145
+ ),
146
+ "Please take the next logical steps to make headway on this task.",
147
+ ]
148
+ )
149
+
150
+ msg = dict(
151
+ role="user",
152
+ content="\n\n" + message,
153
+ )
154
+
155
+ ConversationService.get_manager(coder).add_message(
156
+ message_dict=msg,
157
+ tag=MessageTag.REMINDER,
158
+ hash_key=("main", "randomized_cta"),
159
+ force=True,
160
+ mark_for_delete=0,
161
+ promotion=2 * ConversationService.get_manager(coder).DEFAULT_TAG_PROMOTION_VALUE,
162
+ mark_for_demotion=1,
163
+ )
164
+
106
165
  def cleanup_files(self) -> None:
107
166
  """
108
167
  Clean up ConversationFiles and remove corresponding messages from ConversationManager
@@ -727,12 +786,6 @@ class ConversationChunks:
727
786
  tag=MessageTag.FILE_CONTEXTS,
728
787
  hash_key=("file_context_user", file_path),
729
788
  force=True,
730
- promotion=(
731
- ConversationService.get_manager(coder).DEFAULT_TAG_PROMOTION_VALUE
732
- if promote_messages
733
- else None
734
- ),
735
- mark_for_demotion=1 if promote_messages else None,
736
789
  )
737
790
 
738
791
  ConversationService.get_manager(coder).add_message(
@@ -740,12 +793,6 @@ class ConversationChunks:
740
793
  tag=MessageTag.FILE_CONTEXTS,
741
794
  hash_key=("file_context_assistant", file_path),
742
795
  force=True,
743
- promotion=(
744
- ConversationService.get_manager(coder).DEFAULT_TAG_PROMOTION_VALUE
745
- if promote_messages
746
- else None
747
- ),
748
- mark_for_demotion=1 if promote_messages else None,
749
796
  )
750
797
 
751
798
  def reset(self) -> None:
@@ -903,6 +950,35 @@ class ConversationChunks:
903
950
  force=True,
904
951
  )
905
952
 
953
+ def _shuffle_reminders(self, content: str) -> str:
954
+ """
955
+ If the string is a critical_reminders block, shuffle all bulleted points
956
+ to prevent the model from developing 'boilerplate blindness.'
957
+ """
958
+ if not content.strip().startswith('<context name="critical_reminders">'):
959
+ return content
960
+
961
+ lines = content.splitlines()
962
+
963
+ # 1. Identify indices of lines starting with a hyphen (and the content itself)
964
+ # We use strip() to handle indentation within the XML block
965
+ list_info = [(i, line) for i, line in enumerate(lines) if line.strip().startswith("-")]
966
+
967
+ if not list_info:
968
+ return content
969
+
970
+ # 2. Extract and shuffle the list items
971
+ indices = [item[0] for item in list_info]
972
+ bullet_contents = [item[1] for item in list_info]
973
+ random.shuffle(bullet_contents)
974
+
975
+ # 3. Reconstruct the block by placing shuffled items back into the original indices
976
+ new_lines = list(lines)
977
+ for index, shuffled_text in zip(indices, bullet_contents):
978
+ new_lines[index] = shuffled_text
979
+
980
+ return "\n".join(new_lines)
981
+
906
982
  def debug_print_conversation_state(self) -> None:
907
983
  """
908
984
  Print debug information about conversation state.
@@ -0,0 +1,4 @@
1
+ # noqa: F401
2
+
3
+ from .grep_ast import TreeContext # noqa
4
+ from .parsers import filename_to_lang # noqa
@@ -0,0 +1,29 @@
1
+ import json
2
+ import traceback
3
+
4
+
5
+ def cvt(s):
6
+ if isinstance(s, str):
7
+ return s
8
+ try:
9
+ return json.dumps(s, indent=4)
10
+ except TypeError:
11
+ return str(s)
12
+
13
+
14
+ def dump(*vals):
15
+ # http://docs.python.org/library/traceback.html
16
+ stack = traceback.extract_stack()
17
+ vars = stack[-2][3]
18
+
19
+ # strip away the call to dump()
20
+ vars = "(".join(vars.split("(")[1:])
21
+ vars = ")".join(vars.split(")")[:-1])
22
+
23
+ vals = [cvt(v) for v in vals]
24
+ has_newline = sum(1 for v in vals if "\n" in v)
25
+ if has_newline:
26
+ print("%s:" % vars)
27
+ print(", ".join(vals))
28
+ else:
29
+ print("%s:" % vars, ", ".join(vals))