cecli-dev 1.6.0rc3__tar.gz → 1.6.0rc5__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 (857) hide show
  1. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/PKG-INFO +1 -1
  2. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/_version.py +3 -3
  3. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/agent_coder.py +9 -2
  4. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/base_coder.py +7 -1
  5. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/tokens.py +151 -43
  6. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/coroutines.py +85 -36
  7. cecli_dev-1.6.0rc5/cecli/helpers/lock_detect.py +137 -0
  8. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/mcp/manager.py +34 -6
  9. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/models.py +2 -2
  10. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/repo.py +48 -13
  11. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/command.py +41 -1
  12. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tui/app.py +41 -0
  13. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tui/widgets/input_area.py +5 -0
  14. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tui/worker.py +177 -21
  15. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config/tui.md +6 -2
  16. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli_dev.egg-info/PKG-INFO +1 -1
  17. cecli_dev-1.6.0rc5/cecli_dev.egg-info/scm_version.json +8 -0
  18. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_commands.py +119 -0
  19. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/tui/test_app.py +86 -0
  20. cecli_dev-1.6.0rc3/cecli/helpers/lock_detect.py +0 -61
  21. cecli_dev-1.6.0rc3/cecli_dev.egg-info/scm_version.json +0 -8
  22. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/.dockerignore +0 -0
  23. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/.flake8 +0 -0
  24. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/.gitattributes +0 -0
  25. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  26. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/.github/workflows/check_pypi_version.yml +0 -0
  27. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/.github/workflows/docker-build-test.yml +0 -0
  28. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/.github/workflows/docker-release.yml +0 -0
  29. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/.github/workflows/issues.yml +0 -0
  30. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/.github/workflows/pages.yml +0 -0
  31. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/.github/workflows/pre-commit.yml +0 -0
  32. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/.github/workflows/release.yml +0 -0
  33. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/.github/workflows/ubuntu-tests.yml +0 -0
  34. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/.github/workflows/windows-tests.yml +0 -0
  35. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/.github/workflows/windows_check_pypi_version.yml +0 -0
  36. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/.gitignore +0 -0
  37. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/.pre-commit-config.yaml +0 -0
  38. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/CHANGELOG.md +0 -0
  39. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/CNAME +0 -0
  40. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/CONTRIBUTING.md +0 -0
  41. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/HISTORY.md +0 -0
  42. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/LICENSE.txt +0 -0
  43. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/MANIFEST.in +0 -0
  44. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/README.md +0 -0
  45. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/Dockerfile +0 -0
  46. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/README.md +0 -0
  47. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/__init__.py +0 -0
  48. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/benchmark.py +0 -0
  49. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/benchmark_classic.py +0 -0
  50. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/clone-exercism.sh +0 -0
  51. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/cpp-test.sh +0 -0
  52. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/docker.sh +0 -0
  53. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/docker_build.sh +0 -0
  54. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/install-docker-ubuntu.sh +0 -0
  55. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/npm-test.sh +0 -0
  56. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/over_time.py +0 -0
  57. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/plot.sh +0 -0
  58. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/plots.py +0 -0
  59. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/problem_stats.py +0 -0
  60. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/prompts.py +0 -0
  61. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/refactor_tools.py +0 -0
  62. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/rsync.sh +0 -0
  63. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/rungrid.py +0 -0
  64. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/swe-bench-lite.txt +0 -0
  65. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/swe-bench.txt +0 -0
  66. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/swe_bench.py +0 -0
  67. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/test_benchmark.py +0 -0
  68. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/variations.1.sh +0 -0
  69. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/variations.2.sh +0 -0
  70. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/variations.3.sh +0 -0
  71. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/benchmark/variations.4.sh +0 -0
  72. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/__init__.py +0 -0
  73. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/__main__.py +0 -0
  74. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/args.py +0 -0
  75. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/args_formatter.py +0 -0
  76. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/change_tracker.py +0 -0
  77. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/__init__.py +0 -0
  78. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/architect_coder.py +0 -0
  79. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/ask_coder.py +0 -0
  80. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/chat_chunks.py +0 -0
  81. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/context_coder.py +0 -0
  82. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/copypaste_coder.py +0 -0
  83. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/editblock_coder.py +0 -0
  84. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/editblock_fenced_coder.py +0 -0
  85. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/editblock_func_coder.py +0 -0
  86. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  87. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/editor_editblock_coder.py +0 -0
  88. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/editor_whole_coder.py +0 -0
  89. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/hashline_coder.py +0 -0
  90. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/help_coder.py +0 -0
  91. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/patch_coder.py +0 -0
  92. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/search_replace.py +0 -0
  93. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/shell.py +0 -0
  94. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/single_wholefile_func_coder.py +0 -0
  95. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/sub_agent_coder.py +0 -0
  96. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/udiff_coder.py +0 -0
  97. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/udiff_simple.py +0 -0
  98. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/wholefile_coder.py +0 -0
  99. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/coders/wholefile_func_coder.py +0 -0
  100. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/__init__.py +0 -0
  101. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/add.py +0 -0
  102. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/agent.py +0 -0
  103. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/agent_model.py +0 -0
  104. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/agent_tree.py +0 -0
  105. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/architect.py +0 -0
  106. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/ask.py +0 -0
  107. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/auto_memory.py +0 -0
  108. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/chat_mode.py +0 -0
  109. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/clear.py +0 -0
  110. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/code.py +0 -0
  111. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/command_prefix.py +0 -0
  112. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/commit.py +0 -0
  113. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/compact.py +0 -0
  114. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/context.py +0 -0
  115. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/context_blocks.py +0 -0
  116. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/context_management.py +0 -0
  117. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/copy.py +0 -0
  118. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/copy_context.py +0 -0
  119. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/core.py +0 -0
  120. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/diff.py +0 -0
  121. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/drop.py +0 -0
  122. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/editor.py +0 -0
  123. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/editor_model.py +0 -0
  124. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/exclude_skill.py +0 -0
  125. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/exit.py +0 -0
  126. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/git.py +0 -0
  127. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/hashline.py +0 -0
  128. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/help.py +0 -0
  129. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/history_search.py +0 -0
  130. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/hooks.py +0 -0
  131. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/hot_reload.py +0 -0
  132. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/import_skill.py +0 -0
  133. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/include_skill.py +0 -0
  134. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/insert_queue.py +0 -0
  135. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/lint.py +0 -0
  136. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/list_mcp.py +0 -0
  137. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/list_queue.py +0 -0
  138. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/list_sessions.py +0 -0
  139. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/list_skills.py +0 -0
  140. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/load.py +0 -0
  141. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/load_hook.py +0 -0
  142. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/load_mcp.py +0 -0
  143. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/load_session.py +0 -0
  144. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/load_skill.py +0 -0
  145. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/ls.py +0 -0
  146. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/map.py +0 -0
  147. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/map_refresh.py +0 -0
  148. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/merge.py +0 -0
  149. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/model.py +0 -0
  150. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/models.py +0 -0
  151. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/multiline_mode.py +0 -0
  152. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/paste.py +0 -0
  153. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/queue.py +0 -0
  154. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/quit.py +0 -0
  155. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/read_only.py +0 -0
  156. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/read_only_stub.py +0 -0
  157. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/reap_agent.py +0 -0
  158. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/reasoning_effort.py +0 -0
  159. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/remove_hook.py +0 -0
  160. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/remove_mcp.py +0 -0
  161. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/remove_memory.py +0 -0
  162. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/remove_queue.py +0 -0
  163. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/remove_skill.py +0 -0
  164. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/report.py +0 -0
  165. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/reset.py +0 -0
  166. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/rules.py +0 -0
  167. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/run.py +0 -0
  168. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/save.py +0 -0
  169. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/save_session.py +0 -0
  170. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/search_memory.py +0 -0
  171. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/settings.py +0 -0
  172. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/spawn_agent.py +0 -0
  173. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/switch_agent.py +0 -0
  174. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/terminal_data/linux.keytab +0 -0
  175. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/terminal_setup.py +0 -0
  176. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/test.py +0 -0
  177. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/think_tokens.py +0 -0
  178. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/undo.py +0 -0
  179. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/utils/__init__.py +0 -0
  180. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/utils/base_command.py +0 -0
  181. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/utils/helpers.py +0 -0
  182. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/utils/registry.py +0 -0
  183. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/utils/save_load_manager.py +0 -0
  184. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/voice.py +0 -0
  185. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/weak_model.py +0 -0
  186. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/web.py +0 -0
  187. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/commands/workspace.py +0 -0
  188. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/decoding.py +0 -0
  189. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/deprecated_args.py +0 -0
  190. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/diffs.py +0 -0
  191. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/dump.py +0 -0
  192. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/editor.py +0 -0
  193. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/exceptions.py +0 -0
  194. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/format_settings.py +0 -0
  195. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/help.py +0 -0
  196. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/help_pats.py +0 -0
  197. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/__init__.py +0 -0
  198. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/agents/__init__.py +0 -0
  199. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/agents/config.py +0 -0
  200. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/agents/defaults/__init__.py +0 -0
  201. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/agents/defaults/memorizer.md +0 -0
  202. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/agents/defaults/worker.md +0 -0
  203. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/agents/service.py +0 -0
  204. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/background_commands.py +0 -0
  205. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/command_parser.py +0 -0
  206. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/command_queue.py +0 -0
  207. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/config_utils.py +0 -0
  208. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/conversation/__init__.py +0 -0
  209. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/conversation/base_message.py +0 -0
  210. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/conversation/files.py +0 -0
  211. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/conversation/integration.py +0 -0
  212. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/conversation/manager.py +0 -0
  213. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/conversation/service.py +0 -0
  214. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/conversation/tags.py +0 -0
  215. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/conversation/utils.py +0 -0
  216. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/copypaste.py +0 -0
  217. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/crypto.py +0 -0
  218. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/extensions/__init__.py +0 -0
  219. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/extensions/skills_importer.py +0 -0
  220. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/file_searcher.py +0 -0
  221. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/file_system/__init__.py +0 -0
  222. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/file_system/builders.py +0 -0
  223. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/file_system/ignore.py +0 -0
  224. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/file_system/ngram_index.py +0 -0
  225. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/file_system/service.py +0 -0
  226. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/file_system/trie_index.py +0 -0
  227. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/grep_ast/__init__.py +0 -0
  228. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/grep_ast/dump.py +0 -0
  229. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/grep_ast/grep_ast.py +0 -0
  230. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/grep_ast/main.py +0 -0
  231. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/grep_ast/parsers.py +0 -0
  232. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/grep_ast/tsl.py +0 -0
  233. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/hashline.py +0 -0
  234. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/hashpos/__init__.py +0 -0
  235. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/hashpos/hashpos.py +0 -0
  236. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/hashpos/hashpos.v1.bak +0 -0
  237. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/hashpos/transformations.py +0 -0
  238. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/io_proxy.py +0 -0
  239. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/leak_detect.py +0 -0
  240. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/__init__.py +0 -0
  241. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/aws_sigv4.py +0 -0
  242. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/config.py +0 -0
  243. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/domains/__init__.py +0 -0
  244. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/domains/bedrock.py +0 -0
  245. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/domains/chat.py +0 -0
  246. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/domains/gemini.py +0 -0
  247. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/domains/messages.py +0 -0
  248. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/domains/responses.py +0 -0
  249. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/formatters/__init__.py +0 -0
  250. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/formatters/reasoning.py +0 -0
  251. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/formatters/thinking.py +0 -0
  252. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/identifiers.py +0 -0
  253. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/litellm_compat.py +0 -0
  254. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/pipeline.py +0 -0
  255. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/providers/__init__.py +0 -0
  256. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/providers/anthropic.py +0 -0
  257. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/providers/azure.py +0 -0
  258. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/providers/base.py +0 -0
  259. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/providers/bedrock.py +0 -0
  260. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/providers/bedrock_mantle.py +0 -0
  261. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/providers/deepseek.py +0 -0
  262. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/providers/gemini.py +0 -0
  263. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/providers/github_copilot.py +0 -0
  264. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/providers/meta.py +0 -0
  265. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/providers/mistral.py +0 -0
  266. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/providers/openai.py +0 -0
  267. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/providers/openrouter.py +0 -0
  268. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/runtime.py +0 -0
  269. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/types.py +0 -0
  270. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/llms/utils.py +0 -0
  271. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/loop_detect.py +0 -0
  272. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/memory/__init__.py +0 -0
  273. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/memory/db.py +0 -0
  274. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/memory/utils.py +0 -0
  275. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/memory_control.py +0 -0
  276. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/model_config/__init__.py +0 -0
  277. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/model_config/agent.py +0 -0
  278. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/model_config/api.py +0 -0
  279. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/model_config/formatters/__init__.py +0 -0
  280. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/model_config/formatters/reasoning.py +0 -0
  281. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/model_config/formatters/thinking.py +0 -0
  282. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/model_config/identifiers.py +0 -0
  283. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/model_config/llm.py +0 -0
  284. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/model_config/pipeline.py +0 -0
  285. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/model_config/registry.py +0 -0
  286. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/model_config/utils.py +0 -0
  287. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/model_providers.py +0 -0
  288. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/nested.py +0 -0
  289. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/observations/__init__.py +0 -0
  290. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/observations/service.py +0 -0
  291. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/onboarding/__init__.py +0 -0
  292. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/onboarding/app.py +0 -0
  293. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/onboarding/providers.py +0 -0
  294. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/orchestration/__init__.py +0 -0
  295. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/orchestration/agent_proxy.py +0 -0
  296. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/orchestration/environment.py +0 -0
  297. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/orchestration/region_resolver.py +0 -0
  298. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/orchestration/safe_methods.py +0 -0
  299. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/orchestration/security.py +0 -0
  300. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/orchestration/service.py +0 -0
  301. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/orchestration/tool_proxy.py +0 -0
  302. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/plugin_manager.py +0 -0
  303. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/profiler.py +0 -0
  304. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/queues.py +0 -0
  305. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/requests.py +0 -0
  306. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/responses.py +0 -0
  307. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/server/__init__.py +0 -0
  308. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/server/acp/__init__.py +0 -0
  309. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/server/acp/bridge.py +0 -0
  310. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/server/acp/models.py +0 -0
  311. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/server/acp/protocol.py +0 -0
  312. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/server/signals.py +0 -0
  313. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/server/ws_server.py +0 -0
  314. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/similarity.py +0 -0
  315. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/skills.py +0 -0
  316. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/threading.py +0 -0
  317. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/workspaces/__init__.py +0 -0
  318. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/workspaces/config.py +0 -0
  319. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/workspaces/paths.py +0 -0
  320. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/workspaces/subagents.py +0 -0
  321. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/helpers/workspaces/workspace.py +0 -0
  322. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/history.py +0 -0
  323. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/hooks/__init__.py +0 -0
  324. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/hooks/base.py +0 -0
  325. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/hooks/helpers.py +0 -0
  326. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/hooks/integration.py +0 -0
  327. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/hooks/manager.py +0 -0
  328. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/hooks/registry.py +0 -0
  329. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/hooks/service.py +0 -0
  330. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/hooks/types.py +0 -0
  331. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/http.py +0 -0
  332. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/interruptible_input.py +0 -0
  333. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/io.py +0 -0
  334. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/linter.py +0 -0
  335. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/llm.py +0 -0
  336. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/main.py +0 -0
  337. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/mcp/__init__.py +0 -0
  338. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/mcp/oauth.py +0 -0
  339. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/mcp/server.py +0 -0
  340. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/mcp/utils.py +0 -0
  341. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/mdstream.py +0 -0
  342. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/onboarding.py +0 -0
  343. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/__init__.py +0 -0
  344. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/agent.yml +0 -0
  345. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/architect.yml +0 -0
  346. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/ask.yml +0 -0
  347. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/base.yml +0 -0
  348. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/context.yml +0 -0
  349. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/copypaste.yml +0 -0
  350. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/editblock.yml +0 -0
  351. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/editblock_fenced.yml +0 -0
  352. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/editblock_func.yml +0 -0
  353. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/editor_diff_fenced.yml +0 -0
  354. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/editor_editblock.yml +0 -0
  355. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/editor_whole.yml +0 -0
  356. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/hashline.yml +0 -0
  357. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/help.yml +0 -0
  358. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/patch.yml +0 -0
  359. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/single_wholefile_func.yml +0 -0
  360. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/subagent.yml +0 -0
  361. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/udiff.yml +0 -0
  362. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/udiff_simple.yml +0 -0
  363. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/utils/__init__.py +0 -0
  364. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/utils/registry.py +0 -0
  365. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/utils/system.py +0 -0
  366. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/wholefile.yml +0 -0
  367. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/prompts/wholefile_func.yml +0 -0
  368. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  369. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  370. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
  371. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  372. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  373. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  374. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  375. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  376. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  377. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  378. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  379. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  380. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  381. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  382. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  383. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  384. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  385. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  386. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  387. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  388. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  389. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  390. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  391. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  392. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  393. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  394. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  395. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  396. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  397. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  398. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  399. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  400. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/README.md +0 -0
  401. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
  402. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  403. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  404. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  405. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  406. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  407. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  408. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  409. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  410. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  411. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  412. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  413. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  414. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  415. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  416. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  417. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  418. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  419. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  420. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  421. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  422. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  423. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  424. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  425. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  426. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  427. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  428. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/reasoning_tags.py +0 -0
  429. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/repomap.py +0 -0
  430. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/report.py +0 -0
  431. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/resources/__init__.py +0 -0
  432. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/resources/model-metadata.ext.json +0 -0
  433. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/resources/model-metadata.json +0 -0
  434. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/resources/model-settings-condensed.yml +0 -0
  435. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/resources/model-settings.yml +0 -0
  436. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/resources/providers.json +0 -0
  437. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/run_cmd.py +0 -0
  438. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/scrape.py +0 -0
  439. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/sendchat.py +0 -0
  440. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/sessions.py +0 -0
  441. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/signals.py +0 -0
  442. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/special.py +0 -0
  443. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tests/test_queue_commands.py +0 -0
  444. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/__init__.py +0 -0
  445. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/_yield.py +0 -0
  446. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/broadcast.py +0 -0
  447. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/delegate.py +0 -0
  448. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/edit_file.py +0 -0
  449. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/explore_code.py +0 -0
  450. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/git_branch.py +0 -0
  451. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/git_diff.py +0 -0
  452. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/git_log.py +0 -0
  453. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/git_remote.py +0 -0
  454. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/git_show.py +0 -0
  455. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/git_status.py +0 -0
  456. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/grep.py +0 -0
  457. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/ls.py +0 -0
  458. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/orchestrate.py +0 -0
  459. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/read_file.py +0 -0
  460. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/replace_facts.py +0 -0
  461. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/resource_manager.py +0 -0
  462. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/search_facts.py +0 -0
  463. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/thinking.py +0 -0
  464. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/undo_change.py +0 -0
  465. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/update_todo_list.py +0 -0
  466. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/utils/__init__.py +0 -0
  467. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/utils/base_tool.py +0 -0
  468. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/utils/helpers.py +0 -0
  469. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/utils/output.py +0 -0
  470. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/utils/registry.py +0 -0
  471. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/utils/responses.py +0 -0
  472. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/validations/__init__.py +0 -0
  473. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tools/validations/validations.py +0 -0
  474. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tui/__init__.py +0 -0
  475. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tui/io.py +0 -0
  476. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tui/styles.tcss +0 -0
  477. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tui/widgets/__init__.py +0 -0
  478. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tui/widgets/completion_bar.py +0 -0
  479. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tui/widgets/file_list.py +0 -0
  480. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tui/widgets/footer.py +0 -0
  481. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tui/widgets/input_container.py +0 -0
  482. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tui/widgets/key_hints.py +0 -0
  483. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tui/widgets/output.py +0 -0
  484. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tui/widgets/output_alt.bak +0 -0
  485. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tui/widgets/selectable_log.py +0 -0
  486. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tui/widgets/status_bar.py +0 -0
  487. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/tui/widgets/subagent_pills.py +0 -0
  488. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/urls.py +0 -0
  489. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/utils.py +0 -0
  490. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/versioncheck.py +0 -0
  491. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/voice.py +0 -0
  492. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/waiting.py +0 -0
  493. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/watch.py +0 -0
  494. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/watch_prompts.py +0 -0
  495. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/_includes/blame.md +0 -0
  496. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/_includes/get-started.md +0 -0
  497. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/_includes/help-tip.md +0 -0
  498. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/_includes/help.md +0 -0
  499. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/_includes/install.md +0 -0
  500. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/_includes/keys.md +0 -0
  501. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/_includes/model-warnings.md +0 -0
  502. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/_includes/multi-line.md +0 -0
  503. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/_includes/python-m-aider.md +0 -0
  504. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/_includes/recording.css +0 -0
  505. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/_includes/recording.md +0 -0
  506. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/_includes/works-best.md +0 -0
  507. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/_sass/_features.scss +0 -0
  508. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/_sass/_footer.scss +0 -0
  509. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/_sass/_hero.scss +0 -0
  510. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/_sass/_info.scss +0 -0
  511. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/_sass/_layout.scss +0 -0
  512. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/_sass/_reset.scss +0 -0
  513. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/_sass/_testimonials.scss +0 -0
  514. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/_sass/_typography.scss +0 -0
  515. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/_sass/_variables.scss +0 -0
  516. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/_sass/custom/custom.scss +0 -0
  517. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/_sass/global-overrides.scss +0 -0
  518. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docmd.config.json +0 -0
  519. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/cecli-temp-logo-favicon.svg +0 -0
  520. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config/adv-model-settings.md +0 -0
  521. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config/agent-mode.md +0 -0
  522. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config/api-keys.md +0 -0
  523. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config/api.md +0 -0
  524. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config/conf.md +0 -0
  525. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config/custom-commands.md +0 -0
  526. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  527. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config/dotenv.md +0 -0
  528. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config/editor.md +0 -0
  529. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config/hooks.md +0 -0
  530. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config/mcp.md +0 -0
  531. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config/model-aliases.md +0 -0
  532. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config/model-configuration.md +0 -0
  533. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config/model-providers.md +0 -0
  534. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config/options.md +0 -0
  535. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config/persistent-memory.md +0 -0
  536. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config/reasoning.md +0 -0
  537. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config/retries.md +0 -0
  538. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config/security.md +0 -0
  539. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config/skills.md +0 -0
  540. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config/subagents.md +0 -0
  541. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config/workspaces.md +0 -0
  542. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/config.md +0 -0
  543. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/git.md +0 -0
  544. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/index.md +0 -0
  545. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/install/docker.md +0 -0
  546. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/install.md +0 -0
  547. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/languages.md +0 -0
  548. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  549. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/legal/privacy.md +0 -0
  550. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/llms/anthropic.md +0 -0
  551. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/llms/azure.md +0 -0
  552. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/llms/bedrock.md +0 -0
  553. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/llms/cohere.md +0 -0
  554. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/llms/deepseek.md +0 -0
  555. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/llms/gemini.md +0 -0
  556. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/llms/github.md +0 -0
  557. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/llms/groq.md +0 -0
  558. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/llms/lm-studio.md +0 -0
  559. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/llms/ollama.md +0 -0
  560. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/llms/openai-compat.md +0 -0
  561. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/llms/openai.md +0 -0
  562. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/llms/opencode-go.md +0 -0
  563. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/llms/openrouter.md +0 -0
  564. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/llms/other.md +0 -0
  565. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/llms/vertex.md +0 -0
  566. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/llms/warnings.md +0 -0
  567. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/llms/xai.md +0 -0
  568. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/llms.md +0 -0
  569. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/more/analytics.md +0 -0
  570. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/more/edit-formats.md +0 -0
  571. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/more/infinite-output.md +0 -0
  572. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/more-info.md +0 -0
  573. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/repomap.md +0 -0
  574. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/scripting.md +0 -0
  575. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
  576. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  577. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/troubleshooting/imports.md +0 -0
  578. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  579. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/troubleshooting/support.md +0 -0
  580. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  581. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  582. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/troubleshooting.md +0 -0
  583. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/usage/commands.md +0 -0
  584. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/usage/conventions.md +0 -0
  585. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/usage/copypaste.md +0 -0
  586. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/usage/images-urls.md +0 -0
  587. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/usage/lint-test.md +0 -0
  588. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/usage/modes.md +0 -0
  589. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/usage/not-code.md +0 -0
  590. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/usage/notifications.md +0 -0
  591. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/usage/optional.md +0 -0
  592. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/usage/sessions.md +0 -0
  593. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/usage/tips.md +0 -0
  594. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/usage/voice.md +0 -0
  595. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/usage/watch.md +0 -0
  596. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/docs/usage.md +0 -0
  597. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/package-lock.json +0 -0
  598. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/package.json +0 -0
  599. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli/website/share/index.md +0 -0
  600. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli_dev.egg-info/SOURCES.txt +0 -0
  601. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli_dev.egg-info/dependency_links.txt +0 -0
  602. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli_dev.egg-info/entry_points.txt +0 -0
  603. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli_dev.egg-info/requires.txt +0 -0
  604. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli_dev.egg-info/scm_file_list.json +0 -0
  605. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/cecli_dev.egg-info/top_level.txt +0 -0
  606. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/docker/Dockerfile +0 -0
  607. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  608. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/pyproject.toml +0 -0
  609. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/pytest.ini +0 -0
  610. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/requirements/common-constraints.txt +0 -0
  611. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/requirements/requirements-dev.in +0 -0
  612. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/requirements/requirements-dev.txt +0 -0
  613. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/requirements/requirements-help.in +0 -0
  614. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/requirements/requirements-help.txt +0 -0
  615. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/requirements/requirements-playwright.in +0 -0
  616. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/requirements/requirements-playwright.txt +0 -0
  617. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/requirements/requirements.in +0 -0
  618. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/requirements/tree-sitter.in +0 -0
  619. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/requirements.txt +0 -0
  620. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/30k-image.py +0 -0
  621. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/__init__.py +0 -0
  622. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/blame.py +0 -0
  623. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/clean_metadata.py +0 -0
  624. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/compare-message-history.py +0 -0
  625. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/condense_model_settings.py +0 -0
  626. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/cost_analyzer.py +0 -0
  627. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/cost_calculator.py +0 -0
  628. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/dl_icons.py +0 -0
  629. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/docmd_build.sh +0 -0
  630. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/filter-chat-mode.js +0 -0
  631. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/generate_providers.py +0 -0
  632. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/get_contributor_list.js +0 -0
  633. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/get_hashline.py +0 -0
  634. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/history_prompts.py +0 -0
  635. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/homepage.py +0 -0
  636. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/issues.py +0 -0
  637. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/logo_svg.py +0 -0
  638. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/optimize_tokens.sh +0 -0
  639. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/pip-compile.sh +0 -0
  640. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/recording_audio.py +0 -0
  641. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/redact-cast.py +0 -0
  642. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/rename_to_cecli.py +0 -0
  643. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/tmux_record.sh +0 -0
  644. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/tsl_pack_langs.py +0 -0
  645. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/update-blame.sh +0 -0
  646. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/update-docs.sh +0 -0
  647. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/update-history.py +0 -0
  648. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/versionbump.py +0 -0
  649. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/scripts/yank-old-versions.py +0 -0
  650. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/setup.cfg +0 -0
  651. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/shim.pyproject.toml +0 -0
  652. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/__init__.py +0 -0
  653. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/__init__.py +0 -0
  654. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/conftest.py +0 -0
  655. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_agent_config_merge.py +0 -0
  656. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_aws_credentials.py +0 -0
  657. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_background_commands.py +0 -0
  658. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_coder.py +0 -0
  659. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_custom_commands.py +0 -0
  660. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_deprecated.py +0 -0
  661. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_editblock.py +0 -0
  662. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_editor.py +0 -0
  663. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_exceptions.py +0 -0
  664. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_file_system_service.py +0 -0
  665. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_find_or_blocks.py +0 -0
  666. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_hashline.py +0 -0
  667. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_hashline_closure.py +0 -0
  668. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_history.py +0 -0
  669. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_io.py +0 -0
  670. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_linter.py +0 -0
  671. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_main.py +0 -0
  672. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_model_info_manager.py +0 -0
  673. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_model_provider_manager.py +0 -0
  674. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_models.py +0 -0
  675. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_onboarding.py +0 -0
  676. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_plugin_manager.py +0 -0
  677. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_prompts.py +0 -0
  678. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_reasoning.py +0 -0
  679. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_repo.py +0 -0
  680. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_repomap.py +0 -0
  681. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_run_cmd.py +0 -0
  682. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_sanity_check_repo.py +0 -0
  683. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_scripting.py +0 -0
  684. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_select_selector.py +0 -0
  685. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_sendchat.py +0 -0
  686. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_session_args.py +0 -0
  687. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_session_crypto.py +0 -0
  688. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_sessions.py +0 -0
  689. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_sessions_manager.py +0 -0
  690. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_skills.py +0 -0
  691. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_special.py +0 -0
  692. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_spinner.py +0 -0
  693. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_ssl_verification.py +0 -0
  694. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_udiff.py +0 -0
  695. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_urls.py +0 -0
  696. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_voice.py +0 -0
  697. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_watch.py +0 -0
  698. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/basic/test_wholefile.py +0 -0
  699. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/coders/test_coder_switching.py +0 -0
  700. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/coders/test_copypaste_coder.py +0 -0
  701. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/coders/test_rate_limit.py +0 -0
  702. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/coders/test_tool_call_consolidation.py +0 -0
  703. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/commands/test_auto_memory.py +0 -0
  704. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/commands/test_compaction.py +0 -0
  705. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/commands/test_remove_memory.py +0 -0
  706. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/commands/test_search_memory.py +0 -0
  707. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/commands/test_switch_agent.py +0 -0
  708. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/commands/test_voice.py +0 -0
  709. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/commands/test_workspace.py +0 -0
  710. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/conftest.py +0 -0
  711. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/conversations/test_background_command_injection.py +0 -0
  712. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/conversations/test_conversation_integration.py +0 -0
  713. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/conversations/test_conversation_system.py +0 -0
  714. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  715. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/chat-history.md +0 -0
  716. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/arduino/test.ino +0 -0
  717. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/bash/test.sh +0 -0
  718. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/c/test.c +0 -0
  719. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/chatito/test.chatito +0 -0
  720. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/clojure/test.clj +0 -0
  721. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  722. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/cpp/test.cpp +0 -0
  723. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/csharp/test.cs +0 -0
  724. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/d/test.d +0 -0
  725. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/dart/test.dart +0 -0
  726. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/elisp/test.el +0 -0
  727. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/elixir/test.ex +0 -0
  728. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/elm/test.elm +0 -0
  729. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/gleam/test.gleam +0 -0
  730. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/go/test.go +0 -0
  731. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/haskell/test.hs +0 -0
  732. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/hcl/test.tf +0 -0
  733. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/java/test.java +0 -0
  734. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/javascript/test.js +0 -0
  735. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/kotlin/test.kt +0 -0
  736. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/lua/test.lua +0 -0
  737. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/matlab/test.m +0 -0
  738. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/ocaml/test.ml +0 -0
  739. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  740. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/php/test.php +0 -0
  741. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/pony/test.pony +0 -0
  742. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/properties/test.properties +0 -0
  743. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/python/test.py +0 -0
  744. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/ql/test.ql +0 -0
  745. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/r/test.r +0 -0
  746. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/racket/test.rkt +0 -0
  747. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/ruby/test.rb +0 -0
  748. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/rust/test.rs +0 -0
  749. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/scala/test.scala +0 -0
  750. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/solidity/test.sol +0 -0
  751. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/swift/test.swift +0 -0
  752. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/tsx/test.tsx +0 -0
  753. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/typescript/test.ts +0 -0
  754. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/udev/test.rules +0 -0
  755. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/languages/zig/test.zig +0 -0
  756. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/sample-code-base/sample.js +0 -0
  757. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/sample-code-base/sample.py +0 -0
  758. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  759. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/watch.js +0 -0
  760. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/watch.lisp +0 -0
  761. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/watch.py +0 -0
  762. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/fixtures/watch_question.js +0 -0
  763. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/help/test_help.py +0 -0
  764. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/observations/test_observation_service.py +0 -0
  765. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/server/acp/__init__.py +0 -0
  766. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/server/acp/test_bridge.py +0 -0
  767. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/server/acp/test_dispatch.py +0 -0
  768. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/server/acp/test_models.py +0 -0
  769. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/server/acp/test_protocol.py +0 -0
  770. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/test_llms_api_base.py +0 -0
  771. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/test_llms_aws_sigv4.py +0 -0
  772. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/test_llms_cache_control.py +0 -0
  773. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/test_llms_gemini_auth.py +0 -0
  774. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/test_llms_github_copilot_auth.py +0 -0
  775. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/test_llms_hyperscalers.py +0 -0
  776. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/test_llms_messages_stream.py +0 -0
  777. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/test_llms_messages_wire.py +0 -0
  778. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/test_llms_mistral_adapter.py +0 -0
  779. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/test_llms_mistral_provider.py +0 -0
  780. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/test_llms_providers_json.py +0 -0
  781. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/test_llms_reasoning_config.py +0 -0
  782. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/test_llms_reasoning_extract.py +0 -0
  783. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/test_llms_reasoning_summaries.py +0 -0
  784. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/test_llms_vision.py +0 -0
  785. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/test_loop_detect.py +0 -0
  786. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/test_memory_control.py +0 -0
  787. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/test_model_config.py +0 -0
  788. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/test_onboarding.py +0 -0
  789. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/test_orchestration.py +0 -0
  790. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/test_skills_importer.py +0 -0
  791. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/workspaces/conftest.py +0 -0
  792. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/workspaces/test_config.py +0 -0
  793. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/workspaces/test_paths.py +0 -0
  794. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/workspaces/test_subagents.py +0 -0
  795. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/helpers/workspaces/test_workspace_manager.py +0 -0
  796. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/hooks/__init__.py +0 -0
  797. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/hooks/test_base.py +0 -0
  798. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/hooks/test_manager.py +0 -0
  799. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/hooks/test_registry.py +0 -0
  800. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/integration/test_agent_mcp_management.py +0 -0
  801. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/integration/test_config_loading.py +0 -0
  802. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/integration/test_mcp_management.py +0 -0
  803. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/mcp/__init__.py +0 -0
  804. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/mcp/conftest.py +0 -0
  805. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/mcp/mock_server.py +0 -0
  806. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/mcp/test_keepalive_concurrency.py +0 -0
  807. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/mcp/test_keepalive_config.py +0 -0
  808. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/mcp/test_keepalive_integration.py +0 -0
  809. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/mcp/test_keepalive_logging.py +0 -0
  810. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/mcp/test_keepalive_resilience.py +0 -0
  811. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/mcp/test_keepalive_unit.py +0 -0
  812. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/mcp/test_manager.py +0 -0
  813. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/mcp/test_manager_retry.py +0 -0
  814. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/mcp/test_server_name_normalization.py +0 -0
  815. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/mcp/test_server_sdk_compat.py +0 -0
  816. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/scrape/test_playwright_disable.py +0 -0
  817. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/scrape/test_scrape.py +0 -0
  818. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/subagents/__init__.py +0 -0
  819. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/subagents/conftest.py +0 -0
  820. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/subagents/test_commands.py +0 -0
  821. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/subagents/test_config.py +0 -0
  822. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/subagents/test_delegate.py +0 -0
  823. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/subagents/test_finished.py +0 -0
  824. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/subagents/test_io_proxy.py +0 -0
  825. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/subagents/test_service.py +0 -0
  826. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/subagents/test_sub_agent_coder.py +0 -0
  827. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/test_requests.py +0 -0
  828. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/tools/test_command_format_output.py +0 -0
  829. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/tools/test_command_timeout_paging.py +0 -0
  830. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/tools/test_edit_file_format_output.py +0 -0
  831. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/tools/test_extractions.py +0 -0
  832. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/tools/test_get_lines.py +0 -0
  833. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/tools/test_git_branch.py +0 -0
  834. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/tools/test_git_diff.py +0 -0
  835. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/tools/test_grep.py +0 -0
  836. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/tools/test_insert_block.py +0 -0
  837. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/tools/test_read_range_execute.py +0 -0
  838. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/tools/test_registry.py +0 -0
  839. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/tools/test_remove_mcp_tool.py +0 -0
  840. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/tools/test_resource_manager_paging.py +0 -0
  841. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/tools/test_tool_arguments.py +0 -0
  842. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/tools/test_tools_load_mcp_tool.py +0 -0
  843. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/tools/validations.py +0 -0
  844. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/tui/test_completion_bar.py +0 -0
  845. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/unit/conftest.py +0 -0
  846. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/unit/test_deep_merge.py +0 -0
  847. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/unit/test_edge_cases.py +0 -0
  848. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/unit/test_load_mcp.py +0 -0
  849. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/unit/test_performance.py +0 -0
  850. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/unit/test_queues.py +0 -0
  851. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/unit/test_remove_mcp.py +0 -0
  852. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/unit/test_retry_backoff.py +0 -0
  853. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/unit/test_shallow_merge.py +0 -0
  854. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/unit/test_signals.py +0 -0
  855. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/unit/test_unit_load_mcp_tool.py +0 -0
  856. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/unit/test_unit_remove_mcp_tool.py +0 -0
  857. {cecli_dev-1.6.0rc3 → cecli_dev-1.6.0rc5}/tests/unit/test_ws_server.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cecli-dev
