cecli-dev 1.0.3__tar.gz → 1.0.4__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 (795) hide show
  1. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/.github/workflows/pages.yml +15 -20
  2. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/.gitignore +4 -1
  3. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/CONTRIBUTING.md +20 -14
  4. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/PKG-INFO +1 -1
  5. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/_version.py +3 -3
  6. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/agent_coder.py +9 -5
  7. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/base_coder.py +43 -5
  8. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/__init__.py +9 -0
  9. cecli_dev-1.0.4/cecli/commands/auto_memory.py +117 -0
  10. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/code.py +1 -1
  11. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/copy.py +3 -1
  12. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/copy_context.py +1 -0
  13. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/help.py +7 -2
  14. cecli_dev-1.0.4/cecli/commands/remove_memory.py +66 -0
  15. cecli_dev-1.0.4/cecli/commands/search_memory.py +73 -0
  16. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/help.py +59 -21
  17. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/agents/defaults/memorizer.md +3 -0
  18. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/agents/service.py +10 -0
  19. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/background_commands.py +66 -56
  20. cecli_dev-1.0.4/cecli/helpers/memory_control.py +99 -0
  21. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/observations/service.py +6 -1
  22. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/orchestration/environment.py +27 -107
  23. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/queues.py +48 -1
  24. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/hooks/helpers.py +4 -0
  25. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/mcp/manager.py +13 -1
  26. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/agent.yml +5 -6
  27. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/subagent.yml +5 -6
  28. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/sessions.py +3 -0
  29. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/_yield.py +6 -1
  30. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/command.py +65 -31
  31. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/edit_file.py +32 -34
  32. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/orchestrate.py +4 -7
  33. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/read_file.py +29 -30
  34. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tui/__init__.py +22 -0
  35. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tui/app.py +12 -11
  36. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tui/io.py +63 -60
  37. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/utils.py +1 -1
  38. cecli_dev-1.0.4/cecli/website/_includes/install.md +4 -0
  39. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/_includes/model-warnings.md +2 -2
  40. cecli_dev-1.0.4/cecli/website/_includes/works-best.md +1 -0
  41. cecli_dev-1.0.4/cecli/website/docmd.config.json +329 -0
  42. cecli_dev-1.0.4/cecli/website/docs/cecli-temp-logo-favicon.svg +37 -0
  43. cecli_dev-1.0.4/cecli/website/docs/config/adv-model-settings.md +123 -0
  44. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/config/agent-mode.md +3 -4
  45. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/config/api-keys.md +7 -22
  46. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/config/api.md +144 -90
  47. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/config/conf.md +5 -18
  48. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/config/dotenv.md +6 -20
  49. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/config/editor.md +3 -5
  50. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/config/hooks.md +5 -12
  51. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/config/mcp.md +5 -10
  52. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/config/model-aliases.md +11 -47
  53. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/config/model-configuration.md +8 -6
  54. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/config/model-providers.md +1 -1
  55. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/config/options.md +127 -375
  56. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/config/persistent-memory.md +4 -4
  57. cecli_dev-1.0.4/cecli/website/docs/config/reasoning.md +62 -0
  58. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/config/retries.md +6 -4
  59. cecli_dev-1.0.4/cecli/website/docs/config/skills.md +130 -0
  60. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/config/subagents.md +6 -6
  61. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/config/tui.md +13 -12
  62. cecli_dev-1.0.4/cecli/website/docs/config.md +58 -0
  63. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/git.md +8 -20
  64. cecli_dev-1.0.4/cecli/website/docs/index.md +55 -0
  65. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/install/docker.md +3 -11
  66. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/install.md +7 -19
  67. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/languages.md +6 -43
  68. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/legal/contributor-agreement.md +3 -15
  69. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/legal/privacy.md +3 -19
  70. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/llms/anthropic.md +8 -20
  71. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/llms/azure.md +6 -5
  72. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/llms/bedrock.md +10 -27
  73. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/llms/cohere.md +4 -5
  74. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/llms/deepseek.md +4 -5
  75. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/llms/gemini.md +3 -2
  76. cecli_dev-1.0.4/cecli/website/docs/llms/github.md +22 -0
  77. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/llms/groq.md +4 -7
  78. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/llms/lm-studio.md +5 -5
  79. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/llms/ollama.md +9 -21
  80. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/llms/openai-compat.md +5 -5
  81. cecli_dev-1.0.4/cecli/website/docs/llms/openai.md +48 -0
  82. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/llms/openrouter.md +9 -19
  83. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/llms/other.md +5 -30
  84. cecli_dev-1.0.4/cecli/website/docs/llms/vertex.md +44 -0
  85. cecli_dev-1.0.4/cecli/website/docs/llms/warnings.md +71 -0
  86. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/llms/xai.md +4 -8
  87. cecli_dev-1.0.4/cecli/website/docs/llms.md +30 -0
  88. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/more/analytics.md +15 -41
  89. cecli_dev-1.0.4/cecli/website/docs/more/edit-formats.md +86 -0
  90. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/more/infinite-output.md +5 -42
  91. cecli_dev-1.0.4/cecli/website/docs/more-info.md +18 -0
  92. cecli_dev-1.0.4/cecli/website/docs/repomap.md +69 -0
  93. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/scripting.md +5 -13
  94. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/troubleshooting/cecli-not-found.md +2 -6
  95. cecli_dev-1.0.4/cecli/website/docs/troubleshooting/edit-errors.md +77 -0
  96. cecli_dev-1.0.4/cecli/website/docs/troubleshooting/imports.md +38 -0
  97. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/troubleshooting/models-and-keys.md +7 -17
  98. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/troubleshooting/support.md +34 -24
  99. cecli_dev-1.0.4/cecli/website/docs/troubleshooting/token-limits.md +94 -0
  100. cecli_dev-1.0.4/cecli/website/docs/troubleshooting/warnings.md +101 -0
  101. cecli_dev-1.0.4/cecli/website/docs/troubleshooting.md +14 -0
  102. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/usage/commands.md +26 -29
  103. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/usage/conventions.md +7 -14
  104. cecli_dev-1.0.4/cecli/website/docs/usage/copypaste.md +83 -0
  105. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/usage/images-urls.md +3 -7
  106. cecli_dev-1.0.4/cecli/website/docs/usage/lint-test.md +86 -0
  107. cecli_dev-1.0.4/cecli/website/docs/usage/modes.md +188 -0
  108. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/usage/not-code.md +1 -23
  109. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/usage/notifications.md +4 -7
  110. cecli_dev-1.0.4/cecli/website/docs/usage/optional.md +68 -0
  111. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/usage/sessions.md +2 -2
  112. cecli_dev-1.0.4/cecli/website/docs/usage/tips.md +80 -0
  113. cecli_dev-1.0.4/cecli/website/docs/usage/voice.md +58 -0
  114. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/usage/watch.md +23 -90
  115. cecli_dev-1.0.4/cecli/website/docs/usage.md +70 -0
  116. cecli_dev-1.0.4/cecli/website/package-lock.json +1650 -0
  117. cecli_dev-1.0.4/cecli/website/package.json +16 -0
  118. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli_dev.egg-info/PKG-INFO +1 -1
  119. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli_dev.egg-info/SOURCES.txt +13 -4
  120. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli_dev.egg-info/scm_file_list.json +14 -5
  121. cecli_dev-1.0.4/cecli_dev.egg-info/scm_version.json +8 -0
  122. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/pytest.ini +5 -4
  123. cecli_dev-1.0.4/scripts/docmd_build.sh +55 -0
  124. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_sendchat.py +30 -0
  125. cecli_dev-1.0.4/tests/commands/test_auto_memory.py +162 -0
  126. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/commands/test_compaction.py +10 -6
  127. cecli_dev-1.0.4/tests/commands/test_remove_memory.py +108 -0
  128. cecli_dev-1.0.4/tests/commands/test_search_memory.py +88 -0
  129. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/commands/test_switch_agent.py +8 -2
  130. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/helpers/observations/test_observation_service.py +47 -0
  131. cecli_dev-1.0.4/tests/helpers/test_memory_control.py +235 -0
  132. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/helpers/test_orchestration.py +10 -10
  133. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/integration/test_mcp_management.py +6 -6
  134. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/mcp/test_manager.py +26 -0
  135. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/subagents/test_finished.py +3 -0
  136. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/tui/test_app.py +7 -3
  137. cecli_dev-1.0.3/cecli/website/Gemfile +0 -8
  138. cecli_dev-1.0.3/cecli/website/_includes/install.md +0 -4
  139. cecli_dev-1.0.3/cecli/website/_includes/works-best.md +0 -1
  140. cecli_dev-1.0.3/cecli/website/docs/config/adv-model-settings.md +0 -2498
  141. cecli_dev-1.0.3/cecli/website/docs/config/reasoning.md +0 -210
  142. cecli_dev-1.0.3/cecli/website/docs/config/skills.md +0 -285
  143. cecli_dev-1.0.3/cecli/website/docs/config.md +0 -78
  144. cecli_dev-1.0.3/cecli/website/docs/index.md +0 -47
  145. cecli_dev-1.0.3/cecli/website/docs/llms/github.md +0 -111
  146. cecli_dev-1.0.3/cecli/website/docs/llms/openai.md +0 -58
  147. cecli_dev-1.0.3/cecli/website/docs/llms/vertex.md +0 -50
  148. cecli_dev-1.0.3/cecli/website/docs/llms/warnings.md +0 -10
  149. cecli_dev-1.0.3/cecli/website/docs/llms.md +0 -43
  150. cecli_dev-1.0.3/cecli/website/docs/more/edit-formats.md +0 -116
  151. cecli_dev-1.0.3/cecli/website/docs/more-info.md +0 -8
  152. cecli_dev-1.0.3/cecli/website/docs/repomap.md +0 -112
  153. cecli_dev-1.0.3/cecli/website/docs/troubleshooting/edit-errors.md +0 -76
  154. cecli_dev-1.0.3/cecli/website/docs/troubleshooting/imports.md +0 -58
  155. cecli_dev-1.0.3/cecli/website/docs/troubleshooting/token-limits.md +0 -96
  156. cecli_dev-1.0.3/cecli/website/docs/troubleshooting/warnings.md +0 -12
  157. cecli_dev-1.0.3/cecli/website/docs/troubleshooting.md +0 -11
  158. cecli_dev-1.0.3/cecli/website/docs/usage/copypaste.md +0 -136
  159. cecli_dev-1.0.3/cecli/website/docs/usage/lint-test.md +0 -118
  160. cecli_dev-1.0.3/cecli/website/docs/usage/modes.md +0 -211
  161. cecli_dev-1.0.3/cecli/website/docs/usage/optional.md +0 -100
  162. cecli_dev-1.0.3/cecli/website/docs/usage/tips.md +0 -79
  163. cecli_dev-1.0.3/cecli/website/docs/usage/voice.md +0 -121
  164. cecli_dev-1.0.3/cecli/website/docs/usage.md +0 -102
  165. cecli_dev-1.0.3/cecli_dev.egg-info/scm_version.json +0 -8
  166. cecli_dev-1.0.3/scripts/Dockerfile.jekyll +0 -20
  167. cecli_dev-1.0.3/scripts/jekyll_build.sh +0 -4
  168. cecli_dev-1.0.3/scripts/jekyll_run.sh +0 -16
  169. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/.dockerignore +0 -0
  170. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/.flake8 +0 -0
  171. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/.gitattributes +0 -0
  172. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  173. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/.github/workflows/check_pypi_version.yml +0 -0
  174. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/.github/workflows/docker-build-test.yml +0 -0
  175. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/.github/workflows/docker-release.yml +0 -0
  176. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/.github/workflows/issues.yml +0 -0
  177. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/.github/workflows/pre-commit.yml +0 -0
  178. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/.github/workflows/release.yml +0 -0
  179. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/.github/workflows/ubuntu-tests.yml +0 -0
  180. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/.github/workflows/windows-tests.yml +0 -0
  181. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/.github/workflows/windows_check_pypi_version.yml +0 -0
  182. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/.pre-commit-config.yaml +0 -0
  183. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/CHANGELOG.md +0 -0
  184. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/CNAME +0 -0
  185. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/HISTORY.md +0 -0
  186. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/LICENSE.txt +0 -0
  187. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/MANIFEST.in +0 -0
  188. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/README.md +0 -0
  189. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/Dockerfile +0 -0
  190. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/README.md +0 -0
  191. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/__init__.py +0 -0
  192. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/benchmark.py +0 -0
  193. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/benchmark_classic.py +0 -0
  194. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/clone-exercism.sh +0 -0
  195. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/cpp-test.sh +0 -0
  196. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/docker.sh +0 -0
  197. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/docker_build.sh +0 -0
  198. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/install-docker-ubuntu.sh +0 -0
  199. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/npm-test.sh +0 -0
  200. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/over_time.py +0 -0
  201. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/plot.sh +0 -0
  202. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/plots.py +0 -0
  203. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/problem_stats.py +0 -0
  204. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/prompts.py +0 -0
  205. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/refactor_tools.py +0 -0
  206. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/rsync.sh +0 -0
  207. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/rungrid.py +0 -0
  208. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/swe-bench-lite.txt +0 -0
  209. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/swe-bench.txt +0 -0
  210. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/swe_bench.py +0 -0
  211. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/test_benchmark.py +0 -0
  212. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/variations.1.sh +0 -0
  213. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/variations.2.sh +0 -0
  214. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/variations.3.sh +0 -0
  215. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/benchmark/variations.4.sh +0 -0
  216. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/__init__.py +0 -0
  217. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/__main__.py +0 -0
  218. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/args.py +0 -0
  219. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/args_formatter.py +0 -0
  220. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/change_tracker.py +0 -0
  221. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/__init__.py +0 -0
  222. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/architect_coder.py +0 -0
  223. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/ask_coder.py +0 -0
  224. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/chat_chunks.py +0 -0
  225. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/context_coder.py +0 -0
  226. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/copypaste_coder.py +0 -0
  227. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/editblock_coder.py +0 -0
  228. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/editblock_fenced_coder.py +0 -0
  229. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/editblock_func_coder.py +0 -0
  230. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  231. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/editor_editblock_coder.py +0 -0
  232. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/editor_whole_coder.py +0 -0
  233. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/hashline_coder.py +0 -0
  234. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/help_coder.py +0 -0
  235. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/patch_coder.py +0 -0
  236. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/search_replace.py +0 -0
  237. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/shell.py +0 -0
  238. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/single_wholefile_func_coder.py +0 -0
  239. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/sub_agent_coder.py +0 -0
  240. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/udiff_coder.py +0 -0
  241. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/udiff_simple.py +0 -0
  242. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/wholefile_coder.py +0 -0
  243. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/coders/wholefile_func_coder.py +0 -0
  244. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/add.py +0 -0
  245. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/agent.py +0 -0
  246. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/agent_model.py +0 -0
  247. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/agent_tree.py +0 -0
  248. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/architect.py +0 -0
  249. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/ask.py +0 -0
  250. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/chat_mode.py +0 -0
  251. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/clear.py +0 -0
  252. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/command_prefix.py +0 -0
  253. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/commit.py +0 -0
  254. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/compact.py +0 -0
  255. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/context.py +0 -0
  256. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/context_blocks.py +0 -0
  257. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/context_management.py +0 -0
  258. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/core.py +0 -0
  259. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/diff.py +0 -0
  260. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/drop.py +0 -0
  261. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/editor.py +0 -0
  262. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/editor_model.py +0 -0
  263. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/exclude_skill.py +0 -0
  264. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/exit.py +0 -0
  265. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/git.py +0 -0
  266. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/hashline.py +0 -0
  267. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/history_search.py +0 -0
  268. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/hooks.py +0 -0
  269. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/hot_reload.py +0 -0
  270. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/include_skill.py +0 -0
  271. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/lint.py +0 -0
  272. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/list_mcp.py +0 -0
  273. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/list_sessions.py +0 -0
  274. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/list_skills.py +0 -0
  275. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/load.py +0 -0
  276. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/load_hook.py +0 -0
  277. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/load_mcp.py +0 -0
  278. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/load_session.py +0 -0
  279. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/load_skill.py +0 -0
  280. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/ls.py +0 -0
  281. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/map.py +0 -0
  282. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/map_refresh.py +0 -0
  283. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/merge.py +0 -0
  284. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/model.py +0 -0
  285. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/models.py +0 -0
  286. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/multiline_mode.py +0 -0
  287. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/paste.py +0 -0
  288. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/quit.py +0 -0
  289. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/read_only.py +0 -0
  290. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/read_only_stub.py +0 -0
  291. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/reap_agent.py +0 -0
  292. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/reasoning_effort.py +0 -0
  293. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/remove_hook.py +0 -0
  294. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/remove_mcp.py +0 -0
  295. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/remove_skill.py +0 -0
  296. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/report.py +0 -0
  297. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/reset.py +0 -0
  298. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/rules.py +0 -0
  299. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/run.py +0 -0
  300. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/save.py +0 -0
  301. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/save_session.py +0 -0
  302. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/settings.py +0 -0
  303. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/spawn_agent.py +0 -0
  304. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/switch_agent.py +0 -0
  305. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/terminal_data/linux.keytab +0 -0
  306. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/terminal_setup.py +0 -0
  307. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/test.py +0 -0
  308. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/think_tokens.py +0 -0
  309. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/tokens.py +0 -0
  310. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/undo.py +0 -0
  311. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/utils/__init__.py +0 -0
  312. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/utils/base_command.py +0 -0
  313. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/utils/helpers.py +0 -0
  314. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/utils/registry.py +0 -0
  315. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/utils/save_load_manager.py +0 -0
  316. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/voice.py +0 -0
  317. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/weak_model.py +0 -0
  318. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/web.py +0 -0
  319. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/commands/workspace.py +0 -0
  320. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/decoding.py +0 -0
  321. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/deprecated_args.py +0 -0
  322. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/diffs.py +0 -0
  323. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/dump.py +0 -0
  324. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/editor.py +0 -0
  325. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/exceptions.py +0 -0
  326. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/format_settings.py +0 -0
  327. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/help_pats.py +0 -0
  328. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/__init__.py +0 -0
  329. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/agents/__init__.py +0 -0
  330. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/agents/config.py +0 -0
  331. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/agents/defaults/__init__.py +0 -0
  332. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/agents/defaults/worker.md +0 -0
  333. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/command_parser.py +0 -0
  334. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/config_utils.py +0 -0
  335. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/conversation/__init__.py +0 -0
  336. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/conversation/base_message.py +0 -0
  337. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/conversation/files.py +0 -0
  338. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/conversation/integration.py +0 -0
  339. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/conversation/manager.py +0 -0
  340. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/conversation/service.py +0 -0
  341. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/conversation/tags.py +0 -0
  342. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/conversation/utils.py +0 -0
  343. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/copypaste.py +0 -0
  344. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/coroutines.py +0 -0
  345. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/crypto.py +0 -0
  346. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/file_searcher.py +0 -0
  347. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/file_system/__init__.py +0 -0
  348. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/file_system/builders.py +0 -0
  349. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/file_system/ignore.py +0 -0
  350. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/file_system/ngram_index.py +0 -0
  351. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/file_system/service.py +0 -0
  352. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/file_system/trie_index.py +0 -0
  353. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/grep_ast/__init__.py +0 -0
  354. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/grep_ast/dump.py +0 -0
  355. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/grep_ast/grep_ast.py +0 -0
  356. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/grep_ast/main.py +0 -0
  357. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/grep_ast/parsers.py +0 -0
  358. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/grep_ast/tsl.py +0 -0
  359. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/hashline.py +0 -0
  360. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/hashpos/__init__.py +0 -0
  361. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/hashpos/hashpos.py +0 -0
  362. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/hashpos/hashpos.v1.bak +0 -0
  363. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/hashpos/transformations.py +0 -0
  364. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/io_proxy.py +0 -0
  365. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/leak_detect.py +0 -0
  366. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/lock_detect.py +0 -0
  367. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/memory/__init__.py +0 -0
  368. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/memory/db.py +0 -0
  369. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/memory/utils.py +0 -0
  370. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/model_providers.py +0 -0
  371. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/monorepo/__init__.py +0 -0
  372. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/monorepo/config.py +0 -0
  373. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/monorepo/local_workspace.py +0 -0
  374. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/monorepo/project.py +0 -0
  375. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/monorepo/workspace.py +0 -0
  376. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/monorepo/worktree.py +0 -0
  377. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/nested.py +0 -0
  378. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/observations/__init__.py +0 -0
  379. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/orchestration/__init__.py +0 -0
  380. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/orchestration/agent_proxy.py +0 -0
  381. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/orchestration/region_resolver.py +0 -0
  382. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/orchestration/safe_methods.py +0 -0
  383. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/orchestration/security.py +0 -0
  384. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/orchestration/service.py +0 -0
  385. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/orchestration/tool_proxy.py +0 -0
  386. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/plugin_manager.py +0 -0
  387. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/profiler.py +0 -0
  388. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/requests.py +0 -0
  389. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/responses.py +0 -0
  390. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/server/__init__.py +0 -0
  391. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/server/acp/__init__.py +0 -0
  392. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/server/acp/bridge.py +0 -0
  393. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/server/acp/models.py +0 -0
  394. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/server/acp/protocol.py +0 -0
  395. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/server/signals.py +0 -0
  396. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/server/ws_server.py +0 -0
  397. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/similarity.py +0 -0
  398. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/skills.py +0 -0
  399. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/helpers/threading.py +0 -0
  400. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/history.py +0 -0
  401. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/hooks/__init__.py +0 -0
  402. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/hooks/base.py +0 -0
  403. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/hooks/integration.py +0 -0
  404. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/hooks/manager.py +0 -0
  405. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/hooks/registry.py +0 -0
  406. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/hooks/service.py +0 -0
  407. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/hooks/types.py +0 -0
  408. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/interruptible_input.py +0 -0
  409. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/io.py +0 -0
  410. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/linter.py +0 -0
  411. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/llm.py +0 -0
  412. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/main.py +0 -0
  413. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/mcp/__init__.py +0 -0
  414. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/mcp/oauth.py +0 -0
  415. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/mcp/server.py +0 -0
  416. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/mcp/utils.py +0 -0
  417. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/mdstream.py +0 -0
  418. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/models.py +0 -0
  419. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/onboarding.py +0 -0
  420. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/__init__.py +0 -0
  421. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/architect.yml +0 -0
  422. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/ask.yml +0 -0
  423. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/base.yml +0 -0
  424. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/context.yml +0 -0
  425. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/copypaste.yml +0 -0
  426. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/editblock.yml +0 -0
  427. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/editblock_fenced.yml +0 -0
  428. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/editblock_func.yml +0 -0
  429. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/editor_diff_fenced.yml +0 -0
  430. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/editor_editblock.yml +0 -0
  431. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/editor_whole.yml +0 -0
  432. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/hashline.yml +0 -0
  433. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/help.yml +0 -0
  434. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/patch.yml +0 -0
  435. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/single_wholefile_func.yml +0 -0
  436. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/udiff.yml +0 -0
  437. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/udiff_simple.yml +0 -0
  438. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/utils/__init__.py +0 -0
  439. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/utils/registry.py +0 -0
  440. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/utils/system.py +0 -0
  441. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/wholefile.yml +0 -0
  442. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/prompts/wholefile_func.yml +0 -0
  443. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  444. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  445. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
  446. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  447. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  448. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  449. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  450. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  451. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  452. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  453. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  454. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  455. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  456. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  457. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  458. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  459. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  460. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  461. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  462. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  463. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  464. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  465. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  466. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  467. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  468. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  469. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  470. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  471. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  472. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  473. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  474. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  475. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/README.md +0 -0
  476. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
  477. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  478. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  479. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  480. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  481. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  482. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  483. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  484. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  485. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  486. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  487. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  488. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  489. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  490. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  491. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  492. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  493. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  494. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  495. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  496. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  497. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  498. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  499. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  500. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  501. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  502. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  503. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/reasoning_tags.py +0 -0
  504. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/repo.py +0 -0
  505. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/repomap.py +0 -0
  506. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/report.py +0 -0
  507. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/resources/__init__.py +0 -0
  508. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/resources/model-metadata.json +0 -0
  509. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/resources/model-settings.yml +0 -0
  510. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/resources/providers.json +0 -0
  511. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/run_cmd.py +0 -0
  512. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/scrape.py +0 -0
  513. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/sendchat.py +0 -0
  514. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/signals.py +0 -0
  515. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/special.py +0 -0
  516. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/__init__.py +0 -0
  517. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/delegate.py +0 -0
  518. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/explore_code.py +0 -0
  519. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/git_branch.py +0 -0
  520. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/git_diff.py +0 -0
  521. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/git_log.py +0 -0
  522. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/git_remote.py +0 -0
  523. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/git_show.py +0 -0
  524. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/git_status.py +0 -0
  525. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/grep.py +0 -0
  526. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/ls.py +0 -0
  527. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/replace_facts.py +0 -0
  528. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/resource_manager.py +0 -0
  529. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/search_facts.py +0 -0
  530. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/thinking.py +0 -0
  531. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/undo_change.py +0 -0
  532. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/update_todo_list.py +0 -0
  533. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/utils/__init__.py +0 -0
  534. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/utils/base_tool.py +0 -0
  535. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/utils/helpers.py +0 -0
  536. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/utils/output.py +0 -0
  537. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/utils/registry.py +0 -0
  538. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/utils/responses.py +0 -0
  539. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/validations/__init__.py +0 -0
  540. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tools/validations/validations.py +0 -0
  541. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tui/styles.tcss +0 -0
  542. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tui/widgets/__init__.py +0 -0
  543. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tui/widgets/completion_bar.py +0 -0
  544. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tui/widgets/file_list.py +0 -0
  545. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tui/widgets/footer.py +0 -0
  546. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tui/widgets/input_area.py +0 -0
  547. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tui/widgets/input_container.py +0 -0
  548. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tui/widgets/key_hints.py +0 -0
  549. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tui/widgets/output.py +0 -0
  550. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tui/widgets/output_alt.bak +0 -0
  551. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tui/widgets/selectable_log.py +0 -0
  552. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tui/widgets/status_bar.py +0 -0
  553. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tui/widgets/subagent_pills.py +0 -0
  554. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/tui/worker.py +0 -0
  555. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/urls.py +0 -0
  556. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/versioncheck.py +0 -0
  557. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/voice.py +0 -0
  558. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/waiting.py +0 -0
  559. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/watch.py +0 -0
  560. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/watch_prompts.py +0 -0
  561. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/_includes/blame.md +0 -0
  562. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/_includes/get-started.md +0 -0
  563. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/_includes/help-tip.md +0 -0
  564. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/_includes/help.md +0 -0
  565. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/_includes/keys.md +0 -0
  566. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/_includes/multi-line.md +0 -0
  567. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/_includes/python-m-aider.md +0 -0
  568. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/_includes/recording.css +0 -0
  569. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/_includes/recording.md +0 -0
  570. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/_sass/_features.scss +0 -0
  571. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/_sass/_footer.scss +0 -0
  572. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/_sass/_hero.scss +0 -0
  573. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/_sass/_info.scss +0 -0
  574. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/_sass/_layout.scss +0 -0
  575. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/_sass/_reset.scss +0 -0
  576. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/_sass/_testimonials.scss +0 -0
  577. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/_sass/_typography.scss +0 -0
  578. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/_sass/_variables.scss +0 -0
  579. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/_sass/custom/custom.scss +0 -0
  580. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/_sass/global-overrides.scss +0 -0
  581. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/config/custom-commands.md +0 -0
  582. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  583. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/config/security.md +0 -0
  584. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/docs/config/workspaces.md +0 -0
  585. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli/website/share/index.md +0 -0
  586. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli_dev.egg-info/dependency_links.txt +0 -0
  587. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli_dev.egg-info/entry_points.txt +0 -0
  588. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli_dev.egg-info/requires.txt +0 -0
  589. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/cecli_dev.egg-info/top_level.txt +0 -0
  590. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/docker/Dockerfile +0 -0
  591. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  592. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/pyproject.toml +0 -0
  593. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/requirements/common-constraints.txt +0 -0
  594. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/requirements/requirements-dev.in +0 -0
  595. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/requirements/requirements-dev.txt +0 -0
  596. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/requirements/requirements-help.in +0 -0
  597. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/requirements/requirements-help.txt +0 -0
  598. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/requirements/requirements-playwright.in +0 -0
  599. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/requirements/requirements-playwright.txt +0 -0
  600. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/requirements/requirements.in +0 -0
  601. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/requirements/tree-sitter.in +0 -0
  602. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/requirements.txt +0 -0
  603. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/30k-image.py +0 -0
  604. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/__init__.py +0 -0
  605. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/blame.py +0 -0
  606. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/clean_metadata.py +0 -0
  607. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/compare-message-history.py +0 -0
  608. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/cost_analyzer.py +0 -0
  609. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/cost_calculator.py +0 -0
  610. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/dl_icons.py +0 -0
  611. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/filter-chat-mode.js +0 -0
  612. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/generate_providers.py +0 -0
  613. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/get_contributor_list.js +0 -0
  614. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/get_hashline.py +0 -0
  615. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/history_prompts.py +0 -0
  616. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/homepage.py +0 -0
  617. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/issues.py +0 -0
  618. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/logo_svg.py +0 -0
  619. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/optimize_tokens.sh +0 -0
  620. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/pip-compile.sh +0 -0
  621. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/recording_audio.py +0 -0
  622. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/redact-cast.py +0 -0
  623. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/rename_to_cecli.py +0 -0
  624. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/tmux_record.sh +0 -0
  625. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/tsl_pack_langs.py +0 -0
  626. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/update-blame.sh +0 -0
  627. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/update-docs.sh +0 -0
  628. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/update-history.py +0 -0
  629. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/versionbump.py +0 -0
  630. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/scripts/yank-old-versions.py +0 -0
  631. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/setup.cfg +0 -0
  632. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/shim.pyproject.toml +0 -0
  633. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/__init__.py +0 -0
  634. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/__init__.py +0 -0
  635. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/conftest.py +0 -0
  636. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_aws_credentials.py +0 -0
  637. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_background_commands.py +0 -0
  638. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_coder.py +0 -0
  639. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_commands.py +0 -0
  640. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_custom_commands.py +0 -0
  641. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_deprecated.py +0 -0
  642. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_editblock.py +0 -0
  643. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_editor.py +0 -0
  644. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_exceptions.py +0 -0
  645. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_find_or_blocks.py +0 -0
  646. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_hashline.py +0 -0
  647. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_hashline_closure.py +0 -0
  648. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_history.py +0 -0
  649. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_io.py +0 -0
  650. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_linter.py +0 -0
  651. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_main.py +0 -0
  652. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_model_info_manager.py +0 -0
  653. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_model_provider_manager.py +0 -0
  654. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_models.py +0 -0
  655. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_onboarding.py +0 -0
  656. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_plugin_manager.py +0 -0
  657. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_prompts.py +0 -0
  658. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_reasoning.py +0 -0
  659. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_repo.py +0 -0
  660. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_repomap.py +0 -0
  661. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_run_cmd.py +0 -0
  662. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_sanity_check_repo.py +0 -0
  663. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_scripting.py +0 -0
  664. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_select_selector.py +0 -0
  665. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_session_args.py +0 -0
  666. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_session_crypto.py +0 -0
  667. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_sessions.py +0 -0
  668. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_sessions_manager.py +0 -0
  669. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_skills.py +0 -0
  670. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_special.py +0 -0
  671. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_spinner.py +0 -0
  672. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_ssl_verification.py +0 -0
  673. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_udiff.py +0 -0
  674. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_urls.py +0 -0
  675. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_voice.py +0 -0
  676. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_watch.py +0 -0
  677. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/basic/test_wholefile.py +0 -0
  678. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/coders/test_coder_switching.py +0 -0
  679. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/coders/test_copypaste_coder.py +0 -0
  680. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/conftest.py +0 -0
  681. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/conversations/test_conversation_integration.py +0 -0
  682. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/conversations/test_conversation_system.py +0 -0
  683. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  684. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/chat-history.md +0 -0
  685. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/arduino/test.ino +0 -0
  686. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/bash/test.sh +0 -0
  687. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/c/test.c +0 -0
  688. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/chatito/test.chatito +0 -0
  689. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/clojure/test.clj +0 -0
  690. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  691. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/cpp/test.cpp +0 -0
  692. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/csharp/test.cs +0 -0
  693. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/d/test.d +0 -0
  694. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/dart/test.dart +0 -0
  695. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/elisp/test.el +0 -0
  696. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/elixir/test.ex +0 -0
  697. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/elm/test.elm +0 -0
  698. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/gleam/test.gleam +0 -0
  699. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/go/test.go +0 -0
  700. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/haskell/test.hs +0 -0
  701. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/hcl/test.tf +0 -0
  702. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/java/test.java +0 -0
  703. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/javascript/test.js +0 -0
  704. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/kotlin/test.kt +0 -0
  705. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/lua/test.lua +0 -0
  706. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/matlab/test.m +0 -0
  707. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/ocaml/test.ml +0 -0
  708. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  709. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/php/test.php +0 -0
  710. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/pony/test.pony +0 -0
  711. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/properties/test.properties +0 -0
  712. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/python/test.py +0 -0
  713. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/ql/test.ql +0 -0
  714. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/r/test.r +0 -0
  715. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/racket/test.rkt +0 -0
  716. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/ruby/test.rb +0 -0
  717. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/rust/test.rs +0 -0
  718. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/scala/test.scala +0 -0
  719. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/solidity/test.sol +0 -0
  720. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/swift/test.swift +0 -0
  721. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/tsx/test.tsx +0 -0
  722. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/typescript/test.ts +0 -0
  723. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/udev/test.rules +0 -0
  724. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/languages/zig/test.zig +0 -0
  725. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/sample-code-base/sample.js +0 -0
  726. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/sample-code-base/sample.py +0 -0
  727. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  728. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/watch.js +0 -0
  729. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/watch.lisp +0 -0
  730. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/watch.py +0 -0
  731. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/fixtures/watch_question.js +0 -0
  732. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/help/test_help.py +0 -0
  733. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/helpers/monorepo/LOCAL_WORKSPACE.md +0 -0
  734. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/helpers/monorepo/test_config.py +0 -0
  735. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/helpers/monorepo/test_config_active.py +0 -0
  736. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
  737. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/helpers/monorepo/test_local_workspace.py +0 -0
  738. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
  739. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/helpers/monorepo/test_workspace.py +0 -0
  740. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/helpers/server/acp/__init__.py +0 -0
  741. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/helpers/server/acp/test_bridge.py +0 -0
  742. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/helpers/server/acp/test_dispatch.py +0 -0
  743. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/helpers/server/acp/test_models.py +0 -0
  744. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/helpers/server/acp/test_protocol.py +0 -0
  745. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/hooks/__init__.py +0 -0
  746. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/hooks/test_base.py +0 -0
  747. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/hooks/test_manager.py +0 -0
  748. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/hooks/test_registry.py +0 -0
  749. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/integration/test_agent_mcp_management.py +0 -0
  750. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/integration/test_config_loading.py +0 -0
  751. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/mcp/__init__.py +0 -0
  752. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/mcp/conftest.py +0 -0
  753. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/mcp/mock_server.py +0 -0
  754. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/mcp/test_keepalive_concurrency.py +0 -0
  755. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/mcp/test_keepalive_config.py +0 -0
  756. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/mcp/test_keepalive_integration.py +0 -0
  757. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/mcp/test_keepalive_logging.py +0 -0
  758. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/mcp/test_keepalive_resilience.py +0 -0
  759. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/mcp/test_keepalive_unit.py +0 -0
  760. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/mcp/test_manager_retry.py +0 -0
  761. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/scrape/test_playwright_disable.py +0 -0
  762. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/scrape/test_scrape.py +0 -0
  763. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/subagents/__init__.py +0 -0
  764. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/subagents/conftest.py +0 -0
  765. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/subagents/test_commands.py +0 -0
  766. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/subagents/test_config.py +0 -0
  767. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/subagents/test_delegate.py +0 -0
  768. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/subagents/test_io_proxy.py +0 -0
  769. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/subagents/test_service.py +0 -0
  770. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/subagents/test_sub_agent_coder.py +0 -0
  771. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/test_requests.py +0 -0
  772. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/tools/test_extractions.py +0 -0
  773. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/tools/test_get_lines.py +0 -0
  774. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/tools/test_git_branch.py +0 -0
  775. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/tools/test_git_diff.py +0 -0
  776. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/tools/test_grep.py +0 -0
  777. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/tools/test_insert_block.py +0 -0
  778. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/tools/test_read_range_execute.py +0 -0
  779. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/tools/test_registry.py +0 -0
  780. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/tools/test_remove_mcp_tool.py +0 -0
  781. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/tools/test_tool_arguments.py +0 -0
  782. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/tools/test_tools_load_mcp_tool.py +0 -0
  783. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/tools/validations.py +0 -0
  784. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/unit/conftest.py +0 -0
  785. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/unit/test_deep_merge.py +0 -0
  786. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/unit/test_edge_cases.py +0 -0
  787. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/unit/test_load_mcp.py +0 -0
  788. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/unit/test_performance.py +0 -0
  789. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/unit/test_queues.py +0 -0
  790. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/unit/test_remove_mcp.py +0 -0
  791. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/unit/test_shallow_merge.py +0 -0
  792. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/unit/test_signals.py +0 -0
  793. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/unit/test_unit_load_mcp_tool.py +0 -0
  794. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/unit/test_unit_remove_mcp_tool.py +0 -0
  795. {cecli_dev-1.0.3 → cecli_dev-1.0.4}/tests/unit/test_ws_server.py +0 -0
