cecli-dev 0.100.8rc2__tar.gz → 0.100.9__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 (691) hide show
  1. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/PKG-INFO +1 -1
  2. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/_version.py +3 -3
  3. cecli_dev-0.100.9/cecli/coders/__init__.py +57 -0
  4. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/agent_coder.py +87 -10
  5. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/architect_coder.py +0 -1
  6. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/base_coder.py +53 -15
  7. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/copypaste_coder.py +7 -8
  8. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/__init__.py +3 -0
  9. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/agent_model.py +0 -1
  10. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/editor_model.py +0 -1
  11. cecli_dev-0.100.9/cecli/commands/list_mcp.py +71 -0
  12. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/model.py +0 -1
  13. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/remove_mcp.py +1 -1
  14. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/weak_model.py +0 -1
  15. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/conversation/integration.py +9 -5
  16. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/file_system/service.py +7 -4
  17. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/hashline.py +70 -75
  18. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/hashpos/hashpos.py +66 -79
  19. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/responses.py +16 -2
  20. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/linter.py +7 -2
  21. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/llm.py +1 -0
  22. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/main.py +57 -25
  23. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/mcp/manager.py +3 -4
  24. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/models.py +51 -8
  25. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/agent.yml +10 -9
  26. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/subagent.yml +9 -8
  27. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/repomap.py +18 -15
  28. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/resources/model-metadata.json +2088 -104
  29. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/scrape.py +4 -6
  30. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/__init__.py +2 -6
  31. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/command.py +40 -7
  32. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/command_interactive.py +60 -26
  33. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/edit_text.py +18 -16
  34. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/read_range.py +15 -8
  35. cecli_dev-0.100.9/cecli/tools/resource_manager.py +625 -0
  36. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/utils/helpers.py +2 -2
  37. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/utils/registry.py +1 -1
  38. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tui/app.py +0 -1
  39. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/watch.py +1 -1
  40. cecli_dev-0.100.9/cecli/website/_includes/works-best.md +1 -0
  41. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/_sass/global-overrides.scss +1 -1
  42. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/config/agent-mode.md +3 -5
  43. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/config/custom-system-prompts.md +1 -1
  44. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/config/skills.md +1 -0
  45. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/config.md +1 -1
  46. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/install.md +33 -26
  47. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/llms.md +8 -19
  48. {cecli_dev-0.100.8rc2/cecli/website/docs/install → cecli_dev-0.100.9/cecli/website/docs/usage}/optional.md +2 -2
  49. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/usage/tips.md +1 -1
  50. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/usage.md +1 -1
  51. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli_dev.egg-info/PKG-INFO +1 -1
  52. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli_dev.egg-info/SOURCES.txt +13 -6
  53. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/pytest.ini +1 -0
  54. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_coder.py +3 -5
  55. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_hashline.py +38 -37
  56. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_main.py +19 -10
  57. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_model_info_manager.py +1 -1
  58. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/helpers/observations/test_observation_service.py +4 -4
  59. cecli_dev-0.100.9/tests/integration/test_agent_mcp_management.py +132 -0
  60. cecli_dev-0.100.9/tests/integration/test_mcp_management.py +94 -0
  61. cecli_dev-0.100.9/tests/subagents/__init__.py +0 -0
  62. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/tools/test_registry.py +38 -35
  63. cecli_dev-0.100.9/tests/tools/test_remove_mcp_tool.py +157 -0
  64. cecli_dev-0.100.9/tests/tools/test_tools_load_mcp_tool.py +218 -0
  65. cecli_dev-0.100.9/tests/unit/test_load_mcp.py +281 -0
  66. cecli_dev-0.100.9/tests/unit/test_remove_mcp.py +273 -0
  67. cecli_dev-0.100.9/tests/unit/test_unit_load_mcp_tool.py +138 -0
  68. cecli_dev-0.100.9/tests/unit/test_unit_remove_mcp_tool.py +293 -0
  69. cecli_dev-0.100.8rc2/cecli/coders/__init__.py +0 -42
  70. cecli_dev-0.100.8rc2/cecli/tools/context_manager.py +0 -308
  71. cecli_dev-0.100.8rc2/cecli/tools/load_skill.py +0 -48
  72. cecli_dev-0.100.8rc2/cecli/tools/remove_skill.py +0 -48
  73. cecli_dev-0.100.8rc2/cecli/website/_includes/works-best.md +0 -1
  74. cecli_dev-0.100.8rc2/cecli/website/docs/faq.md +0 -379
  75. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/.dockerignore +0 -0
  76. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/.flake8 +0 -0
  77. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/.gitattributes +0 -0
  78. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  79. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/.github/workflows/check_pypi_version.yml +0 -0
  80. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/.github/workflows/docker-build-test.yml +0 -0
  81. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/.github/workflows/docker-release.yml +0 -0
  82. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/.github/workflows/issues.yml +0 -0
  83. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/.github/workflows/pages.yml +0 -0
  84. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/.github/workflows/pre-commit.yml +0 -0
  85. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/.github/workflows/release.yml +0 -0
  86. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/.github/workflows/ubuntu-tests.yml +0 -0
  87. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/.github/workflows/windows-tests.yml +0 -0
  88. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/.github/workflows/windows_check_pypi_version.yml +0 -0
  89. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/.gitignore +0 -0
  90. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/.pre-commit-config.yaml +0 -0
  91. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/CHANGELOG.md +0 -0
  92. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/CNAME +0 -0
  93. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/CONTRIBUTING.md +0 -0
  94. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/HISTORY.md +0 -0
  95. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/LICENSE.txt +0 -0
  96. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/MANIFEST.in +0 -0
  97. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/README.md +0 -0
  98. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/Dockerfile +0 -0
  99. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/README.md +0 -0
  100. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/__init__.py +0 -0
  101. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/benchmark.py +0 -0
  102. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/benchmark_classic.py +0 -0
  103. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/clone-exercism.sh +0 -0
  104. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/cpp-test.sh +0 -0
  105. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/docker.sh +0 -0
  106. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/docker_build.sh +0 -0
  107. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/install-docker-ubuntu.sh +0 -0
  108. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/npm-test.sh +0 -0
  109. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/over_time.py +0 -0
  110. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/plot.sh +0 -0
  111. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/plots.py +0 -0
  112. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/problem_stats.py +0 -0
  113. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/prompts.py +0 -0
  114. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/refactor_tools.py +0 -0
  115. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/rsync.sh +0 -0
  116. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/rungrid.py +0 -0
  117. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/swe-bench-lite.txt +0 -0
  118. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/swe-bench.txt +0 -0
  119. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/swe_bench.py +0 -0
  120. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/test_benchmark.py +0 -0
  121. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/variations.1.sh +0 -0
  122. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/variations.2.sh +0 -0
  123. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/variations.3.sh +0 -0
  124. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/benchmark/variations.4.sh +0 -0
  125. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/__init__.py +0 -0
  126. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/__main__.py +0 -0
  127. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/args.py +0 -0
  128. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/args_formatter.py +0 -0
  129. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/change_tracker.py +0 -0
  130. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/ask_coder.py +0 -0
  131. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/chat_chunks.py +0 -0
  132. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/context_coder.py +0 -0
  133. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/editblock_coder.py +0 -0
  134. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/editblock_fenced_coder.py +0 -0
  135. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/editblock_func_coder.py +0 -0
  136. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  137. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/editor_editblock_coder.py +0 -0
  138. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/editor_whole_coder.py +0 -0
  139. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/hashline_coder.py +0 -0
  140. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/help_coder.py +0 -0
  141. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/patch_coder.py +0 -0
  142. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/search_replace.py +0 -0
  143. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/shell.py +0 -0
  144. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/single_wholefile_func_coder.py +0 -0
  145. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/sub_agent_coder.py +0 -0
  146. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/udiff_coder.py +0 -0
  147. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/udiff_simple.py +0 -0
  148. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/wholefile_coder.py +0 -0
  149. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/coders/wholefile_func_coder.py +0 -0
  150. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/add.py +0 -0
  151. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/agent.py +0 -0
  152. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/architect.py +0 -0
  153. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/ask.py +0 -0
  154. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/chat_mode.py +0 -0
  155. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/clear.py +0 -0
  156. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/code.py +0 -0
  157. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/command_prefix.py +0 -0
  158. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/commit.py +0 -0
  159. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/compact.py +0 -0
  160. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/context.py +0 -0
  161. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/context_blocks.py +0 -0
  162. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/context_management.py +0 -0
  163. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/copy.py +0 -0
  164. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/copy_context.py +0 -0
  165. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/core.py +0 -0
  166. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/diff.py +0 -0
  167. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/drop.py +0 -0
  168. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/editor.py +0 -0
  169. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/exclude_skill.py +0 -0
  170. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/exit.py +0 -0
  171. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/git.py +0 -0
  172. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/hashline.py +0 -0
  173. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/help.py +0 -0
  174. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/history_search.py +0 -0
  175. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/hooks.py +0 -0
  176. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/hot_reload.py +0 -0
  177. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/include_skill.py +0 -0
  178. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/lint.py +0 -0
  179. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/list_sessions.py +0 -0
  180. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/list_skills.py +0 -0
  181. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/load.py +0 -0
  182. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/load_hook.py +0 -0
  183. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/load_mcp.py +0 -0
  184. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/load_session.py +0 -0
  185. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/load_skill.py +0 -0
  186. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/ls.py +0 -0
  187. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/map.py +0 -0
  188. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/map_refresh.py +0 -0
  189. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/merge.py +0 -0
  190. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/models.py +0 -0
  191. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/multiline_mode.py +0 -0
  192. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/paste.py +0 -0
  193. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/quit.py +0 -0
  194. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/read_only.py +0 -0
  195. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/read_only_stub.py +0 -0
  196. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/reap_agent.py +0 -0
  197. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/reasoning_effort.py +0 -0
  198. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/remove_hook.py +0 -0
  199. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/remove_skill.py +0 -0
  200. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/report.py +0 -0
  201. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/reset.py +0 -0
  202. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/rules.py +0 -0
  203. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/run.py +0 -0
  204. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/save.py +0 -0
  205. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/save_session.py +0 -0
  206. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/settings.py +0 -0
  207. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/spawn_agent.py +0 -0
  208. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/switch_agent.py +0 -0
  209. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/terminal_data/linux.keytab +0 -0
  210. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/terminal_setup.py +0 -0
  211. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/test.py +0 -0
  212. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/think_tokens.py +0 -0
  213. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/tokens.py +0 -0
  214. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/undo.py +0 -0
  215. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/utils/__init__.py +0 -0
  216. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/utils/base_command.py +0 -0
  217. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/utils/helpers.py +0 -0
  218. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/utils/registry.py +0 -0
  219. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/utils/save_load_manager.py +0 -0
  220. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/voice.py +0 -0
  221. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/web.py +0 -0
  222. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/commands/workspace.py +0 -0
  223. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/deprecated_args.py +0 -0
  224. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/diffs.py +0 -0
  225. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/dump.py +0 -0
  226. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/editor.py +0 -0
  227. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/exceptions.py +0 -0
  228. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/format_settings.py +0 -0
  229. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/help.py +0 -0
  230. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/help_pats.py +0 -0
  231. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/__init__.py +0 -0
  232. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/agents/__init__.py +0 -0
  233. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/agents/config.py +0 -0
  234. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/agents/service.py +0 -0
  235. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/background_commands.py +0 -0
  236. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/command_parser.py +0 -0
  237. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/conversation/__init__.py +0 -0
  238. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/conversation/base_message.py +0 -0
  239. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/conversation/files.py +0 -0
  240. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/conversation/manager.py +0 -0
  241. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/conversation/service.py +0 -0
  242. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/conversation/tags.py +0 -0
  243. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/conversation/utils.py +0 -0
  244. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/copypaste.py +0 -0
  245. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/coroutines.py +0 -0
  246. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/crypto.py +0 -0
  247. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/file_searcher.py +0 -0
  248. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/file_system/__init__.py +0 -0
  249. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/file_system/builders.py +0 -0
  250. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/file_system/ignore.py +0 -0
  251. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/file_system/ngram_index.py +0 -0
  252. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/file_system/trie_index.py +0 -0
  253. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/grep_ast/__init__.py +0 -0
  254. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/grep_ast/dump.py +0 -0
  255. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/grep_ast/grep_ast.py +0 -0
  256. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/grep_ast/main.py +0 -0
  257. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/grep_ast/parsers.py +0 -0
  258. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/grep_ast/tsl.py +0 -0
  259. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/hashpos/__init__.py +0 -0
  260. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/hashpos/hashpos.v1.bak +0 -0
  261. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/io_proxy.py +0 -0
  262. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/leak_detect.py +0 -0
  263. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/model_providers.py +0 -0
  264. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/monorepo/__init__.py +0 -0
  265. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/monorepo/config.py +0 -0
  266. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/monorepo/local_workspace.py +0 -0
  267. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/monorepo/project.py +0 -0
  268. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/monorepo/workspace.py +0 -0
  269. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/monorepo/worktree.py +0 -0
  270. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/nested.py +0 -0
  271. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/observations/__init__.py +0 -0
  272. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/observations/service.py +0 -0
  273. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/plugin_manager.py +0 -0
  274. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/profiler.py +0 -0
  275. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/requests.py +0 -0
  276. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/similarity.py +0 -0
  277. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/skills.py +0 -0
  278. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/helpers/threading.py +0 -0
  279. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/history.py +0 -0
  280. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/hooks/__init__.py +0 -0
  281. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/hooks/base.py +0 -0
  282. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/hooks/integration.py +0 -0
  283. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/hooks/manager.py +0 -0
  284. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/hooks/registry.py +0 -0
  285. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/hooks/service.py +0 -0
  286. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/hooks/types.py +0 -0
  287. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/interruptible_input.py +0 -0
  288. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/io.py +0 -0
  289. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/mcp/__init__.py +0 -0
  290. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/mcp/oauth.py +0 -0
  291. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/mcp/server.py +0 -0
  292. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/mcp/utils.py +0 -0
  293. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/mdstream.py +0 -0
  294. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/onboarding.py +0 -0
  295. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/__init__.py +0 -0
  296. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/architect.yml +0 -0
  297. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/ask.yml +0 -0
  298. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/base.yml +0 -0
  299. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/context.yml +0 -0
  300. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/copypaste.yml +0 -0
  301. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/editblock.yml +0 -0
  302. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/editblock_fenced.yml +0 -0
  303. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/editblock_func.yml +0 -0
  304. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/editor_diff_fenced.yml +0 -0
  305. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/editor_editblock.yml +0 -0
  306. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/editor_whole.yml +0 -0
  307. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/hashline.yml +0 -0
  308. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/help.yml +0 -0
  309. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/patch.yml +0 -0
  310. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/single_wholefile_func.yml +0 -0
  311. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/udiff.yml +0 -0
  312. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/udiff_simple.yml +0 -0
  313. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/utils/__init__.py +0 -0
  314. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/utils/registry.py +0 -0
  315. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/utils/system.py +0 -0
  316. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/wholefile.yml +0 -0
  317. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/prompts/wholefile_func.yml +0 -0
  318. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  319. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  320. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
  321. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  322. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  323. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  324. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  325. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  326. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  327. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  328. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  329. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  330. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  331. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  332. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  333. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  334. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  335. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  336. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  337. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  338. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  339. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  340. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  341. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  342. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  343. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  344. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  345. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  346. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  347. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  348. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  349. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  350. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/README.md +0 -0
  351. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
  352. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  353. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  354. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  355. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  356. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  357. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  358. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  359. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  360. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  361. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  362. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  363. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  364. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  365. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  366. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  367. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  368. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  369. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  370. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  371. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  372. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  373. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  374. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  375. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  376. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  377. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  378. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/reasoning_tags.py +0 -0
  379. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/repo.py +0 -0
  380. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/report.py +0 -0
  381. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/resources/__init__.py +0 -0
  382. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/resources/model-settings.yml +0 -0
  383. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/resources/providers.json +0 -0
  384. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/run_cmd.py +0 -0
  385. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/sendchat.py +0 -0
  386. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/sessions.py +0 -0
  387. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/special.py +0 -0
  388. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/_yield.py +0 -0
  389. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/delegate.py +0 -0
  390. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/explore_code.py +0 -0
  391. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/git_branch.py +0 -0
  392. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/git_diff.py +0 -0
  393. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/git_log.py +0 -0
  394. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/git_remote.py +0 -0
  395. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/git_show.py +0 -0
  396. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/git_status.py +0 -0
  397. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/grep.py +0 -0
  398. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/ls.py +0 -0
  399. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/thinking.py +0 -0
  400. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/undo_change.py +0 -0
  401. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/update_todo_list.py +0 -0
  402. {cecli_dev-0.100.8rc2/scripts → cecli_dev-0.100.9/cecli/tools/utils}/__init__.py +0 -0
  403. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/utils/base_tool.py +0 -0
  404. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/utils/output.py +0 -0
  405. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/validations/__init__.py +0 -0
  406. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tools/validations/validations.py +0 -0
  407. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tui/__init__.py +0 -0
  408. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tui/io.py +0 -0
  409. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tui/styles.tcss +0 -0
  410. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tui/widgets/__init__.py +0 -0
  411. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tui/widgets/completion_bar.py +0 -0
  412. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tui/widgets/file_list.py +0 -0
  413. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tui/widgets/footer.py +0 -0
  414. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tui/widgets/input_area.py +0 -0
  415. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tui/widgets/input_container.py +0 -0
  416. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tui/widgets/key_hints.py +0 -0
  417. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tui/widgets/output.py +0 -0
  418. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tui/widgets/status_bar.py +0 -0
  419. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tui/widgets/subagent_pills.py +0 -0
  420. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/tui/worker.py +0 -0
  421. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/urls.py +0 -0
  422. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/utils.py +0 -0
  423. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/versioncheck.py +0 -0
  424. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/voice.py +0 -0
  425. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/waiting.py +0 -0
  426. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/watch_prompts.py +0 -0
  427. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/Gemfile +0 -0
  428. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/_includes/blame.md +0 -0
  429. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/_includes/get-started.md +0 -0
  430. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/_includes/help-tip.md +0 -0
  431. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/_includes/help.md +0 -0
  432. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/_includes/install.md +0 -0
  433. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/_includes/keys.md +0 -0
  434. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/_includes/model-warnings.md +0 -0
  435. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/_includes/multi-line.md +0 -0
  436. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/_includes/python-m-aider.md +0 -0
  437. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/_includes/recording.css +0 -0
  438. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/_includes/recording.md +0 -0
  439. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/_sass/_features.scss +0 -0
  440. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/_sass/_footer.scss +0 -0
  441. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/_sass/_hero.scss +0 -0
  442. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/_sass/_info.scss +0 -0
  443. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/_sass/_layout.scss +0 -0
  444. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/_sass/_reset.scss +0 -0
  445. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/_sass/_testimonials.scss +0 -0
  446. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/_sass/_typography.scss +0 -0
  447. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/_sass/_variables.scss +0 -0
  448. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/_sass/custom/custom.scss +0 -0
  449. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/config/adv-model-settings.md +0 -0
  450. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/config/aider_conf.md +0 -0
  451. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/config/api-keys.md +0 -0
  452. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/config/custom-commands.md +0 -0
  453. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/config/dotenv.md +0 -0
  454. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/config/editor.md +0 -0
  455. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/config/hooks.md +0 -0
  456. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/config/mcp.md +0 -0
  457. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/config/model-aliases.md +0 -0
  458. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/config/model-configuration.md +0 -0
  459. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/config/options.md +0 -0
  460. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/config/reasoning.md +0 -0
  461. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/config/security.md +0 -0
  462. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/config/subagents.md +0 -0
  463. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/config/tui.md +0 -0
  464. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/config/workspaces.md +0 -0
  465. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/git.md +0 -0
  466. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/index.md +0 -0
  467. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/install/docker.md +0 -0
  468. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/languages.md +0 -0
  469. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  470. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/legal/privacy.md +0 -0
  471. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/llms/anthropic.md +0 -0
  472. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/llms/azure.md +0 -0
  473. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/llms/bedrock.md +0 -0
  474. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/llms/cohere.md +0 -0
  475. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/llms/deepseek.md +0 -0
  476. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/llms/gemini.md +0 -0
  477. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/llms/github.md +0 -0
  478. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/llms/groq.md +0 -0
  479. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/llms/lm-studio.md +0 -0
  480. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/llms/ollama.md +0 -0
  481. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/llms/openai-compat.md +0 -0
  482. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/llms/openai.md +0 -0
  483. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/llms/openrouter.md +0 -0
  484. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/llms/other.md +0 -0
  485. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/llms/vertex.md +0 -0
  486. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/llms/warnings.md +0 -0
  487. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/llms/xai.md +0 -0
  488. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/more/analytics.md +0 -0
  489. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/more/edit-formats.md +0 -0
  490. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/more/infinite-output.md +0 -0
  491. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/more-info.md +0 -0
  492. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/repomap.md +0 -0
  493. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/scripting.md +0 -0
  494. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
  495. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  496. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/troubleshooting/imports.md +0 -0
  497. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  498. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/troubleshooting/support.md +0 -0
  499. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  500. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  501. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/troubleshooting.md +0 -0
  502. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/usage/commands.md +0 -0
  503. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/usage/conventions.md +0 -0
  504. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/usage/copypaste.md +0 -0
  505. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/usage/images-urls.md +0 -0
  506. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/usage/lint-test.md +0 -0
  507. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/usage/modes.md +0 -0
  508. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/usage/not-code.md +0 -0
  509. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/usage/notifications.md +0 -0
  510. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/usage/sessions.md +0 -0
  511. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/usage/voice.md +0 -0
  512. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/docs/usage/watch.md +0 -0
  513. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli/website/share/index.md +0 -0
  514. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli_dev.egg-info/dependency_links.txt +0 -0
  515. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli_dev.egg-info/entry_points.txt +0 -0
  516. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli_dev.egg-info/requires.txt +0 -0
  517. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/cecli_dev.egg-info/top_level.txt +0 -0
  518. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/docker/Dockerfile +0 -0
  519. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  520. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/pyproject.toml +0 -0
  521. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/requirements/common-constraints.txt +0 -0
  522. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/requirements/requirements-dev.in +0 -0
  523. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/requirements/requirements-dev.txt +0 -0
  524. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/requirements/requirements-help.in +0 -0
  525. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/requirements/requirements-help.txt +0 -0
  526. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/requirements/requirements-playwright.in +0 -0
  527. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/requirements/requirements-playwright.txt +0 -0
  528. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/requirements/requirements.in +0 -0
  529. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/requirements/tree-sitter.in +0 -0
  530. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/requirements.txt +0 -0
  531. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/30k-image.py +0 -0
  532. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/Dockerfile.jekyll +0 -0
  533. {cecli_dev-0.100.8rc2/tests → cecli_dev-0.100.9/scripts}/__init__.py +0 -0
  534. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/blame.py +0 -0
  535. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/clean_metadata.py +0 -0
  536. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/cost_analyzer.py +0 -0
  537. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/cost_calculator.py +0 -0
  538. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/dl_icons.py +0 -0
  539. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/filter-chat-mode.js +0 -0
  540. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/generate_providers.py +0 -0
  541. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/get_contributor_list.js +0 -0
  542. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/get_hashline.py +0 -0
  543. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/history_prompts.py +0 -0
  544. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/homepage.py +0 -0
  545. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/issues.py +0 -0
  546. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/jekyll_build.sh +0 -0
  547. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/jekyll_run.sh +0 -0
  548. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/logo_svg.py +0 -0
  549. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/pip-compile.sh +0 -0
  550. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/recording_audio.py +0 -0
  551. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/redact-cast.py +0 -0
  552. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/rename_to_cecli.py +0 -0
  553. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/tmux_record.sh +0 -0
  554. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/tsl_pack_langs.py +0 -0
  555. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/update-blame.sh +0 -0
  556. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/update-docs.sh +0 -0
  557. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/update-history.py +0 -0
  558. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/versionbump.py +0 -0
  559. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/scripts/yank-old-versions.py +0 -0
  560. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/setup.cfg +0 -0
  561. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/shim.pyproject.toml +0 -0
  562. {cecli_dev-0.100.8rc2/tests/basic → cecli_dev-0.100.9/tests}/__init__.py +0 -0
  563. {cecli_dev-0.100.8rc2/tests/hooks → cecli_dev-0.100.9/tests/basic}/__init__.py +0 -0
  564. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/conftest.py +0 -0
  565. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_aws_credentials.py +0 -0
  566. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_background_commands.py +0 -0
  567. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_commands.py +0 -0
  568. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_custom_commands.py +0 -0
  569. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_deprecated.py +0 -0
  570. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_editblock.py +0 -0
  571. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_editor.py +0 -0
  572. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_exceptions.py +0 -0
  573. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_find_or_blocks.py +0 -0
  574. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_hashline_closure.py +0 -0
  575. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_history.py +0 -0
  576. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_io.py +0 -0
  577. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_linter.py +0 -0
  578. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_model_provider_manager.py +0 -0
  579. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_models.py +0 -0
  580. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_onboarding.py +0 -0
  581. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_plugin_manager.py +0 -0
  582. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_prompts.py +0 -0
  583. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_reasoning.py +0 -0
  584. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_repo.py +0 -0
  585. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_repomap.py +0 -0
  586. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_run_cmd.py +0 -0
  587. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_sanity_check_repo.py +0 -0
  588. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_scripting.py +0 -0
  589. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_sendchat.py +0 -0
  590. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_session_args.py +0 -0
  591. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_session_crypto.py +0 -0
  592. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_sessions.py +0 -0
  593. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_sessions_manager.py +0 -0
  594. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_skills.py +0 -0
  595. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_special.py +0 -0
  596. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_ssl_verification.py +0 -0
  597. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_udiff.py +0 -0
  598. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_urls.py +0 -0
  599. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_voice.py +0 -0
  600. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_watch.py +0 -0
  601. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/basic/test_wholefile.py +0 -0
  602. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/coders/test_coder_switching.py +0 -0
  603. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/coders/test_copypaste_coder.py +0 -0
  604. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/commands/test_compaction.py +0 -0
  605. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/commands/test_switch_agent.py +0 -0
  606. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/conftest.py +0 -0
  607. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/conversations/test_conversation_integration.py +0 -0
  608. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/conversations/test_conversation_system.py +0 -0
  609. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  610. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/chat-history.md +0 -0
  611. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/arduino/test.ino +0 -0
  612. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/bash/test.sh +0 -0
  613. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/c/test.c +0 -0
  614. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/chatito/test.chatito +0 -0
  615. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/clojure/test.clj +0 -0
  616. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  617. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/cpp/test.cpp +0 -0
  618. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/csharp/test.cs +0 -0
  619. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/d/test.d +0 -0
  620. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/dart/test.dart +0 -0
  621. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/elisp/test.el +0 -0
  622. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/elixir/test.ex +0 -0
  623. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/elm/test.elm +0 -0
  624. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/gleam/test.gleam +0 -0
  625. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/go/test.go +0 -0
  626. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/haskell/test.hs +0 -0
  627. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/hcl/test.tf +0 -0
  628. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/java/test.java +0 -0
  629. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/javascript/test.js +0 -0
  630. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/kotlin/test.kt +0 -0
  631. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/lua/test.lua +0 -0
  632. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/matlab/test.m +0 -0
  633. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/ocaml/test.ml +0 -0
  634. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  635. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/php/test.php +0 -0
  636. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/pony/test.pony +0 -0
  637. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/properties/test.properties +0 -0
  638. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/python/test.py +0 -0
  639. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/ql/test.ql +0 -0
  640. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/r/test.r +0 -0
  641. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/racket/test.rkt +0 -0
  642. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/ruby/test.rb +0 -0
  643. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/rust/test.rs +0 -0
  644. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/scala/test.scala +0 -0
  645. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/solidity/test.sol +0 -0
  646. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/swift/test.swift +0 -0
  647. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/tsx/test.tsx +0 -0
  648. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/typescript/test.ts +0 -0
  649. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/udev/test.rules +0 -0
  650. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/languages/zig/test.zig +0 -0
  651. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/sample-code-base/sample.js +0 -0
  652. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/sample-code-base/sample.py +0 -0
  653. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  654. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/watch.js +0 -0
  655. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/watch.lisp +0 -0
  656. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/watch.py +0 -0
  657. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/fixtures/watch_question.js +0 -0
  658. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/help/test_help.py +0 -0
  659. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/helpers/monorepo/LOCAL_WORKSPACE.md +0 -0
  660. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/helpers/monorepo/test_config.py +0 -0
  661. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/helpers/monorepo/test_config_active.py +0 -0
  662. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
  663. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/helpers/monorepo/test_local_workspace.py +0 -0
  664. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
  665. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/helpers/monorepo/test_workspace.py +0 -0
  666. {cecli_dev-0.100.8rc2/tests/mcp → cecli_dev-0.100.9/tests/hooks}/__init__.py +0 -0
  667. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/hooks/test_base.py +0 -0
  668. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/hooks/test_manager.py +0 -0
  669. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/hooks/test_registry.py +0 -0
  670. {cecli_dev-0.100.8rc2/tests/subagents → cecli_dev-0.100.9/tests/mcp}/__init__.py +0 -0
  671. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/mcp/test_manager.py +0 -0
  672. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/scrape/test_playwright_disable.py +0 -0
  673. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/scrape/test_scrape.py +0 -0
  674. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/subagents/conftest.py +0 -0
  675. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/subagents/test_commands.py +0 -0
  676. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/subagents/test_config.py +0 -0
  677. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/subagents/test_delegate.py +0 -0
  678. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/subagents/test_finished.py +0 -0
  679. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/subagents/test_io_proxy.py +0 -0
  680. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/subagents/test_service.py +0 -0
  681. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/subagents/test_sub_agent_coder.py +0 -0
  682. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/tools/test_extractions.py +0 -0
  683. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/tools/test_get_lines.py +0 -0
  684. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/tools/test_git_branch.py +0 -0
  685. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/tools/test_git_diff.py +0 -0
  686. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/tools/test_grep.py +0 -0
  687. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/tools/test_insert_block.py +0 -0
  688. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/tools/test_read_range_execute.py +0 -0
  689. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/tools/test_tool_arguments.py +0 -0
  690. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/tools/validations.py +0 -0
  691. {cecli_dev-0.100.8rc2 → cecli_dev-0.100.9}/tests/tui/test_app.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cecli-dev
