cecli-dev 0.100.11rc6__tar.gz → 0.100.12rc2__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 (691) hide show
  1. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/PKG-INFO +1 -1
  2. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/_version.py +3 -3
  3. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/args.py +1 -1
  4. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/change_tracker.py +1 -1
  5. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/agent_coder.py +3 -3
  6. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/add.py +3 -2
  7. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/read_only.py +3 -2
  8. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/read_only_stub.py +3 -2
  9. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/agents/service.py +6 -1
  10. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/conversation/files.py +9 -3
  11. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/conversation/integration.py +4 -4
  12. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/hashline.py +58 -2
  13. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/responses.py +1 -1
  14. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/skills.py +5 -0
  15. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/io.py +45 -15
  16. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/main.py +1 -0
  17. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/agent.yml +1 -1
  18. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/subagent.yml +1 -1
  19. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/sendchat.py +1 -1
  20. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/__init__.py +4 -4
  21. cecli_dev-0.100.11rc6/cecli/tools/edit_text.py → cecli_dev-0.100.12rc2/cecli/tools/edit_file.py +19 -21
  22. cecli_dev-0.100.12rc2/cecli/tools/grep.py +589 -0
  23. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/ls.py +5 -3
  24. cecli_dev-0.100.11rc6/cecli/tools/read_range.py → cecli_dev-0.100.12rc2/cecli/tools/read_file.py +17 -13
  25. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/utils/helpers.py +2 -2
  26. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/utils/registry.py +1 -1
  27. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tui/__init__.py +1 -0
  28. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/config/agent-mode.md +5 -5
  29. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli_dev.egg-info/PKG-INFO +1 -1
  30. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli_dev.egg-info/SOURCES.txt +3 -2
  31. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli_dev.egg-info/scm_file_list.json +3 -2
  32. cecli_dev-0.100.12rc2/cecli_dev.egg-info/scm_version.json +8 -0
  33. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_skills.py +6 -2
  34. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/coders/test_coder_switching.py +1 -1
  35. cecli_dev-0.100.12rc2/tests/test_requests.py +765 -0
  36. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/tools/test_extractions.py +11 -11
  37. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/tools/test_get_lines.py +10 -10
  38. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/tools/test_grep.py +9 -2
  39. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/tools/test_insert_block.py +10 -10
  40. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/tools/test_read_range_execute.py +17 -17
  41. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/tools/test_registry.py +14 -14
  42. cecli_dev-0.100.11rc6/cecli/tools/grep.py +0 -280
  43. cecli_dev-0.100.11rc6/cecli_dev.egg-info/scm_version.json +0 -8
  44. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/.dockerignore +0 -0
  45. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/.flake8 +0 -0
  46. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/.gitattributes +0 -0
  47. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  48. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/.github/workflows/check_pypi_version.yml +0 -0
  49. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/.github/workflows/docker-build-test.yml +0 -0
  50. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/.github/workflows/docker-release.yml +0 -0
  51. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/.github/workflows/issues.yml +0 -0
  52. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/.github/workflows/pages.yml +0 -0
  53. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/.github/workflows/pre-commit.yml +0 -0
  54. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/.github/workflows/release.yml +0 -0
  55. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/.github/workflows/ubuntu-tests.yml +0 -0
  56. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/.github/workflows/windows-tests.yml +0 -0
  57. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/.github/workflows/windows_check_pypi_version.yml +0 -0
  58. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/.gitignore +0 -0
  59. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/.pre-commit-config.yaml +0 -0
  60. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/CHANGELOG.md +0 -0
  61. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/CNAME +0 -0
  62. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/CONTRIBUTING.md +0 -0
  63. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/HISTORY.md +0 -0
  64. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/LICENSE.txt +0 -0
  65. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/MANIFEST.in +0 -0
  66. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/README.md +0 -0
  67. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/Dockerfile +0 -0
  68. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/README.md +0 -0
  69. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/__init__.py +0 -0
  70. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/benchmark.py +0 -0
  71. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/benchmark_classic.py +0 -0
  72. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/clone-exercism.sh +0 -0
  73. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/cpp-test.sh +0 -0
  74. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/docker.sh +0 -0
  75. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/docker_build.sh +0 -0
  76. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/install-docker-ubuntu.sh +0 -0
  77. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/npm-test.sh +0 -0
  78. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/over_time.py +0 -0
  79. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/plot.sh +0 -0
  80. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/plots.py +0 -0
  81. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/problem_stats.py +0 -0
  82. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/prompts.py +0 -0
  83. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/refactor_tools.py +0 -0
  84. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/rsync.sh +0 -0
  85. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/rungrid.py +0 -0
  86. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/swe-bench-lite.txt +0 -0
  87. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/swe-bench.txt +0 -0
  88. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/swe_bench.py +0 -0
  89. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/test_benchmark.py +0 -0
  90. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/variations.1.sh +0 -0
  91. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/variations.2.sh +0 -0
  92. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/variations.3.sh +0 -0
  93. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/benchmark/variations.4.sh +0 -0
  94. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/__init__.py +0 -0
  95. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/__main__.py +0 -0
  96. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/args_formatter.py +0 -0
  97. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/__init__.py +0 -0
  98. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/architect_coder.py +0 -0
  99. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/ask_coder.py +0 -0
  100. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/base_coder.py +0 -0
  101. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/chat_chunks.py +0 -0
  102. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/context_coder.py +0 -0
  103. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/copypaste_coder.py +0 -0
  104. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/editblock_coder.py +0 -0
  105. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/editblock_fenced_coder.py +0 -0
  106. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/editblock_func_coder.py +0 -0
  107. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  108. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/editor_editblock_coder.py +0 -0
  109. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/editor_whole_coder.py +0 -0
  110. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/hashline_coder.py +0 -0
  111. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/help_coder.py +0 -0
  112. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/patch_coder.py +0 -0
  113. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/search_replace.py +0 -0
  114. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/shell.py +0 -0
  115. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/single_wholefile_func_coder.py +0 -0
  116. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/sub_agent_coder.py +0 -0
  117. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/udiff_coder.py +0 -0
  118. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/udiff_simple.py +0 -0
  119. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/wholefile_coder.py +0 -0
  120. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/coders/wholefile_func_coder.py +0 -0
  121. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/__init__.py +0 -0
  122. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/agent.py +0 -0
  123. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/agent_model.py +0 -0
  124. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/architect.py +0 -0
  125. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/ask.py +0 -0
  126. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/chat_mode.py +0 -0
  127. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/clear.py +0 -0
  128. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/code.py +0 -0
  129. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/command_prefix.py +0 -0
  130. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/commit.py +0 -0
  131. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/compact.py +0 -0
  132. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/context.py +0 -0
  133. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/context_blocks.py +0 -0
  134. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/context_management.py +0 -0
  135. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/copy.py +0 -0
  136. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/copy_context.py +0 -0
  137. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/core.py +0 -0
  138. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/diff.py +0 -0
  139. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/drop.py +0 -0
  140. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/editor.py +0 -0
  141. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/editor_model.py +0 -0
  142. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/exclude_skill.py +0 -0
  143. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/exit.py +0 -0
  144. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/git.py +0 -0
  145. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/hashline.py +0 -0
  146. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/help.py +0 -0
  147. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/history_search.py +0 -0
  148. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/hooks.py +0 -0
  149. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/hot_reload.py +0 -0
  150. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/include_skill.py +0 -0
  151. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/lint.py +0 -0
  152. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/list_mcp.py +0 -0
  153. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/list_sessions.py +0 -0
  154. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/list_skills.py +0 -0
  155. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/load.py +0 -0
  156. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/load_hook.py +0 -0
  157. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/load_mcp.py +0 -0
  158. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/load_session.py +0 -0
  159. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/load_skill.py +0 -0
  160. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/ls.py +0 -0
  161. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/map.py +0 -0
  162. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/map_refresh.py +0 -0
  163. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/merge.py +0 -0
  164. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/model.py +0 -0
  165. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/models.py +0 -0
  166. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/multiline_mode.py +0 -0
  167. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/paste.py +0 -0
  168. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/quit.py +0 -0
  169. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/reap_agent.py +0 -0
  170. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/reasoning_effort.py +0 -0
  171. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/remove_hook.py +0 -0
  172. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/remove_mcp.py +0 -0
  173. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/remove_skill.py +0 -0
  174. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/report.py +0 -0
  175. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/reset.py +0 -0
  176. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/rules.py +0 -0
  177. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/run.py +0 -0
  178. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/save.py +0 -0
  179. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/save_session.py +0 -0
  180. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/settings.py +0 -0
  181. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/spawn_agent.py +0 -0
  182. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/switch_agent.py +0 -0
  183. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/terminal_data/linux.keytab +0 -0
  184. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/terminal_setup.py +0 -0
  185. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/test.py +0 -0
  186. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/think_tokens.py +0 -0
  187. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/tokens.py +0 -0
  188. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/undo.py +0 -0
  189. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/utils/__init__.py +0 -0
  190. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/utils/base_command.py +0 -0
  191. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/utils/helpers.py +0 -0
  192. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/utils/registry.py +0 -0
  193. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/utils/save_load_manager.py +0 -0
  194. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/voice.py +0 -0
  195. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/weak_model.py +0 -0
  196. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/web.py +0 -0
  197. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/commands/workspace.py +0 -0
  198. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/deprecated_args.py +0 -0
  199. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/diffs.py +0 -0
  200. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/dump.py +0 -0
  201. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/editor.py +0 -0
  202. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/exceptions.py +0 -0
  203. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/format_settings.py +0 -0
  204. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/help.py +0 -0
  205. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/help_pats.py +0 -0
  206. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/__init__.py +0 -0
  207. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/agents/__init__.py +0 -0
  208. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/agents/config.py +0 -0
  209. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/background_commands.py +0 -0
  210. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/command_parser.py +0 -0
  211. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/conversation/__init__.py +0 -0
  212. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/conversation/base_message.py +0 -0
  213. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/conversation/manager.py +0 -0
  214. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/conversation/service.py +0 -0
  215. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/conversation/tags.py +0 -0
  216. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/conversation/utils.py +0 -0
  217. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/copypaste.py +0 -0
  218. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/coroutines.py +0 -0
  219. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/crypto.py +0 -0
  220. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/file_searcher.py +0 -0
  221. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/file_system/__init__.py +0 -0
  222. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/file_system/builders.py +0 -0
  223. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/file_system/ignore.py +0 -0
  224. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/file_system/ngram_index.py +0 -0
  225. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/file_system/service.py +0 -0
  226. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/file_system/trie_index.py +0 -0
  227. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/grep_ast/__init__.py +0 -0
  228. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/grep_ast/dump.py +0 -0
  229. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/grep_ast/grep_ast.py +0 -0
  230. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/grep_ast/main.py +0 -0
  231. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/grep_ast/parsers.py +0 -0
  232. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/grep_ast/tsl.py +0 -0
  233. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/hashpos/__init__.py +0 -0
  234. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/hashpos/hashpos.py +0 -0
  235. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/hashpos/hashpos.v1.bak +0 -0
  236. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/io_proxy.py +0 -0
  237. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/leak_detect.py +0 -0
  238. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/model_providers.py +0 -0
  239. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/monorepo/__init__.py +0 -0
  240. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/monorepo/config.py +0 -0
  241. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/monorepo/local_workspace.py +0 -0
  242. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/monorepo/project.py +0 -0
  243. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/monorepo/workspace.py +0 -0
  244. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/monorepo/worktree.py +0 -0
  245. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/nested.py +0 -0
  246. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/observations/__init__.py +0 -0
  247. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/observations/service.py +0 -0
  248. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/plugin_manager.py +0 -0
  249. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/profiler.py +0 -0
  250. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/requests.py +0 -0
  251. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/similarity.py +0 -0
  252. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/helpers/threading.py +0 -0
  253. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/history.py +0 -0
  254. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/hooks/__init__.py +0 -0
  255. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/hooks/base.py +0 -0
  256. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/hooks/integration.py +0 -0
  257. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/hooks/manager.py +0 -0
  258. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/hooks/registry.py +0 -0
  259. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/hooks/service.py +0 -0
  260. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/hooks/types.py +0 -0
  261. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/interruptible_input.py +0 -0
  262. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/linter.py +0 -0
  263. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/llm.py +0 -0
  264. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/mcp/__init__.py +0 -0
  265. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/mcp/manager.py +0 -0
  266. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/mcp/oauth.py +0 -0
  267. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/mcp/server.py +0 -0
  268. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/mcp/utils.py +0 -0
  269. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/mdstream.py +0 -0
  270. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/models.py +0 -0
  271. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/onboarding.py +0 -0
  272. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/__init__.py +0 -0
  273. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/architect.yml +0 -0
  274. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/ask.yml +0 -0
  275. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/base.yml +0 -0
  276. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/context.yml +0 -0
  277. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/copypaste.yml +0 -0
  278. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/editblock.yml +0 -0
  279. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/editblock_fenced.yml +0 -0
  280. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/editblock_func.yml +0 -0
  281. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/editor_diff_fenced.yml +0 -0
  282. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/editor_editblock.yml +0 -0
  283. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/editor_whole.yml +0 -0
  284. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/hashline.yml +0 -0
  285. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/help.yml +0 -0
  286. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/patch.yml +0 -0
  287. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/single_wholefile_func.yml +0 -0
  288. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/udiff.yml +0 -0
  289. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/udiff_simple.yml +0 -0
  290. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/utils/__init__.py +0 -0
  291. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/utils/registry.py +0 -0
  292. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/utils/system.py +0 -0
  293. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/wholefile.yml +0 -0
  294. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/prompts/wholefile_func.yml +0 -0
  295. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  296. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  297. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
  298. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  299. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  300. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  301. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  302. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  303. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  304. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  305. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  306. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  307. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  308. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  309. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  310. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  311. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  312. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  313. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  314. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  315. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  316. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  317. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  318. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  319. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  320. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  321. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  322. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  323. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  324. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  325. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  326. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  327. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/README.md +0 -0
  328. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
  329. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  330. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  331. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  332. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  333. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  334. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  335. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  336. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  337. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  338. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  339. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  340. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  341. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  342. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  343. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  344. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  345. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  346. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  347. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  348. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  349. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  350. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  351. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  352. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  353. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  354. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  355. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/reasoning_tags.py +0 -0
  356. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/repo.py +0 -0
  357. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/repomap.py +0 -0
  358. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/report.py +0 -0
  359. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/resources/__init__.py +0 -0
  360. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/resources/model-metadata.json +0 -0
  361. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/resources/model-settings.yml +0 -0
  362. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/resources/providers.json +0 -0
  363. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/run_cmd.py +0 -0
  364. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/scrape.py +0 -0
  365. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/sessions.py +0 -0
  366. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/special.py +0 -0
  367. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/_yield.py +0 -0
  368. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/command.py +0 -0
  369. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/command_interactive.py +0 -0
  370. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/delegate.py +0 -0
  371. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/explore_code.py +0 -0
  372. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/git_branch.py +0 -0
  373. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/git_diff.py +0 -0
  374. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/git_log.py +0 -0
  375. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/git_remote.py +0 -0
  376. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/git_show.py +0 -0
  377. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/git_status.py +0 -0
  378. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/resource_manager.py +0 -0
  379. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/thinking.py +0 -0
  380. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/undo_change.py +0 -0
  381. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/update_todo_list.py +0 -0
  382. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/utils/__init__.py +0 -0
  383. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/utils/base_tool.py +0 -0
  384. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/utils/output.py +0 -0
  385. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/validations/__init__.py +0 -0
  386. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tools/validations/validations.py +0 -0
  387. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tui/app.py +0 -0
  388. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tui/io.py +0 -0
  389. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tui/styles.tcss +0 -0
  390. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tui/widgets/__init__.py +0 -0
  391. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tui/widgets/completion_bar.py +0 -0
  392. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tui/widgets/file_list.py +0 -0
  393. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tui/widgets/footer.py +0 -0
  394. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tui/widgets/input_area.py +0 -0
  395. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tui/widgets/input_container.py +0 -0
  396. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tui/widgets/key_hints.py +0 -0
  397. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tui/widgets/output.py +0 -0
  398. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tui/widgets/status_bar.py +0 -0
  399. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tui/widgets/subagent_pills.py +0 -0
  400. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/tui/worker.py +0 -0
  401. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/urls.py +0 -0
  402. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/utils.py +0 -0
  403. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/versioncheck.py +0 -0
  404. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/voice.py +0 -0
  405. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/waiting.py +0 -0
  406. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/watch.py +0 -0
  407. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/watch_prompts.py +0 -0
  408. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/Gemfile +0 -0
  409. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/_includes/blame.md +0 -0
  410. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/_includes/get-started.md +0 -0
  411. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/_includes/help-tip.md +0 -0
  412. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/_includes/help.md +0 -0
  413. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/_includes/install.md +0 -0
  414. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/_includes/keys.md +0 -0
  415. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/_includes/model-warnings.md +0 -0
  416. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/_includes/multi-line.md +0 -0
  417. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/_includes/python-m-aider.md +0 -0
  418. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/_includes/recording.css +0 -0
  419. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/_includes/recording.md +0 -0
  420. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/_includes/works-best.md +0 -0
  421. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/_sass/_features.scss +0 -0
  422. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/_sass/_footer.scss +0 -0
  423. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/_sass/_hero.scss +0 -0
  424. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/_sass/_info.scss +0 -0
  425. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/_sass/_layout.scss +0 -0
  426. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/_sass/_reset.scss +0 -0
  427. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/_sass/_testimonials.scss +0 -0
  428. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/_sass/_typography.scss +0 -0
  429. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/_sass/_variables.scss +0 -0
  430. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/_sass/custom/custom.scss +0 -0
  431. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/_sass/global-overrides.scss +0 -0
  432. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/config/adv-model-settings.md +0 -0
  433. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/config/api-keys.md +0 -0
  434. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/config/conf.md +0 -0
  435. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/config/custom-commands.md +0 -0
  436. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  437. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/config/dotenv.md +0 -0
  438. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/config/editor.md +0 -0
  439. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/config/hooks.md +0 -0
  440. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/config/mcp.md +0 -0
  441. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/config/model-aliases.md +0 -0
  442. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/config/model-configuration.md +0 -0
  443. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/config/options.md +0 -0
  444. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/config/reasoning.md +0 -0
  445. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/config/security.md +0 -0
  446. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/config/skills.md +0 -0
  447. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/config/subagents.md +0 -0
  448. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/config/tui.md +0 -0
  449. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/config/workspaces.md +0 -0
  450. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/config.md +0 -0
  451. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/git.md +0 -0
  452. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/index.md +0 -0
  453. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/install/docker.md +0 -0
  454. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/install.md +0 -0
  455. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/languages.md +0 -0
  456. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  457. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/legal/privacy.md +0 -0
  458. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/llms/anthropic.md +0 -0
  459. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/llms/azure.md +0 -0
  460. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/llms/bedrock.md +0 -0
  461. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/llms/cohere.md +0 -0
  462. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/llms/deepseek.md +0 -0
  463. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/llms/gemini.md +0 -0
  464. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/llms/github.md +0 -0
  465. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/llms/groq.md +0 -0
  466. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/llms/lm-studio.md +0 -0
  467. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/llms/ollama.md +0 -0
  468. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/llms/openai-compat.md +0 -0
  469. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/llms/openai.md +0 -0
  470. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/llms/openrouter.md +0 -0
  471. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/llms/other.md +0 -0
  472. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/llms/vertex.md +0 -0
  473. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/llms/warnings.md +0 -0
  474. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/llms/xai.md +0 -0
  475. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/llms.md +0 -0
  476. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/more/analytics.md +0 -0
  477. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/more/edit-formats.md +0 -0
  478. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/more/infinite-output.md +0 -0
  479. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/more-info.md +0 -0
  480. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/repomap.md +0 -0
  481. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/scripting.md +0 -0
  482. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
  483. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  484. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/troubleshooting/imports.md +0 -0
  485. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  486. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/troubleshooting/support.md +0 -0
  487. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  488. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  489. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/troubleshooting.md +0 -0
  490. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/usage/commands.md +0 -0
  491. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/usage/conventions.md +0 -0
  492. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/usage/copypaste.md +0 -0
  493. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/usage/images-urls.md +0 -0
  494. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/usage/lint-test.md +0 -0
  495. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/usage/modes.md +0 -0
  496. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/usage/not-code.md +0 -0
  497. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/usage/notifications.md +0 -0
  498. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/usage/optional.md +0 -0
  499. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/usage/sessions.md +0 -0
  500. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/usage/tips.md +0 -0
  501. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/usage/voice.md +0 -0
  502. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/usage/watch.md +0 -0
  503. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/docs/usage.md +0 -0
  504. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli/website/share/index.md +0 -0
  505. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli_dev.egg-info/dependency_links.txt +0 -0
  506. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli_dev.egg-info/entry_points.txt +0 -0
  507. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli_dev.egg-info/requires.txt +0 -0
  508. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/cecli_dev.egg-info/top_level.txt +0 -0
  509. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/docker/Dockerfile +0 -0
  510. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  511. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/pyproject.toml +0 -0
  512. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/pytest.ini +0 -0
  513. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/requirements/common-constraints.txt +0 -0
  514. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/requirements/requirements-dev.in +0 -0
  515. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/requirements/requirements-dev.txt +0 -0
  516. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/requirements/requirements-help.in +0 -0
  517. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/requirements/requirements-help.txt +0 -0
  518. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/requirements/requirements-playwright.in +0 -0
  519. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/requirements/requirements-playwright.txt +0 -0
  520. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/requirements/requirements.in +0 -0
  521. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/requirements/tree-sitter.in +0 -0
  522. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/requirements.txt +0 -0
  523. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/30k-image.py +0 -0
  524. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/Dockerfile.jekyll +0 -0
  525. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/__init__.py +0 -0
  526. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/blame.py +0 -0
  527. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/clean_metadata.py +0 -0
  528. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/compare-message-history.py +0 -0
  529. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/cost_analyzer.py +0 -0
  530. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/cost_calculator.py +0 -0
  531. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/dl_icons.py +0 -0
  532. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/filter-chat-mode.js +0 -0
  533. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/generate_providers.py +0 -0
  534. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/get_contributor_list.js +0 -0
  535. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/get_hashline.py +0 -0
  536. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/history_prompts.py +0 -0
  537. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/homepage.py +0 -0
  538. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/issues.py +0 -0
  539. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/jekyll_build.sh +0 -0
  540. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/jekyll_run.sh +0 -0
  541. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/logo_svg.py +0 -0
  542. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/pip-compile.sh +0 -0
  543. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/recording_audio.py +0 -0
  544. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/redact-cast.py +0 -0
  545. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/rename_to_cecli.py +0 -0
  546. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/tmux_record.sh +0 -0
  547. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/tsl_pack_langs.py +0 -0
  548. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/update-blame.sh +0 -0
  549. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/update-docs.sh +0 -0
  550. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/update-history.py +0 -0
  551. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/versionbump.py +0 -0
  552. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/scripts/yank-old-versions.py +0 -0
  553. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/setup.cfg +0 -0
  554. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/shim.pyproject.toml +0 -0
  555. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/__init__.py +0 -0
  556. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/__init__.py +0 -0
  557. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/conftest.py +0 -0
  558. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_aws_credentials.py +0 -0
  559. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_background_commands.py +0 -0
  560. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_coder.py +0 -0
  561. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_commands.py +0 -0
  562. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_custom_commands.py +0 -0
  563. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_deprecated.py +0 -0
  564. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_editblock.py +0 -0
  565. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_editor.py +0 -0
  566. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_exceptions.py +0 -0
  567. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_find_or_blocks.py +0 -0
  568. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_hashline.py +0 -0
  569. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_hashline_closure.py +0 -0
  570. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_history.py +0 -0
  571. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_io.py +0 -0
  572. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_linter.py +0 -0
  573. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_main.py +0 -0
  574. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_model_info_manager.py +0 -0
  575. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_model_provider_manager.py +0 -0
  576. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_models.py +0 -0
  577. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_onboarding.py +0 -0
  578. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_plugin_manager.py +0 -0
  579. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_prompts.py +0 -0
  580. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_reasoning.py +0 -0
  581. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_repo.py +0 -0
  582. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_repomap.py +0 -0
  583. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_run_cmd.py +0 -0
  584. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_sanity_check_repo.py +0 -0
  585. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_scripting.py +0 -0
  586. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_sendchat.py +0 -0
  587. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_session_args.py +0 -0
  588. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_session_crypto.py +0 -0
  589. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_sessions.py +0 -0
  590. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_sessions_manager.py +0 -0
  591. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_special.py +0 -0
  592. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_ssl_verification.py +0 -0
  593. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_udiff.py +0 -0
  594. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_urls.py +0 -0
  595. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_voice.py +0 -0
  596. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_watch.py +0 -0
  597. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/basic/test_wholefile.py +0 -0
  598. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/coders/test_copypaste_coder.py +0 -0
  599. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/commands/test_compaction.py +0 -0
  600. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/commands/test_switch_agent.py +0 -0
  601. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/conftest.py +0 -0
  602. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/conversations/test_conversation_integration.py +0 -0
  603. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/conversations/test_conversation_system.py +0 -0
  604. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  605. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/chat-history.md +0 -0
  606. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/arduino/test.ino +0 -0
  607. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/bash/test.sh +0 -0
  608. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/c/test.c +0 -0
  609. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/chatito/test.chatito +0 -0
  610. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/clojure/test.clj +0 -0
  611. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  612. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/cpp/test.cpp +0 -0
  613. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/csharp/test.cs +0 -0
  614. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/d/test.d +0 -0
  615. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/dart/test.dart +0 -0
  616. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/elisp/test.el +0 -0
  617. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/elixir/test.ex +0 -0
  618. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/elm/test.elm +0 -0
  619. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/gleam/test.gleam +0 -0
  620. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/go/test.go +0 -0
  621. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/haskell/test.hs +0 -0
  622. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/hcl/test.tf +0 -0
  623. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/java/test.java +0 -0
  624. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/javascript/test.js +0 -0
  625. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/kotlin/test.kt +0 -0
  626. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/lua/test.lua +0 -0
  627. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/matlab/test.m +0 -0
  628. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/ocaml/test.ml +0 -0
  629. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  630. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/php/test.php +0 -0
  631. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/pony/test.pony +0 -0
  632. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/properties/test.properties +0 -0
  633. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/python/test.py +0 -0
  634. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/ql/test.ql +0 -0
  635. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/r/test.r +0 -0
  636. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/racket/test.rkt +0 -0
  637. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/ruby/test.rb +0 -0
  638. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/rust/test.rs +0 -0
  639. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/scala/test.scala +0 -0
  640. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/solidity/test.sol +0 -0
  641. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/swift/test.swift +0 -0
  642. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/tsx/test.tsx +0 -0
  643. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/typescript/test.ts +0 -0
  644. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/udev/test.rules +0 -0
  645. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/languages/zig/test.zig +0 -0
  646. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/sample-code-base/sample.js +0 -0
  647. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/sample-code-base/sample.py +0 -0
  648. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  649. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/watch.js +0 -0
  650. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/watch.lisp +0 -0
  651. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/watch.py +0 -0
  652. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/fixtures/watch_question.js +0 -0
  653. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/help/test_help.py +0 -0
  654. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/helpers/monorepo/LOCAL_WORKSPACE.md +0 -0
  655. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/helpers/monorepo/test_config.py +0 -0
  656. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/helpers/monorepo/test_config_active.py +0 -0
  657. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
  658. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/helpers/monorepo/test_local_workspace.py +0 -0
  659. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
  660. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/helpers/monorepo/test_workspace.py +0 -0
  661. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/helpers/observations/test_observation_service.py +0 -0
  662. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/hooks/__init__.py +0 -0
  663. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/hooks/test_base.py +0 -0
  664. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/hooks/test_manager.py +0 -0
  665. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/hooks/test_registry.py +0 -0
  666. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/integration/test_agent_mcp_management.py +0 -0
  667. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/integration/test_mcp_management.py +0 -0
  668. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/mcp/__init__.py +0 -0
  669. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/mcp/test_manager.py +0 -0
  670. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/scrape/test_playwright_disable.py +0 -0
  671. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/scrape/test_scrape.py +0 -0
  672. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/subagents/__init__.py +0 -0
  673. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/subagents/conftest.py +0 -0
  674. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/subagents/test_commands.py +0 -0
  675. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/subagents/test_config.py +0 -0
  676. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/subagents/test_delegate.py +0 -0
  677. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/subagents/test_finished.py +0 -0
  678. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/subagents/test_io_proxy.py +0 -0
  679. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/subagents/test_service.py +0 -0
  680. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/subagents/test_sub_agent_coder.py +0 -0
  681. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/tools/test_git_branch.py +0 -0
  682. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/tools/test_git_diff.py +0 -0
  683. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/tools/test_remove_mcp_tool.py +0 -0
  684. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/tools/test_tool_arguments.py +0 -0
  685. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/tools/test_tools_load_mcp_tool.py +0 -0
  686. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/tools/validations.py +0 -0
  687. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/tui/test_app.py +0 -0
  688. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/unit/test_load_mcp.py +0 -0
  689. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/unit/test_remove_mcp.py +0 -0
  690. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/unit/test_unit_load_mcp_tool.py +0 -0
  691. {cecli_dev-0.100.11rc6 → cecli_dev-0.100.12rc2}/tests/unit/test_unit_remove_mcp_tool.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cecli-dev
