cecli-dev 1.1.0rc1__tar.gz → 1.1.0rc4__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 (779) hide show
  1. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/PKG-INFO +1 -1
  2. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/_version.py +3 -3
  3. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/agent_coder.py +2 -7
  4. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/base_coder.py +49 -24
  5. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/add.py +18 -1
  6. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/reasoning_effort.py +1 -1
  7. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/think_tokens.py +1 -1
  8. cecli_dev-1.1.0rc4/cecli/helpers/model_config/__init__.py +10 -0
  9. cecli_dev-1.1.0rc4/cecli/helpers/model_config/agent.py +40 -0
  10. cecli_dev-1.1.0rc4/cecli/helpers/model_config/api.py +62 -0
  11. cecli_dev-1.1.0rc4/cecli/helpers/model_config/formatters/__init__.py +20 -0
  12. cecli_dev-1.1.0rc4/cecli/helpers/model_config/formatters/reasoning.py +83 -0
  13. cecli_dev-1.1.0rc4/cecli/helpers/model_config/formatters/thinking.py +108 -0
  14. cecli_dev-1.1.0rc4/cecli/helpers/model_config/identifiers.py +77 -0
  15. cecli_dev-1.1.0rc4/cecli/helpers/model_config/llm.py +108 -0
  16. cecli_dev-1.1.0rc4/cecli/helpers/model_config/pipeline.py +345 -0
  17. cecli_dev-1.1.0rc4/cecli/helpers/model_config/utils.py +163 -0
  18. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/requests.py +3 -0
  19. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/io.py +6 -1
  20. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/mcp/manager.py +55 -4
  21. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/mcp/server.py +67 -5
  22. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/models.py +230 -145
  23. cecli_dev-1.1.0rc4/cecli/resources/model-settings-condensed.yml +502 -0
  24. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli_dev.egg-info/PKG-INFO +1 -1
  25. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli_dev.egg-info/SOURCES.txt +14 -0
  26. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli_dev.egg-info/scm_file_list.json +14 -0
  27. cecli_dev-1.1.0rc4/cecli_dev.egg-info/scm_version.json +8 -0
  28. cecli_dev-1.1.0rc4/scripts/condense_model_settings.py +256 -0
  29. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_coder.py +6 -6
  30. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_commands.py +1 -1
  31. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_main.py +9 -2
  32. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_models.py +17 -10
  33. cecli_dev-1.1.0rc4/tests/helpers/test_model_config.py +857 -0
  34. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/mcp/conftest.py +18 -3
  35. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/mcp/test_keepalive_concurrency.py +2 -2
  36. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/mcp/test_keepalive_config.py +18 -11
  37. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/mcp/test_manager.py +62 -27
  38. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/mcp/test_manager_retry.py +72 -60
  39. cecli_dev-1.1.0rc4/tests/mcp/test_server_sdk_compat.py +230 -0
  40. cecli_dev-1.1.0rc1/cecli_dev.egg-info/scm_version.json +0 -8
  41. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/.dockerignore +0 -0
  42. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/.flake8 +0 -0
  43. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/.gitattributes +0 -0
  44. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  45. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/.github/workflows/check_pypi_version.yml +0 -0
  46. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/.github/workflows/docker-build-test.yml +0 -0
  47. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/.github/workflows/docker-release.yml +0 -0
  48. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/.github/workflows/issues.yml +0 -0
  49. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/.github/workflows/pages.yml +0 -0
  50. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/.github/workflows/pre-commit.yml +0 -0
  51. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/.github/workflows/release.yml +0 -0
  52. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/.github/workflows/ubuntu-tests.yml +0 -0
  53. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/.github/workflows/windows-tests.yml +0 -0
  54. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/.github/workflows/windows_check_pypi_version.yml +0 -0
  55. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/.gitignore +0 -0
  56. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/.pre-commit-config.yaml +0 -0
  57. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/CHANGELOG.md +0 -0
  58. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/CNAME +0 -0
  59. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/CONTRIBUTING.md +0 -0
  60. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/HISTORY.md +0 -0
  61. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/LICENSE.txt +0 -0
  62. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/MANIFEST.in +0 -0
  63. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/README.md +0 -0
  64. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/Dockerfile +0 -0
  65. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/README.md +0 -0
  66. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/__init__.py +0 -0
  67. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/benchmark.py +0 -0
  68. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/benchmark_classic.py +0 -0
  69. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/clone-exercism.sh +0 -0
  70. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/cpp-test.sh +0 -0
  71. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/docker.sh +0 -0
  72. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/docker_build.sh +0 -0
  73. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/install-docker-ubuntu.sh +0 -0
  74. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/npm-test.sh +0 -0
  75. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/over_time.py +0 -0
  76. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/plot.sh +0 -0
  77. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/plots.py +0 -0
  78. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/problem_stats.py +0 -0
  79. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/prompts.py +0 -0
  80. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/refactor_tools.py +0 -0
  81. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/rsync.sh +0 -0
  82. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/rungrid.py +0 -0
  83. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/swe-bench-lite.txt +0 -0
  84. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/swe-bench.txt +0 -0
  85. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/swe_bench.py +0 -0
  86. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/test_benchmark.py +0 -0
  87. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/variations.1.sh +0 -0
  88. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/variations.2.sh +0 -0
  89. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/variations.3.sh +0 -0
  90. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/benchmark/variations.4.sh +0 -0
  91. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/__init__.py +0 -0
  92. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/__main__.py +0 -0
  93. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/args.py +0 -0
  94. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/args_formatter.py +0 -0
  95. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/change_tracker.py +0 -0
  96. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/__init__.py +0 -0
  97. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/architect_coder.py +0 -0
  98. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/ask_coder.py +0 -0
  99. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/chat_chunks.py +0 -0
  100. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/context_coder.py +0 -0
  101. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/copypaste_coder.py +0 -0
  102. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/editblock_coder.py +0 -0
  103. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/editblock_fenced_coder.py +0 -0
  104. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/editblock_func_coder.py +0 -0
  105. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  106. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/editor_editblock_coder.py +0 -0
  107. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/editor_whole_coder.py +0 -0
  108. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/hashline_coder.py +0 -0
  109. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/help_coder.py +0 -0
  110. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/patch_coder.py +0 -0
  111. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/search_replace.py +0 -0
  112. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/shell.py +0 -0
  113. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/single_wholefile_func_coder.py +0 -0
  114. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/sub_agent_coder.py +0 -0
  115. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/udiff_coder.py +0 -0
  116. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/udiff_simple.py +0 -0
  117. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/wholefile_coder.py +0 -0
  118. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/coders/wholefile_func_coder.py +0 -0
  119. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/__init__.py +0 -0
  120. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/agent.py +0 -0
  121. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/agent_model.py +0 -0
  122. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/agent_tree.py +0 -0
  123. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/architect.py +0 -0
  124. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/ask.py +0 -0
  125. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/auto_memory.py +0 -0
  126. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/chat_mode.py +0 -0
  127. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/clear.py +0 -0
  128. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/code.py +0 -0
  129. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/command_prefix.py +0 -0
  130. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/commit.py +0 -0
  131. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/compact.py +0 -0
  132. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/context.py +0 -0
  133. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/context_blocks.py +0 -0
  134. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/context_management.py +0 -0
  135. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/copy.py +0 -0
  136. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/copy_context.py +0 -0
  137. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/core.py +0 -0
  138. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/diff.py +0 -0
  139. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/drop.py +0 -0
  140. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/editor.py +0 -0
  141. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/editor_model.py +0 -0
  142. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/exclude_skill.py +0 -0
  143. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/exit.py +0 -0
  144. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/git.py +0 -0
  145. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/hashline.py +0 -0
  146. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/help.py +0 -0
  147. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/history_search.py +0 -0
  148. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/hooks.py +0 -0
  149. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/hot_reload.py +0 -0
  150. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/include_skill.py +0 -0
  151. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/lint.py +0 -0
  152. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/list_mcp.py +0 -0
  153. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/list_sessions.py +0 -0
  154. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/list_skills.py +0 -0
  155. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/load.py +0 -0
  156. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/load_hook.py +0 -0
  157. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/load_mcp.py +0 -0
  158. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/load_session.py +0 -0
  159. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/load_skill.py +0 -0
  160. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/ls.py +0 -0
  161. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/map.py +0 -0
  162. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/map_refresh.py +0 -0
  163. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/merge.py +0 -0
  164. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/model.py +0 -0
  165. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/models.py +0 -0
  166. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/multiline_mode.py +0 -0
  167. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/paste.py +0 -0
  168. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/quit.py +0 -0
  169. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/read_only.py +0 -0
  170. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/read_only_stub.py +0 -0
  171. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/reap_agent.py +0 -0
  172. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/remove_hook.py +0 -0
  173. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/remove_mcp.py +0 -0
  174. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/remove_memory.py +0 -0
  175. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/remove_skill.py +0 -0
  176. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/report.py +0 -0
  177. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/reset.py +0 -0
  178. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/rules.py +0 -0
  179. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/run.py +0 -0
  180. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/save.py +0 -0
  181. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/save_session.py +0 -0
  182. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/search_memory.py +0 -0
  183. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/settings.py +0 -0
  184. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/spawn_agent.py +0 -0
  185. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/switch_agent.py +0 -0
  186. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/terminal_data/linux.keytab +0 -0
  187. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/terminal_setup.py +0 -0
  188. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/test.py +0 -0
  189. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/tokens.py +0 -0
  190. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/undo.py +0 -0
  191. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/utils/__init__.py +0 -0
  192. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/utils/base_command.py +0 -0
  193. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/utils/helpers.py +0 -0
  194. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/utils/registry.py +0 -0
  195. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/utils/save_load_manager.py +0 -0
  196. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/voice.py +0 -0
  197. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/weak_model.py +0 -0
  198. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/web.py +0 -0
  199. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/commands/workspace.py +0 -0
  200. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/decoding.py +0 -0
  201. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/deprecated_args.py +0 -0
  202. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/diffs.py +0 -0
  203. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/dump.py +0 -0
  204. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/editor.py +0 -0
  205. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/exceptions.py +0 -0
  206. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/format_settings.py +0 -0
  207. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/help.py +0 -0
  208. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/help_pats.py +0 -0
  209. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/__init__.py +0 -0
  210. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/agents/__init__.py +0 -0
  211. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/agents/config.py +0 -0
  212. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/agents/defaults/__init__.py +0 -0
  213. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/agents/defaults/memorizer.md +0 -0
  214. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/agents/defaults/worker.md +0 -0
  215. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/agents/service.py +0 -0
  216. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/background_commands.py +0 -0
  217. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/command_parser.py +0 -0
  218. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/config_utils.py +0 -0
  219. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/conversation/__init__.py +0 -0
  220. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/conversation/base_message.py +0 -0
  221. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/conversation/files.py +0 -0
  222. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/conversation/integration.py +0 -0
  223. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/conversation/manager.py +0 -0
  224. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/conversation/service.py +0 -0
  225. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/conversation/tags.py +0 -0
  226. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/conversation/utils.py +0 -0
  227. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/copypaste.py +0 -0
  228. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/coroutines.py +0 -0
  229. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/crypto.py +0 -0
  230. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/file_searcher.py +0 -0
  231. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/file_system/__init__.py +0 -0
  232. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/file_system/builders.py +0 -0
  233. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/file_system/ignore.py +0 -0
  234. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/file_system/ngram_index.py +0 -0
  235. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/file_system/service.py +0 -0
  236. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/file_system/trie_index.py +0 -0
  237. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/grep_ast/__init__.py +0 -0
  238. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/grep_ast/dump.py +0 -0
  239. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/grep_ast/grep_ast.py +0 -0
  240. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/grep_ast/main.py +0 -0
  241. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/grep_ast/parsers.py +0 -0
  242. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/grep_ast/tsl.py +0 -0
  243. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/hashline.py +0 -0
  244. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/hashpos/__init__.py +0 -0
  245. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/hashpos/hashpos.py +0 -0
  246. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/hashpos/hashpos.v1.bak +0 -0
  247. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/hashpos/transformations.py +0 -0
  248. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/io_proxy.py +0 -0
  249. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/leak_detect.py +0 -0
  250. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/lock_detect.py +0 -0
  251. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/memory/__init__.py +0 -0
  252. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/memory/db.py +0 -0
  253. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/memory/utils.py +0 -0
  254. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/memory_control.py +0 -0
  255. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/model_providers.py +0 -0
  256. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/monorepo/__init__.py +0 -0
  257. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/monorepo/config.py +0 -0
  258. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/monorepo/local_workspace.py +0 -0
  259. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/monorepo/project.py +0 -0
  260. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/monorepo/workspace.py +0 -0
  261. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/monorepo/worktree.py +0 -0
  262. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/nested.py +0 -0
  263. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/observations/__init__.py +0 -0
  264. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/observations/service.py +0 -0
  265. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/orchestration/__init__.py +0 -0
  266. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/orchestration/agent_proxy.py +0 -0
  267. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/orchestration/environment.py +0 -0
  268. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/orchestration/region_resolver.py +0 -0
  269. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/orchestration/safe_methods.py +0 -0
  270. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/orchestration/security.py +0 -0
  271. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/orchestration/service.py +0 -0
  272. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/orchestration/tool_proxy.py +0 -0
  273. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/plugin_manager.py +0 -0
  274. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/profiler.py +0 -0
  275. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/queues.py +0 -0
  276. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/responses.py +0 -0
  277. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/server/__init__.py +0 -0
  278. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/server/acp/__init__.py +0 -0
  279. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/server/acp/bridge.py +0 -0
  280. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/server/acp/models.py +0 -0
  281. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/server/acp/protocol.py +0 -0
  282. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/server/signals.py +0 -0
  283. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/server/ws_server.py +0 -0
  284. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/similarity.py +0 -0
  285. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/skills.py +0 -0
  286. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/helpers/threading.py +0 -0
  287. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/history.py +0 -0
  288. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/hooks/__init__.py +0 -0
  289. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/hooks/base.py +0 -0
  290. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/hooks/helpers.py +0 -0
  291. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/hooks/integration.py +0 -0
  292. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/hooks/manager.py +0 -0
  293. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/hooks/registry.py +0 -0
  294. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/hooks/service.py +0 -0
  295. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/hooks/types.py +0 -0
  296. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/interruptible_input.py +0 -0
  297. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/linter.py +0 -0
  298. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/llm.py +0 -0
  299. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/main.py +0 -0
  300. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/mcp/__init__.py +0 -0
  301. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/mcp/oauth.py +0 -0
  302. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/mcp/utils.py +0 -0
  303. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/mdstream.py +0 -0
  304. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/onboarding.py +0 -0
  305. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/__init__.py +0 -0
  306. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/agent.yml +0 -0
  307. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/architect.yml +0 -0
  308. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/ask.yml +0 -0
  309. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/base.yml +0 -0
  310. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/context.yml +0 -0
  311. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/copypaste.yml +0 -0
  312. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/editblock.yml +0 -0
  313. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/editblock_fenced.yml +0 -0
  314. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/editblock_func.yml +0 -0
  315. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/editor_diff_fenced.yml +0 -0
  316. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/editor_editblock.yml +0 -0
  317. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/editor_whole.yml +0 -0
  318. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/hashline.yml +0 -0
  319. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/help.yml +0 -0
  320. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/patch.yml +0 -0
  321. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/single_wholefile_func.yml +0 -0
  322. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/subagent.yml +0 -0
  323. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/udiff.yml +0 -0
  324. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/udiff_simple.yml +0 -0
  325. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/utils/__init__.py +0 -0
  326. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/utils/registry.py +0 -0
  327. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/utils/system.py +0 -0
  328. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/wholefile.yml +0 -0
  329. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/prompts/wholefile_func.yml +0 -0
  330. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  331. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  332. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
  333. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  334. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  335. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  336. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  337. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  338. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  339. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  340. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  341. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  342. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  343. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  344. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  345. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  346. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  347. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  348. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  349. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  350. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  351. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  352. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  353. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  354. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  355. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  356. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  357. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  358. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  359. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  360. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  361. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  362. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/README.md +0 -0
  363. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
  364. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  365. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  366. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  367. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  368. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  369. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  370. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  371. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  372. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  373. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  374. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  375. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  376. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  377. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  378. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  379. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  380. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  381. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  382. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  383. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  384. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  385. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  386. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  387. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  388. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  389. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  390. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/reasoning_tags.py +0 -0
  391. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/repo.py +0 -0
  392. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/repomap.py +0 -0
  393. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/report.py +0 -0
  394. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/resources/__init__.py +0 -0
  395. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/resources/model-metadata.json +0 -0
  396. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/resources/model-settings.yml +0 -0
  397. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/resources/providers.json +0 -0
  398. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/run_cmd.py +0 -0
  399. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/scrape.py +0 -0
  400. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/sendchat.py +0 -0
  401. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/sessions.py +0 -0
  402. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/signals.py +0 -0
  403. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/special.py +0 -0
  404. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/__init__.py +0 -0
  405. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/_yield.py +0 -0
  406. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/command.py +0 -0
  407. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/delegate.py +0 -0
  408. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/edit_file.py +0 -0
  409. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/explore_code.py +0 -0
  410. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/git_branch.py +0 -0
  411. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/git_diff.py +0 -0
  412. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/git_log.py +0 -0
  413. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/git_remote.py +0 -0
  414. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/git_show.py +0 -0
  415. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/git_status.py +0 -0
  416. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/grep.py +0 -0
  417. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/ls.py +0 -0
  418. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/orchestrate.py +0 -0
  419. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/read_file.py +0 -0
  420. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/replace_facts.py +0 -0
  421. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/resource_manager.py +0 -0
  422. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/search_facts.py +0 -0
  423. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/thinking.py +0 -0
  424. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/undo_change.py +0 -0
  425. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/update_todo_list.py +0 -0
  426. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/utils/__init__.py +0 -0
  427. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/utils/base_tool.py +0 -0
  428. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/utils/helpers.py +0 -0
  429. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/utils/output.py +0 -0
  430. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/utils/registry.py +0 -0
  431. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/utils/responses.py +0 -0
  432. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/validations/__init__.py +0 -0
  433. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tools/validations/validations.py +0 -0
  434. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tui/__init__.py +0 -0
  435. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tui/app.py +0 -0
  436. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tui/io.py +0 -0
  437. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tui/styles.tcss +0 -0
  438. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tui/widgets/__init__.py +0 -0
  439. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tui/widgets/completion_bar.py +0 -0
  440. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tui/widgets/file_list.py +0 -0
  441. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tui/widgets/footer.py +0 -0
  442. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tui/widgets/input_area.py +0 -0
  443. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tui/widgets/input_container.py +0 -0
  444. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tui/widgets/key_hints.py +0 -0
  445. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tui/widgets/output.py +0 -0
  446. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tui/widgets/output_alt.bak +0 -0
  447. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tui/widgets/selectable_log.py +0 -0
  448. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tui/widgets/status_bar.py +0 -0
  449. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tui/widgets/subagent_pills.py +0 -0
  450. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/tui/worker.py +0 -0
  451. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/urls.py +0 -0
  452. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/utils.py +0 -0
  453. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/versioncheck.py +0 -0
  454. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/voice.py +0 -0
  455. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/waiting.py +0 -0
  456. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/watch.py +0 -0
  457. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/watch_prompts.py +0 -0
  458. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/_includes/blame.md +0 -0
  459. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/_includes/get-started.md +0 -0
  460. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/_includes/help-tip.md +0 -0
  461. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/_includes/help.md +0 -0
  462. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/_includes/install.md +0 -0
  463. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/_includes/keys.md +0 -0
  464. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/_includes/model-warnings.md +0 -0
  465. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/_includes/multi-line.md +0 -0
  466. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/_includes/python-m-aider.md +0 -0
  467. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/_includes/recording.css +0 -0
  468. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/_includes/recording.md +0 -0
  469. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/_includes/works-best.md +0 -0
  470. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/_sass/_features.scss +0 -0
  471. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/_sass/_footer.scss +0 -0
  472. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/_sass/_hero.scss +0 -0
  473. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/_sass/_info.scss +0 -0
  474. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/_sass/_layout.scss +0 -0
  475. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/_sass/_reset.scss +0 -0
  476. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/_sass/_testimonials.scss +0 -0
  477. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/_sass/_typography.scss +0 -0
  478. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/_sass/_variables.scss +0 -0
  479. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/_sass/custom/custom.scss +0 -0
  480. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/_sass/global-overrides.scss +0 -0
  481. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docmd.config.json +0 -0
  482. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/cecli-temp-logo-favicon.svg +0 -0
  483. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config/adv-model-settings.md +0 -0
  484. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config/agent-mode.md +0 -0
  485. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config/api-keys.md +0 -0
  486. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config/api.md +0 -0
  487. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config/conf.md +0 -0
  488. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config/custom-commands.md +0 -0
  489. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  490. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config/dotenv.md +0 -0
  491. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config/editor.md +0 -0
  492. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config/hooks.md +0 -0
  493. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config/mcp.md +0 -0
  494. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config/model-aliases.md +0 -0
  495. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config/model-configuration.md +0 -0
  496. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config/model-providers.md +0 -0
  497. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config/options.md +0 -0
  498. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config/persistent-memory.md +0 -0
  499. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config/reasoning.md +0 -0
  500. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config/retries.md +0 -0
  501. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config/security.md +0 -0
  502. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config/skills.md +0 -0
  503. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config/subagents.md +0 -0
  504. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config/tui.md +0 -0
  505. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config/workspaces.md +0 -0
  506. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/config.md +0 -0
  507. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/git.md +0 -0
  508. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/index.md +0 -0
  509. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/install/docker.md +0 -0
  510. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/install.md +0 -0
  511. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/languages.md +0 -0
  512. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  513. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/legal/privacy.md +0 -0
  514. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/llms/anthropic.md +0 -0
  515. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/llms/azure.md +0 -0
  516. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/llms/bedrock.md +0 -0
  517. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/llms/cohere.md +0 -0
  518. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/llms/deepseek.md +0 -0
  519. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/llms/gemini.md +0 -0
  520. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/llms/github.md +0 -0
  521. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/llms/groq.md +0 -0
  522. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/llms/lm-studio.md +0 -0
  523. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/llms/ollama.md +0 -0
  524. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/llms/openai-compat.md +0 -0
  525. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/llms/openai.md +0 -0
  526. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/llms/openrouter.md +0 -0
  527. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/llms/other.md +0 -0
  528. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/llms/vertex.md +0 -0
  529. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/llms/warnings.md +0 -0
  530. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/llms/xai.md +0 -0
  531. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/llms.md +0 -0
  532. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/more/analytics.md +0 -0
  533. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/more/edit-formats.md +0 -0
  534. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/more/infinite-output.md +0 -0
  535. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/more-info.md +0 -0
  536. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/repomap.md +0 -0
  537. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/scripting.md +0 -0
  538. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
  539. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  540. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/troubleshooting/imports.md +0 -0
  541. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  542. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/troubleshooting/support.md +0 -0
  543. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  544. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  545. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/troubleshooting.md +0 -0
  546. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/usage/commands.md +0 -0
  547. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/usage/conventions.md +0 -0
  548. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/usage/copypaste.md +0 -0
  549. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/usage/images-urls.md +0 -0
  550. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/usage/lint-test.md +0 -0
  551. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/usage/modes.md +0 -0
  552. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/usage/not-code.md +0 -0
  553. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/usage/notifications.md +0 -0
  554. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/usage/optional.md +0 -0
  555. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/usage/sessions.md +0 -0
  556. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/usage/tips.md +0 -0
  557. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/usage/voice.md +0 -0
  558. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/usage/watch.md +0 -0
  559. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/docs/usage.md +0 -0
  560. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/package-lock.json +0 -0
  561. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/package.json +0 -0
  562. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli/website/share/index.md +0 -0
  563. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli_dev.egg-info/dependency_links.txt +0 -0
  564. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli_dev.egg-info/entry_points.txt +0 -0
  565. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli_dev.egg-info/requires.txt +0 -0
  566. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/cecli_dev.egg-info/top_level.txt +0 -0
  567. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/docker/Dockerfile +0 -0
  568. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  569. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/pyproject.toml +0 -0
  570. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/pytest.ini +0 -0
  571. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/requirements/common-constraints.txt +0 -0
  572. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/requirements/requirements-dev.in +0 -0
  573. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/requirements/requirements-dev.txt +0 -0
  574. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/requirements/requirements-help.in +0 -0
  575. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/requirements/requirements-help.txt +0 -0
  576. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/requirements/requirements-playwright.in +0 -0
  577. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/requirements/requirements-playwright.txt +0 -0
  578. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/requirements/requirements.in +0 -0
  579. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/requirements/tree-sitter.in +0 -0
  580. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/requirements.txt +0 -0
  581. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/30k-image.py +0 -0
  582. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/__init__.py +0 -0
  583. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/blame.py +0 -0
  584. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/clean_metadata.py +0 -0
  585. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/compare-message-history.py +0 -0
  586. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/cost_analyzer.py +0 -0
  587. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/cost_calculator.py +0 -0
  588. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/dl_icons.py +0 -0
  589. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/docmd_build.sh +0 -0
  590. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/filter-chat-mode.js +0 -0
  591. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/generate_providers.py +0 -0
  592. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/get_contributor_list.js +0 -0
  593. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/get_hashline.py +0 -0
  594. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/history_prompts.py +0 -0
  595. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/homepage.py +0 -0
  596. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/issues.py +0 -0
  597. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/logo_svg.py +0 -0
  598. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/optimize_tokens.sh +0 -0
  599. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/pip-compile.sh +0 -0
  600. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/recording_audio.py +0 -0
  601. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/redact-cast.py +0 -0
  602. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/rename_to_cecli.py +0 -0
  603. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/tmux_record.sh +0 -0
  604. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/tsl_pack_langs.py +0 -0
  605. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/update-blame.sh +0 -0
  606. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/update-docs.sh +0 -0
  607. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/update-history.py +0 -0
  608. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/versionbump.py +0 -0
  609. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/scripts/yank-old-versions.py +0 -0
  610. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/setup.cfg +0 -0
  611. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/shim.pyproject.toml +0 -0
  612. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/__init__.py +0 -0
  613. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/__init__.py +0 -0
  614. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/conftest.py +0 -0
  615. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_aws_credentials.py +0 -0
  616. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_background_commands.py +0 -0
  617. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_custom_commands.py +0 -0
  618. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_deprecated.py +0 -0
  619. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_editblock.py +0 -0
  620. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_editor.py +0 -0
  621. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_exceptions.py +0 -0
  622. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_find_or_blocks.py +0 -0
  623. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_hashline.py +0 -0
  624. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_hashline_closure.py +0 -0
  625. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_history.py +0 -0
  626. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_io.py +0 -0
  627. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_linter.py +0 -0
  628. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_model_info_manager.py +0 -0
  629. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_model_provider_manager.py +0 -0
  630. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_onboarding.py +0 -0
  631. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_plugin_manager.py +0 -0
  632. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_prompts.py +0 -0
  633. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_reasoning.py +0 -0
  634. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_repo.py +0 -0
  635. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_repomap.py +0 -0
  636. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_run_cmd.py +0 -0
  637. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_sanity_check_repo.py +0 -0
  638. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_scripting.py +0 -0
  639. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_select_selector.py +0 -0
  640. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_sendchat.py +0 -0
  641. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_session_args.py +0 -0
  642. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_session_crypto.py +0 -0
  643. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_sessions.py +0 -0
  644. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_sessions_manager.py +0 -0
  645. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_skills.py +0 -0
  646. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_special.py +0 -0
  647. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_spinner.py +0 -0
  648. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_ssl_verification.py +0 -0
  649. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_udiff.py +0 -0
  650. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_urls.py +0 -0
  651. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_voice.py +0 -0
  652. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_watch.py +0 -0
  653. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/basic/test_wholefile.py +0 -0
  654. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/coders/test_coder_switching.py +0 -0
  655. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/coders/test_copypaste_coder.py +0 -0
  656. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/coders/test_tool_call_consolidation.py +0 -0
  657. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/commands/test_auto_memory.py +0 -0
  658. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/commands/test_compaction.py +0 -0
  659. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/commands/test_remove_memory.py +0 -0
  660. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/commands/test_search_memory.py +0 -0
  661. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/commands/test_switch_agent.py +0 -0
  662. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/conftest.py +0 -0
  663. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/conversations/test_conversation_integration.py +0 -0
  664. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/conversations/test_conversation_system.py +0 -0
  665. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  666. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/chat-history.md +0 -0
  667. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/arduino/test.ino +0 -0
  668. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/bash/test.sh +0 -0
  669. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/c/test.c +0 -0
  670. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/chatito/test.chatito +0 -0
  671. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/clojure/test.clj +0 -0
  672. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  673. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/cpp/test.cpp +0 -0
  674. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/csharp/test.cs +0 -0
  675. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/d/test.d +0 -0
  676. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/dart/test.dart +0 -0
  677. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/elisp/test.el +0 -0
  678. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/elixir/test.ex +0 -0
  679. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/elm/test.elm +0 -0
  680. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/gleam/test.gleam +0 -0
  681. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/go/test.go +0 -0
  682. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/haskell/test.hs +0 -0
  683. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/hcl/test.tf +0 -0
  684. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/java/test.java +0 -0
  685. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/javascript/test.js +0 -0
  686. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/kotlin/test.kt +0 -0
  687. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/lua/test.lua +0 -0
  688. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/matlab/test.m +0 -0
  689. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/ocaml/test.ml +0 -0
  690. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  691. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/php/test.php +0 -0
  692. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/pony/test.pony +0 -0
  693. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/properties/test.properties +0 -0
  694. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/python/test.py +0 -0
  695. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/ql/test.ql +0 -0
  696. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/r/test.r +0 -0
  697. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/racket/test.rkt +0 -0
  698. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/ruby/test.rb +0 -0
  699. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/rust/test.rs +0 -0
  700. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/scala/test.scala +0 -0
  701. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/solidity/test.sol +0 -0
  702. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/swift/test.swift +0 -0
  703. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/tsx/test.tsx +0 -0
  704. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/typescript/test.ts +0 -0
  705. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/udev/test.rules +0 -0
  706. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/languages/zig/test.zig +0 -0
  707. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/sample-code-base/sample.js +0 -0
  708. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/sample-code-base/sample.py +0 -0
  709. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  710. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/watch.js +0 -0
  711. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/watch.lisp +0 -0
  712. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/watch.py +0 -0
  713. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/fixtures/watch_question.js +0 -0
  714. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/help/test_help.py +0 -0
  715. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/helpers/monorepo/LOCAL_WORKSPACE.md +0 -0
  716. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/helpers/monorepo/test_config.py +0 -0
  717. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/helpers/monorepo/test_config_active.py +0 -0
  718. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
  719. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/helpers/monorepo/test_local_workspace.py +0 -0
  720. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
  721. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/helpers/monorepo/test_workspace.py +0 -0
  722. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/helpers/observations/test_observation_service.py +0 -0
  723. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/helpers/server/acp/__init__.py +0 -0
  724. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/helpers/server/acp/test_bridge.py +0 -0
  725. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/helpers/server/acp/test_dispatch.py +0 -0
  726. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/helpers/server/acp/test_models.py +0 -0
  727. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/helpers/server/acp/test_protocol.py +0 -0
  728. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/helpers/test_memory_control.py +0 -0
  729. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/helpers/test_orchestration.py +0 -0
  730. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/hooks/__init__.py +0 -0
  731. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/hooks/test_base.py +0 -0
  732. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/hooks/test_manager.py +0 -0
  733. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/hooks/test_registry.py +0 -0
  734. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/integration/test_agent_mcp_management.py +0 -0
  735. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/integration/test_config_loading.py +0 -0
  736. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/integration/test_mcp_management.py +0 -0
  737. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/mcp/__init__.py +0 -0
  738. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/mcp/mock_server.py +0 -0
  739. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/mcp/test_keepalive_integration.py +0 -0
  740. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/mcp/test_keepalive_logging.py +0 -0
  741. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/mcp/test_keepalive_resilience.py +0 -0
  742. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/mcp/test_keepalive_unit.py +0 -0
  743. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/scrape/test_playwright_disable.py +0 -0
  744. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/scrape/test_scrape.py +0 -0
  745. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/subagents/__init__.py +0 -0
  746. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/subagents/conftest.py +0 -0
  747. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/subagents/test_commands.py +0 -0
  748. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/subagents/test_config.py +0 -0
  749. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/subagents/test_delegate.py +0 -0
  750. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/subagents/test_finished.py +0 -0
  751. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/subagents/test_io_proxy.py +0 -0
  752. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/subagents/test_service.py +0 -0
  753. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/subagents/test_sub_agent_coder.py +0 -0
  754. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/test_requests.py +0 -0
  755. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/tools/test_extractions.py +0 -0
  756. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/tools/test_get_lines.py +0 -0
  757. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/tools/test_git_branch.py +0 -0
  758. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/tools/test_git_diff.py +0 -0
  759. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/tools/test_grep.py +0 -0
  760. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/tools/test_insert_block.py +0 -0
  761. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/tools/test_read_range_execute.py +0 -0
  762. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/tools/test_registry.py +0 -0
  763. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/tools/test_remove_mcp_tool.py +0 -0
  764. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/tools/test_tool_arguments.py +0 -0
  765. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/tools/test_tools_load_mcp_tool.py +0 -0
  766. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/tools/validations.py +0 -0
  767. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/tui/test_app.py +0 -0
  768. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/unit/conftest.py +0 -0
  769. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/unit/test_deep_merge.py +0 -0
  770. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/unit/test_edge_cases.py +0 -0
  771. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/unit/test_load_mcp.py +0 -0
  772. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/unit/test_performance.py +0 -0
  773. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/unit/test_queues.py +0 -0
  774. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/unit/test_remove_mcp.py +0 -0
  775. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/unit/test_shallow_merge.py +0 -0
  776. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/unit/test_signals.py +0 -0
  777. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/unit/test_unit_load_mcp_tool.py +0 -0
  778. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/tests/unit/test_unit_remove_mcp_tool.py +0 -0
  779. {cecli_dev-1.1.0rc1 → cecli_dev-1.1.0rc4}/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.1.0rc1
