cecli-dev 0.100.11rc2__tar.gz → 0.100.11rc3__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 (688) hide show
  1. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/PKG-INFO +1 -1
  2. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/_version.py +3 -3
  3. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/hashline.py +101 -128
  4. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/edit_text.py +74 -27
  5. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli_dev.egg-info/PKG-INFO +1 -1
  6. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli_dev.egg-info/scm_version.json +2 -2
  7. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_hashline_closure.py +132 -44
  8. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/.dockerignore +0 -0
  9. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/.flake8 +0 -0
  10. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/.gitattributes +0 -0
  11. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  12. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/.github/workflows/check_pypi_version.yml +0 -0
  13. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/.github/workflows/docker-build-test.yml +0 -0
  14. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/.github/workflows/docker-release.yml +0 -0
  15. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/.github/workflows/issues.yml +0 -0
  16. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/.github/workflows/pages.yml +0 -0
  17. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/.github/workflows/pre-commit.yml +0 -0
  18. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/.github/workflows/release.yml +0 -0
  19. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/.github/workflows/ubuntu-tests.yml +0 -0
  20. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/.github/workflows/windows-tests.yml +0 -0
  21. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/.github/workflows/windows_check_pypi_version.yml +0 -0
  22. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/.gitignore +0 -0
  23. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/.pre-commit-config.yaml +0 -0
  24. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/CHANGELOG.md +0 -0
  25. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/CNAME +0 -0
  26. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/CONTRIBUTING.md +0 -0
  27. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/HISTORY.md +0 -0
  28. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/LICENSE.txt +0 -0
  29. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/MANIFEST.in +0 -0
  30. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/README.md +0 -0
  31. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/Dockerfile +0 -0
  32. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/README.md +0 -0
  33. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/__init__.py +0 -0
  34. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/benchmark.py +0 -0
  35. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/benchmark_classic.py +0 -0
  36. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/clone-exercism.sh +0 -0
  37. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/cpp-test.sh +0 -0
  38. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/docker.sh +0 -0
  39. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/docker_build.sh +0 -0
  40. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/install-docker-ubuntu.sh +0 -0
  41. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/npm-test.sh +0 -0
  42. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/over_time.py +0 -0
  43. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/plot.sh +0 -0
  44. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/plots.py +0 -0
  45. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/problem_stats.py +0 -0
  46. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/prompts.py +0 -0
  47. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/refactor_tools.py +0 -0
  48. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/rsync.sh +0 -0
  49. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/rungrid.py +0 -0
  50. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/swe-bench-lite.txt +0 -0
  51. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/swe-bench.txt +0 -0
  52. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/swe_bench.py +0 -0
  53. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/test_benchmark.py +0 -0
  54. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/variations.1.sh +0 -0
  55. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/variations.2.sh +0 -0
  56. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/variations.3.sh +0 -0
  57. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/benchmark/variations.4.sh +0 -0
  58. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/__init__.py +0 -0
  59. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/__main__.py +0 -0
  60. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/args.py +0 -0
  61. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/args_formatter.py +0 -0
  62. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/change_tracker.py +0 -0
  63. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/__init__.py +0 -0
  64. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/agent_coder.py +0 -0
  65. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/architect_coder.py +0 -0
  66. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/ask_coder.py +0 -0
  67. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/base_coder.py +0 -0
  68. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/chat_chunks.py +0 -0
  69. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/context_coder.py +0 -0
  70. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/copypaste_coder.py +0 -0
  71. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/editblock_coder.py +0 -0
  72. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/editblock_fenced_coder.py +0 -0
  73. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/editblock_func_coder.py +0 -0
  74. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  75. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/editor_editblock_coder.py +0 -0
  76. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/editor_whole_coder.py +0 -0
  77. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/hashline_coder.py +0 -0
  78. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/help_coder.py +0 -0
  79. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/patch_coder.py +0 -0
  80. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/search_replace.py +0 -0
  81. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/shell.py +0 -0
  82. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/single_wholefile_func_coder.py +0 -0
  83. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/sub_agent_coder.py +0 -0
  84. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/udiff_coder.py +0 -0
  85. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/udiff_simple.py +0 -0
  86. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/wholefile_coder.py +0 -0
  87. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/coders/wholefile_func_coder.py +0 -0
  88. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/__init__.py +0 -0
  89. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/add.py +0 -0
  90. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/agent.py +0 -0
  91. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/agent_model.py +0 -0
  92. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/architect.py +0 -0
  93. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/ask.py +0 -0
  94. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/chat_mode.py +0 -0
  95. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/clear.py +0 -0
  96. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/code.py +0 -0
  97. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/command_prefix.py +0 -0
  98. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/commit.py +0 -0
  99. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/compact.py +0 -0
  100. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/context.py +0 -0
  101. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/context_blocks.py +0 -0
  102. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/context_management.py +0 -0
  103. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/copy.py +0 -0
  104. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/copy_context.py +0 -0
  105. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/core.py +0 -0
  106. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/diff.py +0 -0
  107. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/drop.py +0 -0
  108. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/editor.py +0 -0
  109. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/editor_model.py +0 -0
  110. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/exclude_skill.py +0 -0
  111. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/exit.py +0 -0
  112. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/git.py +0 -0
  113. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/hashline.py +0 -0
  114. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/help.py +0 -0
  115. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/history_search.py +0 -0
  116. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/hooks.py +0 -0
  117. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/hot_reload.py +0 -0
  118. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/include_skill.py +0 -0
  119. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/lint.py +0 -0
  120. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/list_mcp.py +0 -0
  121. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/list_sessions.py +0 -0
  122. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/list_skills.py +0 -0
  123. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/load.py +0 -0
  124. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/load_hook.py +0 -0
  125. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/load_mcp.py +0 -0
  126. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/load_session.py +0 -0
  127. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/load_skill.py +0 -0
  128. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/ls.py +0 -0
  129. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/map.py +0 -0
  130. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/map_refresh.py +0 -0
  131. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/merge.py +0 -0
  132. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/model.py +0 -0
  133. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/models.py +0 -0
  134. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/multiline_mode.py +0 -0
  135. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/paste.py +0 -0
  136. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/quit.py +0 -0
  137. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/read_only.py +0 -0
  138. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/read_only_stub.py +0 -0
  139. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/reap_agent.py +0 -0
  140. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/reasoning_effort.py +0 -0
  141. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/remove_hook.py +0 -0
  142. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/remove_mcp.py +0 -0
  143. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/remove_skill.py +0 -0
  144. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/report.py +0 -0
  145. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/reset.py +0 -0
  146. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/rules.py +0 -0
  147. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/run.py +0 -0
  148. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/save.py +0 -0
  149. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/save_session.py +0 -0
  150. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/settings.py +0 -0
  151. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/spawn_agent.py +0 -0
  152. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/switch_agent.py +0 -0
  153. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/terminal_data/linux.keytab +0 -0
  154. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/terminal_setup.py +0 -0
  155. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/test.py +0 -0
  156. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/think_tokens.py +0 -0
  157. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/tokens.py +0 -0
  158. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/undo.py +0 -0
  159. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/utils/__init__.py +0 -0
  160. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/utils/base_command.py +0 -0
  161. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/utils/helpers.py +0 -0
  162. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/utils/registry.py +0 -0
  163. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/utils/save_load_manager.py +0 -0
  164. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/voice.py +0 -0
  165. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/weak_model.py +0 -0
  166. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/web.py +0 -0
  167. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/commands/workspace.py +0 -0
  168. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/deprecated_args.py +0 -0
  169. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/diffs.py +0 -0
  170. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/dump.py +0 -0
  171. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/editor.py +0 -0
  172. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/exceptions.py +0 -0
  173. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/format_settings.py +0 -0
  174. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/help.py +0 -0
  175. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/help_pats.py +0 -0
  176. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/__init__.py +0 -0
  177. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/agents/__init__.py +0 -0
  178. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/agents/config.py +0 -0
  179. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/agents/service.py +0 -0
  180. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/background_commands.py +0 -0
  181. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/command_parser.py +0 -0
  182. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/conversation/__init__.py +0 -0
  183. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/conversation/base_message.py +0 -0
  184. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/conversation/files.py +0 -0
  185. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/conversation/integration.py +0 -0
  186. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/conversation/manager.py +0 -0
  187. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/conversation/service.py +0 -0
  188. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/conversation/tags.py +0 -0
  189. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/conversation/utils.py +0 -0
  190. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/copypaste.py +0 -0
  191. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/coroutines.py +0 -0
  192. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/crypto.py +0 -0
  193. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/file_searcher.py +0 -0
  194. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/file_system/__init__.py +0 -0
  195. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/file_system/builders.py +0 -0
  196. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/file_system/ignore.py +0 -0
  197. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/file_system/ngram_index.py +0 -0
  198. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/file_system/service.py +0 -0
  199. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/file_system/trie_index.py +0 -0
  200. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/grep_ast/__init__.py +0 -0
  201. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/grep_ast/dump.py +0 -0
  202. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/grep_ast/grep_ast.py +0 -0
  203. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/grep_ast/main.py +0 -0
  204. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/grep_ast/parsers.py +0 -0
  205. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/grep_ast/tsl.py +0 -0
  206. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/hashpos/__init__.py +0 -0
  207. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/hashpos/hashpos.py +0 -0
  208. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/hashpos/hashpos.v1.bak +0 -0
  209. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/io_proxy.py +0 -0
  210. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/leak_detect.py +0 -0
  211. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/model_providers.py +0 -0
  212. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/monorepo/__init__.py +0 -0
  213. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/monorepo/config.py +0 -0
  214. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/monorepo/local_workspace.py +0 -0
  215. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/monorepo/project.py +0 -0
  216. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/monorepo/workspace.py +0 -0
  217. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/monorepo/worktree.py +0 -0
  218. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/nested.py +0 -0
  219. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/observations/__init__.py +0 -0
  220. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/observations/service.py +0 -0
  221. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/plugin_manager.py +0 -0
  222. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/profiler.py +0 -0
  223. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/requests.py +0 -0
  224. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/responses.py +0 -0
  225. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/similarity.py +0 -0
  226. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/skills.py +0 -0
  227. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/helpers/threading.py +0 -0
  228. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/history.py +0 -0
  229. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/hooks/__init__.py +0 -0
  230. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/hooks/base.py +0 -0
  231. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/hooks/integration.py +0 -0
  232. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/hooks/manager.py +0 -0
  233. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/hooks/registry.py +0 -0
  234. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/hooks/service.py +0 -0
  235. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/hooks/types.py +0 -0
  236. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/interruptible_input.py +0 -0
  237. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/io.py +0 -0
  238. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/linter.py +0 -0
  239. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/llm.py +0 -0
  240. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/main.py +0 -0
  241. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/mcp/__init__.py +0 -0
  242. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/mcp/manager.py +0 -0
  243. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/mcp/oauth.py +0 -0
  244. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/mcp/server.py +0 -0
  245. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/mcp/utils.py +0 -0
  246. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/mdstream.py +0 -0
  247. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/models.py +0 -0
  248. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/onboarding.py +0 -0
  249. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/__init__.py +0 -0
  250. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/agent.yml +0 -0
  251. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/architect.yml +0 -0
  252. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/ask.yml +0 -0
  253. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/base.yml +0 -0
  254. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/context.yml +0 -0
  255. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/copypaste.yml +0 -0
  256. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/editblock.yml +0 -0
  257. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/editblock_fenced.yml +0 -0
  258. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/editblock_func.yml +0 -0
  259. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/editor_diff_fenced.yml +0 -0
  260. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/editor_editblock.yml +0 -0
  261. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/editor_whole.yml +0 -0
  262. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/hashline.yml +0 -0
  263. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/help.yml +0 -0
  264. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/patch.yml +0 -0
  265. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/single_wholefile_func.yml +0 -0
  266. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/subagent.yml +0 -0
  267. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/udiff.yml +0 -0
  268. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/udiff_simple.yml +0 -0
  269. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/utils/__init__.py +0 -0
  270. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/utils/registry.py +0 -0
  271. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/utils/system.py +0 -0
  272. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/wholefile.yml +0 -0
  273. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/prompts/wholefile_func.yml +0 -0
  274. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  275. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  276. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
  277. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  278. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  279. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  280. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  281. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  282. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  283. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  284. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  285. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  286. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  287. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  288. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  289. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  290. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  291. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  292. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  293. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  294. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  295. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  296. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  297. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  298. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  299. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  300. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  301. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  302. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  303. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  304. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  305. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  306. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/README.md +0 -0
  307. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
  308. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  309. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  310. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  311. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  312. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  313. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  314. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  315. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  316. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  317. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  318. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  319. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  320. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  321. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  322. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  323. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  324. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  325. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  326. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  327. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  328. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  329. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  330. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  331. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  332. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  333. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  334. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/reasoning_tags.py +0 -0
  335. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/repo.py +0 -0
  336. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/repomap.py +0 -0
  337. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/report.py +0 -0
  338. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/resources/__init__.py +0 -0
  339. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/resources/model-metadata.json +0 -0
  340. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/resources/model-settings.yml +0 -0
  341. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/resources/providers.json +0 -0
  342. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/run_cmd.py +0 -0
  343. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/scrape.py +0 -0
  344. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/sendchat.py +0 -0
  345. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/sessions.py +0 -0
  346. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/special.py +0 -0
  347. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/__init__.py +0 -0
  348. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/_yield.py +0 -0
  349. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/command.py +0 -0
  350. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/command_interactive.py +0 -0
  351. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/delegate.py +0 -0
  352. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/explore_code.py +0 -0
  353. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/git_branch.py +0 -0
  354. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/git_diff.py +0 -0
  355. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/git_log.py +0 -0
  356. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/git_remote.py +0 -0
  357. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/git_show.py +0 -0
  358. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/git_status.py +0 -0
  359. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/grep.py +0 -0
  360. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/ls.py +0 -0
  361. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/read_range.py +0 -0
  362. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/resource_manager.py +0 -0
  363. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/thinking.py +0 -0
  364. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/undo_change.py +0 -0
  365. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/update_todo_list.py +0 -0
  366. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/utils/__init__.py +0 -0
  367. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/utils/base_tool.py +0 -0
  368. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/utils/helpers.py +0 -0
  369. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/utils/output.py +0 -0
  370. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/utils/registry.py +0 -0
  371. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/validations/__init__.py +0 -0
  372. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tools/validations/validations.py +0 -0
  373. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tui/__init__.py +0 -0
  374. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tui/app.py +0 -0
  375. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tui/io.py +0 -0
  376. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tui/styles.tcss +0 -0
  377. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tui/widgets/__init__.py +0 -0
  378. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tui/widgets/completion_bar.py +0 -0
  379. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tui/widgets/file_list.py +0 -0
  380. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tui/widgets/footer.py +0 -0
  381. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tui/widgets/input_area.py +0 -0
  382. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tui/widgets/input_container.py +0 -0
  383. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tui/widgets/key_hints.py +0 -0
  384. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tui/widgets/output.py +0 -0
  385. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tui/widgets/status_bar.py +0 -0
  386. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tui/widgets/subagent_pills.py +0 -0
  387. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/tui/worker.py +0 -0
  388. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/urls.py +0 -0
  389. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/utils.py +0 -0
  390. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/versioncheck.py +0 -0
  391. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/voice.py +0 -0
  392. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/waiting.py +0 -0
  393. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/watch.py +0 -0
  394. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/watch_prompts.py +0 -0
  395. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/Gemfile +0 -0
  396. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/_includes/blame.md +0 -0
  397. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/_includes/get-started.md +0 -0
  398. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/_includes/help-tip.md +0 -0
  399. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/_includes/help.md +0 -0
  400. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/_includes/install.md +0 -0
  401. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/_includes/keys.md +0 -0
  402. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/_includes/model-warnings.md +0 -0
  403. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/_includes/multi-line.md +0 -0
  404. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/_includes/python-m-aider.md +0 -0
  405. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/_includes/recording.css +0 -0
  406. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/_includes/recording.md +0 -0
  407. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/_includes/works-best.md +0 -0
  408. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/_sass/_features.scss +0 -0
  409. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/_sass/_footer.scss +0 -0
  410. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/_sass/_hero.scss +0 -0
  411. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/_sass/_info.scss +0 -0
  412. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/_sass/_layout.scss +0 -0
  413. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/_sass/_reset.scss +0 -0
  414. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/_sass/_testimonials.scss +0 -0
  415. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/_sass/_typography.scss +0 -0
  416. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/_sass/_variables.scss +0 -0
  417. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/_sass/custom/custom.scss +0 -0
  418. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/_sass/global-overrides.scss +0 -0
  419. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/config/adv-model-settings.md +0 -0
  420. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/config/agent-mode.md +0 -0
  421. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/config/api-keys.md +0 -0
  422. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/config/conf.md +0 -0
  423. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/config/custom-commands.md +0 -0
  424. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  425. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/config/dotenv.md +0 -0
  426. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/config/editor.md +0 -0
  427. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/config/hooks.md +0 -0
  428. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/config/mcp.md +0 -0
  429. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/config/model-aliases.md +0 -0
  430. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/config/model-configuration.md +0 -0
  431. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/config/options.md +0 -0
  432. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/config/reasoning.md +0 -0
  433. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/config/security.md +0 -0
  434. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/config/skills.md +0 -0
  435. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/config/subagents.md +0 -0
  436. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/config/tui.md +0 -0
  437. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/config/workspaces.md +0 -0
  438. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/config.md +0 -0
  439. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/git.md +0 -0
  440. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/index.md +0 -0
  441. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/install/docker.md +0 -0
  442. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/install.md +0 -0
  443. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/languages.md +0 -0
  444. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  445. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/legal/privacy.md +0 -0
  446. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/llms/anthropic.md +0 -0
  447. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/llms/azure.md +0 -0
  448. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/llms/bedrock.md +0 -0
  449. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/llms/cohere.md +0 -0
  450. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/llms/deepseek.md +0 -0
  451. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/llms/gemini.md +0 -0
  452. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/llms/github.md +0 -0
  453. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/llms/groq.md +0 -0
  454. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/llms/lm-studio.md +0 -0
  455. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/llms/ollama.md +0 -0
  456. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/llms/openai-compat.md +0 -0
  457. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/llms/openai.md +0 -0
  458. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/llms/openrouter.md +0 -0
  459. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/llms/other.md +0 -0
  460. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/llms/vertex.md +0 -0
  461. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/llms/warnings.md +0 -0
  462. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/llms/xai.md +0 -0
  463. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/llms.md +0 -0
  464. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/more/analytics.md +0 -0
  465. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/more/edit-formats.md +0 -0
  466. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/more/infinite-output.md +0 -0
  467. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/more-info.md +0 -0
  468. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/repomap.md +0 -0
  469. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/scripting.md +0 -0
  470. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
  471. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  472. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/troubleshooting/imports.md +0 -0
  473. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  474. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/troubleshooting/support.md +0 -0
  475. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  476. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  477. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/troubleshooting.md +0 -0
  478. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/usage/commands.md +0 -0
  479. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/usage/conventions.md +0 -0
  480. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/usage/copypaste.md +0 -0
  481. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/usage/images-urls.md +0 -0
  482. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/usage/lint-test.md +0 -0
  483. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/usage/modes.md +0 -0
  484. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/usage/not-code.md +0 -0
  485. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/usage/notifications.md +0 -0
  486. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/usage/optional.md +0 -0
  487. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/usage/sessions.md +0 -0
  488. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/usage/tips.md +0 -0
  489. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/usage/voice.md +0 -0
  490. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/usage/watch.md +0 -0
  491. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/docs/usage.md +0 -0
  492. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli/website/share/index.md +0 -0
  493. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli_dev.egg-info/SOURCES.txt +0 -0
  494. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli_dev.egg-info/dependency_links.txt +0 -0
  495. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli_dev.egg-info/entry_points.txt +0 -0
  496. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli_dev.egg-info/requires.txt +0 -0
  497. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli_dev.egg-info/scm_file_list.json +0 -0
  498. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/cecli_dev.egg-info/top_level.txt +0 -0
  499. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/docker/Dockerfile +0 -0
  500. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  501. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/pyproject.toml +0 -0
  502. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/pytest.ini +0 -0
  503. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/requirements/common-constraints.txt +0 -0
  504. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/requirements/requirements-dev.in +0 -0
  505. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/requirements/requirements-dev.txt +0 -0
  506. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/requirements/requirements-help.in +0 -0
  507. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/requirements/requirements-help.txt +0 -0
  508. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/requirements/requirements-playwright.in +0 -0
  509. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/requirements/requirements-playwright.txt +0 -0
  510. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/requirements/requirements.in +0 -0
  511. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/requirements/tree-sitter.in +0 -0
  512. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/requirements.txt +0 -0
  513. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/30k-image.py +0 -0
  514. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/Dockerfile.jekyll +0 -0
  515. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/__init__.py +0 -0
  516. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/blame.py +0 -0
  517. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/clean_metadata.py +0 -0
  518. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/compare-message-history.py +0 -0
  519. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/cost_analyzer.py +0 -0
  520. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/cost_calculator.py +0 -0
  521. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/dl_icons.py +0 -0
  522. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/filter-chat-mode.js +0 -0
  523. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/generate_providers.py +0 -0
  524. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/get_contributor_list.js +0 -0
  525. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/get_hashline.py +0 -0
  526. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/history_prompts.py +0 -0
  527. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/homepage.py +0 -0
  528. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/issues.py +0 -0
  529. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/jekyll_build.sh +0 -0
  530. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/jekyll_run.sh +0 -0
  531. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/logo_svg.py +0 -0
  532. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/pip-compile.sh +0 -0
  533. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/recording_audio.py +0 -0
  534. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/redact-cast.py +0 -0
  535. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/rename_to_cecli.py +0 -0
  536. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/tmux_record.sh +0 -0
  537. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/tsl_pack_langs.py +0 -0
  538. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/update-blame.sh +0 -0
  539. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/update-docs.sh +0 -0
  540. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/update-history.py +0 -0
  541. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/versionbump.py +0 -0
  542. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/scripts/yank-old-versions.py +0 -0
  543. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/setup.cfg +0 -0
  544. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/shim.pyproject.toml +0 -0
  545. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/__init__.py +0 -0
  546. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/__init__.py +0 -0
  547. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/conftest.py +0 -0
  548. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_aws_credentials.py +0 -0
  549. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_background_commands.py +0 -0
  550. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_coder.py +0 -0
  551. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_commands.py +0 -0
  552. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_custom_commands.py +0 -0
  553. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_deprecated.py +0 -0
  554. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_editblock.py +0 -0
  555. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_editor.py +0 -0
  556. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_exceptions.py +0 -0
  557. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_find_or_blocks.py +0 -0
  558. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_hashline.py +0 -0
  559. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_history.py +0 -0
  560. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_io.py +0 -0
  561. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_linter.py +0 -0
  562. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_main.py +0 -0
  563. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_model_info_manager.py +0 -0
  564. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_model_provider_manager.py +0 -0
  565. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_models.py +0 -0
  566. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_onboarding.py +0 -0
  567. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_plugin_manager.py +0 -0
  568. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_prompts.py +0 -0
  569. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_reasoning.py +0 -0
  570. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_repo.py +0 -0
  571. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_repomap.py +0 -0
  572. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_run_cmd.py +0 -0
  573. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_sanity_check_repo.py +0 -0
  574. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_scripting.py +0 -0
  575. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_sendchat.py +0 -0
  576. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_session_args.py +0 -0
  577. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_session_crypto.py +0 -0
  578. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_sessions.py +0 -0
  579. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_sessions_manager.py +0 -0
  580. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_skills.py +0 -0
  581. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_special.py +0 -0
  582. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_ssl_verification.py +0 -0
  583. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_udiff.py +0 -0
  584. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_urls.py +0 -0
  585. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_voice.py +0 -0
  586. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_watch.py +0 -0
  587. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/basic/test_wholefile.py +0 -0
  588. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/coders/test_coder_switching.py +0 -0
  589. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/coders/test_copypaste_coder.py +0 -0
  590. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/commands/test_compaction.py +0 -0
  591. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/commands/test_switch_agent.py +0 -0
  592. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/conftest.py +0 -0
  593. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/conversations/test_conversation_integration.py +0 -0
  594. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/conversations/test_conversation_system.py +0 -0
  595. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  596. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/chat-history.md +0 -0
  597. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/arduino/test.ino +0 -0
  598. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/bash/test.sh +0 -0
  599. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/c/test.c +0 -0
  600. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/chatito/test.chatito +0 -0
  601. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/clojure/test.clj +0 -0
  602. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  603. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/cpp/test.cpp +0 -0
  604. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/csharp/test.cs +0 -0
  605. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/d/test.d +0 -0
  606. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/dart/test.dart +0 -0
  607. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/elisp/test.el +0 -0
  608. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/elixir/test.ex +0 -0
  609. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/elm/test.elm +0 -0
  610. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/gleam/test.gleam +0 -0
  611. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/go/test.go +0 -0
  612. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/haskell/test.hs +0 -0
  613. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/hcl/test.tf +0 -0
  614. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/java/test.java +0 -0
  615. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/javascript/test.js +0 -0
  616. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/kotlin/test.kt +0 -0
  617. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/lua/test.lua +0 -0
  618. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/matlab/test.m +0 -0
  619. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/ocaml/test.ml +0 -0
  620. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  621. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/php/test.php +0 -0
  622. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/pony/test.pony +0 -0
  623. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/properties/test.properties +0 -0
  624. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/python/test.py +0 -0
  625. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/ql/test.ql +0 -0
  626. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/r/test.r +0 -0
  627. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/racket/test.rkt +0 -0
  628. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/ruby/test.rb +0 -0
  629. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/rust/test.rs +0 -0
  630. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/scala/test.scala +0 -0
  631. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/solidity/test.sol +0 -0
  632. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/swift/test.swift +0 -0
  633. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/tsx/test.tsx +0 -0
  634. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/typescript/test.ts +0 -0
  635. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/udev/test.rules +0 -0
  636. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/languages/zig/test.zig +0 -0
  637. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/sample-code-base/sample.js +0 -0
  638. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/sample-code-base/sample.py +0 -0
  639. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  640. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/watch.js +0 -0
  641. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/watch.lisp +0 -0
  642. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/watch.py +0 -0
  643. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/fixtures/watch_question.js +0 -0
  644. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/help/test_help.py +0 -0
  645. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/helpers/monorepo/LOCAL_WORKSPACE.md +0 -0
  646. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/helpers/monorepo/test_config.py +0 -0
  647. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/helpers/monorepo/test_config_active.py +0 -0
  648. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
  649. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/helpers/monorepo/test_local_workspace.py +0 -0
  650. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
  651. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/helpers/monorepo/test_workspace.py +0 -0
  652. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/helpers/observations/test_observation_service.py +0 -0
  653. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/hooks/__init__.py +0 -0
  654. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/hooks/test_base.py +0 -0
  655. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/hooks/test_manager.py +0 -0
  656. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/hooks/test_registry.py +0 -0
  657. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/integration/test_agent_mcp_management.py +0 -0
  658. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/integration/test_mcp_management.py +0 -0
  659. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/mcp/__init__.py +0 -0
  660. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/mcp/test_manager.py +0 -0
  661. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/scrape/test_playwright_disable.py +0 -0
  662. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/scrape/test_scrape.py +0 -0
  663. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/subagents/__init__.py +0 -0
  664. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/subagents/conftest.py +0 -0
  665. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/subagents/test_commands.py +0 -0
  666. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/subagents/test_config.py +0 -0
  667. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/subagents/test_delegate.py +0 -0
  668. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/subagents/test_finished.py +0 -0
  669. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/subagents/test_io_proxy.py +0 -0
  670. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/subagents/test_service.py +0 -0
  671. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/subagents/test_sub_agent_coder.py +0 -0
  672. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/tools/test_extractions.py +0 -0
  673. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/tools/test_get_lines.py +0 -0
  674. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/tools/test_git_branch.py +0 -0
  675. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/tools/test_git_diff.py +0 -0
  676. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/tools/test_grep.py +0 -0
  677. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/tools/test_insert_block.py +0 -0
  678. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/tools/test_read_range_execute.py +0 -0
  679. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/tools/test_registry.py +0 -0
  680. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/tools/test_remove_mcp_tool.py +0 -0
  681. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/tools/test_tool_arguments.py +0 -0
  682. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/tools/test_tools_load_mcp_tool.py +0 -0
  683. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/tools/validations.py +0 -0
  684. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/tui/test_app.py +0 -0
  685. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/unit/test_load_mcp.py +0 -0
  686. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/unit/test_remove_mcp.py +0 -0
  687. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/tests/unit/test_unit_load_mcp_tool.py +0 -0
  688. {cecli_dev-0.100.11rc2 → cecli_dev-0.100.11rc3}/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.11rc2
3
+ Version: 0.100.11rc3
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.11rc2'
22
- __version_tuple__ = version_tuple = (0, 100, 11, 'rc2')
21
+ __version__ = version = '0.100.11rc3'
22
+ __version_tuple__ = version_tuple = (0, 100, 11, 'rc3')
23
23
 
24
- __commit_id__ = commit_id = 'ge6afc3ffc'
24
+ __commit_id__ = commit_id = 'g11ba4d315'
@@ -1427,109 +1427,89 @@ def _apply_closure_safeguard(
1427
1427
  original_content: str,
1428
1428
  resolved_ops: list,
1429
1429
  file_path: str = None,
1430
- ) -> list:
1430
+ ) -> tuple[list, list]:
1431
1431
  """
1432
- Use tree-sitter to heal edit boundaries by simulating edits and checking syntax.
1433
-
1434
- For each replace/delete operation, this simulates applying the edit with
1435
- the replacement text, parses the resulting code with tree-sitter, and
1436
- checks if the result is syntactically valid (no ERROR/MISSING nodes).
1437
-
1438
- If the edit produces invalid syntax (e.g., missing closing braces),
1439
- it progressively expands/contracts the start and end boundaries by a
1440
- step and re-tests until the resulting code parses correctly or the
1441
- maximum number of expansion steps is exhausted.
1442
-
1443
- This prevents the common LLM edit error of "eating" outer scope
1444
- closing braces, parentheses, or brackets by finding the nearest
1445
- syntactically valid edit boundary.
1446
-
1447
- Args:
1448
- original_content: Original source code (without hashlines)
1449
- resolved_ops: List of resolved operation dicts with start_idx/end_idx
1450
- file_path: File path to determine tree-sitter language
1432
+ Use tree-sitter to heal edit boundaries by simulating edits and scoring by AST health.
1433
+ Evicts edits that strictly increase the number of syntax errors.
1451
1434
 
1452
1435
  Returns:
1453
- Modified resolved_ops with healed boundaries
1436
+ tuple: (safe_resolved_ops, rejected_ops)
1437
+ - safe_resolved_ops: Operations with healed boundaries
1438
+ - rejected_ops: List of dicts with {"index": int, "error": str} for evicted operations
1454
1439
  """
1455
-
1456
- def is_syntactically_valid(source_bytes: bytes, parser) -> bool:
1457
- try:
1458
- tree = parser.parse(source_bytes)
1459
- return not tree.root_node.has_error
1460
- except Exception:
1461
- return False
1462
-
1463
- def apply_edit(
1464
- source_lines: list[str],
1465
- start: int,
1466
- end: int,
1467
- replacement: list[str],
1468
- ) -> bytes:
1469
- """Applies the edit and returns the new source code as bytes."""
1470
- new_lines = source_lines[:start] + replacement + source_lines[end + 1 :]
1471
- return "\n".join(new_lines).encode("utf-8")
1472
-
1473
- def count_closures(source_bytes: bytes) -> int:
1474
- """Counts the total number of brackets, braces, and parenthesis."""
1475
- return sum(source_bytes.count(b) for b in b"{}[]()")
1476
-
1477
- def get_indentation(line: str) -> int:
1478
- """Helper to safely calculate the leading whitespace of a line."""
1479
- return len(line) - len(line.lstrip(" \t"))
1480
-
1481
1440
  if not resolved_ops or not file_path:
1482
- return resolved_ops
1441
+ return resolved_ops, []
1483
1442
 
1484
- # Determine language from file path
1485
1443
  from cecli.helpers.grep_ast.parsers import filename_to_lang
