cecli-dev 1.0.0rc1__tar.gz → 1.0.0rc3__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.0rc3}/PKG-INFO +1 -1
  2. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/_version.py +3 -3
  3. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/__init__.py +3 -1
  4. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/core.py +3 -43
  5. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/hot_reload.py +1 -1
  6. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/leak_detect.py +13 -0
  7. cecli_dev-1.0.0rc3/cecli/helpers/similarity.py +77 -0
  8. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/io.py +2 -1
  9. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/main.py +13 -13
  10. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/models.py +8 -5
  11. cecli_dev-1.0.0rc3/cecli/signals.py +49 -0
  12. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/utils.py +2 -1
  13. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/waiting.py +2 -2
  14. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli_dev.egg-info/PKG-INFO +1 -1
  15. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli_dev.egg-info/SOURCES.txt +1 -0
  16. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli_dev.egg-info/scm_file_list.json +1 -0
  17. cecli_dev-1.0.0rc3/cecli_dev.egg-info/scm_version.json +8 -0
  18. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_coder.py +1 -1
  19. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_main.py +1 -1
  20. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/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.0rc3}/.dockerignore +0 -0
  24. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/.flake8 +0 -0
  25. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/.gitattributes +0 -0
  26. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  27. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/.github/workflows/check_pypi_version.yml +0 -0
  28. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/.github/workflows/docker-build-test.yml +0 -0
  29. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/.github/workflows/docker-release.yml +0 -0
  30. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/.github/workflows/issues.yml +0 -0
  31. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/.github/workflows/pages.yml +0 -0
  32. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/.github/workflows/pre-commit.yml +0 -0
  33. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/.github/workflows/release.yml +0 -0
  34. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/.github/workflows/ubuntu-tests.yml +0 -0
  35. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/.github/workflows/windows-tests.yml +0 -0
  36. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/.github/workflows/windows_check_pypi_version.yml +0 -0
  37. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/.gitignore +0 -0
  38. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/.pre-commit-config.yaml +0 -0
  39. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/CHANGELOG.md +0 -0
  40. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/CNAME +0 -0
  41. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/CONTRIBUTING.md +0 -0
  42. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/HISTORY.md +0 -0
  43. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/LICENSE.txt +0 -0
  44. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/MANIFEST.in +0 -0
  45. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/README.md +0 -0
  46. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/Dockerfile +0 -0
  47. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/README.md +0 -0
  48. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/__init__.py +0 -0
  49. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/benchmark.py +0 -0
  50. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/benchmark_classic.py +0 -0
  51. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/clone-exercism.sh +0 -0
  52. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/cpp-test.sh +0 -0
  53. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/docker.sh +0 -0
  54. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/docker_build.sh +0 -0
  55. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/install-docker-ubuntu.sh +0 -0
  56. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/npm-test.sh +0 -0
  57. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/over_time.py +0 -0
  58. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/plot.sh +0 -0
  59. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/plots.py +0 -0
  60. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/problem_stats.py +0 -0
  61. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/prompts.py +0 -0
  62. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/refactor_tools.py +0 -0
  63. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/rsync.sh +0 -0
  64. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/rungrid.py +0 -0
  65. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/swe-bench-lite.txt +0 -0
  66. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/swe-bench.txt +0 -0
  67. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/swe_bench.py +0 -0
  68. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/test_benchmark.py +0 -0
  69. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/variations.1.sh +0 -0
  70. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/variations.2.sh +0 -0
  71. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/variations.3.sh +0 -0
  72. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/benchmark/variations.4.sh +0 -0
  73. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/__init__.py +0 -0
  74. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/__main__.py +0 -0
  75. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/args.py +0 -0
  76. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/args_formatter.py +0 -0
  77. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/change_tracker.py +0 -0
  78. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/__init__.py +0 -0
  79. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/agent_coder.py +0 -0
  80. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/architect_coder.py +0 -0
  81. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/ask_coder.py +0 -0
  82. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/base_coder.py +0 -0
  83. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/chat_chunks.py +0 -0
  84. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/context_coder.py +0 -0
  85. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/copypaste_coder.py +0 -0
  86. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/editblock_coder.py +0 -0
  87. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/editblock_fenced_coder.py +0 -0
  88. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/editblock_func_coder.py +0 -0
  89. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  90. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/editor_editblock_coder.py +0 -0
  91. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/editor_whole_coder.py +0 -0
  92. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/hashline_coder.py +0 -0
  93. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/help_coder.py +0 -0
  94. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/patch_coder.py +0 -0
  95. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/search_replace.py +0 -0
  96. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/shell.py +0 -0
  97. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/single_wholefile_func_coder.py +0 -0
  98. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/sub_agent_coder.py +0 -0
  99. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/udiff_coder.py +0 -0
  100. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/udiff_simple.py +0 -0
  101. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/wholefile_coder.py +0 -0
  102. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/coders/wholefile_func_coder.py +0 -0
  103. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/add.py +0 -0
  104. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/agent.py +0 -0
  105. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/agent_model.py +0 -0
  106. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/architect.py +0 -0
  107. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/ask.py +0 -0
  108. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/chat_mode.py +0 -0
  109. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/clear.py +0 -0
  110. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/code.py +0 -0
  111. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/command_prefix.py +0 -0
  112. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/commit.py +0 -0
  113. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/compact.py +0 -0
  114. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/context.py +0 -0
  115. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/context_blocks.py +0 -0
  116. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/context_management.py +0 -0
  117. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/copy.py +0 -0
  118. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/copy_context.py +0 -0
  119. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/diff.py +0 -0
  120. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/drop.py +0 -0
  121. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/editor.py +0 -0
  122. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/editor_model.py +0 -0
  123. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/exclude_skill.py +0 -0
  124. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/exit.py +0 -0
  125. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/git.py +0 -0
  126. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/hashline.py +0 -0
  127. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/help.py +0 -0
  128. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/history_search.py +0 -0
  129. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/hooks.py +0 -0
  130. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/include_skill.py +0 -0
  131. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/lint.py +0 -0
  132. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/list_mcp.py +0 -0
  133. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/list_sessions.py +0 -0
  134. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/list_skills.py +0 -0
  135. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/load.py +0 -0
  136. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/load_hook.py +0 -0
  137. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/load_mcp.py +0 -0
  138. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/load_session.py +0 -0
  139. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/load_skill.py +0 -0
  140. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/ls.py +0 -0
  141. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/map.py +0 -0
  142. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/map_refresh.py +0 -0
  143. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/merge.py +0 -0
  144. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/model.py +0 -0
  145. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/models.py +0 -0
  146. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/multiline_mode.py +0 -0
  147. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/paste.py +0 -0
  148. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/quit.py +0 -0
  149. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/read_only.py +0 -0
  150. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/read_only_stub.py +0 -0
  151. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/reap_agent.py +0 -0
  152. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/reasoning_effort.py +0 -0
  153. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/remove_hook.py +0 -0
  154. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/remove_mcp.py +0 -0
  155. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/remove_skill.py +0 -0
  156. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/report.py +0 -0
  157. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/reset.py +0 -0
  158. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/rules.py +0 -0
  159. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/run.py +0 -0
  160. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/save.py +0 -0
  161. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/save_session.py +0 -0
  162. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/settings.py +0 -0
  163. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/spawn_agent.py +0 -0
  164. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/switch_agent.py +0 -0
  165. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/terminal_data/linux.keytab +0 -0
  166. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/terminal_setup.py +0 -0
  167. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/test.py +0 -0
  168. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/think_tokens.py +0 -0
  169. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/tokens.py +0 -0
  170. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/undo.py +0 -0
  171. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/utils/__init__.py +0 -0
  172. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/utils/base_command.py +0 -0
  173. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/utils/helpers.py +0 -0
  174. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/utils/registry.py +0 -0
  175. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/utils/save_load_manager.py +0 -0
  176. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/voice.py +0 -0
  177. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/weak_model.py +0 -0
  178. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/web.py +0 -0
  179. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/commands/workspace.py +0 -0
  180. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/deprecated_args.py +0 -0
  181. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/diffs.py +0 -0
  182. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/dump.py +0 -0
  183. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/editor.py +0 -0
  184. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/exceptions.py +0 -0
  185. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/format_settings.py +0 -0
  186. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/help.py +0 -0
  187. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/help_pats.py +0 -0
  188. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/__init__.py +0 -0
  189. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/agents/__init__.py +0 -0
  190. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/agents/config.py +0 -0
  191. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/agents/service.py +0 -0
  192. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/background_commands.py +0 -0
  193. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/command_parser.py +0 -0
  194. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/conversation/__init__.py +0 -0
  195. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/conversation/base_message.py +0 -0
  196. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/conversation/files.py +0 -0
  197. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/conversation/integration.py +0 -0
  198. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/conversation/manager.py +0 -0
  199. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/conversation/service.py +0 -0
  200. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/conversation/tags.py +0 -0
  201. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/conversation/utils.py +0 -0
  202. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/copypaste.py +0 -0
  203. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/coroutines.py +0 -0
  204. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/crypto.py +0 -0
  205. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/file_searcher.py +0 -0
  206. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/file_system/__init__.py +0 -0
  207. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/file_system/builders.py +0 -0
  208. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/file_system/ignore.py +0 -0
  209. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/file_system/ngram_index.py +0 -0
  210. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/file_system/service.py +0 -0
  211. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/file_system/trie_index.py +0 -0
  212. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/grep_ast/__init__.py +0 -0
  213. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/grep_ast/dump.py +0 -0
  214. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/grep_ast/grep_ast.py +0 -0
  215. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/grep_ast/main.py +0 -0
  216. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/grep_ast/parsers.py +0 -0
  217. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/grep_ast/tsl.py +0 -0
  218. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/hashline.py +0 -0
  219. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/hashpos/__init__.py +0 -0
  220. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/hashpos/hashpos.py +0 -0
  221. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/hashpos/hashpos.v1.bak +0 -0
  222. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/io_proxy.py +0 -0
  223. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/model_providers.py +0 -0
  224. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/monorepo/__init__.py +0 -0
  225. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/monorepo/config.py +0 -0
  226. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/monorepo/local_workspace.py +0 -0
  227. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/monorepo/project.py +0 -0
  228. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/monorepo/workspace.py +0 -0
  229. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/monorepo/worktree.py +0 -0
  230. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/nested.py +0 -0
  231. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/observations/__init__.py +0 -0
  232. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/observations/service.py +0 -0
  233. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/orchestration/__init__.py +0 -0
  234. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/orchestration/environment.py +0 -0
  235. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/orchestration/security.py +0 -0
  236. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/orchestration/service.py +0 -0
  237. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/plugin_manager.py +0 -0
  238. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/profiler.py +0 -0
  239. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/requests.py +0 -0
  240. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/responses.py +0 -0
  241. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/skills.py +0 -0
  242. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/helpers/threading.py +0 -0
  243. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/history.py +0 -0
  244. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/hooks/__init__.py +0 -0
  245. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/hooks/base.py +0 -0
  246. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/hooks/helpers.py +0 -0
  247. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/hooks/integration.py +0 -0
  248. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/hooks/manager.py +0 -0
  249. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/hooks/registry.py +0 -0
  250. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/hooks/service.py +0 -0
  251. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/hooks/types.py +0 -0
  252. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/interruptible_input.py +0 -0
  253. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/linter.py +0 -0
  254. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/llm.py +0 -0
  255. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/mcp/__init__.py +0 -0
  256. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/mcp/manager.py +0 -0
  257. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/mcp/oauth.py +0 -0
  258. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/mcp/server.py +0 -0
  259. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/mcp/utils.py +0 -0
  260. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/mdstream.py +0 -0
  261. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/onboarding.py +0 -0
  262. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/__init__.py +0 -0
  263. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/agent.yml +0 -0
  264. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/architect.yml +0 -0
  265. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/ask.yml +0 -0
  266. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/base.yml +0 -0
  267. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/context.yml +0 -0
  268. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/copypaste.yml +0 -0
  269. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/editblock.yml +0 -0
  270. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/editblock_fenced.yml +0 -0
  271. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/editblock_func.yml +0 -0
  272. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/editor_diff_fenced.yml +0 -0
  273. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/editor_editblock.yml +0 -0
  274. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/editor_whole.yml +0 -0
  275. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/hashline.yml +0 -0
  276. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/help.yml +0 -0
  277. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/patch.yml +0 -0
  278. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/single_wholefile_func.yml +0 -0
  279. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/subagent.yml +0 -0
  280. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/udiff.yml +0 -0
  281. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/udiff_simple.yml +0 -0
  282. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/utils/__init__.py +0 -0
  283. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/utils/registry.py +0 -0
  284. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/utils/system.py +0 -0
  285. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/wholefile.yml +0 -0
  286. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/prompts/wholefile_func.yml +0 -0
  287. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  288. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  289. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
  290. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  291. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  292. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  293. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  294. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  295. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  296. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  297. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  298. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  299. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  300. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  301. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  302. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  303. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  304. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  305. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  306. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  307. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  308. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  309. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  310. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  311. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  312. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  313. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  314. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  315. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  316. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  317. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  318. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  319. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/README.md +0 -0
  320. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
  321. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  322. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  323. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  324. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  325. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  326. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  327. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  328. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  329. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  330. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  331. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  332. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  333. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  334. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  335. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  336. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  337. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  338. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  339. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  340. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  341. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  342. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  343. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  344. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  345. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  346. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  347. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/reasoning_tags.py +0 -0
  348. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/repo.py +0 -0
  349. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/repomap.py +0 -0
  350. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/report.py +0 -0
  351. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/resources/__init__.py +0 -0
  352. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/resources/model-metadata.json +0 -0
  353. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/resources/model-settings.yml +0 -0
  354. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/resources/providers.json +0 -0
  355. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/run_cmd.py +0 -0
  356. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/scrape.py +0 -0
  357. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/sendchat.py +0 -0
  358. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/sessions.py +0 -0
  359. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/special.py +0 -0
  360. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/__init__.py +0 -0
  361. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/_yield.py +0 -0
  362. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/command.py +0 -0
  363. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/command_interactive.py +0 -0
  364. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/delegate.py +0 -0
  365. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/edit_file.py +0 -0
  366. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/explore_code.py +0 -0
  367. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/git_branch.py +0 -0
  368. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/git_diff.py +0 -0
  369. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/git_log.py +0 -0
  370. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/git_remote.py +0 -0
  371. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/git_show.py +0 -0
  372. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/git_status.py +0 -0
  373. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/grep.py +0 -0
  374. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/ls.py +0 -0
  375. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/orchestrate.py +0 -0
  376. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/read_file.py +0 -0
  377. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/resource_manager.py +0 -0
  378. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/thinking.py +0 -0
  379. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/undo_change.py +0 -0
  380. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/update_todo_list.py +0 -0
  381. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/utils/__init__.py +0 -0
  382. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/utils/base_tool.py +0 -0
  383. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/utils/helpers.py +0 -0
  384. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/utils/output.py +0 -0
  385. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/utils/registry.py +0 -0
  386. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/utils/responses.py +0 -0
  387. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/validations/__init__.py +0 -0
  388. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tools/validations/validations.py +0 -0
  389. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tui/__init__.py +0 -0
  390. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tui/app.py +0 -0
  391. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tui/io.py +0 -0
  392. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tui/styles.tcss +0 -0
  393. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tui/widgets/__init__.py +0 -0
  394. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tui/widgets/completion_bar.py +0 -0
  395. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tui/widgets/file_list.py +0 -0
  396. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tui/widgets/footer.py +0 -0
  397. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tui/widgets/input_area.py +0 -0
  398. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tui/widgets/input_container.py +0 -0
  399. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tui/widgets/key_hints.py +0 -0
  400. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tui/widgets/output.py +0 -0
  401. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tui/widgets/status_bar.py +0 -0
  402. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tui/widgets/subagent_pills.py +0 -0
  403. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/tui/worker.py +0 -0
  404. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/urls.py +0 -0
  405. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/versioncheck.py +0 -0
  406. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/voice.py +0 -0
  407. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/watch.py +0 -0
  408. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/watch_prompts.py +0 -0
  409. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/Gemfile +0 -0
  410. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/_includes/blame.md +0 -0
  411. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/_includes/get-started.md +0 -0
  412. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/_includes/help-tip.md +0 -0
  413. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/_includes/help.md +0 -0
  414. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/_includes/install.md +0 -0
  415. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/_includes/keys.md +0 -0
  416. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/_includes/model-warnings.md +0 -0
  417. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/_includes/multi-line.md +0 -0
  418. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/_includes/python-m-aider.md +0 -0
  419. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/_includes/recording.css +0 -0
  420. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/_includes/recording.md +0 -0
  421. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/_includes/works-best.md +0 -0
  422. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/_sass/_features.scss +0 -0
  423. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/_sass/_footer.scss +0 -0
  424. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/_sass/_hero.scss +0 -0
  425. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/_sass/_info.scss +0 -0
  426. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/_sass/_layout.scss +0 -0
  427. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/_sass/_reset.scss +0 -0
  428. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/_sass/_testimonials.scss +0 -0
  429. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/_sass/_typography.scss +0 -0
  430. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/_sass/_variables.scss +0 -0
  431. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/_sass/custom/custom.scss +0 -0
  432. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/_sass/global-overrides.scss +0 -0
  433. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/config/adv-model-settings.md +0 -0
  434. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/config/agent-mode.md +0 -0
  435. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/config/api-keys.md +0 -0
  436. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/config/conf.md +0 -0
  437. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/config/custom-commands.md +0 -0
  438. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  439. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/config/dotenv.md +0 -0
  440. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/config/editor.md +0 -0
  441. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/config/hooks.md +0 -0
  442. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/config/mcp.md +0 -0
  443. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/config/model-aliases.md +0 -0
  444. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/config/model-configuration.md +0 -0
  445. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/config/model-providers.md +0 -0
  446. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/config/options.md +0 -0
  447. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/config/reasoning.md +0 -0
  448. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/config/retries.md +0 -0
  449. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/config/security.md +0 -0
  450. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/config/skills.md +0 -0
  451. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/config/subagents.md +0 -0
  452. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/config/tui.md +0 -0
  453. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/config/workspaces.md +0 -0
  454. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/config.md +0 -0
  455. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/git.md +0 -0
  456. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/index.md +0 -0
  457. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/install/docker.md +0 -0
  458. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/install.md +0 -0
  459. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/languages.md +0 -0
  460. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  461. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/legal/privacy.md +0 -0
  462. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/llms/anthropic.md +0 -0
  463. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/llms/azure.md +0 -0
  464. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/llms/bedrock.md +0 -0
  465. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/llms/cohere.md +0 -0
  466. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/llms/deepseek.md +0 -0
  467. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/llms/gemini.md +0 -0
  468. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/llms/github.md +0 -0
  469. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/llms/groq.md +0 -0
  470. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/llms/lm-studio.md +0 -0
  471. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/llms/ollama.md +0 -0
  472. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/llms/openai-compat.md +0 -0
  473. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/llms/openai.md +0 -0
  474. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/llms/openrouter.md +0 -0
  475. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/llms/other.md +0 -0
  476. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/llms/vertex.md +0 -0
  477. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/llms/warnings.md +0 -0
  478. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/llms/xai.md +0 -0
  479. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/llms.md +0 -0
  480. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/more/analytics.md +0 -0
  481. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/more/edit-formats.md +0 -0
  482. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/more/infinite-output.md +0 -0
  483. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/more-info.md +0 -0
  484. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/repomap.md +0 -0
  485. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/scripting.md +0 -0
  486. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
  487. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  488. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/troubleshooting/imports.md +0 -0
  489. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  490. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/troubleshooting/support.md +0 -0
  491. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  492. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  493. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/troubleshooting.md +0 -0
  494. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/usage/commands.md +0 -0
  495. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/usage/conventions.md +0 -0
  496. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/usage/copypaste.md +0 -0
  497. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/usage/images-urls.md +0 -0
  498. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/usage/lint-test.md +0 -0
  499. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/usage/modes.md +0 -0
  500. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/usage/not-code.md +0 -0
  501. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/usage/notifications.md +0 -0
  502. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/usage/optional.md +0 -0
  503. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/usage/sessions.md +0 -0
  504. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/usage/tips.md +0 -0
  505. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/usage/voice.md +0 -0
  506. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/usage/watch.md +0 -0
  507. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/docs/usage.md +0 -0
  508. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli/website/share/index.md +0 -0
  509. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli_dev.egg-info/dependency_links.txt +0 -0
  510. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli_dev.egg-info/entry_points.txt +0 -0
  511. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli_dev.egg-info/requires.txt +0 -0
  512. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/cecli_dev.egg-info/top_level.txt +0 -0
  513. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/docker/Dockerfile +0 -0
  514. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  515. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/pyproject.toml +0 -0
  516. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/pytest.ini +0 -0
  517. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/requirements/common-constraints.txt +0 -0
  518. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/requirements/requirements-dev.in +0 -0
  519. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/requirements/requirements-dev.txt +0 -0
  520. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/requirements/requirements-help.in +0 -0
  521. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/requirements/requirements-help.txt +0 -0
  522. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/requirements/requirements-playwright.in +0 -0
  523. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/requirements/requirements-playwright.txt +0 -0
  524. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/requirements/requirements.in +0 -0
  525. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/requirements/tree-sitter.in +0 -0
  526. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/requirements.txt +0 -0
  527. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/30k-image.py +0 -0
  528. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/Dockerfile.jekyll +0 -0
  529. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/__init__.py +0 -0
  530. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/blame.py +0 -0
  531. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/clean_metadata.py +0 -0
  532. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/compare-message-history.py +0 -0
  533. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/cost_analyzer.py +0 -0
  534. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/cost_calculator.py +0 -0
  535. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/dl_icons.py +0 -0
  536. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/filter-chat-mode.js +0 -0
  537. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/generate_providers.py +0 -0
  538. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/get_contributor_list.js +0 -0
  539. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/get_hashline.py +0 -0
  540. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/history_prompts.py +0 -0
  541. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/homepage.py +0 -0
  542. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/issues.py +0 -0
  543. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/jekyll_build.sh +0 -0
  544. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/jekyll_run.sh +0 -0
  545. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/logo_svg.py +0 -0
  546. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/optimize_tokens.sh +0 -0
  547. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/pip-compile.sh +0 -0
  548. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/recording_audio.py +0 -0
  549. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/redact-cast.py +0 -0
  550. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/rename_to_cecli.py +0 -0
  551. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/tmux_record.sh +0 -0
  552. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/tsl_pack_langs.py +0 -0
  553. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/update-blame.sh +0 -0
  554. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/update-docs.sh +0 -0
  555. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/update-history.py +0 -0
  556. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/versionbump.py +0 -0
  557. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/scripts/yank-old-versions.py +0 -0
  558. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/setup.cfg +0 -0
  559. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/shim.pyproject.toml +0 -0
  560. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/__init__.py +0 -0
  561. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/__init__.py +0 -0
  562. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/conftest.py +0 -0
  563. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_aws_credentials.py +0 -0
  564. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_background_commands.py +0 -0
  565. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_commands.py +0 -0
  566. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_custom_commands.py +0 -0
  567. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_deprecated.py +0 -0
  568. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_editblock.py +0 -0
  569. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_editor.py +0 -0
  570. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_exceptions.py +0 -0
  571. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_find_or_blocks.py +0 -0
  572. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_hashline.py +0 -0
  573. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_hashline_closure.py +0 -0
  574. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_history.py +0 -0
  575. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_io.py +0 -0
  576. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_linter.py +0 -0
  577. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_model_info_manager.py +0 -0
  578. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_models.py +0 -0
  579. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_onboarding.py +0 -0
  580. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_plugin_manager.py +0 -0
  581. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_prompts.py +0 -0
  582. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_reasoning.py +0 -0
  583. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_repo.py +0 -0
  584. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_repomap.py +0 -0
  585. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_run_cmd.py +0 -0
  586. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_sanity_check_repo.py +0 -0
  587. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_scripting.py +0 -0
  588. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_sendchat.py +0 -0
  589. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_session_args.py +0 -0
  590. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_session_crypto.py +0 -0
  591. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_sessions.py +0 -0
  592. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_sessions_manager.py +0 -0
  593. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_skills.py +0 -0
  594. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_special.py +0 -0
  595. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_ssl_verification.py +0 -0
  596. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_udiff.py +0 -0
  597. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_urls.py +0 -0
  598. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_voice.py +0 -0
  599. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_watch.py +0 -0
  600. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/basic/test_wholefile.py +0 -0
  601. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/coders/test_coder_switching.py +0 -0
  602. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/coders/test_copypaste_coder.py +0 -0
  603. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/commands/test_compaction.py +0 -0
  604. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/commands/test_switch_agent.py +0 -0
  605. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/conftest.py +0 -0
  606. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/conversations/test_conversation_integration.py +0 -0
  607. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/conversations/test_conversation_system.py +0 -0
  608. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  609. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/chat-history.md +0 -0
  610. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/arduino/test.ino +0 -0
  611. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/bash/test.sh +0 -0
  612. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/c/test.c +0 -0
  613. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/chatito/test.chatito +0 -0
  614. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/clojure/test.clj +0 -0
  615. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  616. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/cpp/test.cpp +0 -0
  617. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/csharp/test.cs +0 -0
  618. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/d/test.d +0 -0
  619. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/dart/test.dart +0 -0
  620. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/elisp/test.el +0 -0
  621. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/elixir/test.ex +0 -0
  622. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/elm/test.elm +0 -0
  623. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/gleam/test.gleam +0 -0
  624. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/go/test.go +0 -0
  625. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/haskell/test.hs +0 -0
  626. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/hcl/test.tf +0 -0
  627. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/java/test.java +0 -0
  628. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/javascript/test.js +0 -0
  629. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/kotlin/test.kt +0 -0
  630. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/lua/test.lua +0 -0
  631. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/matlab/test.m +0 -0
  632. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/ocaml/test.ml +0 -0
  633. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  634. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/php/test.php +0 -0
  635. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/pony/test.pony +0 -0
  636. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/properties/test.properties +0 -0
  637. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/python/test.py +0 -0
  638. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/ql/test.ql +0 -0
  639. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/r/test.r +0 -0
  640. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/racket/test.rkt +0 -0
  641. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/ruby/test.rb +0 -0
  642. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/rust/test.rs +0 -0
  643. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/scala/test.scala +0 -0
  644. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/solidity/test.sol +0 -0
  645. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/swift/test.swift +0 -0
  646. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/tsx/test.tsx +0 -0
  647. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/typescript/test.ts +0 -0
  648. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/udev/test.rules +0 -0
  649. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/languages/zig/test.zig +0 -0
  650. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/sample-code-base/sample.js +0 -0
  651. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/sample-code-base/sample.py +0 -0
  652. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  653. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/watch.js +0 -0
  654. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/watch.lisp +0 -0
  655. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/watch.py +0 -0
  656. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/fixtures/watch_question.js +0 -0
  657. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/help/test_help.py +0 -0
  658. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/helpers/monorepo/LOCAL_WORKSPACE.md +0 -0
  659. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/helpers/monorepo/test_config.py +0 -0
  660. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/helpers/monorepo/test_config_active.py +0 -0
  661. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
  662. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/helpers/monorepo/test_local_workspace.py +0 -0
  663. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
  664. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/helpers/monorepo/test_workspace.py +0 -0
  665. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/helpers/observations/test_observation_service.py +0 -0
  666. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/helpers/test_orchestration.py +0 -0
  667. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/hooks/__init__.py +0 -0
  668. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/hooks/test_base.py +0 -0
  669. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/hooks/test_manager.py +0 -0
  670. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/hooks/test_registry.py +0 -0
  671. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/integration/test_agent_mcp_management.py +0 -0
  672. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/integration/test_mcp_management.py +0 -0
  673. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/mcp/__init__.py +0 -0
  674. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/mcp/conftest.py +0 -0
  675. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/mcp/mock_server.py +0 -0
  676. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/mcp/test_keepalive_concurrency.py +0 -0
  677. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/mcp/test_keepalive_config.py +0 -0
  678. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/mcp/test_keepalive_integration.py +0 -0
  679. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/mcp/test_keepalive_logging.py +0 -0
  680. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/mcp/test_keepalive_resilience.py +0 -0
  681. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/mcp/test_keepalive_unit.py +0 -0
  682. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/mcp/test_manager.py +0 -0
  683. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/scrape/test_playwright_disable.py +0 -0
  684. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/scrape/test_scrape.py +0 -0
  685. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/subagents/__init__.py +0 -0
  686. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/subagents/conftest.py +0 -0
  687. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/subagents/test_commands.py +0 -0
  688. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/subagents/test_config.py +0 -0
  689. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/subagents/test_delegate.py +0 -0
  690. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/subagents/test_finished.py +0 -0
  691. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/subagents/test_io_proxy.py +0 -0
  692. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/subagents/test_service.py +0 -0
  693. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/subagents/test_sub_agent_coder.py +0 -0
  694. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/test_requests.py +0 -0
  695. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/tools/test_extractions.py +0 -0
  696. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/tools/test_get_lines.py +0 -0
  697. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/tools/test_git_branch.py +0 -0
  698. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/tools/test_git_diff.py +0 -0
  699. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/tools/test_grep.py +0 -0
  700. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/tools/test_insert_block.py +0 -0
  701. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/tools/test_read_range_execute.py +0 -0
  702. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/tools/test_registry.py +0 -0
  703. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/tools/test_remove_mcp_tool.py +0 -0
  704. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/tools/test_tool_arguments.py +0 -0
  705. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/tools/test_tools_load_mcp_tool.py +0 -0
  706. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/tools/validations.py +0 -0
  707. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/tui/test_app.py +0 -0
  708. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/unit/test_load_mcp.py +0 -0
  709. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/unit/test_remove_mcp.py +0 -0
  710. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/tests/unit/test_unit_load_mcp_tool.py +0 -0
  711. {cecli_dev-1.0.0rc1 → cecli_dev-1.0.0rc3}/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.0rc3
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.0rc3'
22
+ __version_tuple__ = version_tuple = (1, 0, 0, 'rc3')
23
23
 
