cecli-dev 1.0.0rc1__tar.gz → 1.0.0rc2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (711) hide show
  1. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/PKG-INFO +1 -1
  2. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/_version.py +3 -3
  3. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/__init__.py +3 -1
  4. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/core.py +3 -43
  5. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/hot_reload.py +1 -1
  6. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/leak_detect.py +13 -0
  7. cecli_dev-1.0.0rc2/cecli/helpers/similarity.py +77 -0
  8. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/io.py +24 -16
  9. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/main.py +13 -13
  10. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/models.py +8 -5
  11. cecli_dev-1.0.0rc2/cecli/signals.py +49 -0
  12. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/utils.py +2 -1
  13. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/waiting.py +2 -2
  14. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli_dev.egg-info/PKG-INFO +1 -1
  15. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli_dev.egg-info/SOURCES.txt +1 -0
  16. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli_dev.egg-info/scm_file_list.json +1 -0
  17. cecli_dev-1.0.0rc2/cecli_dev.egg-info/scm_version.json +8 -0
  18. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_coder.py +1 -1
  19. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_main.py +1 -1
  20. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_model_provider_manager.py +0 -8
  21. cecli_dev-1.0.0rc1/cecli/helpers/similarity.py +0 -98
  22. cecli_dev-1.0.0rc1/cecli_dev.egg-info/scm_version.json +0 -8
  23. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.dockerignore +0 -0
  24. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.flake8 +0 -0
  25. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.gitattributes +0 -0
  26. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  27. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.github/workflows/check_pypi_version.yml +0 -0
  28. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.github/workflows/docker-build-test.yml +0 -0
  29. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.github/workflows/docker-release.yml +0 -0
  30. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.github/workflows/issues.yml +0 -0
  31. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.github/workflows/pages.yml +0 -0
  32. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.github/workflows/pre-commit.yml +0 -0
  33. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.github/workflows/release.yml +0 -0
  34. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.github/workflows/ubuntu-tests.yml +0 -0
  35. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.github/workflows/windows-tests.yml +0 -0
  36. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.github/workflows/windows_check_pypi_version.yml +0 -0
  37. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.gitignore +0 -0
  38. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/.pre-commit-config.yaml +0 -0
  39. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/CHANGELOG.md +0 -0
  40. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/CNAME +0 -0
  41. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/CONTRIBUTING.md +0 -0
  42. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/HISTORY.md +0 -0
  43. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/LICENSE.txt +0 -0
  44. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/MANIFEST.in +0 -0
  45. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/README.md +0 -0
  46. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/Dockerfile +0 -0
  47. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/README.md +0 -0
  48. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/__init__.py +0 -0
  49. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/benchmark.py +0 -0
  50. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/benchmark_classic.py +0 -0
  51. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/clone-exercism.sh +0 -0
  52. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/cpp-test.sh +0 -0
  53. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/docker.sh +0 -0
  54. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/docker_build.sh +0 -0
  55. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/install-docker-ubuntu.sh +0 -0
  56. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/npm-test.sh +0 -0
  57. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/over_time.py +0 -0
  58. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/plot.sh +0 -0
  59. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/plots.py +0 -0
  60. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/problem_stats.py +0 -0
  61. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/prompts.py +0 -0
  62. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/refactor_tools.py +0 -0
  63. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/rsync.sh +0 -0
  64. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/rungrid.py +0 -0
  65. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/swe-bench-lite.txt +0 -0
  66. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/swe-bench.txt +0 -0
  67. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/swe_bench.py +0 -0
  68. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/test_benchmark.py +0 -0
  69. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/variations.1.sh +0 -0
  70. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/variations.2.sh +0 -0
  71. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/variations.3.sh +0 -0
  72. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/benchmark/variations.4.sh +0 -0
  73. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/__init__.py +0 -0
  74. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/__main__.py +0 -0
  75. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/args.py +0 -0
  76. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/args_formatter.py +0 -0
  77. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/change_tracker.py +0 -0
  78. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/__init__.py +0 -0
  79. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/agent_coder.py +0 -0
  80. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/architect_coder.py +0 -0
  81. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/ask_coder.py +0 -0
  82. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/base_coder.py +0 -0
  83. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/chat_chunks.py +0 -0
  84. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/context_coder.py +0 -0
  85. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/copypaste_coder.py +0 -0
  86. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/editblock_coder.py +0 -0
  87. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/editblock_fenced_coder.py +0 -0
  88. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/editblock_func_coder.py +0 -0
  89. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  90. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/editor_editblock_coder.py +0 -0
  91. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/editor_whole_coder.py +0 -0
  92. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/hashline_coder.py +0 -0
  93. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/help_coder.py +0 -0
  94. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/patch_coder.py +0 -0
  95. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/search_replace.py +0 -0
  96. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/shell.py +0 -0
  97. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/single_wholefile_func_coder.py +0 -0
  98. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/sub_agent_coder.py +0 -0
  99. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/udiff_coder.py +0 -0
  100. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/udiff_simple.py +0 -0
  101. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/wholefile_coder.py +0 -0
  102. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/coders/wholefile_func_coder.py +0 -0
  103. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/add.py +0 -0
  104. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/agent.py +0 -0
  105. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/agent_model.py +0 -0
  106. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/architect.py +0 -0
  107. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/ask.py +0 -0
  108. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/chat_mode.py +0 -0
  109. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/clear.py +0 -0
  110. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/code.py +0 -0
  111. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/command_prefix.py +0 -0
  112. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/commit.py +0 -0
  113. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/compact.py +0 -0
  114. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/context.py +0 -0
  115. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/context_blocks.py +0 -0
  116. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/context_management.py +0 -0
  117. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/copy.py +0 -0
  118. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/copy_context.py +0 -0
  119. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/diff.py +0 -0
  120. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/drop.py +0 -0
  121. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/editor.py +0 -0
  122. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/editor_model.py +0 -0
  123. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/exclude_skill.py +0 -0
  124. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/exit.py +0 -0
  125. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/git.py +0 -0
  126. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/hashline.py +0 -0
  127. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/help.py +0 -0
  128. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/history_search.py +0 -0
  129. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/hooks.py +0 -0
  130. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/include_skill.py +0 -0
  131. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/lint.py +0 -0
  132. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/list_mcp.py +0 -0
  133. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/list_sessions.py +0 -0
  134. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/list_skills.py +0 -0
  135. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/load.py +0 -0
  136. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/load_hook.py +0 -0
  137. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/load_mcp.py +0 -0
  138. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/load_session.py +0 -0
  139. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/load_skill.py +0 -0
  140. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/ls.py +0 -0
  141. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/map.py +0 -0
  142. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/map_refresh.py +0 -0
  143. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/merge.py +0 -0
  144. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/model.py +0 -0
  145. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/models.py +0 -0
  146. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/multiline_mode.py +0 -0
  147. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/paste.py +0 -0
  148. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/quit.py +0 -0
  149. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/read_only.py +0 -0
  150. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/read_only_stub.py +0 -0
  151. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/reap_agent.py +0 -0
  152. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/reasoning_effort.py +0 -0
  153. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/remove_hook.py +0 -0
  154. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/remove_mcp.py +0 -0
  155. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/remove_skill.py +0 -0
  156. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/report.py +0 -0
  157. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/reset.py +0 -0
  158. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/rules.py +0 -0
  159. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/run.py +0 -0
  160. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/save.py +0 -0
  161. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/save_session.py +0 -0
  162. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/settings.py +0 -0
  163. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/spawn_agent.py +0 -0
  164. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/switch_agent.py +0 -0
  165. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/terminal_data/linux.keytab +0 -0
  166. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/terminal_setup.py +0 -0
  167. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/test.py +0 -0
  168. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/think_tokens.py +0 -0
  169. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/tokens.py +0 -0
  170. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/undo.py +0 -0
  171. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/utils/__init__.py +0 -0
  172. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/utils/base_command.py +0 -0
  173. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/utils/helpers.py +0 -0
  174. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/utils/registry.py +0 -0
  175. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/utils/save_load_manager.py +0 -0
  176. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/voice.py +0 -0
  177. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/weak_model.py +0 -0
  178. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/web.py +0 -0
  179. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/commands/workspace.py +0 -0
  180. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/deprecated_args.py +0 -0
  181. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/diffs.py +0 -0
  182. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/dump.py +0 -0
  183. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/editor.py +0 -0
  184. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/exceptions.py +0 -0
  185. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/format_settings.py +0 -0
  186. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/help.py +0 -0
  187. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/help_pats.py +0 -0
  188. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/__init__.py +0 -0
  189. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/agents/__init__.py +0 -0
  190. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/agents/config.py +0 -0
  191. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/agents/service.py +0 -0
  192. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/background_commands.py +0 -0
  193. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/command_parser.py +0 -0
  194. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/conversation/__init__.py +0 -0
  195. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/conversation/base_message.py +0 -0
  196. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/conversation/files.py +0 -0
  197. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/conversation/integration.py +0 -0
  198. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/conversation/manager.py +0 -0
  199. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/conversation/service.py +0 -0
  200. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/conversation/tags.py +0 -0
  201. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/conversation/utils.py +0 -0
  202. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/copypaste.py +0 -0
  203. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/coroutines.py +0 -0
  204. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/crypto.py +0 -0
  205. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/file_searcher.py +0 -0
  206. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/file_system/__init__.py +0 -0
  207. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/file_system/builders.py +0 -0
  208. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/file_system/ignore.py +0 -0
  209. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/file_system/ngram_index.py +0 -0
  210. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/file_system/service.py +0 -0
  211. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/file_system/trie_index.py +0 -0
  212. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/grep_ast/__init__.py +0 -0
  213. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/grep_ast/dump.py +0 -0
  214. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/grep_ast/grep_ast.py +0 -0
  215. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/grep_ast/main.py +0 -0
  216. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/grep_ast/parsers.py +0 -0
  217. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/grep_ast/tsl.py +0 -0
  218. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/hashline.py +0 -0
  219. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/hashpos/__init__.py +0 -0
  220. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/hashpos/hashpos.py +0 -0
  221. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/hashpos/hashpos.v1.bak +0 -0
  222. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/io_proxy.py +0 -0
  223. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/model_providers.py +0 -0
  224. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/monorepo/__init__.py +0 -0
  225. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/monorepo/config.py +0 -0
  226. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/monorepo/local_workspace.py +0 -0
  227. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/monorepo/project.py +0 -0
  228. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/monorepo/workspace.py +0 -0
  229. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/monorepo/worktree.py +0 -0
  230. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/nested.py +0 -0
  231. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/observations/__init__.py +0 -0
  232. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/observations/service.py +0 -0
  233. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/orchestration/__init__.py +0 -0
  234. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/orchestration/environment.py +0 -0
  235. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/orchestration/security.py +0 -0
  236. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/orchestration/service.py +0 -0
  237. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/plugin_manager.py +0 -0
  238. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/profiler.py +0 -0
  239. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/requests.py +0 -0
  240. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/responses.py +0 -0
  241. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/skills.py +0 -0
  242. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/helpers/threading.py +0 -0
  243. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/history.py +0 -0
  244. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/hooks/__init__.py +0 -0
  245. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/hooks/base.py +0 -0
  246. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/hooks/helpers.py +0 -0
  247. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/hooks/integration.py +0 -0
  248. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/hooks/manager.py +0 -0
  249. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/hooks/registry.py +0 -0
  250. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/hooks/service.py +0 -0
  251. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/hooks/types.py +0 -0
  252. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/interruptible_input.py +0 -0
  253. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/linter.py +0 -0
  254. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/llm.py +0 -0
  255. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/mcp/__init__.py +0 -0
  256. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/mcp/manager.py +0 -0
  257. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/mcp/oauth.py +0 -0
  258. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/mcp/server.py +0 -0
  259. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/mcp/utils.py +0 -0
  260. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/mdstream.py +0 -0
  261. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/onboarding.py +0 -0
  262. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/__init__.py +0 -0
  263. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/agent.yml +0 -0
  264. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/architect.yml +0 -0
  265. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/ask.yml +0 -0
  266. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/base.yml +0 -0
  267. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/context.yml +0 -0
  268. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/copypaste.yml +0 -0
  269. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/editblock.yml +0 -0
  270. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/editblock_fenced.yml +0 -0
  271. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/editblock_func.yml +0 -0
  272. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/editor_diff_fenced.yml +0 -0
  273. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/editor_editblock.yml +0 -0
  274. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/editor_whole.yml +0 -0
  275. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/hashline.yml +0 -0
  276. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/help.yml +0 -0
  277. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/patch.yml +0 -0
  278. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/single_wholefile_func.yml +0 -0
  279. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/subagent.yml +0 -0
  280. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/udiff.yml +0 -0
  281. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/udiff_simple.yml +0 -0
  282. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/utils/__init__.py +0 -0
  283. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/utils/registry.py +0 -0
  284. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/utils/system.py +0 -0
  285. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/wholefile.yml +0 -0
  286. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/prompts/wholefile_func.yml +0 -0
  287. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  288. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  289. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
  290. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  291. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  292. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  293. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  294. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  295. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  296. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  297. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  298. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  299. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  300. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  301. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  302. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  303. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  304. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  305. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  306. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  307. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  308. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  309. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  310. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  311. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  312. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  313. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  314. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  315. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  316. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  317. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  318. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  319. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/README.md +0 -0
  320. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
  321. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  322. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  323. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  324. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  325. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  326. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  327. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  328. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  329. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  330. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  331. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  332. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  333. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  334. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  335. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  336. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  337. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  338. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  339. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  340. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  341. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  342. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  343. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  344. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  345. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  346. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  347. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/reasoning_tags.py +0 -0
  348. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/repo.py +0 -0
  349. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/repomap.py +0 -0
  350. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/report.py +0 -0
  351. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/resources/__init__.py +0 -0
  352. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/resources/model-metadata.json +0 -0
  353. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/resources/model-settings.yml +0 -0
  354. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/resources/providers.json +0 -0
  355. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/run_cmd.py +0 -0
  356. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/scrape.py +0 -0
  357. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/sendchat.py +0 -0
  358. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/sessions.py +0 -0
  359. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/special.py +0 -0
  360. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/__init__.py +0 -0
  361. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/_yield.py +0 -0
  362. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/command.py +0 -0
  363. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/command_interactive.py +0 -0
  364. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/delegate.py +0 -0
  365. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/edit_file.py +0 -0
  366. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/explore_code.py +0 -0
  367. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/git_branch.py +0 -0
  368. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/git_diff.py +0 -0
  369. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/git_log.py +0 -0
  370. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/git_remote.py +0 -0
  371. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/git_show.py +0 -0
  372. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/git_status.py +0 -0
  373. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/grep.py +0 -0
  374. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/ls.py +0 -0
  375. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/orchestrate.py +0 -0
  376. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/read_file.py +0 -0
  377. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/resource_manager.py +0 -0
  378. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/thinking.py +0 -0
  379. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/undo_change.py +0 -0
  380. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/update_todo_list.py +0 -0
  381. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/utils/__init__.py +0 -0
  382. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/utils/base_tool.py +0 -0
  383. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/utils/helpers.py +0 -0
  384. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/utils/output.py +0 -0
  385. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/utils/registry.py +0 -0
  386. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/utils/responses.py +0 -0
  387. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/validations/__init__.py +0 -0
  388. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tools/validations/validations.py +0 -0
  389. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/__init__.py +0 -0
  390. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/app.py +0 -0
  391. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/io.py +0 -0
  392. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/styles.tcss +0 -0
  393. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/widgets/__init__.py +0 -0
  394. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/widgets/completion_bar.py +0 -0
  395. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/widgets/file_list.py +0 -0
  396. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/widgets/footer.py +0 -0
  397. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/widgets/input_area.py +0 -0
  398. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/widgets/input_container.py +0 -0
  399. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/widgets/key_hints.py +0 -0
  400. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/widgets/output.py +0 -0
  401. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/widgets/status_bar.py +0 -0
  402. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/widgets/subagent_pills.py +0 -0
  403. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/tui/worker.py +0 -0
  404. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/urls.py +0 -0
  405. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/versioncheck.py +0 -0
  406. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/voice.py +0 -0
  407. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/watch.py +0 -0
  408. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/watch_prompts.py +0 -0
  409. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/Gemfile +0 -0
  410. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/blame.md +0 -0
  411. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/get-started.md +0 -0
  412. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/help-tip.md +0 -0
  413. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/help.md +0 -0
  414. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/install.md +0 -0
  415. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/keys.md +0 -0
  416. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/model-warnings.md +0 -0
  417. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/multi-line.md +0 -0
  418. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/python-m-aider.md +0 -0
  419. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/recording.css +0 -0
  420. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/recording.md +0 -0
  421. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_includes/works-best.md +0 -0
  422. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_sass/_features.scss +0 -0
  423. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_sass/_footer.scss +0 -0
  424. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_sass/_hero.scss +0 -0
  425. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_sass/_info.scss +0 -0
  426. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_sass/_layout.scss +0 -0
  427. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_sass/_reset.scss +0 -0
  428. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_sass/_testimonials.scss +0 -0
  429. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_sass/_typography.scss +0 -0
  430. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_sass/_variables.scss +0 -0
  431. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_sass/custom/custom.scss +0 -0
  432. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/_sass/global-overrides.scss +0 -0
  433. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/adv-model-settings.md +0 -0
  434. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/agent-mode.md +0 -0
  435. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/api-keys.md +0 -0
  436. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/conf.md +0 -0
  437. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/custom-commands.md +0 -0
  438. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  439. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/dotenv.md +0 -0
  440. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/editor.md +0 -0
  441. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/hooks.md +0 -0
  442. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/mcp.md +0 -0
  443. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/model-aliases.md +0 -0
  444. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/model-configuration.md +0 -0
  445. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/model-providers.md +0 -0
  446. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/options.md +0 -0
  447. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/reasoning.md +0 -0
  448. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/retries.md +0 -0
  449. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/security.md +0 -0
  450. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/skills.md +0 -0
  451. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/subagents.md +0 -0
  452. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/tui.md +0 -0
  453. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config/workspaces.md +0 -0
  454. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/config.md +0 -0
  455. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/git.md +0 -0
  456. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/index.md +0 -0
  457. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/install/docker.md +0 -0
  458. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/install.md +0 -0
  459. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/languages.md +0 -0
  460. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  461. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/legal/privacy.md +0 -0
  462. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/anthropic.md +0 -0
  463. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/azure.md +0 -0
  464. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/bedrock.md +0 -0
  465. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/cohere.md +0 -0
  466. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/deepseek.md +0 -0
  467. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/gemini.md +0 -0
  468. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/github.md +0 -0
  469. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/groq.md +0 -0
  470. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/lm-studio.md +0 -0
  471. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/ollama.md +0 -0
  472. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/openai-compat.md +0 -0
  473. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/openai.md +0 -0
  474. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/openrouter.md +0 -0
  475. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/other.md +0 -0
  476. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/vertex.md +0 -0
  477. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/warnings.md +0 -0
  478. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms/xai.md +0 -0
  479. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/llms.md +0 -0
  480. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/more/analytics.md +0 -0
  481. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/more/edit-formats.md +0 -0
  482. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/more/infinite-output.md +0 -0
  483. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/more-info.md +0 -0
  484. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/repomap.md +0 -0
  485. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/scripting.md +0 -0
  486. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
  487. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  488. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/troubleshooting/imports.md +0 -0
  489. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  490. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/troubleshooting/support.md +0 -0
  491. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  492. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  493. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/troubleshooting.md +0 -0
  494. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/commands.md +0 -0
  495. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/conventions.md +0 -0
  496. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/copypaste.md +0 -0
  497. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/images-urls.md +0 -0
  498. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/lint-test.md +0 -0
  499. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/modes.md +0 -0
  500. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/not-code.md +0 -0
  501. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/notifications.md +0 -0
  502. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/optional.md +0 -0
  503. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/sessions.md +0 -0
  504. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/tips.md +0 -0
  505. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/voice.md +0 -0
  506. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage/watch.md +0 -0
  507. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/docs/usage.md +0 -0
  508. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli/website/share/index.md +0 -0
  509. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli_dev.egg-info/dependency_links.txt +0 -0
  510. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli_dev.egg-info/entry_points.txt +0 -0
  511. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli_dev.egg-info/requires.txt +0 -0
  512. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/cecli_dev.egg-info/top_level.txt +0 -0
  513. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/docker/Dockerfile +0 -0
  514. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  515. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/pyproject.toml +0 -0
  516. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/pytest.ini +0 -0
  517. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/requirements/common-constraints.txt +0 -0
  518. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/requirements/requirements-dev.in +0 -0
  519. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/requirements/requirements-dev.txt +0 -0
  520. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/requirements/requirements-help.in +0 -0
  521. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/requirements/requirements-help.txt +0 -0
  522. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/requirements/requirements-playwright.in +0 -0
  523. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/requirements/requirements-playwright.txt +0 -0
  524. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/requirements/requirements.in +0 -0
  525. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/requirements/tree-sitter.in +0 -0
  526. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/requirements.txt +0 -0
  527. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/30k-image.py +0 -0
  528. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/Dockerfile.jekyll +0 -0
  529. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/__init__.py +0 -0
  530. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/blame.py +0 -0
  531. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/clean_metadata.py +0 -0
  532. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/compare-message-history.py +0 -0
  533. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/cost_analyzer.py +0 -0
  534. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/cost_calculator.py +0 -0
  535. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/dl_icons.py +0 -0
  536. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/filter-chat-mode.js +0 -0
  537. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/generate_providers.py +0 -0
  538. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/get_contributor_list.js +0 -0
  539. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/get_hashline.py +0 -0
  540. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/history_prompts.py +0 -0
  541. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/homepage.py +0 -0
  542. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/issues.py +0 -0
  543. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/jekyll_build.sh +0 -0
  544. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/jekyll_run.sh +0 -0
  545. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/logo_svg.py +0 -0
  546. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/optimize_tokens.sh +0 -0
  547. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/pip-compile.sh +0 -0
  548. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/recording_audio.py +0 -0
  549. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/redact-cast.py +0 -0
  550. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/rename_to_cecli.py +0 -0
  551. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/tmux_record.sh +0 -0
  552. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/tsl_pack_langs.py +0 -0
  553. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/update-blame.sh +0 -0
  554. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/update-docs.sh +0 -0
  555. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/update-history.py +0 -0
  556. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/versionbump.py +0 -0
  557. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/scripts/yank-old-versions.py +0 -0
  558. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/setup.cfg +0 -0
  559. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/shim.pyproject.toml +0 -0
  560. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/__init__.py +0 -0
  561. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/__init__.py +0 -0
  562. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/conftest.py +0 -0
  563. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_aws_credentials.py +0 -0
  564. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_background_commands.py +0 -0
  565. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_commands.py +0 -0
  566. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_custom_commands.py +0 -0
  567. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_deprecated.py +0 -0
  568. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_editblock.py +0 -0
  569. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_editor.py +0 -0
  570. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_exceptions.py +0 -0
  571. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_find_or_blocks.py +0 -0
  572. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_hashline.py +0 -0
  573. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_hashline_closure.py +0 -0
  574. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_history.py +0 -0
  575. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_io.py +0 -0
  576. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_linter.py +0 -0
  577. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_model_info_manager.py +0 -0
  578. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_models.py +0 -0
  579. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_onboarding.py +0 -0
  580. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_plugin_manager.py +0 -0
  581. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_prompts.py +0 -0
  582. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_reasoning.py +0 -0
  583. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_repo.py +0 -0
  584. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_repomap.py +0 -0
  585. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_run_cmd.py +0 -0
  586. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_sanity_check_repo.py +0 -0
  587. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_scripting.py +0 -0
  588. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_sendchat.py +0 -0
  589. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_session_args.py +0 -0
  590. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_session_crypto.py +0 -0
  591. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_sessions.py +0 -0
  592. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_sessions_manager.py +0 -0
  593. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_skills.py +0 -0
  594. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_special.py +0 -0
  595. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_ssl_verification.py +0 -0
  596. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_udiff.py +0 -0
  597. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_urls.py +0 -0
  598. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_voice.py +0 -0
  599. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_watch.py +0 -0
  600. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/basic/test_wholefile.py +0 -0
  601. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/coders/test_coder_switching.py +0 -0
  602. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/coders/test_copypaste_coder.py +0 -0
  603. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/commands/test_compaction.py +0 -0
  604. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/commands/test_switch_agent.py +0 -0
  605. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/conftest.py +0 -0
  606. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/conversations/test_conversation_integration.py +0 -0
  607. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/conversations/test_conversation_system.py +0 -0
  608. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  609. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/chat-history.md +0 -0
  610. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/arduino/test.ino +0 -0
  611. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/bash/test.sh +0 -0
  612. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/c/test.c +0 -0
  613. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/chatito/test.chatito +0 -0
  614. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/clojure/test.clj +0 -0
  615. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  616. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/cpp/test.cpp +0 -0
  617. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/csharp/test.cs +0 -0
  618. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/d/test.d +0 -0
  619. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/dart/test.dart +0 -0
  620. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/elisp/test.el +0 -0
  621. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/elixir/test.ex +0 -0
  622. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/elm/test.elm +0 -0
  623. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/gleam/test.gleam +0 -0
  624. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/go/test.go +0 -0
  625. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/haskell/test.hs +0 -0
  626. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/hcl/test.tf +0 -0
  627. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/java/test.java +0 -0
  628. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/javascript/test.js +0 -0
  629. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/kotlin/test.kt +0 -0
  630. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/lua/test.lua +0 -0
  631. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/matlab/test.m +0 -0
  632. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/ocaml/test.ml +0 -0
  633. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  634. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/php/test.php +0 -0
  635. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/pony/test.pony +0 -0
  636. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/properties/test.properties +0 -0
  637. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/python/test.py +0 -0
  638. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/ql/test.ql +0 -0
  639. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/r/test.r +0 -0
  640. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/racket/test.rkt +0 -0
  641. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/ruby/test.rb +0 -0
  642. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/rust/test.rs +0 -0
  643. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/scala/test.scala +0 -0
  644. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/solidity/test.sol +0 -0
  645. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/swift/test.swift +0 -0
  646. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/tsx/test.tsx +0 -0
  647. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/typescript/test.ts +0 -0
  648. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/udev/test.rules +0 -0
  649. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/languages/zig/test.zig +0 -0
  650. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/sample-code-base/sample.js +0 -0
  651. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/sample-code-base/sample.py +0 -0
  652. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  653. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/watch.js +0 -0
  654. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/watch.lisp +0 -0
  655. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/watch.py +0 -0
  656. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/fixtures/watch_question.js +0 -0
  657. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/help/test_help.py +0 -0
  658. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/helpers/monorepo/LOCAL_WORKSPACE.md +0 -0
  659. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/helpers/monorepo/test_config.py +0 -0
  660. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/helpers/monorepo/test_config_active.py +0 -0
  661. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
  662. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/helpers/monorepo/test_local_workspace.py +0 -0
  663. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
  664. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/helpers/monorepo/test_workspace.py +0 -0
  665. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/helpers/observations/test_observation_service.py +0 -0
  666. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/helpers/test_orchestration.py +0 -0
  667. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/hooks/__init__.py +0 -0
  668. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/hooks/test_base.py +0 -0
  669. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/hooks/test_manager.py +0 -0
  670. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/hooks/test_registry.py +0 -0
  671. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/integration/test_agent_mcp_management.py +0 -0
  672. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/integration/test_mcp_management.py +0 -0
  673. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/mcp/__init__.py +0 -0
  674. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/mcp/conftest.py +0 -0
  675. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/mcp/mock_server.py +0 -0
  676. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/mcp/test_keepalive_concurrency.py +0 -0
  677. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/mcp/test_keepalive_config.py +0 -0
  678. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/mcp/test_keepalive_integration.py +0 -0
  679. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/mcp/test_keepalive_logging.py +0 -0
  680. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/mcp/test_keepalive_resilience.py +0 -0
  681. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/mcp/test_keepalive_unit.py +0 -0
  682. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/mcp/test_manager.py +0 -0
  683. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/scrape/test_playwright_disable.py +0 -0
  684. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/scrape/test_scrape.py +0 -0
  685. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/subagents/__init__.py +0 -0
  686. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/subagents/conftest.py +0 -0
  687. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/subagents/test_commands.py +0 -0
  688. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/subagents/test_config.py +0 -0
  689. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/subagents/test_delegate.py +0 -0
  690. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/subagents/test_finished.py +0 -0
  691. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/subagents/test_io_proxy.py +0 -0
  692. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/subagents/test_service.py +0 -0
  693. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/subagents/test_sub_agent_coder.py +0 -0
  694. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/test_requests.py +0 -0
  695. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/test_extractions.py +0 -0
  696. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/test_get_lines.py +0 -0
  697. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/test_git_branch.py +0 -0
  698. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/test_git_diff.py +0 -0
  699. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/test_grep.py +0 -0
  700. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/test_insert_block.py +0 -0
  701. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/test_read_range_execute.py +0 -0
  702. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/test_registry.py +0 -0
  703. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/test_remove_mcp_tool.py +0 -0
  704. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/test_tool_arguments.py +0 -0
  705. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/test_tools_load_mcp_tool.py +0 -0
  706. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tools/validations.py +0 -0
  707. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/tui/test_app.py +0 -0
  708. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/unit/test_load_mcp.py +0 -0
  709. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/unit/test_remove_mcp.py +0 -0
  710. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/unit/test_unit_load_mcp_tool.py +0 -0
  711. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc2}/tests/unit/test_unit_remove_mcp_tool.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cecli-dev