3
- Version: 1.6.0rc3
3
+ Version: 1.6.0rc5
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 = '1.6.0rc3'
22
- __version_tuple__ = version_tuple = (1, 6, 0, 'rc3')
21
+ __version__ = version = '1.6.0rc5'
22
+ __version_tuple__ = version_tuple = (1, 6, 0, 'rc5')
23
23
 
24
- __commit_id__ = commit_id = 'g51e92ff65'
24
+ __commit_id__ = commit_id = 'gca072134c'
@@ -939,7 +939,11 @@ class AgentCoder(Coder):
939
939
  lint_coro = self.lint_edited(edited, show_output=False)
940
940
  lint_errors, interrupted = await interruptible(lint_coro, self.interrupt_event)
941
941
  if interrupted:
942
- raise KeyboardInterrupt("Interrupted during linting")
942
+ # Abort the turn with CancelledError, which the linear run loop
943
+ # handles by re-prompting for input. KeyboardInterrupt is a
944
+ # BaseException that would escape the worker's event loop and
945
+ # leave it unable to accept further prompts.
946
+ raise asyncio.CancelledError("Interrupted during linting")
943
947
 
944
948
  has_errors = False
945
949
 
@@ -1078,7 +1082,10 @@ class AgentCoder(Coder):
1078
1082
  sleep_coro = asyncio.sleep(command_timeout / 2)