3
+ Version: 1.1.0rc4
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.1.0rc1'
22
- __version_tuple__ = version_tuple = (1, 1, 0, 'rc1')
21
+ __version__ = version = '1.1.0rc4'
22
+ __version_tuple__ = version_tuple = (1, 1, 0, 'rc4')
23
23
 
24
- __commit_id__ = commit_id = 'g50ae7d861'
24
+ __commit_id__ = commit_id = 'gc405e1f0a'
@@ -27,7 +27,6 @@ from cecli.helpers.similarity import (
27
27
  )
28
28
  from cecli.helpers.skills import SkillsManager
29
29
  from cecli.hooks import HookIntegration
30
- from cecli.llm import litellm
31
30
  from cecli.mcp import LocalServer, McpServerManager
32
31
  from cecli.tools.utils.base_tool import BaseTool
33
32
  from cecli.tools.utils.registry import ToolRegistry
@@ -364,16 +363,12 @@ class AgentCoder(Coder):
364
363
  }
365
364
  try:
366
365
  session = await server.connect()
367
- call_result = await litellm.experimental_mcp_client.call_openai_tool(
368
- session=session, openai_tool=tool_call_dict
369
- )
366
+ call_result = await self.call_mcp_tool_from_session(session, tool_call_dict)
370
367
  except Exception as e:
371
368
  if server.is_session_expired_error(e):
372
369
  try:
373
370
  session = await server.reconnect()
374
- call_result = await litellm.experimental_mcp_client.call_openai_tool(
375
- session=session, openai_tool=tool_call_dict
376
- )
371
+ call_result = await self.call_mcp_tool_from_session(session, tool_call_dict)
377
372
  except Exception as retry_exc:
378
373
  self.io.tool_warning(
379
374
  f"Executing {tool_name} on {server.name} failed after reconnect:\n"
@@ -851,12 +851,12 @@ class Coder(metaclass=UsageMeta):
851
851
  settings_items.append(f"{self.edit_format} (edit format)")
852
852
 
853
853
  # Thinking tokens
854
- thinking_tokens = main_model.get_thinking_tokens()
854
+ thinking_tokens = self.get_active_model().get_thinking_tokens()
855
855
  if thinking_tokens:
856
856
  settings_items.append(f"{thinking_tokens} think tokens")
857
857
 
858
858
  # Reasoning effort
859
- reasoning_effort = main_model.get_reasoning_effort()
859
+ reasoning_effort = self.get_active_model().get_reasoning_effort()
860
860
  if reasoning_effort:
861
861
  settings_items.append(f"reasoning {reasoning_effort}")
862
862
 
@@ -3110,19 +3110,14 @@ class Coder(metaclass=UsageMeta):
3110
3110
 
3111
3111
  async def do_tool_call():
3112
3112
  nonlocal session
3113
- from litellm import experimental_mcp_client
3114
3113
 
3115
3114
  try:
3116
- return await experimental_mcp_client.call_openai_tool(
3117
- session=session,
3118
- openai_tool=new_tool_call,
3119
- )
3115
+ return await self.call_mcp_tool_from_session(session, new_tool_call)
3120
3116
  except Exception as e:
3121
3117
  if server.is_session_expired_error(e):
3122
3118
  session = await server.reconnect()
3123
- return await experimental_mcp_client.call_openai_tool(
3124
- session=session,
3125
- openai_tool=new_tool_call,
3119
+ return await self.call_mcp_tool_from_session(
3120
+ session, new_tool_call
3126
3121
  )
3127
3122
  raise
3128
3123
 
@@ -3209,6 +3204,34 @@ class Coder(metaclass=UsageMeta):
3209
3204
 
3210
3205
  return tool_responses
3211
3206
 
3207
+ async def call_mcp_tool_from_session(self, session, tool_call):
3208
+ """Call an MCP tool from an OpenAI-style tool call using the native SDK.
3209
+
3210
+ Accepts either a dict (``{"function": {"name": ..., "arguments": ...}}``)
3211
+ or a tool-call object (e.g. litellm's ChatCompletionMessageToolCall) and
3212
+ invokes the MCP session directly, avoiding litellm's lazily-imported
3213
+ ``experimental_mcp_client`` submodule.
3214
+ """
3215
+ if isinstance(tool_call, dict):
3216
+ function = tool_call.get("function", {})
3217
+ name = function.get("name")
3218
+ arguments = function.get("arguments", {})
3219
+ else:
3220
+ function = getattr(tool_call, "function", None)
3221
+ name = getattr(function, "name", None)
3222
+ arguments = getattr(function, "arguments", {})
3223
+
3224
+ if isinstance(arguments, str):
3225
+ try:
3226
+ arguments = json.loads(arguments)
3227
+ except json.JSONDecodeError:
3228
+ arguments = {}
3229
+
3230
+ if not isinstance(arguments, dict):
3231
+ arguments = {}
3232
+
3233
+ return await session.call_tool(name=name, arguments=arguments)
3234
+
3212
3235
  async def process_tool_calls(self, tool_call_response):
3213
3236
  """Simplified main entry point."""
3214
3237
  # Check if max tool calls exceeded
@@ -4248,15 +4271,12 @@ class Coder(metaclass=UsageMeta):
4248
4271
 
4249
4272
  self.message_tokens_received += completion_tokens
4250
4273
 
4251
- # Build the new streamlined format
4252
- tokens_parts = [format_tokens(prompt_tokens)]
4253
-
4254
- if cache_hit_tokens:
4255
- tokens_parts.append(f"{format_tokens(cache_hit_tokens)}")
4256
- if cache_write_tokens:
4257
- tokens_parts.append(f"{format_tokens(cache_write_tokens)}")
4258
-
4259
- tokens_str = "/".join(tokens_parts)
4274
+ # Build tokens string as "{prompt} CH {hit_rate:.1f}% ↑ {completion} ↓"
4275
+ if prompt_tokens > 0:
4276
+ hit_rate = round(cache_hit_tokens / prompt_tokens * 100, 1) if cache_hit_tokens else 0.0
4277
+ else:
4278
+ hit_rate = 0.0
4279
+ tokens_str = f"{format_tokens(prompt_tokens)} ◇ {hit_rate:.1f}%"
4260
4280
 
4261
4281
  tokens_report = f"{tokens_str} ↑ {format_tokens(completion_tokens)} ↓"
4262
4282
 
@@ -4271,12 +4291,17 @@ class Coder(metaclass=UsageMeta):
4271
4291
  + self.message_tokens_received
4272
4292
  )
4273
4293
  total_combined_cached = self.total_cached_tokens + self.message_cached_tokens
4294
+ total_input_tokens = self.total_tokens_sent + self.message_tokens_sent
4295
+ if total_input_tokens > 0:
4296
+ total_hit_rate = (
4297
+ round(total_combined_cached / total_input_tokens * 100, 1)
4298
+ if total_combined_cached
4299
+ else 0.0
4300
+ )
4301
+ else:
4302
+ total_hit_rate = 0.0
4274
4303
 
4275
- total_stats = f"{format_tokens(total_combined_tokens)}"
4276
- if total_combined_cached:
4277
- total_stats += f"/{format_tokens(total_combined_cached)}"
4278
-
4279
- total_stats += " ↑↓"
4304
+ total_stats = f"{format_tokens(total_combined_tokens)} ◇ {total_hit_rate:.1f}% ↑↓"
4280
4305
 
4281
4306
  if not self.get_active_model().info.get("input_cost_per_token"):
4282
4307
  self.usage_report = tokens_report + " " + total_stats
@@ -132,7 +132,24 @@ class AddCommand(BaseCommand):
132
132
  f" {active_model.name} does not support images."
133
133
  )