24
- __commit_id__ = commit_id = 'ge71e8173f'
24
+ __commit_id__ = commit_id = 'gf45ddde4f'
@@ -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
@@ -1222,6 +1221,8 @@ class InputOutput:
1222
1221
  self, url, prompt="Open URL for more info?", allow_never=True, acknowledge=False
1223
1222
  ):
1224
1223
  """Offer to open a URL in the browser, returns True if opened."""
1224
+ import webbrowser
1225
+
1225
1226
  if url in self.never_prompts:
1226
1227
  return False
1227
1228
  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.0rc3
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.0rc3",
3
+ "distance": 0,
4
+ "node": "gf45ddde4f778c2fae8adcbb7ff3695ab6c1bfdb9",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-07-15"
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__ = []
@@ -1,98 +0,0 @@
1
- import numpy as np
2
-
3
-
4
- def normalize_vector(vector):
5
- """Normalize a vector to unit length (L2 norm).
6
-
7
- Args:
8
- vector (np.ndarray or list): Input vector
9
-
10
- Returns:
11
- np.ndarray: Normalized vector with length 1
12
- """
13
- vector = np.asarray(vector, dtype=np.float64)
14
- magnitude = np.linalg.norm(vector)
15
- if magnitude == 0:
16
- return vector # Return original if zero vector
17
- return vector / magnitude
18
-
19
-
20
- def cosine_similarity(vector1, vector2):
21
- """Calculate cosine similarity between two vectors.
22
-
23
- Args:
24
- vector1 (np.ndarray or list): First vector
25
- vector2 (np.ndarray or list): Second vector
26
-
27
- Returns:
28
- float: Cosine similarity between the vectors (range: -1 to 1)
29
- """
30
- vector1 = np.asarray(vector1, dtype=np.float64)
31
- vector2 = np.asarray(vector2, dtype=np.float64)
32
-
33
- if len(vector1) != len(vector2):
34
- raise ValueError("Vectors must have the same length")
35
-
36
- # Use NumPy's optimized dot product and norm functions
37
- dot_product = np.dot(vector1, vector2)
38
- magnitude1 = np.linalg.norm(vector1)
39
- magnitude2 = np.linalg.norm(vector2)
40
-
41
- if magnitude1 == 0 or magnitude2 == 0:
42
- return 0.0 # Return 0 if either vector is zero
43
-
44
- return dot_product / (magnitude1 * magnitude2)
45
-
46
-
47
- def create_bigram_vector(texts):
48
- """Create a bigram frequency vector using optimized NumPy operations.
49
-
50
- This version uses pre-computed bigram indices and NumPy's bincount
51
- for maximum performance on large datasets.
52
-
53
- Args:
54
- texts (tuple): Tuple of strings to process
55
-
56
- Returns:
57
- np.ndarray: Vector of bigram frequencies
58
- """
59
- # Pre-compute bigram indices (0 for 'aa', 1 for 'ab', ..., 675 for 'zz')
60
- bigram_indices = {}
61
- idx = 0
62
- for i in range(ord("a"), ord("z") + 1):
63
- for j in range(ord("a"), ord("z") + 1):
64
- bigram = chr(i) + chr(j)
65
- bigram_indices[bigram] = idx
66
- idx += 1
67
-
68
- # Initialize frequency vector
69
- vector = np.zeros(26 * 26, dtype=np.int32)
70
-
71
- # Process all texts
72
- for text in texts:
73
- text_lower = text.lower()
74
- if len(text_lower) < 2:
75
- continue
76
-
77
- # Extract bigrams using NumPy sliding window view
78
- # Convert string to character array for efficient slicing
79
- chars = np.array(list(text_lower))
80
-
81
- # Create bigrams by combining consecutive characters
82
- bigrams = np.char.add(chars[:-1], chars[1:])
83
-
84
- # Filter only alphabetic bigrams
85
- mask = np.array([bg.isalpha() for bg in bigrams])
86
- valid_bigrams = bigrams[mask]
87
-
88
- # Count bigrams using bincount with pre-computed indices
89
- indices = []
90
- for bg in valid_bigrams:
91
- if bg in bigram_indices:
92
- indices.append(bigram_indices[bg])
93
-
94
- if indices:
95
- counts = np.bincount(indices, minlength=26 * 26)
96
- vector += counts
97
-
98
- return vector
@@ -1,8 +0,0 @@
1
- {
2
- "tag": "1.0.0rc1",
3
- "distance": 0,
4
- "node": "ge71e8173f9c5b643df0f33c3537db7064c5dcd8d",
5
- "dirty": false,
6
- "branch": "HEAD",
7
- "node_date": "2026-07-12"
8
- }
File without changes
File without changes