1079
1083
  _res, interrupted = await interruptible(sleep_coro, self.interrupt_event)
1080
1084
  if interrupted:
1081
- raise KeyboardInterrupt("Interrupted while waiting for background commands")
1085
+ # Use CancelledError (not KeyboardInterrupt) so the interrupt
1086
+ # stays inside the worker loop and re-prompts, matching the
1087
+ # lint interrupt path above.
1088
+ raise asyncio.CancelledError("Interrupted while waiting for background commands")
1082
1089
  return True
1083
1090
 
1084
1091
  # Check for recently finished commands that need reflection
@@ -1999,7 +1999,13 @@ class Coder(metaclass=UsageMeta):
1999
1999
  if self.commands.is_run_command(inp):
2000
2000
  self.commands.cmd_running_event.clear() # Command is running
2001
2001
 
2002
- return await self.commands.run(inp, coder=self, **run_kwargs)
2002
+ try:
2003
+ return await self.commands.run(inp, coder=self, **run_kwargs)
2004
+ finally:
2005
+ # Dispatch can return early (unknown/ambiguous command) or
2006
+ # raise without ever running a command; the gate must still be
2007
+ # reopened or the input/output loops park forever.
2008
+ self.commands.cmd_running_event.set()
2003
2009
 
2004
2010
  await self.check_for_file_mentions(inp)