3
- Version: 0.100.11rc6
3
+ Version: 0.100.12rc2
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
@@ -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.100.11rc6'
22
- __version_tuple__ = version_tuple = (0, 100, 11, 'rc6')
21
+ __version__ = version = '0.100.12rc2'
22
+ __version_tuple__ = version_tuple = (0, 100, 12, 'rc2')
23
23
 
24
- __commit_id__ = commit_id = 'g3d741d2c1'
24
+ __commit_id__ = commit_id = 'g221e9f433'
@@ -1113,7 +1113,7 @@ def get_parser(default_config_files, git_root):
1113
1113
  group.add_argument(
1114
1114
  "--notification-bell",
1115
1115
  action=argparse.BooleanOptionalAction,
1116
- default=True,
1116
+ default=False,
1117
1117
  help=(
1118
1118
  "Allow notification commands to produce an audible bell. When enabled, command"
1119
1119
  " output is not suppressed so terminal bell escape sequences can ring through"
@@ -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., 'edittext', 'insertlines')
24
+ - change_type: Type of change (e.g., 'editfile', '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.)
@@ -65,7 +65,7 @@ class AgentCoder(Coder):
65
65
  "commandinteractive",
66
66
  "explorecode",
67
67
  "ls",
68
- "readrange",
68
+ "readfile",
69
69
  "grep",
70
70
  "thinking",
71
71
  "updatetodolist",
@@ -73,7 +73,7 @@ class AgentCoder(Coder):
73
73
  self.write_tools = {
74
74
  "command",
75
75
  "commandinteractive",
76
- "edittext",
76
+ "editfile",
77
77
  "undochange",
78
78
  }
79
79
  self.edit_allowed = True
@@ -1138,7 +1138,7 @@ class AgentCoder(Coder):
1138
1138
  context_parts.append("\n\n")
1139
1139
  context_parts.append("## File Editing Tools Disabled")
1140
1140
  context_parts.append(
1141
- "File editing tools are currently disabled. Use `ReadRange` to determine the"
1141
+ "File editing tools are currently disabled. Use `ReadFile` to determine the"
1142
1142
  " current content ID prefixes needed to perform an edit and activate them when"
1143
1143
  " you are ready to edit a file."
1144
1144
  )
@@ -125,10 +125,11 @@ class AddCommand(BaseCommand):
125
125
  else:
126
126
  io.tool_error(f"Cannot add {matched_file} as it's not part of the repository")
127
127
  else:
128
- if is_image_file(matched_file) and not coder.main_model.info.get("supports_vision"):
128
+ active_model = coder.get_active_model()
129
+ if is_image_file(matched_file) and not active_model.info.get("supports_vision"):
129
130
  io.tool_error(
130
131
  f"Cannot add image file {matched_file} as the"
131
- f" {coder.main_model.name} does not support images."
132
+ f" {active_model.name} does not support images."
132
133
  )
133
134
  continue
134
135
  content = io.read_text(abs_file_path)
@@ -156,10 +156,11 @@ class ReadOnlyCommand(BaseCommand):
156
156
  source_mode="read-only",
157
157
  target_mode="read-only",
158
158
  ):
159
- if is_image_file(original_name) and not coder.main_model.info.get("supports_vision"):
159
+ active_model = coder.get_active_model()
160
+ if is_image_file(original_name) and not active_model.info.get("supports_vision"):
160
161
  io.tool_error(
161
162
  f"Cannot add image file {original_name} as the"
162
- f" {coder.main_model.name} does not support images."
163
+ f" {active_model.name} does not support images."
163
164
  )
164
165
  return
165
166
 
@@ -156,10 +156,11 @@ class ReadOnlyStubCommand(BaseCommand):
156
156
  source_mode="read-only",
157
157
  target_mode="read-only",
158
158
  ):