134
134
  continue
135
- content = io.read_text(abs_file_path)
135
+ try:
136
+ content = io.read_text(abs_file_path)
137
+ except (ValueError, UnicodeError, UnicodeDecodeError, OSError) as exc:
138
+ # Binary or undecodable files (e.g. .git/objects/pack/*.rev)
139
+ # raise ValueError("Could not determine text encoding ...")
140
+ # from decoding.safe_open. Skip them gracefully instead of
141
+ # crashing the session.
142
+ msg = str(exc)
143
+ if "Could not determine text encoding" in msg or isinstance(
144
+ exc, (UnicodeError, UnicodeDecodeError)
145
+ ):
146
+ io.tool_warning(
147
+ f"Skipping {matched_file}: not decodable as text "
148
+ "(binary or unknown encoding)"
149
+ )
150
+ else:
151
+ io.tool_error(f"Skipping {matched_file}: {exc}")
152
+ continue
136
153
  if content is None:
137
154
  io.tool_error(f"Unable to read {matched_file}")
138
155
  else:
@@ -14,7 +14,7 @@ class ReasoningEffortCommand(BaseCommand):
14
14
  @classmethod
15
15
  async def execute(cls, io, coder, args, **kwargs):
16
16
  """Execute the reasoning-effort command with given parameters."""
