cecli-dev 1.2.0__tar.gz → 1.2.1__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 (827) hide show
  1. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/PKG-INFO +1 -1
  2. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/_version.py +3 -3
  3. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/base_coder.py +25 -4
  4. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/agents/defaults/memorizer.md +5 -3
  5. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/background_commands.py +4 -1
  6. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/memory/utils.py +54 -0
  7. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/responses.py +47 -6
  8. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/skills.py +58 -1
  9. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/main.py +1 -1
  10. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/command.py +1 -1
  11. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/search_facts.py +0 -5
  12. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/adv-model-settings.md +4 -4
  13. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/model-configuration.md +2 -2
  14. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/skills.md +8 -0
  15. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/bedrock.md +3 -14
  16. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/gemini.md +0 -12
  17. cecli_dev-1.2.1/cecli/website/docs/llms/github.md +22 -0
  18. cecli_dev-1.2.1/cecli/website/docs/llms/other.md +46 -0
  19. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/warnings.md +1 -1
  20. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/troubleshooting/imports.md +0 -1
  21. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/troubleshooting/support.md +2 -2
  22. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/troubleshooting/warnings.md +1 -2
  23. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli_dev.egg-info/PKG-INFO +1 -1
  24. cecli_dev-1.2.1/cecli_dev.egg-info/scm_version.json +8 -0
  25. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_main.py +0 -25
  26. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_sanity_check_repo.py +20 -2
  27. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_tool_arguments.py +94 -0
  28. cecli_dev-1.2.0/cecli/website/docs/llms/github.md +0 -22
  29. cecli_dev-1.2.0/cecli/website/docs/llms/other.md +0 -92
  30. cecli_dev-1.2.0/cecli_dev.egg-info/scm_version.json +0 -8
  31. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.dockerignore +0 -0
  32. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.flake8 +0 -0
  33. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.gitattributes +0 -0
  34. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  35. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.github/workflows/check_pypi_version.yml +0 -0
  36. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.github/workflows/docker-build-test.yml +0 -0
  37. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.github/workflows/docker-release.yml +0 -0
  38. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.github/workflows/issues.yml +0 -0
  39. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.github/workflows/pages.yml +0 -0
  40. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.github/workflows/pre-commit.yml +0 -0
  41. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.github/workflows/release.yml +0 -0
  42. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.github/workflows/ubuntu-tests.yml +0 -0
  43. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.github/workflows/windows-tests.yml +0 -0
  44. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.github/workflows/windows_check_pypi_version.yml +0 -0
  45. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.gitignore +0 -0
  46. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/.pre-commit-config.yaml +0 -0
  47. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/CHANGELOG.md +0 -0
  48. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/CNAME +0 -0
  49. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/CONTRIBUTING.md +0 -0
  50. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/HISTORY.md +0 -0
  51. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/LICENSE.txt +0 -0
  52. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/MANIFEST.in +0 -0
  53. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/README.md +0 -0
  54. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/Dockerfile +0 -0
  55. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/README.md +0 -0
  56. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/__init__.py +0 -0
  57. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/benchmark.py +0 -0
  58. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/benchmark_classic.py +0 -0
  59. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/clone-exercism.sh +0 -0
  60. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/cpp-test.sh +0 -0
  61. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/docker.sh +0 -0
  62. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/docker_build.sh +0 -0
  63. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/install-docker-ubuntu.sh +0 -0
  64. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/npm-test.sh +0 -0
  65. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/over_time.py +0 -0
  66. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/plot.sh +0 -0
  67. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/plots.py +0 -0
  68. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/problem_stats.py +0 -0
  69. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/prompts.py +0 -0
  70. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/refactor_tools.py +0 -0
  71. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/rsync.sh +0 -0
  72. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/rungrid.py +0 -0
  73. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/swe-bench-lite.txt +0 -0
  74. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/swe-bench.txt +0 -0
  75. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/swe_bench.py +0 -0
  76. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/test_benchmark.py +0 -0
  77. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/variations.1.sh +0 -0
  78. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/variations.2.sh +0 -0
  79. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/variations.3.sh +0 -0
  80. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/benchmark/variations.4.sh +0 -0
  81. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/__init__.py +0 -0
  82. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/__main__.py +0 -0
  83. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/args.py +0 -0
  84. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/args_formatter.py +0 -0
  85. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/change_tracker.py +0 -0
  86. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/__init__.py +0 -0
  87. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/agent_coder.py +0 -0
  88. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/architect_coder.py +0 -0
  89. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/ask_coder.py +0 -0
  90. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/chat_chunks.py +0 -0
  91. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/context_coder.py +0 -0
  92. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/copypaste_coder.py +0 -0
  93. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/editblock_coder.py +0 -0
  94. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/editblock_fenced_coder.py +0 -0
  95. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/editblock_func_coder.py +0 -0
  96. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  97. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/editor_editblock_coder.py +0 -0
  98. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/editor_whole_coder.py +0 -0
  99. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/hashline_coder.py +0 -0
  100. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/help_coder.py +0 -0
  101. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/patch_coder.py +0 -0
  102. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/search_replace.py +0 -0
  103. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/shell.py +0 -0
  104. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/single_wholefile_func_coder.py +0 -0
  105. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/sub_agent_coder.py +0 -0
  106. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/udiff_coder.py +0 -0
  107. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/udiff_simple.py +0 -0
  108. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/wholefile_coder.py +0 -0
  109. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/coders/wholefile_func_coder.py +0 -0
  110. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/__init__.py +0 -0
  111. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/add.py +0 -0
  112. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/agent.py +0 -0
  113. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/agent_model.py +0 -0
  114. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/agent_tree.py +0 -0
  115. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/architect.py +0 -0
  116. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/ask.py +0 -0
  117. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/auto_memory.py +0 -0
  118. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/chat_mode.py +0 -0
  119. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/clear.py +0 -0
  120. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/code.py +0 -0
  121. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/command_prefix.py +0 -0
  122. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/commit.py +0 -0
  123. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/compact.py +0 -0
  124. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/context.py +0 -0
  125. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/context_blocks.py +0 -0
  126. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/context_management.py +0 -0
  127. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/copy.py +0 -0
  128. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/copy_context.py +0 -0
  129. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/core.py +0 -0
  130. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/diff.py +0 -0
  131. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/drop.py +0 -0
  132. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/editor.py +0 -0
  133. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/editor_model.py +0 -0
  134. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/exclude_skill.py +0 -0
  135. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/exit.py +0 -0
  136. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/git.py +0 -0
  137. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/hashline.py +0 -0
  138. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/help.py +0 -0
  139. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/history_search.py +0 -0
  140. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/hooks.py +0 -0
  141. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/hot_reload.py +0 -0
  142. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/include_skill.py +0 -0
  143. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/lint.py +0 -0
  144. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/list_mcp.py +0 -0
  145. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/list_queue.py +0 -0
  146. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/list_sessions.py +0 -0
  147. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/list_skills.py +0 -0
  148. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/load.py +0 -0
  149. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/load_hook.py +0 -0
  150. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/load_mcp.py +0 -0
  151. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/load_session.py +0 -0
  152. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/load_skill.py +0 -0
  153. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/ls.py +0 -0
  154. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/map.py +0 -0
  155. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/map_refresh.py +0 -0
  156. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/merge.py +0 -0
  157. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/model.py +0 -0
  158. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/models.py +0 -0
  159. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/multiline_mode.py +0 -0
  160. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/paste.py +0 -0
  161. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/queue.py +0 -0
  162. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/quit.py +0 -0
  163. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/read_only.py +0 -0
  164. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/read_only_stub.py +0 -0
  165. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/reap_agent.py +0 -0
  166. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/reasoning_effort.py +0 -0
  167. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/remove_hook.py +0 -0
  168. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/remove_mcp.py +0 -0
  169. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/remove_memory.py +0 -0
  170. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/remove_queue.py +0 -0
  171. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/remove_skill.py +0 -0
  172. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/report.py +0 -0
  173. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/reset.py +0 -0
  174. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/rules.py +0 -0
  175. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/run.py +0 -0
  176. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/save.py +0 -0
  177. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/save_session.py +0 -0
  178. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/search_memory.py +0 -0
  179. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/settings.py +0 -0
  180. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/spawn_agent.py +0 -0
  181. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/switch_agent.py +0 -0
  182. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/terminal_data/linux.keytab +0 -0
  183. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/terminal_setup.py +0 -0
  184. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/test.py +0 -0
  185. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/think_tokens.py +0 -0
  186. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/tokens.py +0 -0
  187. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/undo.py +0 -0
  188. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/utils/__init__.py +0 -0
  189. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/utils/base_command.py +0 -0
  190. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/utils/helpers.py +0 -0
  191. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/utils/registry.py +0 -0
  192. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/utils/save_load_manager.py +0 -0
  193. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/voice.py +0 -0
  194. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/weak_model.py +0 -0
  195. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/web.py +0 -0
  196. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/commands/workspace.py +0 -0
  197. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/decoding.py +0 -0
  198. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/deprecated_args.py +0 -0
  199. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/diffs.py +0 -0
  200. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/dump.py +0 -0
  201. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/editor.py +0 -0
  202. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/exceptions.py +0 -0
  203. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/format_settings.py +0 -0
  204. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/help.py +0 -0
  205. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/help_pats.py +0 -0
  206. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/__init__.py +0 -0
  207. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/agents/__init__.py +0 -0
  208. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/agents/config.py +0 -0
  209. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/agents/defaults/__init__.py +0 -0
  210. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/agents/defaults/worker.md +0 -0
  211. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/agents/service.py +0 -0
  212. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/command_parser.py +0 -0
  213. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/command_queue.py +0 -0
  214. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/config_utils.py +0 -0
  215. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/conversation/__init__.py +0 -0
  216. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/conversation/base_message.py +0 -0
  217. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/conversation/files.py +0 -0
  218. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/conversation/integration.py +0 -0
  219. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/conversation/manager.py +0 -0
  220. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/conversation/service.py +0 -0
  221. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/conversation/tags.py +0 -0
  222. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/conversation/utils.py +0 -0
  223. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/copypaste.py +0 -0
  224. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/coroutines.py +0 -0
  225. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/crypto.py +0 -0
  226. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/file_searcher.py +0 -0
  227. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/file_system/__init__.py +0 -0
  228. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/file_system/builders.py +0 -0
  229. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/file_system/ignore.py +0 -0
  230. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/file_system/ngram_index.py +0 -0
  231. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/file_system/service.py +0 -0
  232. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/file_system/trie_index.py +0 -0
  233. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/grep_ast/__init__.py +0 -0
  234. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/grep_ast/dump.py +0 -0
  235. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/grep_ast/grep_ast.py +0 -0
  236. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/grep_ast/main.py +0 -0
  237. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/grep_ast/parsers.py +0 -0
  238. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/grep_ast/tsl.py +0 -0
  239. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/hashline.py +0 -0
  240. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/hashpos/__init__.py +0 -0
  241. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/hashpos/hashpos.py +0 -0
  242. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/hashpos/hashpos.v1.bak +0 -0
  243. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/hashpos/transformations.py +0 -0
  244. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/io_proxy.py +0 -0
  245. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/leak_detect.py +0 -0
  246. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/__init__.py +0 -0
  247. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/aws_sigv4.py +0 -0
  248. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/config.py +0 -0
  249. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/domains/__init__.py +0 -0
  250. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/domains/bedrock.py +0 -0
  251. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/domains/chat.py +0 -0
  252. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/domains/gemini.py +0 -0
  253. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/domains/messages.py +0 -0
  254. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/domains/responses.py +0 -0
  255. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/formatters/__init__.py +0 -0
  256. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/formatters/reasoning.py +0 -0
  257. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/formatters/thinking.py +0 -0
  258. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/identifiers.py +0 -0
  259. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/litellm_compat.py +0 -0
  260. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/pipeline.py +0 -0
  261. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/__init__.py +0 -0
  262. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/anthropic.py +0 -0
  263. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/azure.py +0 -0
  264. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/base.py +0 -0
  265. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/bedrock.py +0 -0
  266. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/bedrock_mantle.py +0 -0
  267. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/deepseek.py +0 -0
  268. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/gemini.py +0 -0
  269. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/github_copilot.py +0 -0
  270. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/meta.py +0 -0
  271. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/openai.py +0 -0
  272. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/providers/openrouter.py +0 -0
  273. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/runtime.py +0 -0
  274. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/types.py +0 -0
  275. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/llms/utils.py +0 -0
  276. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/lock_detect.py +0 -0
  277. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/memory/__init__.py +0 -0
  278. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/memory/db.py +0 -0
  279. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/memory_control.py +0 -0
  280. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/model_config/__init__.py +0 -0
  281. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/model_config/agent.py +0 -0
  282. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/model_config/api.py +0 -0
  283. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/model_config/formatters/__init__.py +0 -0
  284. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/model_config/formatters/reasoning.py +0 -0
  285. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/model_config/formatters/thinking.py +0 -0
  286. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/model_config/identifiers.py +0 -0
  287. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/model_config/llm.py +0 -0
  288. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/model_config/pipeline.py +0 -0
  289. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/model_config/utils.py +0 -0
  290. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/model_providers.py +0 -0
  291. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/monorepo/__init__.py +0 -0
  292. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/monorepo/config.py +0 -0
  293. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/monorepo/local_workspace.py +0 -0
  294. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/monorepo/project.py +0 -0
  295. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/monorepo/workspace.py +0 -0
  296. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/monorepo/worktree.py +0 -0
  297. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/nested.py +0 -0
  298. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/observations/__init__.py +0 -0
  299. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/observations/service.py +0 -0
  300. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/orchestration/__init__.py +0 -0
  301. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/orchestration/agent_proxy.py +0 -0
  302. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/orchestration/environment.py +0 -0
  303. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/orchestration/region_resolver.py +0 -0
  304. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/orchestration/safe_methods.py +0 -0
  305. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/orchestration/security.py +0 -0
  306. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/orchestration/service.py +0 -0
  307. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/orchestration/tool_proxy.py +0 -0
  308. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/plugin_manager.py +0 -0
  309. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/profiler.py +0 -0
  310. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/queues.py +0 -0
  311. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/requests.py +0 -0
  312. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/server/__init__.py +0 -0
  313. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/server/acp/__init__.py +0 -0
  314. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/server/acp/bridge.py +0 -0
  315. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/server/acp/models.py +0 -0
  316. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/server/acp/protocol.py +0 -0
  317. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/server/signals.py +0 -0
  318. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/server/ws_server.py +0 -0
  319. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/similarity.py +0 -0
  320. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/helpers/threading.py +0 -0
  321. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/history.py +0 -0
  322. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/hooks/__init__.py +0 -0
  323. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/hooks/base.py +0 -0
  324. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/hooks/helpers.py +0 -0
  325. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/hooks/integration.py +0 -0
  326. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/hooks/manager.py +0 -0
  327. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/hooks/registry.py +0 -0
  328. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/hooks/service.py +0 -0
  329. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/hooks/types.py +0 -0
  330. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/http.py +0 -0
  331. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/interruptible_input.py +0 -0
  332. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/io.py +0 -0
  333. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/linter.py +0 -0
  334. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/llm.py +0 -0
  335. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/mcp/__init__.py +0 -0
  336. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/mcp/manager.py +0 -0
  337. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/mcp/oauth.py +0 -0
  338. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/mcp/server.py +0 -0
  339. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/mcp/utils.py +0 -0
  340. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/mdstream.py +0 -0
  341. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/models.py +0 -0
  342. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/onboarding.py +0 -0
  343. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/__init__.py +0 -0
  344. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/agent.yml +0 -0
  345. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/architect.yml +0 -0
  346. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/ask.yml +0 -0
  347. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/base.yml +0 -0
  348. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/context.yml +0 -0
  349. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/copypaste.yml +0 -0
  350. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/editblock.yml +0 -0
  351. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/editblock_fenced.yml +0 -0
  352. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/editblock_func.yml +0 -0
  353. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/editor_diff_fenced.yml +0 -0
  354. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/editor_editblock.yml +0 -0
  355. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/editor_whole.yml +0 -0
  356. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/hashline.yml +0 -0
  357. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/help.yml +0 -0
  358. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/patch.yml +0 -0
  359. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/single_wholefile_func.yml +0 -0
  360. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/subagent.yml +0 -0
  361. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/udiff.yml +0 -0
  362. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/udiff_simple.yml +0 -0
  363. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/utils/__init__.py +0 -0
  364. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/utils/registry.py +0 -0
  365. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/utils/system.py +0 -0
  366. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/wholefile.yml +0 -0
  367. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/prompts/wholefile_func.yml +0 -0
  368. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  369. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  370. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
  371. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  372. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  373. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  374. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  375. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  376. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  377. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  378. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  379. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  380. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  381. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  382. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  383. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  384. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  385. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  386. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  387. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  388. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  389. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  390. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  391. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  392. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  393. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  394. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  395. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  396. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  397. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  398. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  399. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  400. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/README.md +0 -0
  401. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
  402. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  403. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  404. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  405. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  406. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  407. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  408. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  409. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  410. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  411. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  412. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  413. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  414. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  415. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  416. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  417. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  418. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  419. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  420. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  421. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  422. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  423. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  424. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  425. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  426. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  427. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  428. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/reasoning_tags.py +0 -0
  429. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/repo.py +0 -0
  430. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/repomap.py +0 -0
  431. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/report.py +0 -0
  432. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/resources/__init__.py +0 -0
  433. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/resources/model-metadata.json +0 -0
  434. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/resources/model-settings-condensed.yml +0 -0
  435. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/resources/model-settings.yml +0 -0
  436. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/resources/providers.json +0 -0
  437. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/run_cmd.py +0 -0
  438. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/scrape.py +0 -0
  439. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/sendchat.py +0 -0
  440. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/sessions.py +0 -0
  441. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/signals.py +0 -0
  442. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/special.py +0 -0
  443. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tests/test_queue_commands.py +0 -0
  444. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/__init__.py +0 -0
  445. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/_yield.py +0 -0
  446. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/delegate.py +0 -0
  447. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/edit_file.py +0 -0
  448. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/explore_code.py +0 -0
  449. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/git_branch.py +0 -0
  450. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/git_diff.py +0 -0
  451. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/git_log.py +0 -0
  452. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/git_remote.py +0 -0
  453. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/git_show.py +0 -0
  454. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/git_status.py +0 -0
  455. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/grep.py +0 -0
  456. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/ls.py +0 -0
  457. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/orchestrate.py +0 -0
  458. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/read_file.py +0 -0
  459. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/replace_facts.py +0 -0
  460. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/resource_manager.py +0 -0
  461. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/thinking.py +0 -0
  462. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/undo_change.py +0 -0
  463. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/update_todo_list.py +0 -0
  464. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/utils/__init__.py +0 -0
  465. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/utils/base_tool.py +0 -0
  466. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/utils/helpers.py +0 -0
  467. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/utils/output.py +0 -0
  468. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/utils/registry.py +0 -0
  469. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/utils/responses.py +0 -0
  470. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/validations/__init__.py +0 -0
  471. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tools/validations/validations.py +0 -0
  472. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/__init__.py +0 -0
  473. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/app.py +0 -0
  474. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/io.py +0 -0
  475. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/styles.tcss +0 -0
  476. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/__init__.py +0 -0
  477. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/completion_bar.py +0 -0
  478. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/file_list.py +0 -0
  479. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/footer.py +0 -0
  480. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/input_area.py +0 -0
  481. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/input_container.py +0 -0
  482. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/key_hints.py +0 -0
  483. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/output.py +0 -0
  484. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/output_alt.bak +0 -0
  485. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/selectable_log.py +0 -0
  486. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/status_bar.py +0 -0
  487. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/widgets/subagent_pills.py +0 -0
  488. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/tui/worker.py +0 -0
  489. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/urls.py +0 -0
  490. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/utils.py +0 -0
  491. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/versioncheck.py +0 -0
  492. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/voice.py +0 -0
  493. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/waiting.py +0 -0
  494. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/watch.py +0 -0
  495. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/watch_prompts.py +0 -0
  496. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/blame.md +0 -0
  497. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/get-started.md +0 -0
  498. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/help-tip.md +0 -0
  499. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/help.md +0 -0
  500. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/install.md +0 -0
  501. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/keys.md +0 -0
  502. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/model-warnings.md +0 -0
  503. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/multi-line.md +0 -0
  504. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/python-m-aider.md +0 -0
  505. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/recording.css +0 -0
  506. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/recording.md +0 -0
  507. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_includes/works-best.md +0 -0
  508. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_sass/_features.scss +0 -0
  509. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_sass/_footer.scss +0 -0
  510. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_sass/_hero.scss +0 -0
  511. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_sass/_info.scss +0 -0
  512. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_sass/_layout.scss +0 -0
  513. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_sass/_reset.scss +0 -0
  514. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_sass/_testimonials.scss +0 -0
  515. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_sass/_typography.scss +0 -0
  516. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_sass/_variables.scss +0 -0
  517. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_sass/custom/custom.scss +0 -0
  518. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/_sass/global-overrides.scss +0 -0
  519. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docmd.config.json +0 -0
  520. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/cecli-temp-logo-favicon.svg +0 -0
  521. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/agent-mode.md +0 -0
  522. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/api-keys.md +0 -0
  523. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/api.md +0 -0
  524. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/conf.md +0 -0
  525. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/custom-commands.md +0 -0
  526. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  527. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/dotenv.md +0 -0
  528. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/editor.md +0 -0
  529. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/hooks.md +0 -0
  530. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/mcp.md +0 -0
  531. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/model-aliases.md +0 -0
  532. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/model-providers.md +0 -0
  533. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/options.md +0 -0
  534. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/persistent-memory.md +0 -0
  535. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/reasoning.md +0 -0
  536. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/retries.md +0 -0
  537. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/security.md +0 -0
  538. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/subagents.md +0 -0
  539. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/tui.md +0 -0
  540. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config/workspaces.md +0 -0
  541. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/config.md +0 -0
  542. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/git.md +0 -0
  543. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/index.md +0 -0
  544. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/install/docker.md +0 -0
  545. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/install.md +0 -0
  546. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/languages.md +0 -0
  547. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  548. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/legal/privacy.md +0 -0
  549. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/anthropic.md +0 -0
  550. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/azure.md +0 -0
  551. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/cohere.md +0 -0
  552. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/deepseek.md +0 -0
  553. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/groq.md +0 -0
  554. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/lm-studio.md +0 -0
  555. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/ollama.md +0 -0
  556. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/openai-compat.md +0 -0
  557. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/openai.md +0 -0
  558. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/openrouter.md +0 -0
  559. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/vertex.md +0 -0
  560. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms/xai.md +0 -0
  561. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/llms.md +0 -0
  562. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/more/analytics.md +0 -0
  563. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/more/edit-formats.md +0 -0
  564. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/more/infinite-output.md +0 -0
  565. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/more-info.md +0 -0
  566. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/repomap.md +0 -0
  567. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/scripting.md +0 -0
  568. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
  569. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  570. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  571. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  572. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/troubleshooting.md +0 -0
  573. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/commands.md +0 -0
  574. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/conventions.md +0 -0
  575. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/copypaste.md +0 -0
  576. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/images-urls.md +0 -0
  577. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/lint-test.md +0 -0
  578. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/modes.md +0 -0
  579. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/not-code.md +0 -0
  580. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/notifications.md +0 -0
  581. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/optional.md +0 -0
  582. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/sessions.md +0 -0
  583. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/tips.md +0 -0
  584. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/voice.md +0 -0
  585. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage/watch.md +0 -0
  586. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/docs/usage.md +0 -0
  587. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/package-lock.json +0 -0
  588. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/package.json +0 -0
  589. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli/website/share/index.md +0 -0
  590. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli_dev.egg-info/SOURCES.txt +0 -0
  591. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli_dev.egg-info/dependency_links.txt +0 -0
  592. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli_dev.egg-info/entry_points.txt +0 -0
  593. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli_dev.egg-info/requires.txt +0 -0
  594. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli_dev.egg-info/scm_file_list.json +0 -0
  595. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/cecli_dev.egg-info/top_level.txt +0 -0
  596. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/docker/Dockerfile +0 -0
  597. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  598. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/pyproject.toml +0 -0
  599. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/pytest.ini +0 -0
  600. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/requirements/common-constraints.txt +0 -0
  601. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/requirements/requirements-dev.in +0 -0
  602. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/requirements/requirements-dev.txt +0 -0
  603. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/requirements/requirements-help.in +0 -0
  604. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/requirements/requirements-help.txt +0 -0
  605. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/requirements/requirements-playwright.in +0 -0
  606. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/requirements/requirements-playwright.txt +0 -0
  607. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/requirements/requirements.in +0 -0
  608. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/requirements/tree-sitter.in +0 -0
  609. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/requirements.txt +0 -0
  610. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/30k-image.py +0 -0
  611. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/__init__.py +0 -0
  612. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/blame.py +0 -0
  613. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/clean_metadata.py +0 -0
  614. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/compare-message-history.py +0 -0
  615. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/condense_model_settings.py +0 -0
  616. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/cost_analyzer.py +0 -0
  617. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/cost_calculator.py +0 -0
  618. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/dl_icons.py +0 -0
  619. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/docmd_build.sh +0 -0
  620. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/filter-chat-mode.js +0 -0
  621. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/generate_providers.py +0 -0
  622. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/get_contributor_list.js +0 -0
  623. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/get_hashline.py +0 -0
  624. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/history_prompts.py +0 -0
  625. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/homepage.py +0 -0
  626. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/issues.py +0 -0
  627. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/logo_svg.py +0 -0
  628. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/optimize_tokens.sh +0 -0
  629. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/pip-compile.sh +0 -0
  630. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/recording_audio.py +0 -0
  631. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/redact-cast.py +0 -0
  632. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/rename_to_cecli.py +0 -0
  633. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/tmux_record.sh +0 -0
  634. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/tsl_pack_langs.py +0 -0
  635. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/update-blame.sh +0 -0
  636. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/update-docs.sh +0 -0
  637. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/update-history.py +0 -0
  638. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/versionbump.py +0 -0
  639. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/scripts/yank-old-versions.py +0 -0
  640. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/setup.cfg +0 -0
  641. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/shim.pyproject.toml +0 -0
  642. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/__init__.py +0 -0
  643. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/__init__.py +0 -0
  644. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/conftest.py +0 -0
  645. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_agent_config_merge.py +0 -0
  646. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_aws_credentials.py +0 -0
  647. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_background_commands.py +0 -0
  648. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_coder.py +0 -0
  649. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_commands.py +0 -0
  650. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_custom_commands.py +0 -0
  651. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_deprecated.py +0 -0
  652. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_editblock.py +0 -0
  653. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_editor.py +0 -0
  654. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_exceptions.py +0 -0
  655. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_find_or_blocks.py +0 -0
  656. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_hashline.py +0 -0
  657. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_hashline_closure.py +0 -0
  658. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_history.py +0 -0
  659. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_io.py +0 -0
  660. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_linter.py +0 -0
  661. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_model_info_manager.py +0 -0
  662. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_model_provider_manager.py +0 -0
  663. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_models.py +0 -0
  664. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_onboarding.py +0 -0
  665. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_plugin_manager.py +0 -0
  666. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_prompts.py +0 -0
  667. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_reasoning.py +0 -0
  668. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_repo.py +0 -0
  669. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_repomap.py +0 -0
  670. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_run_cmd.py +0 -0
  671. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_scripting.py +0 -0
  672. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_select_selector.py +0 -0
  673. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_sendchat.py +0 -0
  674. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_session_args.py +0 -0
  675. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_session_crypto.py +0 -0
  676. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_sessions.py +0 -0
  677. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_sessions_manager.py +0 -0
  678. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_skills.py +0 -0
  679. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_special.py +0 -0
  680. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_spinner.py +0 -0
  681. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_ssl_verification.py +0 -0
  682. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_udiff.py +0 -0
  683. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_urls.py +0 -0
  684. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_voice.py +0 -0
  685. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_watch.py +0 -0
  686. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/basic/test_wholefile.py +0 -0
  687. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/coders/test_coder_switching.py +0 -0
  688. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/coders/test_copypaste_coder.py +0 -0
  689. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/coders/test_tool_call_consolidation.py +0 -0
  690. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/commands/test_auto_memory.py +0 -0
  691. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/commands/test_compaction.py +0 -0
  692. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/commands/test_remove_memory.py +0 -0
  693. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/commands/test_search_memory.py +0 -0
  694. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/commands/test_switch_agent.py +0 -0
  695. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/conftest.py +0 -0
  696. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/conversations/test_conversation_integration.py +0 -0
  697. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/conversations/test_conversation_system.py +0 -0
  698. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  699. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/chat-history.md +0 -0
  700. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/arduino/test.ino +0 -0
  701. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/bash/test.sh +0 -0
  702. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/c/test.c +0 -0
  703. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/chatito/test.chatito +0 -0
  704. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/clojure/test.clj +0 -0
  705. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  706. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/cpp/test.cpp +0 -0
  707. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/csharp/test.cs +0 -0
  708. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/d/test.d +0 -0
  709. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/dart/test.dart +0 -0
  710. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/elisp/test.el +0 -0
  711. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/elixir/test.ex +0 -0
  712. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/elm/test.elm +0 -0
  713. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/gleam/test.gleam +0 -0
  714. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/go/test.go +0 -0
  715. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/haskell/test.hs +0 -0
  716. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/hcl/test.tf +0 -0
  717. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/java/test.java +0 -0
  718. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/javascript/test.js +0 -0
  719. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/kotlin/test.kt +0 -0
  720. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/lua/test.lua +0 -0
  721. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/matlab/test.m +0 -0
  722. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/ocaml/test.ml +0 -0
  723. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  724. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/php/test.php +0 -0
  725. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/pony/test.pony +0 -0
  726. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/properties/test.properties +0 -0
  727. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/python/test.py +0 -0
  728. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/ql/test.ql +0 -0
  729. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/r/test.r +0 -0
  730. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/racket/test.rkt +0 -0
  731. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/ruby/test.rb +0 -0
  732. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/rust/test.rs +0 -0
  733. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/scala/test.scala +0 -0
  734. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/solidity/test.sol +0 -0
  735. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/swift/test.swift +0 -0
  736. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/tsx/test.tsx +0 -0
  737. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/typescript/test.ts +0 -0
  738. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/udev/test.rules +0 -0
  739. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/languages/zig/test.zig +0 -0
  740. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/sample-code-base/sample.js +0 -0
  741. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/sample-code-base/sample.py +0 -0
  742. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  743. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/watch.js +0 -0
  744. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/watch.lisp +0 -0
  745. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/watch.py +0 -0
  746. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/fixtures/watch_question.js +0 -0
  747. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/help/test_help.py +0 -0
  748. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/monorepo/LOCAL_WORKSPACE.md +0 -0
  749. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/monorepo/test_config.py +0 -0
  750. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/monorepo/test_config_active.py +0 -0
  751. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
  752. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/monorepo/test_local_workspace.py +0 -0
  753. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
  754. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/monorepo/test_workspace.py +0 -0
  755. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/observations/test_observation_service.py +0 -0
  756. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/server/acp/__init__.py +0 -0
  757. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/server/acp/test_bridge.py +0 -0
  758. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/server/acp/test_dispatch.py +0 -0
  759. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/server/acp/test_models.py +0 -0
  760. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/server/acp/test_protocol.py +0 -0
  761. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/test_llms_api_base.py +0 -0
  762. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/test_llms_aws_sigv4.py +0 -0
  763. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/test_llms_github_copilot_auth.py +0 -0
  764. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/test_llms_hyperscalers.py +0 -0
  765. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/test_llms_providers_json.py +0 -0
  766. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/test_llms_reasoning_config.py +0 -0
  767. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/test_llms_reasoning_extract.py +0 -0
  768. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/test_llms_vision.py +0 -0
  769. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/test_memory_control.py +0 -0
  770. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/test_model_config.py +0 -0
  771. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/helpers/test_orchestration.py +0 -0
  772. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/hooks/__init__.py +0 -0
  773. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/hooks/test_base.py +0 -0
  774. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/hooks/test_manager.py +0 -0
  775. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/hooks/test_registry.py +0 -0
  776. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/integration/test_agent_mcp_management.py +0 -0
  777. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/integration/test_config_loading.py +0 -0
  778. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/integration/test_mcp_management.py +0 -0
  779. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/__init__.py +0 -0
  780. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/conftest.py +0 -0
  781. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/mock_server.py +0 -0
  782. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/test_keepalive_concurrency.py +0 -0
  783. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/test_keepalive_config.py +0 -0
  784. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/test_keepalive_integration.py +0 -0
  785. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/test_keepalive_logging.py +0 -0
  786. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/test_keepalive_resilience.py +0 -0
  787. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/test_keepalive_unit.py +0 -0
  788. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/test_manager.py +0 -0
  789. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/test_manager_retry.py +0 -0
  790. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/mcp/test_server_sdk_compat.py +0 -0
  791. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/scrape/test_playwright_disable.py +0 -0
  792. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/scrape/test_scrape.py +0 -0
  793. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/subagents/__init__.py +0 -0
  794. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/subagents/conftest.py +0 -0
  795. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/subagents/test_commands.py +0 -0
  796. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/subagents/test_config.py +0 -0
  797. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/subagents/test_delegate.py +0 -0
  798. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/subagents/test_finished.py +0 -0
  799. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/subagents/test_io_proxy.py +0 -0
  800. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/subagents/test_service.py +0 -0
  801. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/subagents/test_sub_agent_coder.py +0 -0
  802. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/test_requests.py +0 -0
  803. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_edit_file_format_output.py +0 -0
  804. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_extractions.py +0 -0
  805. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_get_lines.py +0 -0
  806. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_git_branch.py +0 -0
  807. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_git_diff.py +0 -0
  808. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_grep.py +0 -0
  809. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_insert_block.py +0 -0
  810. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_read_range_execute.py +0 -0
  811. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_registry.py +0 -0
  812. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_remove_mcp_tool.py +0 -0
  813. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/test_tools_load_mcp_tool.py +0 -0
  814. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tools/validations.py +0 -0
  815. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/tui/test_app.py +0 -0
  816. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/conftest.py +0 -0
  817. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/test_deep_merge.py +0 -0
  818. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/test_edge_cases.py +0 -0
  819. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/test_load_mcp.py +0 -0
  820. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/test_performance.py +0 -0
  821. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/test_queues.py +0 -0
  822. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/test_remove_mcp.py +0 -0
  823. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/test_shallow_merge.py +0 -0
  824. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/test_signals.py +0 -0
  825. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/test_unit_load_mcp_tool.py +0 -0
  826. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/test_unit_remove_mcp_tool.py +0 -0
  827. {cecli_dev-1.2.0 → cecli_dev-1.2.1}/tests/unit/test_ws_server.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cecli-dev
