cecli-dev 1.0.3rc1__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.3rc1 → cecli_dev-1.0.4}/.github/workflows/pages.yml +15 -20
  2. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/.gitignore +4 -1
  3. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/CONTRIBUTING.md +20 -14
  4. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/PKG-INFO +1 -1
  5. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/_version.py +3 -3
  6. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/agent_coder.py +9 -5
  7. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/base_coder.py +48 -6
  8. {cecli_dev-1.0.3rc1 → 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.3rc1 → cecli_dev-1.0.4}/cecli/commands/code.py +1 -1
  11. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/copy.py +3 -1
  12. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/copy_context.py +1 -0
  13. {cecli_dev-1.0.3rc1 → 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.3rc1 → cecli_dev-1.0.4}/cecli/help.py +59 -21
  17. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/agents/defaults/memorizer.md +3 -0
  18. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/agents/service.py +10 -0
  19. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/background_commands.py +66 -56
  20. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/io_proxy.py +7 -0
  21. cecli_dev-1.0.4/cecli/helpers/memory_control.py +99 -0
  22. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/observations/service.py +6 -1
  23. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/orchestration/environment.py +27 -107
  24. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/queues.py +48 -1
  25. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/requests.py +27 -0
  26. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/hooks/helpers.py +4 -0
  27. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/llm.py +25 -0
  28. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/mcp/manager.py +13 -1
  29. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/agent.yml +5 -6
  30. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/subagent.yml +5 -6
  31. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/sessions.py +3 -0
  32. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/_yield.py +6 -1
  33. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/command.py +65 -31
  34. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/edit_file.py +32 -34
  35. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/orchestrate.py +4 -7
  36. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/read_file.py +29 -30
  37. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tui/__init__.py +22 -0
  38. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tui/app.py +25 -11
  39. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tui/io.py +63 -60
  40. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tui/widgets/input_area.py +19 -0
  41. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tui/worker.py +2 -0
  42. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/utils.py +1 -1
  43. cecli_dev-1.0.4/cecli/website/_includes/install.md +4 -0
  44. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/_includes/model-warnings.md +2 -2
  45. cecli_dev-1.0.4/cecli/website/_includes/works-best.md +1 -0
  46. cecli_dev-1.0.4/cecli/website/docmd.config.json +329 -0
  47. cecli_dev-1.0.4/cecli/website/docs/cecli-temp-logo-favicon.svg +37 -0
  48. cecli_dev-1.0.4/cecli/website/docs/config/adv-model-settings.md +123 -0
  49. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/config/agent-mode.md +3 -4
  50. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/config/api-keys.md +7 -22
  51. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/config/api.md +144 -90
  52. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/config/conf.md +5 -18
  53. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/config/dotenv.md +6 -20
  54. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/config/editor.md +3 -5
  55. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/config/hooks.md +5 -12
  56. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/config/mcp.md +5 -10
  57. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/config/model-aliases.md +11 -47
  58. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/config/model-configuration.md +8 -6
  59. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/config/model-providers.md +1 -1
  60. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/config/options.md +127 -375
  61. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/config/persistent-memory.md +4 -4
  62. cecli_dev-1.0.4/cecli/website/docs/config/reasoning.md +62 -0
  63. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/config/retries.md +6 -4
  64. cecli_dev-1.0.4/cecli/website/docs/config/skills.md +130 -0
  65. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/config/subagents.md +6 -6
  66. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/config/tui.md +13 -12
  67. cecli_dev-1.0.4/cecli/website/docs/config.md +58 -0
  68. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/git.md +8 -20
  69. cecli_dev-1.0.4/cecli/website/docs/index.md +55 -0
  70. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/install/docker.md +3 -11
  71. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/install.md +7 -19
  72. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/languages.md +6 -43
  73. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/legal/contributor-agreement.md +3 -15
  74. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/legal/privacy.md +3 -19
  75. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/llms/anthropic.md +8 -20
  76. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/llms/azure.md +6 -5
  77. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/llms/bedrock.md +10 -27
  78. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/llms/cohere.md +4 -5
  79. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/llms/deepseek.md +4 -5
  80. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/llms/gemini.md +3 -2
  81. cecli_dev-1.0.4/cecli/website/docs/llms/github.md +22 -0
  82. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/llms/groq.md +4 -7
  83. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/llms/lm-studio.md +5 -5
  84. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/llms/ollama.md +9 -21
  85. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/llms/openai-compat.md +5 -5
  86. cecli_dev-1.0.4/cecli/website/docs/llms/openai.md +48 -0
  87. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/llms/openrouter.md +9 -19
  88. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/llms/other.md +5 -30
  89. cecli_dev-1.0.4/cecli/website/docs/llms/vertex.md +44 -0
  90. cecli_dev-1.0.4/cecli/website/docs/llms/warnings.md +71 -0
  91. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/llms/xai.md +4 -8
  92. cecli_dev-1.0.4/cecli/website/docs/llms.md +30 -0
  93. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/more/analytics.md +15 -41
  94. cecli_dev-1.0.4/cecli/website/docs/more/edit-formats.md +86 -0
  95. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/more/infinite-output.md +5 -42
  96. cecli_dev-1.0.4/cecli/website/docs/more-info.md +18 -0
  97. cecli_dev-1.0.4/cecli/website/docs/repomap.md +69 -0
  98. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/scripting.md +5 -13
  99. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/troubleshooting/cecli-not-found.md +2 -6
  100. cecli_dev-1.0.4/cecli/website/docs/troubleshooting/edit-errors.md +77 -0
  101. cecli_dev-1.0.4/cecli/website/docs/troubleshooting/imports.md +38 -0
  102. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/troubleshooting/models-and-keys.md +7 -17
  103. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/troubleshooting/support.md +34 -24
  104. cecli_dev-1.0.4/cecli/website/docs/troubleshooting/token-limits.md +94 -0
  105. cecli_dev-1.0.4/cecli/website/docs/troubleshooting/warnings.md +101 -0
  106. cecli_dev-1.0.4/cecli/website/docs/troubleshooting.md +14 -0
  107. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/usage/commands.md +26 -29
  108. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/usage/conventions.md +7 -14
  109. cecli_dev-1.0.4/cecli/website/docs/usage/copypaste.md +83 -0
  110. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/usage/images-urls.md +3 -7
  111. cecli_dev-1.0.4/cecli/website/docs/usage/lint-test.md +86 -0
  112. cecli_dev-1.0.4/cecli/website/docs/usage/modes.md +188 -0
  113. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/usage/not-code.md +1 -23
  114. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/usage/notifications.md +4 -7
  115. cecli_dev-1.0.4/cecli/website/docs/usage/optional.md +68 -0
  116. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/usage/sessions.md +2 -2
  117. cecli_dev-1.0.4/cecli/website/docs/usage/tips.md +80 -0
  118. cecli_dev-1.0.4/cecli/website/docs/usage/voice.md +58 -0
  119. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/usage/watch.md +23 -90
  120. cecli_dev-1.0.4/cecli/website/docs/usage.md +70 -0
  121. cecli_dev-1.0.4/cecli/website/package-lock.json +1650 -0
  122. cecli_dev-1.0.4/cecli/website/package.json +16 -0
  123. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli_dev.egg-info/PKG-INFO +1 -1
  124. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli_dev.egg-info/SOURCES.txt +13 -4
  125. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli_dev.egg-info/scm_file_list.json +14 -5
  126. cecli_dev-1.0.4/cecli_dev.egg-info/scm_version.json +8 -0
  127. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/pytest.ini +5 -4
  128. cecli_dev-1.0.4/scripts/docmd_build.sh +55 -0
  129. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_sendchat.py +30 -0
  130. cecli_dev-1.0.4/tests/commands/test_auto_memory.py +162 -0
  131. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/commands/test_compaction.py +10 -6
  132. cecli_dev-1.0.4/tests/commands/test_remove_memory.py +108 -0
  133. cecli_dev-1.0.4/tests/commands/test_search_memory.py +88 -0
  134. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/commands/test_switch_agent.py +8 -2
  135. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/helpers/observations/test_observation_service.py +47 -0
  136. cecli_dev-1.0.4/tests/helpers/test_memory_control.py +235 -0
  137. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/helpers/test_orchestration.py +10 -10
  138. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/integration/test_mcp_management.py +6 -6
  139. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/mcp/test_manager.py +26 -0
  140. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/subagents/test_finished.py +3 -0
  141. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/tui/test_app.py +7 -3
  142. cecli_dev-1.0.3rc1/cecli/website/Gemfile +0 -8
  143. cecli_dev-1.0.3rc1/cecli/website/_includes/install.md +0 -4
  144. cecli_dev-1.0.3rc1/cecli/website/_includes/works-best.md +0 -1
  145. cecli_dev-1.0.3rc1/cecli/website/docs/config/adv-model-settings.md +0 -2498
  146. cecli_dev-1.0.3rc1/cecli/website/docs/config/reasoning.md +0 -210
  147. cecli_dev-1.0.3rc1/cecli/website/docs/config/skills.md +0 -285
  148. cecli_dev-1.0.3rc1/cecli/website/docs/config.md +0 -78
  149. cecli_dev-1.0.3rc1/cecli/website/docs/index.md +0 -47
  150. cecli_dev-1.0.3rc1/cecli/website/docs/llms/github.md +0 -111
  151. cecli_dev-1.0.3rc1/cecli/website/docs/llms/openai.md +0 -58
  152. cecli_dev-1.0.3rc1/cecli/website/docs/llms/vertex.md +0 -50
  153. cecli_dev-1.0.3rc1/cecli/website/docs/llms/warnings.md +0 -10
  154. cecli_dev-1.0.3rc1/cecli/website/docs/llms.md +0 -43
  155. cecli_dev-1.0.3rc1/cecli/website/docs/more/edit-formats.md +0 -116
  156. cecli_dev-1.0.3rc1/cecli/website/docs/more-info.md +0 -8
  157. cecli_dev-1.0.3rc1/cecli/website/docs/repomap.md +0 -112
  158. cecli_dev-1.0.3rc1/cecli/website/docs/troubleshooting/edit-errors.md +0 -76
  159. cecli_dev-1.0.3rc1/cecli/website/docs/troubleshooting/imports.md +0 -58
  160. cecli_dev-1.0.3rc1/cecli/website/docs/troubleshooting/token-limits.md +0 -96
  161. cecli_dev-1.0.3rc1/cecli/website/docs/troubleshooting/warnings.md +0 -12
  162. cecli_dev-1.0.3rc1/cecli/website/docs/troubleshooting.md +0 -11
  163. cecli_dev-1.0.3rc1/cecli/website/docs/usage/copypaste.md +0 -136
  164. cecli_dev-1.0.3rc1/cecli/website/docs/usage/lint-test.md +0 -118
  165. cecli_dev-1.0.3rc1/cecli/website/docs/usage/modes.md +0 -211
  166. cecli_dev-1.0.3rc1/cecli/website/docs/usage/optional.md +0 -100
  167. cecli_dev-1.0.3rc1/cecli/website/docs/usage/tips.md +0 -79
  168. cecli_dev-1.0.3rc1/cecli/website/docs/usage/voice.md +0 -121
  169. cecli_dev-1.0.3rc1/cecli/website/docs/usage.md +0 -102
  170. cecli_dev-1.0.3rc1/cecli_dev.egg-info/scm_version.json +0 -8
  171. cecli_dev-1.0.3rc1/scripts/Dockerfile.jekyll +0 -20
  172. cecli_dev-1.0.3rc1/scripts/jekyll_build.sh +0 -4
  173. cecli_dev-1.0.3rc1/scripts/jekyll_run.sh +0 -16
  174. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/.dockerignore +0 -0
  175. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/.flake8 +0 -0
  176. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/.gitattributes +0 -0
  177. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  178. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/.github/workflows/check_pypi_version.yml +0 -0
  179. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/.github/workflows/docker-build-test.yml +0 -0
  180. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/.github/workflows/docker-release.yml +0 -0
  181. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/.github/workflows/issues.yml +0 -0
  182. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/.github/workflows/pre-commit.yml +0 -0
  183. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/.github/workflows/release.yml +0 -0
  184. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/.github/workflows/ubuntu-tests.yml +0 -0
  185. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/.github/workflows/windows-tests.yml +0 -0
  186. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/.github/workflows/windows_check_pypi_version.yml +0 -0
  187. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/.pre-commit-config.yaml +0 -0
  188. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/CHANGELOG.md +0 -0
  189. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/CNAME +0 -0
  190. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/HISTORY.md +0 -0
  191. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/LICENSE.txt +0 -0
  192. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/MANIFEST.in +0 -0
  193. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/README.md +0 -0
  194. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/Dockerfile +0 -0
  195. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/README.md +0 -0
  196. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/__init__.py +0 -0
  197. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/benchmark.py +0 -0
  198. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/benchmark_classic.py +0 -0
  199. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/clone-exercism.sh +0 -0
  200. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/cpp-test.sh +0 -0
  201. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/docker.sh +0 -0
  202. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/docker_build.sh +0 -0
  203. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/install-docker-ubuntu.sh +0 -0
  204. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/npm-test.sh +0 -0
  205. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/over_time.py +0 -0
  206. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/plot.sh +0 -0
  207. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/plots.py +0 -0
  208. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/problem_stats.py +0 -0
  209. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/prompts.py +0 -0
  210. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/refactor_tools.py +0 -0
  211. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/rsync.sh +0 -0
  212. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/rungrid.py +0 -0
  213. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/swe-bench-lite.txt +0 -0
  214. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/swe-bench.txt +0 -0
  215. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/swe_bench.py +0 -0
  216. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/test_benchmark.py +0 -0
  217. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/variations.1.sh +0 -0
  218. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/variations.2.sh +0 -0
  219. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/variations.3.sh +0 -0
  220. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/benchmark/variations.4.sh +0 -0
  221. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/__init__.py +0 -0
  222. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/__main__.py +0 -0
  223. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/args.py +0 -0
  224. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/args_formatter.py +0 -0
  225. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/change_tracker.py +0 -0
  226. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/__init__.py +0 -0
  227. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/architect_coder.py +0 -0
  228. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/ask_coder.py +0 -0
  229. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/chat_chunks.py +0 -0
  230. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/context_coder.py +0 -0
  231. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/copypaste_coder.py +0 -0
  232. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/editblock_coder.py +0 -0
  233. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/editblock_fenced_coder.py +0 -0
  234. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/editblock_func_coder.py +0 -0
  235. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  236. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/editor_editblock_coder.py +0 -0
  237. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/editor_whole_coder.py +0 -0
  238. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/hashline_coder.py +0 -0
  239. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/help_coder.py +0 -0
  240. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/patch_coder.py +0 -0
  241. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/search_replace.py +0 -0
  242. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/shell.py +0 -0
  243. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/single_wholefile_func_coder.py +0 -0
  244. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/sub_agent_coder.py +0 -0
  245. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/udiff_coder.py +0 -0
  246. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/udiff_simple.py +0 -0
  247. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/wholefile_coder.py +0 -0
  248. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/coders/wholefile_func_coder.py +0 -0
  249. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/add.py +0 -0
  250. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/agent.py +0 -0
  251. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/agent_model.py +0 -0
  252. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/agent_tree.py +0 -0
  253. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/architect.py +0 -0
  254. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/ask.py +0 -0
  255. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/chat_mode.py +0 -0
  256. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/clear.py +0 -0
  257. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/command_prefix.py +0 -0
  258. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/commit.py +0 -0
  259. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/compact.py +0 -0
  260. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/context.py +0 -0
  261. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/context_blocks.py +0 -0
  262. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/context_management.py +0 -0
  263. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/core.py +0 -0
  264. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/diff.py +0 -0
  265. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/drop.py +0 -0
  266. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/editor.py +0 -0
  267. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/editor_model.py +0 -0
  268. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/exclude_skill.py +0 -0
  269. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/exit.py +0 -0
  270. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/git.py +0 -0
  271. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/hashline.py +0 -0
  272. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/history_search.py +0 -0
  273. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/hooks.py +0 -0
  274. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/hot_reload.py +0 -0
  275. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/include_skill.py +0 -0
  276. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/lint.py +0 -0
  277. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/list_mcp.py +0 -0
  278. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/list_sessions.py +0 -0
  279. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/list_skills.py +0 -0
  280. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/load.py +0 -0
  281. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/load_hook.py +0 -0
  282. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/load_mcp.py +0 -0
  283. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/load_session.py +0 -0
  284. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/load_skill.py +0 -0
  285. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/ls.py +0 -0
  286. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/map.py +0 -0
  287. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/map_refresh.py +0 -0
  288. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/merge.py +0 -0
  289. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/model.py +0 -0
  290. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/models.py +0 -0
  291. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/multiline_mode.py +0 -0
  292. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/paste.py +0 -0
  293. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/quit.py +0 -0
  294. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/read_only.py +0 -0
  295. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/read_only_stub.py +0 -0
  296. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/reap_agent.py +0 -0
  297. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/reasoning_effort.py +0 -0
  298. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/remove_hook.py +0 -0
  299. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/remove_mcp.py +0 -0
  300. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/remove_skill.py +0 -0
  301. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/report.py +0 -0
  302. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/reset.py +0 -0
  303. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/rules.py +0 -0
  304. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/run.py +0 -0
  305. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/save.py +0 -0
  306. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/save_session.py +0 -0
  307. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/settings.py +0 -0
  308. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/spawn_agent.py +0 -0
  309. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/switch_agent.py +0 -0
  310. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/terminal_data/linux.keytab +0 -0
  311. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/terminal_setup.py +0 -0
  312. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/test.py +0 -0
  313. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/think_tokens.py +0 -0
  314. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/tokens.py +0 -0
  315. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/undo.py +0 -0
  316. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/utils/__init__.py +0 -0
  317. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/utils/base_command.py +0 -0
  318. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/utils/helpers.py +0 -0
  319. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/utils/registry.py +0 -0
  320. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/utils/save_load_manager.py +0 -0
  321. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/voice.py +0 -0
  322. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/weak_model.py +0 -0
  323. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/web.py +0 -0
  324. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/commands/workspace.py +0 -0
  325. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/decoding.py +0 -0
  326. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/deprecated_args.py +0 -0
  327. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/diffs.py +0 -0
  328. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/dump.py +0 -0
  329. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/editor.py +0 -0
  330. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/exceptions.py +0 -0
  331. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/format_settings.py +0 -0
  332. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/help_pats.py +0 -0
  333. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/__init__.py +0 -0
  334. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/agents/__init__.py +0 -0
  335. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/agents/config.py +0 -0
  336. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/agents/defaults/__init__.py +0 -0
  337. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/agents/defaults/worker.md +0 -0
  338. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/command_parser.py +0 -0
  339. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/config_utils.py +0 -0
  340. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/conversation/__init__.py +0 -0
  341. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/conversation/base_message.py +0 -0
  342. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/conversation/files.py +0 -0
  343. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/conversation/integration.py +0 -0
  344. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/conversation/manager.py +0 -0
  345. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/conversation/service.py +0 -0
  346. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/conversation/tags.py +0 -0
  347. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/conversation/utils.py +0 -0
  348. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/copypaste.py +0 -0
  349. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/coroutines.py +0 -0
  350. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/crypto.py +0 -0
  351. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/file_searcher.py +0 -0
  352. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/file_system/__init__.py +0 -0
  353. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/file_system/builders.py +0 -0
  354. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/file_system/ignore.py +0 -0
  355. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/file_system/ngram_index.py +0 -0
  356. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/file_system/service.py +0 -0
  357. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/file_system/trie_index.py +0 -0
  358. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/grep_ast/__init__.py +0 -0
  359. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/grep_ast/dump.py +0 -0
  360. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/grep_ast/grep_ast.py +0 -0
  361. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/grep_ast/main.py +0 -0
  362. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/grep_ast/parsers.py +0 -0
  363. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/grep_ast/tsl.py +0 -0
  364. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/hashline.py +0 -0
  365. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/hashpos/__init__.py +0 -0
  366. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/hashpos/hashpos.py +0 -0
  367. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/hashpos/hashpos.v1.bak +0 -0
  368. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/hashpos/transformations.py +0 -0
  369. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/leak_detect.py +0 -0
  370. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/lock_detect.py +0 -0
  371. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/memory/__init__.py +0 -0
  372. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/memory/db.py +0 -0
  373. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/memory/utils.py +0 -0
  374. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/model_providers.py +0 -0
  375. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/monorepo/__init__.py +0 -0
  376. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/monorepo/config.py +0 -0
  377. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/monorepo/local_workspace.py +0 -0
  378. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/monorepo/project.py +0 -0
  379. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/monorepo/workspace.py +0 -0
  380. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/monorepo/worktree.py +0 -0
  381. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/nested.py +0 -0
  382. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/observations/__init__.py +0 -0
  383. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/orchestration/__init__.py +0 -0
  384. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/orchestration/agent_proxy.py +0 -0
  385. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/orchestration/region_resolver.py +0 -0
  386. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/orchestration/safe_methods.py +0 -0
  387. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/orchestration/security.py +0 -0
  388. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/orchestration/service.py +0 -0
  389. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/orchestration/tool_proxy.py +0 -0
  390. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/plugin_manager.py +0 -0
  391. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/profiler.py +0 -0
  392. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/responses.py +0 -0
  393. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/server/__init__.py +0 -0
  394. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/server/acp/__init__.py +0 -0
  395. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/server/acp/bridge.py +0 -0
  396. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/server/acp/models.py +0 -0
  397. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/server/acp/protocol.py +0 -0
  398. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/server/signals.py +0 -0
  399. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/server/ws_server.py +0 -0
  400. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/similarity.py +0 -0
  401. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/skills.py +0 -0
  402. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/helpers/threading.py +0 -0
  403. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/history.py +0 -0
  404. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/hooks/__init__.py +0 -0
  405. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/hooks/base.py +0 -0
  406. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/hooks/integration.py +0 -0
  407. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/hooks/manager.py +0 -0
  408. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/hooks/registry.py +0 -0
  409. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/hooks/service.py +0 -0
  410. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/hooks/types.py +0 -0
  411. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/interruptible_input.py +0 -0
  412. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/io.py +0 -0
  413. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/linter.py +0 -0
  414. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/main.py +0 -0
  415. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/mcp/__init__.py +0 -0
  416. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/mcp/oauth.py +0 -0
  417. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/mcp/server.py +0 -0
  418. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/mcp/utils.py +0 -0
  419. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/mdstream.py +0 -0
  420. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/models.py +0 -0
  421. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/onboarding.py +0 -0
  422. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/__init__.py +0 -0
  423. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/architect.yml +0 -0
  424. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/ask.yml +0 -0
  425. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/base.yml +0 -0
  426. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/context.yml +0 -0
  427. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/copypaste.yml +0 -0
  428. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/editblock.yml +0 -0
  429. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/editblock_fenced.yml +0 -0
  430. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/editblock_func.yml +0 -0
  431. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/editor_diff_fenced.yml +0 -0
  432. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/editor_editblock.yml +0 -0
  433. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/editor_whole.yml +0 -0
  434. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/hashline.yml +0 -0
  435. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/help.yml +0 -0
  436. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/patch.yml +0 -0
  437. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/single_wholefile_func.yml +0 -0
  438. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/udiff.yml +0 -0
  439. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/udiff_simple.yml +0 -0
  440. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/utils/__init__.py +0 -0
  441. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/utils/registry.py +0 -0
  442. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/utils/system.py +0 -0
  443. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/wholefile.yml +0 -0
  444. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/prompts/wholefile_func.yml +0 -0
  445. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  446. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  447. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
  448. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  449. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  450. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  451. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  452. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  453. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  454. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  455. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  456. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  457. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  458. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  459. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  460. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  461. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  462. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  463. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  464. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  465. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  466. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  467. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  468. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  469. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  470. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  471. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  472. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  473. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  474. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  475. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  476. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  477. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/README.md +0 -0
  478. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
  479. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  480. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  481. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  482. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  483. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  484. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  485. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  486. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  487. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  488. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  489. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  490. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  491. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  492. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  493. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  494. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  495. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  496. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  497. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  498. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  499. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  500. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  501. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  502. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  503. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  504. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  505. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/reasoning_tags.py +0 -0
  506. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/repo.py +0 -0
  507. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/repomap.py +0 -0
  508. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/report.py +0 -0
  509. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/resources/__init__.py +0 -0
  510. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/resources/model-metadata.json +0 -0
  511. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/resources/model-settings.yml +0 -0
  512. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/resources/providers.json +0 -0
  513. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/run_cmd.py +0 -0
  514. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/scrape.py +0 -0
  515. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/sendchat.py +0 -0
  516. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/signals.py +0 -0
  517. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/special.py +0 -0
  518. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/__init__.py +0 -0
  519. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/delegate.py +0 -0
  520. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/explore_code.py +0 -0
  521. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/git_branch.py +0 -0
  522. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/git_diff.py +0 -0
  523. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/git_log.py +0 -0
  524. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/git_remote.py +0 -0
  525. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/git_show.py +0 -0
  526. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/git_status.py +0 -0
  527. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/grep.py +0 -0
  528. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/ls.py +0 -0
  529. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/replace_facts.py +0 -0
  530. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/resource_manager.py +0 -0
  531. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/search_facts.py +0 -0
  532. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/thinking.py +0 -0
  533. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/undo_change.py +0 -0
  534. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/update_todo_list.py +0 -0
  535. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/utils/__init__.py +0 -0
  536. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/utils/base_tool.py +0 -0
  537. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/utils/helpers.py +0 -0
  538. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/utils/output.py +0 -0
  539. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/utils/registry.py +0 -0
  540. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/utils/responses.py +0 -0
  541. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/validations/__init__.py +0 -0
  542. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tools/validations/validations.py +0 -0
  543. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tui/styles.tcss +0 -0
  544. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tui/widgets/__init__.py +0 -0
  545. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tui/widgets/completion_bar.py +0 -0
  546. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tui/widgets/file_list.py +0 -0
  547. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tui/widgets/footer.py +0 -0
  548. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tui/widgets/input_container.py +0 -0
  549. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tui/widgets/key_hints.py +0 -0
  550. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tui/widgets/output.py +0 -0
  551. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tui/widgets/output_alt.bak +0 -0
  552. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tui/widgets/selectable_log.py +0 -0
  553. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tui/widgets/status_bar.py +0 -0
  554. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/tui/widgets/subagent_pills.py +0 -0
  555. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/urls.py +0 -0
  556. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/versioncheck.py +0 -0
  557. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/voice.py +0 -0
  558. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/waiting.py +0 -0
  559. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/watch.py +0 -0
  560. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/watch_prompts.py +0 -0
  561. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/_includes/blame.md +0 -0
  562. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/_includes/get-started.md +0 -0
  563. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/_includes/help-tip.md +0 -0
  564. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/_includes/help.md +0 -0
  565. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/_includes/keys.md +0 -0
  566. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/_includes/multi-line.md +0 -0
  567. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/_includes/python-m-aider.md +0 -0
  568. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/_includes/recording.css +0 -0
  569. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/_includes/recording.md +0 -0
  570. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/_sass/_features.scss +0 -0
  571. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/_sass/_footer.scss +0 -0
  572. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/_sass/_hero.scss +0 -0
  573. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/_sass/_info.scss +0 -0
  574. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/_sass/_layout.scss +0 -0
  575. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/_sass/_reset.scss +0 -0
  576. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/_sass/_testimonials.scss +0 -0
  577. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/_sass/_typography.scss +0 -0
  578. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/_sass/_variables.scss +0 -0
  579. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/_sass/custom/custom.scss +0 -0
  580. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/_sass/global-overrides.scss +0 -0
  581. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/config/custom-commands.md +0 -0
  582. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  583. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/config/security.md +0 -0
  584. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/docs/config/workspaces.md +0 -0
  585. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli/website/share/index.md +0 -0
  586. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli_dev.egg-info/dependency_links.txt +0 -0
  587. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli_dev.egg-info/entry_points.txt +0 -0
  588. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli_dev.egg-info/requires.txt +0 -0
  589. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/cecli_dev.egg-info/top_level.txt +0 -0
  590. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/docker/Dockerfile +0 -0
  591. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  592. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/pyproject.toml +0 -0
  593. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/requirements/common-constraints.txt +0 -0
  594. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/requirements/requirements-dev.in +0 -0
  595. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/requirements/requirements-dev.txt +0 -0
  596. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/requirements/requirements-help.in +0 -0
  597. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/requirements/requirements-help.txt +0 -0
  598. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/requirements/requirements-playwright.in +0 -0
  599. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/requirements/requirements-playwright.txt +0 -0
  600. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/requirements/requirements.in +0 -0
  601. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/requirements/tree-sitter.in +0 -0
  602. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/requirements.txt +0 -0
  603. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/30k-image.py +0 -0
  604. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/__init__.py +0 -0
  605. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/blame.py +0 -0
  606. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/clean_metadata.py +0 -0
  607. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/compare-message-history.py +0 -0
  608. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/cost_analyzer.py +0 -0
  609. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/cost_calculator.py +0 -0
  610. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/dl_icons.py +0 -0
  611. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/filter-chat-mode.js +0 -0
  612. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/generate_providers.py +0 -0
  613. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/get_contributor_list.js +0 -0
  614. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/get_hashline.py +0 -0
  615. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/history_prompts.py +0 -0
  616. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/homepage.py +0 -0
  617. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/issues.py +0 -0
  618. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/logo_svg.py +0 -0
  619. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/optimize_tokens.sh +0 -0
  620. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/pip-compile.sh +0 -0
  621. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/recording_audio.py +0 -0
  622. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/redact-cast.py +0 -0
  623. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/rename_to_cecli.py +0 -0
  624. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/tmux_record.sh +0 -0
  625. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/tsl_pack_langs.py +0 -0
  626. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/update-blame.sh +0 -0
  627. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/update-docs.sh +0 -0
  628. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/update-history.py +0 -0
  629. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/versionbump.py +0 -0
  630. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/scripts/yank-old-versions.py +0 -0
  631. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/setup.cfg +0 -0
  632. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/shim.pyproject.toml +0 -0
  633. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/__init__.py +0 -0
  634. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/__init__.py +0 -0
  635. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/conftest.py +0 -0
  636. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_aws_credentials.py +0 -0
  637. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_background_commands.py +0 -0
  638. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_coder.py +0 -0
  639. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_commands.py +0 -0
  640. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_custom_commands.py +0 -0
  641. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_deprecated.py +0 -0
  642. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_editblock.py +0 -0
  643. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_editor.py +0 -0
  644. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_exceptions.py +0 -0
  645. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_find_or_blocks.py +0 -0
  646. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_hashline.py +0 -0
  647. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_hashline_closure.py +0 -0
  648. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_history.py +0 -0
  649. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_io.py +0 -0
  650. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_linter.py +0 -0
  651. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_main.py +0 -0
  652. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_model_info_manager.py +0 -0
  653. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_model_provider_manager.py +0 -0
  654. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_models.py +0 -0
  655. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_onboarding.py +0 -0
  656. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_plugin_manager.py +0 -0
  657. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_prompts.py +0 -0
  658. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_reasoning.py +0 -0
  659. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_repo.py +0 -0
  660. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_repomap.py +0 -0
  661. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_run_cmd.py +0 -0
  662. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_sanity_check_repo.py +0 -0
  663. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_scripting.py +0 -0
  664. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_select_selector.py +0 -0
  665. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_session_args.py +0 -0
  666. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_session_crypto.py +0 -0
  667. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_sessions.py +0 -0
  668. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_sessions_manager.py +0 -0
  669. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_skills.py +0 -0
  670. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_special.py +0 -0
  671. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_spinner.py +0 -0
  672. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_ssl_verification.py +0 -0
  673. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_udiff.py +0 -0
  674. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_urls.py +0 -0
  675. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_voice.py +0 -0
  676. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_watch.py +0 -0
  677. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/basic/test_wholefile.py +0 -0
  678. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/coders/test_coder_switching.py +0 -0
  679. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/coders/test_copypaste_coder.py +0 -0
  680. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/conftest.py +0 -0
  681. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/conversations/test_conversation_integration.py +0 -0
  682. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/conversations/test_conversation_system.py +0 -0
  683. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  684. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/chat-history.md +0 -0
  685. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/arduino/test.ino +0 -0
  686. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/bash/test.sh +0 -0
  687. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/c/test.c +0 -0
  688. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/chatito/test.chatito +0 -0
  689. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/clojure/test.clj +0 -0
  690. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  691. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/cpp/test.cpp +0 -0
  692. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/csharp/test.cs +0 -0
  693. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/d/test.d +0 -0
  694. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/dart/test.dart +0 -0
  695. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/elisp/test.el +0 -0
  696. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/elixir/test.ex +0 -0
  697. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/elm/test.elm +0 -0
  698. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/gleam/test.gleam +0 -0
  699. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/go/test.go +0 -0
  700. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/haskell/test.hs +0 -0
  701. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/hcl/test.tf +0 -0
  702. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/java/test.java +0 -0
  703. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/javascript/test.js +0 -0
  704. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/kotlin/test.kt +0 -0
  705. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/lua/test.lua +0 -0
  706. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/matlab/test.m +0 -0
  707. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/ocaml/test.ml +0 -0
  708. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  709. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/php/test.php +0 -0
  710. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/pony/test.pony +0 -0
  711. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/properties/test.properties +0 -0
  712. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/python/test.py +0 -0
  713. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/ql/test.ql +0 -0
  714. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/r/test.r +0 -0
  715. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/racket/test.rkt +0 -0
  716. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/ruby/test.rb +0 -0
  717. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/rust/test.rs +0 -0
  718. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/scala/test.scala +0 -0
  719. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/solidity/test.sol +0 -0
  720. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/swift/test.swift +0 -0
  721. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/tsx/test.tsx +0 -0
  722. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/typescript/test.ts +0 -0
  723. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/udev/test.rules +0 -0
  724. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/languages/zig/test.zig +0 -0
  725. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/sample-code-base/sample.js +0 -0
  726. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/sample-code-base/sample.py +0 -0
  727. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  728. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/watch.js +0 -0
  729. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/watch.lisp +0 -0
  730. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/watch.py +0 -0
  731. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/fixtures/watch_question.js +0 -0
  732. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/help/test_help.py +0 -0
  733. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/helpers/monorepo/LOCAL_WORKSPACE.md +0 -0
  734. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/helpers/monorepo/test_config.py +0 -0
  735. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/helpers/monorepo/test_config_active.py +0 -0
  736. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
  737. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/helpers/monorepo/test_local_workspace.py +0 -0
  738. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
  739. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/helpers/monorepo/test_workspace.py +0 -0
  740. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/helpers/server/acp/__init__.py +0 -0
  741. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/helpers/server/acp/test_bridge.py +0 -0
  742. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/helpers/server/acp/test_dispatch.py +0 -0
  743. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/helpers/server/acp/test_models.py +0 -0
  744. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/helpers/server/acp/test_protocol.py +0 -0
  745. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/hooks/__init__.py +0 -0
  746. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/hooks/test_base.py +0 -0
  747. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/hooks/test_manager.py +0 -0
  748. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/hooks/test_registry.py +0 -0
  749. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/integration/test_agent_mcp_management.py +0 -0
  750. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/integration/test_config_loading.py +0 -0
  751. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/mcp/__init__.py +0 -0
  752. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/mcp/conftest.py +0 -0
  753. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/mcp/mock_server.py +0 -0
  754. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/mcp/test_keepalive_concurrency.py +0 -0
  755. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/mcp/test_keepalive_config.py +0 -0
  756. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/mcp/test_keepalive_integration.py +0 -0
  757. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/mcp/test_keepalive_logging.py +0 -0
  758. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/mcp/test_keepalive_resilience.py +0 -0
  759. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/mcp/test_keepalive_unit.py +0 -0
  760. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/mcp/test_manager_retry.py +0 -0
  761. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/scrape/test_playwright_disable.py +0 -0
  762. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/scrape/test_scrape.py +0 -0
  763. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/subagents/__init__.py +0 -0
  764. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/subagents/conftest.py +0 -0
  765. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/subagents/test_commands.py +0 -0
  766. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/subagents/test_config.py +0 -0
  767. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/subagents/test_delegate.py +0 -0
  768. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/subagents/test_io_proxy.py +0 -0
  769. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/subagents/test_service.py +0 -0
  770. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/subagents/test_sub_agent_coder.py +0 -0
  771. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/test_requests.py +0 -0
  772. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/tools/test_extractions.py +0 -0
  773. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/tools/test_get_lines.py +0 -0
  774. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/tools/test_git_branch.py +0 -0
  775. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/tools/test_git_diff.py +0 -0
  776. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/tools/test_grep.py +0 -0
  777. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/tools/test_insert_block.py +0 -0
  778. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/tools/test_read_range_execute.py +0 -0
  779. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/tools/test_registry.py +0 -0
  780. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/tools/test_remove_mcp_tool.py +0 -0
  781. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/tools/test_tool_arguments.py +0 -0
  782. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/tools/test_tools_load_mcp_tool.py +0 -0
  783. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/tools/validations.py +0 -0
  784. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/unit/conftest.py +0 -0
  785. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/unit/test_deep_merge.py +0 -0
  786. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/unit/test_edge_cases.py +0 -0
  787. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/unit/test_load_mcp.py +0 -0
  788. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/unit/test_performance.py +0 -0
  789. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/unit/test_queues.py +0 -0
  790. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/unit/test_remove_mcp.py +0 -0
  791. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/unit/test_shallow_merge.py +0 -0
  792. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/unit/test_signals.py +0 -0
  793. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/unit/test_unit_load_mcp_tool.py +0 -0
  794. {cecli_dev-1.0.3rc1 → cecli_dev-1.0.4}/tests/unit/test_unit_remove_mcp_tool.py +0 -0
  795. {cecli_dev-1.0.3rc1 → 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.3rc1
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.3rc1'
22
- __version_tuple__ = version_tuple = (1, 0, 3, 'rc1')
21
+ __version__ = version = '1.0.4'
22
+ __version_tuple__ = version_tuple = (1, 0, 4)
23
23
 
24
- __commit_id__ = commit_id = 'gdbb496122'
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,
@@ -464,9 +468,13 @@ class Coder(metaclass=UsageMeta):
464
468
  self.abs_root_path_cache = {}
465
469
 
466
470
  self.auto_copy_context = auto_copy_context
467
- self.security_config = security_config or {}
468
471
  self.auto_accept_architect = auto_accept_architect
469
472
 
473
+ try:
474
+ self.security_config = json.loads(security_config)
475
+ except (json.JSONDecodeError, TypeError):
476
+ self.security_config = {}
477
+
470
478
  self.ignore_mentions = ignore_mentions
471
479
  if not self.ignore_mentions:
472
480
  self.ignore_mentions = set()
@@ -1793,6 +1801,8 @@ class Coder(metaclass=UsageMeta):
1793
1801
  self.run_one_completed = True
1794
1802
  self.compact_context_completed = True
1795
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))
1796
1806
 
