cecli-dev 0.99.7__tar.gz → 0.99.9__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 (622) hide show
  1. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/PKG-INFO +1 -1
  2. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/__init__.py +1 -1
  3. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/_version.py +3 -3
  4. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/change_tracker.py +1 -1
  5. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/agent_coder.py +7 -11
  6. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/base_coder.py +11 -4
  7. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/load_session.py +1 -1
  8. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/conversation/integration.py +3 -3
  9. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/conversation/manager.py +28 -0
  10. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/main.py +23 -127
  11. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/models.py +187 -9
  12. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/agent.yml +7 -10
  13. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/repo.py +31 -2
  14. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/sessions.py +83 -3
  15. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tools/__init__.py +4 -8
  16. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tools/command.py +8 -4
  17. cecli_dev-0.99.7/cecli/tools/replace_text.py → cecli_dev-0.99.9/cecli/tools/edit_text.py +172 -72
  18. cecli_dev-0.99.7/cecli/tools/show_context.py → cecli_dev-0.99.9/cecli/tools/get_lines.py +77 -65
  19. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tools/utils/helpers.py +5 -5
  20. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tools/utils/registry.py +1 -1
  21. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tui/app.py +6 -0
  22. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/watch.py +5 -2
  23. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/config/agent-mode.md +9 -18
  24. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/config/model-aliases.md +40 -1
  25. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli_dev.egg-info/PKG-INFO +1 -1
  26. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli_dev.egg-info/SOURCES.txt +4 -5
  27. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_main.py +25 -17
  28. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_models.py +7 -7
  29. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_sessions.py +112 -1
  30. cecli_dev-0.99.7/tests/tools/test_show_context.py → cecli_dev-0.99.9/tests/tools/test_get_lines.py +5 -5
  31. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/tools/test_insert_block.py +59 -29
  32. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/tools/test_registry.py +14 -14
  33. cecli_dev-0.99.9/tests/tui/test_app.py +37 -0
  34. cecli_dev-0.99.7/cecli/tools/delete_text.py +0 -139
  35. cecli_dev-0.99.7/cecli/tools/insert_text.py +0 -150
  36. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/.dockerignore +0 -0
  37. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/.flake8 +0 -0
  38. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/.gitattributes +0 -0
  39. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  40. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/.github/workflows/check_pypi_version.yml +0 -0
  41. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/.github/workflows/docker-build-test.yml +0 -0
  42. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/.github/workflows/docker-release.yml +0 -0
  43. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/.github/workflows/issues.yml +0 -0
  44. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/.github/workflows/pages.yml +0 -0
  45. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/.github/workflows/pre-commit.yml +0 -0
  46. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/.github/workflows/release.yml +0 -0
  47. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/.github/workflows/ubuntu-tests.yml +0 -0
  48. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/.github/workflows/windows-tests.yml +0 -0
  49. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/.github/workflows/windows_check_pypi_version.yml +0 -0
  50. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/.gitignore +0 -0
  51. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/.pre-commit-config.yaml +0 -0
  52. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/CHANGELOG.md +0 -0
  53. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/CNAME +0 -0
  54. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/CONTRIBUTING.md +0 -0
  55. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/HISTORY.md +0 -0
  56. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/LICENSE.txt +0 -0
  57. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/MANIFEST.in +0 -0
  58. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/README.md +0 -0
  59. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/Dockerfile +0 -0
  60. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/README.md +0 -0
  61. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/__init__.py +0 -0
  62. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/benchmark.py +0 -0
  63. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/benchmark_classic.py +0 -0
  64. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/clone-exercism.sh +0 -0
  65. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/cpp-test.sh +0 -0
  66. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/docker.sh +0 -0
  67. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/docker_build.sh +0 -0
  68. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/install-docker-ubuntu.sh +0 -0
  69. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/npm-test.sh +0 -0
  70. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/over_time.py +0 -0
  71. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/plot.sh +0 -0
  72. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/plots.py +0 -0
  73. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/problem_stats.py +0 -0
  74. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/prompts.py +0 -0
  75. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/refactor_tools.py +0 -0
  76. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/rsync.sh +0 -0
  77. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/rungrid.py +0 -0
  78. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/swe-bench-lite.txt +0 -0
  79. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/swe-bench.txt +0 -0
  80. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/swe_bench.py +0 -0
  81. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/test_benchmark.py +0 -0
  82. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/variations.1.sh +0 -0
  83. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/variations.2.sh +0 -0
  84. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/variations.3.sh +0 -0
  85. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/benchmark/variations.4.sh +0 -0
  86. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/__main__.py +0 -0
  87. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/args.py +0 -0
  88. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/args_formatter.py +0 -0
  89. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/__init__.py +0 -0
  90. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/architect_coder.py +0 -0
  91. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/ask_coder.py +0 -0
  92. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/chat_chunks.py +0 -0
  93. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/context_coder.py +0 -0
  94. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/copypaste_coder.py +0 -0
  95. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/editblock_coder.py +0 -0
  96. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/editblock_fenced_coder.py +0 -0
  97. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/editblock_func_coder.py +0 -0
  98. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  99. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/editor_editblock_coder.py +0 -0
  100. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/editor_whole_coder.py +0 -0
  101. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/hashline_coder.py +0 -0
  102. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/help_coder.py +0 -0
  103. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/patch_coder.py +0 -0
  104. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/search_replace.py +0 -0
  105. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/shell.py +0 -0
  106. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/single_wholefile_func_coder.py +0 -0
  107. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/udiff_coder.py +0 -0
  108. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/udiff_simple.py +0 -0
  109. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/wholefile_coder.py +0 -0
  110. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/coders/wholefile_func_coder.py +0 -0
  111. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/__init__.py +0 -0
  112. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/add.py +0 -0
  113. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/agent.py +0 -0
  114. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/agent_model.py +0 -0
  115. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/architect.py +0 -0
  116. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/ask.py +0 -0
  117. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/chat_mode.py +0 -0
  118. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/clear.py +0 -0
  119. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/code.py +0 -0
  120. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/command_prefix.py +0 -0
  121. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/commit.py +0 -0
  122. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/compact.py +0 -0
  123. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/context.py +0 -0
  124. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/context_blocks.py +0 -0
  125. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/context_management.py +0 -0
  126. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/copy.py +0 -0
  127. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/copy_context.py +0 -0
  128. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/core.py +0 -0
  129. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/diff.py +0 -0
  130. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/drop.py +0 -0
  131. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/editor.py +0 -0
  132. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/editor_model.py +0 -0
  133. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/exit.py +0 -0
  134. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/git.py +0 -0
  135. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/hashline.py +0 -0
  136. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/help.py +0 -0
  137. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/history_search.py +0 -0
  138. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/hooks.py +0 -0
  139. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/lint.py +0 -0
  140. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/list_sessions.py +0 -0
  141. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/load.py +0 -0
  142. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/load_hook.py +0 -0
  143. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/load_mcp.py +0 -0
  144. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/load_skill.py +0 -0
  145. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/ls.py +0 -0
  146. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/map.py +0 -0
  147. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/map_refresh.py +0 -0
  148. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/model.py +0 -0
  149. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/models.py +0 -0
  150. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/multiline_mode.py +0 -0
  151. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/paste.py +0 -0
  152. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/quit.py +0 -0
  153. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/read_only.py +0 -0
  154. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/read_only_stub.py +0 -0
  155. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/reasoning_effort.py +0 -0
  156. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/remove_hook.py +0 -0
  157. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/remove_mcp.py +0 -0
  158. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/remove_skill.py +0 -0
  159. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/report.py +0 -0
  160. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/reset.py +0 -0
  161. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/rules.py +0 -0
  162. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/run.py +0 -0
  163. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/save.py +0 -0
  164. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/save_session.py +0 -0
  165. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/settings.py +0 -0
  166. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/terminal_data/linux.keytab +0 -0
  167. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/terminal_setup.py +0 -0
  168. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/test.py +0 -0
  169. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/think_tokens.py +0 -0
  170. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/tokens.py +0 -0
  171. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/undo.py +0 -0
  172. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/utils/__init__.py +0 -0
  173. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/utils/base_command.py +0 -0
  174. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/utils/helpers.py +0 -0
  175. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/utils/registry.py +0 -0
  176. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/utils/save_load_manager.py +0 -0
  177. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/voice.py +0 -0
  178. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/weak_model.py +0 -0
  179. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/web.py +0 -0
  180. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/commands/workspace.py +0 -0
  181. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/deprecated_args.py +0 -0
  182. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/diffs.py +0 -0
  183. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/dump.py +0 -0
  184. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/editor.py +0 -0
  185. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/exceptions.py +0 -0
  186. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/format_settings.py +0 -0
  187. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/help.py +0 -0
  188. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/help_pats.py +0 -0
  189. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/__init__.py +0 -0
  190. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/background_commands.py +0 -0
  191. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/command_parser.py +0 -0
  192. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/conversation/__init__.py +0 -0
  193. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/conversation/base_message.py +0 -0
  194. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/conversation/files.py +0 -0
  195. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/conversation/service.py +0 -0
  196. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/conversation/tags.py +0 -0
  197. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/conversation/utils.py +0 -0
  198. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/copypaste.py +0 -0
  199. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/coroutines.py +0 -0
  200. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/file_searcher.py +0 -0
  201. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/grep_ast/__init__.py +0 -0
  202. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/grep_ast/dump.py +0 -0
  203. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/grep_ast/grep_ast.py +0 -0
  204. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/grep_ast/main.py +0 -0
  205. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/grep_ast/parsers.py +0 -0
  206. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/grep_ast/tsl.py +0 -0
  207. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/hashline.py +0 -0
  208. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/hashpos/__init__.py +0 -0
  209. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/hashpos/hashpos.py +0 -0
  210. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/leak_detect.py +0 -0
  211. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/model_providers.py +0 -0
  212. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/monorepo/__init__.py +0 -0
  213. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/monorepo/config.py +0 -0
  214. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/monorepo/project.py +0 -0
  215. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/monorepo/workspace.py +0 -0
  216. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/monorepo/worktree.py +0 -0
  217. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/nested.py +0 -0
  218. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/observations/__init__.py +0 -0
  219. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/observations/manager.py +0 -0
  220. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/plugin_manager.py +0 -0
  221. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/profiler.py +0 -0
  222. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/requests.py +0 -0
  223. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/responses.py +0 -0
  224. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/similarity.py +0 -0
  225. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/helpers/skills.py +0 -0
  226. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/history.py +0 -0
  227. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/hooks/__init__.py +0 -0
  228. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/hooks/base.py +0 -0
  229. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/hooks/integration.py +0 -0
  230. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/hooks/manager.py +0 -0
  231. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/hooks/registry.py +0 -0
  232. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/hooks/types.py +0 -0
  233. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/interruptible_input.py +0 -0
  234. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/io.py +0 -0
  235. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/linter.py +0 -0
  236. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/llm.py +0 -0
  237. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/mcp/__init__.py +0 -0
  238. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/mcp/manager.py +0 -0
  239. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/mcp/oauth.py +0 -0
  240. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/mcp/server.py +0 -0
  241. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/mcp/utils.py +0 -0
  242. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/mdstream.py +0 -0
  243. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/onboarding.py +0 -0
  244. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/__init__.py +0 -0
  245. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/architect.yml +0 -0
  246. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/ask.yml +0 -0
  247. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/base.yml +0 -0
  248. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/context.yml +0 -0
  249. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/copypaste.yml +0 -0
  250. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/editblock.yml +0 -0
  251. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/editblock_fenced.yml +0 -0
  252. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/editblock_func.yml +0 -0
  253. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/editor_diff_fenced.yml +0 -0
  254. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/editor_editblock.yml +0 -0
  255. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/editor_whole.yml +0 -0
  256. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/hashline.yml +0 -0
  257. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/help.yml +0 -0
  258. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/patch.yml +0 -0
  259. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/single_wholefile_func.yml +0 -0
  260. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/udiff.yml +0 -0
  261. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/udiff_simple.yml +0 -0
  262. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/utils/__init__.py +0 -0
  263. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/utils/registry.py +0 -0
  264. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/utils/system.py +0 -0
  265. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/wholefile.yml +0 -0
  266. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/prompts/wholefile_func.yml +0 -0
  267. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  268. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  269. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  270. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  271. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  272. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  273. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  274. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  275. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  276. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  277. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  278. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  279. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  280. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  281. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  282. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  283. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  284. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  285. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  286. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  287. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  288. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  289. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  290. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  291. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  292. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  293. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  294. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  295. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  296. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  297. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  298. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/README.md +0 -0
  299. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  300. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  301. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  302. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  303. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  304. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  305. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  306. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  307. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  308. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  309. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  310. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  311. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  312. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  313. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  314. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  315. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  316. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  317. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  318. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  319. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  320. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  321. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  322. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  323. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  324. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  325. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/reasoning_tags.py +0 -0
  326. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/repomap.py +0 -0
  327. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/report.py +0 -0
  328. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/resources/__init__.py +0 -0
  329. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/resources/model-metadata.json +0 -0
  330. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/resources/model-settings.yml +0 -0
  331. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/resources/providers.json +0 -0
  332. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/run_cmd.py +0 -0
  333. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/scrape.py +0 -0
  334. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/sendchat.py +0 -0
  335. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/special.py +0 -0
  336. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tools/command_interactive.py +0 -0
  337. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tools/context_manager.py +0 -0
  338. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tools/explore_code.py +0 -0
  339. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tools/finished.py +0 -0
  340. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tools/git_branch.py +0 -0
  341. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tools/git_diff.py +0 -0
  342. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tools/git_log.py +0 -0
  343. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tools/git_remote.py +0 -0
  344. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tools/git_show.py +0 -0
  345. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tools/git_status.py +0 -0
  346. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tools/grep.py +0 -0
  347. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tools/load_skill.py +0 -0
  348. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tools/ls.py +0 -0
  349. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tools/remove_skill.py +0 -0
  350. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tools/thinking.py +0 -0
  351. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tools/undo_change.py +0 -0
  352. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tools/update_todo_list.py +0 -0
  353. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tools/utils/base_tool.py +0 -0
  354. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tools/utils/output.py +0 -0
  355. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tui/__init__.py +0 -0
  356. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tui/io.py +0 -0
  357. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tui/styles.tcss +0 -0
  358. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tui/widgets/__init__.py +0 -0
  359. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tui/widgets/completion_bar.py +0 -0
  360. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tui/widgets/file_list.py +0 -0
  361. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tui/widgets/footer.py +0 -0
  362. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tui/widgets/input_area.py +0 -0
  363. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tui/widgets/input_container.py +0 -0
  364. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tui/widgets/key_hints.py +0 -0
  365. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tui/widgets/output.py +0 -0
  366. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tui/widgets/status_bar.py +0 -0
  367. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/tui/worker.py +0 -0
  368. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/urls.py +0 -0
  369. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/utils.py +0 -0
  370. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/versioncheck.py +0 -0
  371. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/voice.py +0 -0
  372. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/waiting.py +0 -0
  373. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/watch_prompts.py +0 -0
  374. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/Gemfile +0 -0
  375. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/_includes/blame.md +0 -0
  376. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/_includes/get-started.md +0 -0
  377. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/_includes/help-tip.md +0 -0
  378. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/_includes/help.md +0 -0
  379. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/_includes/install.md +0 -0
  380. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/_includes/keys.md +0 -0
  381. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/_includes/model-warnings.md +0 -0
  382. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/_includes/multi-line.md +0 -0
  383. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/_includes/python-m-aider.md +0 -0
  384. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/_includes/recording.css +0 -0
  385. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/_includes/recording.md +0 -0
  386. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/_includes/works-best.md +0 -0
  387. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/_sass/_features.scss +0 -0
  388. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/_sass/_footer.scss +0 -0
  389. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/_sass/_hero.scss +0 -0
  390. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/_sass/_info.scss +0 -0
  391. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/_sass/_layout.scss +0 -0
  392. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/_sass/_reset.scss +0 -0
  393. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/_sass/_testimonials.scss +0 -0
  394. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/_sass/_typography.scss +0 -0
  395. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/_sass/_variables.scss +0 -0
  396. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/_sass/custom/custom.scss +0 -0
  397. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/_sass/global-overrides.scss +0 -0
  398. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/config/adv-model-settings.md +0 -0
  399. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/config/aider_conf.md +0 -0
  400. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/config/api-keys.md +0 -0
  401. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/config/custom-commands.md +0 -0
  402. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  403. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/config/dotenv.md +0 -0
  404. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/config/editor.md +0 -0
  405. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/config/hooks.md +0 -0
  406. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/config/mcp.md +0 -0
  407. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/config/options.md +0 -0
  408. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/config/reasoning.md +0 -0
  409. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/config/security.md +0 -0
  410. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/config/skills.md +0 -0
  411. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/config/tui.md +0 -0
  412. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/config/workspaces.md +0 -0
  413. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/config.md +0 -0
  414. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/faq.md +0 -0
  415. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/git.md +0 -0
  416. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/index.md +0 -0
  417. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/install/docker.md +0 -0
  418. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/install/optional.md +0 -0
  419. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/install.md +0 -0
  420. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/languages.md +0 -0
  421. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  422. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/legal/privacy.md +0 -0
  423. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/llms/anthropic.md +0 -0
  424. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/llms/azure.md +0 -0
  425. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/llms/bedrock.md +0 -0
  426. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/llms/cohere.md +0 -0
  427. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/llms/deepseek.md +0 -0
  428. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/llms/gemini.md +0 -0
  429. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/llms/github.md +0 -0
  430. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/llms/groq.md +0 -0
  431. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/llms/lm-studio.md +0 -0
  432. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/llms/ollama.md +0 -0
  433. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/llms/openai-compat.md +0 -0
  434. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/llms/openai.md +0 -0
  435. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/llms/openrouter.md +0 -0
  436. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/llms/other.md +0 -0
  437. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/llms/vertex.md +0 -0
  438. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/llms/warnings.md +0 -0
  439. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/llms/xai.md +0 -0
  440. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/llms.md +0 -0
  441. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/more/analytics.md +0 -0
  442. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/more/edit-formats.md +0 -0
  443. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/more/infinite-output.md +0 -0
  444. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/more-info.md +0 -0
  445. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/repomap.md +0 -0
  446. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/scripting.md +0 -0
  447. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
  448. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  449. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/troubleshooting/imports.md +0 -0
  450. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  451. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/troubleshooting/support.md +0 -0
  452. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  453. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  454. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/troubleshooting.md +0 -0
  455. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/usage/commands.md +0 -0
  456. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/usage/conventions.md +0 -0
  457. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/usage/copypaste.md +0 -0
  458. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/usage/images-urls.md +0 -0
  459. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/usage/lint-test.md +0 -0
  460. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/usage/modes.md +0 -0
  461. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/usage/not-code.md +0 -0
  462. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/usage/notifications.md +0 -0
  463. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/usage/sessions.md +0 -0
  464. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/usage/tips.md +0 -0
  465. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/usage/voice.md +0 -0
  466. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/usage/watch.md +0 -0
  467. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/docs/usage.md +0 -0
  468. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli/website/share/index.md +0 -0
  469. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli_dev.egg-info/dependency_links.txt +0 -0
  470. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli_dev.egg-info/entry_points.txt +0 -0
  471. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli_dev.egg-info/requires.txt +0 -0
  472. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/cecli_dev.egg-info/top_level.txt +0 -0
  473. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/docker/Dockerfile +0 -0
  474. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  475. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/pyproject.toml +0 -0
  476. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/pytest.ini +0 -0
  477. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/requirements/common-constraints.txt +0 -0
  478. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/requirements/requirements-dev.in +0 -0
  479. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/requirements/requirements-dev.txt +0 -0
  480. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/requirements/requirements-help.in +0 -0
  481. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/requirements/requirements-help.txt +0 -0
  482. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/requirements/requirements-playwright.in +0 -0
  483. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/requirements/requirements-playwright.txt +0 -0
  484. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/requirements/requirements.in +0 -0
  485. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/requirements/tree-sitter.in +0 -0
  486. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/requirements.txt +0 -0
  487. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/30k-image.py +0 -0
  488. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/Dockerfile.jekyll +0 -0
  489. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/__init__.py +0 -0
  490. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/blame.py +0 -0
  491. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/clean_metadata.py +0 -0
  492. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/cost_analyzer.py +0 -0
  493. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/dl_icons.py +0 -0
  494. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/filter-chat-mode.js +0 -0
  495. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/generate_providers.py +0 -0
  496. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/get_contributor_list.js +0 -0
  497. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/get_hashline.py +0 -0
  498. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/history_prompts.py +0 -0
  499. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/homepage.py +0 -0
  500. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/issues.py +0 -0
  501. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/jekyll_build.sh +0 -0
  502. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/jekyll_run.sh +0 -0
  503. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/logo_svg.py +0 -0
  504. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/pip-compile.sh +0 -0
  505. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/recording_audio.py +0 -0
  506. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/redact-cast.py +0 -0
  507. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/rename_to_cecli.py +0 -0
  508. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/tmux_record.sh +0 -0
  509. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/tsl_pack_langs.py +0 -0
  510. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/update-blame.sh +0 -0
  511. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/update-docs.sh +0 -0
  512. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/update-history.py +0 -0
  513. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/versionbump.py +0 -0
  514. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/scripts/yank-old-versions.py +0 -0
  515. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/setup.cfg +0 -0
  516. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/shim.pyproject.toml +0 -0
  517. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/__init__.py +0 -0
  518. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/__init__.py +0 -0
  519. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_aws_credentials.py +0 -0
  520. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_background_commands.py +0 -0
  521. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_coder.py +0 -0
  522. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_commands.py +0 -0
  523. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_custom_commands.py +0 -0
  524. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_deprecated.py +0 -0
  525. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_editblock.py +0 -0
  526. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_editor.py +0 -0
  527. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_exceptions.py +0 -0
  528. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_find_or_blocks.py +0 -0
  529. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_hashline.py +0 -0
  530. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_history.py +0 -0
  531. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_io.py +0 -0
  532. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_linter.py +0 -0
  533. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_model_info_manager.py +0 -0
  534. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_model_provider_manager.py +0 -0
  535. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_onboarding.py +0 -0
  536. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_plugin_manager.py +0 -0
  537. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_prompts.py +0 -0
  538. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_reasoning.py +0 -0
  539. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_repo.py +0 -0
  540. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_repomap.py +0 -0
  541. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_run_cmd.py +0 -0
  542. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_sanity_check_repo.py +0 -0
  543. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_scripting.py +0 -0
  544. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_sendchat.py +0 -0
  545. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_skills.py +0 -0
  546. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_special.py +0 -0
  547. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_ssl_verification.py +0 -0
  548. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_udiff.py +0 -0
  549. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_urls.py +0 -0
  550. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_voice.py +0 -0
  551. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_watch.py +0 -0
  552. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/basic/test_wholefile.py +0 -0
  553. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/coders/test_copypaste_coder.py +0 -0
  554. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/conftest.py +0 -0
  555. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/conversations/test_conversation_integration.py +0 -0
  556. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/conversations/test_conversation_system.py +0 -0
  557. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  558. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/chat-history.md +0 -0
  559. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/arduino/test.ino +0 -0
  560. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/c/test.c +0 -0
  561. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/chatito/test.chatito +0 -0
  562. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/clojure/test.clj +0 -0
  563. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  564. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/cpp/test.cpp +0 -0
  565. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/csharp/test.cs +0 -0
  566. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/d/test.d +0 -0
  567. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/dart/test.dart +0 -0
  568. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/elisp/test.el +0 -0
  569. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/elixir/test.ex +0 -0
  570. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/elm/test.elm +0 -0
  571. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/gleam/test.gleam +0 -0
  572. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/go/test.go +0 -0
  573. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/haskell/test.hs +0 -0
  574. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/hcl/test.tf +0 -0
  575. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/java/test.java +0 -0
  576. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/javascript/test.js +0 -0
  577. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/kotlin/test.kt +0 -0
  578. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/lua/test.lua +0 -0
  579. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/matlab/test.m +0 -0
  580. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/ocaml/test.ml +0 -0
  581. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  582. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/php/test.php +0 -0
  583. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/pony/test.pony +0 -0
  584. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/properties/test.properties +0 -0
  585. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/python/test.py +0 -0
  586. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/ql/test.ql +0 -0
  587. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/r/test.r +0 -0
  588. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/racket/test.rkt +0 -0
  589. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/ruby/test.rb +0 -0
  590. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/rust/test.rs +0 -0
  591. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/scala/test.scala +0 -0
  592. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/solidity/test.sol +0 -0
  593. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/swift/test.swift +0 -0
  594. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/tsx/test.tsx +0 -0
  595. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/typescript/test.ts +0 -0
  596. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/udev/test.rules +0 -0
  597. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/languages/zig/test.zig +0 -0
  598. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/sample-code-base/sample.js +0 -0
  599. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/sample-code-base/sample.py +0 -0
  600. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  601. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/watch.js +0 -0
  602. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/watch.lisp +0 -0
  603. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/watch.py +0 -0
  604. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/fixtures/watch_question.js +0 -0
  605. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/help/test_help.py +0 -0
  606. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/helpers/monorepo/test_config.py +0 -0
  607. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/helpers/monorepo/test_config_active.py +0 -0
  608. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
  609. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
  610. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/helpers/monorepo/test_workspace.py +0 -0
  611. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/helpers/observations/test_observation_manager.py +0 -0
  612. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/hooks/__init__.py +0 -0
  613. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/hooks/test_base.py +0 -0
  614. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/hooks/test_manager.py +0 -0
  615. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/hooks/test_registry.py +0 -0
  616. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/mcp/__init__.py +0 -0
  617. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/mcp/test_manager.py +0 -0
  618. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/scrape/test_playwright_disable.py +0 -0
  619. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/scrape/test_scrape.py +0 -0
  620. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/tools/test_git_branch.py +0 -0
  621. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/tools/test_git_diff.py +0 -0
  622. {cecli_dev-0.99.7 → cecli_dev-0.99.9}/tests/tools/test_grep.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cecli-dev