2005
2011
  inp = await self.check_for_urls(inp)
@@ -1,4 +1,5 @@
1
- from typing import List
1
+ import json
2
+ from typing import Any, Dict, List, Optional
2
3
 
3
4
  from cecli.commands.utils.base_command import BaseCommand
4
5
  from cecli.commands.utils.helpers import format_command_result
@@ -9,6 +10,140 @@ class TokensCommand(BaseCommand):
9
10
  NORM_NAME = "tokens"
10
11
  DESCRIPTION = "Report on the number of tokens used by the current chat context"
11
12
 
13
+ @classmethod
14
+ def _extract_file_name(cls, msg: Dict[str, Any]) -> Optional[str]:
15
+ """Extract file name from a message dictionary."""
16
+ if not isinstance(msg, dict):
17
+ return None
18
+
19
+ # Check explicit image_file metadata first
20
+ fname = msg.get("image_file")
21
+ if fname:
22
+ return fname
23
+
24
+ content = msg.get("content")
25
+ if isinstance(content, str):
26
+ if content.startswith(("Original File Contents For", "Current File Contents For")):
27
+ lines = content.split("\n", 3)
28
+ if len(lines) > 1:
29
+ return lines[1].strip()
30
+ elif content.startswith("Image file: "):
31
+ return content[len("Image file: ") :].strip()
32
+ elif isinstance(content, list):
33
+ for part in content:
34
+ if isinstance(part, dict):
35
+ if part.get("image_file"):
36
+ return part.get("image_file")
37
+ text = part.get("text")
38
+ if isinstance(text, str):
39
+ if text.startswith(
40
+ ("Original File Contents For", "Current File Contents For")
41
+ ):
42
+ lines = text.split("\n", 3)
43
+ if len(lines) > 1:
44
+ return lines[1].strip()
45
+ elif text.startswith("Image file: "):
46
+ return text[len("Image file: ") :].strip()
47
+ elif isinstance(part, str):
48
+ if part.startswith(("Original File Contents For", "Current File Contents For")):
49
+ lines = part.split("\n", 3)
50
+ if len(lines) > 1:
51
+ return lines[1].strip()
52
+ elif part.startswith("Image file: "):
53
+ return part[len("Image file: ") :].strip()
54
+
55
+ return None
56
+
57
+ @staticmethod
58
+ def binary_token_count(data_url: str, bytes_per_pixel: float = 1.0) -> int:
59
+ """Estimate OpenAI vision tokens for a base64 media data URL.
60
+
61
+ Assumes a 4:3 aspect ratio and 1 byte per pixel, which is a reasonable middle
62
+ ground for binary media when the true dimensions are unknown. The tile cost is
63
+ inflated by 1.33 and floored to keep the estimate on the pessimistic side.
64
+ """
65
+ import math
66
+
67
+ b64_data = data_url.split(",", 1)[1] if "," in data_url else data_url
68
+ padding = b64_data.count("=")
69
+ rough_bytes = max(0, (len(b64_data) * 3 // 4) - padding)
70
+ total_pixels = rough_bytes / bytes_per_pixel
71
+ height = math.sqrt((3 / 4) * total_pixels)
72
+ width = (4 / 3) * height
73
+
74
+ if max(width, height) > 2048:
75
+ scale = 2048 / max(width, height)
76
+ width *= scale
77
+ height *= scale
78
+
79
+ if min(width, height) > 768:
80
+ scale = 768 / min(width, height)
81
+ width *= scale
82
+ height *= scale
83
+
84
+ tiles = math.ceil(width / 512) * math.ceil(height / 512)
85
+
86
+ return math.floor((85 + (170 * tiles)) * 1.33)
87
+
88
+ @classmethod
89
+ def _extract_key_paths(cls, obj: Any, prefix: str = "") -> List[str]:
90
+ """Return the dot-separated paths of every leaf in a nested structure.
91
+
92
+ List indices are included as numeric segments, e.g. "0.image_url.url".
93
+ """
94
+ if isinstance(obj, dict):
95
+ items = obj.items()
96
+ elif isinstance(obj, list):
97
+ items = enumerate(obj)
98
+ else:
99
+ return [prefix] if prefix else []
100
+
101
+ paths = []
102
+ for key, value in items:
103
+ path = f"{prefix}.{key}" if prefix else str(key)
104
+ paths.extend(cls._extract_key_paths(value, path))
105
+
106
+ return paths
107
+
108
+ @classmethod
109
+ def _get_path_value(cls, obj: Any, path: str) -> Any:
110
+ """Resolve a dot-separated path produced by _extract_key_paths."""
111
+ for part in path.split("."):
112
+ obj = obj[int(part)] if isinstance(obj, list) else obj[part]
113
+
114
+ return obj
115
+
116
+ @classmethod
117
+ def _count_value_tokens(cls, coder, key: str, value: Any) -> int:
118
+ """Count tokens for an extracted value, estimating data URLs as binary media."""
119
+ if key == "url" and isinstance(value, str) and value.startswith("data:"):
120
+ return cls.binary_token_count(value)
121
+
122
+ return coder.main_model.token_count(value)
123
+
124
+ @classmethod
125
+ def _count_message_tokens(cls, coder, msg: Dict[str, Any]) -> int:
126
+ """Count tokens for a message, estimating binary data URLs instead of raw base64."""
127
+ content = msg.get("content") if isinstance(msg, dict) else None
128
+
129
+ if not isinstance(content, (list, dict)):
130
+ return coder.main_model.token_count([msg])
131
+
132
+ total = 0
133
+
134
+ for path in cls._extract_key_paths(content):
135
+ key = path.rsplit(".", 1)[-1]
136
+
137
+ if not key.isdigit() and key not in ("text", "content", "url"):
138
+ continue
139
+
140
+ value = cls._get_path_value(content, path)
141
+
142
+ if isinstance(value, str):
143
+ total += cls._count_value_tokens(coder, key, value)
144
+
145
+ return total
146
+
12
147
  @classmethod
13
148
  async def execute(cls, io, coder, args, **kwargs):
14
149
  res = []
@@ -55,6 +190,13 @@ class TokensCommand(BaseCommand):
55
190
 
56
191
  res.append((system_tokens, "system messages", ""))
57
192
 
193
+ # tool definitions
194
+ tool_list = coder.get_tool_list()
195
+
196
+ if tool_list:
197
+ tokens_tools = coder.main_model.token_count(json.dumps(tool_list))
198
+ res.append((tokens_tools, "tool schemas", ""))
199
+
58
200
  # chat history
59
201
  msgs_done = ConversationService.get_manager(coder).get_messages_dict(tag=MessageTag.DONE)
60
202
  msgs_cur = ConversationService.get_manager(coder).get_messages_dict(tag=MessageTag.CUR)
@@ -123,27 +265,10 @@ class TokensCommand(BaseCommand):
123
265
  # Group messages by file (each file has user and assistant messages)
124
266
  file_tokens = {}
125
267
  for msg in readonly_msgs:
126
- # Extract file name from message content
127
- content = msg.get("content", "")
128
- if content.startswith("Original File Contents For"):
129
- # Extract file path from "File Contents {path}:"
130
- lines = content.split("\n", 3)
131
- if lines:
132
- file_line = lines[1]
133
- fname = file_line.strip()
134
- # Calculate tokens for this message
135
- tokens = coder.main_model.token_count([msg])
136
- if fname not in file_tokens:
137
- file_tokens[fname] = 0
138
- file_tokens[fname] += tokens
139
- elif "image_file" in msg:
140
- # Handle image files
141
- fname = msg.get("image_file")
142
- if fname:
143
- tokens = coder.main_model.token_count([msg])
144
- if fname not in file_tokens:
145
- file_tokens[fname] = 0
146
- file_tokens[fname] += tokens
268
+ fname = cls._extract_file_name(msg)
269
+ if fname:
270
+ tokens = cls._count_message_tokens(coder, msg)
271
+ file_tokens[fname] = file_tokens.get(fname, 0) + tokens
147
272
 
148
273
  # Add to results
149
274
  for fname, tokens in file_tokens.items():
@@ -158,27 +283,10 @@ class TokensCommand(BaseCommand):
158
283
  msgs = ConversationService.get_manager(coder).get_messages_dict(tag=tag)
159
284
  if msgs:
160
285
  for msg in msgs:
161
- # Extract file name from message content
162
- content = msg.get("content", "")
163
- if content.startswith("Original File Contents For"):
164
- # Extract file path from "File Contents {path}:"
165
- lines = content.split("\n", 3)
166
- if lines:
167
- file_line = lines[1]
168
- fname = file_line.strip()
169
- # Calculate tokens for this message
170
- tokens = coder.main_model.token_count([msg])
171
- if fname not in editable_file_tokens:
172
- editable_file_tokens[fname] = 0
173
- editable_file_tokens[fname] += tokens
174
- elif "image_file" in msg:
175
- # Handle image files
176
- fname = msg.get("image_file")
177
- if fname:
178
- tokens = coder.main_model.token_count([msg])
179
- if fname not in editable_file_tokens:
180
- editable_file_tokens[fname] = 0
181
- editable_file_tokens[fname] += tokens
286
+ fname = cls._extract_file_name(msg)
287
+ if fname:
288
+ tokens = cls._count_message_tokens(coder, msg)
289
+ editable_file_tokens[fname] = editable_file_tokens.get(fname, 0) + tokens
182
290
 
183
291
  # Add editable files to results
184
292
  for fname, tokens in editable_file_tokens.items():
@@ -9,16 +9,10 @@ logger = logging.getLogger(__name__)
9
9
  # Strong reference pool to protect fire-and-forget tasks from garbage collection
10
10
  background_tasks: set = set()
11
11
 
12
-
13
- def _handle_result(task: asyncio.Task) -> None:
14
- """Callback to clean up references and capture exceptions safely."""
15
- background_tasks.discard(task)
16
- try:
17
- task.result()
18
- except asyncio.CancelledError:
19
- pass
20
- except Exception as e:
21
- logger.error(f"Background task failed: {e}", exc_info=True)
12
+ # Grace period granted to a cancelled task to unwind. Transports that defer or
13
+ # swallow cancellation (AnyIO cancel scopes, shielded streams) would otherwise
14
+ # block the interrupting coroutine forever.
15
+ INTERRUPT_UNWIND_GRACE_SECONDS = 5.0
22
16
 
23
17
 
24
18
  def fire_and_forget(coro) -> asyncio.Task:
@@ -35,6 +29,7 @@ async def interruptible_async_generator(async_generator, interrupt_event):
35
29
  """
36
30
  gen = async_generator.__aiter__()
37
31
  interrupt_task = asyncio.create_task(interrupt_event.wait())
32
+ next_task = None
38
33
 
39
34
  try:
40
35
  while True:
@@ -44,11 +39,7 @@ async def interruptible_async_generator(async_generator, interrupt_event):
44
39
  )
45
40
 
46
41
  if interrupt_task in done:
47
- next_task.cancel()
48
- try:
49
- await next_task
50
- except asyncio.CancelledError:
51
- pass
42
+ await cancel_and_abandon([next_task])
52
43
  break
53
44
 
54
45
  if next_task in done:
@@ -57,11 +48,9 @@ async def interruptible_async_generator(async_generator, interrupt_event):
57
48
  except StopAsyncIteration:
58
49
  break
59
50
  finally:
60
- interrupt_task.cancel()
61
- try:
62
- await interrupt_task
63
- except asyncio.CancelledError:
64
- pass
51
+ # Cancel whichever task is still pending if the generator is closed early
52
+ # (e.g. GeneratorExit at the wait or yield), not just the interrupt waiter.
53
+ await cancel_and_abandon([task for task in (next_task, interrupt_task) if task is not None])
65
54
 
66
55
 
67
56
  def is_active(task):
@@ -83,6 +72,10 @@ async def interruptible(coroutine, interrupt_event):
83
72
  A tuple of (result, interrupted).
84
73
  - If not interrupted: (coroutine_result, False)
85
74
  - If interrupted: (None, True)
75
+
76
+ A task that ignores cancellation is abandoned once the grace period
77
+ elapses (see cancel_and_abandon) so a wedged transport cannot block the
78
+ caller forever.
86
79
  """
87
80
  if interrupt_event is None:
88
81
  interrupt_event = ThreadSafeEvent()
@@ -90,25 +83,26 @@ async def interruptible(coroutine, interrupt_event):
90
83
  main_task = asyncio.create_task(coroutine)
91
84
  interrupt_task = asyncio.create_task(interrupt_event.wait())
92
85
 
93
- done, pending = await asyncio.wait(
94
- {main_task, interrupt_task},
95
- return_when=asyncio.FIRST_COMPLETED,
96
- )
86
+ try:
87
+ done, pending = await asyncio.wait(
88
+ {main_task, interrupt_task},
89
+ return_when=asyncio.FIRST_COMPLETED,
90
+ )
97
91
 
98
- for task in pending:
99
- task.cancel()
100
- try:
101
- await task
102
- except asyncio.CancelledError:
103
- pass # Expected
92
+ await cancel_and_abandon(pending)
104
93
 
105
- if interrupt_task in done:
106
- return None, True
94
+ if interrupt_task in done:
95
+ return None, True
107
96
 
108
- try:
109
- return main_task.result(), False
110
- except asyncio.CancelledError:
111
- return None, True
97
+ try:
98
+ return main_task.result(), False
99
+ except asyncio.CancelledError:
100
+ return None, True
101
+ finally:
102
+ # When the caller is cancelled while waiting, neither branch above
103
+ # runs, so cancel any remaining tasks here instead of orphaning the
104
+ # inner coroutine (which would keep running detached).
105
+ await cancel_and_abandon([main_task, interrupt_task])
112
106
 
113
107
 
114
108
  def task_is_cancelling() -> bool:
@@ -133,3 +127,58 @@ def task_is_cancelling() -> bool:
133
127
 
134
128
  # Python 3.10 fallback: best-effort only (see docstring).
135
129
  return bool(getattr(task, "_must_cancel", False))
130
+
131
+
132
+ def drain_task_results(tasks):
133
+ """Consume exceptions from finished tasks so they aren't reported as unretrieved."""
134
+ for task in tasks:
135
+ if task.cancelled():
136
+ continue
137
+
138
+ try:
139
+ exc = task.exception()
140
+ except (asyncio.CancelledError, asyncio.InvalidStateError):
141
+ continue
142
+
143
+ if exc is not None:
144
+ logger.warning(f"Task raised while unwinding after interrupt: {exc}")
145
+
146
+
147
+ async def cancel_and_abandon(tasks, grace=INTERRUPT_UNWIND_GRACE_SECONDS):
148
+ """Cancel tasks and wait up to ``grace`` seconds for them to unwind.
149
+
150
+ Cancellation is cooperative, and some transports (AnyIO cancel scopes,
151
+ shielded streams) defer or swallow it. Waiting on them unconditionally
152
+ would block the caller forever, so anything still running after the grace
153
+ period is abandoned: it keeps a strong reference so it can finish on its
154
+ own without tripping the "Task was destroyed but it is pending" warning.
155
+ """
156
+ pending_tasks = [task for task in tasks if not task.done()]
157
+
158
+ if not pending_tasks:
159
+ return
160
+
161
+ for task in pending_tasks:
162
+ task.cancel()
163
+
164
+ done, still_running = await asyncio.wait(set(pending_tasks), timeout=grace)
165
+ drain_task_results(done)
166
+
167
+ for task in still_running:
168
+ logger.warning(
169
+ f"Task ignored cancellation after {grace}s; abandoning it. It may still be"
170
+ " running and could touch shared state later."
171
+ )
172
+ background_tasks.add(task)
173
+ task.add_done_callback(_handle_result)
174
+
175
+
176
+ def _handle_result(task: asyncio.Task) -> None:
177
+ """Callback to clean up references and capture exceptions safely."""
178
+ background_tasks.discard(task)
179
+ try:
180
+ task.result()
181
+ except asyncio.CancelledError:
182
+ pass
183
+ except Exception as e:
184
+ logger.error(f"Background task failed: {e}", exc_info=True)
@@ -0,0 +1,137 @@
1
+ import asyncio
2
+ import logging
3
+ import os
4
+ import sys
5
+ import threading
6
+ import time
7
+ import traceback
8
+
9
+ from cecli.decoding import safe_open
10
+
11
+ # Set up logging to catch asyncio framework logs
12
+ logging.basicConfig(level=logging.INFO)
13
+ logging.getLogger("asyncio").setLevel(logging.DEBUG)
14
+
15
+
16
+ # Registered event loops whose asyncio tasks are included in each dump.
17
+ # Task state is only read from the owning loop (see _dump_async_state), since
18
+ # thread stacks alone cannot show coroutine/task state.
19
+ _async_loops: dict = {}
20
+ _async_state_providers: dict = {}
21
+
22
+
23
+ def dump_stacks_to_file(filename=".cecli/logs/threads.log", interval=5, max_prints=10):
24
+ """Periodically writes stack traces to a file, resetting it after max_prints."""
25
+ print_count = 0
26
+
27
+ log_dir = os.path.dirname(filename)
28
+ if log_dir:
29
+ os.makedirs(log_dir, exist_ok=True)
30
+
31
+ while True:
32
+ time.sleep(interval)
33
+ try:
34
+ # Determine mode: "w" to overwrite/clear on the 11th print, "a" to append
35
+ mode = "w" if print_count >= max_prints else "a"
36
+
37
+ with safe_open(filename, mode) as f:
38
+ if mode == "w":
39
+ f.write(f"--- Log reset automatically after {max_prints} prints ---\n")
40
+ print_count = 0 # Reset the counter
41
+
42
+ timestamp = time.strftime("%Y-%m-%d %H:%M:%S")
43
+ f.write(
44
+ f"\n=================== STACK TRACE DUMP ({timestamp}) ===================\n"
45
+ )
46
+
47
+ for thread_id, frame in sys._current_frames().items():
48
+ thread_obj = threading._active.get(thread_id)
49
+ thread_name = thread_obj.name if thread_obj else "Unknown Thread"
50
+
51
+ f.write(f"\nThread Name: {thread_name} (ID: {thread_id})\n")
52
+ f.write("-" * 40 + "\n")
53
+ traceback.print_stack(frame, file=f)
54
+
55
+ f.write("=" * 70 + "\n")
56
+
57
+ for name in list(_async_loops.keys()):
58
+ _schedule_async_dump(name, filename)
59
+
60
+ print_count += 1 # Increment after a successful write
61
+
62
+ except Exception as e:
63
+ print(f"Error writing stack dump to file: {e}", file=sys.stderr)
64
+
65
+
66
+ def register_async_loop(name, loop) -> None:
67
+ """Register an event loop to include asyncio task dumps for."""
68
+ _async_loops[name] = loop
69
+
70
+
71
+ def register_async_state_provider(name, provider) -> None:
72
+ """Register a callable returning extra state text for a loop's dump."""
73
+ _async_state_providers[name] = provider
74
+
75
+
76
+ def _format_async_tasks(loop, name) -> str:
77
+ """Return a readable dump of every task on ``loop`` (loop thread only)."""
78
+ lines = [f"\n------------------- ASYNCIO TASKS ({name}) -------------------\n"]
79
+
80
+ try:
81
+ tasks = asyncio.all_tasks(loop)
82
+ except Exception as e:
83
+ return f"<unable to read asyncio tasks: {e}>\n"
84
+
85
+ for task in tasks:
86
+ lines.append(f"\n[{task.get_name()}] done={task.done()} cancelled={task.cancelled()}\n")
87
+ lines.append(f" {task.get_coro()!r}\n")
88
+
89
+ for frame in task.get_stack(limit=10):
90
+ lines.append("".join(traceback.format_stack(frame, limit=1)))
91
+
92
+ return "".join(lines)
93
+
94
+
95
+ def _dump_async_state(name, filename) -> None:
96
+ """Append asyncio task/state info for one loop. Runs on the loop thread."""
97
+ loop = _async_loops.get(name)
98
+ if loop is None or loop.is_closed():
99
+ return
100
+
101
+ parts = []
102
+ provider = _async_state_providers.get(name)
103
+
104
+ if provider is not None:
105
+ try:
106
+ parts.append(provider())
107
+ except Exception as e:
108
+ parts.append(f"<state provider error: {e}>\n")
109
+
110
+ parts.append(_format_async_tasks(loop, name))
111
+
112
+ try:
113
+ with safe_open(filename, "a") as f:
114
+ f.write("".join(parts))
115
+ except Exception:
116
+ pass
117
+
118
+
119
+ def _schedule_async_dump(name, filename) -> None:
120
+ """Schedule an async-state dump onto a registered loop, if it is running."""
121
+ loop = _async_loops.get(name)
122
+ if loop is None or loop.is_closed() or not loop.is_running():
123
+ return
124
+
125
+ try:
126
+ loop.call_soon_threadsafe(_dump_async_state, name, filename)
127
+ except RuntimeError:
128
+ pass
129
+
130
+
131
+ # Start the monitor in a background daemon thread
132
+ monitor_thread = threading.Thread(
133
+ target=dump_stacks_to_file,
134
+ args=(".cecli/logs/threads.log", 5, 10), # Clears every 10 prints
135
+ daemon=True,
136
+ )
137
+ monitor_thread.start()
@@ -8,6 +8,9 @@ from cecli.tools.utils.registry import ToolRegistry
8
8
  # backstop, covering time the transport spends outside the SDK's read timeout.
9
9
  CONNECT_BACKSTOP_GRACE_SECONDS = 5
10
10
 
11
+ # Servers whose failures are expected in normal operation and should not warn.
12
+ QUIET_SERVER_NAMES = {"unnamed-server", "local"}
13
+
11
14
 
12
15
  class McpServerManager:
13
16
  """
@@ -387,14 +390,39 @@ class McpServerManager:
387
390
 
388
391
  return (server, success, True)
389
392
 
390
- results = await asyncio.gather(*(_connect(server) for server in self._servers))
393
+ # return_exceptions=True keeps one bad server from aborting the batch and
394
+ # discarding every other server's result. A CancelledError that a
395
+ # transport raises for an ordinary connection failure lands in the
396
+ # results as a value; a genuine cancellation of this task still
397
+ # propagates through the gather itself, so it is not swallowed here.
398
+ outcomes = await asyncio.gather(
399
+ *(_connect(server) for server in self._servers), return_exceptions=True
400
+ )
401
+
402
+ results = []
403
+ for server, outcome in zip(self._servers, outcomes):
404
+ if isinstance(outcome, BaseException):
405
+ if isinstance(outcome, asyncio.CancelledError) and task_is_cancelling():
406
+ # A genuine cancellation of this task must not be downgraded
407
+ # to a failed server; let it propagate to the caller.
408
+ raise outcome
409
+
410
+ # CancelledError discards its arguments, so fall back to the
411
+ # type name rather than reporting an empty cause.
412
+ cause = str(outcome) or type(outcome).__name__
413
+
414
+ if server.name.lower() not in QUIET_SERVER_NAMES:
415
+ self._log_warning(f"MCP server {server.name} failed to initialize: {cause}")
416
+
417
+ # Reported here with its cause already, so flag it as
418
+ # not-attempted to keep the generic warning below from
419
+ # repeating the same failure.
420
+ results.append((server, False, False))
421
+ else:
422
+ results.append(outcome)
391
423
 
392
424
  for server, did_connect, attempted in results:
393
- if (
394
- attempted
395
- and not did_connect
396
- and server.name.lower() not in ["unnamed-server", "local"]
397
- ):
425
+ if attempted and not did_connect and server.name.lower() not in QUIET_SERVER_NAMES:
398
426
  self._log_warning(
399
427
  f"MCP tool initialization failed after multiple retries: {server.name}"
400
428
  )
@@ -1487,7 +1487,7 @@ class Model(ModelSettings):
1487
1487
  completion_coro = litellm.acompletion(**kwargs)
1488
1488
  res, interrupted = await coroutines.interruptible(completion_coro, interrupt_event)
1489
1489
  if interrupted:
1490
- raise KeyboardInterrupt("Interrupted during acompletion")
1490
+ raise asyncio.CancelledError("Interrupted during acompletion")
1491
1491
 
1492
1492
  return hash_object, res
1493
1493
  except litellm.ContextWindowExceededError as err:
@@ -1532,7 +1532,7 @@ class Model(ModelSettings):
1532
1532
  asyncio.sleep(retry_delay), interrupt_event
1533
1533
  )
1534
1534
  if interrupted:
1535
- raise KeyboardInterrupt("Interrupted during retry sleep")
1535
+ raise asyncio.CancelledError("Interrupted during retry sleep")
1536
1536
  else:
1537
1537
  await asyncio.sleep(retry_delay)
1538
1538
  continue