1797
1807
  def copy_context(self):
1798
1808
  if self.auto_copy_context:
@@ -1876,6 +1886,8 @@ class Coder(metaclass=UsageMeta):
1876
1886
  ConversationService.get_chunks(self).flush_removals()
1877
1887
  self.last_user_message = user_message
1878
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))
1879
1891
  # Fire memorizer after each user request
1880
1892
  # if self.auto_memory and self.edit_format not in ["subagent"]:
1881
1893
  # from cecli.helpers.memory.utils import invoke_memorizer
@@ -2435,6 +2447,8 @@ class Coder(metaclass=UsageMeta):
2435
2447
  # Add chat and edit file messages
2436
2448
  ConversationService.get_chunks(self).add_chat_files_messages()
2437
2449
 
2450
+ ConversationService.get_manager(self).flush_queue()
2451
+
2438
2452
  # Return formatted messages for LLM
2439
2453
  return ConversationService.get_manager(self).get_messages_dict()
2440
2454
 
@@ -2563,12 +2577,14 @@ class Coder(metaclass=UsageMeta):
2563
2577
  self.format_chat_chunks()
2564
2578
 
2565
2579
  # Always add user message to conversation manager
2566
- ConversationService.get_manager(self).add_message(
2580
+ ConversationService.get_manager(self).queue_message(
2567
2581
  message_dict=dict(role="user", content=inp),
2568
2582
  tag=MessageTag.CUR,
2569
- hash_key=("user_message", inp, str(time.monotonic_ns())),
2570
- promotion=ConversationService.get_manager(self).DEFAULT_TAG_PROMOTION_VALUE,
2571
- 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
+ ),
2572
2588
  )