1486
1444
  from cecli.helpers.grep_ast.tsl import get_language, get_parser
1487
1445
 
1488
1446
  lang = filename_to_lang(file_path)
1489
1447
  if not lang:
1490
- return resolved_ops
1448
+ return resolved_ops, []
1491
1449
 
1492
- # Set up tree-sitter parser
1493
1450
  try:
1494
1451
  language = get_language(lang) # noqa
1495
1452
  parser = get_parser(lang)
1496
1453
  except Exception:
1497
- # Can't determine language, skip safeguard
1498
- return resolved_ops
1454
+ return resolved_ops, []
1499
1455
 
1500
1456
  source_lines = original_content.splitlines()
1457
+ source_bytes = original_content.encode("utf-8")
1458
+
1459
+ def apply_edit(
1460
+ lines: list[str],
1461
+ start: int,
1462
+ end: int,
1463
+ replacement: list[str],
1464
+ ) -> bytes:
1465
+ """Applies the edit and returns the new source code as bytes."""
1466
+ new_lines = lines[:start] + replacement + lines[end + 1 :]
1467
+ return "\n".join(new_lines).encode("utf-8")
1468
+
1469
+ def count_ast_errors(node) -> int:
1470
+ """
1471
+ Recursively counts MISSING or ERROR nodes in the AST.
1472
+ """
1473
+ errors = 0
1474
+ if node.is_missing or node.type == "ERROR":
1475
+ errors += 1
1476
+ for child in node.children:
1477
+ errors += count_ast_errors(child)
1478
+ return errors
1479
+
1480
+ # Establish the baseline syntax health of the original file
1481
+ base_tree = parser.parse(source_bytes)
1482
+ baseline_error_count = count_ast_errors(base_tree.root_node)
1483
+
1484
+ safe_resolved_ops = []
1485
+ rejected_ops = []
1501
1486
 