3
- Version: 1.0.0rc1
3
+ Version: 1.0.0rc2
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.0rc1'
22
- __version_tuple__ = version_tuple = (1, 0, 0, 'rc1')
21
+ __version__ = version = '1.0.0rc2'
22
+ __version_tuple__ = version_tuple = (1, 0, 0, 'rc2')
23
23
 
24
- __commit_id__ = commit_id = 'ge71e8173f'
24
+ __commit_id__ = commit_id = 'g394025597'
@@ -5,6 +5,8 @@ This package contains individual command implementations that follow the
5
5
  BaseCommand pattern for modular, testable command execution.
6
6
  """
7
7
 
8
+ from cecli.signals import ReloadProgramSignal, SwitchCoderSignal
9
+
8
10
  from .add import AddCommand
9
11
  from .agent import AgentCommand
10
12
  from .agent_model import AgentModelCommand
@@ -20,7 +22,7 @@ from .context_blocks import ContextBlocksCommand
20
22
  from .context_management import ContextManagementCommand
21
23
  from .copy import CopyCommand
22
24
  from .copy_context import CopyContextCommand
23
- from .core import Commands, ReloadProgramSignal, SwitchCoderSignal
25
+ from .core import Commands
24
26
  from .diff import DiffCommand
25
27
  from .drop import DropCommand
26
28
  from .editor import EditCommand, EditorCommand
@@ -8,49 +8,7 @@ from cecli.commands.utils.registry import CommandRegistry
8
8
  from cecli.helpers import nested, plugin_manager
9
9
  from cecli.helpers.file_searcher import handle_core_files
10
10
  from cecli.helpers.threading import ThreadSafeEvent
11
- from cecli.repo import ANY_GIT_ERROR
12
-
13
-
14
- class SwitchCoderSignal(BaseException):
15
- """
16
- Signal to switch the current Coder instance to a new configuration.
17
-
18
- This is NOT an error - it's a control flow signal used to propagate
19
- coder switching requests up through the async call stack. It carries
20
- the kwargs needed to create a new Coder instance.
21
-
22
- Note: Inherits from BaseException (like KeyboardInterrupt and SystemExit)
23
- to avoid being caught by generic `except Exception` handlers, making the
24
- non-error nature of this signal explicit.
25
-
26
- Attributes:
27
- kwargs: Configuration dict passed to Coder.create() for the new instance
28
- placeholder: Optional placeholder text for the input prompt
29
- """
30
-
31
- def __init__(self, placeholder=None, **kwargs):
32
- self.kwargs = kwargs
33
- self.placeholder = placeholder
34
- super().__init__()
35
-
36
-
37
- class ReloadProgramSignal(BaseException):
38
- """
39
- Signal to reload the entire program configuration.
40
-
41
- This is NOT an error - it's a control flow signal used to trigger
42
- a full program reload, re-parsing config files and re-initializing
43
- all components. Useful for hot-reloading when configuration files
44
- change.
45
-
46
- Note: Inherits from BaseException (like KeyboardInterrupt and SystemExit)
47
- to avoid being caught by generic `except Exception` handlers.
48
- """
49
-
50
- def __init__(self, message="Reloading program configuration...", **kwargs):
51
- self.kwargs = kwargs
52
- self.message = message
53
- super().__init__(self.message)
11
+ from cecli.signals import SwitchCoderSignal
54
12
 
55
13
 
56
14
  class Commands:
@@ -215,6 +173,8 @@ class Commands:
215
173
  return sorted(commands)
216
174
 
217
175
  async def execute(self, cmd_name, args, coder=None, **kwargs):
176
+ from cecli.repo import ANY_GIT_ERROR
177
+
218
178
  active_coder = coder or self.coder
219
179
  command_class = CommandRegistry.get_command(cmd_name)
220
180
 
@@ -1,7 +1,7 @@
1
1
  from typing import List
2
2
 
3
- from cecli.commands.core import ReloadProgramSignal
4
3
  from cecli.commands.utils.base_command import BaseCommand
4
+ from cecli.signals import ReloadProgramSignal
5
5
 
6
6
 
7
7
  class HotReloadCommand(BaseCommand):
@@ -25,6 +25,19 @@ from contextlib import contextmanager
25
25
  from dataclasses import dataclass, field
26
26
  from typing import Any, Dict, List, Optional
27
27
 
28
+ import psutil
29
+
30
+ # Track the initial baseline memory at module load time
31
+ _BASELINE_MEM = psutil.Process(os.getpid()).memory_info().rss / (1024 * 1024)
32
+
33
+
34
+ def check_memory(label="Current"):
35
+ """Prints absolute memory usage and growth since the script started."""
36
+ current_mem = psutil.Process(os.getpid()).memory_info().rss / (1024 * 1024)
37
+ growth = current_mem - _BASELINE_MEM
38
+ print(f"[{label}] Total: {current_mem:.2f} MB | Growth: +{growth:.2f} MB")
39
+
40
+
28
41
  # ── Optional dependency wrappers ──
29
42
 
30
43
 
@@ -0,0 +1,77 @@
1
+ def normalize_vector(vector):
2
+ """Normalize a vector to unit length (L2 norm).
3
+
4
+ Args:
5
+ vector (list): Input vector
6
+
7
+ Returns:
8
+ list: Normalized vector with length 1
9
+ """
10
+ import math
11
+
12
+ magnitude = math.sqrt(sum(x * x for x in vector))
13
+ if magnitude == 0:
14
+ return list(vector) # Return copy if zero vector
15
+ return [x / magnitude for x in vector]
16
+
17
+
18
+ def cosine_similarity(vector1, vector2):
19
+ """Calculate cosine similarity between two vectors.
20
+
21
+ Args:
22
+ vector1 (list): First vector
23
+ vector2 (list): Second vector
24
+
25
+ Returns:
26
+ float: Cosine similarity between the vectors (range: -1 to 1)
27
+ """
28
+ import math
29
+
30
+ if len(vector1) != len(vector2):
31
+ raise ValueError("Vectors must have the same length")
32
+
33
+ dot_product = sum(a * b for a, b in zip(vector1, vector2))
34
+ magnitude1 = math.sqrt(sum(x * x for x in vector1))
35
+ magnitude2 = math.sqrt(sum(x * x for x in vector2))
36
+
37
+ if magnitude1 == 0 or magnitude2 == 0:
38
+ return 0.0 # Return 0 if either vector is zero
39
+
40
+ return dot_product / (magnitude1 * magnitude2)
41
+
42
+
43
+ def create_bigram_vector(texts):
44
+ """Create a bigram frequency vector.
45
+
46
+ Args:
47
+ texts (tuple): Tuple of strings to process
48
+
49
+ Returns:
50
+ list: Vector of bigram frequencies
51
+ """
52
+ # Pre-compute bigram indices (0 for 'aa', 1 for 'ab', ..., 675 for 'zz')
53
+ bigram_indices = {}
54
+ idx = 0
55
+ for i in range(ord("a"), ord("z") + 1):
56
+ for j in range(ord("a"), ord("z") + 1):
57
+ bigram = chr(i) + chr(j)
58
+ bigram_indices[bigram] = idx
59
+ idx += 1
60
+
61
+ # Initialize frequency vector
62
+ vector = [0] * (26 * 26)
63
+
64
+ # Process all texts
65
+ for text in texts:
66
+ text_lower = text.lower()
67
+ if len(text_lower) < 2:
68
+ continue
69
+
70
+ # Create bigrams by combining consecutive characters
71
+ for i in range(len(text_lower) - 1):
72
+ bg = text_lower[i : i + 2]
73
+ # Filter only alphabetic bigrams
74
+ if bg.isalpha() and bg in bigram_indices:
75
+ vector[bigram_indices[bg]] += 1
76
+
77
+ return vector
@@ -11,7 +11,6 @@ import signal
11
11
  import subprocess
12
12
  import sys
13
13
  import time
14
- import webbrowser
15
14
  from collections import defaultdict
16
15
  from dataclasses import dataclass
17
16
  from datetime import datetime
@@ -19,19 +18,8 @@ from io import StringIO
19
18
  from pathlib import Path
20
19
 
21
20
  from prompt_toolkit.completion import Completer, Completion, ThreadedCompleter
22
- from prompt_toolkit.cursor_shapes import ModalCursorShapeConfig
23
- from prompt_toolkit.enums import EditingMode
24
- from prompt_toolkit.filters import Condition, is_searching
25
21
  from prompt_toolkit.history import FileHistory
26
- from prompt_toolkit.key_binding import KeyBindings
27
- from prompt_toolkit.key_binding.vi_state import InputMode
28
- from prompt_toolkit.keys import Keys
29
- from prompt_toolkit.lexers import PygmentsLexer
30
22
  from prompt_toolkit.output.vt100 import is_dumb_terminal
31
- from prompt_toolkit.shortcuts import CompleteStyle, PromptSession
32
- from prompt_toolkit.styles import Style
33
- from pygments.lexers import MarkdownLexer, guess_lexer_for_filename
34
- from pygments.token import Token
35
23
  from rich.color import ColorParseError
36
24
  from rich.columns import Columns
37
25
  from rich.console import Console
@@ -182,6 +170,9 @@ class AutoCompleter(Completer):
182
170
  self.tokenized = False
183
171
 
184
172
  def tokenize(self):
173
+ from pygments.lexers import guess_lexer_for_filename
174
+ from pygments.token import Token
175
+
185
176
  if self.tokenized:
186
177
  return
187
178
  self.tokenized = True
@@ -360,7 +351,7 @@ class InputOutput:
360
351
  encoding="utf-8",
361
352
  line_endings="platform",
362
353
  dry_run=False,
363
- editingmode=EditingMode.EMACS,
354
+ editingmode="EMACS",
364
355
  fancy_input=True,
365
356
  file_watcher=None,
366
357
  multiline_mode=False,
@@ -512,6 +503,9 @@ class InputOutput:
512
503
  self.interruptible_input = None
513
504
 
514
505
  if fancy_input:
506
+ from prompt_toolkit.lexers import PygmentsLexer
507
+ from pygments.lexers import MarkdownLexer
508
+
515
509
  # If unicode is supported, use the rich 'dots2' spinner, otherwise an ascii fallback
516
510
  if self._spinner_supports_unicode():
517
511
  self.spinner_frames = SPINNERS["dots2"]["frames"]
@@ -527,11 +521,15 @@ class InputOutput:
527
521
  "editing_mode": self.editingmode,
528
522
  "bottom_toolbar": self.get_bottom_toolbar,
529
523
  }
530
- if self.editingmode == EditingMode.VI:
524
+ if self.editingmode == "VI":
525
+ from prompt_toolkit.cursor_shapes import ModalCursorShapeConfig
526
+
531
527
  session_kwargs["cursor"] = ModalCursorShapeConfig()
532
528
  if self.input_history_file is not None:
533
529
  session_kwargs["history"] = FileHistory(self.input_history_file)
534
530
  try:
531
+ from prompt_toolkit.shortcuts import PromptSession
532
+
535
533
  self.prompt_session = PromptSession(**session_kwargs)
536
534
  self.console = Console() # pretty console
537
535
  except Exception as err:
@@ -639,6 +637,8 @@ class InputOutput:
639
637
  setattr(self, attr_name, None) # Reset invalid color to None
640
638
 
641
639
  def _get_style(self):
640
+ from prompt_toolkit.styles import Style
641
+
642
642
  style_dict = {}
643
643
  if not self.pretty:
644
644
  return Style.from_dict(style_dict)
@@ -829,6 +829,11 @@ class InputOutput:
829
829
  edit_format=None,
830
830
  **kwargs,
831
831
  ):
832
+ from prompt_toolkit.filters import Condition, is_searching
833
+ from prompt_toolkit.key_binding import KeyBindings
834
+ from prompt_toolkit.keys import Keys
835
+ from prompt_toolkit.shortcuts import CompleteStyle
836
+
832
837
  self.rule()
833
838
  if commands.last_command_show_notification:
834
839
  self.notify_user_input_required()
@@ -940,9 +945,10 @@ class InputOutput:
940
945
  @kb.add("enter", eager=True, filter=~is_searching)
941
946
  def _(event):
942
947
  "Handle Enter key press"
948
+ from prompt_toolkit.key_binding.vi_state import InputMode
949
+
943
950
  if self.multiline_mode and not (
944
- self.editingmode == EditingMode.VI
945
- and event.app.vi_state.input_mode == InputMode.NAVIGATION
951
+ self.editingmode == "VI" and event.app.vi_state.input_mode == InputMode.NAVIGATION
946
952
  ):
947
953
  # In multiline mode and if not in vi-mode or vi navigation/normal mode,
948
954
  # Enter adds a newline
@@ -1222,6 +1228,8 @@ class InputOutput:
1222
1228
  self, url, prompt="Open URL for more info?", allow_never=True, acknowledge=False
1223
1229
  ):
1224
1230
  """Offer to open a URL in the browser, returns True if opened."""
1231
+ import webbrowser
1232
+
1225
1233
  if url in self.never_prompts:
1226
1234
  return False
1227
1235
  if await self.confirm_ask(
@@ -10,23 +10,19 @@ except Exception:
10
10
 
11
11
  try:
12
12
  if not os.getenv("CECLI_DEFAULT_TLS"):
13
- import truststore
13
+ from truststore import inject_into_ssl
14
14
 
15
- truststore.inject_into_ssl()
15
+ inject_into_ssl()
16
16
  except Exception as e:
17
17
  print(e)
18
18
  pass
19
19
 
20
20
  import asyncio
21
21
  import json
22
- import os
23
22
  import re
24
23
  import shutil
25
- import threading
26
24
  import time
27
25
  import traceback
28
- import webbrowser
29
- from dataclasses import fields
30
26
  from pathlib import Path
31
27
 
32
28
  try:
@@ -40,7 +36,6 @@ from dotenv import load_dotenv
40
36
  if sys.platform == "win32":
41
37
  if hasattr(asyncio, "set_event_loop_policy"):
42
38
  asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
43
- from prompt_toolkit.enums import EditingMode
44
39
 
45
40
  from .dump import dump # noqa
46
41
 
@@ -476,8 +471,7 @@ def custom_tracer(frame, event, arg):
476
471
 
477
472
 
478
473
  def main(argv=None, input=None, output=None, force_git_root=None, return_coder=False):
479
- from cecli.commands import ReloadProgramSignal
480
- from cecli.hooks import HookService
474
+ from cecli.signals import ReloadProgramSignal
481
475
 
482
476
  # Tracks the coder instance from a ReloadProgramSignal so the new
483
477
  # main_async() can pass it as from_coder to Coder.create(), preserving
@@ -515,6 +509,8 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F
515
509
  # The old HookManager and HookRegistry instances are cached by UUID and
516
510
  # would be reused by the new coder, causing hook registration failures.
517
511
  if reload_from_coder:
512
+ from cecli.hooks import HookService
513
+
518
514
  HookService.destroy_instances(reload_from_coder.uuid)
519
515
  continue
520
516
 
@@ -678,7 +674,7 @@ async def main_async(
678
674
  args.yes_always = True
679
675
  if args.yes_always_commands:
680
676
  args.yes_always = True
681
- editing_mode = EditingMode.VI if args.vim else EditingMode.EMACS
677
+ editing_mode = "VI" if args.vim else "EMACS"
682
678
 
683
679
  def get_io(pretty):
684
680
  return InputOutput(
@@ -1015,6 +1011,8 @@ async def main_async(
1015
1011
  if main_model.edit_format in ("diff", "whole", "diff-fenced"):
1016
1012
  main_model.edit_format = "editor-" + main_model.edit_format
1017
1013
  if args.verbose:
1014
+ from dataclasses import fields
1015
+
1018
1016
  io.tool_output("Model metadata:")
1019
1017
  io.tool_output(json.dumps(main_model.info, indent=4))
1020
1018
  io.tool_output("Model settings:")
@@ -1256,6 +1254,8 @@ async def main_async(
1256
1254
  args.edit_format = main_model.editor_edit_format
1257
1255
  args.message = "/paste"
1258
1256
  if args.show_release_notes is True:
1257
+ import webbrowser
1258
+
1259
1259
  pre_init_io.tool_output(f"Opening release notes: {urls.release_notes}")
1260
1260
  pre_init_io.tool_output()
1261
1261
  webbrowser.open(urls.release_notes)
@@ -1457,6 +1457,8 @@ async def check_and_load_imports(io, is_first_run, verbose=False):
1457
1457
  else:
1458
1458
  if verbose:
1459
1459
  io.tool_output("Not first run, loading imports in background thread")
1460
+ import threading
1461
+
1460
1462
  thread = threading.Thread(target=load_slow_imports)
1461
1463
  thread.daemon = True
1462
1464
  thread.start()
@@ -1468,9 +1470,7 @@ async def check_and_load_imports(io, is_first_run, verbose=False):
1468
1470
 
1469
1471
  def load_slow_imports(swallow=True):
1470
1472
  try:
1471
- import httpx # noqa
1472
- import litellm # noqa
1473
- import numpy # noqa
1473
+ import cecli.llm # noqa
1474
1474
  except Exception as e:
1475
1475
  if not swallow:
1476
1476
  raise e
@@ -1,12 +1,8 @@
1
1
  import asyncio
2
- import difflib
3
- import hashlib
4
2
  import importlib.resources
5
3
  import json
6
- import math
7
4
  import os
8
5
  import platform
9
- import random
10
6
  import sys
11
7
  import time
12
8
  from dataclasses import dataclass, fields
@@ -975,6 +971,8 @@ class Model(ModelSettings):
975
971
  :param fname: The filename of the image.
976
972
  :return: The token cost for the image.
977
973
  """