17
- model = coder.main_model
17
+ model = coder.get_active_model()
18
18
 
19
19
  if not args.strip():
20
20
  # Display current value if no args are provided
@@ -11,7 +11,7 @@ class ThinkTokensCommand(BaseCommand):
11
11
  @classmethod
12
12
  async def execute(cls, io, coder, args, **kwargs):
13
13
  """Execute the think-tokens command with given parameters."""
14
- model = coder.main_model
14
+ model = coder.get_active_model()
15
15
 
16
16
  if not args.strip():
17
17
  # Display current value if no args are provided
@@ -0,0 +1,10 @@
1
+ """Derive default per-model configuration from model metadata.
2
+
3
+ The model config package turns a flat litellm-style model metadata file into the
4
+ ``{api, llm, agent}`` override blocks that :mod:`cecli.models` consumes,
5
+ mirroring the ``model-overrides`` section of ``.cecli.conf.yml``.
6
+ """
7
+
8
+ from .pipeline import ModelConfigPipeline, get_default_config
9
+
10
+ __all__ = ["ModelConfigPipeline", "get_default_config"]
@@ -0,0 +1,40 @@
1
+ """Derive the ``agent`` override block for a model.
2
+
3
+ The agent block holds ModelSettings overrides. :mod:`cecli.models` applies each
4
+ of these directly (``setattr``) the same way the ``agent`` section of a
5
+ ``model-overrides`` entry is applied.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ from typing import Dict, Optional
11
+
12
+ from .identifiers import is_anthropic
13
+ from .utils import supports_reasoning
14
+
15
+
16
+ def derive_agent_config(provider: Optional[str], route: str, record: Optional[Dict]) -> Dict:
17
+ """Return the ``agent`` config block for a model.
18
+
19
+ Args:
20
+ provider: Provider portion of the model name (may be ``None``).
21
+ route: Model route (name after the provider prefix).
22
+ record: The matched model metadata record, or ``None`` for unknown models.
23
+
24
+ Returns:
25
+ A dict of ModelSettings overrides (caching, temperature handling).
26
+ """
27
+ reasoning = supports_reasoning(record)
28
+ record = record or {}
29
+ agent: Dict = {
30
+ "cache_control": is_anthropic(provider, route, record),
31
+ # ``cache_read_input_token_cost`` in the metadata is the determinant for
32
+ # whether a model supports prompt caching. Unknown models default to
33
+ # assuming caching support.
34
+ "caches_by_default": bool(record.get("cache_read_input_token_cost")) if record else True,
35
+ }
36
+
37
+ if reasoning or record.get("supports_adaptive_thinking"):
38
+ agent["use_temperature"] = False
39
+
40
+ return agent
@@ -0,0 +1,62 @@
1
+ """Derive the ``api`` override block for a model.
2
+
3
+ The api block holds request-level parameters. :mod:`cecli.models` merges each
4
+ of these keys into ``extra_params`` the same way the ``api`` section of a
5
+ ``model-overrides`` entry is applied.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ from typing import Dict, Optional
11
+
12
+ from .identifiers import is_anthropic, is_claude_5_plus, is_gemini_2_5
13
+ from .utils import supports_reasoning
14
+
15
+ _THINKING_BUDGET_TOKENS = 2048
16
+ #: Default thinking budget for Gemini 2.5 models (Gemini 2.5 Pro's default).
17
+ _GEMINI_THINKING_BUDGET_TOKENS = 8192
18
+
19
+
20
+ def derive_api_config(provider: Optional[str], route: str, record: Optional[Dict]) -> Dict:
21
+ """Return the ``api`` config block for a model.
22
+
23
+ Args:
24
+ provider: Provider portion of the model name (may be ``None``).
25
+ route: Model route (name after the provider prefix).
26
+ record: The matched model metadata record, or ``None`` for unknown models.
27
+
28
+ Returns:
29
+ A dict of request-level params (reasoning format, thinking, tool calls).
30
+ """
31
+ reasoning = supports_reasoning(record)
32
+ record = record or {}
33
+ gemini_2_5 = is_gemini_2_5(provider, route, record)
34
+ api: Dict = {}
35
+
36
+ if reasoning and not gemini_2_5:
37
+ effort = _default_reasoning_effort(record)
38
+
39
+ if effort:
40
+ api["reasoning_effort"] = effort
41
+
42
+ if is_anthropic(provider, route, record) and not is_claude_5_plus(provider, route, record):
43
+ # Claude 5+ uses adaptive thinking via ``reasoning_effort`` instead of
44
+ # the ``thinking.type.enabled`` budget block.
45
+ api["thinking"] = {"type": "enabled", "budget_tokens": _THINKING_BUDGET_TOKENS}
46
+ elif gemini_2_5:
47
+ # Gemini 2.5 configures thinking via a token budget; litellm maps the
48
+ # generic ``thinking`` param onto ``thinkingBudget`` + ``includeThoughts``.
49
+ api["thinking"] = {"type": "enabled", "budget_tokens": _GEMINI_THINKING_BUDGET_TOKENS}
50
+
51
+ if record.get("supports_parallel_function_calling", True):
52
+ api["parallel_tool_calls"] = True
53
+
54
+ return api
55
+
56
+
57
+ def _default_reasoning_effort(record):
58
+ """Default reasoning effort for a reasoning-capable model.
59
+
60
+ Always ``medium``; the metadata effort flags are intentionally not used.
61
+ """
62
+ return "medium"
@@ -0,0 +1,20 @@
1
+ """Provider-specific helper overrides for the model config pipeline."""
2
+
3
+ from .reasoning import anthropic_reasoning, format_reasoning, gemini_reasoning, noop
4
+ from .thinking import (
5
+ anthropic_5_thinking,
6
+ anthropic_thinking,
7
+ format_thinking,
8
+ gemini_thinking,
9
+ )
10
+
11
+ __all__ = [
12
+ "format_reasoning",
13
+ "anthropic_reasoning",
14
+ "gemini_reasoning",
15
+ "noop",
16
+ "format_thinking",
17
+ "anthropic_thinking",
18
+ "anthropic_5_thinking",
19
+ "gemini_thinking",
20
+ ]
@@ -0,0 +1,83 @@
1
+ """Reasoning formatters for the model config pipeline.
2
+
3
+ These helpers rewrite the generic reasoning effort shape onto the params
4
+ litellm understands for a provider. ``extra_params`` are the kwargs passed to
5
+ ``litellm.acompletion``, so a formatter exposes the effort as a top-level
6
+ litellm param and lets litellm map it onto the provider's own field. For
7
+ example, Gemini uses ``thinkingConfig`` under the hood: litellm maps a
8
+ top-level ``reasoning_effort`` to ``thinkingLevel`` (Gemini 3) or
9
+ ``thinkingBudget`` (Gemini 2.5). ``set_reasoning_effort`` in
10
+ :mod:`cecli.models` invokes the formatter chosen by the pipeline
11
+ (``helpers.format_reasoning``) after it has applied the generic shape.
12
+ """
13
+
14
+ from __future__ import annotations
15
+
16
+ from typing import Callable, Dict, Optional
17
+
18
+ from ..identifiers import is_claude_5_plus, is_gemini
19
+
20
+
21
+ def format_reasoning(provider: Optional[str], route: str, record: Optional[Dict]) -> Callable:
22
+ """Return the reasoning formatter for a model.
23
+
24
+ Args:
25
+ provider: Provider portion of the model name (may be ``None``).
26
+ route: Model route (name after the provider prefix).
27
+ record: The matched model metadata record, or ``None`` for unknown models.
28
+
29
+ Returns:
30
+ A callable that mutates ``extra_params`` in place. Unknown models get
31
+ a noop so ``set_reasoning_effort`` keeps its default behavior.
32
+ """
33
+ if is_gemini(provider, route, record):
34
+ return gemini_reasoning
35
+
36
+ if is_claude_5_plus(provider, route, record):
37
+ return anthropic_reasoning
38
+
39
+ return noop
40
+
41
+
42
+ def noop(extra_params: Dict) -> Dict:
43
+ """Default formatter: leave ``extra_params`` untouched."""
44
+ return extra_params
45
+
46
+
47
+ def gemini_reasoning(extra_params: Dict) -> Dict:
48
+ """Gemini models configure thinking via litellm's ``reasoning_effort``.
49
+
50
+ litellm maps the top-level ``reasoning_effort`` kwarg onto Gemini's
51
+ ``thinkingConfig`` (``thinkingLevel`` for Gemini 3, ``thinkingBudget`` for
52
+ Gemini 2.5) and sets ``includeThoughts``, so the generic effort is lifted
53
+ out of ``extra_body``.
54
+ """
55
+ return _lift_reasoning_effort(extra_params)
56
+
57
+
58
+ def anthropic_reasoning(extra_params: Dict) -> Dict:
59
+ """Claude 5+ models configure thinking via litellm's ``reasoning_effort``.
60
+
61
+ litellm maps the top-level ``reasoning_effort`` kwarg onto
62
+ ``thinking.type.adaptive`` + ``output_config.effort``, so the generic
63
+ effort is lifted out of ``extra_body`` and ``extra_body`` is dropped
64
+ (Anthropic does not accept extra inputs).
65
+ """
66
+ params = _lift_reasoning_effort(extra_params)
67
+ params.pop("extra_body", None)
68
+ return params
69
+
70
+
71
+ def _lift_reasoning_effort(extra_params: Dict) -> Dict:
72
+ """Move the generic ``reasoning_effort`` out of ``extra_body`` to top level."""
73
+ extra_body = extra_params.get("extra_body")
74
+
75
+ if not isinstance(extra_body, dict):
76
+ return extra_params
77
+
78
+ effort = extra_body.pop("reasoning_effort", None)
79
+
80
+ if effort is not None:
81
+ extra_params["reasoning_effort"] = effort
82
+
83
+ return extra_params
@@ -0,0 +1,108 @@
1
+ """Thinking formatters for the model config pipeline.
2
+
3
+ These helpers rewrite the generic thinking shape onto the params litellm
4
+ understands for a provider. ``extra_params`` are the kwargs passed to
5
+ ``litellm.acompletion``, so a formatter exposes thinking as a top-level litellm
6
+ param and lets litellm map it onto the provider's own field. For example:
7
+
8
+ - Gemini uses ``thinkingConfig`` under the hood: litellm maps a top-level
9
+ anthropic-style ``thinking`` param to ``thinkingBudget`` (Gemini 2.5) or
10
+ ``thinkingLevel`` (Gemini 3) and sets ``includeThoughts``.
11
+ - Anthropic consumes the top-level ``thinking`` kwarg directly; riding inside
12
+ ``extra_body`` makes the API reject it as extra inputs.
13
+
14
+ ``set_thinking_tokens`` in :mod:`cecli.models` invokes the formatter chosen by
15
+ the pipeline (``helpers.format_thinking``) after it has applied the generic
16
+ shape.
17
+ """
18
+
19
+ from __future__ import annotations
20
+
21
+ from typing import Callable, Dict, Optional
22
+
23
+ from ..identifiers import is_anthropic, is_claude_5_plus, is_gemini
24
+
25
+
26
+ def format_thinking(provider: Optional[str], route: str, record: Optional[Dict]) -> Callable:
27
+ """Return the thinking formatter for a model.
28
+
29
+ Args:
30
+ provider: Provider portion of the model name (may be ``None``).
31
+ route: Model route (name after the provider prefix).
32
+ record: The matched model metadata record, or ``None`` for unknown models.
33
+
34
+ Returns:
35
+ A callable that mutates ``extra_params`` in place. Unknown models get
36
+ a noop so ``set_thinking_tokens`` keeps its default behavior.
37
+ """
38
+ if is_gemini(provider, route, record):
39
+ return gemini_thinking
40
+
41
+ if is_anthropic(provider, route, record):
42
+ if is_claude_5_plus(provider, route, record):
43
+ # Claude 5+ cannot use thinking.type.enabled; remove it entirely.
44
+ return anthropic_5_thinking
45
+
46
+ return anthropic_thinking
47
+
48
+ return noop
49
+
50
+
51
+ def noop(extra_params: Dict) -> Dict:
52
+ """Default formatter: leave ``extra_params`` untouched."""
53
+ return extra_params
54
+
55
+
56
+ def gemini_thinking(extra_params: Dict) -> Dict:
57
+ """Gemini models configure thinking via litellm's ``thinking`` kwarg.
58
+
59
+ litellm maps the top-level anthropic-style ``thinking`` param onto
60
+ Gemini's ``thinkingConfig`` (``thinkingBudget`` for Gemini 2.5,
61
+ ``thinkingLevel`` for Gemini 3) and sets ``includeThoughts``, so the
62
+ generic shape is lifted out of ``extra_body``.
63
+ """
64
+ return _lift_thinking(extra_params)
65
+
66
+
67
+ def anthropic_thinking(extra_params: Dict) -> Dict:
68
+ """Anthropic (pre-5) models consume the top-level ``thinking`` kwarg.
69
+
70
+ litellm maps the top-level anthropic-style ``thinking`` param into the
71
+ request body, so it must not ride inside ``extra_body`` (which the
72
+ Anthropic API rejects as extra inputs).
73
+ """
74
+ params = _lift_thinking(extra_params)
75
+ params.pop("extra_body", None)
76
+ return params
77
+
78
+
79
+ def anthropic_5_thinking(extra_params: Dict) -> Dict:
80
+ """Claude 5+ models cannot use ``thinking.type.enabled``.
81
+
82
+ Thinking is instead controlled via ``reasoning_effort`` (which litellm maps
83
+ to ``thinking.type.adaptive`` + ``output_config.effort``), so any thinking
84
+ block is removed entirely and ``extra_body`` is dropped.
85
+ """
86
+ extra_params.pop("thinking", None)
87
+ extra_body = extra_params.get("extra_body")
88
+
89
+ if isinstance(extra_body, dict):
90
+ extra_body.pop("thinking", None)
91
+
92
+ extra_params.pop("extra_body", None)
93
+ return extra_params
94
+
95
+
96
+ def _lift_thinking(extra_params: Dict) -> Dict:
97
+ """Move the generic ``thinking`` shape out of ``extra_body`` to top level."""
98
+ extra_body = extra_params.get("extra_body")
99
+
100
+ if not isinstance(extra_body, dict):
101
+ return extra_params
102
+
103
+ thinking = extra_body.pop("thinking", None)
104
+
105
+ if thinking is not None:
106
+ extra_params["thinking"] = thinking
107
+
108
+ return extra_params
@@ -0,0 +1,77 @@
1
+ """Model identifier helpers for the model config pipeline.
2
+
3
+ These predicates classify a model by family/provider from its name prefix,
4
+ route, and metadata record. Centralizing them keeps the config modules
5
+ (api.py, llm.py, agent.py) and formatters free of repeated provider matching.
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ import re
11
+
12
+
13
+ def _haystack(provider, route, record):
14
+ """Lowercased, space-joined provider/route/record-provider for matching."""
15
+ provider = (provider or "").lower()
16
+ route = (route or "").lower()
17
+ record_provider = ((record or {}).get("litellm_provider") or "").lower()
18
+ return " ".join([provider, route, record_provider])
19
+
20
+
21
+ def is_anthropic(provider, route, record):
22
+ """True when the model is an Anthropic-family model (Claude)."""
23
+ haystack = _haystack(provider, route, record)
24
+ return "anthropic" in haystack or "claude" in (route or "").lower()
25
+
26
+
27
+ def is_gemini(provider, route, record):
28
+ """True when the model is a Gemini-series model."""
29
+ return "gemini" in _haystack(provider, route, record)
30
+
31
+
32
+ def is_gemini_2_5(provider, route, record):
33
+ """True when the model is a Gemini 2.5-series model."""
34
+ return "gemini-2.5" in (route or "").lower()
35
+
36
+
37
+ def is_claude_5_plus(provider, route, record):
38
+ """True for Claude 5+ models, which use adaptive thinking + output_config.
39
+
40
+ Claude 5+ does not accept ``thinking.type.enabled``; thinking is controlled
41
+ via ``thinking.type.adaptive`` and ``output_config.effort`` (which litellm
42
+ derives from a top-level ``reasoning_effort`` param).
43
+ """
44
+ route = (route or "").lower()
45
+ match = re.search(r"claude[^\d]*(\d+)", route)
46
+
47
+ if not match:
48
+ return False
49
+
50
+ return int(match.group(1)) >= 5
51
+
52
+
53
+ def is_github_copilot(provider, route, record):
54
+ """True when the model is served through GitHub Copilot."""
55
+ provider = (provider or "").lower()
56
+ record_provider = ((record or {}).get("litellm_provider") or "").lower()
57
+ return provider == "github_copilot" or record_provider == "github_copilot"
58
+
59
+
60
+ def is_meta(provider, route, record):
61
+ """True when the model is a Meta-provider model."""
62
+ provider = (provider or "").lower()
63
+ record_provider = ((record or {}).get("litellm_provider") or "").lower()
64
+ return provider == "meta" or record_provider == "meta"
65
+
66
+
67
+ def gpt_version(route):
68
+ """Return the leading ``gpt-`` model version, or 0 when not a gpt model.
69
+
70
+ e.g. ``gpt-5.6-luna`` -> 5.6, ``gpt-5`` -> 5, ``claude-3`` -> 0.
71
+ """
72
+ match = re.match(r"^gpt-(\d+(?:\.\d+)?)", (route or "").lower())
73
+
74
+ if not match:
75
+ return 0
76
+
77
+ return float(match.group(1))