cecli-dev 0.100.4rc3__tar.gz → 0.100.6__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 (677) hide show
  1. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/PKG-INFO +2 -1
  2. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/__init__.py +1 -1
  3. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/_version.py +3 -3
  4. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/args.py +5 -1
  5. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/args_formatter.py +10 -0
  6. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/agent_coder.py +30 -27
  7. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/base_coder.py +197 -71
  8. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/agent.py +1 -0
  9. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/agent_model.py +2 -2
  10. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/architect.py +1 -0
  11. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/ask.py +1 -0
  12. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/code.py +1 -0
  13. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/command_prefix.py +1 -0
  14. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/commit.py +1 -0
  15. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/compact.py +1 -0
  16. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/context.py +1 -0
  17. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/core.py +2 -2
  18. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/drop.py +1 -1
  19. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/editor.py +2 -1
  20. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/editor_model.py +1 -2
  21. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/exclude_skill.py +0 -1
  22. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/exit.py +0 -1
  23. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/git.py +1 -0
  24. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/hashline.py +1 -0
  25. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/help.py +1 -0
  26. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/history_search.py +1 -0
  27. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/hooks.py +0 -1
  28. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/include_skill.py +0 -1
  29. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/lint.py +1 -0
  30. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/list_sessions.py +0 -1
  31. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/list_skills.py +0 -1
  32. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/load.py +0 -1
  33. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/load_hook.py +0 -1
  34. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/load_mcp.py +0 -1
  35. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/load_session.py +0 -1
  36. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/load_skill.py +0 -1
  37. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/ls.py +0 -1
  38. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/map.py +0 -1
  39. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/map_refresh.py +1 -0
  40. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/merge.py +0 -1
  41. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/model.py +1 -2
  42. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/models.py +1 -2
  43. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/multiline_mode.py +1 -0
  44. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/paste.py +0 -1
  45. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/read_only.py +0 -1
  46. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/read_only_stub.py +0 -1
  47. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/reap_agent.py +0 -1
  48. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/reasoning_effort.py +1 -0
  49. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/remove_hook.py +0 -1
  50. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/remove_mcp.py +0 -1
  51. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/remove_skill.py +0 -1
  52. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/report.py +1 -0
  53. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/reset.py +0 -1
  54. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/rules.py +1 -0
  55. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/run.py +1 -0
  56. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/save.py +0 -1
  57. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/save_session.py +0 -1
  58. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/settings.py +0 -1
  59. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/terminal_setup.py +1 -0
  60. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/test.py +1 -0
  61. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/think_tokens.py +0 -1
  62. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/tokens.py +0 -1
  63. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/undo.py +0 -1
  64. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/utils/base_command.py +7 -1
  65. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/utils/helpers.py +1 -1
  66. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/voice.py +0 -1
  67. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/weak_model.py +1 -2
  68. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/web.py +1 -0
  69. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/workspace.py +1 -0
  70. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/agents/service.py +31 -21
  71. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/conversation/files.py +9 -3
  72. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/conversation/integration.py +30 -3
  73. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/coroutines.py +3 -1
  74. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/hashline.py +168 -127
  75. cecli_dev-0.100.6/cecli/helpers/hashpos/hashpos.py +226 -0
  76. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/monorepo/config.py +26 -3
  77. cecli_dev-0.100.6/cecli/helpers/monorepo/local_workspace.py +233 -0
  78. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/requests.py +25 -0
  79. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/responses.py +3 -1
  80. cecli_dev-0.100.6/cecli/helpers/threading.py +46 -0
  81. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/io.py +3 -1
  82. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/linter.py +2 -1
  83. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/main.py +13 -0
  84. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/mcp/server.py +26 -6
  85. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/models.py +69 -4
  86. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/agent.yml +21 -21
  87. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/hashline.yml +1 -1
  88. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/subagent.yml +20 -20
  89. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/reasoning_tags.py +19 -2
  90. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/repo.py +175 -50
  91. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/_yield.py +18 -5
  92. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/command.py +28 -13
  93. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/command_interactive.py +28 -8
  94. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/context_manager.py +31 -17
  95. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/delegate.py +16 -9
  96. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/edit_text.py +54 -27
  97. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/explore_code.py +24 -11
  98. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/grep.py +31 -32
  99. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/ls.py +15 -9
  100. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/read_range.py +446 -168
  101. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/thinking.py +13 -5
  102. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/undo_change.py +3 -1
  103. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/update_todo_list.py +37 -27
  104. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/utils/base_tool.py +13 -8
  105. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/utils/helpers.py +4 -1
  106. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/utils/output.py +9 -9
  107. cecli_dev-0.100.6/cecli/tools/validations/__init__.py +5 -0
  108. cecli_dev-0.100.6/cecli/tools/validations/validations.py +422 -0
  109. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tui/app.py +13 -3
  110. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tui/io.py +3 -1
  111. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/config/agent-mode.md +2 -0
  112. cecli_dev-0.100.6/cecli/website/docs/config/model-aliases.md +109 -0
  113. cecli_dev-0.100.6/cecli/website/docs/config/model-configuration.md +132 -0
  114. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/config/skills.md +1 -0
  115. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/config/workspaces.md +52 -3
  116. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli_dev.egg-info/PKG-INFO +2 -1
  117. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli_dev.egg-info/SOURCES.txt +10 -0
  118. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli_dev.egg-info/requires.txt +1 -0
  119. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/requirements/common-constraints.txt +2 -0
  120. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/requirements/requirements.in +1 -0
  121. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/requirements.txt +4 -0
  122. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/help/test_help.py +8 -6
  123. cecli_dev-0.100.6/tests/helpers/monorepo/LOCAL_WORKSPACE.md +66 -0
  124. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/helpers/monorepo/test_config.py +27 -2
  125. cecli_dev-0.100.6/tests/helpers/monorepo/test_local_workspace.py +235 -0
  126. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/subagents/test_finished.py +3 -0
  127. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/subagents/test_service.py +6 -2
  128. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/tools/test_get_lines.py +43 -14
  129. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/tools/test_grep.py +1 -1
  130. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/tools/test_insert_block.py +1 -1
  131. cecli_dev-0.100.6/tests/tools/test_read_range_execute.py +550 -0
  132. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/tools/test_tool_arguments.py +1 -1
  133. cecli_dev-0.100.6/tests/tools/validations.py +669 -0
  134. cecli_dev-0.100.4rc3/cecli/website/docs/config/model-aliases.md +0 -212
  135. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/.dockerignore +0 -0
  136. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/.flake8 +0 -0
  137. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/.gitattributes +0 -0
  138. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  139. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/.github/workflows/check_pypi_version.yml +0 -0
  140. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/.github/workflows/docker-build-test.yml +0 -0
  141. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/.github/workflows/docker-release.yml +0 -0
  142. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/.github/workflows/issues.yml +0 -0
  143. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/.github/workflows/pages.yml +0 -0
  144. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/.github/workflows/pre-commit.yml +0 -0
  145. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/.github/workflows/release.yml +0 -0
  146. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/.github/workflows/ubuntu-tests.yml +0 -0
  147. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/.github/workflows/windows-tests.yml +0 -0
  148. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/.github/workflows/windows_check_pypi_version.yml +0 -0
  149. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/.gitignore +0 -0
  150. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/.pre-commit-config.yaml +0 -0
  151. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/CHANGELOG.md +0 -0
  152. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/CNAME +0 -0
  153. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/CONTRIBUTING.md +0 -0
  154. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/HISTORY.md +0 -0
  155. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/LICENSE.txt +0 -0
  156. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/MANIFEST.in +0 -0
  157. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/README.md +0 -0
  158. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/Dockerfile +0 -0
  159. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/README.md +0 -0
  160. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/__init__.py +0 -0
  161. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/benchmark.py +0 -0
  162. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/benchmark_classic.py +0 -0
  163. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/clone-exercism.sh +0 -0
  164. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/cpp-test.sh +0 -0
  165. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/docker.sh +0 -0
  166. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/docker_build.sh +0 -0
  167. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/install-docker-ubuntu.sh +0 -0
  168. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/npm-test.sh +0 -0
  169. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/over_time.py +0 -0
  170. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/plot.sh +0 -0
  171. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/plots.py +0 -0
  172. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/problem_stats.py +0 -0
  173. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/prompts.py +0 -0
  174. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/refactor_tools.py +0 -0
  175. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/rsync.sh +0 -0
  176. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/rungrid.py +0 -0
  177. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/swe-bench-lite.txt +0 -0
  178. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/swe-bench.txt +0 -0
  179. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/swe_bench.py +0 -0
  180. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/test_benchmark.py +0 -0
  181. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/variations.1.sh +0 -0
  182. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/variations.2.sh +0 -0
  183. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/variations.3.sh +0 -0
  184. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/benchmark/variations.4.sh +0 -0
  185. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/__main__.py +0 -0
  186. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/change_tracker.py +0 -0
  187. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/__init__.py +0 -0
  188. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/architect_coder.py +0 -0
  189. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/ask_coder.py +0 -0
  190. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/chat_chunks.py +0 -0
  191. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/context_coder.py +0 -0
  192. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/copypaste_coder.py +0 -0
  193. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/editblock_coder.py +0 -0
  194. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/editblock_fenced_coder.py +0 -0
  195. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/editblock_func_coder.py +0 -0
  196. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  197. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/editor_editblock_coder.py +0 -0
  198. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/editor_whole_coder.py +0 -0
  199. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/hashline_coder.py +0 -0
  200. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/help_coder.py +0 -0
  201. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/patch_coder.py +0 -0
  202. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/search_replace.py +0 -0
  203. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/shell.py +0 -0
  204. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/single_wholefile_func_coder.py +0 -0
  205. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/sub_agent_coder.py +0 -0
  206. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/udiff_coder.py +0 -0
  207. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/udiff_simple.py +0 -0
  208. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/wholefile_coder.py +0 -0
  209. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/coders/wholefile_func_coder.py +0 -0
  210. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/__init__.py +0 -0
  211. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/add.py +0 -0
  212. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/chat_mode.py +0 -0
  213. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/clear.py +0 -0
  214. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/context_blocks.py +0 -0
  215. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/context_management.py +0 -0
  216. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/copy.py +0 -0
  217. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/copy_context.py +0 -0
  218. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/diff.py +0 -0
  219. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/quit.py +0 -0
  220. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/spawn_agent.py +0 -0
  221. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/switch_agent.py +0 -0
  222. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/terminal_data/linux.keytab +0 -0
  223. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/utils/__init__.py +0 -0
  224. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/utils/registry.py +0 -0
  225. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/commands/utils/save_load_manager.py +0 -0
  226. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/deprecated_args.py +0 -0
  227. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/diffs.py +0 -0
  228. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/dump.py +0 -0
  229. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/editor.py +0 -0
  230. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/exceptions.py +0 -0
  231. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/format_settings.py +0 -0
  232. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/help.py +0 -0
  233. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/help_pats.py +0 -0
  234. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/__init__.py +0 -0
  235. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/agents/__init__.py +0 -0
  236. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/agents/config.py +0 -0
  237. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/background_commands.py +0 -0
  238. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/command_parser.py +0 -0
  239. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/conversation/__init__.py +0 -0
  240. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/conversation/base_message.py +0 -0
  241. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/conversation/manager.py +0 -0
  242. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/conversation/service.py +0 -0
  243. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/conversation/tags.py +0 -0
  244. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/conversation/utils.py +0 -0
  245. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/copypaste.py +0 -0
  246. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/crypto.py +0 -0
  247. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/file_searcher.py +0 -0
  248. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/file_system/__init__.py +0 -0
  249. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/file_system/builders.py +0 -0
  250. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/file_system/ignore.py +0 -0
  251. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/file_system/ngram_index.py +0 -0
  252. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/file_system/service.py +0 -0
  253. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/file_system/trie_index.py +0 -0
  254. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/grep_ast/__init__.py +0 -0
  255. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/grep_ast/dump.py +0 -0
  256. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/grep_ast/grep_ast.py +0 -0
  257. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/grep_ast/main.py +0 -0
  258. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/grep_ast/parsers.py +0 -0
  259. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/grep_ast/tsl.py +0 -0
  260. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/hashpos/__init__.py +0 -0
  261. /cecli_dev-0.100.4rc3/cecli/helpers/hashpos/hashpos.py → /cecli_dev-0.100.6/cecli/helpers/hashpos/hashpos.v1.bak +0 -0
  262. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/io_proxy.py +0 -0
  263. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/leak_detect.py +0 -0
  264. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/model_providers.py +0 -0
  265. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/monorepo/__init__.py +0 -0
  266. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/monorepo/project.py +0 -0
  267. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/monorepo/workspace.py +0 -0
  268. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/monorepo/worktree.py +0 -0
  269. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/nested.py +0 -0
  270. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/observations/__init__.py +0 -0
  271. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/observations/service.py +0 -0
  272. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/plugin_manager.py +0 -0
  273. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/profiler.py +0 -0
  274. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/similarity.py +0 -0
  275. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/helpers/skills.py +0 -0
  276. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/history.py +0 -0
  277. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/hooks/__init__.py +0 -0
  278. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/hooks/base.py +0 -0
  279. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/hooks/integration.py +0 -0
  280. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/hooks/manager.py +0 -0
  281. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/hooks/registry.py +0 -0
  282. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/hooks/service.py +0 -0
  283. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/hooks/types.py +0 -0
  284. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/interruptible_input.py +0 -0
  285. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/llm.py +0 -0
  286. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/mcp/__init__.py +0 -0
  287. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/mcp/manager.py +0 -0
  288. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/mcp/oauth.py +0 -0
  289. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/mcp/utils.py +0 -0
  290. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/mdstream.py +0 -0
  291. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/onboarding.py +0 -0
  292. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/__init__.py +0 -0
  293. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/architect.yml +0 -0
  294. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/ask.yml +0 -0
  295. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/base.yml +0 -0
  296. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/context.yml +0 -0
  297. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/copypaste.yml +0 -0
  298. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/editblock.yml +0 -0
  299. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/editblock_fenced.yml +0 -0
  300. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/editblock_func.yml +0 -0
  301. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/editor_diff_fenced.yml +0 -0
  302. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/editor_editblock.yml +0 -0
  303. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/editor_whole.yml +0 -0
  304. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/help.yml +0 -0
  305. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/patch.yml +0 -0
  306. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/single_wholefile_func.yml +0 -0
  307. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/udiff.yml +0 -0
  308. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/udiff_simple.yml +0 -0
  309. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/utils/__init__.py +0 -0
  310. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/utils/registry.py +0 -0
  311. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/utils/system.py +0 -0
  312. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/wholefile.yml +0 -0
  313. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/prompts/wholefile_func.yml +0 -0
  314. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  315. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  316. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
  317. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  318. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  319. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  320. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  321. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  322. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  323. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  324. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  325. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  326. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  327. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  328. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  329. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  330. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  331. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  332. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  333. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  334. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  335. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  336. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  337. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  338. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  339. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  340. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  341. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  342. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  343. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  344. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  345. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  346. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/README.md +0 -0
  347. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
  348. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  349. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  350. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  351. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  352. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  353. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  354. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  355. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  356. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  357. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  358. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  359. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  360. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  361. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  362. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  363. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  364. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  365. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  366. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  367. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  368. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  369. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  370. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  371. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  372. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  373. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  374. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/repomap.py +0 -0
  375. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/report.py +0 -0
  376. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/resources/__init__.py +0 -0
  377. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/resources/model-metadata.json +0 -0
  378. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/resources/model-settings.yml +0 -0
  379. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/resources/providers.json +0 -0
  380. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/run_cmd.py +0 -0
  381. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/scrape.py +0 -0
  382. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/sendchat.py +0 -0
  383. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/sessions.py +0 -0
  384. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/special.py +0 -0
  385. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/__init__.py +0 -0
  386. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/git_branch.py +0 -0
  387. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/git_diff.py +0 -0
  388. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/git_log.py +0 -0
  389. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/git_remote.py +0 -0
  390. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/git_show.py +0 -0
  391. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/git_status.py +0 -0
  392. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/load_skill.py +0 -0
  393. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/remove_skill.py +0 -0
  394. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tools/utils/registry.py +0 -0
  395. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tui/__init__.py +0 -0
  396. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tui/styles.tcss +0 -0
  397. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tui/widgets/__init__.py +0 -0
  398. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tui/widgets/completion_bar.py +0 -0
  399. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tui/widgets/file_list.py +0 -0
  400. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tui/widgets/footer.py +0 -0
  401. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tui/widgets/input_area.py +0 -0
  402. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tui/widgets/input_container.py +0 -0
  403. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tui/widgets/key_hints.py +0 -0
  404. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tui/widgets/output.py +0 -0
  405. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tui/widgets/status_bar.py +0 -0
  406. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tui/widgets/subagent_pills.py +0 -0
  407. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/tui/worker.py +0 -0
  408. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/urls.py +0 -0
  409. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/utils.py +0 -0
  410. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/versioncheck.py +0 -0
  411. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/voice.py +0 -0
  412. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/waiting.py +0 -0
  413. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/watch.py +0 -0
  414. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/watch_prompts.py +0 -0
  415. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/Gemfile +0 -0
  416. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/_includes/blame.md +0 -0
  417. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/_includes/get-started.md +0 -0
  418. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/_includes/help-tip.md +0 -0
  419. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/_includes/help.md +0 -0
  420. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/_includes/install.md +0 -0
  421. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/_includes/keys.md +0 -0
  422. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/_includes/model-warnings.md +0 -0
  423. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/_includes/multi-line.md +0 -0
  424. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/_includes/python-m-aider.md +0 -0
  425. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/_includes/recording.css +0 -0
  426. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/_includes/recording.md +0 -0
  427. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/_includes/works-best.md +0 -0
  428. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/_sass/_features.scss +0 -0
  429. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/_sass/_footer.scss +0 -0
  430. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/_sass/_hero.scss +0 -0
  431. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/_sass/_info.scss +0 -0
  432. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/_sass/_layout.scss +0 -0
  433. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/_sass/_reset.scss +0 -0
  434. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/_sass/_testimonials.scss +0 -0
  435. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/_sass/_typography.scss +0 -0
  436. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/_sass/_variables.scss +0 -0
  437. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/_sass/custom/custom.scss +0 -0
  438. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/_sass/global-overrides.scss +0 -0
  439. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/config/adv-model-settings.md +0 -0
  440. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/config/aider_conf.md +0 -0
  441. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/config/api-keys.md +0 -0
  442. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/config/custom-commands.md +0 -0
  443. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  444. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/config/dotenv.md +0 -0
  445. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/config/editor.md +0 -0
  446. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/config/hooks.md +0 -0
  447. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/config/mcp.md +0 -0
  448. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/config/options.md +0 -0
  449. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/config/reasoning.md +0 -0
  450. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/config/security.md +0 -0
  451. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/config/subagents.md +0 -0
  452. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/config/tui.md +0 -0
  453. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/config.md +0 -0
  454. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/faq.md +0 -0
  455. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/git.md +0 -0
  456. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/index.md +0 -0
  457. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/install/docker.md +0 -0
  458. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/install/optional.md +0 -0
  459. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/install.md +0 -0
  460. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/languages.md +0 -0
  461. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  462. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/legal/privacy.md +0 -0
  463. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/llms/anthropic.md +0 -0
  464. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/llms/azure.md +0 -0
  465. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/llms/bedrock.md +0 -0
  466. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/llms/cohere.md +0 -0
  467. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/llms/deepseek.md +0 -0
  468. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/llms/gemini.md +0 -0
  469. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/llms/github.md +0 -0
  470. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/llms/groq.md +0 -0
  471. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/llms/lm-studio.md +0 -0
  472. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/llms/ollama.md +0 -0
  473. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/llms/openai-compat.md +0 -0
  474. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/llms/openai.md +0 -0
  475. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/llms/openrouter.md +0 -0
  476. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/llms/other.md +0 -0
  477. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/llms/vertex.md +0 -0
  478. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/llms/warnings.md +0 -0
  479. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/llms/xai.md +0 -0
  480. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/llms.md +0 -0
  481. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/more/analytics.md +0 -0
  482. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/more/edit-formats.md +0 -0
  483. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/more/infinite-output.md +0 -0
  484. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/more-info.md +0 -0
  485. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/repomap.md +0 -0
  486. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/scripting.md +0 -0
  487. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
  488. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  489. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/troubleshooting/imports.md +0 -0
  490. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  491. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/troubleshooting/support.md +0 -0
  492. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  493. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  494. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/troubleshooting.md +0 -0
  495. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/usage/commands.md +0 -0
  496. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/usage/conventions.md +0 -0
  497. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/usage/copypaste.md +0 -0
  498. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/usage/images-urls.md +0 -0
  499. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/usage/lint-test.md +0 -0
  500. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/usage/modes.md +0 -0
  501. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/usage/not-code.md +0 -0
  502. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/usage/notifications.md +0 -0
  503. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/usage/sessions.md +0 -0
  504. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/usage/tips.md +0 -0
  505. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/usage/voice.md +0 -0
  506. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/usage/watch.md +0 -0
  507. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/docs/usage.md +0 -0
  508. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli/website/share/index.md +0 -0
  509. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli_dev.egg-info/dependency_links.txt +0 -0
  510. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli_dev.egg-info/entry_points.txt +0 -0
  511. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/cecli_dev.egg-info/top_level.txt +0 -0
  512. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/docker/Dockerfile +0 -0
  513. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  514. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/pyproject.toml +0 -0
  515. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/pytest.ini +0 -0
  516. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/requirements/requirements-dev.in +0 -0
  517. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/requirements/requirements-dev.txt +0 -0
  518. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/requirements/requirements-help.in +0 -0
  519. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/requirements/requirements-help.txt +0 -0
  520. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/requirements/requirements-playwright.in +0 -0
  521. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/requirements/requirements-playwright.txt +0 -0
  522. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/requirements/tree-sitter.in +0 -0
  523. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/30k-image.py +0 -0
  524. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/Dockerfile.jekyll +0 -0
  525. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/__init__.py +0 -0
  526. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/blame.py +0 -0
  527. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/clean_metadata.py +0 -0
  528. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/cost_analyzer.py +0 -0
  529. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/cost_calculator.py +0 -0
  530. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/dl_icons.py +0 -0
  531. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/filter-chat-mode.js +0 -0
  532. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/generate_providers.py +0 -0
  533. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/get_contributor_list.js +0 -0
  534. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/get_hashline.py +0 -0
  535. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/history_prompts.py +0 -0
  536. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/homepage.py +0 -0
  537. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/issues.py +0 -0
  538. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/jekyll_build.sh +0 -0
  539. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/jekyll_run.sh +0 -0
  540. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/logo_svg.py +0 -0
  541. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/pip-compile.sh +0 -0
  542. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/recording_audio.py +0 -0
  543. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/redact-cast.py +0 -0
  544. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/rename_to_cecli.py +0 -0
  545. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/tmux_record.sh +0 -0
  546. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/tsl_pack_langs.py +0 -0
  547. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/update-blame.sh +0 -0
  548. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/update-docs.sh +0 -0
  549. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/update-history.py +0 -0
  550. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/versionbump.py +0 -0
  551. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/scripts/yank-old-versions.py +0 -0
  552. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/setup.cfg +0 -0
  553. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/shim.pyproject.toml +0 -0
  554. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/__init__.py +0 -0
  555. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/__init__.py +0 -0
  556. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/conftest.py +0 -0
  557. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_aws_credentials.py +0 -0
  558. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_background_commands.py +0 -0
  559. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_coder.py +0 -0
  560. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_commands.py +0 -0
  561. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_custom_commands.py +0 -0
  562. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_deprecated.py +0 -0
  563. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_editblock.py +0 -0
  564. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_editor.py +0 -0
  565. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_exceptions.py +0 -0
  566. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_find_or_blocks.py +0 -0
  567. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_hashline.py +0 -0
  568. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_history.py +0 -0
  569. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_io.py +0 -0
  570. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_linter.py +0 -0
  571. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_main.py +0 -0
  572. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_model_info_manager.py +0 -0
  573. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_model_provider_manager.py +0 -0
  574. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_models.py +0 -0
  575. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_onboarding.py +0 -0
  576. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_plugin_manager.py +0 -0
  577. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_prompts.py +0 -0
  578. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_reasoning.py +0 -0
  579. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_repo.py +0 -0
  580. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_repomap.py +0 -0
  581. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_run_cmd.py +0 -0
  582. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_sanity_check_repo.py +0 -0
  583. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_scripting.py +0 -0
  584. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_sendchat.py +0 -0
  585. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_session_args.py +0 -0
  586. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_session_crypto.py +0 -0
  587. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_sessions.py +0 -0
  588. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_sessions_manager.py +0 -0
  589. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_skills.py +0 -0
  590. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_special.py +0 -0
  591. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_ssl_verification.py +0 -0
  592. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_udiff.py +0 -0
  593. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_urls.py +0 -0
  594. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_voice.py +0 -0
  595. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_watch.py +0 -0
  596. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/basic/test_wholefile.py +0 -0
  597. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/coders/test_coder_switching.py +0 -0
  598. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/coders/test_copypaste_coder.py +0 -0
  599. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/commands/test_compaction.py +0 -0
  600. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/commands/test_switch_agent.py +0 -0
  601. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/conftest.py +0 -0
  602. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/conversations/test_conversation_integration.py +0 -0
  603. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/conversations/test_conversation_system.py +0 -0
  604. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  605. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/chat-history.md +0 -0
  606. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/arduino/test.ino +0 -0
  607. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/bash/test.sh +0 -0
  608. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/c/test.c +0 -0
  609. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/chatito/test.chatito +0 -0
  610. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/clojure/test.clj +0 -0
  611. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  612. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/cpp/test.cpp +0 -0
  613. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/csharp/test.cs +0 -0
  614. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/d/test.d +0 -0
  615. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/dart/test.dart +0 -0
  616. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/elisp/test.el +0 -0
  617. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/elixir/test.ex +0 -0
  618. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/elm/test.elm +0 -0
  619. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/gleam/test.gleam +0 -0
  620. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/go/test.go +0 -0
  621. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/haskell/test.hs +0 -0
  622. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/hcl/test.tf +0 -0
  623. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/java/test.java +0 -0
  624. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/javascript/test.js +0 -0
  625. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/kotlin/test.kt +0 -0
  626. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/lua/test.lua +0 -0
  627. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/matlab/test.m +0 -0
  628. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/ocaml/test.ml +0 -0
  629. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  630. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/php/test.php +0 -0
  631. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/pony/test.pony +0 -0
  632. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/properties/test.properties +0 -0
  633. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/python/test.py +0 -0
  634. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/ql/test.ql +0 -0
  635. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/r/test.r +0 -0
  636. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/racket/test.rkt +0 -0
  637. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/ruby/test.rb +0 -0
  638. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/rust/test.rs +0 -0
  639. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/scala/test.scala +0 -0
  640. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/solidity/test.sol +0 -0
  641. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/swift/test.swift +0 -0
  642. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/tsx/test.tsx +0 -0
  643. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/typescript/test.ts +0 -0
  644. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/udev/test.rules +0 -0
  645. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/languages/zig/test.zig +0 -0
  646. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/sample-code-base/sample.js +0 -0
  647. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/sample-code-base/sample.py +0 -0
  648. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  649. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/watch.js +0 -0
  650. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/watch.lisp +0 -0
  651. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/watch.py +0 -0
  652. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/fixtures/watch_question.js +0 -0
  653. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/helpers/monorepo/test_config_active.py +0 -0
  654. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
  655. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
  656. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/helpers/monorepo/test_workspace.py +0 -0
  657. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/helpers/observations/test_observation_service.py +0 -0
  658. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/hooks/__init__.py +0 -0
  659. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/hooks/test_base.py +0 -0
  660. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/hooks/test_manager.py +0 -0
  661. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/hooks/test_registry.py +0 -0
  662. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/mcp/__init__.py +0 -0
  663. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/mcp/test_manager.py +0 -0
  664. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/scrape/test_playwright_disable.py +0 -0
  665. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/scrape/test_scrape.py +0 -0
  666. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/subagents/__init__.py +0 -0
  667. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/subagents/conftest.py +0 -0
  668. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/subagents/test_commands.py +0 -0
  669. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/subagents/test_config.py +0 -0
  670. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/subagents/test_delegate.py +0 -0
  671. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/subagents/test_io_proxy.py +0 -0
  672. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/subagents/test_sub_agent_coder.py +0 -0
  673. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/tools/test_extractions.py +0 -0
  674. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/tools/test_git_branch.py +0 -0
  675. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/tools/test_git_diff.py +0 -0
  676. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/tests/tools/test_registry.py +0 -0
  677. {cecli_dev-0.100.4rc3 → cecli_dev-0.100.6}/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.4rc3