3
- Version: 0.99.7
3
+ Version: 0.99.9
4
4
  Summary: we also can't pronounce cecli
5
5
  Project-URL: Homepage, https://github.com/dwash96/cecli
6
6
  Project-URL: Documentation, https://github.com/dwash96/cecli
@@ -1,6 +1,6 @@
1
1
  from packaging import version
2
2
 
3
- __version__ = "0.99.7.dev"
3
+ __version__ = "0.99.9.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.7'
22
- __version_tuple__ = version_tuple = (0, 99, 7)
21
+ __version__ = version = '0.99.9'
22
+ __version_tuple__ = version_tuple = (0, 99, 9)
23
23
 
24
- __commit_id__ = commit_id = 'gf217080c8'
24
+ __commit_id__ = commit_id = 'g7edfde9ea'
@@ -21,7 +21,7 @@ class ChangeTracker:
21
21
 
22
22
  Parameters:
23
23
  - file_path: Path to the file that was changed
24
- - change_type: Type of change (e.g., 'replacetext', 'insertlines')
24
+ - change_type: Type of change (e.g., 'edittext', 'insertlines')
25
25
  - original_content: Original content before the change
26
26
  - new_content: New content after the change
27
27
  - metadata: Additional information about the change (line numbers, positions, etc.)