3
- Version: 0.100.8rc2
3
+ Version: 0.100.9
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 = '0.100.8rc2'
22
- __version_tuple__ = version_tuple = (0, 100, 8, 'rc2')
21
+ __version__ = version = '0.100.9'
22
+ __version_tuple__ = version_tuple = (0, 100, 9)
23
23
 
24
- __commit_id__ = commit_id = 'gac62b709a'
24
+ __commit_id__ = commit_id = 'g4a4f1b61b'
@@ -0,0 +1,57 @@
1
+ """Coder module with lazy imports to reduce startup memory."""
2
+
3
+ __all__ = [
4
+ "HelpCoder",
5
+ "AskCoder",
6
+ "Coder",
7
+ "EditBlockCoder",
8
+ "EditBlockFencedCoder",
9
+ "WholeFileCoder",
10
+ "PatchCoder",
11
+ "UnifiedDiffCoder",
12
+ "UnifiedDiffSimpleCoder",
13
+ "ArchitectCoder",
14
+ "EditorEditBlockCoder",
15
+ "EditorWholeFileCoder",
16
+ "EditorDiffFencedCoder",
17
+ "ContextCoder",
18
+ "AgentCoder",
19
+ "CopyPasteCoder",
20
+ "HashLineCoder",
21
+ "SubAgentCoder",
22
+ ]
23
+
24
+ # Module name mapping (snake_case to class name)
25
+ _MODULE_MAP = {
26
+ "HelpCoder": ".help_coder",
27
+ "AskCoder": ".ask_coder",
28
+ "Coder": ".base_coder",
29
+ "EditBlockCoder": ".editblock_coder",
30
+ "EditBlockFencedCoder": ".editblock_fenced_coder",
31
+ "WholeFileCoder": ".wholefile_coder",
32
+ "PatchCoder": ".patch_coder",
33
+ "UnifiedDiffCoder": ".udiff_coder",
34
+ "UnifiedDiffSimpleCoder": ".udiff_simple",
35
+ "ArchitectCoder": ".architect_coder",
36
+ "EditorEditBlockCoder": ".editor_editblock_coder",
37
+ "EditorWholeFileCoder": ".editor_whole_coder",
38
+ "EditorDiffFencedCoder": ".editor_diff_fenced_coder",
39
+ "ContextCoder": ".context_coder",
40
+ "AgentCoder": ".agent_coder",
41
+ "CopyPasteCoder": ".copypaste_coder",
42
+ "HashLineCoder": ".hashline_coder",
43
+ "SubAgentCoder": ".sub_agent_coder",
44
+ }
45
+
46
+
47
+ def __getattr__(name):
48
+ if name in _MODULE_MAP:
49
+ import importlib
50
+
51
+ mod = importlib.import_module(_MODULE_MAP[name], __package__)
52
+ return getattr(mod, name)
53
+ raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
54
+
55
+
56
+ def __dir__():
57
+ return __all__
@@ -194,6 +194,7 @@ class AgentCoder(Coder):
194
194
  "todo_list",