3
- Version: 1.2.0
3
+ Version: 1.2.1
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.2.0'
22
- __version_tuple__ = version_tuple = (1, 2, 0)
21
+ __version__ = version = '1.2.1'
22
+ __version_tuple__ = version_tuple = (1, 2, 1)
23
23
 
24
- __commit_id__ = commit_id = 'gd8d0c6996'
24
+ __commit_id__ = commit_id = 'g9eedb354e'
@@ -892,7 +892,7 @@ class Coder(metaclass=UsageMeta):
892
892
  rel_repo_dir = self.repo.get_rel_repo_dir()
893
893
  num_files = len(self.repo.get_tracked_files())
894
894
  env_items.append(f"{rel_repo_dir} ({num_files:,} files)")
895
- if num_files > 1000:
895
+ if num_files > 1000 and self.verbose:
896
896
  env_items.append(
897
897
  "Warning: For large repos, consider using --subtree-only and .cecli.ignore"
898
898
  )
@@ -1759,6 +1759,7 @@ class Coder(metaclass=UsageMeta):
1759
1759
  except (SwitchCoderSignal, SystemExit):
1760
1760
  raise
1761
1761
  except Exception as e:
1762
+ self.error_code = 1
1762
1763
  traceback_str = traceback.format_exc()
1763
1764
  update_error_prefix(traceback_str)