2573
2589
 
2574
2590
  ConversationService.get_manager(self).decrement_message_markers()
@@ -2761,6 +2777,7 @@ class Coder(metaclass=UsageMeta):
2761
2777
 
2762
2778
  await self.show_exhausted_error()
2763
2779
  self.num_exhausted_context_windows += 1
2780
+ self._release_response_buffers()
2764
2781
  return
2765
2782
  if self.partial_response_function_call:
2766
2783
  args = self.parse_partial_args()
@@ -2794,6 +2811,9 @@ class Coder(metaclass=UsageMeta):
2794
2811
  mark_for_demotion=1,
2795
2812
  )
2796
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()
2797
2817
  return
2798
2818
 
2799
2819
  edited = await self.apply_updates()
@@ -2879,6 +2899,11 @@ class Coder(metaclass=UsageMeta):
2879
2899
  self.reflected_message = test_errors
2880
2900
  return
2881
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
+
2882
2907
  def _extract_and_prepare_tool_calls(self, tool_call_response):
2883
2908
  """
2884
2909
  Unified extraction and preparation of tool calls.
@@ -3397,6 +3422,16 @@ class Coder(metaclass=UsageMeta):
3397
3422
  """Cleanup when the Coder object is destroyed."""
3398
3423
  self.ok_to_warm_cache = False
3399
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
+
3400
3435
  async def add_assistant_reply_to_cur_messages(self):
3401
3436
  """
3402
3437
  Add the assistant's reply to `cur_messages`.
@@ -3443,10 +3478,17 @@ class Coder(metaclass=UsageMeta):
3443
3478
  self.io.tool_warning("Execution stopped by end message hook")
3444
3479
  return
3445
3480
 
3481
+ if self.edit_format in ("agent", "subagent"):
3482
+ msg.pop("function_call", None)
3483
+
3446
3484
  ConversationService.get_manager(self).add_message(
3447
3485
  message_dict=msg,
3448
3486
  tag=MessageTag.CUR,
3449
- 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
+ ),
3450
3492
  # promotion=ConversationService.get_manager(self).DEFAULT_TAG_PROMOTION_VALUE,
3451
3493
  # mark_for_demotion=1,
3452
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,