195
195
  "sub_agents",
196
196
  "skills",
197
+ "servers",
197
198
  },
198
199
  )
199
200
  )
@@ -357,6 +358,7 @@ class AgentCoder(Coder):
357
358
  "git_status",
358
359
  "symbol_outline",
359
360
  "skills",
361
+ "servers",
360
362
  "sub_agents",
361
363
  "loaded_skills",
362
364
  ]
@@ -391,6 +393,8 @@ class AgentCoder(Coder):
391
393
  content = self.get_todo_list()
392
394
  elif block_name == "skills":
393
395
  content = self.get_skills_context()
396
+ elif block_name == "servers":
397
+ content = self.get_servers_context()
394
398
  elif block_name == "loaded_skills":
395
399
  content = self.get_skills_content()
396
400
  elif block_name == "sub_agents" and (
@@ -624,8 +628,8 @@ class AgentCoder(Coder):
624
628
  result += f" ({percentage:.1f}% of limit)"
625
629
  if percentage > 80:
626
630
  result += "\n\n⚠ **Context is getting full!**\n"
627
- result += "- Remove non-essential files via the `ContextManager` tool.\n"
628
- result += "- Keep only essential files in context for best performance"
631
+ result += "- Remove non-essential files, skills and tool servers via the `ResourceManager` tool.\n"
632
+ result += "- Keep only essential files, skills, and MCP servers in context for best performance"
629
633
  result += "\n</context>"
630
634
  if not hasattr(self, "context_blocks_cache"):
631
635
  self.context_blocks_cache = {}
@@ -659,7 +663,9 @@ class AgentCoder(Coder):
659
663
  result += f"- Git repository: {rel_repo_dir} with {num_files:,} files\n"
660
664
  except Exception:
661
665
  result += "- Git repository: active but details unavailable\n"
662
- else:
666
+ if self.mcp_manager and self.mcp_manager.connected_servers:
667
+ num_mcp_servers = len(self.mcp_manager.connected_servers)
668
+ result += f"- Connected MCP servers: {num_mcp_servers}\n"
663
669
  result += "- Git repository: none\n"
664
670
  result += "</context>"
665
671
  return result
@@ -806,9 +812,7 @@ class AgentCoder(Coder):
806
812
  if self.auto_lint and used_write_tool:
807
813
  edited = list(self.files_edited_by_tools)
808
814
  lint_coro = self.lint_edited(edited, show_output=False)
809
- lint_errors, interrupted = await self.coroutines.interruptible(
810
- lint_coro, self.interrupt_event
811
- )
815
+ lint_errors, interrupted = await interruptible(lint_coro, self.interrupt_event)
812
816
  if interrupted:
813
817
  raise KeyboardInterrupt("Interrupted during linting")
814
818
 
@@ -928,9 +932,7 @@ class AgentCoder(Coder):
928
932
  )