@@ -1,10 +1,5 @@
1
- # This workflow uses actions that are not certified by GitHub.
2
- # They are provided by a third-party and are governed by
3
- # separate terms of service, privacy policy, and support
4
- # documentation.
5
-
6
- # Sample workflow for building and deploying a Jekyll site to GitHub Pages
7
- name: Deploy Jekyll site to Pages
1
+ # Workflow for building and deploying the docmd site to GitHub Pages
2
+ name: Deploy site to Pages
8
3
 
9
4
  on:
10
5
  push:
@@ -40,21 +35,21 @@ jobs:
40
35
  uses: actions/checkout@v4
41
36
  with:
42
37
  fetch-depth: 0
43
- - name: Setup Ruby
44
- uses: ruby/setup-ruby@v1
38
+ - name: Setup Node
39
+ uses: actions/setup-node@v4
45
40
  with:
46
- ruby-version: '3.3' # Not needed with a .ruby-version file
47
- bundler-cache: true # runs 'bundle install' and caches installed gems automatically
48
- cache-version: 0 # Increment this number if you need to re-download cached gems
49
- working-directory: '${{ github.workspace }}/cecli/website'
41
+ node-version: '20'
42
+ cache: npm
43
+ cache-dependency-path: 'cecli/website/package-lock.json'
50
44
  - name: Setup Pages