@@ -55,15 +55,15 @@ class AgentCoder(Coder):
55
55
  "commandinteractive",
56
56
  "explorecode",
57
57
  "ls",
58
+ "getlines",
58
59
  "grep",
59
- "showcontext",
60
60
  "thinking",
61
61
  "updatetodolist",
62
62
  }
63
63
  self.write_tools = {
64
- "deletetext",
65
- "inserttext",
66
- "replacetext",
64
+ "command",
65
+ "commandinteractive",
66
+ "edittext",
67
67
  "undochange",
68
68
  }
69
69
  self.edit_allowed = False
@@ -618,9 +618,7 @@ class AgentCoder(Coder):
618
618
  total_file_tokens += tokens
619
619
  editable_tokens += tokens
620
620
  size_indicator = (
621
- "🔴 Large"
622
- if tokens > 5000
623
- else "🟡 Medium" if tokens > 1000 else "🟢 Small"
621
+ "Large" if tokens > 5000 else "Medium" if tokens > 1000 else "Small"
624
622
  )
625
623
  editable_files.append(
626
624
  f"- {rel_fname}: {tokens:,} tokens ({size_indicator})"
@@ -642,9 +640,7 @@ class AgentCoder(Coder):
642
640
  total_file_tokens += tokens
643
641
  readonly_tokens += tokens
644
642
  size_indicator = (
645
- "🔴 Large"
646
- if tokens > 5000
647
- else "🟡 Medium" if tokens > 1000 else "🟢 Small"
643
+ "Large" if tokens > 5000 else "Medium" if tokens > 1000 else "Small"
648
644
  )
649
645
  readonly_files.append(
650
646
  f"- {rel_fname}: {tokens:,} tokens ({size_indicator})"
@@ -999,7 +995,7 @@ I will proceed based on the tool results and updated context.""")
999
995
  context_parts.append("\n\n")
1000
996
  context_parts.append("## File Editing Tools Disabled")
1001
997
  context_parts.append(
1002
- "File editing tools are currently disabled.Use `ShowContext` to determine the"
998
+ "File editing tools are currently disabled.Use `GetLines` to determine the"
1003
999
  " current hashline prefixes needed to perform an edit and activate them when you"
1004
1000
  " are ready to edit a file."
1005
1001
  )
@@ -2178,6 +2178,8 @@ class Coder:
2178
2178
  # Notify IO that LLM processing is starting
2179
2179
  self.io.llm_started()
2180
2180
 
2181
+ ConversationService.get_manager(self).flush_queue()
2182
+
2181
2183
  if inp:
2182
2184
  # Make sure current coder actually has control of conversation system
2183
2185
  ConversationService.get_chunks(self).initialize_conversation_system()
@@ -3723,7 +3725,7 @@ class Coder:
3723
3725
  self.check_for_dirty_commit(path)
3724
3726
  return True
3725
3727
 
3726
- if self.repo and self.repo.git_ignored_file(path):
3728
+ if self.repo and self.repo.git_ignored_file(path) and not self.add_gitignore_files:
3727
3729
  self.io.tool_warning(f"Skipping edits to {path} that matches gitignore spec.")
3728
3730
  return
3729
3731
 
@@ -3742,7 +3744,8 @@ class Coder:
3742
3744
  # actually already part of the repo.
3743
3745
  # But let's only add if we need to, just to be safe.
3744
3746
  if need_to_add:
3745
- self.repo.repo.git.add(full_path)
3747
+ if not (self.add_gitignore_files and self.repo.git_ignored_file(path)):
3748
+ self.repo.repo.git.add(full_path)
3746
3749
 
3747
3750
  self.abs_fnames.add(full_path)
3748
3751
  self.check_added_files()
@@ -3756,7 +3759,8 @@ class Coder:
3756
3759
  return
3757
3760
 
3758
3761
  if need_to_add:
3759
- self.repo.repo.git.add(full_path)
3762
+ if not (self.add_gitignore_files and self.repo.git_ignored_file(path)):
3763
+ self.repo.repo.git.add(full_path)
3760
3764
 
3761
3765
  self.abs_fnames.add(full_path)
3762
3766
  self.check_added_files()
@@ -4003,7 +4007,10 @@ class Coder:
4003
4007
  return edits
4004
4008
 
4005
4009
  def local_agent_folder(self, path):
4006
- os.makedirs(f".cecli/agents/{GLOBAL_DATE}/{self.uuid}", exist_ok=True)
4010
+ os.makedirs(
4011
+ self.abs_root_path(f".cecli/agents/{GLOBAL_DATE}/{self.uuid}"),
4012
+ exist_ok=True,
4013
+ )
4007
4014
 
4008
4015
  stripped = path.lstrip("/")
4009
4016
  return f".cecli/agents/{GLOBAL_DATE}/{self.uuid}/{stripped}"
@@ -18,7 +18,7 @@ class LoadSessionCommand(BaseCommand):
18
18
  from cecli import sessions
19
19
 
20
20
  session_manager = sessions.SessionManager(coder, io)
21
- session_manager.load_session(args.strip())
21
+ await session_manager.load_session(args.strip())
22
22
 
23
23
  return format_command_result(io, "load-session", f"Loaded session: {args.strip()}")
24
24
 
@@ -446,7 +446,7 @@ class ConversationChunks:
446
446
  dict(role="user", content=repo_content),
447
447
  dict(
448
448
  role="assistant",
449
- content="Ok, I won't try and edit those files without asking first.",
449
+ content="Thank you, these files will help with navigating the codebase.",
450
450
  ),
451
451
  ]
452
452
 
@@ -781,14 +781,14 @@ class ConversationChunks:
781
781
  }
782
782
 
783
783
  # Add to conversation manager
784
- ConversationService.get_manager(coder).add_message(
784
+ ConversationService.get_manager(coder).queue_message(
785
785
  message_dict=user_msg,
786
786
  tag=MessageTag.FILE_CONTEXTS,
787
787
  hash_key=("file_context_user", file_path),
788
788
  force=True,
789
789
  )
790
790
 
791
- ConversationService.get_manager(coder).add_message(
791
+ ConversationService.get_manager(coder).queue_message(
792
792
  message_dict=assistant_msg,
793
793
  tag=MessageTag.FILE_CONTEXTS,
794
794
  hash_key=("file_context_assistant", file_path),
@@ -25,6 +25,7 @@ class ConversationManager:
25
25
  self._tag_cache: Dict[str, List[Dict[str, Any]]] = {}
26
26
  self._ALL_MESSAGES_CACHE_KEY = "__all__"
27
27
  self.DEFAULT_TAG_PROMOTION_VALUE: int = 999
28
+ self._queue: List[Dict[str, Any]] = []
28
29
 
29
30
  @classmethod
30
31
  def get_instance(cls, coder) -> "ConversationManager":
@@ -193,6 +194,33 @@ class ConversationManager:
193
194
  self._tag_cache.pop(self._ALL_MESSAGES_CACHE_KEY, None)
194
195
  return message
195
196
 
197
+ def queue_message(self, **kwargs) -> None:
198
+ """
199
+ Queue an add_message() call for later insertion.
200
+
201
+ Accepts the same keyword arguments as add_message()
202
+ and stores them in an internal queue to be flushed
203
+ later via flush_queue().
204
+ """
205
+ self._queue.append(kwargs)
206
+
207
+ def flush_queue(self) -> List[Any]:
208
+ """
209
+ Flush all queued add_message() calls.
210
+
211
+ Calls add_message() for each set of kwargs in the
212
+ internal queue, then clears the queue.
213
+
214
+ Returns:
215
+ List of BaseMessage instances returned by add_message()
216
+ """
217
+ results = []
218
+ while self._queue:
219
+ kwargs = self._queue.pop(0)
220
+ result = self.add_message(**kwargs)
221
+ results.append(result)
222
+ return results
223
+
196
224
  def base_sort(self, messages: List[BaseMessage]) -> List[BaseMessage]:
197
225
  """
198
226
  Sorts messages by effective priority (promotion if mark_for_demotion has not elapsed yet), then timestamp.
@@ -361,64 +361,12 @@ def register_litellm_models(git_root, model_metadata_fname, io, verbose=False):
361
361
 
362
362
  def load_model_overrides(git_root, model_overrides_fname, io, verbose=False):
363
363
  """Load model tag overrides from a YAML file."""
364
- from pathlib import Path
365
-
366
- import yaml
367
-
368
- model_overrides_files = generate_search_path_list(
369
- ".cecli.model.overrides.yml", git_root, model_overrides_fname
370
- )
371
- overrides = {}
372
- files_loaded = []
373
- for fname in model_overrides_files:
374
- try:
375
- if Path(fname).exists():
376
- with open(fname, "r") as f:
377
- content = yaml.safe_load(f)
378
- if content:
379
- for model_name, tags in content.items():
380
- if model_name not in overrides:
381
- overrides[model_name] = {}
382
- overrides[model_name].update(tags)
383
- files_loaded.append(fname)
384
- except Exception as e:
385
- io.tool_error(f"Error loading model overrides from {fname}: {e}")
386
- if len(files_loaded) > 0 and verbose:
387
- io.tool_output("Loaded model overrides from:")
388
- for file_loaded in files_loaded:
389
- io.tool_output(f" - {file_loaded}")
390
- if (
391
- model_overrides_fname
392
- and model_overrides_fname not in files_loaded
393
- and model_overrides_fname != ".cecli.model.overrides.yml"
394
- ):
395
- io.tool_warning(f"Model Overrides File Not Found: {model_overrides_fname}")
396
- return overrides
364
+ models.ModelOverrides.load_from_file(git_root, model_overrides_fname, io, verbose=verbose)
397
365
 
398
366
 
399
367
  def load_model_overrides_from_string(model_overrides_str, io):
400
368
  """Load model tag overrides from a JSON/YAML string."""
401
- import json
402
-
403
- import yaml
404
-
405
- overrides = {}
406
- if not model_overrides_str:
407
- return overrides
408
- try:
409
- try:
410
- content = json.loads(model_overrides_str)
411
- except json.JSONDecodeError:
412
- content = yaml.safe_load(model_overrides_str)
413
- if content and isinstance(content, dict):
414
- for model_name, tags in content.items():
415
- if model_name not in overrides:
416
- overrides[model_name] = {}
417
- overrides[model_name].update(tags)
418
- return overrides
419
- except Exception as e:
420
- io.tool_error(f"Error parsing model overrides string: {e}")
421
- return {}
369
+ models.ModelOverrides.load_from_string(model_overrides_str, io)
422
370
 
423
371
 
424
372
  async def sanity_check_repo(repo, io):
@@ -847,105 +795,52 @@ async def main_async(argv=None, input=None, output=None, force_git_root=None, re
847
795
  if not selected_model_name:
848
796
  return await graceful_exit(None, 1)
849
797
  args.model = selected_model_name
850
- model_overrides = {}
798
+
799
+ # Load model tag overrides (stored in ModelOverrides class-level state)
851
800
  if args.model_overrides_file:
852
- model_overrides = load_model_overrides(
801
+ models.ModelOverrides.load_from_file(
853
802
  git_root, args.model_overrides_file, io, verbose=args.verbose
854
803
  )
804
+
855
805
  if args.model_overrides:
856
- direct_overrides = load_model_overrides_from_string(args.model_overrides, io)
857
- for model_name, tags in direct_overrides.items():
858
- if model_name not in model_overrides:
859
- model_overrides[model_name] = {}
860
- model_overrides[model_name].update(tags)
861
- override_index = {}
862
- for base_model, suffixes in model_overrides.items():
863
- if not isinstance(suffixes, dict):
864
- continue
865
- for suffix, cfg in suffixes.items():
866
- if not isinstance(cfg, dict):
867
- continue
868
- full_name = f"{base_model}:{suffix}"
869
- override_index[full_name] = base_model, cfg
870
-
871
- def apply_model_overrides(model_name):
872
- """Return (effective_model_name, override_kwargs) for a given model_name.
873
-
874
- If model_name ends with ":suffix" where suffix is configured for the
875
- prefix (everything before the last colon), we switch to the prefix model
876
- and apply that override dict. Otherwise we leave the name unchanged
877
- and return empty overrides.
878
- """
879
- if not model_name:
880
- return model_name, {}
881
- prefix = ""
882
- if model_name.startswith(models.COPY_PASTE_PREFIX):
883
- prefix = models.COPY_PASTE_PREFIX
884
- model_name = model_name[len(prefix) :]
885
-
886
- # Try to find a matching override by checking all possible suffix matches.
887
- # We iterate from right to left splitting on colons to handle cases where
888
- # the base model name itself contains colons (e.g. "provider/model:tag:alias")
889
- parts = model_name.split(":")
890
- # We need at least one split to have a base and a suffix
891
- for i in range(len(parts) - 1, 0, -1):
892
- potential_base = ":".join(parts[:i])
893
- potential_suffix = ":".join(parts[i:])
894
-
895
- # Check if this base has the suffix configured
896
- if potential_base in model_overrides:
897
- suffixes = model_overrides[potential_base]
898
- if isinstance(suffixes, dict) and potential_suffix in suffixes:
899
- cfg = suffixes[potential_suffix]
900
- if isinstance(cfg, dict):
901
- model_name = prefix + potential_base
902
- return model_name, cfg.copy()
903
-
904
- # No match found
905
- model_name = prefix + model_name
906
- return model_name, {}
907
-
908
- main_model_name, main_model_overrides = apply_model_overrides(args.model)
909
- weak_model_name, weak_model_overrides = apply_model_overrides(args.weak_model)
910
- editor_model_name, editor_model_overrides = apply_model_overrides(args.editor_model)
911
- agent_model_name, agent_model_overrides = apply_model_overrides(args.agent_model)
806
+ models.ModelOverrides.load_from_string(args.model_overrides, io)
807
+
912
808
  weak_model_obj = None
913
- if weak_model_name:
809
+ if args.weak_model:
914
810
  weak_model_obj = models.Model(
915
- weak_model_name,
811
+ args.weak_model,
916
812
  weak_model=False,
917
813
  verbose=args.verbose,
918
814
  io=io,
919
- override_kwargs=weak_model_overrides,
920
815
  retries=args.retries,
921
816
  debug=args.debug,
922
817
  )
818
+
923
819
  editor_model_obj = None
924
- if editor_model_name:
820
+ if args.editor_model:
925
821
  editor_model_obj = models.Model(
926
- editor_model_name,
822
+ args.editor_model,
927
823
  editor_model=False,
928
824
  verbose=args.verbose,
929
825
  io=io,
930
- override_kwargs=editor_model_overrides,
931
826
  retries=args.retries,
932
827
  debug=args.debug,
933
828
  )
829
+
934
830
  agent_model_obj = None
935
- if agent_model_name:
831
+ if args.agent_model:
936
832
  agent_model_obj = models.Model(
937
- agent_model_name,
833
+ args.agent_model,
938
834
  agent_model=False,
939
835
  verbose=args.verbose,
940
836
  io=io,
941
- override_kwargs=agent_model_overrides,
942
837
  retries=args.retries,
943
838
  debug=args.debug,
944
839
  )
945
840
 
946
- if main_model_name.startswith("openrouter/") and not os.environ.get("OPENROUTER_API_KEY"):
841
+ if args.model.startswith("openrouter/") and not os.environ.get("OPENROUTER_API_KEY"):
947
842
  io.tool_warning(
948
- f"The specified model '{main_model_name}' requires an OpenRouter API key, which was not"
843
+ f"The specified model '{args.model}' requires an OpenRouter API key, which was not"
949
844
  " found."
950
845
  )
951
846
  if await offer_openrouter_oauth(io):
@@ -958,24 +853,25 @@ async def main_async(argv=None, input=None, output=None, force_git_root=None, re
958
853
  return await graceful_exit(None, 1)
959
854
  else:
960
855
  io.tool_error(
961
- f"Unable to proceed without an OpenRouter API key for model '{main_model_name}'."
856
+ f"Unable to proceed without an OpenRouter API key for model '{args.model}'."
962
857
  )
963
858
  await io.offer_url(
964
859
  urls.models_and_keys, "Open documentation URL for more info?", acknowledge=True
965
860
  )
966
861
  return await graceful_exit(None, 1)
862
+
967
863
  main_model = models.Model(
968
- main_model_name,
864
+ args.model,
969
865
  weak_model=weak_model_obj,
970
866
  editor_model=editor_model_obj,
971
867
  agent_model=agent_model_obj,
972
868
  editor_edit_format=args.editor_edit_format,
973
869
  verbose=args.verbose,
974
870
  io=io,
975
- override_kwargs=main_model_overrides,
976
871
  retries=args.retries,
977
872
  debug=args.debug,
978
873
  )
874
+
979
875
  if args.copy_paste and main_model.copy_paste_transport == "api":
980
876
  main_model.enable_copy_paste_mode()
981
877
  if main_model.remove_reasoning is not None:
@@ -1302,7 +1198,7 @@ async def main_async(argv=None, input=None, output=None, force_git_root=None, re
1302
1198
  from cecli.sessions import SessionManager
1303
1199
 
1304
1200
  session_manager = SessionManager(coder, io)
1305
- session_manager.load_session(
1201
+ await session_manager.load_session(
1306
1202
  args.auto_save_session_name if args.auto_save_session_name else "auto-save"
1307
1203
  )
1308
1204
  except Exception: