cecli-dev 1.0.5__tar.gz → 1.1.0rc2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (778) hide show
  1. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/PKG-INFO +1 -1
  2. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/_version.py +3 -3
  3. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/base_coder.py +129 -56
  4. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/reasoning_effort.py +1 -1
  5. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/think_tokens.py +1 -1
  6. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/io_proxy.py +5 -1
  7. cecli_dev-1.1.0rc2/cecli/helpers/model_config/__init__.py +10 -0
  8. cecli_dev-1.1.0rc2/cecli/helpers/model_config/agent.py +40 -0
  9. cecli_dev-1.1.0rc2/cecli/helpers/model_config/api.py +62 -0
  10. cecli_dev-1.1.0rc2/cecli/helpers/model_config/formatters/__init__.py +20 -0
  11. cecli_dev-1.1.0rc2/cecli/helpers/model_config/formatters/reasoning.py +83 -0
  12. cecli_dev-1.1.0rc2/cecli/helpers/model_config/formatters/thinking.py +108 -0
  13. cecli_dev-1.1.0rc2/cecli/helpers/model_config/identifiers.py +77 -0
  14. cecli_dev-1.1.0rc2/cecli/helpers/model_config/llm.py +108 -0
  15. cecli_dev-1.1.0rc2/cecli/helpers/model_config/pipeline.py +345 -0
  16. cecli_dev-1.1.0rc2/cecli/helpers/model_config/utils.py +163 -0
  17. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/requests.py +54 -1
  18. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/models.py +230 -145
  19. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/resources/model-metadata.json +308 -152
  20. cecli_dev-1.1.0rc2/cecli/resources/model-settings-condensed.yml +502 -0
  21. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/ls.py +2 -2
  22. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/utils/output.py +2 -1
  23. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tui/io.py +18 -16
  24. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli_dev.egg-info/PKG-INFO +1 -1
  25. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli_dev.egg-info/SOURCES.txt +14 -0
  26. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli_dev.egg-info/scm_file_list.json +915 -901
  27. cecli_dev-1.1.0rc2/cecli_dev.egg-info/scm_version.json +8 -0
  28. cecli_dev-1.1.0rc2/scripts/condense_model_settings.py +256 -0
  29. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_commands.py +1 -1
  30. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_main.py +9 -2
  31. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_models.py +17 -10
  32. cecli_dev-1.1.0rc2/tests/coders/test_tool_call_consolidation.py +206 -0
  33. cecli_dev-1.1.0rc2/tests/helpers/test_model_config.py +857 -0
  34. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/test_requests.py +84 -0
  35. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/tools/test_tool_arguments.py +3 -1
  36. cecli_dev-1.0.5/cecli_dev.egg-info/scm_version.json +0 -8
  37. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/.dockerignore +0 -0
  38. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/.flake8 +0 -0
  39. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/.gitattributes +0 -0
  40. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  41. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/.github/workflows/check_pypi_version.yml +0 -0
  42. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/.github/workflows/docker-build-test.yml +0 -0
  43. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/.github/workflows/docker-release.yml +0 -0
  44. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/.github/workflows/issues.yml +0 -0
  45. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/.github/workflows/pages.yml +0 -0
  46. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/.github/workflows/pre-commit.yml +0 -0
  47. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/.github/workflows/release.yml +0 -0
  48. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/.github/workflows/ubuntu-tests.yml +0 -0
  49. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/.github/workflows/windows-tests.yml +0 -0
  50. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/.github/workflows/windows_check_pypi_version.yml +0 -0
  51. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/.gitignore +0 -0
  52. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/.pre-commit-config.yaml +0 -0
  53. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/CHANGELOG.md +0 -0
  54. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/CNAME +0 -0
  55. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/CONTRIBUTING.md +0 -0
  56. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/HISTORY.md +0 -0
  57. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/LICENSE.txt +0 -0
  58. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/MANIFEST.in +0 -0
  59. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/README.md +0 -0
  60. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/Dockerfile +0 -0
  61. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/README.md +0 -0
  62. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/__init__.py +0 -0
  63. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/benchmark.py +0 -0
  64. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/benchmark_classic.py +0 -0
  65. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/clone-exercism.sh +0 -0
  66. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/cpp-test.sh +0 -0
  67. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/docker.sh +0 -0
  68. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/docker_build.sh +0 -0
  69. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/install-docker-ubuntu.sh +0 -0
  70. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/npm-test.sh +0 -0
  71. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/over_time.py +0 -0
  72. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/plot.sh +0 -0
  73. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/plots.py +0 -0
  74. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/problem_stats.py +0 -0
  75. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/prompts.py +0 -0
  76. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/refactor_tools.py +0 -0
  77. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/rsync.sh +0 -0
  78. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/rungrid.py +0 -0
  79. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/swe-bench-lite.txt +0 -0
  80. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/swe-bench.txt +0 -0
  81. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/swe_bench.py +0 -0
  82. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/test_benchmark.py +0 -0
  83. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/variations.1.sh +0 -0
  84. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/variations.2.sh +0 -0
  85. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/variations.3.sh +0 -0
  86. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/benchmark/variations.4.sh +0 -0
  87. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/__init__.py +0 -0
  88. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/__main__.py +0 -0
  89. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/args.py +0 -0
  90. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/args_formatter.py +0 -0
  91. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/change_tracker.py +0 -0
  92. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/__init__.py +0 -0
  93. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/agent_coder.py +0 -0
  94. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/architect_coder.py +0 -0
  95. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/ask_coder.py +0 -0
  96. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/chat_chunks.py +0 -0
  97. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/context_coder.py +0 -0
  98. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/copypaste_coder.py +0 -0
  99. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/editblock_coder.py +0 -0
  100. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/editblock_fenced_coder.py +0 -0
  101. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/editblock_func_coder.py +0 -0
  102. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  103. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/editor_editblock_coder.py +0 -0
  104. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/editor_whole_coder.py +0 -0
  105. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/hashline_coder.py +0 -0
  106. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/help_coder.py +0 -0
  107. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/patch_coder.py +0 -0
  108. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/search_replace.py +0 -0
  109. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/shell.py +0 -0
  110. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/single_wholefile_func_coder.py +0 -0
  111. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/sub_agent_coder.py +0 -0
  112. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/udiff_coder.py +0 -0
  113. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/udiff_simple.py +0 -0
  114. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/wholefile_coder.py +0 -0
  115. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/coders/wholefile_func_coder.py +0 -0
  116. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/__init__.py +0 -0
  117. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/add.py +0 -0
  118. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/agent.py +0 -0
  119. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/agent_model.py +0 -0
  120. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/agent_tree.py +0 -0
  121. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/architect.py +0 -0
  122. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/ask.py +0 -0
  123. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/auto_memory.py +0 -0
  124. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/chat_mode.py +0 -0
  125. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/clear.py +0 -0
  126. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/code.py +0 -0
  127. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/command_prefix.py +0 -0
  128. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/commit.py +0 -0
  129. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/compact.py +0 -0
  130. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/context.py +0 -0
  131. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/context_blocks.py +0 -0
  132. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/context_management.py +0 -0
  133. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/copy.py +0 -0
  134. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/copy_context.py +0 -0
  135. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/core.py +0 -0
  136. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/diff.py +0 -0
  137. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/drop.py +0 -0
  138. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/editor.py +0 -0
  139. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/editor_model.py +0 -0
  140. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/exclude_skill.py +0 -0
  141. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/exit.py +0 -0
  142. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/git.py +0 -0
  143. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/hashline.py +0 -0
  144. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/help.py +0 -0
  145. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/history_search.py +0 -0
  146. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/hooks.py +0 -0
  147. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/hot_reload.py +0 -0
  148. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/include_skill.py +0 -0
  149. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/lint.py +0 -0
  150. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/list_mcp.py +0 -0
  151. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/list_sessions.py +0 -0
  152. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/list_skills.py +0 -0
  153. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/load.py +0 -0
  154. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/load_hook.py +0 -0
  155. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/load_mcp.py +0 -0
  156. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/load_session.py +0 -0
  157. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/load_skill.py +0 -0
  158. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/ls.py +0 -0
  159. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/map.py +0 -0
  160. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/map_refresh.py +0 -0
  161. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/merge.py +0 -0
  162. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/model.py +0 -0
  163. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/models.py +0 -0
  164. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/multiline_mode.py +0 -0
  165. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/paste.py +0 -0
  166. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/quit.py +0 -0
  167. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/read_only.py +0 -0
  168. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/read_only_stub.py +0 -0
  169. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/reap_agent.py +0 -0
  170. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/remove_hook.py +0 -0
  171. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/remove_mcp.py +0 -0
  172. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/remove_memory.py +0 -0
  173. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/remove_skill.py +0 -0
  174. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/report.py +0 -0
  175. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/reset.py +0 -0
  176. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/rules.py +0 -0
  177. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/run.py +0 -0
  178. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/save.py +0 -0
  179. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/save_session.py +0 -0
  180. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/search_memory.py +0 -0
  181. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/settings.py +0 -0
  182. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/spawn_agent.py +0 -0
  183. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/switch_agent.py +0 -0
  184. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/terminal_data/linux.keytab +0 -0
  185. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/terminal_setup.py +0 -0
  186. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/test.py +0 -0
  187. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/tokens.py +0 -0
  188. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/undo.py +0 -0
  189. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/utils/__init__.py +0 -0
  190. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/utils/base_command.py +0 -0
  191. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/utils/helpers.py +0 -0
  192. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/utils/registry.py +0 -0
  193. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/utils/save_load_manager.py +0 -0
  194. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/voice.py +0 -0
  195. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/weak_model.py +0 -0
  196. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/web.py +0 -0
  197. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/commands/workspace.py +0 -0
  198. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/decoding.py +0 -0
  199. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/deprecated_args.py +0 -0
  200. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/diffs.py +0 -0
  201. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/dump.py +0 -0
  202. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/editor.py +0 -0
  203. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/exceptions.py +0 -0
  204. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/format_settings.py +0 -0
  205. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/help.py +0 -0
  206. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/help_pats.py +0 -0
  207. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/__init__.py +0 -0
  208. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/agents/__init__.py +0 -0
  209. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/agents/config.py +0 -0
  210. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/agents/defaults/__init__.py +0 -0
  211. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/agents/defaults/memorizer.md +0 -0
  212. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/agents/defaults/worker.md +0 -0
  213. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/agents/service.py +0 -0
  214. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/background_commands.py +0 -0
  215. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/command_parser.py +0 -0
  216. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/config_utils.py +0 -0
  217. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/conversation/__init__.py +0 -0
  218. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/conversation/base_message.py +0 -0
  219. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/conversation/files.py +0 -0
  220. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/conversation/integration.py +0 -0
  221. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/conversation/manager.py +0 -0
  222. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/conversation/service.py +0 -0
  223. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/conversation/tags.py +0 -0
  224. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/conversation/utils.py +0 -0
  225. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/copypaste.py +0 -0
  226. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/coroutines.py +0 -0
  227. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/crypto.py +0 -0
  228. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/file_searcher.py +0 -0
  229. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/file_system/__init__.py +0 -0
  230. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/file_system/builders.py +0 -0
  231. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/file_system/ignore.py +0 -0
  232. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/file_system/ngram_index.py +0 -0
  233. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/file_system/service.py +0 -0
  234. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/file_system/trie_index.py +0 -0
  235. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/grep_ast/__init__.py +0 -0
  236. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/grep_ast/dump.py +0 -0
  237. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/grep_ast/grep_ast.py +0 -0
  238. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/grep_ast/main.py +0 -0
  239. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/grep_ast/parsers.py +0 -0
  240. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/grep_ast/tsl.py +0 -0
  241. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/hashline.py +0 -0
  242. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/hashpos/__init__.py +0 -0
  243. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/hashpos/hashpos.py +0 -0
  244. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/hashpos/hashpos.v1.bak +0 -0
  245. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/hashpos/transformations.py +0 -0
  246. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/leak_detect.py +0 -0
  247. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/lock_detect.py +0 -0
  248. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/memory/__init__.py +0 -0
  249. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/memory/db.py +0 -0
  250. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/memory/utils.py +0 -0
  251. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/memory_control.py +0 -0
  252. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/model_providers.py +0 -0
  253. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/monorepo/__init__.py +0 -0
  254. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/monorepo/config.py +0 -0
  255. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/monorepo/local_workspace.py +0 -0
  256. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/monorepo/project.py +0 -0
  257. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/monorepo/workspace.py +0 -0
  258. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/monorepo/worktree.py +0 -0
  259. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/nested.py +0 -0
  260. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/observations/__init__.py +0 -0
  261. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/observations/service.py +0 -0
  262. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/orchestration/__init__.py +0 -0
  263. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/orchestration/agent_proxy.py +0 -0
  264. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/orchestration/environment.py +0 -0
  265. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/orchestration/region_resolver.py +0 -0
  266. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/orchestration/safe_methods.py +0 -0
  267. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/orchestration/security.py +0 -0
  268. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/orchestration/service.py +0 -0
  269. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/orchestration/tool_proxy.py +0 -0
  270. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/plugin_manager.py +0 -0
  271. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/profiler.py +0 -0
  272. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/queues.py +0 -0
  273. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/responses.py +0 -0
  274. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/server/__init__.py +0 -0
  275. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/server/acp/__init__.py +0 -0
  276. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/server/acp/bridge.py +0 -0
  277. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/server/acp/models.py +0 -0
  278. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/server/acp/protocol.py +0 -0
  279. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/server/signals.py +0 -0
  280. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/server/ws_server.py +0 -0
  281. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/similarity.py +0 -0
  282. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/skills.py +0 -0
  283. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/helpers/threading.py +0 -0
  284. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/history.py +0 -0
  285. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/hooks/__init__.py +0 -0
  286. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/hooks/base.py +0 -0
  287. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/hooks/helpers.py +0 -0
  288. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/hooks/integration.py +0 -0
  289. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/hooks/manager.py +0 -0
  290. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/hooks/registry.py +0 -0
  291. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/hooks/service.py +0 -0
  292. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/hooks/types.py +0 -0
  293. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/interruptible_input.py +0 -0
  294. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/io.py +0 -0
  295. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/linter.py +0 -0
  296. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/llm.py +0 -0
  297. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/main.py +0 -0
  298. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/mcp/__init__.py +0 -0
  299. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/mcp/manager.py +0 -0
  300. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/mcp/oauth.py +0 -0
  301. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/mcp/server.py +0 -0
  302. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/mcp/utils.py +0 -0
  303. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/mdstream.py +0 -0
  304. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/onboarding.py +0 -0
  305. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/__init__.py +0 -0
  306. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/agent.yml +0 -0
  307. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/architect.yml +0 -0
  308. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/ask.yml +0 -0
  309. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/base.yml +0 -0
  310. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/context.yml +0 -0
  311. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/copypaste.yml +0 -0
  312. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/editblock.yml +0 -0
  313. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/editblock_fenced.yml +0 -0
  314. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/editblock_func.yml +0 -0
  315. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/editor_diff_fenced.yml +0 -0
  316. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/editor_editblock.yml +0 -0
  317. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/editor_whole.yml +0 -0
  318. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/hashline.yml +0 -0
  319. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/help.yml +0 -0
  320. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/patch.yml +0 -0
  321. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/single_wholefile_func.yml +0 -0
  322. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/subagent.yml +0 -0
  323. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/udiff.yml +0 -0
  324. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/udiff_simple.yml +0 -0
  325. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/utils/__init__.py +0 -0
  326. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/utils/registry.py +0 -0
  327. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/utils/system.py +0 -0
  328. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/wholefile.yml +0 -0
  329. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/prompts/wholefile_func.yml +0 -0
  330. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  331. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  332. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
  333. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  334. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  335. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  336. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  337. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  338. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  339. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  340. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  341. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  342. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  343. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  344. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  345. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  346. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  347. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  348. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  349. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  350. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  351. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  352. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  353. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  354. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  355. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  356. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  357. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  358. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  359. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  360. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  361. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  362. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/README.md +0 -0
  363. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
  364. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  365. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  366. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  367. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  368. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  369. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  370. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  371. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  372. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  373. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  374. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  375. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  376. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  377. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  378. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  379. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  380. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  381. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  382. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  383. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  384. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  385. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  386. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  387. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  388. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  389. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  390. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/reasoning_tags.py +0 -0
  391. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/repo.py +0 -0
  392. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/repomap.py +0 -0
  393. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/report.py +0 -0
  394. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/resources/__init__.py +0 -0
  395. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/resources/model-settings.yml +0 -0
  396. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/resources/providers.json +0 -0
  397. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/run_cmd.py +0 -0
  398. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/scrape.py +0 -0
  399. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/sendchat.py +0 -0
  400. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/sessions.py +0 -0
  401. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/signals.py +0 -0
  402. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/special.py +0 -0
  403. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/__init__.py +0 -0
  404. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/_yield.py +0 -0
  405. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/command.py +0 -0
  406. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/delegate.py +0 -0
  407. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/edit_file.py +0 -0
  408. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/explore_code.py +0 -0
  409. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/git_branch.py +0 -0
  410. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/git_diff.py +0 -0
  411. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/git_log.py +0 -0
  412. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/git_remote.py +0 -0
  413. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/git_show.py +0 -0
  414. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/git_status.py +0 -0
  415. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/grep.py +0 -0
  416. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/orchestrate.py +0 -0
  417. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/read_file.py +0 -0
  418. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/replace_facts.py +0 -0
  419. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/resource_manager.py +0 -0
  420. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/search_facts.py +0 -0
  421. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/thinking.py +0 -0
  422. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/undo_change.py +0 -0
  423. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/update_todo_list.py +0 -0
  424. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/utils/__init__.py +0 -0
  425. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/utils/base_tool.py +0 -0
  426. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/utils/helpers.py +0 -0
  427. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/utils/registry.py +0 -0
  428. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/utils/responses.py +0 -0
  429. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/validations/__init__.py +0 -0
  430. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tools/validations/validations.py +0 -0
  431. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tui/__init__.py +0 -0
  432. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tui/app.py +0 -0
  433. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tui/styles.tcss +0 -0
  434. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tui/widgets/__init__.py +0 -0
  435. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tui/widgets/completion_bar.py +0 -0
  436. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tui/widgets/file_list.py +0 -0
  437. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tui/widgets/footer.py +0 -0
  438. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tui/widgets/input_area.py +0 -0
  439. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tui/widgets/input_container.py +0 -0
  440. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tui/widgets/key_hints.py +0 -0
  441. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tui/widgets/output.py +0 -0
  442. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tui/widgets/output_alt.bak +0 -0
  443. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tui/widgets/selectable_log.py +0 -0
  444. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tui/widgets/status_bar.py +0 -0
  445. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tui/widgets/subagent_pills.py +0 -0
  446. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/tui/worker.py +0 -0
  447. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/urls.py +0 -0
  448. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/utils.py +0 -0
  449. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/versioncheck.py +0 -0
  450. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/voice.py +0 -0
  451. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/waiting.py +0 -0
  452. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/watch.py +0 -0
  453. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/watch_prompts.py +0 -0
  454. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/_includes/blame.md +0 -0
  455. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/_includes/get-started.md +0 -0
  456. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/_includes/help-tip.md +0 -0
  457. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/_includes/help.md +0 -0
  458. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/_includes/install.md +0 -0
  459. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/_includes/keys.md +0 -0
  460. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/_includes/model-warnings.md +0 -0
  461. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/_includes/multi-line.md +0 -0
  462. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/_includes/python-m-aider.md +0 -0
  463. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/_includes/recording.css +0 -0
  464. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/_includes/recording.md +0 -0
  465. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/_includes/works-best.md +0 -0
  466. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/_sass/_features.scss +0 -0
  467. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/_sass/_footer.scss +0 -0
  468. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/_sass/_hero.scss +0 -0
  469. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/_sass/_info.scss +0 -0
  470. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/_sass/_layout.scss +0 -0
  471. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/_sass/_reset.scss +0 -0
  472. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/_sass/_testimonials.scss +0 -0
  473. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/_sass/_typography.scss +0 -0
  474. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/_sass/_variables.scss +0 -0
  475. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/_sass/custom/custom.scss +0 -0
  476. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/_sass/global-overrides.scss +0 -0
  477. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docmd.config.json +0 -0
  478. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/cecli-temp-logo-favicon.svg +0 -0
  479. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config/adv-model-settings.md +0 -0
  480. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config/agent-mode.md +0 -0
  481. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config/api-keys.md +0 -0
  482. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config/api.md +0 -0
  483. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config/conf.md +0 -0
  484. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config/custom-commands.md +0 -0
  485. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  486. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config/dotenv.md +0 -0
  487. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config/editor.md +0 -0
  488. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config/hooks.md +0 -0
  489. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config/mcp.md +0 -0
  490. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config/model-aliases.md +0 -0
  491. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config/model-configuration.md +0 -0
  492. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config/model-providers.md +0 -0
  493. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config/options.md +0 -0
  494. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config/persistent-memory.md +0 -0
  495. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config/reasoning.md +0 -0
  496. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config/retries.md +0 -0
  497. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config/security.md +0 -0
  498. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config/skills.md +0 -0
  499. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config/subagents.md +0 -0
  500. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config/tui.md +0 -0
  501. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config/workspaces.md +0 -0
  502. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/config.md +0 -0
  503. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/git.md +0 -0
  504. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/index.md +0 -0
  505. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/install/docker.md +0 -0
  506. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/install.md +0 -0
  507. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/languages.md +0 -0
  508. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  509. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/legal/privacy.md +0 -0
  510. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/llms/anthropic.md +0 -0
  511. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/llms/azure.md +0 -0
  512. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/llms/bedrock.md +0 -0
  513. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/llms/cohere.md +0 -0
  514. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/llms/deepseek.md +0 -0
  515. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/llms/gemini.md +0 -0
  516. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/llms/github.md +0 -0
  517. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/llms/groq.md +0 -0
  518. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/llms/lm-studio.md +0 -0
  519. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/llms/ollama.md +0 -0
  520. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/llms/openai-compat.md +0 -0
  521. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/llms/openai.md +0 -0
  522. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/llms/openrouter.md +0 -0
  523. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/llms/other.md +0 -0
  524. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/llms/vertex.md +0 -0
  525. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/llms/warnings.md +0 -0
  526. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/llms/xai.md +0 -0
  527. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/llms.md +0 -0
  528. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/more/analytics.md +0 -0
  529. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/more/edit-formats.md +0 -0
  530. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/more/infinite-output.md +0 -0
  531. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/more-info.md +0 -0
  532. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/repomap.md +0 -0
  533. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/scripting.md +0 -0
  534. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
  535. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  536. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/troubleshooting/imports.md +0 -0
  537. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  538. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/troubleshooting/support.md +0 -0
  539. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  540. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  541. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/troubleshooting.md +0 -0
  542. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/usage/commands.md +0 -0
  543. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/usage/conventions.md +0 -0
  544. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/usage/copypaste.md +0 -0
  545. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/usage/images-urls.md +0 -0
  546. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/usage/lint-test.md +0 -0
  547. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/usage/modes.md +0 -0
  548. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/usage/not-code.md +0 -0
  549. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/usage/notifications.md +0 -0
  550. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/usage/optional.md +0 -0
  551. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/usage/sessions.md +0 -0
  552. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/usage/tips.md +0 -0
  553. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/usage/voice.md +0 -0
  554. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/usage/watch.md +0 -0
  555. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/docs/usage.md +0 -0
  556. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/package-lock.json +0 -0
  557. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/package.json +0 -0
  558. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli/website/share/index.md +0 -0
  559. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli_dev.egg-info/dependency_links.txt +0 -0
  560. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli_dev.egg-info/entry_points.txt +0 -0
  561. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli_dev.egg-info/requires.txt +0 -0
  562. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/cecli_dev.egg-info/top_level.txt +0 -0
  563. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/docker/Dockerfile +0 -0
  564. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  565. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/pyproject.toml +0 -0
  566. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/pytest.ini +0 -0
  567. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/requirements/common-constraints.txt +0 -0
  568. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/requirements/requirements-dev.in +0 -0
  569. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/requirements/requirements-dev.txt +0 -0
  570. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/requirements/requirements-help.in +0 -0
  571. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/requirements/requirements-help.txt +0 -0
  572. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/requirements/requirements-playwright.in +0 -0
  573. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/requirements/requirements-playwright.txt +0 -0
  574. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/requirements/requirements.in +0 -0
  575. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/requirements/tree-sitter.in +0 -0
  576. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/requirements.txt +0 -0
  577. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/30k-image.py +0 -0
  578. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/__init__.py +0 -0
  579. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/blame.py +0 -0
  580. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/clean_metadata.py +0 -0
  581. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/compare-message-history.py +0 -0
  582. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/cost_analyzer.py +0 -0
  583. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/cost_calculator.py +0 -0
  584. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/dl_icons.py +0 -0
  585. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/docmd_build.sh +0 -0
  586. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/filter-chat-mode.js +0 -0
  587. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/generate_providers.py +0 -0
  588. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/get_contributor_list.js +0 -0
  589. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/get_hashline.py +0 -0
  590. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/history_prompts.py +0 -0
  591. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/homepage.py +0 -0
  592. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/issues.py +0 -0
  593. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/logo_svg.py +0 -0
  594. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/optimize_tokens.sh +0 -0
  595. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/pip-compile.sh +0 -0
  596. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/recording_audio.py +0 -0
  597. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/redact-cast.py +0 -0
  598. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/rename_to_cecli.py +0 -0
  599. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/tmux_record.sh +0 -0
  600. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/tsl_pack_langs.py +0 -0
  601. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/update-blame.sh +0 -0
  602. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/update-docs.sh +0 -0
  603. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/update-history.py +0 -0
  604. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/versionbump.py +0 -0
  605. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/scripts/yank-old-versions.py +0 -0
  606. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/setup.cfg +0 -0
  607. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/shim.pyproject.toml +0 -0
  608. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/__init__.py +0 -0
  609. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/__init__.py +0 -0
  610. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/conftest.py +0 -0
  611. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_aws_credentials.py +0 -0
  612. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_background_commands.py +0 -0
  613. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_coder.py +0 -0
  614. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_custom_commands.py +0 -0
  615. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_deprecated.py +0 -0
  616. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_editblock.py +0 -0
  617. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_editor.py +0 -0
  618. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_exceptions.py +0 -0
  619. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_find_or_blocks.py +0 -0
  620. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_hashline.py +0 -0
  621. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_hashline_closure.py +0 -0
  622. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_history.py +0 -0
  623. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_io.py +0 -0
  624. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_linter.py +0 -0
  625. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_model_info_manager.py +0 -0
  626. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_model_provider_manager.py +0 -0
  627. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_onboarding.py +0 -0
  628. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_plugin_manager.py +0 -0
  629. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_prompts.py +0 -0
  630. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_reasoning.py +0 -0
  631. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_repo.py +0 -0
  632. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_repomap.py +0 -0
  633. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_run_cmd.py +0 -0
  634. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_sanity_check_repo.py +0 -0
  635. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_scripting.py +0 -0
  636. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_select_selector.py +0 -0
  637. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_sendchat.py +0 -0
  638. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_session_args.py +0 -0
  639. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_session_crypto.py +0 -0
  640. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_sessions.py +0 -0
  641. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_sessions_manager.py +0 -0
  642. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_skills.py +0 -0
  643. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_special.py +0 -0
  644. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_spinner.py +0 -0
  645. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_ssl_verification.py +0 -0
  646. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_udiff.py +0 -0
  647. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_urls.py +0 -0
  648. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_voice.py +0 -0
  649. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_watch.py +0 -0
  650. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/basic/test_wholefile.py +0 -0
  651. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/coders/test_coder_switching.py +0 -0
  652. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/coders/test_copypaste_coder.py +0 -0
  653. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/commands/test_auto_memory.py +0 -0
  654. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/commands/test_compaction.py +0 -0
  655. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/commands/test_remove_memory.py +0 -0
  656. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/commands/test_search_memory.py +0 -0
  657. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/commands/test_switch_agent.py +0 -0
  658. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/conftest.py +0 -0
  659. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/conversations/test_conversation_integration.py +0 -0
  660. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/conversations/test_conversation_system.py +0 -0
  661. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  662. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/chat-history.md +0 -0
  663. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/arduino/test.ino +0 -0
  664. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/bash/test.sh +0 -0
  665. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/c/test.c +0 -0
  666. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/chatito/test.chatito +0 -0
  667. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/clojure/test.clj +0 -0
  668. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  669. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/cpp/test.cpp +0 -0
  670. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/csharp/test.cs +0 -0
  671. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/d/test.d +0 -0
  672. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/dart/test.dart +0 -0
  673. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/elisp/test.el +0 -0
  674. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/elixir/test.ex +0 -0
  675. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/elm/test.elm +0 -0
  676. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/gleam/test.gleam +0 -0
  677. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/go/test.go +0 -0
  678. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/haskell/test.hs +0 -0
  679. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/hcl/test.tf +0 -0
  680. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/java/test.java +0 -0
  681. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/javascript/test.js +0 -0
  682. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/kotlin/test.kt +0 -0
  683. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/lua/test.lua +0 -0
  684. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/matlab/test.m +0 -0
  685. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/ocaml/test.ml +0 -0
  686. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  687. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/php/test.php +0 -0
  688. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/pony/test.pony +0 -0
  689. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/properties/test.properties +0 -0
  690. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/python/test.py +0 -0
  691. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/ql/test.ql +0 -0
  692. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/r/test.r +0 -0
  693. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/racket/test.rkt +0 -0
  694. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/ruby/test.rb +0 -0
  695. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/rust/test.rs +0 -0
  696. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/scala/test.scala +0 -0
  697. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/solidity/test.sol +0 -0
  698. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/swift/test.swift +0 -0
  699. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/tsx/test.tsx +0 -0
  700. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/typescript/test.ts +0 -0
  701. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/udev/test.rules +0 -0
  702. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/languages/zig/test.zig +0 -0
  703. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/sample-code-base/sample.js +0 -0
  704. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/sample-code-base/sample.py +0 -0
  705. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  706. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/watch.js +0 -0
  707. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/watch.lisp +0 -0
  708. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/watch.py +0 -0
  709. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/fixtures/watch_question.js +0 -0
  710. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/help/test_help.py +0 -0
  711. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/helpers/monorepo/LOCAL_WORKSPACE.md +0 -0
  712. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/helpers/monorepo/test_config.py +0 -0
  713. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/helpers/monorepo/test_config_active.py +0 -0
  714. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
  715. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/helpers/monorepo/test_local_workspace.py +0 -0
  716. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
  717. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/helpers/monorepo/test_workspace.py +0 -0
  718. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/helpers/observations/test_observation_service.py +0 -0
  719. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/helpers/server/acp/__init__.py +0 -0
  720. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/helpers/server/acp/test_bridge.py +0 -0
  721. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/helpers/server/acp/test_dispatch.py +0 -0
  722. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/helpers/server/acp/test_models.py +0 -0
  723. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/helpers/server/acp/test_protocol.py +0 -0
  724. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/helpers/test_memory_control.py +0 -0
  725. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/helpers/test_orchestration.py +0 -0
  726. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/hooks/__init__.py +0 -0
  727. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/hooks/test_base.py +0 -0
  728. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/hooks/test_manager.py +0 -0
  729. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/hooks/test_registry.py +0 -0
  730. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/integration/test_agent_mcp_management.py +0 -0
  731. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/integration/test_config_loading.py +0 -0
  732. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/integration/test_mcp_management.py +0 -0
  733. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/mcp/__init__.py +0 -0
  734. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/mcp/conftest.py +0 -0
  735. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/mcp/mock_server.py +0 -0
  736. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/mcp/test_keepalive_concurrency.py +0 -0
  737. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/mcp/test_keepalive_config.py +0 -0
  738. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/mcp/test_keepalive_integration.py +0 -0
  739. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/mcp/test_keepalive_logging.py +0 -0
  740. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/mcp/test_keepalive_resilience.py +0 -0
  741. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/mcp/test_keepalive_unit.py +0 -0
  742. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/mcp/test_manager.py +0 -0
  743. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/mcp/test_manager_retry.py +0 -0
  744. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/scrape/test_playwright_disable.py +0 -0
  745. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/scrape/test_scrape.py +0 -0
  746. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/subagents/__init__.py +0 -0
  747. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/subagents/conftest.py +0 -0
  748. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/subagents/test_commands.py +0 -0
  749. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/subagents/test_config.py +0 -0
  750. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/subagents/test_delegate.py +0 -0
  751. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/subagents/test_finished.py +0 -0
  752. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/subagents/test_io_proxy.py +0 -0
  753. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/subagents/test_service.py +0 -0
  754. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/subagents/test_sub_agent_coder.py +0 -0
  755. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/tools/test_extractions.py +0 -0
  756. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/tools/test_get_lines.py +0 -0
  757. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/tools/test_git_branch.py +0 -0
  758. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/tools/test_git_diff.py +0 -0
  759. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/tools/test_grep.py +0 -0
  760. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/tools/test_insert_block.py +0 -0
  761. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/tools/test_read_range_execute.py +0 -0
  762. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/tools/test_registry.py +0 -0
  763. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/tools/test_remove_mcp_tool.py +0 -0
  764. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/tools/test_tools_load_mcp_tool.py +0 -0
  765. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/tools/validations.py +0 -0
  766. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/tui/test_app.py +0 -0
  767. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/unit/conftest.py +0 -0
  768. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/unit/test_deep_merge.py +0 -0
  769. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/unit/test_edge_cases.py +0 -0
  770. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/unit/test_load_mcp.py +0 -0
  771. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/unit/test_performance.py +0 -0
  772. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/unit/test_queues.py +0 -0
  773. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/unit/test_remove_mcp.py +0 -0
  774. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/unit/test_shallow_merge.py +0 -0
  775. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/unit/test_signals.py +0 -0
  776. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/unit/test_unit_load_mcp_tool.py +0 -0
  777. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/tests/unit/test_unit_remove_mcp_tool.py +0 -0
  778. {cecli_dev-1.0.5 → cecli_dev-1.1.0rc2}/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.0.5