929
933
  self.io.tool_output(waiting_msg)
930
934
  sleep_coro = asyncio.sleep(command_timeout / 2)
931
- _res, interrupted = await self.coroutines.interruptible(
932
- sleep_coro, self.interrupt_event
933
- )
935
+ _res, interrupted = await interruptible(sleep_coro, self.interrupt_event)
934
936
  if interrupted:
935
937
  raise KeyboardInterrupt("Interrupted while waiting for background commands")
936
938
  return True
@@ -1329,7 +1331,7 @@ class AgentCoder(Coder):
1329
1331
 
1330
1332
  Override parent's method to disable implicit file mention handling in agent mode.
1331
1333
  Files should only be added via explicit tool commands
1332
- (`ContextManager`).
1334
+ (`ResourceManager`).
1333
1335
  """
1334
1336
  pass
1335
1337
 
@@ -1483,6 +1485,81 @@ Todo list does not exist. Please update it with the `UpdateTodoList` tool.</cont
1483
1485
  self.io.tool_error(f"Error generating skills content context: {str(e)}")
1484
1486
  return None
1485
1487
 
1488
+ def get_servers_context(self):
1489
+ """
1490
+ Generate a context block for available MCP servers.
1491
+
1492
+ Categorizes servers as:
1493
+ - Active: Connected and passing includelist/excludelist filters
1494
+ - Inactive: Connected but filtered out by includelist/excludelist
1495
+ - Available (Disconnected): Managed but not currently connected
1496
+
1497
+ Returns:
1498
+ Formatted context block string or None if no servers available
1499
+ """
1500
+ if not self.use_enhanced_context:
1501
+ return None
1502
+ try:
1503
+ if not self.mcp_manager:
1504
+ return None
1505
+
1506
+ all_servers = self.mcp_manager.servers
1507
+ connected_servers = self.mcp_manager.connected_servers
1508
+ connected_server_names = {s.name for s in connected_servers}
1509
+
1510
+ if not all_servers:
1511
+ return None
1512
+
1513
+ # Apply registered_servers filtering to determine active vs inactive
1514
+ incl = self.registered_servers.get("included", set())
1515
+ excl = self.registered_servers.get("excluded", set())
1516
+
1517
+ active_servers = []
1518
+ inactive_servers = []
1519
+ for server in connected_servers:
1520
+ name = server.name
1521
+ if incl and name not in incl:
1522
+ inactive_servers.append(name)
1523
+ elif name in excl:
1524
+ inactive_servers.append(name)
1525
+ else:
1526
+ active_servers.append(name)
1527
+
1528
+ # Servers managed but not currently connected
1529
+ disconnected_servers = [
1530
+ server.name for server in all_servers if server.name not in connected_server_names
1531
+ ]
1532
+
1533
+ result = '<context name="servers" from="agent">\n'
1534
+ result += "## Connected MCP Servers\n\n"
1535
+
1536
+ if active_servers:
1537
+ result += f"Active ({len(active_servers)}):\n"
1538
+ for name in sorted(active_servers):
1539
+ result += f"- {name}\n"
1540
+ result += "\n"
1541
+
1542
+ if inactive_servers:
1543
+ result += f"Inactive (Filtered) ({len(inactive_servers)}):\n"
1544
+ for name in sorted(inactive_servers):
1545
+ result += f"- {name}\n"
1546
+ result += "\n"
1547
+
1548
+ if disconnected_servers:
1549
+ result += f"Available (Disconnected) ({len(disconnected_servers)}):\n"
1550
+ for name in sorted(disconnected_servers):
1551
+ result += f"- {name}\n"
1552
+ result += "\n"
1553
+
1554
+ if not active_servers and not inactive_servers and not disconnected_servers:
1555
+ result += "No MCP servers currently available.\n\n"
1556
+
1557
+ result += "</context>"
1558
+ return result
1559
+ except Exception as e:
1560
+ self.io.tool_error(f"Error generating servers context: {str(e)}")
1561
+ return None
1562
+
1486
1563
  def get_sub_agents_context(self):
1487
1564
  """
1488
1565
  Generate a context block for registered sub-agents.
@@ -45,7 +45,6 @@ class ArchitectCoder(AskCoder):
45
45
  kwargs["args"] = self.args
46
46
  kwargs["suggest_shell_commands"] = False
47
47
  kwargs["map_tokens"] = 0
48
- kwargs["total_cost"] = self.total_cost
49
48
  kwargs["cache_prompts"] = False
50
49
  kwargs["num_cache_warming_pings"] = 0
51
50
  kwargs["summarize_from_coder"] = False
@@ -31,12 +31,6 @@ from typing import List
31
31
  from urllib.parse import urlparse
32
32
  from uuid import uuid4 as generate_unique_id
33
33
 
34
- import httpx
35
- from litellm import experimental_mcp_client
36
- from litellm.types.utils import ModelResponse
37
- from prompt_toolkit.patch_stdout import patch_stdout
38
- from rich.console import Console
39
-
40
34
  import cecli.prompts.utils.system as prompts
41
35
  from cecli import __version__, models, urls, utils
42
36
  from cecli.commands import Commands, SwitchCoderSignal
@@ -111,6 +105,28 @@ all_fences = [
111
105
  wrap_fence("sourcecode"),
112
106
  ]
113
107
 
108
+ # Map of edit_format values to coder class names.
109
+ # Used by Coder.create() to find the right coder class by edit_format
110
+ # without importing all coder modules.
111
+ EDIT_FORMAT_MAP = {
112
+ "help": "HelpCoder",
113
+ "ask": "AskCoder",
114
+ "diff": "EditBlockCoder",
115
+ "diff-fenced": "EditBlockFencedCoder",
116
+ "whole": "WholeFileCoder",
117
+ "patch": "PatchCoder",
118
+ "udiff": "UnifiedDiffCoder",
119
+ "udiff-simple": "UnifiedDiffSimpleCoder",
120
+ "architect": "ArchitectCoder",
121
+ "editor-diff": "EditorEditBlockCoder",
122
+ "editor-whole": "EditorWholeFileCoder",
123
+ "editor-diff-fenced": "EditorDiffFencedCoder",
124
+ "context": "ContextCoder",
125
+ "agent": "AgentCoder",
126
+ "hashline": "HashLineCoder",
127
+ "subagent": "SubAgentCoder",
128
+ }
129
+
114
130
 
115
131
  class UsageMeta(type):
116
132
  """Metaclass that provides shared accumulator properties across all Coder subclasses.
@@ -335,9 +351,10 @@ class Coder(metaclass=UsageMeta):
335
351
  res = coders.CopyPasteCoder(main_model, io, args=args, **kwargs)
336
352
 
337
353
  if not res:
338
- for coder in coders.__all__:
339
- if hasattr(coder, "edit_format") and coder.edit_format == edit_format:
340
- res = coder(main_model, io, args=args, **kwargs)
354
+ coder_name = EDIT_FORMAT_MAP.get(edit_format)
355
+ if coder_name:
356
+ coder_cls = getattr(coders, coder_name)
357
+ res = coder_cls(main_model, io, args=args, **kwargs)
341
358
 
342
359
  if res is not None:
343
360
  if from_coder:
@@ -359,11 +376,7 @@ class Coder(metaclass=UsageMeta):
359
376
  res.original_kwargs = dict(kwargs)
360
377
  return res
361
378
 
362
- valid_formats = [
363
- str(c.edit_format)
364
- for c in coders.__all__
365
- if hasattr(c, "edit_format") and c.edit_format is not None
366
- ]
379
+ valid_formats = list(EDIT_FORMAT_MAP.keys())
367
380
  raise UnknownEditFormat(edit_format, valid_formats)
368
381
 
369
382
  async def clone(self, **kwargs):
@@ -1470,6 +1483,8 @@ class Coder(metaclass=UsageMeta):
1470
1483
  return await self._run_linear(with_message, preproc)
1471
1484
 
1472
1485
  if self.io.prompt_session:
1486
+ from prompt_toolkit.patch_stdout import patch_stdout
1487
+
1473
1488
  with patch_stdout(raw=True):
1474
1489
  return await self._run_parallel(with_message, preproc)
1475
1490
  else:
@@ -1954,7 +1969,10 @@ class Coder(metaclass=UsageMeta):
1954
1969
 
1955
1970
  def keyboard_interrupt(self):
1956
1971
  # Ensure cursor is visible on exit
1957
- Console().show_cursor(True)
1972
+ if not self.tui:
1973
+ from rich.console import Console
1974
+
1975
+ Console().show_cursor(True)
1958
1976
 
1959
1977
  self.io.tool_warning("^C KeyboardInterrupt")
1960
1978
  self.interrupt_event.set()
@@ -1973,13 +1991,25 @@ class Coder(metaclass=UsageMeta):
1973
1991
  done_messages = manager.get_messages_dict(MessageTag.DONE)
1974
1992
  cur_messages = manager.get_messages_dict(MessageTag.CUR)
1975
1993
  diff_messages = manager.get_messages_dict(MessageTag.DIFFS)
1994
+ all_messages = manager.get_messages_dict()
1976
1995
 
1977
1996
  # Exclude first cur_message since that's the user's initial input
1978
1997
  done_tokens = self.summarizer.count_tokens(done_messages)
1979
1998
  cur_tokens = self.summarizer.count_tokens(cur_messages[1:] if len(cur_messages) > 1 else [])
1980
1999
  diff_tokens = self.summarizer.count_tokens(diff_messages)
2000
+ all_tokens = self.summarizer.count_tokens(all_messages)
2001
+
1981
2002
  combined_tokens = done_tokens + cur_tokens + diff_tokens
1982
2003
 
2004
+ if force or (
2005
+ all_tokens >= self.context_compaction_max_tokens * 0.9
2006
+ and ConversationService.get_chunks(self).last_clear_count > 10
2007
+ ):
2008
+ manager.clear_tag(MessageTag.DIFFS)
2009
+ manager.clear_tag(MessageTag.FILE_CONTEXTS)
2010
+ ConversationService.get_files(self).clear_file_cache()
2011
+ ConversationService.get_chunks(self).flush_removals()
2012
+
1983
2013
  if not force and combined_tokens < self.context_compaction_max_tokens:
1984
2014
  return
1985
2015
 
@@ -2881,6 +2911,8 @@ class Coder(metaclass=UsageMeta):
2881
2911
 
2882
2912
  async def _execute_mcp_tools(self, server, tool_calls):
2883
2913
  """Execute MCP tools via LiteLLM."""
2914
+ import httpx
2915
+
2884
2916
  tool_responses = []
2885
2917
  try:
2886
2918
  # Connect to the server once
@@ -2928,6 +2960,8 @@ class Coder(metaclass=UsageMeta):
2928
2960
  continue
2929
2961
 
2930
2962
  async def do_tool_call():
2963
+ from litellm import experimental_mcp_client
2964
+
2931
2965
  return await experimental_mcp_client.call_openai_tool(
2932
2966
  session=session,
2933
2967
  openai_tool=new_tool_call,
@@ -3366,6 +3400,8 @@ class Coder(metaclass=UsageMeta):
3366
3400
  return prompts.added_files.format(fnames=", ".join(added_fnames))
3367
3401
 
3368
3402
  async def send(self, messages, model=None, functions=None, tools=None):
3403
+ from litellm.types.utils import ModelResponse
3404
+
3369
3405
  self.interrupt_event.clear()
3370
3406
  self.got_reasoning_content = False
3371
3407
  self.ended_reasoning_content = False
@@ -3452,6 +3488,8 @@ class Coder(metaclass=UsageMeta):
3452
3488
  self.io.ai_output(json.dumps(args, indent=4))
3453
3489
 
3454
3490
  async def show_send_output(self, completion):
3491
+ from litellm.types.utils import ModelResponse
3492
+
3455
3493
  if self.verbose:
3456
3494
  print(completion)
3457
3495
 
@@ -78,14 +78,13 @@ class CopyPasteCoder(Coder):
78
78
  coders = None
79
79
 
80
80
  target_coder_class = None
81
- if coders is not None:
82
- for coder_cls in getattr(coders, "__all__", []):
83
- if (
84
- hasattr(coder_cls, "edit_format")
85
- and coder_cls.edit_format == selected_edit_format
86
- ):
87
- target_coder_class = coder_cls
88
- break
81
+ if coders is not None and selected_edit_format:
82
+ # Use EDIT_FORMAT_MAP from base_coder to find the right coder class by edit_format
83
+ from cecli.coders.base_coder import EDIT_FORMAT_MAP
84
+
85
+ coder_name = EDIT_FORMAT_MAP.get(selected_edit_format)
86
+ if coder_name:
87
+ target_coder_class = getattr(coders, coder_name, None)
89
88
 
90
89
  # Mirror prompt pack + edit_format where available.
91
90
  if target_coder_class is not None:
@@ -35,6 +35,7 @@ from .hooks import HooksCommand
35
35
  from .hot_reload import HotReloadCommand
36
36
  from .include_skill import IncludeSkillCommand
37
37
  from .lint import LintCommand
38
+ from .list_mcp import ListMcpCommand
38
39
  from .list_sessions import ListSessionsCommand
39
40
  from .list_skills import ListSkillsCommand
40
41
  from .load import LoadCommand
@@ -123,6 +124,7 @@ CommandRegistry.register(SpawnAgentCommand)
123
124
  CommandRegistry.register(SwitchAgentCommand)
124
125
  CommandRegistry.register(IncludeSkillCommand)
125
126
  CommandRegistry.register(LintCommand)
127
+ CommandRegistry.register(ListMcpCommand)
126
128
  CommandRegistry.register(ListSessionsCommand)
127
129
  CommandRegistry.register(ListSkillsCommand)
128
130
  CommandRegistry.register(LoadCommand)
@@ -210,6 +212,7 @@ __all__ = [
210
212
  "LoadCommand",
211
213
  "LoadHookCommand",
212
214
  "LoadMcpCommand",
215
+ "ListMcpCommand",
213
216
  "LoadSessionCommand",
214
217
  "LoadSkillCommand",
215
218
  "LsCommand",
@@ -47,7 +47,6 @@ class AgentModelCommand(BaseCommand):
47
47
  kwargs["main_model"] = model
48
48
  kwargs["edit_format"] = coder.edit_format # Keep the same edit format
49
49
  kwargs["suggest_shell_commands"] = False
50
- kwargs["total_cost"] = coder.total_cost
51
50
  kwargs["num_cache_warming_pings"] = 0
52
51
  kwargs["summarize_from_coder"] = False
53
52
  kwargs["done_messages"] = []
@@ -46,7 +46,6 @@ class EditorModelCommand(BaseCommand):
46
46
  kwargs["main_model"] = model
47
47
  kwargs["edit_format"] = coder.edit_format # Keep the same edit format
48
48
  kwargs["suggest_shell_commands"] = False
49
- kwargs["total_cost"] = coder.total_cost
50
49
  kwargs["num_cache_warming_pings"] = 0
51
50
  kwargs["summarize_from_coder"] = False
52
51
  kwargs["done_messages"] = []
@@ -0,0 +1,71 @@
1
+ from cecli.commands.utils.base_command import BaseCommand
2
+ from cecli.commands.utils.helpers import format_command_result
3
+
4
+
5
+ class ListMcpCommand(BaseCommand):
6
+ NORM_NAME = "list-mcp"
7
+ DESCRIPTION = "List all loaded and configured MCP servers."
8
+
9
+ @classmethod
10
+ async def execute(cls, io, coder, args, **kwargs):
11
+ """Execute the list-mcp command."""
12
+ if not coder.mcp_manager:
13
+ return format_command_result(io, cls.NORM_NAME, "MCP manager is not configured.")
14
+
15
+ all_servers = coder.mcp_manager.servers
16
+ connected_servers = coder.mcp_manager.connected_servers
17
+
18
+ connected_server_names = {s.name for s in connected_servers}
19
+
20
+ # Apply per-coder registered_servers filtering to determine active status
21
+ incl = coder.registered_servers["included"]
22
+ excl = coder.registered_servers["excluded"]
23
+
24
+ active_servers = []
25
+ inactive_servers = []
26
+
27
+ for server in connected_servers:
28
+ name = server.name
29
+ # Same filtering logic used in base_coder.get_tool_list()
30
+ if incl and name not in incl:
31
+ inactive_servers.append(name)
32
+ elif name in excl:
33
+ inactive_servers.append(name)
34
+ else:
35
+ active_servers.append(name)
36
+
37
+ configured_servers = [
38
+ server for server in all_servers if server.name not in connected_server_names
39
+ ]
40
+
41
+ result = []
42
+ if active_servers:
43
+ result.append("Active MCP Servers:")
44
+ for name in sorted(active_servers):
45
+ result.append(f"- {name}")
46
+ else:
47
+ result.append("No MCP servers are active for this coder.")
48
+
49
+ if inactive_servers:
50
+ result.append("")
51
+ result.append("Inactive (Filtered) MCP Servers:")
52
+ for name in sorted(inactive_servers):
53
+ result.append(f"- {name}")
54
+
55
+ result.append("")
56
+ if configured_servers:
57
+ result.append("Configured MCP Servers:")
58
+ for server in sorted(configured_servers, key=lambda s: s.name):
59
+ result.append(f"- {server.name}")
60
+ else:
61
+ result.append("No other MCP servers are configured.")
62
+
63
+ return format_command_result(io, cls.NORM_NAME, "\n".join(result))
64
+
65
+ @classmethod
66
+ def get_help(cls) -> str:
67
+ """Get help text for the list-mcp command."""
68
+ help_text = super().get_help()
69
+ help_text += "\nUsage:\n"
70
+ help_text += " /list-mcp # Lists MCP servers with coder-sensitive active/inactive/configured status\n"
71
+ return help_text
@@ -50,7 +50,6 @@ class ModelCommand(BaseCommand):
50
50
  kwargs["main_model"] = model
51
51
  kwargs["edit_format"] = new_edit_format
52
52
  kwargs["suggest_shell_commands"] = False
53
- kwargs["total_cost"] = coder.total_cost
54
53
  kwargs["num_cache_warming_pings"] = 0
55
54
  kwargs["summarize_from_coder"] = False
56
55
  kwargs["done_messages"] = []
@@ -10,7 +10,7 @@ from cecli.commands.utils.helpers import (
10
10
 
11
11
  class RemoveMcpCommand(BaseCommand):
12
12
  NORM_NAME = "remove-mcp"
13
- DESCRIPTION = "Remove a MCP server by name, or use '*' to remove all"
13
+ DESCRIPTION = "Remove (unload) a MCP server by name, or use '*' to remove all"
14
14
 
15
15
  @classmethod
16
16
  async def execute(cls, io, coder, args, **kwargs):
@@ -46,7 +46,6 @@ class WeakModelCommand(BaseCommand):
46
46
  kwargs["main_model"] = model
47
47
  kwargs["edit_format"] = coder.edit_format # Keep the same edit format
48
48
  kwargs["suggest_shell_commands"] = False
49
- kwargs["total_cost"] = coder.total_cost
50
49
  kwargs["num_cache_warming_pings"] = 0
51
50
  kwargs["summarize_from_coder"] = False
52
51
  kwargs["done_messages"] = []
@@ -18,7 +18,7 @@ class ConversationChunks:
18
18
  def __init__(self, coder):
19
19
  self.coder = weakref.ref(coder)
20
20
  self.uuid = coder.uuid
21
- self._last_clear_count = 0
21
+ self.last_clear_count = 0
22
22
  self._deferred_removals = set()
23
23
 
24
24
  @classmethod
@@ -282,14 +282,14 @@ class ConversationChunks:
282
282
  if diff_count > 0 and other_count > 0 and diff_count / other_count > 20:
283
283
  should_clear = True
284
284
 
285
- self._last_clear_count += 1
285
+ self.last_clear_count += 1
286
286
 
287
287
  if (
288
288
  should_clear
289
- and self._last_clear_count >= 20
289
+ and self.last_clear_count >= 20
290
290
  and diff_tokens + other_tokens > coder.context_compaction_max_tokens * 0.5
291
291
  ):
292
- self._last_clear_count = 0
292
+ self.last_clear_count = 0
293
293
 
294
294
  # Clear all diff messages
295
295
  ConversationService.get_manager(coder).clear_tag(MessageTag.DIFFS)
@@ -890,7 +890,7 @@ class ConversationChunks:
890
890
  """