974
+ import math
975
+
978
976
  width, height = self.get_image_size(fname)
979
977
  max_dimension = max(width, height)
980
978
  if max_dimension > 2048:
@@ -1224,6 +1222,10 @@ class Model(ModelSettings):
1224
1222
  override_kwargs={},
1225
1223
  interrupt_event=None,
1226
1224
  ):
1225
+ import random
1226
+
1227
+ import xxhash
1228
+
1227
1229
  if os.environ.get("CECLI_SANITY_CHECK_TURNS"):
1228
1230
  sanity_check_messages(messages)
1229
1231
  messages = model_request_parser(self, messages, tools)
@@ -1305,7 +1307,7 @@ class Model(ModelSettings):
1305
1307
  num_ctx = int(self.token_count(messages) * 1.25) + 8192
1306
1308
  kwargs["num_ctx"] = num_ctx
1307
1309
  key = json.dumps(kwargs, sort_keys=True).encode()
1308
- hash_object = hashlib.sha1(key)
1310
+ hash_object = xxhash.xxh64(key)
1309
1311
  if "timeout" not in kwargs:
1310
1312
  kwargs["timeout"] = request_timeout
1311
1313
  if self.verbose:
@@ -1713,6 +1715,7 @@ def get_chat_model_names(query: str = "") -> list:
1713
1715
 