3
+ Version: 1.1.0rc2
4
4
  Summary: we also can't pronounce cecli
5
5
  Project-URL: Homepage, https://github.com/dwash96/cecli
6
6
  Project-URL: Documentation, https://github.com/dwash96/cecli
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '1.0.5'
22
- __version_tuple__ = version_tuple = (1, 0, 5)
21
+ __version__ = version = '1.1.0rc2'
22
+ __version_tuple__ = version_tuple = (1, 1, 0, 'rc2')
23
23
 
24
- __commit_id__ = commit_id = 'g7fb4509c5'
24
+ __commit_id__ = commit_id = 'g08300992a'
@@ -3440,11 +3440,17 @@ class Coder(metaclass=UsageMeta):
3440
3440
  to be `None` when `tool_calls` are present.
3441
3441
  """
3442
3442
  msg = dict(role="assistant")
3443
- response = (
3444
- self.partial_response_chunks[0]
3445
- if not self.stream
3446
- else litellm.stream_chunk_builder(self.partial_response_chunks)
3447
- )
3443
+
3444
+ # Prefer the response already produced by consolidate_chunks(): it carries
3445
+ # the provider-specific fields (e.g. reasoning_items) that we preserved
3446
+ # across all chunks, which a fresh litellm.stream_chunk_builder() pass
3447
+ # alone would drop or truncate.
3448
+ if self.partial_response_consolidated:
3449
+ response = self.partial_response_consolidated[0]
3450
+ elif not self.stream:
3451
+ response = self.partial_response_chunks[0]
3452
+ else:
3453
+ response = litellm.stream_chunk_builder(self.partial_response_chunks)
3448
3454
 
3449
3455
  try:
3450
3456
  # Use response_dict as a regular dictionary
@@ -3963,63 +3969,51 @@ class Coder(metaclass=UsageMeta):
3963
3969
  if getattr(last_chunk, "usage", None):
3964
3970
  response.usage = last_chunk.usage
3965
3971
 
3966
- # Collect provider-specific fields from chunks to preserve them
3967
- # We need to track both by ID (primary) and index (fallback) since
3968
- # early chunks might not have IDs established yet
3969
- provider_specific_fields_by_id = {}
3970
- provider_specific_fields_by_index = {}
3971
-
3972
+ # Collect message-level provider-specific fields (e.g. `reasoning_items`
3973
+ # for reasoning models) from ALL chunks. litellm's stream_chunk_builder()
3974
+ # merges these with last-wins semantics for list fields, silently dropping
3975
+ # every reasoning item except the final one. Reasoning models depend on the
3976
+ # full ordered item list being present in the assistant message so that
3977
+ # exact-prefix prompt caching keeps working across turns, so we collect the
3978
+ # fields ourselves and concatenate list-valued entries.
3979
+ message_provider_specific_fields = {}
3972
3980
  for chunk in self.partial_response_chunks:
3973
3981
  try:
3974
- if chunk.choices and chunk.choices[0].delta and chunk.choices[0].delta.tool_calls:
3975
- for tool_call in chunk.choices[0].delta.tool_calls:
3976
- if (
3977
- hasattr(tool_call, "provider_specific_fields")
3978
- and tool_call.provider_specific_fields
3979
- ):
3980
- # Ensure provider_specific_fields is a dictionary
3981
- psf = tool_call.provider_specific_fields
3982
- if not isinstance(psf, dict):
3983
- continue
3984
-
3985
- # Try to use ID first
3986
- if hasattr(tool_call, "id") and tool_call.id:
3987
- tool_id = tool_call.id
3988
- if tool_id not in provider_specific_fields_by_id:
3989
- provider_specific_fields_by_id[tool_id] = {}
3990
- # Merge provider-specific fields for this tool ID
3991
- provider_specific_fields_by_id[tool_id].update(psf)
3992
- # Also track by index as fallback
3993
- elif hasattr(tool_call, "index"):
3994
- tool_index = tool_call.index
3995
- if tool_index not in provider_specific_fields_by_index:
3996
- provider_specific_fields_by_index[tool_index] = {}
3997
- provider_specific_fields_by_index[tool_index].update(psf)
3982
+ if chunk.choices and chunk.choices[0].delta:
3983
+ psf = getattr(chunk.choices[0].delta, "provider_specific_fields", None)
3984
+ if psf and isinstance(psf, dict):
3985
+ for key, value in psf.items():
3986
+ if isinstance(value, list):
3987
+ message_provider_specific_fields.setdefault(key, []).extend(value)
3988
+ elif value is not None:
3989
+ message_provider_specific_fields[key] = value
3998
3990
  except (AttributeError, IndexError):
3999
3991
  continue
4000
3992
 
3993
+ if message_provider_specific_fields:
3994
+ message_psf = getattr(response.choices[0].message, "provider_specific_fields", None)
3995
+ if not isinstance(message_psf, dict):
3996
+ message_psf = {}
3997
+ message_psf.update(message_provider_specific_fields)
3998
+ response.choices[0].message.provider_specific_fields = message_psf
3999
+
4001
4000
  try:
4002
- if response.choices[0].message.tool_calls:
4003
- for i, tool_call in enumerate(response.choices[0].message.tool_calls):
4004
- # Add provider-specific fields if we collected any for this tool
4005
- tool_id = tool_call.id
4006
-
4007
- # Try ID first
4008
- if tool_id in provider_specific_fields_by_id:
4009
- # Add provider-specific fields directly to the tool call object
4010
- tool_call.provider_specific_fields = provider_specific_fields_by_id[tool_id]
4011
- # Fall back to index
4012
- elif i in provider_specific_fields_by_index:
4013
- # Add provider-specific fields directly to the tool call object
4014
- tool_call.provider_specific_fields = provider_specific_fields_by_index[i]
4015
-
4016
- # Only append to partial_response_tool_calls if it's empty
4017
- if len(self.partial_response_tool_calls) == 0:
4018
- self.partial_response_tool_calls.append(tool_call)
4019
-
4020
- self.partial_response_function_call = (
4021
- response.choices[0].message.tool_calls[0].function
4022
- )
4001
+ message_tool_calls = response.choices[0].message.tool_calls
4002
+ if message_tool_calls and len(message_tool_calls):
4003
+ if self.stream:
4004
+ built_tool_calls = self._build_tool_calls_from_chunks()
4005
+ if built_tool_calls:
4006
+ response.choices[0].message.tool_calls = built_tool_calls
4007
+ self.partial_response_tool_calls = built_tool_calls
4008
+ else:
4009
+ # Fall back to litellm's merged list, keeping every call
4010
+ self.partial_response_tool_calls = list(message_tool_calls)
4011
+ else:
4012
+ # Non-streaming: the single response chunk already carries the
4013
+ # full tool_calls list
4014
+ self.partial_response_tool_calls = list(message_tool_calls)
4015
+
4016
+ self.partial_response_function_call = self.partial_response_tool_calls[0].function
4023
4017
  except AttributeError as e:
4024
4018
  func_err = e
4025
4019
 
@@ -4075,6 +4069,85 @@ class Coder(metaclass=UsageMeta):
4075
4069
  self.partial_response_consolidated = (response, func_err, content_err)
4076
4070
  return response, func_err, content_err
4077
4071
 
4072
+ def _build_tool_calls_from_chunks(self):
4073
+ """Rebuild tool calls from the raw streaming chunks, keyed by delta index.
4074
+
4075
+ Streaming deltas for parallel tool calls arrive interleaved and may start
4076
+ at any index (not necessarily 0). Indexing into a dict by the delta's
4077
+ tool-call ``index`` before converting it back to a list ensures every
4078
+ parallel call is preserved, correctly ordered, and keeps its
4079
+ provider-specific fields (e.g. thought signatures) attached.
4080
+ """
4081
+ from litellm.types.utils import ChatCompletionMessageToolCall, Function
4082
+
4083
+ tool_calls_dict = {}
4084
+
4085
+ for chunk in self.partial_response_chunks:
4086
+ try:
4087
+ if not (chunk.choices and chunk.choices[0].delta):
4088
+ continue
4089
+
4090
+ delta = chunk.choices[0].delta
4091
+ for tool_call in delta.tool_calls or []:
4092
+ if tool_call is None:
4093
+ continue
4094
+
4095
+ if nested.getter(tool_call, "function") is None:
4096
+ continue
4097
+
4098
+ index = nested.getter(tool_call, "index")
4099
+ if index is None:
4100
+ index = len(tool_calls_dict)
4101
+
4102
+ entry = tool_calls_dict.setdefault(
4103
+ index,
4104
+ {
4105
+ "id": None,
4106
+ "name": None,
4107
+ "type": "function",
4108
+ "arguments": [],
4109
+ "provider_specific_fields": {},
4110
+ },
4111
+ )
4112
+
4113
+ entry["id"] = nested.getter(tool_call, "id") or entry["id"]
4114
+ entry["type"] = nested.getter(tool_call, "type") or entry["type"]
4115
+ entry["name"] = nested.getter(tool_call, "function.name") or entry["name"]
4116
+
4117
+ arguments = nested.getter(tool_call, "function.arguments")
4118
+ if arguments:
4119
+ entry["arguments"].append(arguments)
4120
+
4121
+ psf = nested.getter(tool_call, "provider_specific_fields")
4122
+ if not psf:
4123
+ psf = nested.getter(tool_call, "function.provider_specific_fields")
4124
+ if psf and isinstance(psf, dict):
4125
+ entry["provider_specific_fields"].update(psf)
4126
+ except (AttributeError, IndexError):
4127
+ continue
4128
+
4129
+ tool_calls = []
4130
+ for index in sorted(tool_calls_dict.keys()):
4131
+ data = tool_calls_dict[index]
4132
+ if not (data["id"] and data["name"]):
4133
+ continue
4134
+
4135
+ function = Function(
4136
+ arguments="".join(data["arguments"]) or "{}",
4137
+ name=data["name"],
4138
+ )
4139
+ params = {
4140
+ "id": data["id"],
4141
+ "function": function,
4142
+ "type": data["type"] or "function",
4143
+ }
4144
+ if data["provider_specific_fields"]:
4145
+ params["provider_specific_fields"] = data["provider_specific_fields"]
4146
+
4147
+ tool_calls.append(ChatCompletionMessageToolCall(**params))
4148
+
4149
+ return tool_calls
4150
+
4078
4151
  def stream_wrapper(self, content, final):
4079
4152
  if not hasattr(self, "_streaming_buffer_length"):
4080
4153
  self._streaming_buffer_length = 0
@@ -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
@@ -51,6 +51,9 @@ class IOProxy(Generic[T]):
51
51
  super().__setattr__("_coder", weakref.ref(coder))
52
52
  # Per-coder task storage: {coder_uuid: {attr_name: asyncio.Task}}
53
53
  super().__setattr__("_per_coder", {coder_uuid: {}})
54
+ # Last tool `type` emitted via tool_output — lives on the proxy,
55
+ # never on the shared target (like coder_uuid)
56
+ super().__setattr__("_last_type", None)
54
57
 
55
58
  # Register a per-coder input queue (TUI mode only)
56
59
  # Allows the TUI to push input directly to this coder's queue,
@@ -76,6 +79,7 @@ class IOProxy(Generic[T]):
76
79
  """Forward tool_output with coder_uuid injected."""
77
80
  if "coder_uuid" not in kwargs:
78
81
  kwargs["coder_uuid"] = self._coder_uuid
82
+ self._last_type = kwargs.get("type")
79
83
  return self._target.tool_output(*messages, **kwargs)
80
84
 
81
85
  def tool_error(self, message: str = "", strip: bool = True, **kwargs: Any) -> Any:
@@ -265,7 +269,7 @@ class IOProxy(Generic[T]):
265
269
 
266
270
  def __setattr__(self, name: str, value: Any) -> None:
267
271
  # Proxy-internal attributes — store on proxy instance only
268
- if name in ("_target", "_coder_uuid", "_coder", "_per_coder"):
272
+ if name in ("_target", "_coder_uuid", "_coder", "_per_coder", "_last_type"):
269
273
  super().__setattr__(name, value)
270
274
  # Per-coder task attributes — isolate per-coder so coders don't
271
275
  # compete for the same promise on the shared InputOutput instance
@@ -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