1502
1487
  for resolved in resolved_ops:
1503
1488
  op = resolved["op"]
1504
1489
  if op["operation"] not in {"replace", "insert", "delete"}:
1490
+ safe_resolved_ops.append(resolved)
1505
1491
  continue
1506
1492
 
1507
1493
  llm_start = resolved["start_idx"]
1508
1494
  llm_end = resolved["end_idx"]
1509
1495
 
1510
- # Clamp to valid bounds
1511
1496
  if llm_start < 0 or llm_start >= len(source_lines):
1497
+ safe_resolved_ops.append(resolved)
1512
1498
  continue
1513
1499
  if llm_end < llm_start:
1500
+ safe_resolved_ops.append(resolved)
1514
1501
  continue
1515
1502
 
1516
- # Get replacement text
1517
1503
  replacement_text = op.get("text", "") or ""
1518
1504
  if op["operation"] == "delete":
1519
1505
  replacement_text = ""
1520
1506
  repl_lines = replacement_text.splitlines()
1521
1507
 
1522
- # Clamp end to valid range
1523
1508
  llm_end = min(llm_end, len(source_lines) - 1)
1524
1509
 
1525
- # --- THE HEALING LOOP ---
1526
- # Generate all combinations of offsets in {-2, -1, 0, 1, 2} for both
1527
- # start and end, then filter to syntactically valid edits and rank
1528
- # by cumulative movement (abs(start_shift) + abs(end_shift)) as a
1529
- # primary criterion to bias toward minimal range perturbation.
1530
-
1531
1510
  offsets = [0, 1, -1, 2, -2]