1764
1765
 
@@ -2759,6 +2760,7 @@ class Coder(metaclass=UsageMeta):
2759
2760
  dict(role="assistant", content=self.multi_response_content, prefix=True)
2760
2761
  )
2761
2762
  except Exception as err:
2763
+ self.error_code = 1
2762
2764
  self.mdstream = None
2763
2765
  lines = traceback.format_exception(type(err), err, err.__traceback__)
2764
2766
  self.io.tool_warning("".join(lines))
@@ -3253,6 +3255,12 @@ class Coder(metaclass=UsageMeta):
3253
3255
  if not isinstance(arguments, dict):
3254
3256
  arguments = {}
3255
3257
 
3258
+ # Some models mirror the OpenAI wire format and wrap the real params
3259
+ # under a single "arguments"/"parameters"/"params" key. Unwrap so the
3260
+ # server receives the actual parameters instead of rejecting the call
3261
+ # with a "missing required parameter" error.
3262
+ arguments = responses.coerce_tool_structure(arguments)
3263
+
3256
3264
  return await session.call_tool(name=name, arguments=arguments)
3257
3265
 
3258
3266
  async def process_tool_calls(self, tool_call_response):
@@ -3508,6 +3516,7 @@ class Coder(metaclass=UsageMeta):
3508
3516
  # but response.dict() is the Pydantic V1 method name.