3
+ Version: 0.100.6
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
@@ -53,6 +53,7 @@ Requires-Dist: truststore
53
53
  Requires-Dist: xxhash>=3.6.0
54
54
  Requires-Dist: py-cymbal>=0.1.24
55
55
  Requires-Dist: cryptography>=42.0.0
56
+ Requires-Dist: json-repair>=0.60.1
56
57
  Requires-Dist: marisa-trie>=1.0
57
58
  Requires-Dist: rapidfuzz>=3.0
58
59
  Requires-Dist: ngram>=4.0.3
@@ -1,6 +1,6 @@
1
1
  from packaging import version
2
2
 
3
- __version__ = "0.100.4.dev"
3
+ __version__ = "0.100.6.dev"
4
4
  safe_version = __version__
5
5
 
6
6
  try:
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.100.4rc3'
22
- __version_tuple__ = version_tuple = (0, 100, 4, 'rc3')
21
+ __version__ = version = '0.100.6'
22
+ __version_tuple__ = version_tuple = (0, 100, 6)
23
23
 
24
- __commit_id__ = commit_id = 'g3bc016f26'
24
+ __commit_id__ = commit_id = 'gfdc90fcc4'
@@ -121,6 +121,7 @@ def get_parser(default_config_files, git_root):
121
121
  )