1714
1716
 
1715
1717
  def fuzzy_match_models(name):
1718
+ import difflib
1716
1719
  import fnmatch
1717
1720
 
1718
1721
  # Handle empty string case - return all models
@@ -0,0 +1,49 @@
1
+ """
2
+ Control-flow signal exceptions for cecli.
3
+
4
+ These signals are used for non-error control flow (like switching coders
5
+ or reloading the program). They inherit from BaseException to avoid being
6
+ caught by generic `except Exception` handlers.
7
+ """
8
+
9
+
10
+ class SwitchCoderSignal(BaseException):
11
+ """
12
+ Signal to switch the current Coder instance to a new configuration.
13
+
14
+ This is NOT an error - it's a control flow signal used to propagate
15
+ coder switching requests up through the async call stack. It carries
16
+ the kwargs needed to create a new Coder instance.
17
+
18
+ Note: Inherits from BaseException (like KeyboardInterrupt and SystemExit)
19
+ to avoid being caught by generic `except Exception` handlers, making the
20
+ non-error nature of this signal explicit.
21
+
22
+ Attributes:
23
+ kwargs: Configuration dict passed to Coder.create() for the new instance
24
+ placeholder: Optional placeholder text for the input prompt
25
+ """
26
+
27
+ def __init__(self, placeholder=None, **kwargs):
28
+ self.kwargs = kwargs
29
+ self.placeholder = placeholder
30
+ super().__init__()
31
+
32
+
33
+ class ReloadProgramSignal(BaseException):
34
+ """
35
+ Signal to reload the entire program configuration.
36
+
37
+ This is NOT an error - it's a control flow signal used to trigger
38
+ a full program reload, re-parsing config files and re-initializing
39
+ all components. Useful for hot-reloading when configuration files
40
+ change.
41
+
42
+ Note: Inherits from BaseException (like KeyboardInterrupt and SystemExit)
43
+ to avoid being caught by generic `except Exception` handlers.
44
+ """
45
+
46
+ def __init__(self, message="Reloading program configuration...", **kwargs):
47
+ self.kwargs = kwargs
48
+ self.message = message
49
+ super().__init__(self.message)
@@ -10,7 +10,6 @@ import tempfile
10
10
  from pathlib import Path