159
- if is_image_file(original_name) and not coder.main_model.info.get("supports_vision"):
159
+ active_model = coder.get_active_model()
160
+ if is_image_file(original_name) and not active_model.info.get("supports_vision"):
160
161
  io.tool_error(
161
162
  f"Cannot add image file {original_name} as the"
162
- f" {coder.main_model.name} does not support images."
163
+ f" {active_model.name} does not support images."
163
164
  )
164
165
  return
165
166
 
@@ -191,8 +191,13 @@ class AgentService:
191
191
 
192
192
  from .config import parse_subagent_file
193
193
 
194
+ # Always check the default sub-agents directory in the user's home
195
+ default_dir = str(Path.home() / ".cecli" / "subagents")
196
+ if default_dir not in paths:
197
+ paths = [default_dir] + list(paths)
198
+
194
199
  for directory in paths:
195
- dir_path = Path(directory)
200
+ dir_path = Path(directory).expanduser()
196
201
  if not dir_path.is_dir():
197
202
  continue
198
203
  for md_file in sorted(dir_path.glob("*.md")):
@@ -117,7 +117,7 @@ class ConversationFiles:
117
117
  content = coder.io.read_text(abs_fname, silent=True)
118
118
  if coder.hashlines:
119
119
  content, json_str = hashline_formatted(
120
- content, file_name=abs_fname, partial=False
120
+ content, file_name=abs_fname, partial=False, expanded=False
121
121
  )