51
45
  id: pages
52
46
  uses: actions/configure-pages@v3
53
- - name: Build with Jekyll
54
- # Outputs to the './_site' directory by default
55
- run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}"
56
- env:
57
- JEKYLL_ENV: production
47
+ - name: Install dependencies
48
+ run: npm ci
49
+ working-directory: cecli/website
50
+ - name: Build site with docmd
51
+ run: bash ../../scripts/docmd_build.sh
52
+ working-directory: cecli/website
58
53
  - name: Upload artifact
59
54
  uses: actions/upload-pages-artifact@v3
60
55
  with:
@@ -71,7 +66,7 @@ jobs:
71
66
  - name: Deploy to GitHub Pages
72
67
  id: deployment
73
68
  uses: actions/deploy-pages@v4
74
-
69
+
75
70
  - name: Set up Python 3.12
76
71
  uses: actions/setup-python@v5
77
72
  with:
@@ -84,4 +79,4 @@ jobs:
84
79
 
85
80
  - name: Run linkchecker
86
81
  run: |
87
- linkchecker --ignore-url='.+\.(mp4|mov|avi)' https://cecli.dev
82
+ linkchecker --ignore-url='.+\\.(mp4|mov|avi)' https://cecli.dev
@@ -44,4 +44,7 @@ env/
44
44
  __pycache__/