122
122
  group.add_argument(
123
123
  "--model-overrides",
124
+ "--model-settings",
124
125
  metavar="MODEL_OVERRIDES_JSON",
125
126
  help=(
126
127
  'Specify model tag overrides directly as JSON/YAML string (e.g., \'{"gpt-4o": {"high":'
@@ -275,7 +276,10 @@ def get_parser(default_config_files, git_root):
275
276
  group.add_argument(
276
277
  "--retries",
277
278
  metavar="RETRIES_JSON",
278
- help="Specify LLM retry configuration as a JSON string",
279
+ help=(
280
+ 'Specify LLM retry configuration as a JSON/YAML string (e.g., \'{"retry_on_empty": '
281
+ "true}')"
282
+ ),
279
283
  default=None,
280
284
  )
281
285
 
@@ -132,6 +132,16 @@ class YamlHelpFormatter(argparse.HelpFormatter):
132
132
  break
133
133
  switch = switch.lstrip("-")
134
134
 
135
+ if switch == "retries":
136
+ parts.append(f"## {action.help}")
137
+ parts.append("#retries:")
138
+ parts.append("# retry-timeout: 60")
139
+ parts.append("# retry-backoff-factor: 2.0")
140
+ parts.append("# retry-on-unavailable: true")
141
+ parts.append("# retry-on-empty: false")
142
+ parts.append("")
143
+ return "\n".join(parts)
144
+
135
145
  if isinstance(action, argparse._StoreTrueAction):
136
146
  default = False
137
147
  elif isinstance(action, argparse._StoreConstAction):
@@ -91,6 +91,7 @@ class AgentCoder(Coder):
91
91
  self.allowed_context_blocks = set()
92
92
  self.context_block_tokens = {}
93
93
  self.context_blocks_cache = {}
94
+ self.current_tasks = []
94
95
  self.hot_reload_enabled = False
95
96
  self.tokens_calculated = False
96
97
  self.skip_cli_confirmations = False
@@ -152,6 +153,7 @@ class AgentCoder(Coder):
152
153
  config, "skip_cli_confirmations", nested.getter(config, "yolo", [])
153
154
  )
154
155
  config["command_timeout"] = nested.getter(config, "command_timeout", 30)
156
+ config["allowed_commands"] = nested.getter(config, "allowed_commands", [])
155
157
  config["hot_reload"] = nested.getter(config, "hot_reload", False)
156
158
  config["allow_nested_delegation"] = nested.getter(config, "allow_nested_delegation", False)
157
159
 
@@ -160,7 +162,9 @@ class AgentCoder(Coder):
160
162
  config, ["tools_includelist", "tools_whitelist"], []
161
163
  )