122
122
  self._file_json_contents[abs_fname] = json_str
123
123
  except Exception:
@@ -237,7 +237,7 @@ class ConversationFiles:
237
237
  current_content = coder.io.read_text(abs_fname, silent=True)
238
238
  if coder.hashlines:
239
239
  current_content, _ = hashline_formatted(
240
- current_content, file_name=abs_fname, partial=False
240
+ current_content, file_name=abs_fname, partial=False, expanded=False
241
241
  )
242
242
  except Exception:
243
243
  return None
@@ -252,6 +252,7 @@ class ConversationFiles:
252
252
  )
253
253
 
254
254
  if not snapshot_content:
255
+ self.add_file(abs_fname, content=current_content)
255
256
  return None
256
257
 
257
258
  # Generate diff between snapshot and current content using hashline helper
@@ -260,6 +261,7 @@ class ConversationFiles:
260
261
  new_content=current_content,
261
262
  fromfile=f"{rel_fname} (snapshot)",
262
263
  tofile=f"{rel_fname} (current)",
264
+ context_lines=3,
263
265
  )
264
266
 
265
267
  # If there's a diff, update the last snapshot with current content
@@ -606,7 +608,11 @@ class ConversationFiles:
606
608
  continue
607
609
 
608
610
  _, json_str = hashline_formatted(
609
- range_content, file_name=abs_fname, partial=True, start_line=start_line_adj
611
+ range_content,
612
+ file_name=abs_fname,
613
+ partial=True,
614
+ expanded=False,
615
+ start_line=start_line_adj,
610
616
  )