11
11
 
12
12
  from cecli.dump import dump # noqa: F401
13
- from cecli.waiting import Spinner
14
13
 
15
14
  IMAGE_EXTENSIONS = {".png", ".jpg", ".jpeg", ".gif", ".bmp", ".tiff", ".webp", ".pdf"}
16
15
 
@@ -311,6 +310,8 @@ def run_install(cmd):
311
310
  pass # Continue even if ensurepip fails
312
311
 
313
312
  try:
313
+ from cecli.waiting import Spinner
314
+
314
315
  output = []
315
316
  process = subprocess.Popen(
316
317
  cmd,
@@ -4,13 +4,13 @@
4
4
  A simple wrapper for rich.status to provide a spinner.
5
5
  """
6
6
 
7
- from rich.console import Console
8
-
9
7
 
10
8
  class Spinner:
11
9
  """A wrapper around rich.status.Status for displaying a spinner."""
12
10
 
13
11
  def __init__(self, text: str = "Waiting..."):
12
+ from rich.console import Console
13
+
14
14
  self.text = text
15
15
  self.console = Console()
16
16
  self.status = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cecli-dev
3
- Version: 1.0.0rc1
3
+ Version: 1.0.0rc2
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
@@ -83,6 +83,7 @@ cecli/run_cmd.py
83
83
  cecli/scrape.py
84
84
  cecli/sendchat.py
85
85
  cecli/sessions.py
86
+ cecli/signals.py
86
87
  cecli/special.py
87
88
  cecli/urls.py
88
89
  cecli/utils.py
@@ -84,6 +84,7 @@
84
84
  "cecli/urls.py",
85
85
  "cecli/mdstream.py",
86
86
  "cecli/__main__.py",
87
+ "cecli/signals.py",
87
88
  "cecli/args_formatter.py",
88
89
  "cecli/resources/providers.json",
89
90
  "cecli/resources/__init__.py",
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "1.0.0rc2",
3
+ "distance": 0,
4
+ "node": "g3940255974101d4b314287b4a2256fef08d17228",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-07-14"
8
+ }
@@ -34,7 +34,7 @@ class TestCoder:
34
34
  def setup(self, gpt35_model):
35
35
  self.uuid = str(uuid.uuid4())
36
36
  self.GPT35 = gpt35_model
37
- self.webbrowser_patcher = patch("cecli.io.webbrowser.open")
37
+ self.webbrowser_patcher = patch("webbrowser.open")
38
38
  self.mock_webbrowser = self.webbrowser_patcher.start()
39
39
  # Reset conversation system before each test
40
40
  ConversationService.get_chunks(self).reset()
@@ -73,7 +73,7 @@ def test_env(mocker, temp_cwd, temp_home):
73
73
  test_env_vars["HOME"] = temp_home
74
74
  mocker.patch.dict(os.environ, test_env_vars)
75
75
  mocker.patch("builtins.input", return_value=None)
76
- mocker.patch("cecli.io.webbrowser.open")
76
+ mocker.patch("webbrowser.open")
77
77
 
78
78
 
79
79
  @pytest.fixture
@@ -31,14 +31,6 @@ def _install_stubs():
31
31
  sys.modules["PIL.Image"] = image_module
32
32
  sys.modules["PIL.ImageGrab"] = image_grab_module
33
33
 
34
- if "numpy" not in sys.modules:
35
- numpy_module = types.ModuleType("numpy")
36
- numpy_module.ndarray = object
37
- numpy_module.array = lambda *a, **k: None
38
- numpy_module.dot = lambda *a, **k: 0.0
39
- numpy_module.linalg = types.SimpleNamespace(norm=lambda *a, **k: 1.0)
40
- sys.modules["numpy"] = numpy_module
41
-
42
34
  if "oslex" not in sys.modules:
43
35
  oslex_module = types.ModuleType("oslex")
44
36
  oslex_module.__all__ = []