45
45
 
46
46
  # Ignore Folders
47
- cecli/website/_site/*
47
+ cecli/website/_site/*
48
+ cecli/website/.sass-cache/*
49
+ cecli/website/.docmd-*/*
50
+ cecli/website/node_modules/*
@@ -23,7 +23,7 @@ ensure that your contributions can be integrated smoothly.
23
23
 
24
24
  ```bash
25
25
  # Clone the repository
26
- git clone https://github.com/dwash96/cecli.git
26
+ git clone https://github.com/cecli-dev/cecli.git
27
27
  cd cecli
28
28
 
29
29
  # Make a venv
@@ -68,12 +68,12 @@ In order for your PR to be accepted it must:
68
68
  2. Comply with project coding standards (including running the pre-commit formatting hooks)
69
69
  3. Include test coverage
70
70
  4. Update relevant user-facing documentation:
71
- - Primary documentation will live in `aider/website/docs/config/`
71
+ - Primary documentation will live in `cecli/website/docs/config/`
72
72
  - Check new cli arguments with the output of `/help` and `--help`
73
73
 
74
74
  ### Python Compatibility
75
75
 
76
- cecli supports Python versions 3.10, 3.11, 3.12, 3.13, and 3.14. When contributing code, ensure compatibility with these supported Python versions.
76
+ Cecli supports Python versions 3.10, 3.11, 3.12, 3.13, and 3.14. When contributing code, ensure compatibility with these supported Python versions.
77
77
 
78
78
  ### Code Style
79
79
 
@@ -81,7 +81,7 @@ The project follows the [PEP 8](https://www.python.org/dev/peps/pep-0008/) style
81
81
 
82
82
  ### Testing
83
83
 
84
- The project uses [pytest](https://docs.pytest.org/en/latest/) for running unit tests. The test files are located in the `aider/tests` directory and follow the naming convention `test_*.py`.
84
+ The project uses [pytest](https://docs.pytest.org/en/latest/) for running unit tests. The test files are located in the `tests` directory and follow the naming convention `test_*.py`.
85
85
 
86
86
  #### Running Tests
87
87
 
@@ -105,7 +105,7 @@ The project uses GitHub Actions for continuous integration. The testing workflow
105
105
  - `.github/workflows/ubuntu-tests.yml`: Runs tests on Ubuntu for Python versions 3.9 through 3.12.
106
106
  - `.github/workflows/windows-tests.yml`: Runs that on Windows
107
107
 
108
- These workflows are triggered on push and pull request events to the `main` branch, ignoring changes to the `aider/website/**` and `README.md` files.
108
+ These workflows are triggered on push and pull request events to the `main` branch, ignoring changes to the `cecli/website/**` and `README.md` files.
109
109
 
110
110
  #### Docker Build and Test
111
111
 
@@ -113,9 +113,9 @@ The `.github/workflows/docker-build-test.yml` workflow is used to build a Docker
113
113
 
114
114
  #### Writing Tests
115
115
 
116
- When contributing new features or making changes to existing code, ensure that you write appropriate tests to maintain code coverage. Follow the existing patterns and naming conventions used in the `aider/tests` directory.
116
+ When contributing new features or making changes to existing code, ensure that you write appropriate tests to maintain code coverage. Follow the existing patterns and naming conventions used in the `tests` directory.
117
117
 
118
- If you need to mock or create test data, consider adding it to the test files or creating separate fixtures or utility functions within the `aider/tests` directory.
118
+ If you need to mock or create test data, consider adding it to the test files or creating separate fixtures or utility functions within the `tests` directory.
119
119
 
120
120
  #### Test Requirements
121
121
 
@@ -142,21 +142,27 @@ You can also pass one argument to `pip-compile.sh`, which will flow through to `
142
142
 
143
143
  ### Building the Documentation
144
144
 
145
- The project's documentation is built using Jekyll and hosted on GitHub Pages. To build the documentation locally, follow these steps:
145
+ The project's documentation is built with [docmd](https://docmd.io) and hosted on GitHub Pages. To build the documentation locally, follow these steps:
146
146
 
147
- 1. Install Ruby and Bundler (if not already installed).
148
- 2. Navigate to the `aider/website` directory.
149
- 3. Install the required gems:
147
+ 1. Install Node.js 18 or newer (the build uses `npx`).
148
+ 2. Navigate to the `cecli/website` directory.
149
+ 3. Install the required npm dependencies:
150
150
  ```
151
- bundle install
151
+ npm install
152
152
  ```
153
153
  4. Build the documentation:
154
154
  ```
155
- bundle exec jekyll build
155
+ npm run build
156
+ ```
157
+ Or run the full site build (homepage + docs + assets) with:
158
+ ```
159
+ bash ../../scripts/docmd_build.sh
156
160
  ```
157
161
  5. Preview the website while editing (optional):
158
162
  ```
159
- bundle exec jekyll serve
163
+ npm run dev
160
164
  ```
161
165
 
166
+ Built documentation is written to `cecli/website/_site` by `scripts/docmd_build.sh` (docs land in `_site/docs`, the homepage in `_site/index.html`).
167
+
162
168
  The built documentation will be available in the `cecli/website/_site` directory.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cecli-dev
3
- Version: 1.0.3
3
+ Version: 1.0.4
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.0.3'
22
- __version_tuple__ = version_tuple = (1, 0, 3)
21
+ __version__ = version = '1.0.4'
22
+ __version_tuple__ = version_tuple = (1, 0, 4)
23
23
 
24
- __commit_id__ = commit_id = 'gf9b41cd26'
24
+ __commit_id__ = commit_id = 'g906b4a888'
@@ -12,6 +12,8 @@ from collections import defaultdict
12
12
  from datetime import datetime
13
13
  from pathlib import Path
14
14
 
15
+ import xxhash
16
+
15
17
  from cecli.args import AGENT_CONFIG_LIST_FIELDS
16
18
  from cecli.change_tracker import ChangeTracker
17
19
  from cecli.helpers import nested, responses
@@ -631,6 +633,8 @@ class AgentCoder(Coder):
631
633
  ConversationService.get_chunks(self).add_readonly_files_messages()
632
634
  ConversationService.get_chunks(self).add_chat_files_messages()
633
635
 
636
+ ConversationService.get_manager(self).flush_queue()
637
+
634
638
  # Add post-message context blocks (priority 250 - between CUR and REMINDER)
635
639
  ConversationService.get_chunks(self).add_post_message_context_blocks()
636
640
 
@@ -920,20 +924,20 @@ class AgentCoder(Coder):
920
924
  "# Fix the linting errors below, and then continue with your task.",
921
925
  1,
922
926
  )
927
+ lint_hash = xxhash.xxh3_128_hexdigest(lint_errors.encode("utf-8", errors="replace"))
923
928
  ConversationService.get_manager(self).add_message(
924
929
  message_dict=dict(role="user", content=lint_errors),
925
930
  tag=MessageTag.LINT,
926
- hash_key=("lint_errors", "agent", lint_errors),
931
+ hash_key=("lint_errors", "agent", lint_hash),
927
932
  )
928
- ConversationService.get_manager(self).add_message(
933
+ ConversationService.get_manager(self).queue_message(
929
934
  message_dict=dict(
930
935
  role="user", content="Please address the latest linting errors."
931
936
  ),
932
937
  tag=MessageTag.LINT,
933
- hash_key=("lint_errors", "agent", lint_errors, "cta"),
938
+ hash_key=("lint_errors", "agent", lint_hash, "cta"),
934
939
  promotion=ConversationService.get_manager(self).DEFAULT_TAG_PROMOTION_VALUE,
935
940
  mark_for_demotion=1,
936
- mark_for_delete=0,
937
941
  )
938
942
  else:
939
943
  if has_errors:
@@ -1351,7 +1355,7 @@ class AgentCoder(Coder):
1351
1355
  )
1352
1356
 
1353
1357
  if repetition_warning:
1354
- ConversationService.get_manager(self).add_message(
1358
+ ConversationService.get_manager(self).queue_message(
1355
1359
  message_dict=dict(role="user", content=repetition_warning),
1356
1360
  tag=MessageTag.CUR,
1357
1361
  hash_key=("repetition", "agent"),
@@ -19,6 +19,8 @@ import weakref
19
19
  from collections import defaultdict
20
20
  from datetime import date, datetime
21
21
 
22
+ import xxhash
23
+
22
24
  # Optional dependency: used to convert locale codes (eg ``en_US``)
23
25
  # into human-readable language names (eg ``English``).
24
26
  try:
@@ -40,6 +42,7 @@ from cecli.helpers import command_parser, coroutines, nested, responses
40
42
  from cecli.helpers.conversation import ConversationService, MessageTag
41
43
  from cecli.helpers.file_system import FileSystemService
42
44
  from cecli.helpers.io_proxy import IOProxy
45
+ from cecli.helpers.memory_control import trim_memory
43
46
  from cecli.helpers.observations.service import ObservationService
44
47
  from cecli.helpers.profiler import TokenProfiler
45
48
  from cecli.helpers.threading import ThreadSafeEvent
@@ -317,6 +320,7 @@ class Coder(metaclass=UsageMeta):
317
320
  mcp_manager=from_coder.mcp_manager,
318
321
  registered_tools=copy.deepcopy(from_coder.registered_tools),
319
322
  registered_servers=copy.deepcopy(from_coder.registered_servers),
323
+ auto_memory=from_coder.auto_memory,
320
324
  uuid=from_coder.uuid,
321
325
  parent_uuid=from_coder.parent_uuid,
322
326
  repo=from_coder.repo,
@@ -1797,6 +1801,8 @@ class Coder(metaclass=UsageMeta):
1797
1801
  self.run_one_completed = True
1798
1802
  self.compact_context_completed = True
1799
1803
  self.io.stop_spinner()
1804
+ # Trim memory in the background so it doesn't stall the event loop
1805
+ coroutines.fire_and_forget(asyncio.to_thread(trim_memory))
1800
1806
 
1801
1807
  def copy_context(self):
1802
1808
  if self.auto_copy_context:
@@ -1880,6 +1886,8 @@ class Coder(metaclass=UsageMeta):
1880
1886
  ConversationService.get_chunks(self).flush_removals()
1881
1887
  self.last_user_message = user_message
1882
1888
  self.error_code = None
1889
+ # Trim memory in the background so it doesn't delay the response
1890
+ coroutines.fire_and_forget(asyncio.to_thread(trim_memory))
1883
1891
  # Fire memorizer after each user request
1884
1892
  # if self.auto_memory and self.edit_format not in ["subagent"]:
1885
1893
  # from cecli.helpers.memory.utils import invoke_memorizer
@@ -2439,6 +2447,8 @@ class Coder(metaclass=UsageMeta):
2439
2447
  # Add chat and edit file messages
2440
2448
  ConversationService.get_chunks(self).add_chat_files_messages()
2441
2449
 
2450
+ ConversationService.get_manager(self).flush_queue()
2451
+
2442
2452
  # Return formatted messages for LLM
2443
2453
  return ConversationService.get_manager(self).get_messages_dict()
2444
2454
 
@@ -2567,12 +2577,14 @@ class Coder(metaclass=UsageMeta):
2567
2577
  self.format_chat_chunks()
2568
2578
 
2569
2579
  # Always add user message to conversation manager
2570
- ConversationService.get_manager(self).add_message(
2580
+ ConversationService.get_manager(self).queue_message(
2571
2581
  message_dict=dict(role="user", content=inp),
2572
2582
  tag=MessageTag.CUR,
2573
- hash_key=("user_message", inp, str(time.monotonic_ns())),
2574
- promotion=ConversationService.get_manager(self).DEFAULT_TAG_PROMOTION_VALUE,
2575
- mark_for_demotion=1,
2583
+ hash_key=(
2584
+ "user_message",
2585
+ xxhash.xxh3_128_hexdigest(inp.encode("utf-8", errors="replace")),
2586
+ str(time.monotonic_ns()),
2587
+ ),
2576
2588
  )
2577
2589
 
2578
2590
  ConversationService.get_manager(self).decrement_message_markers()
@@ -2765,6 +2777,7 @@ class Coder(metaclass=UsageMeta):
2765
2777
 
2766
2778
  await self.show_exhausted_error()
2767
2779
  self.num_exhausted_context_windows += 1
2780
+ self._release_response_buffers()
2768
2781
  return
2769
2782
  if self.partial_response_function_call:
2770
2783
  args = self.parse_partial_args()
@@ -2798,6 +2811,9 @@ class Coder(metaclass=UsageMeta):
2798
2811
  mark_for_demotion=1,
2799
2812
  )
2800
2813
 
2814
+ # The reply was interrupted mid-stream; drop the partial chunk buffers
2815
+ # rather than holding them until the next send().
2816
+ self._release_response_buffers()
2801
2817
  return
2802
2818
 
2803
2819
  edited = await self.apply_updates()
@@ -2883,6 +2899,11 @@ class Coder(metaclass=UsageMeta):
2883
2899
  self.reflected_message = test_errors
2884
2900
  return
2885
2901
 
2902
+ # Turn complete: drop the per-turn LLM stream buffers. They are reset at
2903
+ # the start of the next send(), so holding on to them while idle only
2904
+ # wastes memory (chunks can be large for long streaming responses).
2905
+ self._release_response_buffers()
2906
+
2886
2907
  def _extract_and_prepare_tool_calls(self, tool_call_response):
2887
2908
  """
2888
2909
  Unified extraction and preparation of tool calls.
@@ -3401,6 +3422,16 @@ class Coder(metaclass=UsageMeta):
3401
3422
  """Cleanup when the Coder object is destroyed."""
3402
3423
  self.ok_to_warm_cache = False
3403
3424
 
3425
+ def _release_response_buffers(self):
3426
+ """Drop per-turn LLM stream data now that the turn has completed.
3427
+
3428
+ `partial_response_content` is intentionally kept: subclasses and callers
3429
+ (get_edits, reply_completed, run_stream, ...) read it after the turn.
3430
+ """
3431
+ self.partial_response_chunks = []
3432
+ self.partial_response_consolidated = None
3433
+ self.partial_response_reasoning_content = ""
3434
+
3404
3435
  async def add_assistant_reply_to_cur_messages(self):
3405
3436
  """
3406
3437
  Add the assistant's reply to `cur_messages`.
@@ -3447,10 +3478,17 @@ class Coder(metaclass=UsageMeta):
3447
3478
  self.io.tool_warning("Execution stopped by end message hook")
3448
3479
  return
3449
3480
 
3481
+ if self.edit_format in ("agent", "subagent"):
3482
+ msg.pop("function_call", None)
3483
+
3450
3484
  ConversationService.get_manager(self).add_message(
3451
3485
  message_dict=msg,
3452
3486
  tag=MessageTag.CUR,
3453
- hash_key=("assistant_message", str(msg), str(time.monotonic_ns())),
3487
+ hash_key=(
3488
+ "assistant_message",
3489
+ xxhash.xxh3_128_hexdigest(str(msg).encode("utf-8", errors="replace")),
3490
+ str(time.monotonic_ns()),
3491
+ ),
3454
3492
  # promotion=ConversationService.get_manager(self).DEFAULT_TAG_PROMOTION_VALUE,
3455
3493
  # mark_for_demotion=1,
3456
3494
  )
@@ -13,6 +13,7 @@ from .agent_model import AgentModelCommand
13
13
  from .agent_tree import AgentTreeCommand
14
14
  from .architect import ArchitectCommand
15
15
  from .ask import AskCommand
16
+ from .auto_memory import AutoMemoryCommand
16
17
  from .clear import ClearCommand
17
18
  from .code import CodeCommand
18
19
  from .command_prefix import CommandPrefixCommand
@@ -61,6 +62,7 @@ from .reap_agent import ReapAgentCommand
61
62
  from .reasoning_effort import ReasoningEffortCommand
62
63
  from .remove_hook import RemoveHookCommand
63
64
  from .remove_mcp import RemoveMcpCommand
65
+ from .remove_memory import RemoveMemoryCommand
64
66
  from .remove_skill import RemoveSkillCommand
65
67
  from .report import ReportCommand
66
68
  from .reset import ResetCommand
@@ -68,6 +70,7 @@ from .rules import RulesCommand
68
70
  from .run import RunCommand
69
71
  from .save import SaveCommand
70
72
  from .save_session import SaveSessionCommand
73
+ from .search_memory import SearchMemoryCommand
71
74
  from .settings import SettingsCommand
72
75
  from .spawn_agent import SpawnAgentCommand
73
76
  from .switch_agent import SwitchAgentCommand
@@ -100,6 +103,7 @@ CommandRegistry.register(AgentModelCommand)
100
103
  CommandRegistry.register(AgentTreeCommand)
101
104
  CommandRegistry.register(ArchitectCommand)
102
105
  CommandRegistry.register(AskCommand)
106
+ CommandRegistry.register(AutoMemoryCommand)
103
107
  CommandRegistry.register(ClearCommand)
104
108
  CommandRegistry.register(CodeCommand)
105
109
  CommandRegistry.register(CommandPrefixCommand)
@@ -150,6 +154,7 @@ CommandRegistry.register(ReadOnlyStubCommand)
150
154
  CommandRegistry.register(ReasoningEffortCommand)
151
155
  CommandRegistry.register(RemoveHookCommand)
152
156
  CommandRegistry.register(RemoveMcpCommand)
157
+ CommandRegistry.register(RemoveMemoryCommand)
153
158
  CommandRegistry.register(RemoveSkillCommand)
154
159
  CommandRegistry.register(ReportCommand)
155
160
  CommandRegistry.register(ResetCommand)
@@ -157,6 +162,7 @@ CommandRegistry.register(RulesCommand)
157
162
  CommandRegistry.register(RunCommand)
158
163
  CommandRegistry.register(SaveCommand)
159
164
  CommandRegistry.register(SaveSessionCommand)
165
+ CommandRegistry.register(SearchMemoryCommand)
160
166
  CommandRegistry.register(SettingsCommand)
161
167
  CommandRegistry.register(TerminalSetupCommand)
162
168
  CommandRegistry.register(TestCommand)
@@ -176,6 +182,7 @@ __all__ = [
176
182
  "AgentTreeCommand",
177
183
  "ArchitectCommand",
178
184
  "AskCommand",
185
+ "AutoMemoryCommand",
179
186
  "BaseCommand",
180
187
  "ClearCommand",
181
188
  "CodeCommand",
@@ -237,6 +244,7 @@ __all__ = [
237
244
  "ReloadProgramSignal",
238
245
  "RemoveHookCommand",
239
246
  "RemoveMcpCommand",
247
+ "RemoveMemoryCommand",
240
248
  "RemoveSkillCommand",
241
249
  "ReportCommand",
242
250
  "ResetCommand",
@@ -244,6 +252,7 @@ __all__ = [
244
252
  "RunCommand",
245
253
  "SaveCommand",
246
254
  "SaveSessionCommand",
255
+ "SearchMemoryCommand",
247
256
  "SettingsCommand",
248
257
  "SwitchCoderSignal",
249
258
  "TerminalSetupCommand",
@@ -0,0 +1,117 @@
1
+ """Auto-memory command - view or toggle automatic memorizer invocation.
2
+
3
+ Controls the ``coder.auto_memory`` flag, which decides whether the
4
+ memorizer sub-agent is fired automatically after context compaction.
5
+ ``on``/``off`` propagate the setting to every tracked sub-agent so the
6
+ whole agent tree stays consistent.
7
+ """
8
+
9
+ from typing import List
10
+
11
+ from cecli.commands.utils.base_command import BaseCommand
12
+ from cecli.commands.utils.helpers import format_command_result
13
+ from cecli.helpers.agents.service import AgentService
14
+
15
+
16
+ class AutoMemoryCommand(BaseCommand):
17
+ NORM_NAME = "auto-memory"
18
+ DESCRIPTION = "View or toggle automatic memory (memorizer) on/off"
19
+
20
+ @classmethod
21
+ async def execute(cls, io, coder, args, **kwargs):
22
+ """View or toggle automatic memory on/off.
23
+
24
+ Syntax:
25
+ /auto-memory — Show the current status
26
+ /auto-memory on — Enable for this coder and all sub-agents
27
+ /auto-memory off — Disable for this coder and all sub-agents
28
+ """
29
+ arg = args.strip().lower()
30
+
31
+ if not arg:
32
+ cls._show_status(io, coder)
33
+
34
+ return format_command_result(io, cls.NORM_NAME, "Displayed auto-memory status")
35
+
36
+ if arg not in ("on", "off"):
37
+ io.tool_error("Usage: /auto-memory [on|off]")
38
+
39
+ return format_command_result(
40
+ io,
41
+ cls.NORM_NAME,
42
+ "Unknown option",
43
+ f"Expected 'on' or 'off', got '{arg}'",
44
+ )
45
+
46
+ enabled = arg == "on"
47
+ updated = cls._set_auto_memory(coder, enabled)
48
+ state = "ON" if enabled else "OFF"
49
+
50
+ io.tool_output(
51
+ f"Auto memory is now {state} for the current coder and {len(updated)} sub-agent(s)."
52
+ )
53
+
54
+ return format_command_result(io, cls.NORM_NAME, f"Auto memory set to {state}")
55
+
56
+ @classmethod
57
+ def get_completions(cls, io, coder, args) -> List[str]:
58
+ """Return completion options for auto-memory."""
59
+ return ["on", "off"]
60
+
61
+ @classmethod
62
+ def get_help(cls) -> str:
63
+ """Get help text for the auto-memory command."""
64
+ help_text = super().get_help()
65
+ help_text += "\nUsage:\n"
66
+ help_text += " /auto-memory # Show the current status\n"
67
+ help_text += " /auto-memory on # Enable automatic memory for all agents\n"
68
+ help_text += " /auto-memory off # Disable automatic memory for all agents\n"
69
+ help_text += "\nWith 'on' or 'off' the setting is applied to the current coder and\n"
70
+ help_text += "iterated through every sub-agent so the whole tree stays consistent.\n"
71
+
72
+ return help_text
73
+
74
+ @classmethod
75
+ def _show_status(cls, io, coder) -> None:
76
+ """Print the current auto-memory status for the coder and its sub-agents."""
77
+ state = "ON" if getattr(coder, "auto_memory", True) else "OFF"
78
+ io.tool_output(f"Auto memory is {state} for the current coder.")
79
+
80
+ sub_infos = cls._get_sub_agent_infos(coder)
81
+
82
+ if not sub_infos:
83
+ return
84
+
85
+ io.tool_output(f"Sub-agents ({len(sub_infos)}):")
86
+
87
+ for info in sub_infos:
88
+ sub_state = "ON" if getattr(info.coder, "auto_memory", True) else "OFF"
89
+ io.tool_output(f" {info.name} ({info.coder.uuid}): {sub_state}")
90
+
91
+ @classmethod
92
+ def _set_auto_memory(cls, coder, enabled: bool) -> list:
93
+ """Set auto_memory on *coder* and every tracked sub-agent coder.
94
+
95
+ Returns the list of sub-agent info objects whose coder was updated.
96
+ """
97
+ coder.auto_memory = enabled
98
+ updated = []
99
+
100
+ for info in cls._get_sub_agent_infos(coder):
101
+ try:
102
+ info.coder.auto_memory = enabled
103
+ updated.append(info)
104
+ except Exception:
105
+ continue
106
+
107
+ return updated
108
+
109
+ @classmethod
110
+ def _get_sub_agent_infos(cls, coder) -> list:
111
+ """Return all sub-agent info objects tracked by the coder's AgentService."""
112
+ try:
113
+ agent_service = AgentService.get_instance(coder)
114
+
115
+ return list(agent_service.sub_agents.values())
116
+ except Exception:
117
+ return []
@@ -16,7 +16,7 @@ class CodeCommand(BaseCommand):
16
16
  edit_format = coder.main_model.edit_format
17
17
  else:
18
18
  # Default to a reasonable edit format if main_model is not available
19
- edit_format = "wholefile"
19
+ edit_format = "whole"
20
20
  return await cls._generic_chat_command(io, coder, args, edit_format)
21
21
 
22
22
  @classmethod
@@ -15,7 +15,9 @@ class CopyCommand(BaseCommand):
15
15
  @classmethod
16
16
  async def execute(cls, io, coder, args, **kwargs):
17
17
  # Get all messages from ConversationManager
18
- all_messages = ConversationService.get_manager(coder).get_messages_dict()
18
+ manager = ConversationService.get_manager(coder)
19
+ manager.flush_queue()
20
+ all_messages = manager.get_messages_dict()
19
21
  assistant_messages = [msg for msg in reversed(all_messages) if msg["role"] == "assistant"]
20
22
 
21
23
  if not assistant_messages:
@@ -16,6 +16,7 @@ class CopyContextCommand(BaseCommand):
16
16
  async def execute(cls, io, coder, args, **kwargs):
17
17
  """Execute the copy-context command with given parameters."""
18
18
  manager = ConversationService.get_manager(coder)
19
+ manager.flush_queue()
19
20
 
20
21
  markdown = ""
21
22
 
@@ -17,6 +17,8 @@ class HelpCommand(BaseCommand):
17
17
  await cls._basic_help(io, coder)
18
18
  return format_command_result(io, "help", "Displayed basic help")
19
19
 
20
+ from uuid import uuid4 as generate_unique_id
21
+
20
22
  from cecli.coders.base_coder import Coder
21
23
  from cecli.help import Help, install_help_extra
22
24
 
@@ -34,15 +36,18 @@ class HelpCommand(BaseCommand):
34
36
  from cecli.commands import Commands
35
37
 
36
38
  commands_instance = Commands(io, coder)
37
- commands_instance.help = Help()
39
+ commands_instance.help = Help(coder=coder)
38
40
 
39
41
  help_instance = commands_instance.help
40
42
 
41
43
  # Use the editor_model from the main_model if it exists, otherwise use the main_model itself
42
44
  editor_model = coder.main_model.editor_model or coder.main_model
43
45
 
46
+ original_coder = coder
47
+
44
48
  kwargs = dict()
45
49
  kwargs["io"] = io
50
+ kwargs["uuid"] = str(generate_unique_id())
46
51
  kwargs["from_coder"] = coder
47
52
  kwargs["edit_format"] = "help"
48
53
  kwargs["summarize_from_coder"] = False
@@ -76,7 +81,7 @@ class HelpCommand(BaseCommand):
76
81
  raise SwitchCoderSignal(
77
82
  edit_format=coder.edit_format,
78
83
  summarize_from_coder=False,
79
- from_coder=help_coder,
84
+ from_coder=original_coder,
80
85
  map_tokens=map_tokens,
81
86
  map_mul_no_files=map_mul_no_files,
82
87
  show_announcements=False,