3509
3517
  response_dict = dict(response)
3510
3518
  except TypeError:
3519
+ self.error_code = 1
3511
3520
  self.io.tool_warning("Response parsing error.")
3512
3521
  return
3513
3522
 
@@ -4277,9 +4286,21 @@ class Coder(metaclass=UsageMeta):
4277
4286
  cache_hit_tokens = 0
4278
4287
  cache_write_tokens = 0
4279
4288
 
4280
- if completion and hasattr(completion, "usage") and completion.usage is not None:
4281
- prompt_tokens = completion.usage.prompt_tokens
4282
- completion_tokens = completion.usage.completion_tokens
4289
+ if (
4290
+ completion
4291
+ and nested.getter(completion, "usage.prompt_tokens") is not None
4292
+ and nested.getter(completion, "usage.completion_tokens") is not None
4293
+ ):
4294
+ prompt_tokens = (
4295
+ nested.getter(completion.usage, "prompt_tokens", 0)
4296
+ or nested.getter(completion.usage, "prompt_eval_count", 0)
4297
+ or 0
4298
+ )
4299
+ completion_tokens = (
4300
+ nested.getter(completion.usage, "completion_tokens", 0)
4301
+ or nested.getter(completion.usage, "eval_count", 0)
4302
+ or 0
4303
+ )
4283
4304
  cache_hit_tokens = (
4284
4305
  getattr(completion.usage, "prompt_cache_hit_tokens", 0)
4285
4306
  or getattr(completion.usage, "cache_read_input_tokens", 0)
@@ -46,7 +46,6 @@ Use these tags (and invent new ones as needed) to categorise facts:
46
46
  - **relationships** – how modules / systems interact with each other
47
47
  - **decisions** – architectural or design choices that were made and why
48
48
  - **entities** – important classes, functions, or data structures
49
- - **changes** – summaries of changes made and their intent
50
49
 
51
50
  ## Tools
52
51
 
@@ -67,10 +66,13 @@ context (e.g. compaction / yield summaries). Your job:
67
66
  2. Use ReplaceFacts to insert new facts and delete the obsolete ones so
68
67
  the database stays clean and up-to-date.
69
68
  3. Task specific details are not worth recording, focus on user intention and add facts
70
- that would help them explain the project to another person succinctly
69
+ that would help them explain the project to another person succinctly.
70
+ 4. Record notes on strategy, purpose, structure, expectations, and unintuitive/novel discoveries over project
71
+ and activity specific details.
72
+ We are trying to preserve why we took the actions we have done, not a log of the actions themselves.
71
73
 
72
74
  Start each response with an incrementing number at the beginning, e.g. "1) ...", "2) ..."
73
- When this number hits at most 10, update what you can and yield. Do not deliberate over many turns.
75
+ Before this number hits at most 10, update what you can and yield. Do not deliberate over many turns.
74
76
  Important facts will be easy to search for and extract from the given context.
75
77
 
76
78
  Always prefer **concrete, reusable** facts over vague prose.
@@ -12,6 +12,8 @@ import threading
12
12
  from collections import deque
13
13
  from typing import Dict, List, Optional, Tuple
14
14
 
15
+ import xxhash
16
+
15
17
  from cecli.decoding import safe_open
16
18
 
17
19
  try:
@@ -419,7 +421,8 @@ class BackgroundCommandManager:
419
421
  Unique command key
420
422
  """
421
423
  with cls._lock:
422
- key = f"bg_{cls._next_id}_{hash(command) % 10000:04d}"
424
+ digest = xxhash.xxh64(command.encode("utf-8")).intdigest()
425
+ key = f"bg_{cls._next_id}_{digest % 10000:04d}"
423
426
  cls._next_id += 1
424
427
  return key
425
428
 
@@ -6,6 +6,7 @@ Public API
6
6
  - ``add_fact(fact=..., tags=[...])`` – insert a fact with optional tags
7
7
  - ``remove_facts(id_facts=[...])`` – delete facts by id
8
8
  - ``search_facts(words=[...], tags=[...])`` – full-text search the fact store
9
+ - ``recent_tags(coder, limit=100)`` – most recently used tags + total count
9
10
  - ``invoke_memorizer(coder, additional_context=...)`` – fire the memorizer
10
11
  sub-agent with current context
11
12
  """
@@ -203,6 +204,51 @@ def search_facts(
203
204
  return results
204
205
 
205
206
 
207
+ def recent_tags(coder, limit: int = 100) -> dict:
208
+ """Return the most recently used tags plus the total tag count.
209
+
210
+ Tags are deduplicated and ordered by the recency of the most recent
211
+ fact they are attached to (facts sorted by ``id_fact`` descending),
212
+ then truncated to *limit* entries.
213
+
214
+ Args:
215
+ coder: The active Coder instance (used to locate the project root).
216
+ limit: Maximum number of recent tags to return (default 100).
217
+
218
+ Returns:
219
+ A dict with keys ``tags`` (list of tag strings, most recent first)
220
+ and ``total`` (int count of all distinct tags in the store).
221
+ """
222
+
223
+ init_db(root=coder.root)
224
+
225
+ conn = _get_connection(root=coder.root)
226
+ cursor = conn.cursor()
227
+
228
+ # Tags ordered by the recency of the most recent fact they tag:
229
+ # sort facts by id descending and dedupe on the tag name.
230
+ cursor.execute(
231
+ """
232
+ SELECT t.tag
233
+ FROM Facts f
234
+ JOIN FactTags ft ON ft.id_fact = f.id_fact
235
+ JOIN Tags t ON t.id_tag = ft.id_tag
236
+ GROUP BY t.tag
237
+ ORDER BY MAX(f.id_fact) DESC
238
+ LIMIT ?
239
+ """,
240
+ (limit,),
241
+ )
242
+
243
+ tags = [row["tag"] for row in cursor.fetchall()]
244
+
245
+ cursor.execute("SELECT COUNT(*) AS total FROM Tags")
246
+
247
+ total = cursor.fetchone()["total"]
248
+
249
+ return {"tags": tags, "total": total}
250
+
251
+
206
252
  async def invoke_memorizer(
207
253
  coder,
208
254
  additional_context: str = "",
@@ -242,6 +288,14 @@ async def invoke_memorizer(
242
288
  # Gather context pieces
243
289
  parts: list[str] = []
244
290
 
291
+ # Recent tags (deduplicated, most recently used first) plus the total
292
+ # tag count — first context part so the memorizer sees active tags
293
+ recent = recent_tags(coder)
294
+
295
+ tag_list = ", ".join(recent["tags"]) if recent["tags"] else "(none)"
296
+
297
+ parts.append(f"## Recent Tags\n\n{tag_list}\n\n## Total Tags in DB\n\n{recent['total']}")
298
+
245
299
  # Latest user message
246
300
  last_user = getattr(coder, "last_user_message", "")
247
301
 
@@ -367,20 +367,24 @@ def unprefix_tool_call(tool_call):
367
367
 
368
368
 
369
369
  def parse_tool_arguments(args_string: str) -> dict:
370
- """Parse tool-call arguments, merging glued ``{…}{} {…}`` object fragments."""
370
+ """Parse tool-call arguments, merging glued ``{…}{} {…}`` object fragments.
371
+
372
+ Also unwraps a single ``arguments``/``parameters``/``params`` wrapper key
373
+ that some models emit when mirroring the OpenAI wire format.
374
+ """
371
375
  text = (args_string or "").strip()
372
376
  if not text:
373
377
  return {}
374
378
  try:
375
379
  parsed = json.loads(text)
376
380
  if isinstance(parsed, dict):
377
- return parsed
381
+ return coerce_tool_structure(parsed)
378
382
  except json.JSONDecodeError:
379
383
  pass
380
384
 
381
385
  parsed = try_parse_json_value(text)
382
386
  if isinstance(parsed, dict):
383
- return parsed
387
+ return coerce_tool_structure(parsed)
384
388
 
385
389
  chunks = utils.split_concatenated_json(text)
386
390
  if len(chunks) <= 1:
@@ -388,18 +392,18 @@ def parse_tool_arguments(args_string: str) -> dict:
388
392
  return {}
389
393
  lone = try_parse_json_value(chunks[0])
390
394
  if isinstance(lone, dict):
391
- return lone
395
+ return coerce_tool_structure(lone)
392
396
  try:
393
397
  json_string = json_repair.repair_json(chunks[0], ensure_ascii=False)
394
398
  single = json.loads(json_string)
395
399
  except json.JSONDecodeError as err:
396
400
  return {"@error": f"Malformed JSON arguments: {err}"}
397
- return single if isinstance(single, dict) else {}
401
+ return coerce_tool_structure(single) if isinstance(single, dict) else {}
398
402
 
399
403
  merged = merge_glued_json_objects(chunks)
400
404
 
401
405
  if merged is not None:
402
- return merged
406
+ return coerce_tool_structure(merged)
403
407
 
404
408
  return {
405
409
  "@error": "Could not merge glued JSON objects: argument fragments are not all JSON objects"
@@ -618,3 +622,40 @@ def _parse_bracket_arguments(payload_str: str) -> dict:
618
622
  arguments[key] = val_str
619
623
 
620
624
  return arguments
625
+
626
+
627
+ def coerce_tool_structure(args: dict) -> dict:
628
+ """Unwrap a single ``arguments``/``parameters``/``params`` wrapper key.
629
+
630
+ Some models mirror the OpenAI wire format and emit the real params nested
631
+ under a single top-level ``arguments`` key (as a dict or a JSON-encoded
632
+ string) instead of as the params dict itself. Without normalization the
633
+ wrapper key is forwarded verbatim to the tool, which then fails required
634
+ parameter validation (e.g. MCP servers reporting "missing required
635
+ parameter").
636
+
637
+ Only unwraps when ``args`` has exactly one key matching one of the wrapper
638
+ names and that value is a dict (or a JSON string that parses to a dict), so
639
+ tools that legitimately declare a parameter named ``arguments`` are never
640
+ clobbered.
641
+ """
642
+ if not isinstance(args, dict) or len(args) != 1:
643
+ return args
644
+
645
+ for key in ("arguments", "parameters", "params"):
646
+ if key not in args:
647
+ continue
648
+
649
+ value = args[key]
650
+ if isinstance(value, str):
651
+ try:
652
+ value = json.loads(value)
653
+ except json.JSONDecodeError:
654
+ return args
655
+
656
+ if isinstance(value, dict):
657
+ return value
658
+
659
+ return args
660
+
661
+ return args
@@ -71,7 +71,29 @@ class SkillsManager:
71
71
  if default_skill_dir not in directory_paths:
72
72
  directory_paths = [default_skill_dir] + list(directory_paths)
73
73
 
74
- self.directory_paths = [Path(p).expanduser().resolve() for p in directory_paths]
74
+ # Resolve every path and drop exact directory duplicates.
75
+ resolved_paths = []
76
+ seen_paths = set()
77
+ for p in directory_paths:
78
+ try:
79
+ path = Path(p).expanduser().resolve()
80
+ except Exception:
81
+ continue
82
+ if path in seen_paths:
83
+ continue
84
+ seen_paths.add(path)
85
+ resolved_paths.append(path)
86
+
87
+ # Order paths: local project dirs first, then configured, home dirs last.
88
+ git_root_path = Path(git_root).expanduser().resolve() if git_root else None
89
+ ordered = sorted(
90
+ enumerate(resolved_paths),
91
+ key=lambda item: (
92
+ self._directory_priority(item[1], git_root_path),
93
+ item[0],
94
+ ),
95
+ )
96
+ self.directory_paths = [path for _, path in ordered]
75
97
  self.include_list = set(include_list) if include_list else None
76
98
  self.exclude_list = set(exclude_list) if exclude_list else set()
77
99
  self.git_root = Path(git_root).expanduser().resolve() if git_root else None
@@ -111,6 +133,35 @@ class SkillsManager:
111
133
 
112
134
  # Save initial state from config
113
135
 
136
+ @staticmethod
137
+ def _directory_priority(path: Path, git_root: Optional[Path] = None) -> int:
138
+ """Return the ordering priority of a skill directory.
139
+
140
+ Lower values are scanned first and therefore win by-name conflicts:
141
+
142
+ 0 - local project directory (under the git root or working directory)
143
+ 1 - any other configured directory
144
+ 2 - a home directory (including the implicit ``~/.cecli/skills`` default)
145
+ """
146
+ home = Path.home().resolve()
147
+
148
+ # Implicit default skills dir is always treated as a home dir.
149
+ if path == (home / ".cecli" / "skills"):
150
+ return 2
151
+
152
+ local_anchor = git_root if git_root is not None else Path.cwd()
153
+ try:
154
+ path.relative_to(local_anchor)
155
+ return 0
156
+ except ValueError:
157
+ pass
158
+
159
+ try:
160
+ path.relative_to(home)
161
+ return 2
162
+ except ValueError:
163
+ return 1
164
+
114
165
  def _get_coder(self):
115
166
  """Return coder via weak reference, or None if collected."""
116
167
  if self._coder_ref is not None:
@@ -176,6 +227,7 @@ class SkillsManager:
176
227
  return self._skills_find_cache
177
228
 
178
229
  skills = []
230
+ seen_names: set[str] = set()
179
231
 
180
232
  for directory_path in self.directory_paths:
181
233
  directory_path = Path(directory_path)
@@ -193,6 +245,11 @@ class SkillsManager:
193
245
  metadata = self._parse_skill_metadata(skill_md_path)
194
246
  skill_name = metadata.name
195
247
 
248
+ # First directory wins for duplicate skill names.
249
+ if skill_name in seen_names:
250
+ continue
251
+ seen_names.add(skill_name)
252
+
196
253
  # Apply include/exclude filters
197
254
  if self.include_list and skill_name not in self.include_list:
198
255
  continue
@@ -1437,7 +1437,7 @@ async def main_async(
1437
1437
  )
1438
1438
  io.tool_output(f"Cur working dir: {Path.cwd()}")
1439
1439
  io.tool_output(f"Git working dir: {git_root}")
1440
- if args.stream and args.cache_prompts:
1440
+ if args.stream and args.cache_prompts and args.verbose:
1441
1441
  io.tool_warning("Cost estimates may be inaccurate when using streaming and caching.")
1442
1442
  if args.load:
1443
1443
  await commands.execute("load", args.load)
@@ -108,7 +108,7 @@ class Tool(BaseTool):
108
108
  if not command:
109
109
  return command
110
110
 
111
- return xxhash.xxh64(command).hexdigest()
111
+ return xxhash.xxh64(command.encode("utf-8")).hexdigest()
112
112
 
113
113
  @classmethod
114
114
  async def execute(
@@ -64,11 +64,6 @@ class Tool(BaseTool):
64
64
  try:
65
65
  results = search_facts(coder, words=words, tags=tags)
66
66
 
67
- if not results:
68
- # Re-search without tags as fallback
69
- if tags:
70
- results = search_facts(coder, words=words, tags=None)
71
-
72
67
  for r in results:
73
68
  response.append_result(
74
69
  {
@@ -41,7 +41,7 @@ The json file should be a dictionary with an entry for each model, as follows:
41
41
 
42
42
  ### Contribute model metadata
43
43
 
44
- Cecli relies on [litellm's model_prices_and_context_window.json file](https://github.com/BerriAI/litellm/blob/main/model_prices_and_context_window.json) for model metadata.
44
+ Cecli ships its own bundled model metadata in `cecli/resources/model-metadata.json` (see the file in the [cecli repository](https://github.com/cecli-dev/cecli/blob/main/cecli/resources/model-metadata.json)). It is based on LiteLLM's configuration scheme [here](https://github.com/BerriAI/litellm/blob/main/model_prices_and_context_window.json).
45
45
 
46
46
  Consider submitting a PR to that file to add missing models.
47
47
 
@@ -62,9 +62,9 @@ If the files above exist, they will be loaded in that order. Files loaded last w
62
62
 
63
63
  The YAML file should be a list of dictionary objects for each model.
64
64
 
65
- ### Passing extra params to litellm.completion
65
+ ### Passing extra params to model requests
66
66
 
67
- The `extra_params` attribute of model settings is used to pass arbitrary extra parameters to the `litellm.completion()` call when sending data to the given model.
67
+ The `extra_params` attribute of model settings is used to pass arbitrary extra parameters to cecli's completion dispatcher when sending data to the given model. These become request parameters sent to the provider API.
68
68
 
69
69
  For example:
70
70
 
@@ -76,7 +76,7 @@ For example:
76
76
  max_tokens: 8192
77
77
  ```
78
78
 
79
- You can use the special model name `cecli/extra_params` to define `extra_params` that will be passed to `litellm.completion()` for all models. Only the `extra_params` dict is used from this special model name.
79
+ You can use the special model name `cecli/extra_params` to define `extra_params` that will be passed to cecli's completion dispatcher for all models. Only the `extra_params` dict is used from this special model name.
80
80
 
81
81
  For example:
82
82
 
@@ -16,12 +16,12 @@ Cecli allows you to customize and override LLM configurations to fine-tune their
16
16
 
17
17
  For advanced configurations, you can organize override parameters into three logical groups: `api`, `llm`, and `agent`.
18
18
  ### 1. `api`
19
- Values under `api` are merged directly into the model's API request parameters (`headers`). This is useful for configuring provider-specific API options, temperature, or custom headers. For the full list of supported parameters, see the [LiteLLM completion input documentation](https://docs.litellm.ai/docs/completion/input).
19
+ Values under `api` are request-level parameters that cecli passes to the provider API. This is useful for configuring provider-specific API options, temperature, or custom headers. For more details, see the [advanced model settings](../config/adv-model-settings.html) page.
20
20
 
21
21
  **Common parameters**: `temperature`, `top_p`, `max_tokens`, `parallel_tool_calls`, `extra_body` (e.g., `thinking: true` or `reasoning_effort: "high"`).
22
22
 
23
23
  ### 2. `llm`
24
- Values under `llm` are merged into the model's info dictionary (`self.info`). This allows you to override or augment model metadata and capabilities. For a comprehensive list of available model metadata fields, see the [LiteLLM model prices and context window reference](https://github.com/BerriAI/litellm/blob/litellm_internal_staging/model_prices_and_context_window.json).
24
+ Values under `llm` are merged into the model's info dictionary (`self.info`). This allows you to override or augment model metadata and capabilities. For a comprehensive list of available model metadata fields, see cecli's bundled metadata in [cecli/resources/model-metadata.json](https://github.com/cecli-dev/cecli/blob/main/cecli/resources/model-metadata.json).
25
25
 
26
26
  **Common parameters**: `supports_vision`, `supports_function_calling`, token limits, or pricing information.
27
27
 
@@ -77,6 +77,14 @@ Skills are configured through the `agent-config` parameter in the YAML configura
77
77
  - **`skills_includelist`**: Array of skill names to include (whitelist)
78
78
  - **`skills_excludelist`**: Array of skill names to exclude (blacklist)
79
79
 
80
+ > **Duplicate skill names**: When the same skill name is found in more than
81
+ > one configured directory, only one copy is loaded. Directories are scanned
82
+ > in priority order: local project directories (e.g. `./.cecli/skills`) first,
83
+ > then other configured directories in the order they are listed, with home
84
+ > directories (e.g. `~/skills` and the implicit `~/.cecli/skills` default)
85
+ > last. If no `skills_paths` are configured, the only directory searched is
86
+ > `~/.cecli/skills`.
87
+
80
88
  Complete configuration example in YAML configuration file (`.cecli.conf.yml` or `~/.cecli.conf.yml`):
81
89
 
82
90
  ```yaml
@@ -17,7 +17,7 @@ Amazon Bedrock has added support for a new feature called [cross-region "inferen
17
17
 
18
18
  If you attempt to use a `Model ID` for a model that exclusively supports the Inference Profile feature, you will receive an error message like the following:
19
19
 
20
- > litellm.BadRequestError: BedrockException - b'{"message":"Invocation of model ID
20
+ > BadRequestError: BedrockException - b'{"message":"Invocation of model ID
21
21
  anthropic.claude-3-7-sonnet-20250219-v1:0 with on-demand throughput isn\xe2\x80\x99t supported. Retry your request with the ID or ARN of an inference profile that contains this model."}'
22
22
 
23
23
  ## Installation and Configuration
@@ -94,22 +94,11 @@ cecli --list-models bedrock/
94
94
 
95
95
  Make sure you have access to these models in your AWS account before attempting to use them with cecli.
96
96
 
97
- ## Install boto3
98
- You may need to install the `boto3` package.
97
+ ## AWS credentials
99
98
 
100
- ```bash
101
- # If you installed with cecli-install or `uv tool`
102
- uv tool run --from cecli-dev pip install boto3
103
-
104
- # Or with pipx...
105
- pipx inject cecli-dev boto3
106
-
107
- # Or with pip
108
- pip install -U boto3
109
- ```
99
+ Cecli signs Bedrock requests itself (AWS SigV4) using the standard AWS credentials from your environment (`AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` and optionally `AWS_SESSION_TOKEN`), so the `boto3` package is not required.
110
100
 
111
101
  # More info
112
102
 
113
103
  For more information on Amazon Bedrock and its models, refer to the [official AWS documentation](https://docs.aws.amazon.com/bedrock/latest/userguide/what-is-bedrock.html).
114
104
 
115
- Also, see the [litellm docs on Bedrock](https://litellm.vercel.app/docs/providers/bedrock).
@@ -36,15 +36,3 @@ cecli --model gemini-exp
36
36
  cecli --list-models gemini/
37
37
  ```
38
38
 
39
- You may need to install the `google-generativeai` package.
40
-
41
- ```bash
42
- # If you installed with cecli-install or `uv tool`
43
- uv tool run --from cecli-dev pip install google-generativeai
44
-
45
- # Or with pipx...
46
- pipx inject cecli-dev google-generativeai
47
-
48
- # Or with pip
49
- pip install -U google-generativeai
50
- ```
@@ -0,0 +1,22 @@
1
+ ---
2
+ parent: Connecting to LLMs
3
+ nav_order: 510
4
+ ---
5
+
6
+ # GitHub Copilot
7
+
8
+ Cecli can connect to GitHub Copilot’s LLMs because Copilot exposes a standard **OpenAI-style** endpoint at:
9
+
10
+ ```
11
+ https://api.githubcopilot.com
12
+ ```
13
+
14
+ First, install cecli:
15
+
16
+ ```bash
17
+ uv tool install cecli-dev
18
+ ```
19
+
20
+ ---
21
+
22
+ When you specify a GitHub Copilot model on start up (e.g. `github_copilot/gpt-5-mini`), cecli will enter a GitHub auth workflow natively, wherein you will connect to your GitHub account with the provided auth code to grant the system access.
@@ -0,0 +1,46 @@
1
+ ---
2
+ parent: Connecting to LLMs
3
+ nav_order: 800
4
+ ---
5
+
6
+ # Other LLMs
7
+
8
+ Cecli connects directly to hundreds of models through their providers' APIs, so there is no extra model-routing package to install. You can use `cecli --model <model-name>` to use any supported model.
9
+
10
+ To explore the list of supported models you can run `cecli --list-models <model-name>` with a partial model name. If the supplied name is not an exact match for a known model, cecli will return a list of possible matching models. For example:
11
+
12
+ ```
13
+ $ cecli --list-models turbo
14
+
15
+ cecli v0.29.3-dev
16
+ Models which match "turbo":
17
+ - gpt-4-turbo-preview (openai/gpt-4-turbo-preview)
18
+ - gpt-4-turbo (openai/gpt-4-turbo)
19
+ - gpt-4-turbo-2024-04-09 (openai/gpt-4-turbo-2024-04-09)
20
+ - gpt-3.5-turbo (openai/gpt-3.5-turbo)
21
+ - ...
22
+ ```
23
+
24
+ See the [model warnings](warnings.html) section for information on warnings which will occur when working with models that cecli is not familiar with.
25
+
26
+ ## Connecting to other providers
27
+
28
+ Cecli connects to each provider through its own request dispatcher (`cecli/helpers/llms/`): when you specify a model, cecli resolves the provider's base URL, API-key environment variable and API family (OpenAI-compatible chat, Anthropic Messages, Responses, Gemini, or Bedrock) and handles authentication and headers itself.
29
+
30
+ ## Other API key variables
31
+
32
+ The authoritative list of provider base URLs and API-key environment variables is cecli's own provider configuration (`cecli/resources/providers.json`, which covers 61 providers) plus built-in defaults for the major providers. Each provider page in this section lists the variables you need to set, and `cecli --list-models <partial-name>` shows the model names cecli knows about.
33
+
34
+ Here are some of the most commonly used API key environment variables:
35
+
36
+ - OPENAI_API_KEY
37
+ - ANTHROPIC_API_KEY
38
+ - DEEPSEEK_API_KEY
39
+ - OPENROUTER_API_KEY
40
+ - GEMINI_API_KEY
41
+ - META_API_KEY
42
+ - GROQ_API_KEY
43
+ - XAI_API_KEY
44
+ - MISTRAL_API_KEY
45
+ - OLLAMA_API_KEY
46
+ - AZURE_API_KEY
@@ -67,5 +67,5 @@ If required variables are missing,
67
67
  you may get errors when you attempt to chat with the model.
68
68
  You can look in the [cecli's LLM documentation](../llms.html)
69
69
  or the
70
- [litellm documentation](https://docs.litellm.ai/docs/providers)
70
+ provider pages in this section
71
71
  to see if the required variables are listed there.
@@ -35,4 +35,3 @@ Cecli pins its dependencies and is tested to work with those specific versions.
35
35
 
36
36
  In particular, be careful with the packages with pinned versions noted at the end of [cecli's requirements.in file](https://github.com/cecli-dev/cecli/blob/main/requirements/requirements.in). These versions are pinned because cecli is known not to work with the latest versions of these libraries.
37
37
 
38
- Also be wary of upgrading `litellm`, as it changes versions frequently and sometimes introduces bugs or backwards incompatible changes.
@@ -45,9 +45,9 @@ Yes, you can use local LLMs with cecli. Here's a summary of the options:
45
45
 
46
46
  2. OpenAI-compatible API: cecli can access local models that provide an OpenAI-compatible API.
47
47
 
48
- 3. Other local models: cecli uses the LiteLLM package to connect to various LLM providers, which may include options for running models locally.
48
+ 3. Other local models: cecli connects directly to many LLM providers, including local and OpenAI-compatible endpoints (Ollama, LM Studio, etc.).
49
49
 
50
- However, it's important to note that cecli works best with more capable models. Less capable models may have difficulty properly returning "code edits," which could result in cecli not being able to edit your files and commit changes effectively.
50
+ However, it's important to note that cecli works best with more capable models. Less capable models may have difficulty properly returning code edits, which could result in cecli not being able to edit your files and commit changes effectively.
51
51
 
52
52
  For more detailed information on using local LLMs and connecting to various models, you might want to check out these relevant documentation pages:
53
53
 
@@ -66,8 +66,7 @@ which variables are required for the model.
66
66
  If required variables are missing,
67
67
  you may get errors when you attempt to chat with the model.
68
68
  You can look in the [cecli's LLM documentation](../llms.html)
69
- or the
70
- [litellm documentation](https://docs.litellm.ai/docs/providers)
69
+ or the provider-specific pages (e.g. [OpenAI-compatible endpoints](../llms/openai-compat.html))
71
70
  to see if the required variables are listed there.
72
71
 
73
72
  ## More help
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cecli-dev
3
- Version: 1.2.0
3
+ Version: 1.2.1
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