611
617
  results.append(json.loads(json_str))
612
618
 
@@ -1092,21 +1092,21 @@ class ConversationChunks:
1092
1092
  " <parameter=param_name>param_value_json</parameter>\n"
1093
1093
  " </function>\n\n"
1094
1094
  " Example:\n"
1095
- " <function=Local--ReadRange>\n"
1095
+ " <function=Local--ReadFile>\n"
1096
1096
  ' <parameter=read>[{"file_path": "example.py", "range_start": "def hello",'
1097
1097
  ' "range_end": "def goodbye"}]</parameter>\n'
1098
1098
  " </function>\n\n"
1099
1099
  "2. JSON Tool-Call Format:\n"
1100
1100
  ' Embed a JSON object with "name" and "arguments" keys.\n\n'
1101
1101
  " Example:\n"
1102
- ' {"name": "Local--ReadRange", "arguments": {"read": [{"file_path": "example.py",'
1102
+ ' {"name": "Local--ReadFile", "arguments": {"read": [{"file_path": "example.py",'
1103
1103
  ' "range_start": "class A", "range_end": "class Z"}]}}\n\n'
1104
1104
  "3. Bracket Format:\n"
1105
1105
  " [ToolName(key1=value1, key2=value2)]\n\n"
1106
1106
  " Example:\n"