891
891
  Add static context blocks to conversation (priority 50).
892
892
 
893
- Static blocks include: environment_info, directory_structure, skills
893
+ Static blocks include: environment_info, directory_structure, skills, servers, sub_agents
894
894
  """
895
895
  coder = self.get_coder()
896
896
  if not coder:
@@ -922,6 +922,10 @@ class ConversationChunks:
922
922
  block = coder._generate_context_block("skills")
923
923
  if block:
924
924
  message_blocks["skills"] = block
925
+ if "servers" in coder.allowed_context_blocks:
926
+ block = coder._generate_context_block("servers")
927
+ if block:
928
+ message_blocks["servers"] = block
925
929
 
926
930
  # Add static blocks to conversation manager with stable hash keys
927
931
  for block_type, block_content in message_blocks.items():
@@ -71,16 +71,19 @@ class FileSystemService:
71
71
  cls._instance = None
72
72
 
73
73
  @classmethod
74
- def get_instance(cls, root: str = ".", repo=None) -> "FileSystemService":
74
+ def get_instance(cls, root: str | None = None, repo=None) -> "FileSystemService":
75
75
  """
76
76
  Return the global singleton.
77
77
 
78
78
  On first call, creates and builds the instance using root/repo.
79
- Subsequent calls return the existing instance (root/repo
80
- parameters are ignored). This ensures all agents share one
81
- file index regardless of when they're spawned.
79
+ Subsequent calls return the existing instance. If a non-None root
80
+ is explicitly provided and differs from the current root, the
81
+ singleton is rebuilt (e.g. when a new coder is created in a
82
+ different working directory).
82
83
  """
83
84
  if cls._instance is None:
85
+ cls._instance = cls._create(root=root or ".", repo=repo)
86
+ elif root is not None and root != cls._instance.root:
84
87
  cls._instance = cls._create(root=root, repo=repo)
85
88
  return cls._instance
86
89