cecli-dev 0.100.11rc6__tar.gz → 1.0.0rc1__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 (711) hide show
  1. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/PKG-INFO +1 -1
  2. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/_version.py +3 -3
  3. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/args.py +10 -1
  4. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/change_tracker.py +1 -1
  5. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/agent_coder.py +45 -8
  6. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/base_coder.py +50 -16
  7. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/add.py +3 -2
  8. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/clear.py +2 -3
  9. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/read_only.py +3 -2
  10. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/read_only_stub.py +3 -2
  11. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/reset.py +1 -1
  12. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/agents/service.py +8 -3
  13. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/conversation/files.py +28 -8
  14. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/conversation/integration.py +12 -60
  15. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/grep_ast/grep_ast.py +15 -8
  16. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/hashline.py +113 -18
  17. cecli_dev-1.0.0rc1/cecli/helpers/hashpos/hashpos.py +247 -0
  18. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/model_providers.py +16 -0
  19. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/observations/service.py +9 -3
  20. cecli_dev-1.0.0rc1/cecli/helpers/orchestration/__init__.py +35 -0
  21. cecli_dev-1.0.0rc1/cecli/helpers/orchestration/environment.py +616 -0
  22. cecli_dev-1.0.0rc1/cecli/helpers/orchestration/security.py +101 -0
  23. cecli_dev-1.0.0rc1/cecli/helpers/orchestration/service.py +30 -0
  24. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/responses.py +1 -1
  25. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/skills.py +5 -0
  26. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/hooks/__init__.py +2 -0
  27. cecli_dev-1.0.0rc1/cecli/hooks/helpers.py +188 -0
  28. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/io.py +45 -15
  29. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/llm.py +5 -1
  30. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/main.py +26 -0
  31. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/mcp/manager.py +30 -0
  32. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/mcp/server.py +143 -4
  33. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/agent.yml +15 -10
  34. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/base.yml +1 -0
  35. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/subagent.yml +15 -10
  36. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/sendchat.py +1 -1
  37. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/__init__.py +6 -5
  38. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/_yield.py +13 -5
  39. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/command.py +55 -18
  40. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/command_interactive.py +11 -4
  41. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/delegate.py +15 -5
  42. cecli_dev-0.100.11rc6/cecli/tools/edit_text.py → cecli_dev-1.0.0rc1/cecli/tools/edit_file.py +85 -65
  43. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/explore_code.py +17 -11
  44. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/git_branch.py +15 -6
  45. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/git_diff.py +11 -4
  46. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/git_log.py +9 -3
  47. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/git_remote.py +11 -4
  48. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/git_show.py +10 -3
  49. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/git_status.py +10 -3
  50. cecli_dev-1.0.0rc1/cecli/tools/grep.py +596 -0
  51. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/ls.py +23 -10
  52. cecli_dev-1.0.0rc1/cecli/tools/orchestrate.py +75 -0
  53. cecli_dev-0.100.11rc6/cecli/tools/read_range.py → cecli_dev-1.0.0rc1/cecli/tools/read_file.py +626 -338
  54. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/resource_manager.py +14 -13
  55. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/thinking.py +4 -1
  56. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/undo_change.py +16 -6
  57. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/update_todo_list.py +16 -10
  58. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/utils/base_tool.py +10 -1
  59. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/utils/helpers.py +2 -2
  60. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/utils/registry.py +1 -1
  61. cecli_dev-1.0.0rc1/cecli/tools/utils/responses.py +101 -0
  62. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tui/__init__.py +1 -0
  63. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/config/agent-mode.md +8 -6
  64. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/config/hooks.md +89 -4
  65. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/config/mcp.md +18 -0
  66. cecli_dev-1.0.0rc1/cecli/website/docs/config/model-providers.md +180 -0
  67. cecli_dev-0.100.11rc6/cecli/website/docs/config.md → cecli_dev-1.0.0rc1/cecli/website/docs/config/retries.md +5 -42
  68. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/config/subagents.md +2 -2
  69. cecli_dev-1.0.0rc1/cecli/website/docs/config.md +78 -0
  70. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli_dev.egg-info/PKG-INFO +1 -1
  71. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli_dev.egg-info/SOURCES.txt +22 -2
  72. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli_dev.egg-info/scm_file_list.json +22 -2
  73. cecli_dev-1.0.0rc1/cecli_dev.egg-info/scm_version.json +8 -0
  74. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/get_hashline.py +2 -0
  75. cecli_dev-1.0.0rc1/scripts/optimize_tokens.sh +113 -0
  76. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_hashline.py +27 -40
  77. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_skills.py +6 -2
  78. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/coders/test_coder_switching.py +1 -1
  79. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/helpers/observations/test_observation_service.py +30 -12
  80. cecli_dev-1.0.0rc1/tests/helpers/test_orchestration.py +718 -0
  81. cecli_dev-1.0.0rc1/tests/mcp/conftest.py +138 -0
  82. cecli_dev-1.0.0rc1/tests/mcp/mock_server.py +132 -0
  83. cecli_dev-1.0.0rc1/tests/mcp/test_keepalive_concurrency.py +136 -0
  84. cecli_dev-1.0.0rc1/tests/mcp/test_keepalive_config.py +143 -0
  85. cecli_dev-1.0.0rc1/tests/mcp/test_keepalive_integration.py +147 -0
  86. cecli_dev-1.0.0rc1/tests/mcp/test_keepalive_logging.py +82 -0
  87. cecli_dev-1.0.0rc1/tests/mcp/test_keepalive_resilience.py +132 -0
  88. cecli_dev-1.0.0rc1/tests/mcp/test_keepalive_unit.py +151 -0
  89. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/subagents/test_delegate.py +20 -17
  90. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/subagents/test_finished.py +6 -5
  91. cecli_dev-1.0.0rc1/tests/test_requests.py +765 -0
  92. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/tools/test_extractions.py +11 -11
  93. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/tools/test_get_lines.py +15 -15
  94. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/tools/test_git_branch.py +2 -2
  95. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/tools/test_git_diff.py +1 -1
  96. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/tools/test_grep.py +7 -2
  97. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/tools/test_insert_block.py +12 -12
  98. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/tools/test_read_range_execute.py +49 -49
  99. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/tools/test_registry.py +14 -14
  100. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/tools/test_remove_mcp_tool.py +10 -10
  101. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/tools/test_tools_load_mcp_tool.py +12 -12
  102. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/unit/test_load_mcp.py +14 -14
  103. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/unit/test_remove_mcp.py +12 -12
  104. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/unit/test_unit_load_mcp_tool.py +5 -4
  105. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/unit/test_unit_remove_mcp_tool.py +12 -12
  106. cecli_dev-0.100.11rc6/cecli/helpers/hashpos/hashpos.py +0 -217
  107. cecli_dev-0.100.11rc6/cecli/tools/grep.py +0 -280
  108. cecli_dev-0.100.11rc6/cecli_dev.egg-info/scm_version.json +0 -8
  109. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/.dockerignore +0 -0
  110. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/.flake8 +0 -0
  111. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/.gitattributes +0 -0
  112. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  113. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/.github/workflows/check_pypi_version.yml +0 -0
  114. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/.github/workflows/docker-build-test.yml +0 -0
  115. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/.github/workflows/docker-release.yml +0 -0
  116. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/.github/workflows/issues.yml +0 -0
  117. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/.github/workflows/pages.yml +0 -0
  118. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/.github/workflows/pre-commit.yml +0 -0
  119. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/.github/workflows/release.yml +0 -0
  120. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/.github/workflows/ubuntu-tests.yml +0 -0
  121. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/.github/workflows/windows-tests.yml +0 -0
  122. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/.github/workflows/windows_check_pypi_version.yml +0 -0
  123. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/.gitignore +0 -0
  124. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/.pre-commit-config.yaml +0 -0
  125. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/CHANGELOG.md +0 -0
  126. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/CNAME +0 -0
  127. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/CONTRIBUTING.md +0 -0
  128. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/HISTORY.md +0 -0
  129. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/LICENSE.txt +0 -0
  130. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/MANIFEST.in +0 -0
  131. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/README.md +0 -0
  132. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/Dockerfile +0 -0
  133. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/README.md +0 -0
  134. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/__init__.py +0 -0
  135. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/benchmark.py +0 -0
  136. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/benchmark_classic.py +0 -0
  137. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/clone-exercism.sh +0 -0
  138. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/cpp-test.sh +0 -0
  139. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/docker.sh +0 -0
  140. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/docker_build.sh +0 -0
  141. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/install-docker-ubuntu.sh +0 -0
  142. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/npm-test.sh +0 -0
  143. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/over_time.py +0 -0
  144. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/plot.sh +0 -0
  145. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/plots.py +0 -0
  146. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/problem_stats.py +0 -0
  147. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/prompts.py +0 -0
  148. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/refactor_tools.py +0 -0
  149. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/rsync.sh +0 -0
  150. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/rungrid.py +0 -0
  151. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/swe-bench-lite.txt +0 -0
  152. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/swe-bench.txt +0 -0
  153. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/swe_bench.py +0 -0
  154. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/test_benchmark.py +0 -0
  155. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/variations.1.sh +0 -0
  156. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/variations.2.sh +0 -0
  157. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/variations.3.sh +0 -0
  158. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/benchmark/variations.4.sh +0 -0
  159. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/__init__.py +0 -0
  160. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/__main__.py +0 -0
  161. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/args_formatter.py +0 -0
  162. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/__init__.py +0 -0
  163. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/architect_coder.py +0 -0
  164. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/ask_coder.py +0 -0
  165. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/chat_chunks.py +0 -0
  166. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/context_coder.py +0 -0
  167. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/copypaste_coder.py +0 -0
  168. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/editblock_coder.py +0 -0
  169. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/editblock_fenced_coder.py +0 -0
  170. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/editblock_func_coder.py +0 -0
  171. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  172. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/editor_editblock_coder.py +0 -0
  173. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/editor_whole_coder.py +0 -0
  174. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/hashline_coder.py +0 -0
  175. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/help_coder.py +0 -0
  176. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/patch_coder.py +0 -0
  177. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/search_replace.py +0 -0
  178. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/shell.py +0 -0
  179. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/single_wholefile_func_coder.py +0 -0
  180. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/sub_agent_coder.py +0 -0
  181. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/udiff_coder.py +0 -0
  182. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/udiff_simple.py +0 -0
  183. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/wholefile_coder.py +0 -0
  184. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/coders/wholefile_func_coder.py +0 -0
  185. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/__init__.py +0 -0
  186. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/agent.py +0 -0
  187. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/agent_model.py +0 -0
  188. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/architect.py +0 -0
  189. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/ask.py +0 -0
  190. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/chat_mode.py +0 -0
  191. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/code.py +0 -0
  192. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/command_prefix.py +0 -0
  193. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/commit.py +0 -0
  194. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/compact.py +0 -0
  195. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/context.py +0 -0
  196. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/context_blocks.py +0 -0
  197. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/context_management.py +0 -0
  198. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/copy.py +0 -0
  199. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/copy_context.py +0 -0
  200. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/core.py +0 -0
  201. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/diff.py +0 -0
  202. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/drop.py +0 -0
  203. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/editor.py +0 -0
  204. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/editor_model.py +0 -0
  205. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/exclude_skill.py +0 -0
  206. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/exit.py +0 -0
  207. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/git.py +0 -0
  208. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/hashline.py +0 -0
  209. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/help.py +0 -0
  210. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/history_search.py +0 -0
  211. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/hooks.py +0 -0
  212. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/hot_reload.py +0 -0
  213. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/include_skill.py +0 -0
  214. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/lint.py +0 -0
  215. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/list_mcp.py +0 -0
  216. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/list_sessions.py +0 -0
  217. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/list_skills.py +0 -0
  218. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/load.py +0 -0
  219. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/load_hook.py +0 -0
  220. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/load_mcp.py +0 -0
  221. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/load_session.py +0 -0
  222. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/load_skill.py +0 -0
  223. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/ls.py +0 -0
  224. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/map.py +0 -0
  225. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/map_refresh.py +0 -0
  226. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/merge.py +0 -0
  227. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/model.py +0 -0
  228. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/models.py +0 -0
  229. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/multiline_mode.py +0 -0
  230. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/paste.py +0 -0
  231. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/quit.py +0 -0
  232. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/reap_agent.py +0 -0
  233. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/reasoning_effort.py +0 -0
  234. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/remove_hook.py +0 -0
  235. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/remove_mcp.py +0 -0
  236. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/remove_skill.py +0 -0
  237. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/report.py +0 -0
  238. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/rules.py +0 -0
  239. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/run.py +0 -0
  240. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/save.py +0 -0
  241. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/save_session.py +0 -0
  242. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/settings.py +0 -0
  243. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/spawn_agent.py +0 -0
  244. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/switch_agent.py +0 -0
  245. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/terminal_data/linux.keytab +0 -0
  246. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/terminal_setup.py +0 -0
  247. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/test.py +0 -0
  248. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/think_tokens.py +0 -0
  249. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/tokens.py +0 -0
  250. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/undo.py +0 -0
  251. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/utils/__init__.py +0 -0
  252. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/utils/base_command.py +0 -0
  253. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/utils/helpers.py +0 -0
  254. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/utils/registry.py +0 -0
  255. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/utils/save_load_manager.py +0 -0
  256. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/voice.py +0 -0
  257. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/weak_model.py +0 -0
  258. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/web.py +0 -0
  259. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/commands/workspace.py +0 -0
  260. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/deprecated_args.py +0 -0
  261. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/diffs.py +0 -0
  262. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/dump.py +0 -0
  263. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/editor.py +0 -0
  264. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/exceptions.py +0 -0
  265. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/format_settings.py +0 -0
  266. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/help.py +0 -0
  267. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/help_pats.py +0 -0
  268. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/__init__.py +0 -0
  269. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/agents/__init__.py +0 -0
  270. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/agents/config.py +0 -0
  271. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/background_commands.py +0 -0
  272. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/command_parser.py +0 -0
  273. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/conversation/__init__.py +0 -0
  274. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/conversation/base_message.py +0 -0
  275. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/conversation/manager.py +0 -0
  276. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/conversation/service.py +0 -0
  277. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/conversation/tags.py +0 -0
  278. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/conversation/utils.py +0 -0
  279. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/copypaste.py +0 -0
  280. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/coroutines.py +0 -0
  281. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/crypto.py +0 -0
  282. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/file_searcher.py +0 -0
  283. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/file_system/__init__.py +0 -0
  284. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/file_system/builders.py +0 -0
  285. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/file_system/ignore.py +0 -0
  286. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/file_system/ngram_index.py +0 -0
  287. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/file_system/service.py +0 -0
  288. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/file_system/trie_index.py +0 -0
  289. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/grep_ast/__init__.py +0 -0
  290. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/grep_ast/dump.py +0 -0
  291. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/grep_ast/main.py +0 -0
  292. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/grep_ast/parsers.py +0 -0
  293. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/grep_ast/tsl.py +0 -0
  294. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/hashpos/__init__.py +0 -0
  295. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/hashpos/hashpos.v1.bak +0 -0
  296. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/io_proxy.py +0 -0
  297. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/leak_detect.py +0 -0
  298. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/monorepo/__init__.py +0 -0
  299. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/monorepo/config.py +0 -0
  300. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/monorepo/local_workspace.py +0 -0
  301. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/monorepo/project.py +0 -0
  302. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/monorepo/workspace.py +0 -0
  303. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/monorepo/worktree.py +0 -0
  304. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/nested.py +0 -0
  305. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/observations/__init__.py +0 -0
  306. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/plugin_manager.py +0 -0
  307. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/profiler.py +0 -0
  308. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/requests.py +0 -0
  309. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/similarity.py +0 -0
  310. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/helpers/threading.py +0 -0
  311. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/history.py +0 -0
  312. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/hooks/base.py +0 -0
  313. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/hooks/integration.py +0 -0
  314. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/hooks/manager.py +0 -0
  315. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/hooks/registry.py +0 -0
  316. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/hooks/service.py +0 -0
  317. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/hooks/types.py +0 -0
  318. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/interruptible_input.py +0 -0
  319. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/linter.py +0 -0
  320. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/mcp/__init__.py +0 -0
  321. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/mcp/oauth.py +0 -0
  322. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/mcp/utils.py +0 -0
  323. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/mdstream.py +0 -0
  324. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/models.py +0 -0
  325. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/onboarding.py +0 -0
  326. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/__init__.py +0 -0
  327. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/architect.yml +0 -0
  328. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/ask.yml +0 -0
  329. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/context.yml +0 -0
  330. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/copypaste.yml +0 -0
  331. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/editblock.yml +0 -0
  332. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/editblock_fenced.yml +0 -0
  333. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/editblock_func.yml +0 -0
  334. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/editor_diff_fenced.yml +0 -0
  335. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/editor_editblock.yml +0 -0
  336. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/editor_whole.yml +0 -0
  337. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/hashline.yml +0 -0
  338. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/help.yml +0 -0
  339. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/patch.yml +0 -0
  340. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/single_wholefile_func.yml +0 -0
  341. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/udiff.yml +0 -0
  342. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/udiff_simple.yml +0 -0
  343. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/utils/__init__.py +0 -0
  344. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/utils/registry.py +0 -0
  345. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/utils/system.py +0 -0
  346. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/wholefile.yml +0 -0
  347. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/prompts/wholefile_func.yml +0 -0
  348. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  349. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  350. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
  351. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  352. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  353. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  354. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  355. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  356. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  357. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  358. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  359. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  360. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  361. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  362. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  363. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  364. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  365. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  366. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  367. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  368. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  369. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  370. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  371. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  372. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  373. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  374. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  375. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  376. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  377. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  378. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  379. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  380. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/README.md +0 -0
  381. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
  382. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  383. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  384. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  385. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  386. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  387. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  388. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  389. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  390. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  391. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  392. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  393. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  394. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  395. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  396. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  397. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  398. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  399. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  400. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  401. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  402. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  403. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  404. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  405. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  406. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  407. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  408. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/reasoning_tags.py +0 -0
  409. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/repo.py +0 -0
  410. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/repomap.py +0 -0
  411. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/report.py +0 -0
  412. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/resources/__init__.py +0 -0
  413. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/resources/model-metadata.json +0 -0
  414. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/resources/model-settings.yml +0 -0
  415. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/resources/providers.json +0 -0
  416. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/run_cmd.py +0 -0
  417. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/scrape.py +0 -0
  418. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/sessions.py +0 -0
  419. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/special.py +0 -0
  420. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/utils/__init__.py +0 -0
  421. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/utils/output.py +0 -0
  422. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/validations/__init__.py +0 -0
  423. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tools/validations/validations.py +0 -0
  424. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tui/app.py +0 -0
  425. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tui/io.py +0 -0
  426. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tui/styles.tcss +0 -0
  427. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tui/widgets/__init__.py +0 -0
  428. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tui/widgets/completion_bar.py +0 -0
  429. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tui/widgets/file_list.py +0 -0
  430. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tui/widgets/footer.py +0 -0
  431. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tui/widgets/input_area.py +0 -0
  432. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tui/widgets/input_container.py +0 -0
  433. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tui/widgets/key_hints.py +0 -0
  434. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tui/widgets/output.py +0 -0
  435. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tui/widgets/status_bar.py +0 -0
  436. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tui/widgets/subagent_pills.py +0 -0
  437. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/tui/worker.py +0 -0
  438. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/urls.py +0 -0
  439. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/utils.py +0 -0
  440. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/versioncheck.py +0 -0
  441. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/voice.py +0 -0
  442. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/waiting.py +0 -0
  443. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/watch.py +0 -0
  444. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/watch_prompts.py +0 -0
  445. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/Gemfile +0 -0
  446. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/_includes/blame.md +0 -0
  447. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/_includes/get-started.md +0 -0
  448. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/_includes/help-tip.md +0 -0
  449. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/_includes/help.md +0 -0
  450. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/_includes/install.md +0 -0
  451. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/_includes/keys.md +0 -0
  452. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/_includes/model-warnings.md +0 -0
  453. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/_includes/multi-line.md +0 -0
  454. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/_includes/python-m-aider.md +0 -0
  455. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/_includes/recording.css +0 -0
  456. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/_includes/recording.md +0 -0
  457. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/_includes/works-best.md +0 -0
  458. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/_sass/_features.scss +0 -0
  459. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/_sass/_footer.scss +0 -0
  460. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/_sass/_hero.scss +0 -0
  461. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/_sass/_info.scss +0 -0
  462. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/_sass/_layout.scss +0 -0
  463. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/_sass/_reset.scss +0 -0
  464. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/_sass/_testimonials.scss +0 -0
  465. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/_sass/_typography.scss +0 -0
  466. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/_sass/_variables.scss +0 -0
  467. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/_sass/custom/custom.scss +0 -0
  468. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/_sass/global-overrides.scss +0 -0
  469. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/config/adv-model-settings.md +0 -0
  470. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/config/api-keys.md +0 -0
  471. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/config/conf.md +0 -0
  472. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/config/custom-commands.md +0 -0
  473. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  474. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/config/dotenv.md +0 -0
  475. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/config/editor.md +0 -0
  476. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/config/model-aliases.md +0 -0
  477. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/config/model-configuration.md +0 -0
  478. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/config/options.md +0 -0
  479. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/config/reasoning.md +0 -0
  480. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/config/security.md +0 -0
  481. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/config/skills.md +0 -0
  482. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/config/tui.md +0 -0
  483. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/config/workspaces.md +0 -0
  484. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/git.md +0 -0
  485. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/index.md +0 -0
  486. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/install/docker.md +0 -0
  487. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/install.md +0 -0
  488. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/languages.md +0 -0
  489. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  490. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/legal/privacy.md +0 -0
  491. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/llms/anthropic.md +0 -0
  492. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/llms/azure.md +0 -0
  493. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/llms/bedrock.md +0 -0
  494. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/llms/cohere.md +0 -0
  495. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/llms/deepseek.md +0 -0
  496. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/llms/gemini.md +0 -0
  497. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/llms/github.md +0 -0
  498. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/llms/groq.md +0 -0
  499. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/llms/lm-studio.md +0 -0
  500. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/llms/ollama.md +0 -0
  501. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/llms/openai-compat.md +0 -0
  502. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/llms/openai.md +0 -0
  503. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/llms/openrouter.md +0 -0
  504. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/llms/other.md +0 -0
  505. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/llms/vertex.md +0 -0
  506. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/llms/warnings.md +0 -0
  507. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/llms/xai.md +0 -0
  508. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/llms.md +0 -0
  509. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/more/analytics.md +0 -0
  510. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/more/edit-formats.md +0 -0
  511. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/more/infinite-output.md +0 -0
  512. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/more-info.md +0 -0
  513. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/repomap.md +0 -0
  514. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/scripting.md +0 -0
  515. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
  516. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  517. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/troubleshooting/imports.md +0 -0
  518. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  519. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/troubleshooting/support.md +0 -0
  520. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  521. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  522. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/troubleshooting.md +0 -0
  523. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/usage/commands.md +0 -0
  524. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/usage/conventions.md +0 -0
  525. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/usage/copypaste.md +0 -0
  526. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/usage/images-urls.md +0 -0
  527. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/usage/lint-test.md +0 -0
  528. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/usage/modes.md +0 -0
  529. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/usage/not-code.md +0 -0
  530. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/usage/notifications.md +0 -0
  531. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/usage/optional.md +0 -0
  532. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/usage/sessions.md +0 -0
  533. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/usage/tips.md +0 -0
  534. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/usage/voice.md +0 -0
  535. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/usage/watch.md +0 -0
  536. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/docs/usage.md +0 -0
  537. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli/website/share/index.md +0 -0
  538. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli_dev.egg-info/dependency_links.txt +0 -0
  539. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli_dev.egg-info/entry_points.txt +0 -0
  540. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli_dev.egg-info/requires.txt +0 -0
  541. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/cecli_dev.egg-info/top_level.txt +0 -0
  542. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/docker/Dockerfile +0 -0
  543. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  544. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/pyproject.toml +0 -0
  545. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/pytest.ini +0 -0
  546. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/requirements/common-constraints.txt +0 -0
  547. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/requirements/requirements-dev.in +0 -0
  548. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/requirements/requirements-dev.txt +0 -0
  549. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/requirements/requirements-help.in +0 -0
  550. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/requirements/requirements-help.txt +0 -0
  551. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/requirements/requirements-playwright.in +0 -0
  552. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/requirements/requirements-playwright.txt +0 -0
  553. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/requirements/requirements.in +0 -0
  554. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/requirements/tree-sitter.in +0 -0
  555. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/requirements.txt +0 -0
  556. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/30k-image.py +0 -0
  557. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/Dockerfile.jekyll +0 -0
  558. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/__init__.py +0 -0
  559. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/blame.py +0 -0
  560. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/clean_metadata.py +0 -0
  561. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/compare-message-history.py +0 -0
  562. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/cost_analyzer.py +0 -0
  563. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/cost_calculator.py +0 -0
  564. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/dl_icons.py +0 -0
  565. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/filter-chat-mode.js +0 -0
  566. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/generate_providers.py +0 -0
  567. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/get_contributor_list.js +0 -0
  568. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/history_prompts.py +0 -0
  569. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/homepage.py +0 -0
  570. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/issues.py +0 -0
  571. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/jekyll_build.sh +0 -0
  572. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/jekyll_run.sh +0 -0
  573. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/logo_svg.py +0 -0
  574. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/pip-compile.sh +0 -0
  575. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/recording_audio.py +0 -0
  576. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/redact-cast.py +0 -0
  577. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/rename_to_cecli.py +0 -0
  578. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/tmux_record.sh +0 -0
  579. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/tsl_pack_langs.py +0 -0
  580. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/update-blame.sh +0 -0
  581. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/update-docs.sh +0 -0
  582. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/update-history.py +0 -0
  583. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/versionbump.py +0 -0
  584. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/scripts/yank-old-versions.py +0 -0
  585. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/setup.cfg +0 -0
  586. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/shim.pyproject.toml +0 -0
  587. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/__init__.py +0 -0
  588. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/__init__.py +0 -0
  589. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/conftest.py +0 -0
  590. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_aws_credentials.py +0 -0
  591. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_background_commands.py +0 -0
  592. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_coder.py +0 -0
  593. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_commands.py +0 -0
  594. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_custom_commands.py +0 -0
  595. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_deprecated.py +0 -0
  596. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_editblock.py +0 -0
  597. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_editor.py +0 -0
  598. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_exceptions.py +0 -0
  599. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_find_or_blocks.py +0 -0
  600. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_hashline_closure.py +0 -0
  601. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_history.py +0 -0
  602. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_io.py +0 -0
  603. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_linter.py +0 -0
  604. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_main.py +0 -0
  605. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_model_info_manager.py +0 -0
  606. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_model_provider_manager.py +0 -0
  607. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_models.py +0 -0
  608. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_onboarding.py +0 -0
  609. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_plugin_manager.py +0 -0
  610. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_prompts.py +0 -0
  611. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_reasoning.py +0 -0
  612. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_repo.py +0 -0
  613. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_repomap.py +0 -0
  614. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_run_cmd.py +0 -0
  615. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_sanity_check_repo.py +0 -0
  616. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_scripting.py +0 -0
  617. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_sendchat.py +0 -0
  618. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_session_args.py +0 -0
  619. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_session_crypto.py +0 -0
  620. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_sessions.py +0 -0
  621. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_sessions_manager.py +0 -0
  622. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_special.py +0 -0
  623. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_ssl_verification.py +0 -0
  624. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_udiff.py +0 -0
  625. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_urls.py +0 -0
  626. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_voice.py +0 -0
  627. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_watch.py +0 -0
  628. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/basic/test_wholefile.py +0 -0
  629. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/coders/test_copypaste_coder.py +0 -0
  630. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/commands/test_compaction.py +0 -0
  631. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/commands/test_switch_agent.py +0 -0
  632. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/conftest.py +0 -0
  633. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/conversations/test_conversation_integration.py +0 -0
  634. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/conversations/test_conversation_system.py +0 -0
  635. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  636. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/chat-history.md +0 -0
  637. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/arduino/test.ino +0 -0
  638. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/bash/test.sh +0 -0
  639. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/c/test.c +0 -0
  640. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/chatito/test.chatito +0 -0
  641. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/clojure/test.clj +0 -0
  642. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  643. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/cpp/test.cpp +0 -0
  644. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/csharp/test.cs +0 -0
  645. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/d/test.d +0 -0
  646. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/dart/test.dart +0 -0
  647. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/elisp/test.el +0 -0
  648. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/elixir/test.ex +0 -0
  649. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/elm/test.elm +0 -0
  650. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/gleam/test.gleam +0 -0
  651. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/go/test.go +0 -0
  652. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/haskell/test.hs +0 -0
  653. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/hcl/test.tf +0 -0
  654. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/java/test.java +0 -0
  655. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/javascript/test.js +0 -0
  656. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/kotlin/test.kt +0 -0
  657. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/lua/test.lua +0 -0
  658. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/matlab/test.m +0 -0
  659. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/ocaml/test.ml +0 -0
  660. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  661. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/php/test.php +0 -0
  662. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/pony/test.pony +0 -0
  663. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/properties/test.properties +0 -0
  664. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/python/test.py +0 -0
  665. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/ql/test.ql +0 -0
  666. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/r/test.r +0 -0
  667. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/racket/test.rkt +0 -0
  668. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/ruby/test.rb +0 -0
  669. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/rust/test.rs +0 -0
  670. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/scala/test.scala +0 -0
  671. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/solidity/test.sol +0 -0
  672. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/swift/test.swift +0 -0
  673. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/tsx/test.tsx +0 -0
  674. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/typescript/test.ts +0 -0
  675. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/udev/test.rules +0 -0
  676. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/languages/zig/test.zig +0 -0
  677. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/sample-code-base/sample.js +0 -0
  678. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/sample-code-base/sample.py +0 -0
  679. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  680. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/watch.js +0 -0
  681. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/watch.lisp +0 -0
  682. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/watch.py +0 -0
  683. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/fixtures/watch_question.js +0 -0
  684. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/help/test_help.py +0 -0
  685. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/helpers/monorepo/LOCAL_WORKSPACE.md +0 -0
  686. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/helpers/monorepo/test_config.py +0 -0
  687. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/helpers/monorepo/test_config_active.py +0 -0
  688. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
  689. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/helpers/monorepo/test_local_workspace.py +0 -0
  690. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
  691. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/helpers/monorepo/test_workspace.py +0 -0
  692. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/hooks/__init__.py +0 -0
  693. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/hooks/test_base.py +0 -0
  694. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/hooks/test_manager.py +0 -0
  695. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/hooks/test_registry.py +0 -0
  696. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/integration/test_agent_mcp_management.py +0 -0
  697. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/integration/test_mcp_management.py +0 -0
  698. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/mcp/__init__.py +0 -0
  699. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/mcp/test_manager.py +0 -0
  700. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/scrape/test_playwright_disable.py +0 -0
  701. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/scrape/test_scrape.py +0 -0
  702. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/subagents/__init__.py +0 -0
  703. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/subagents/conftest.py +0 -0
  704. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/subagents/test_commands.py +0 -0
  705. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/subagents/test_config.py +0 -0
  706. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/subagents/test_io_proxy.py +0 -0
  707. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/subagents/test_service.py +0 -0
  708. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/subagents/test_sub_agent_coder.py +0 -0
  709. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/tools/test_tool_arguments.py +0 -0
  710. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/tools/validations.py +0 -0
  711. {cecli_dev-0.100.11rc6 → cecli_dev-1.0.0rc1}/tests/tui/test_app.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: 1.0.0rc1
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 = '1.0.0rc1'
22
+ __version_tuple__ = version_tuple = (1, 0, 0, 'rc1')
23
23
 