1107
- ' [Local--ReadRange(read=[{"file_path": "example.py", "range_start": "class A"}])]\n\n'
1107
+ ' [Local--ReadFile(read=[{"file_path": "example.py", "range_start": "class A"}])]\n\n'
1108
1108
  "IMPORTANT: Use the FULL prefixed tool name "
1109
- '(e.g., "Local--ReadRange" not just "ReadRange").\n'
1109
+ '(e.g., "Local--ReadFile" not just "ReadFile").\n'
1110
1110
  "</context>"
1111
1111
  )
1112
1112
 
@@ -1,6 +1,7 @@
1
1
  import difflib
2
2
  import json
3
3
  import re
4
+ from collections import Counter
4
5
 
5
6
  from cecli.helpers.hashpos.hashpos import HashPos
6
7
 
@@ -29,7 +30,7 @@ def hashline(text: str, start_line: int = 1) -> str:
29
30
 
30
31
 
31
32
  def hashline_formatted(
32
- text: str, file_name: str, partial: bool, start_line: int = 1
33
+ text: str, file_name: str, partial: bool, expanded: bool, start_line: int = 1
33
34
  ) -> tuple[str, str]:
34
35
  """
35
36
  Generate hashline-formatted content and return it as both raw hashline text and a JSON structure.
@@ -55,6 +56,7 @@ def hashline_formatted(
55
56
  "start_line": start_line,
56
57
  "end_line": end_line,
57
58
  "partial": partial,
59
+ "expanded": expanded,
58
60
  "prefixed_contents": prefixed,
59
61
  }
60
62
 
@@ -315,7 +317,7 @@ def resolve_content_to_hashline_ids(
315
317
 
316
318
  def _find_substring_matches(lines, value):
317
319
  """Find all line indices where the value appears as a substring."""
318
- value_stripped = value.rstrip("\r\n")
320
+ value_stripped = value.strip()
319
321
  return [i for i, line in enumerate(lines) if value_stripped in line]
320
322
 
321
323
  def _resolve_to_hash_id(lines, idx, hp):
@@ -1477,10 +1479,55 @@ def _apply_closure_safeguard(
1477
1479
  errors += count_ast_errors(child)
1478
1480
  return errors
1479
1481
 
1482
+ def _detect_indent_unit(source_lines: list) -> int:
1483
+ """Detect the common indentation unit from non-empty source lines."""
1484
+ indents = []
1485
+ for line in source_lines:
1486
+ if line.strip(): # non-empty
1487
+ indent = len(line) - len(line.lstrip())
1488
+ indents.append(indent)
1489
+
1490
+ if len(indents) < 2:
1491
+ return 0
1492
+
1493
+ # Compute differences between consecutive non-empty lines
1494
+ diffs = []
1495
+ for i in range(1, len(indents)):
1496
+ diff = abs(indents[i] - indents[i - 1])
1497
+ if diff > 0:
1498
+ diffs.append(diff)
1499
+
1500
+ if not diffs:
1501
+ return 0
1502
+
1503
+ # Most common non-zero difference is the indentation unit
1504
+ return Counter(diffs).most_common(1)[0][0]
1505
+
1506
+ def _has_indent_jump(test_lines: list, unit: int) -> bool:
1507
+ """Check if the edit result creates an indentation jump of 2+ units."""
1508
+ if unit == 0:
1509
+ return False
1510
+
1511
+ prev_indent = None
1512
+ for line in test_lines:
1513
+ if line.strip(): # non-empty
1514
+ indent = len(line) - len(line.lstrip())
1515
+ if prev_indent is not None:
1516
+ diff = abs(indent - prev_indent)
1517
+ if diff > unit:
1518
+ return True
1519
+ prev_indent = indent
1520
+
1521
+ return False
1522
+
1480
1523
  # Establish the baseline syntax health of the original file
1481
1524
  base_tree = parser.parse(source_bytes)
1482
1525
  baseline_error_count = count_ast_errors(base_tree.root_node)
1483
1526
 
1527
+ # Detect if the original source follows normal indentation (steps of 1 unit)
1528
+ indent_unit = _detect_indent_unit(source_lines)
1529
+ is_normally_indented = indent_unit > 0
1530
+
1484
1531
  safe_resolved_ops = []
1485
1532
  rejected_ops = []
1486
1533
 
@@ -1554,6 +1601,13 @@ def _apply_closure_safeguard(
1554
1601
  end_line_match = source_lines[candidate_end] == source_lines[llm_end]
1555
1602
  cumulative_movement = abs(start_shift) + abs(end_shift)
1556
1603
 
1604
+ # Check for indentation jumps in the resulting edit
1605
+ if is_normally_indented:
1606
+ test_lines = test_source_bytes.decode("utf-8").splitlines()
1607
+ has_indent_jump = _has_indent_jump(test_lines, indent_unit)
1608
+ else:
1609
+ has_indent_jump = False
1610
+
1557
1611
  all_candidates.append(
1558
1612
  {
1559
1613
  "start_idx": candidate_start,
@@ -1562,6 +1616,7 @@ def _apply_closure_safeguard(
1562
1616
  "start_line_match": start_line_match,
1563
1617
  "end_line_match": end_line_match,
1564
1618
  "cumulative_movement": cumulative_movement,
1619
+ "has_indent_jump": has_indent_jump,
1565
1620
  "is_partial": is_partial,
1566
1621
  "is_downward": is_downward,
1567
1622
  "is_both": is_both,
@@ -1576,6 +1631,7 @@ def _apply_closure_safeguard(
1576
1631
  r["ast_error_count"], # Ascending: fewer syntax errors wins
1577
1632
  not r["start_line_match"], # Descending: True first
1578
1633
  not r["end_line_match"], # Descending: True first
1634
+ r.get("has_indent_jump", False), # Ascending: False (no jump) first
1579
1635
  r["cumulative_movement"], # Ascending: smaller is better
1580
1636
  not r["is_partial"], # Booleans: False comes before True
1581
1637
  not r["is_downward"], # Booleans: False comes before True
@@ -166,7 +166,7 @@ def extract_tools_from_pseudo_json(content: str) -> Optional[List[ChatCompletion
166
166
  The parser handles nested parentheses and commas inside JSON values.
167
167
 
168
168
  Example:
169
- [Local--ReadRange(show=[{"file_path": "agent.py", "start_text": "class A"}], verbose=true, mode="strict")]
169
+ [Local--ReadFile(show=[{"file_path": "agent.py", "start_text": "class A"}], verbose=true, mode="strict")]
170
170
  """