1532
1511
  all_candidates = []
1512
+
1533
1513
  for start_shift in offsets:
1534
1514
  for end_shift in offsets:
1535
1515
  candidate_start = max(0, llm_start - start_shift)
@@ -1538,7 +1518,6 @@ def _apply_closure_safeguard(
1538
1518
  if candidate_end < candidate_start:
1539
1519
  continue
1540
1520
 
1541
- # Skip candidates that overlap with other operations' ranges
1542
1521
  overlaps = False
1543
1522
  for other_op in resolved_ops:
1544
1523
  if other_op is resolved:
@@ -1552,87 +1531,52 @@ def _apply_closure_safeguard(
1552
1531
  if overlaps:
1553
1532
  continue
1554
1533
 
1555
- # Skip candidates that would create duplicate adjacent content at edit boundaries
1556
1534
  if _would_create_duplicate_content(
1557
1535
  source_lines, candidate_start, candidate_end, repl_lines
1558
1536
  ):
1559
1537
  continue
1560
1538
 
1561
- test_source = apply_edit(
1539
+ test_source_bytes = apply_edit(
1562
1540
  source_lines,
1563
1541
  candidate_start,
1564
1542
  candidate_end,
1565
1543
  repl_lines,
1566
1544
  )
1567
1545
 
1568
- if is_syntactically_valid(test_source, parser):
1569
- # Determine properties for tiebreaking
1570
- is_partial = (start_shift == 0) ^ (end_shift == 0) # XOR: exactly one is zero
1571
- is_downward = start_shift <= 0 # Negative/zero shift = moving down
1572
- is_both = start_shift == end_shift # Whole range expansion/contraction
1573
- closures = count_closures(test_source)
1574
- start_line_match = source_lines[candidate_start] == source_lines[llm_start]
1575
- end_line_match = source_lines[candidate_end] == source_lines[llm_end]
1576
- cumulative_movement = abs(start_shift) + abs(end_shift)
1577
-
1578
- # --- INDENTATION SCORING ---
1579
- indent_score = 0
1580
- if repl_lines:
1581
- # Safely grab the first and last non-empty replacement lines
1582
- first_repl = next((line for line in repl_lines if line.strip()), "")
1583
- last_repl = next(
1584
- (line for line in reversed(repl_lines) if line.strip()), ""
1585
- )
1586
-
1587
- # Check Start Boundary Match
1588
- if first_repl and candidate_start < len(source_lines):
1589
- source_start_line = source_lines[candidate_start]
1590
- if source_start_line.strip() and get_indentation(
1591
- first_repl
1592
- ) == get_indentation(source_start_line):
1593
- indent_score += 1
1594
-
1595
- # Check End Boundary Match
1596
- if last_repl and candidate_end < len(source_lines):
1597
- source_end_line = source_lines[candidate_end]
1598
- if source_end_line.strip() and get_indentation(
1599
- last_repl
1600
- ) == get_indentation(source_end_line):
1601
- indent_score += 1
1602
-
1603
- all_candidates.append(
1604
- {
1605
- "start_idx": candidate_start,
1606
- "end_idx": candidate_end,
1607
- "start_line_match": start_line_match,
1608
- "end_line_match": end_line_match,
1609
- "source_len": len(test_source),
1610
- "is_partial": is_partial,
1611
- "is_downward": is_downward,
1612
- "is_both": is_both,
1613
- "closure_count": closures,
1614
- "indent_score": indent_score,
1615
- "cumulative_movement": cumulative_movement,
1616
- "offsets": (start_shift, end_shift),
1617
- }
1618
- )
1546
+ # Parse the candidate to get structural truth
1547
+ edited_tree = parser.parse(test_source_bytes)
1548
+ ast_error_count = count_ast_errors(edited_tree.root_node)
1549
+
1550
+ is_partial = (start_shift == 0) ^ (end_shift == 0)
1551
+ is_downward = start_shift <= 0
1552
+ is_both = start_shift == end_shift
1553
+ start_line_match = source_lines[candidate_start] == source_lines[llm_start]
1554
+ end_line_match = source_lines[candidate_end] == source_lines[llm_end]
1555
+ cumulative_movement = abs(start_shift) + abs(end_shift)
1556
+
1557
+ all_candidates.append(
1558
+ {
1559
+ "start_idx": candidate_start,
1560
+ "end_idx": candidate_end,
1561
+ "ast_error_count": ast_error_count,
1562
+ "start_line_match": start_line_match,
1563
+ "end_line_match": end_line_match,
1564
+ "cumulative_movement": cumulative_movement,
1565
+ "is_partial": is_partial,
1566
+ "is_downward": is_downward,
1567
+ "is_both": is_both,
1568
+ }
1569
+ )
1619
1570
 
1620
1571
  if all_candidates:
1621
- # Sort using the new hierarchy:
1622
- # 1. Cumulative movement (ascending less movement is better)
1623
- # 2. Fewest total closures (minimize structural pollution)
1624
- # 3. Indentation Score (Descending: 2 is better than 0)
1625
- # 4. Longest source (preserve more file content)
1626
- # 5. Partial expansions over full range shifts
1627
- # 6. Downward changes over upward changes
1572
+ # 1. AST Health is the absolute highest priority.
1573
+ # 2. Cumulative movement acts as the tie-breaker for equally valid ASTs.
1628
1574
  all_candidates.sort(
1629
1575
  key=lambda r: (
1576
+ r["ast_error_count"], # Ascending: fewer syntax errors wins
1630
1577
  not r["start_line_match"], # Descending: True first
1631
1578
  not r["end_line_match"], # Descending: True first
1632
1579
  r["cumulative_movement"], # Ascending: smaller is better
1633
- -r["indent_score"], # Descending: larger score is better (2 > 1 > 0)
1634
- -r["source_len"], # Descending: larger is better
1635
- r["closure_count"], # Ascending: smaller is better
1636
1580
  not r["is_partial"], # Booleans: False comes before True
1637
1581
  not r["is_downward"], # Booleans: False comes before True
1638
1582
  r["is_both"], # Booleans: False comes before True
@@ -1640,10 +1584,30 @@ def _apply_closure_safeguard(
1640
1584
  )
1641
1585
 
1642
1586
  best = all_candidates[0]
1587
+
1588
+ # EVICTION GATE: If the absolute best boundary still introduces NEW
1589
+ # syntax errors compared to the original file, discard the edit entirely.
1590
+ if best["ast_error_count"] > baseline_error_count:
1591
+
1592
+ rejected_ops.append(
1593
+ {
1594
+ "index": resolved["index"],
1595
+ "error": (
1596
+ f"Edit introduces new syntax error(s) (baseline: {baseline_error_count}, "
1597
+ f"after edit: {best['ast_error_count']}) and none of the "
1598
+ f"{len(all_candidates)} candidate boundary adjustments could resolve it"
1599
+ ),
1600
+ "operation": op,
1601
+ }
1602
+ )
1603
+ continue
1604
+
1643
1605
  resolved["start_idx"] = best["start_idx"]
1644
1606
  resolved["end_idx"] = best["end_idx"]
1645
1607
 
1646
- return resolved_ops
1608
+ safe_resolved_ops.append(resolved)
1609
+
1610
+ return safe_resolved_ops, rejected_ops
1647
1611
 
1648
1612
 
1649
1613
  def apply_hashline_operations(
@@ -1794,7 +1758,16 @@ def apply_hashline_operations(
1794
1758
 
1795
1759
  if file_path:
1796
1760
  # Apply tree-sitter based closure safeguard to snap boundaries to AST nodes
1797
- resolved_ops = _apply_closure_safeguard(original_content, resolved_ops, file_path)
1761
+ safe_ops, rejected_ops = _apply_closure_safeguard(original_content, resolved_ops, file_path)
1762
+ resolved_ops = safe_ops
1763
+ for rejected in rejected_ops:
1764
+ failed_ops.append(
1765
+ {
1766
+ "index": rejected["index"],
1767
+ "error": rejected["error"],
1768
+ "operation": rejected["operation"],
1769
+ }
1770
+ )
1798
1771
 
1799
1772
  # Fix edit boundaries where replacement content duplicates adjacent lines
1800
1773
  source_lines = original_content.splitlines()
@@ -24,6 +24,12 @@ OPERATION_NOUNS = {
24
24
  }
25
25
 
26
26
 
27
+ USER_EDIT_CATEGORIES = {
28
+ "no_changes": "No Changes",
29
+ "syntax_errors": "Syntax Errors",
30
+ }
31
+
32
+
27
33
  class Tool(BaseTool):
28
34
  NORM_NAME = "edittext"
29
35
  TRACK_INVOCATIONS = False
@@ -37,54 +43,58 @@ class Tool(BaseTool):
37
43
  "name": "EditText",
38
44
  "description": (
39
45
  "Edit text in one or more files using content ID markers. "
40
- "Supports replace and delete operations in a single call. "
41
- "Can handle an array of edits across multiple files. "
42
- "Each edit must include its own file_path and operation type. "
43
- "Use content ID ranges with the start_line and end_line parameters with format "
44
- "`content_id::` (the content id with the :: demarcator). For empty files, use `@000` as the "
45
- "content ID references. "
46
- "Start and end values are inclusive: start and end content IDs both count as "
47
- "part of the range to replace or delete. "
48
- "Edits within a file must not be adjacent or overlapping."
46
+ "You can perform multiple 'replace' or 'delete' operations in a single call. "
47
+ "CRITICAL RULES: "
48
+ "1. Start and end content IDs are INCLUSIVE. Both will be modified or deleted. "
49
+ "2. Edits within the same file MUST NOT be adjacent or overlapping. "
50
+ "3. For empty files, you MUST use '@000' as the content ID reference."
49
51
  ),
50
52
  "parameters": {
51
53
  "type": "object",
52
54
  "properties": {
53
55
  "edits": {
54
56
  "type": "array",
57
+ "description": (
58
+ "List of edit operations to apply. Each edit requires a "
59
+ "file path, operation type, start/end IDs, and text."
60
+ ),
55
61
  "items": {
56
62
  "type": "object",
57
63
  "properties": {
58
64
  "file_path": {
59
65
  "type": "string",
60
- "description": "Required file path for this specific edit.",
66
+ "description": (
67
+ "The absolute or relative path to the file being edited."
68
+ ),
61
69
  },
62
70
  "operation": {
63
71
  "type": "string",
64
72
  "enum": ["replace", "delete"],
65
73
  "description": (
66
- "The type of operation: 'replace' (replace range with"
67
- " text) or 'delete' (remove range)."
74
+ "Choose 'replace' to swap the ID range with new text, "
75
+ "or 'delete' to remove the ID range entirely."
68
76
  ),
69
77
  },
70
78
  "start_line": {
71
79
  "type": "string",
72
80
  "description": (
73
- "Content ID for start line. Only include the id and demarcator."
81
+ "The exact content ID and demarcator for the start of the edit "
82
+ "(e.g., 'abc::'). For empty files, use '@000'."
74
83
  ),
75
84
  },
76
85
  "end_line": {
77
86
  "type": "string",
78
87
  "description": (
79
- "Content ID for end line. Only include the id and demarcator."
88
+ "The exact content ID and demarcator for the end of the edit "
89
+ "(e.g., 'xyz::'). For empty files, use '@000'."
80
90
  ),
81
91
  },
82
92
  "text": {
83
93
  "type": "string",
84
94
  "description": (
85
- "Text content for replace operations. "
86
- "Empty string for delete operations. "
87
- "Do not include content IDs inside replacement text"
95
+ "The exact replacement text. If operation is 'delete', "
96
+ 'this MUST be an empty string (""). '
97
+ "NEVER include content IDs in this text."
88
98
  ),
89
99
  },
90
100
  },
@@ -96,9 +106,11 @@ class Tool(BaseTool):
96
106
  "text",
97
107
  ],
98
108
  },
99
- "description": "Array of edits to apply.",
100
109
  },
101
- "change_id": {"type": "string"},
110
+ "change_id": {
111
+ "type": "string",
112
+ "description": "Optional tracking ID for this batch of edits.",
113
+ },
102
114
  },
103
115
  "required": ["edits"],
104
116
  },
@@ -255,7 +267,9 @@ class Tool(BaseTool):
255
267
 
256
268
  except Exception as e:
257
269
  # Record failed edit but continue with others
258
- file_failed_edits.append(f"Edit {edit_index + 1}: {str(e)}")
270
+ file_failed_edits.append(
271
+ f"Edit {edit_index + 1} - {cls._categorize_edit_error(str(e))}"
272
+ )
259
273
  continue
260
274
 
261
275
  # Apply all operations in batch
@@ -269,13 +283,27 @@ class Tool(BaseTool):
269
283
  if new_content != original_content:
270
284
  file_successful_edits += len(successful_ops)
271
285
  else:
272
- raise ToolError("Invalid Edit - Update content ID bounds")
286
+ # Be specific about why content didn't change
287
+ if failed_ops:
288
+ error_details = "; ".join(
289
+ f"Edit {op['index'] + 1}: {op['error']}" for op in failed_ops
290
+ )
291
+ raise ToolError(
292
+ f"Invalid Edit - Update content ID bounds: {error_details}"
293
+ )
294
+ else:
295
+ raise ToolError(
296
+ "Invalid Edit - Update content ID bounds - "
297
+ "all edits resulted in unchanged content"
298
+ )
273
299
 
274
300
  if len(failed_ops):
275
301
  for failed_op in failed_ops:
276
302
  op_index = failed_op["index"]
277
303
  op_error = failed_op["error"]
278
- file_failed_edits.append(f"Edit {op_index + 1}: {str(op_error)}")
304
+ file_failed_edits.append(
305
+ f"Edit {op_index + 1} - {cls._categorize_edit_error(str(op_error))}"
306
+ )
279
307
  except Exception as e:
280
308
  # If batch operation fails, mark all operations as failed
281
309
  for edit_index, _ in file_edits:
@@ -339,7 +367,9 @@ class Tool(BaseTool):
339
367
  except Exception as e:
340
368
  # Record all edits for this file as failed
341
369
  for edit_index, _ in file_edits:
342
- all_failed_edits.append(f"Edit {edit_index + 1}: {str(e)}")
370
+ all_failed_edits.append(
371
+ f"Edit {edit_index + 1} - {cls._categorize_edit_error(str(e))}"
372
+ )
343
373
  continue
344
374
 
345
375
  # If dry run, return all results
@@ -360,10 +390,6 @@ class Tool(BaseTool):
360
390
  raise ToolError(error_msg)
361
391
 
362
392
  # 5. Format and return result
363
- # Log failed edit messages to console for visibility
364
- if all_failed_edits:
365
- for failed_msg in all_failed_edits:
366
- coder.io.tool_error(failed_msg)
367
393
 
368
394
  if files_processed == 1:
369
395
  # Single file case
@@ -459,6 +485,9 @@ class Tool(BaseTool):
459
485
  original_content = coder.io.read_text(abs_path)
460
486
 
461
487
  if original_content is not None:
488
+ start_line, end_line = resolve_content_to_hashline_ids(
489
+ original_content, start_line, end_line
490
+ )
462
491
  diff_output = get_hashline_diff(
463
492
  original_content=strip_hashline(original_content),
464
493
  start_line_hash=start_line,
@@ -483,3 +512,21 @@ class Tool(BaseTool):
483
512
  coder.io.tool_output("")
484
513
 
485
514
  tool_footer(coder=coder, tool_response=tool_response, params=params)
515
+
516
+ @classmethod
517
+ def _categorize_edit_error(cls, error_msg: str) -> str:
518
+ """Categorize an edit error message into a user-friendly display category.
519
+
520
+ Maps errors from apply_hashline_operations to simplified category names
521
+ for user-facing output instead of displaying full error details.
522
+
523
+ Args:
524
+ error_msg: The raw error message string.
525
+
526
+ Returns:
527
+ str: The display category name (e.g., "No Changes", "Syntax Errors").
528
+ """
529
+ error_lower = error_msg.lower()
530
+ if "syntax error" in error_lower or "introduces new syntax" in error_lower:
531
+ return USER_EDIT_CATEGORIES["syntax_errors"]
532
+ return USER_EDIT_CATEGORIES["no_changes"]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cecli-dev
3
- Version: 0.100.11rc2
3
+ Version: 0.100.11rc3
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,7 +1,7 @@
1
1
  {
2
- "tag": "0.100.11rc2",
2
+ "tag": "0.100.11rc3",
3
3
  "distance": 0,
4
- "node": "ge6afc3ffc1f3bdf42e47e0ece67faa27674c9362",
4
+ "node": "g11ba4d31552be3bd51e2dc4fa32c676f0e5c783d",
5
5
  "dirty": false,
6
6
  "branch": "HEAD",
7
7
  "node_date": "2026-06-30"