24
- __commit_id__ = commit_id = 'g3d741d2c1'
24
+ __commit_id__ = commit_id = 'ge71e8173f'
@@ -132,6 +132,15 @@ def get_parser(default_config_files, git_root):
132
132
  "Specify a file with model tag overrides (e.g., gpt-4o:high -> reasoning_effort: high)"
133
133
  ),
134
134
  ).complete = shtab.FILE
135
+ group.add_argument(
136
+ "--model-providers",
137
+ metavar="MODEL_PROVIDERS_JSON",
138
+ help=(
139
+ "Specify custom OpenAI-compatible model providers as a JSON/YAML string (e.g.,"
140
+ ' \'{"my-provider": {"api_base": "https://...", "api_key_env": ["MY_KEY"]}}\')'
141
+ ),
142
+ default=None,
143
+ )
135
144
  group.add_argument(
136
145
  "--reasoning-effort",
137
146
  type=str,
@@ -1113,7 +1122,7 @@ def get_parser(default_config_files, git_root):
1113
1122
  group.add_argument(
1114
1123
  "--notification-bell",
1115
1124
  action=argparse.BooleanOptionalAction,
1116
- default=True,
1125
+ default=False,
1117
1126
  help=(
1118
1127
  "Allow notification commands to produce an audible bell. When enabled, command"
1119
1128
  " 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
@@ -98,7 +98,7 @@ class AgentCoder(Coder):
98
98
  self.skip_cli_confirmations = False
99
99
  self.agent_finished = False
100
100
  self.agent_config = self._get_agent_config()
101
- self.max_sub_agents = self.agent_config.get("max_sub_agents", 3)
101
+ self.max_sub_agents = self.agent_config.get("max_sub_agents", 30)
102
102
  self.sub_agent_paths = self.agent_config.get("subagent_paths", [])
103
103
  self._setup_agent()
104
104
 
@@ -165,7 +165,13 @@ class AgentCoder(Coder):
165
165
  config["command_timeout"] = nested.getter(config, "command_timeout", 30)
166
166
  config["allowed_commands"] = nested.getter(config, "allowed_commands", [])
167
167
  config["hot_reload"] = nested.getter(config, "hot_reload", False)
168
+ config["diff_colors"] = nested.getter(config, "diff_colors", True)
168
169
  config["allow_nested_delegation"] = nested.getter(config, "allow_nested_delegation", False)
170
+ config["allow_orchestration"] = nested.getter(config, "allow_orchestration", True)
171
+ config["max_sub_agents"] = nested.getter(config, "max_sub_agents", 30)
172
+
173
+ if config["max_sub_agents"] == -1:
174
+ config["max_sub_agents"] = 2 ^ 31 - 1
169
175
 
170
176
  config["tools_paths"] = nested.getter(config, ["tools_paths", "tool_paths"], [])
171
177
  config["tools_includelist"] = nested.getter(
@@ -183,6 +189,7 @@ class AgentCoder(Coder):
183
189
  config["servers_excludelist"] = nested.getter(
184
190
  config, ["servers_excludelist", "servers_blacklist"], []
185
191
  )
192
+
186
193
  config["include_context_blocks"] = set(
187
194
  nested.getter(
188
195
  config,
@@ -202,6 +209,10 @@ class AgentCoder(Coder):
202
209
  )
203
210
  config["exclude_context_blocks"] = set(nested.getter(config, "exclude_context_blocks", []))
204
211
 
212
+ if config["allow_orchestration"]:
213
+ config["include_context_blocks"].add("orchestration")
214
+ config["exclude_context_blocks"].discard("orchestration")
215
+
205
216
  self.large_file_token_threshold = config["large_file_token_threshold"]
206
217
  self.skip_cli_confirmations = config["skip_cli_confirmations"]
207
218
  self.hot_reload_enabled = config["hot_reload"]
@@ -291,6 +302,7 @@ class AgentCoder(Coder):
291
302
 
292
303
  async def _execute_mcp_tool(self, server, tool_name, params):
293
304
  """Helper to execute a single MCP tool call, created from legacy format."""
305
+ from cecli.tools.utils.responses import ToolResponse
294
306
 
295
307
  async def _exec_async():
296
308
  function_dict = {"name": tool_name, "arguments": json.dumps(params)}
@@ -330,9 +342,14 @@ class AgentCoder(Coder):
330
342
 
331
343
  result, interrupted = await interruptible(_exec_async(), self.interrupt_event)
332
344
 
345
+ response = ToolResponse(tool_name)
333
346
  if interrupted:
334
- return "Tool execution interrupted by user."
335
- return result
347
+ response.append_error("Tool execution interrupted by user.")
348
+ elif isinstance(result, str) and result.startswith("Error executing tool call"):
349
+ response.append_error(result)
350
+ else:
351
+ response.append_result(result)
352
+ return response
336
353
 
337
354
  def _calculate_context_block_tokens(self, force=False):
338
355
  """
@@ -363,6 +380,7 @@ class AgentCoder(Coder):
363
380
  "servers",
364
381
  "sub_agents",
365
382
  "loaded_skills",
383
+ "orchestration",
366
384
  ]
367
385
  for block_type in block_types:
368
386
  if block_type in self.allowed_context_blocks:
@@ -399,6 +417,8 @@ class AgentCoder(Coder):
399
417
  content = self.get_servers_context()
400
418
  elif block_name == "loaded_skills":
401
419
  content = self.get_skills_content()
420
+ elif block_name == "orchestration":
421
+ content = self.get_orchestration_context()
402
422
  elif block_name == "sub_agents" and (
403
423
  not self.parent_uuid or self.agent_config.get("allow_nested_delegation", False)
404
424
  ):
@@ -828,7 +848,7 @@ class AgentCoder(Coder):
828
848
  if lint_errors:
829
849
  lint_errors = lint_errors.replace(
830
850
  "# Fix any linting errors below, if possible.",
831
- "# Fix any linting errors below, if possible and then continue with your task.",
851
+ "# Fix the linting errors below, and then continue with your task.",
832
852
  1,
833
853
  )
834
854
  ConversationService.get_manager(self).add_message(
@@ -877,7 +897,7 @@ class AgentCoder(Coder):
877
897
  {
878
898
  "role": "tool",
879
899
  "tool_call_id": tool_call.id,
880
- "content": result,
900
+ "content": str(result),
881
901
  }
882
902
  )
883
903
  return tool_responses
@@ -1138,7 +1158,7 @@ class AgentCoder(Coder):
1138
1158
  context_parts.append("\n\n")
1139
1159
  context_parts.append("## File Editing Tools Disabled")
1140
1160
  context_parts.append(
1141
- "File editing tools are currently disabled. Use `ReadRange` to determine the"
1161
+ "File editing tools are currently disabled. Use `ReadFile` to determine the"
1142
1162
  " current content ID prefixes needed to perform an edit and activate them when"
1143
1163
  " you are ready to edit a file."
1144
1164
  )
@@ -1581,6 +1601,23 @@ Todo list does not exist. Please update it with the `UpdateTodoList` tool.</cont
1581
1601
  self.io.tool_error(f"Error generating servers context: {str(e)}")
1582
1602
  return None
1583
1603
 
1604
+ def get_orchestration_context(self):
1605
+ """
1606
+ Generate a context block for the Orchestrate tool if allowed.
1607
+
1608
+ Only returns content if ``allow_orchestration`` is enabled in the agent config.
1609
+ """
1610
+ if not self.use_enhanced_context:
1611
+ return None
1612
+
1613
+ try:
1614
+ from cecli.helpers.orchestration import build_orchestration_context_block
1615
+
1616
+ return build_orchestration_context_block(self.agent_config)
1617
+ except Exception as e:
1618
+ self.io.tool_error(f"Error generating orchestration context: {str(e)}")
1619
+ return None
1620
+
1584
1621
  def get_sub_agents_context(self):
1585
1622
  """
1586
1623
  Generate a context block for registered sub-agents.
@@ -1733,7 +1733,27 @@ class Coder(metaclass=UsageMeta):
1733
1733
  # Compacting is wasteful since /clear will clear everything
1734
1734
  # and /exit will exit the application
1735
1735
  stripped = user_message.strip()
1736
- if stripped not in ("/clear", "/reset", "/exit", "/quit"):
1736
+ is_command = self.commands.is_command(stripped)
1737
+ is_allowed_command = False
1738
+
1739
+ if is_command:
1740
+ res = self.commands.matching_commands(user_message)
1741
+ if res is not None:
1742
+ matching_commands, first_word, rest_inp = res
1743
+ if len(matching_commands) == 1:
1744
+ command = matching_commands[0]
1745
+ splits = (rest_inp or "").split()
1746
+ split_map = {
1747
+ "/agent": 1,
1748
+ "/architect": 1,
1749
+ "/ask": 1,
1750
+ "/code": 1,
1751
+ "/model": 2,
1752
+ }
1753
+ if command in split_map and len(splits) >= split_map.get(command, 0):
1754
+ is_allowed_command = True
1755
+
1756
+ if not is_command or is_allowed_command:
1737
1757
  self.compact_context_completed = False
1738
1758
  await self.compact_context_if_needed()
1739
1759
  self.compact_context_completed = True
@@ -1977,27 +1997,34 @@ class Coder(metaclass=UsageMeta):
1977
1997
  done_messages = manager.get_messages_dict(MessageTag.DONE)
1978
1998
  cur_messages = manager.get_messages_dict(MessageTag.CUR)
1979
1999
  diff_messages = manager.get_messages_dict(MessageTag.DIFFS)
2000
+ file_context_messages = manager.get_messages_dict(MessageTag.FILE_CONTEXTS)
1980
2001
  all_messages = manager.get_messages_dict()
1981
2002
 
1982
2003
  # Exclude first cur_message since that's the user's initial input
1983
2004
  done_tokens = self.summarizer.count_tokens(done_messages)
1984
2005
  cur_tokens = self.summarizer.count_tokens(cur_messages[1:] if len(cur_messages) > 1 else [])
1985
2006
  diff_tokens = self.summarizer.count_tokens(diff_messages)
2007
+ file_context_tokens = self.summarizer.count_tokens(file_context_messages)
1986
2008
  all_tokens = self.summarizer.count_tokens(all_messages)
1987
2009
 
1988
- combined_tokens = done_tokens + cur_tokens + diff_tokens
2010
+ message_tokens = done_tokens + cur_tokens
2011
+ file_tokens = diff_tokens + file_context_tokens
2012
+ combined_tokens = done_tokens + cur_tokens + diff_tokens + file_context_tokens
1989
2013
 
1990
2014
  self.context_compaction_current_ratio = all_tokens / self.context_compaction_max_tokens
1991
2015
 
1992
2016
  if force or (
1993
2017
  all_tokens >= self.context_compaction_max_tokens * 0.9
1994
2018
  and ConversationService.get_chunks(self).last_clear_count > 20
2019
+ and file_tokens / max(message_tokens, 1) > 2
1995
2020
  ):
1996
2021
  manager.clear_tag(MessageTag.LINT, ratio=0.33)
1997
2022
  manager.clear_tag(MessageTag.DIFFS, ratio=0.33)
1998
2023
  manager.clear_tag(MessageTag.FILE_CONTEXTS, ratio=0.33)
1999
2024
  ConversationService.get_files(self).clear_file_cache()
2000
2025
  ConversationService.get_chunks(self).flush_removals()
2026
+ ConversationService.get_chunks(self).reset_clear_count()
2027
+ ObservationService.get_instance(self).reset_index()
2001
2028
 
2002
2029
  if not force and combined_tokens < self.context_compaction_max_tokens:
2003
2030
  return
@@ -2031,9 +2058,9 @@ class Coder(metaclass=UsageMeta):
2031
2058
  manager.clear_tag(tag)
2032
2059
 
2033
2060
  if tag == MessageTag.DONE:
2034
- manager.add_message({"role": "user", "content": text}, tag=tag)
2035
- manager.add_message(
2036
- {
2061
+ manager.queue_message(message_dict={"role": "user", "content": text}, tag=tag)
2062
+ manager.queue_message(
2063
+ message_dict={
2037
2064
  "role": "assistant",
2038
2065
  "content": (
2039
2066
  "Ok, I will use this summary and the observations as context for"
@@ -2044,12 +2071,13 @@ class Coder(metaclass=UsageMeta):
2044
2071
  )
2045
2072
  else:
2046
2073
  if self.last_user_message:
2047
- manager.add_message(
2048
- {"role": "user", "content": self.last_user_message}, tag=tag
2074
+ manager.queue_message(
2075
+ message_dict={"role": "user", "content": self.last_user_message},
2076
+ tag=tag,
2049
2077
  )
2050
2078
 
2051
- manager.add_message(
2052
- {
2079
+ manager.queue_message(
2080
+ message_dict={
2053
2081
  "role": "assistant",
2054
2082
  "content": "Ok. I am awaiting your summary of our goals to proceed.",
2055
2083
  },
@@ -2057,8 +2085,8 @@ class Coder(metaclass=UsageMeta):
2057
2085
  force=True,
2058
2086
  )
2059
2087
 
2060
- manager.add_message(
2061
- {
2088
+ manager.queue_message(
2089
+ message_dict={
2062
2090
  "role": "user",
2063
2091
  "content": (
2064
2092
  "Here is a summary of our current goals and historical"
@@ -2068,8 +2096,8 @@ class Coder(metaclass=UsageMeta):
2068
2096
  tag=tag,
2069
2097
  )
2070
2098
 
2071
- manager.add_message(
2072
- {
2099
+ manager.queue_message(
2100
+ message_dict={
2073
2101
  "role": "assistant",
2074
2102
  "content": (
2075
2103
  "Ok, I will use this summary and proceed with our task. I will"
@@ -2102,6 +2130,9 @@ class Coder(metaclass=UsageMeta):
2102
2130
  manager.clear_tag(MessageTag.FILE_CONTEXTS)
2103
2131
  ConversationService.get_files(self).clear_file_cache()
2104
2132
  ConversationService.get_chunks(self).flush_removals()
2133
+ ConversationService.get_chunks(self).reset_clear_count()
2134
+ ObservationService.get_instance(self).reset_index()
2135
+ self.format_chat_chunks()
2105
2136
 
2106
2137
  except Exception as e:
2107
2138
  self.io.tool_warning(f"Context compaction failed: {e}")
@@ -4208,9 +4239,12 @@ class Coder(metaclass=UsageMeta):
4208
4239
  if tokens < warn_number_of_tokens:
4209
4240
  return
4210
4241
 
4211
- self.io.tool_warning("Warning: it's best to only add files that need changes to the chat.")
4212
- self.io.tool_warning(urls.edit_errors)
4213
- self.warning_given = True
4242
+ if self.context_compaction_current_ratio > 0.5:
4243
+ self.io.tool_warning(
4244
+ "Warning: it's best to only add files that need changes to the chat."
4245
+ )
4246
+ self.io.tool_warning(urls.edit_errors)
4247
+ self.warning_given = True
4214
4248
 
4215
4249
  async def prepare_to_edit(self, edits):
4216
4250
  res = []
@@ -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)
@@ -25,10 +25,9 @@ class ClearCommand(BaseCommand):
25
25
 
26
26
  # Clear TUI output if available
27
27
  if coder.tui and coder.tui():
28
- coder.tui().action_clear_output()
28
+ coder.tui().call_later(coder.tui().action_clear_output)
29
29
 
30
- io.tool_output("All chat history cleared.")
31
- return format_command_result(io, "clear", "Cleared chat history")
30
+ return format_command_result(io, "clear", "All chat history cleared.")
32
31
 
33
32
  @classmethod
34
33
  def get_completions(cls, io, coder, args) -> List[str]:
@@ -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
 
@@ -29,7 +29,7 @@ class ResetCommand(BaseCommand):
29
29
 
30
30
  # Clear TUI output if available
31
31
  if coder.tui and coder.tui():
32
- coder.tui().action_clear_output()
32
+ coder.tui().call_later(coder.tui().action_clear_output)
33
33
  else:
34
34
  io.tool_output("All files dropped and chat history cleared.")
35
35
 
@@ -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")):
@@ -223,7 +228,7 @@ class AgentService:
223
228
  @property
224
229
  def max_sub_agents(self) -> int:
225
230
  """Return the max number of sub-agents allowed for this coder."""
226
- return getattr(self.coder, "max_sub_agents", 3)
231
+ return getattr(self.coder, "max_sub_agents", 30)
227
232
 
228
233
  # ------------------------------------------------------------------ #
229
234
  # Internal helpers
@@ -490,7 +495,7 @@ class AgentService:
490
495
  )
491
496
 
492
497
  new_coder = await Coder.create(**kwargs)
493
- new_coder.max_sub_agents = getattr(self.coder, "max_sub_agents", 3)
498
+ new_coder.max_sub_agents = getattr(self.coder, "max_sub_agents", 30)
494
499
  # IOProxy wrapping is handled by base_coder.py's Coder.__init__
495
500
 
496
501
  # Re-acquire the lock to register — we must re-check max agents since
@@ -116,9 +116,7 @@ class ConversationFiles:
116
116
  try:
117
117
  content = coder.io.read_text(abs_fname, silent=True)
118
118
  if coder.hashlines:
119
- content, json_str = hashline_formatted(
120
- content, file_name=abs_fname, partial=False
121
- )
119
+ content, json_str = hashline_formatted(content, file_name=abs_fname)
122
120
  self._file_json_contents[abs_fname] = json_str
123
121
  except Exception:
124
122
  content = "" # Empty content for unreadable files
@@ -236,9 +234,7 @@ class ConversationFiles:
236
234
  try:
237
235
  current_content = coder.io.read_text(abs_fname, silent=True)
238
236
  if coder.hashlines:
239
- current_content, _ = hashline_formatted(
240
- current_content, file_name=abs_fname, partial=False
241
- )
237
+ current_content, _ = hashline_formatted(current_content, file_name=abs_fname)
242
238
  except Exception:
243
239
  return None
244
240
 
@@ -252,6 +248,7 @@ class ConversationFiles:
252
248
  )
253
249
 
254
250
  if not snapshot_content:
251
+ self.add_file(abs_fname, content=current_content)
255
252
  return None
256
253
 
257
254
  # Generate diff between snapshot and current content using hashline helper
@@ -260,6 +257,7 @@ class ConversationFiles:
260
257
  new_content=current_content,
261
258
  fromfile=f"{rel_fname} (snapshot)",
262
259
  tofile=f"{rel_fname} (current)",
260
+ context_lines=3,
263
261
  )
264
262
 
265
263
  # If there's a diff, update the last snapshot with current content
@@ -605,8 +603,30 @@ class ConversationFiles:
605
603
  ):
606
604
  continue
607
605
 
608
- _, json_str = hashline_formatted(
609
- range_content, file_name=abs_fname, partial=True, start_line=start_line_adj
606
+ # Hash the full content first so that adjacent-line hashes
607
+ # are computed with proper surrounding context from the complete
608
+ # file, then extract only the range's lines. This ensures content
609
+ # IDs are consistent with other tools (e.g., ReadFile) that hash
610
+ # the full file content.
611
+ full_prefixed, _ = hashline_formatted(
612
+ content,
613
+ file_name=abs_fname,
614
+ total_lines=len(content_lines),
615
+ start_line=1,
616
+ )
617
+ prefixed_lines = full_prefixed.splitlines()
618
+ range_prefixed_lines = prefixed_lines[start_line_adj - 1 : end_line_adj]
619
+ range_prefixed_content = "\n".join(range_prefixed_lines)
620
+
621
+ json_str = json.dumps(
622
+ {
623
+ "file_name": abs_fname,
624
+ "start_line": start_line_adj,
625
+ "end_line": end_line_adj,
626
+ "total_lines": len(content_lines),
627
+ "prefixed_contents": range_prefixed_content,
628
+ },
629
+ ensure_ascii=False,
610
630
  )
611
631
  results.append(json.loads(json_str))
612
632
 
@@ -245,62 +245,7 @@ class ConversationChunks:
245
245
  if not coder:
246
246
  return
247
247
 
248
- # Check diff message ratio and clear if too many diffs
249
- diff_messages = ConversationService.get_manager(coder).get_messages_dict(MessageTag.DIFFS)
250
- read_only_messages = ConversationService.get_manager(coder).get_messages_dict(
251
- MessageTag.READONLY_FILES
252
- )
253
- chat_messages = ConversationService.get_manager(coder).get_messages_dict(
254
- MessageTag.CHAT_FILES
255
- )
256
- edit_messages = ConversationService.get_manager(coder).get_messages_dict(
257
- MessageTag.EDIT_FILES
258
- )
259
-
260
- # Calculate token counts for token-based ratio check
261
- diff_tokens = coder.main_model.token_count(diff_messages) if diff_messages else 0
262
-
263
- # Calculate tokens for readonly, chat, and edit tag messages
264
- other_tokens = 0
265
- if read_only_messages:
266
- other_tokens += coder.main_model.token_count(read_only_messages)
267
- if chat_messages:
268
- other_tokens += coder.main_model.token_count(chat_messages)
269
- if edit_messages:
270
- other_tokens += coder.main_model.token_count(edit_messages)
271
-
272
- # Calculate message counts for message-based ratio check
273
- diff_count = len(diff_messages)
274
- other_count = len(read_only_messages) + len(chat_messages) + len(edit_messages)
275
-
276
- # Clear diff messages and file caches if EITHER:
277
- # 1. Diff tokens > 33% of other message tokens (token-based check)
278
- # 2. Diff message count ratio > 5:1 (message count-based check for periodic refresh)
279
- should_clear = False
280
-
281
- # Token-based check
282
- if diff_tokens > 0 and other_tokens > 0 and diff_tokens / other_tokens > 0.5:
283
- should_clear = True
284
-
285
- # Message count-based check (for periodic refresh)
286
- if diff_count > 0 and other_count > 0 and diff_count / other_count > 20:
287
- should_clear = True
288
-
289
248
  self.last_clear_count += 1
290
-
291
- if (
292
- should_clear
293
- and coder.context_compaction_current_ratio > 0.8
294
- and self.last_clear_count >= 20
295
- and diff_tokens + other_tokens > coder.context_compaction_max_tokens * 0.5
296
- ):
297
- self.last_clear_count = 0
298
-
299
- # Clear all diff messages
300
- ConversationService.get_manager(coder).clear_tag(MessageTag.DIFFS, 0.33)
301
- # Clear ConversationFiles caches to force regeneration
302
- ConversationService.get_files(coder).clear_file_cache(clear_contexts=False)
303
-
304
249
  # Get all tracked files (both regular and image files)
305
250
  tracked_files = ConversationService.get_files(coder).get_all_tracked_files()
306
251
 
@@ -483,7 +428,7 @@ class ConversationChunks:
483
428
  repo_messages = ConversationService.get_manager(coder).get_messages_dict(MessageTag.REPO)
484
429
  if len(repo_messages) >= 20:
485
430
  # Clear all REPO tagged messages
486
- ConversationService.get_manager(coder).clear_tag(MessageTag.REPO)
431
+ ConversationService.get_manager(coder).clear_tag(MessageTag.REPO, ratio=0.33)
487
432
  # Clear the combined repomap dict to force fresh regeneration
488
433
  if (
489
434
  hasattr(coder, "repo_map")
@@ -864,6 +809,10 @@ class ConversationChunks:
864
809
  block = coder._generate_context_block("servers")
865
810
  if block:
866
811
  message_blocks["servers"] = block
812
+ if "orchestration" in coder.allowed_context_blocks:
813
+ block = coder._generate_context_block("orchestration")
814
+ if block:
815
+ message_blocks["orchestration"] = block
867
816
 
868
817
  # Add static blocks to conversation manager with stable hash keys
869
818
  for block_type, block_content in message_blocks.items():
@@ -1017,6 +966,9 @@ class ConversationChunks:
1017
966
  def flush_removals(self):
1018
967
  self._deferred_removals.clear()
1019
968
 
969
+ def reset_clear_count(self):
970
+ self.last_clear_count = 0
971
+
1020
972
  def _cancel_post_message_injections(self, modulus=10):
1021
973
  coder = self.get_coder()
1022
974
  if not coder:
@@ -1092,21 +1044,21 @@ class ConversationChunks:
1092
1044
  " <parameter=param_name>param_value_json</parameter>\n"
1093
1045
  " </function>\n\n"
1094
1046
  " Example:\n"
1095
- " <function=Local--ReadRange>\n"
1047
+ " <function=Local--ReadFile>\n"
1096
1048
  ' <parameter=read>[{"file_path": "example.py", "range_start": "def hello",'
1097
1049
  ' "range_end": "def goodbye"}]</parameter>\n'
1098
1050
  " </function>\n\n"
1099
1051
  "2. JSON Tool-Call Format:\n"
1100
1052
  ' Embed a JSON object with "name" and "arguments" keys.\n\n'
1101
1053
  " Example:\n"
1102
- ' {"name": "Local--ReadRange", "arguments": {"read": [{"file_path": "example.py",'
1054
+ ' {"name": "Local--ReadFile", "arguments": {"read": [{"file_path": "example.py",'
1103
1055
  ' "range_start": "class A", "range_end": "class Z"}]}}\n\n'
1104
1056
  "3. Bracket Format:\n"
1105
1057
  " [ToolName(key1=value1, key2=value2)]\n\n"
1106
1058
  " Example:\n"
1107
- ' [Local--ReadRange(read=[{"file_path": "example.py", "range_start": "class A"}])]\n\n'
1059
+ ' [Local--ReadFile(read=[{"file_path": "example.py", "range_start": "class A"}])]\n\n'
1108
1060
  "IMPORTANT: Use the FULL prefixed tool name "
1109
- '(e.g., "Local--ReadRange" not just "ReadRange").\n'
1061
+ '(e.g., "Local--ReadFile" not just "ReadFile").\n'
1110
1062
  "</context>"
1111
1063
  )
1112
1064