171
171
  from litellm.types.utils import ChatCompletionMessageToolCall, Function # noqa
172
172
 
@@ -66,6 +66,11 @@ class SkillsManager:
66
66
  git_root: Optional git root directory for relative path resolution
67
67
  coder: Optional reference to the coder instance (weak reference)
68
68
  """
69
+ # Always include the default skills directory in the user's home
70
+ default_skill_dir = str(Path.home() / ".cecli" / "skills")
71
+ if default_skill_dir not in directory_paths:
72
+ directory_paths = list(directory_paths) + [default_skill_dir]
73
+
69
74
  self.directory_paths = [Path(p).expanduser().resolve() for p in directory_paths]
70
75
  self.include_list = set(include_list) if include_list else None
71
76
  self.exclude_list = set(exclude_list) if exclude_list else set()
@@ -367,7 +367,7 @@ class InputOutput:
367
367
  root=".",
368
368
  notifications=False,
369
369
  notifications_command=None,
370
- notification_bell=True,
370
+ notification_bell=False,
371
371
  verbose=False,
372
372
  ):
373
373
  self.console = Console()
@@ -386,6 +386,7 @@ class InputOutput:
386
386
  self.bell_on_next_input = False
387
387
  self.notifications = notifications
388
388
  self.notification_bell = notification_bell
389
+ self.custom_notification_command = False
389
390
  self.verbose = verbose
390
391
  self.profile_start_time = None
391
392
  self.profile_last_time = None
@@ -404,10 +405,19 @@ class InputOutput:
404
405
  self.confirmation_input_active = False
405
406
  self.saved_input_text = ""
406
407
 
407
- if notifications and notifications_command is None:
408
- self.notifications_command = self.get_default_notification_command()
409
- else:
408
+ if notifications_command is not None:
409
+ # Custom notification command overrides everything
410
410
  self.notifications_command = notifications_command
411
+ self.custom_notification_command = True
412
+ elif notification_bell and not notifications:
413
+ # Bell only mode - no command needed, _send_notification will fallback to bell
414
+ self.notifications_command = None
415
+ elif notifications:
416
+ # Generate default notification command based on notification_bell flag
417
+ include_bell = notification_bell is not False
418
+ self.notifications_command = self.get_default_notification_command(bell=include_bell)
419
+ else:
420
+ self.notifications_command = None
411
421
 
412
422
  no_color = os.environ.get("NO_COLOR")
413
423
  if no_color is not None and no_color != "":
@@ -1693,8 +1703,8 @@ class InputOutput:
1693
1703
  """Mark that the LLM has started processing, so we should ring the bell on next input"""
1694
1704
  self.bell_on_next_input = True
1695
1705
 
1696
- def get_default_notification_command(self):
1697
- """Return a command that triggers a system bell followed by a notification."""
1706
+ def get_default_notification_command(self, bell=True):
1707
+ """Return a command that triggers a notification, optionally with a bell."""
1698
1708
  import platform
1699
1709
  import shutil
1700
1710
 
@@ -1744,13 +1754,18 @@ class InputOutput:
1744
1754
  )
1745
1755
  notif_cmd = f"powershell -WindowStyle Hidden -Command {ps_body}"
1746
1756
 
1747
- # 3. Concatenate them
1757
+ # 3. Concatenate them based on bell preference
1748
1758
  if notif_cmd:
1749
- # Using ';' as a command separator works for both shell=True on Unix and Windows
1750
- return f"{bell_cmd} ; {notif_cmd}"
1759
+ if bell:
1760
+ # Using ';' as a command separator works for both shell=True on Unix and Windows
1761
+ return f"{bell_cmd} ; {notif_cmd}"
1762
+ return notif_cmd
1751
1763
 
1752
1764
  # Fallback if no notification tool is found
1753
- return bell_cmd
1765
+ if bell:
1766
+ return bell_cmd
1767
+
1768
+ return None
1754
1769
 
1755
1770
  def _send_notification(self):
1756
1771
  # Cooldown to prevent notification spam
@@ -1787,18 +1802,33 @@ class InputOutput:
1787
1802
 
1788
1803
  except Exception as e:
1789
1804
  self.tool_warning(f"Failed to run notifications command: {e}")
1790
- else:
1791
- print("\a", end="", flush=True) # Ring the bell
1805
+ elif self.notification_bell is not False:
1806
+ bell_cmd = self.get_default_notification_command(bell=True)
1807
+ if bell_cmd:
1808
+ try:
1809
+ kwargs = {
1810
+ "shell": True,
1811
+ }
1812
+
1813
+ if platform.system() == "Windows":
1814
+ kwargs["creationflags"] = subprocess.CREATE_NO_WINDOW
1815
+ else:
1816
+ kwargs["start_new_session"] = True
1817
+
1818
+ subprocess.Popen(bell_cmd, **kwargs)
1819
+ except Exception as e:
1820
+ self.tool_warning(f"Failed to run bell command: {e}")
1792
1821
 
1793
1822
  def notify_user_input_required(self):
1794
1823
  """Send a notification that user input is required."""
1795
- if self.notifications:
1824
+ if self.notifications or self.notification_bell or self.custom_notification_command:
1796
1825
  self._send_notification()
1797
1826
 
1798
1827
  def ring_bell(self):
1799
1828
  """Ring the terminal bell if needed and clear the flag"""
1800
- if self.bell_on_next_input and self.notifications:
1801
- self._send_notification()
1829
+ if self.bell_on_next_input:
1830
+ if self.notifications or self.notification_bell or self.custom_notification_command:
1831
+ self._send_notification()
1802
1832
  self.bell_on_next_input = False
1803
1833
 
1804
1834
  def toggle_multiline_mode(self):
@@ -554,6 +554,7 @@ async def main_async(
554
554
  git_root = get_git_root()
555
555
  conf_fname = handle_core_files(Path(".cecli.conf.yml"))
556
556
  default_config_files = [
557
+ str(Path.home() / ".cecli" / "conf.yml"),
557
558
  str(Path.home() / ".cecli.conf.yml"),
558
559
  str(Path(".cecli.conf.yml")),
559
560
  ]
@@ -64,7 +64,7 @@ main_system: |
64
64
 
65
65
  system_reminder: |
66
66
  <context name="critical_reminders">
67
- - Prefer the `ReadRange` tool to cli commands for file reading
67
+ - Prefer the `ReadFile` tool to cli commands for file reading
68
68
  - Pay close attention to indentation and styling when editing files
69
69
  - Batch tool calls as often as possible
70
70
  - Reason out loud through problems but be brief.
@@ -49,7 +49,7 @@ main_system: |
49
49
 
50
50
  system_reminder: |
51
51
  <context name="critical_reminders">
52
- - Prefer the `ReadRange` tool to cli commands for file reading
52
+ - Prefer the `ReadFile` tool to cli commands for file reading
53
53
  - Pay close attention to indentation and styling when editing files
54
54
  - Batch tool calls as often as possible
55
55
  - Reason out loud through problems but be brief.
@@ -196,7 +196,7 @@ def ensure_alternating_roles(messages):
196
196
  result.append(tool_msg)
197
197
 
198
198
  # Update prev_role to assistant after processing tool sequence
199
- prev_role = "assistant"
199
+ prev_role = "tool"
200
200
  continue
201
201
 
202
202
  # Handle normal message alternation
@@ -7,7 +7,7 @@ from . import (
7
7
  command,
8
8
  command_interactive,
9
9
  delegate,
10
- edit_text,
10
+ edit_file,
11
11
  explore_code,
12
12
  git_branch,
13
13
  git_diff,
@@ -17,7 +17,7 @@ from . import (
17
17
  git_status,
18
18
  grep,
19
19
  ls,
20
- read_range,
20
+ read_file,
21
21
  resource_manager,
22
22
  thinking,
23
23
  undo_change,
@@ -29,7 +29,7 @@ TOOL_MODULES = [
29
29
  command,
30
30
  command_interactive,
31
31
  delegate,
32
- edit_text,
32
+ edit_file,
33
33
  explore_code,
34
34
  _yield,
35
35
  git_branch,
@@ -40,7 +40,7 @@ TOOL_MODULES = [
40
40
  git_status,
41
41
  grep,
42
42
  ls,
43
- read_range,
43
+ read_file,
44
44
  resource_manager,
45
45
  thinking,
46
46
  undo_change,
@@ -31,7 +31,7 @@ USER_EDIT_CATEGORIES = {
31
31
 
32
32
 
33
33
  class Tool(BaseTool):
34
- NORM_NAME = "edittext"
34
+ NORM_NAME = "editfile"
35
35
  TRACK_INVOCATIONS = False
36
36
  VALIDATIONS = {
37
37
  "edits": ["coerce_list"],
@@ -40,7 +40,7 @@ class Tool(BaseTool):
40
40
  SCHEMA = {
41
41
  "type": "function",
42
42
  "function": {
43
- "name": "EditText",
43
+ "name": "EditFile",
44
44
  "description": (
45
45
  "Edit text in one or more files using content ID markers. "
46
46
  "You can perform multiple 'replace' or 'delete' operations in a single call. "
@@ -138,19 +138,19 @@ class Tool(BaseTool):
138
138
  message_dict=dict(
139
139
  role="user",
140
140
  content=(
141
- "Please call `ReadRange` on files you intend to edit to"
141
+ "Please call `ReadFile` on files you intend to edit to"
142
142
  " make sure edits are appropriately targeted."
143
143
  ),
144
144
  ),
145
145
  tag=MessageTag.CUR,
146
- hash_key=("edit_text", "reminder"),
146
+ hash_key=("edit_file", "reminder"),
147
147
  promotion=ConversationService.get_manager(coder).DEFAULT_TAG_PROMOTION_VALUE,
148
148
  mark_for_delete=0,
149
149
  mark_for_demotion=1,
150
150
  force=True,
151
151
  )
152
152
 
153
- tool_name = "EditText"
153
+ tool_name = "EditFile"
154
154
  try:
155
155
  # 1. Validate edits parameter
156
156
  if not isinstance(edits, list):
@@ -198,18 +198,18 @@ class Tool(BaseTool):
198
198
  "Must be 'replace' or 'delete'"
199
199
  )
200
200
 
201
- edit_text_raw = edit.get("text")
202
- edit_text = edit.get("text")
201
+ edit_file_raw = edit.get("text")
202
+ edit_file = edit.get("text")
203
203
  edit_start_line = edit.get("start_line")
204
204
  edit_end_line = edit.get("end_line")
205
205
 
206
- if edit_text_raw is not None:
207
- edit_text_raw = strip_hashline(edit_text_raw)
208
- while edit_text_raw != edit_text:
209
- edit_text_raw = strip_hashline(edit_text_raw)
210
- edit_text = strip_hashline(edit_text)
206
+ if edit_file_raw is not None:
207
+ edit_file_raw = strip_hashline(edit_file_raw)
208
+ while edit_file_raw != edit_file:
209
+ edit_file_raw = strip_hashline(edit_file_raw)
210
+ edit_file = strip_hashline(edit_file)
211
211
 
212
- edit_text = edit_text_raw
212
+ edit_file = edit_file_raw
213
213
 
214
214
  # Try to resolve line content values to content IDs
215
215
  # This handles cases where LLMs pass actual line content
@@ -220,7 +220,7 @@ class Tool(BaseTool):
220
220
 
221
221
  # Validate required fields based on operation type
222
222
  if operation in ("replace", "insert"):
223
- if edit_text is None:
223
+ if edit_file is None:
224
224
  raise ToolError(
225
225
  f"Edit {edit_index + 1}: 'text' parameter is required for "
226
226
  f"'{operation}' operation"
@@ -251,8 +251,8 @@ class Tool(BaseTool):
251
251
  "end_line_hash": edit_end_line,
252
252
  "operation": operation,
253
253
  }
254
- if edit_text is not None:
255
- op_dict["text"] = edit_text
254
+ if edit_file is not None:
255
+ op_dict["text"] = edit_file
256
256
 
257
257
  operations.append(op_dict)
258
258
 
@@ -261,7 +261,7 @@ class Tool(BaseTool):
261
261
  "operation": operation,
262
262
  "start_line": edit_start_line,
263
263
  "end_line": edit_end_line,
264
- "text": edit_text,
264
+ "text": edit_file,
265
265
  }
266
266
  file_metadata.append(metadata)
267
267
 
@@ -285,9 +285,7 @@ class Tool(BaseTool):
285
285
  else:
286
286
  # Be specific about why content didn't change
287
287
  if failed_ops:
288
- error_details = "; ".join(
289
- f"Edit {op['index'] + 1}: {op['error']}" for op in failed_ops
290
- )
288
+ error_details = "; ".join(op["error"] for op in failed_ops)
291
289
  raise ToolError(
292
290
  f"Invalid Edit - Update content ID bounds: {error_details}"
293
291
  )
@@ -345,7 +343,7 @@ class Tool(BaseTool):
345
343
  rel_path,
346
344
  original_content,
347
345
  new_content,
348
- "edittext",
346
+ "editfile",
349
347
  metadata,
350
348
  change_id,
351
349
  )