162
164
  config["tools_excludelist"] = nested.getter(
163
- config, ["tools_excludelist", "tools_blacklist"], []
165
+ config,
166
+ ["tools_excludelist", "tools_blacklist"],
167
+ ["gitbranch", "gitdiff", "gitlog", "gitremote", "gitshow", "gitstatus"],
164
168
  )
165
169
 
166
170
  config["servers_includelist"] = nested.getter(
@@ -174,7 +178,7 @@ class AgentCoder(Coder):
174
178
  config,
175
179
  "include_context_blocks",
176
180
  {
177
- "context_summary",
181
+ # "context_summary",
178
182
  # "directory_structure",
179
183
  "environment_info",
180
184
  # "git_status",
@@ -239,20 +243,6 @@ class AgentCoder(Coder):
239
243
  if self.loaded_custom_tools:
240
244
  self.io.tool_output(f"Loaded custom tools: {', '.join(self.loaded_custom_tools)}")
241
245
 
242
- skills = self.skills_manager.find_skills()
243
- if skills:
244
- skills_list = []
245
- for skill in skills:
246
- skills_list.append(skill.name)
247
- joined_skills = ", ".join(skills_list)
248
- self.io.tool_output(f"Available Skills: {joined_skills}")
249
-
250
- registry = AgentService.get_registry()
251
- if registry:
252
- names = sorted(registry.keys())
253
- joined_names = ", ".join(names)
254
- self.io.tool_output(f"Available Subagents: {joined_names}")
255
-
256
246
  def get_local_tool_schemas(self):
257
247
  """Returns the JSON schemas for all local tools using the tool registry."""
258
248
  schemas = []
@@ -625,7 +615,7 @@ class AgentCoder(Coder):
625
615
  percentage = total_tokens / max_input_tokens * 100
626
616
  result += f" ({percentage:.1f}% of limit)"
627
617
  if percentage > 80:
628
- result += "\n\n⚠️ **Context is getting full!**\n"
618
+ result += "\n\n **Context is getting full!**\n"
629
619
  result += "- Remove non-essential files via the `ContextManager` tool.\n"
630
620
  result += "- Keep only essential files in context for best performance"
631
621
  result += "\n</context>"
@@ -822,6 +812,9 @@ class AgentCoder(Coder):
822
812
  "# Fix any linting errors below, if possible and then continue with your task.",
823
813
  1,
824
814
  )
815
+ ConversationService.get_manager(self).remove_message_by_hash_key(
816
+ ("lint_errors", "agent")
817
+ )
825
818
  ConversationService.get_manager(self).add_message(
826
819
  message_dict=dict(role="user", content=lint_errors),
827
820
  tag=MessageTag.CUR,
@@ -1115,7 +1108,7 @@ class AgentCoder(Coder):
1115
1108
  context_parts.append("## File Editing Tools Disabled")
1116
1109
  context_parts.append(
1117
1110
  "File editing tools are currently disabled. Use `ReadRange` to determine the"
1118
- " current content hash prefixes needed to perform an edit and activate them when"
1111
+ " current content ID prefixes needed to perform an edit and activate them when"
1119
1112
  " you are ready to edit a file."
1120
1113
  )
1121
1114
 
@@ -1279,16 +1272,20 @@ class AgentCoder(Coder):
1279
1272
  abs_path = self.abs_root_path(file_path)
1280
1273
  rel_path = self.get_rel_fname(abs_path)
1281
1274
  if not os.path.isfile(abs_path):
1282
- self.io.tool_output(f"⚠️ File '{file_path}' not found")
1275
+ self.io.tool_output(f" File '{file_path}' not found", type="tool-result")
1283
1276
  return "File not found"
1284
1277
  if abs_path in self.abs_fnames:
1285
1278
  if explicit:
1286
- self.io.tool_output(f"📎 File '{file_path}' already in context as editable")
1279
+ self.io.tool_output(
1280
+ f"🗀 File '{file_path}' already in context as editable", type="tool-result"
1281
+ )
1287
1282
  return "File already in context as editable"
1288
1283
  return "File already in context as editable"
1289
1284
  if abs_path in self.abs_read_only_fnames:
1290
1285
  if explicit:
1291
- self.io.tool_output(f"📎 File '{file_path}' already in context as read-only")
1286
+ self.io.tool_output(
1287
+ f"🗀 File '{file_path}' already in context as read-only", type="tool-result"
1288
+ )
1292
1289
  return "File already in context as read-only"
1293
1290
  return "File already in context as read-only"
1294
1291
  try:
@@ -1299,13 +1296,18 @@ class AgentCoder(Coder):
1299
1296
  file_tokens = self.get_active_model().token_count(content)
1300
1297
  if file_tokens > self.large_file_token_threshold:
1301
1298
  self.io.tool_output(
1302
- f"⚠️ '{file_path}' is very large ({file_tokens} tokens). Use"
1303
- " /context-management to toggle truncation off if needed."
1299
+ (
1300
+ f" '{file_path}' is very large ({file_tokens} tokens). Use"
1301
+ " /context-management to toggle truncation off if needed."
1302
+ ),
1303
+ type="tool-result",
1304
1304
  )
1305
1305
  self.abs_read_only_fnames.add(abs_path)
1306
1306
  self.files_added_in_exploration.add(rel_path)
1307
1307
  if explicit:
1308
- self.io.tool_output(f"📎 Viewed '{file_path}' (added to context as read-only)")
1308
+ self.io.tool_output(
1309
+ f"🗀 Viewed '{file_path}' (added to context as read-only)", type="tool-result"
1310
+ )
1309
1311
  return "Viewed file (added to context as read-only)"
1310
1312
  else:
1311
1313
  return "Added file to context as read-only"
@@ -1432,10 +1434,11 @@ Todo list does not exist. Please update it with the `UpdateTodoList` tool.</cont
1432
1434
  content = self.io.read_text(abs_path)
1433
1435
  if content is None or not content.strip():
1434
1436
  return None
1437
+
1438
+ current_tasks = "\n".join(self.current_tasks)
1435
1439
  result = '<context name="todo_list" from="agent">\n'
1436
- result += "## Current Todo List\n\n"
1437
- result += "Below is the current todo list managed via the `UpdateTodoList` tool:\n\n"
1438
- result += f"```\n{content}\n```\n"
1440
+ result += "## Current Active Tasks\n\n"
1441
+ result += f"```{current_tasks}```\n"
1439
1442
  result += "</context>"
1440
1443
  return result
1441
1444
  except Exception as e:
@@ -46,6 +46,7 @@ from cecli.helpers.file_system import FileSystemService
46
46
  from cecli.helpers.io_proxy import IOProxy
47
47
  from cecli.helpers.observations.service import ObservationService
48
48
  from cecli.helpers.profiler import TokenProfiler
49
+ from cecli.helpers.threading import ThreadSafeEvent
49
50
  from cecli.history import ChatSummary
50
51
  from cecli.hooks import HookIntegration
51
52
  from cecli.io import ConfirmGroup, InputOutput
@@ -91,6 +92,10 @@ class FinishReasonLength(Exception):
91
92
  pass
92
93
 
93
94
 
95
+ class EmptyResponseError(Exception):
96
+ pass
97
+
98
+
94
99
  def wrap_fence(name):
95
100
  return f"<{name}>", f"</{name}>"
96
101
 
@@ -420,8 +425,9 @@ class Coder(metaclass=UsageMeta):
420
425
  # Each contains "included" and "excluded" sets that filter from the global singletons
421
426
  self.registered_tools = {"included": set(), "excluded": set()}
422
427
  self.registered_servers = {"included": set(), "excluded": set()}
423
- self.interrupt_event = asyncio.Event()
428
+ self.interrupt_event = ThreadSafeEvent()
424
429
  self.uuid = str(generate_unique_id())
430
+ self.reflected_message = None
425
431
 
426
432
  if uuid:
427
433
  self.uuid = str(uuid)
@@ -460,9 +466,7 @@ class Coder(metaclass=UsageMeta):
460
466
 
461
467
  self.context_compaction_max_tokens = context_compaction_max_tokens
462
468
  self.context_compaction_summary_tokens = context_compaction_summary_tokens
463
- self.max_reflections = (
464
- 3 if self.edit_format == "agent" else nested.getter(self.args, "max_reflections", 3)
465
- )
469
+ self.max_reflections = nested.getter(self.args, "max_reflections", 3)
466
470
 
467
471
  if not fnames:
468
472
  fnames = []
@@ -775,91 +779,118 @@ class Coder(metaclass=UsageMeta):
775
779
  """Get CUR messages from ConversationManager."""
776
780
  return ConversationService.get_manager(self).get_messages_dict(MessageTag.CUR)
777
781
 
782
+ @staticmethod
783
+ def _strip_provider(model_name: str) -> str:
784
+ """Remove provider prefix from model name (e.g., 'openai/gpt-4' -> 'gpt-4')."""
785
+ if "/" in model_name:
786
+ return model_name.split("/", 1)[1]
787
+ return model_name
788
+
778
789
  def get_announcements(self):
779
- lines = []
780
- lines.append(f"cecli v{__version__}")
790
+ sections = {}
781
791
 
782
- # Model
792
+ # --- MODELS ---
783
793
  main_model = self.main_model
784
- weak_model = main_model.weak_model
794
+
795
+ models_items = [f"{self._strip_provider(main_model.name)} (main)"]
785
796
  agent_model = main_model.agent_model
797
+ weak_model = main_model.weak_model
786
798
 
787
- if weak_model is not main_model:
788
- prefix = "Main model"
789
- else:
790
- prefix = "Model"
799
+ if agent_model and agent_model.name != main_model.name:
800
+ models_items.append(f"{self._strip_provider(agent_model.name)} (agent)")
801
+
802
+ if weak_model and weak_model.name != main_model.name:
803
+ models_items.append(f"{self._strip_provider(weak_model.name)} (weak)")
804
+ if self.edit_format == "architect":
805
+ models_items.append(f"{self._strip_provider(main_model.editor_model.name)} (editor)")
806
+
807
+ sections["Models"] = {"items": models_items}
808
+
809
+ # --- SETTINGS ---
810
+ settings_items = []
791
811
 
792
- output = f"{prefix}: {main_model.name} with {self.edit_format} edit format"
812
+ # Edit format
813
+ settings_items.append(f"{self.edit_format} (edit format)")
793
814
 
794
- # Check for thinking token budget
815
+ # Thinking tokens
795
816
  thinking_tokens = main_model.get_thinking_tokens()
796
817
  if thinking_tokens:
797
- output += f", {thinking_tokens} think tokens"
818
+ settings_items.append(f"{thinking_tokens} think tokens")
798
819
 
799
- # Check for reasoning effort
820
+ # Reasoning effort
800
821
  reasoning_effort = main_model.get_reasoning_effort()
801
822
  if reasoning_effort:
802
- output += f", reasoning {reasoning_effort}"
823
+ settings_items.append(f"reasoning {reasoning_effort}")
803
824
 
825
+ # Prompt cache
804
826
  if self.add_cache_headers or main_model.caches_by_default:
805
- output += ", prompt cache"
806
- if main_model.info.get("supports_assistant_prefill"):
807
- output += ", infinite output"
808
- if self.copy_paste_mode:
809
- output += ", copy/paste mode"
827
+ settings_items.append("prompt cache")
810
828
 
811
- lines.append(output)
829
+ # Infinite output
830
+ if main_model.info.get("supports_assistant_prefill"):
831
+ settings_items.append("infinite output")
812
832
 
813
- if self.edit_format == "architect":
814
- output = (
815
- f"Editor model: {main_model.editor_model.name} with"
816
- f" {main_model.editor_edit_format} edit format"
817
- )
818
- lines.append(output)
833
+ # Copy/paste mode
834
+ if self.copy_paste_mode:
835
+ settings_items.append("copy/paste mode")
819
836
 
820
- if weak_model is not main_model:
821
- output = f"Weak model: {weak_model.name}"
822
- lines.append(output)
837
+ if settings_items:
838
+ sections["Settings"] = {"items": settings_items}
823
839
 
824
- if agent_model is not main_model:
825
- output = f"Agent model: {agent_model.name}"
826
- lines.append(output)
840
+ # --- ENVIRONMENT ---
841
+ env_items = []
842
+ repo_map_tokens = None # Track for later warning check
827
843
 
828
- # Repo
829
844
  if self.repo:
830
845
  rel_repo_dir = self.repo.get_rel_repo_dir()
831
846
  num_files = len(self.repo.get_tracked_files())
832
-
833
- lines.append(f"Git repo: {rel_repo_dir} with {num_files:,} files")
847
+ env_items.append(f"{rel_repo_dir} ({num_files:,} files)")
834
848
  if num_files > 1000:
835
- lines.append(
849
+ env_items.append(
836
850
  "Warning: For large repos, consider using --subtree-only and .cecli_ignore"
837
851
  )
838
- lines.append(f"See: {urls.large_repos}")
852
+ env_items.append(f"See: {urls.large_repos}")
839
853
  else:
840
- lines.append("Git repo: none")
854
+ env_items.append("no git repo")
841
855
 
842
- # Repo-map
843
856
  if self.repo_map:
844
857
  map_tokens = self.repo_map.max_map_tokens
845
858
  if map_tokens > 0:
846
859
  refresh = self.repo_map.refresh
847
- lines.append(f"Repo-map: using {map_tokens} tokens, {refresh} refresh")
848
- max_map_tokens = self.get_active_model().get_repo_map_tokens() * 2
849
- if map_tokens > max_map_tokens:
850
- lines.append(
851
- f"Warning: map-tokens > {max_map_tokens} is not recommended. Too much"
852
- " irrelevant code can confuse LLMs."
853
- )
860
+ env_items.append(f"map ({map_tokens} tokens, {refresh} refresh)")
861
+ repo_map_tokens = map_tokens
854
862
  else:
855
- lines.append("Repo-map: disabled because map_tokens == 0")
863
+ env_items.append("repo-map disabled")
856
864
  else:
857
- lines.append("Repo-map: disabled")
865
+ env_items.append("repo-map disabled")
858
866
 
867
+ sections["Environment"] = {"items": env_items}
868
+ # --- CAPABILITIES ---
869
+ capabilities = {}
870
+
871
+ # Sub-agents
872
+ try:
873
+ from cecli.helpers.agents.service import AgentService
874
+
875
+ registry = AgentService.get_registry()
876
+ if registry:
877
+ capabilities["Subagents"] = sorted(registry.keys())
878
+ except Exception:
879
+ pass
880
+
881
+ # Skills
882
+ if hasattr(self, "skills_manager") and self.skills_manager:
883
+ try:
884
+ skills = self.skills_manager.find_skills()
885
+ if skills:
886
+ capabilities["Skills"] = [s.name for s in skills]
887
+ except Exception:
888
+ pass
889
+
890
+ # MCP Servers
859
891
  if self.mcp_tools:
860
892
  mcp_servers = []
861
893
  for server_name, server_tools in self.mcp_tools:
862
- # Filter servers per instance configuration
863
894
  if (
864
895
  self.registered_servers["included"]
865
896
  and server_name not in self.registered_servers["included"]
@@ -868,17 +899,49 @@ class Coder(metaclass=UsageMeta):
868
899
  if server_name in self.registered_servers["excluded"]:
869
900
  continue
870
901
  mcp_servers.append(server_name)
871
-
872
902
  if mcp_servers:
873
- lines.append(f"MCP servers configured: {', '.join(mcp_servers)}")
903
+ capabilities["Servers"] = mcp_servers
904
+
905
+ if capabilities:
906
+ # sections["Extensions"] = {"subsections": capabilities}
907
+ sections["Environment"]["subsections"] = capabilities
874
908
 
909
+ # --- RENDER ---
910
+ lines = []
911
+
912
+ # Version line (CLI only; TUI has its own banner)
913
+ if not self.args.tui:
914
+ lines.append(f"cecli v{__version__}")
915
+
916
+ for name, section in sections.items():
917
+ if "items" in section:
918
+ lines.append(f"{name:15s}" + " • ".join(section["items"]))
919
+ if "subsections" in section:
920
+ last_key = next(reversed(section["subsections"]))
921
+ # lines.append(name)
922
+ for sub_name, sub_items in section["subsections"].items():
923
+ connector = "└─" if sub_name == last_key else "├─"
924
+ lines.append(f" {connector} {sub_name:10} {' • '.join(sub_items)}")
925
+
926
+ # Repo-map max_tokens warning
927
+ if repo_map_tokens is not None:
928
+ max_map_tokens = self.get_active_model().get_repo_map_tokens() * 2
929
+ if repo_map_tokens > max_map_tokens:
930
+ lines.append(
931
+ f"Warning: map-tokens > {max_map_tokens} is not recommended. Too much"
932
+ " irrelevant code can confuse LLMs."
933
+ )
934
+
935
+ # Read-only stubs
875
936
  for fname in self.abs_read_only_stubs_fnames:
876
937
  rel_fname = self.get_rel_fname(fname)
877
938
  lines.append(f"Added {rel_fname} to the chat (read-only stub).")
878
939
 
940
+ # Restored conversation
879
941
  if ConversationService.get_manager(self).get_messages_dict(MessageTag.DONE):
880
942
  lines.append("Restored previous conversation history.")
881
943
 
944
+ # Multiline mode
882
945
  if self.io.multiline_mode and not self.args.tui:
883
946
  lines.append("Multiline mode: Enabled. Enter inserts newline, Alt-Enter submits text")
884
947
 
@@ -1045,7 +1108,7 @@ class Coder(metaclass=UsageMeta):
1045
1108
 
1046
1109
  # Add message about showing definitions instead of full content
1047
1110
  # self.io.tool_output(
1048
- # f"⚠️ '{relative_fname}' is very large ({file_tokens} tokens). "
1111
+ # f" '{relative_fname}' is very large ({file_tokens} tokens). "
1049
1112
  # "Use /context-management to toggle truncation off if needed."
1050
1113
  # )
1051
1114
 
@@ -1113,7 +1176,7 @@ class Coder(metaclass=UsageMeta):
1113
1176
 
1114
1177
  # Add message about showing definitions instead of full content
1115
1178
  # self.io.tool_output(
1116
- # f"⚠️ '{relative_fname}' is very large ({file_tokens} tokens). "
1179
+ # f" '{relative_fname}' is very large ({file_tokens} tokens). "
1117
1180
  # "Use /context-management to toggle truncation off if needed."
1118
1181
  # )
1119
1182
 
@@ -1645,6 +1708,7 @@ class Coder(metaclass=UsageMeta):
1645
1708
 
1646
1709
  async def generate(self, user_message, preproc):
1647
1710
  await asyncio.sleep(0.1)
1711
+ self.interrupt_event.clear()
1648
1712
 
1649
1713
  try:
1650
1714
  if self.enable_context_compaction:
@@ -2404,6 +2468,39 @@ class Coder(metaclass=UsageMeta):
2404
2468
  async for chunk in self.send(messages, tools=self.get_tool_list()):
2405
2469
  yield chunk
2406
2470
  break
2471
+ except EmptyResponseError:
2472
+ self.io.tool_warning(self.empty_llm_tool_warning())
2473
+
2474
+ retry_on_empty = False
2475
+ retries_config = self.get_active_model().retries
2476
+ if isinstance(retries_config, str):
2477
+ try:
2478
+ retries_config = json.loads(retries_config)
2479
+ except json.JSONDecodeError:
2480
+ self.io.tool_warning(
2481
+ f"Could not parse retries config: {retries_config}"
2482
+ )
2483
+ retries_config = {}
2484
+ if isinstance(retries_config, dict):
2485
+ retry_on_empty = retries_config.get("retry_on_empty", False)
2486
+
2487
+ if not retry_on_empty:
2488
+ break
2489
+
2490
+ retry_delay *= 2
2491
+ if retry_delay > RETRY_TIMEOUT:
2492
+ self.io.tool_error("Retry timeout exceeded on empty response.")
2493
+ break
2494
+
2495
+ self.io.tool_output(f"Retrying in {retry_delay:.1f} seconds...")
2496
+
2497
+ _res, interrupted_sleep = await coroutines.interruptible(
2498
+ asyncio.sleep(retry_delay), self.interrupt_event
2499
+ )
2500
+ if interrupted_sleep:
2501
+ interrupted = True
2502
+ break
2503
+ continue
2407
2504
  except litellm_ex.exceptions_tuple() as err:
2408
2505
  ex_info = litellm_ex.get_ex_info(err)
2409
2506
 
@@ -2464,7 +2561,9 @@ class Coder(metaclass=UsageMeta):
2464
2561
  return
2465
2562
  finally:
2466
2563
  if self.mdstream:
2467
- content_to_show = self.live_incremental_response(True)
2564
+ content_to_show = (
2565
+ "" if self.tui and self.tui() else self.live_incremental_response(True)
2566
+ )
2468
2567
  self.stream_wrapper(content_to_show, final=True)
2469
2568
  self.mdstream = None
2470
2569
 
@@ -3254,6 +3353,7 @@ class Coder(metaclass=UsageMeta):
3254
3353
  self.interrupt_event.clear()
3255
3354
  self.got_reasoning_content = False
3256
3355
  self.ended_reasoning_content = False
3356
+ self.empty_response = False
3257
3357
 
3258
3358
  self._streaming_buffer_length = 0
3259
3359
  self.io.reset_streaming_response()
@@ -3304,6 +3404,9 @@ class Coder(metaclass=UsageMeta):
3304
3404
  else:
3305
3405
  await self.show_send_output(completion)
3306
3406
 
3407
+ if self.empty_response:
3408
+ raise EmptyResponseError
3409
+
3307
3410
  response, func_err, content_err = self.consolidate_chunks()
3308
3411
 
3309
3412
  if response:
@@ -3384,7 +3487,8 @@ class Coder(metaclass=UsageMeta):
3384
3487
  and not len(self.partial_response_tool_calls)
3385
3488
  and not len(self.partial_response_reasoning_content)
3386
3489
  ):
3387
- self.io.tool_warning(self.empty_llm_tool_warning())
3490
+ self.empty_response = True
3491
+ return
3388
3492
 
3389
3493
  self.io.assistant_output(show_resp, pretty=self.show_pretty())
3390
3494
 
@@ -3482,24 +3586,13 @@ class Coder(metaclass=UsageMeta):
3482
3586
  except AttributeError:
3483
3587
  reasoning_content = None
3484
3588
 
3485
- if reasoning_content:
3486
- if nested.getter(self.args, "show_thinking"):
3487
- if not self.got_reasoning_content:
3488
- text += f"<{REASONING_TAG}>\n\n"
3489
- text += reasoning_content
3490
- self.got_reasoning_content = True
3491
- received_content = True
3492
- self.token_profiler.on_token()
3493
- self.io.update_spinner_suffix(reasoning_content)
3494
- self.partial_response_reasoning_content += reasoning_content
3495
-
3496
3589
  try:
3497
3590
  content = chunk.choices[0].delta.content
3498
3591
  if content:
3499
3592
  if self.got_reasoning_content and not self.ended_reasoning_content:
3500
3593
  text += f"\n\n</{self.reasoning_tag_name}>\n\n"
3501
- self.ended_reasoning_content = True
3502
3594
 
3595
+ self.ended_reasoning_content = True
3503
3596
  text += content
3504
3597
  received_content = True
3505
3598
  self.token_profiler.on_token()
@@ -3507,6 +3600,22 @@ class Coder(metaclass=UsageMeta):
3507
3600
  except AttributeError:
3508
3601
  pass
3509
3602
 
3603
+ if reasoning_content:
3604
+ if (
3605
+ nested.getter(self.args, "show_thinking")
3606
+ and not self.ended_reasoning_content
3607
+ ):
3608
+ if not self.got_reasoning_content:
3609
+ text += f"<{REASONING_TAG}>\n\n"
3610
+
3611
+ text += reasoning_content
3612
+ self.got_reasoning_content = True
3613
+ received_content = True
3614
+
3615
+ self.token_profiler.on_token()
3616
+ self.io.update_spinner_suffix(reasoning_content)
3617
+ self.partial_response_reasoning_content += reasoning_content
3618
+
3510
3619
  self.partial_response_content += text
3511
3620
 
3512
3621
  chunk_index += 1
@@ -3533,6 +3642,16 @@ class Coder(metaclass=UsageMeta):
3533
3642
  except (asyncio.CancelledError, KeyboardInterrupt):
3534
3643
  raise KeyboardInterrupt
3535
3644
 
3645
+ if (
3646
+ self.show_pretty()
3647
+ and nested.getter(self.args, "show_thinking")
3648
+ and self.got_reasoning_content
3649
+ and not self.ended_reasoning_content
3650
+ ):
3651
+ self.partial_response_content += f"\n\n</{self.reasoning_tag_name}>\n\n"
3652
+ content_to_show = self.live_incremental_response(False)
3653
+ self.stream_wrapper(content_to_show, final=False)
3654
+
3536
3655
  # The Part Doing the Heavy Lifting Now
3537
3656
  self.consolidate_chunks()
3538
3657
 
@@ -3541,7 +3660,8 @@ class Coder(metaclass=UsageMeta):
3541
3660
  return
3542
3661
 
3543
3662
  if not received_content and len(self.partial_response_tool_calls) == 0:
3544
- self.io.tool_warning(self.empty_llm_tool_warning())
3663
+ self.empty_response = True
3664
+ return
3545
3665
 
3546
3666
  def consolidate_chunks(self):
3547
3667
  if self.partial_response_consolidated:
@@ -3555,6 +3675,11 @@ class Coder(metaclass=UsageMeta):
3555
3675
  func_err = None
3556
3676
  content_err = None
3557
3677
 
3678
+ last_chunk = self.partial_response_chunks[len(self.partial_response_chunks) - 1]
3679
+ if last_chunk:
3680
+ if getattr(last_chunk, "usage", None):
3681
+ response.usage = last_chunk.usage
3682
+
3558
3683
  # Collect provider-specific fields from chunks to preserve them
3559
3684
  # We need to track both by ID (primary) and index (fallback) since
3560
3685
  # early chunks might not have IDs established yet
@@ -3746,6 +3871,7 @@ class Coder(metaclass=UsageMeta):
3746
3871
  cache_hit_tokens = (
3747
3872
  getattr(completion.usage, "prompt_cache_hit_tokens", 0)
3748
3873
  or getattr(completion.usage, "cache_read_input_tokens", 0)
3874
+ or nested.getter(completion.usage, "prompt_tokens_details.cached_tokens", 0)
3749
3875
  or 0
3750
3876
  )
3751
3877
  cache_write_tokens = getattr(completion.usage, "cache_creation_input_tokens", 0) or 0