cecli-dev 0.99.11__tar.gz → 0.100.0rc1__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 (650) hide show
  1. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/PKG-INFO +8 -6
  2. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/README.md +6 -5
  3. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/__init__.py +1 -1
  4. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/_version.py +3 -3
  5. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/args.py +1 -1
  6. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/__init__.py +2 -0
  7. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/agent_coder.py +115 -15
  8. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/base_coder.py +99 -22
  9. cecli_dev-0.100.0rc1/cecli/coders/sub_agent_coder.py +22 -0
  10. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/__init__.py +10 -1
  11. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/clear.py +2 -1
  12. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/core.py +16 -11
  13. cecli_dev-0.100.0rc1/cecli/commands/invoke_agent.py +51 -0
  14. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/ls.py +3 -3
  15. cecli_dev-0.100.0rc1/cecli/commands/reap_agent.py +66 -0
  16. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/reset.py +2 -1
  17. cecli_dev-0.100.0rc1/cecli/commands/spawn_agent.py +40 -0
  18. cecli_dev-0.100.0rc1/cecli/helpers/agents/__init__.py +7 -0
  19. cecli_dev-0.100.0rc1/cecli/helpers/agents/config.py +79 -0
  20. cecli_dev-0.100.0rc1/cecli/helpers/agents/service.py +506 -0
  21. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/conversation/files.py +29 -11
  22. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/conversation/integration.py +69 -13
  23. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/conversation/manager.py +29 -11
  24. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/conversation/service.py +1 -2
  25. cecli_dev-0.100.0rc1/cecli/helpers/io_proxy.py +256 -0
  26. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/leak_detect.py +42 -0
  27. cecli_dev-0.99.11/cecli/helpers/observations/manager.py → cecli_dev-0.100.0rc1/cecli/helpers/observations/service.py +56 -19
  28. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/io.py +21 -20
  29. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/main.py +14 -8
  30. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/models.py +20 -0
  31. cecli_dev-0.100.0rc1/cecli/prompts/subagent.yml +62 -0
  32. cecli_dev-0.100.0rc1/cecli/queries/tree-sitter-language-pack/bash-tags.scm +8 -0
  33. cecli_dev-0.100.0rc1/cecli/queries/tree-sitter-languages/bash-tags.scm +8 -0
  34. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/repomap.py +30 -7
  35. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/sessions.py +2 -2
  36. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/__init__.py +2 -0
  37. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/context_manager.py +52 -7
  38. cecli_dev-0.100.0rc1/cecli/tools/delegate.py +125 -0
  39. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/edit_text.py +3 -3
  40. cecli_dev-0.100.0rc1/cecli/tools/finished.py +86 -0
  41. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/load_skill.py +1 -4
  42. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/read_range.py +113 -28
  43. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/remove_skill.py +1 -4
  44. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/thinking.py +2 -2
  45. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/utils/base_tool.py +2 -2
  46. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/utils/registry.py +11 -0
  47. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tui/app.py +357 -49
  48. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tui/io.py +179 -55
  49. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tui/styles.tcss +2 -1
  50. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tui/widgets/__init__.py +2 -0
  51. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tui/widgets/file_list.py +12 -2
  52. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tui/widgets/footer.py +61 -4
  53. cecli_dev-0.100.0rc1/cecli/tui/widgets/input_container.py +127 -0
  54. cecli_dev-0.100.0rc1/cecli/tui/widgets/subagent_pills.py +164 -0
  55. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tui/worker.py +26 -6
  56. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/config/agent-mode.md +18 -28
  57. cecli_dev-0.100.0rc1/cecli/website/docs/config/subagents.md +235 -0
  58. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli_dev.egg-info/PKG-INFO +8 -6
  59. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli_dev.egg-info/SOURCES.txt +26 -2
  60. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli_dev.egg-info/requires.txt +1 -0
  61. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/pytest.ini +1 -0
  62. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/requirements/common-constraints.txt +3 -1
  63. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/requirements/requirements-dev.in +1 -0
  64. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/requirements/requirements-dev.txt +4 -0
  65. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_coder.py +17 -9
  66. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_models.py +52 -0
  67. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_reasoning.py +4 -4
  68. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_repomap.py +3 -0
  69. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/conversations/test_conversation_integration.py +1 -1
  70. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/conversations/test_conversation_system.py +1 -1
  71. cecli_dev-0.100.0rc1/tests/fixtures/languages/bash/test.sh +19 -0
  72. cecli_dev-0.99.11/tests/helpers/observations/test_observation_manager.py → cecli_dev-0.100.0rc1/tests/helpers/observations/test_observation_service.py +7 -9
  73. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/scrape/test_playwright_disable.py +2 -0
  74. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/scrape/test_scrape.py +2 -0
  75. cecli_dev-0.100.0rc1/tests/subagents/__init__.py +0 -0
  76. cecli_dev-0.100.0rc1/tests/subagents/conftest.py +60 -0
  77. cecli_dev-0.100.0rc1/tests/subagents/test_commands.py +234 -0
  78. cecli_dev-0.100.0rc1/tests/subagents/test_config.py +109 -0
  79. cecli_dev-0.100.0rc1/tests/subagents/test_delegate.py +116 -0
  80. cecli_dev-0.100.0rc1/tests/subagents/test_finished.py +109 -0
  81. cecli_dev-0.100.0rc1/tests/subagents/test_io_proxy.py +187 -0
  82. cecli_dev-0.100.0rc1/tests/subagents/test_service.py +653 -0
  83. cecli_dev-0.100.0rc1/tests/subagents/test_sub_agent_coder.py +153 -0
  84. cecli_dev-0.99.11/cecli/tools/finished.py +0 -41
  85. cecli_dev-0.99.11/cecli/tui/widgets/input_container.py +0 -24
  86. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/.dockerignore +0 -0
  87. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/.flake8 +0 -0
  88. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/.gitattributes +0 -0
  89. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  90. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/.github/workflows/check_pypi_version.yml +0 -0
  91. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/.github/workflows/docker-build-test.yml +0 -0
  92. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/.github/workflows/docker-release.yml +0 -0
  93. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/.github/workflows/issues.yml +0 -0
  94. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/.github/workflows/pages.yml +0 -0
  95. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/.github/workflows/pre-commit.yml +0 -0
  96. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/.github/workflows/release.yml +0 -0
  97. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/.github/workflows/ubuntu-tests.yml +0 -0
  98. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/.github/workflows/windows-tests.yml +0 -0
  99. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/.github/workflows/windows_check_pypi_version.yml +0 -0
  100. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/.gitignore +0 -0
  101. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/.pre-commit-config.yaml +0 -0
  102. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/CHANGELOG.md +0 -0
  103. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/CNAME +0 -0
  104. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/CONTRIBUTING.md +0 -0
  105. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/HISTORY.md +0 -0
  106. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/LICENSE.txt +0 -0
  107. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/MANIFEST.in +0 -0
  108. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/Dockerfile +0 -0
  109. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/README.md +0 -0
  110. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/__init__.py +0 -0
  111. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/benchmark.py +0 -0
  112. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/benchmark_classic.py +0 -0
  113. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/clone-exercism.sh +0 -0
  114. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/cpp-test.sh +0 -0
  115. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/docker.sh +0 -0
  116. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/docker_build.sh +0 -0
  117. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/install-docker-ubuntu.sh +0 -0
  118. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/npm-test.sh +0 -0
  119. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/over_time.py +0 -0
  120. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/plot.sh +0 -0
  121. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/plots.py +0 -0
  122. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/problem_stats.py +0 -0
  123. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/prompts.py +0 -0
  124. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/refactor_tools.py +0 -0
  125. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/rsync.sh +0 -0
  126. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/rungrid.py +0 -0
  127. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/swe-bench-lite.txt +0 -0
  128. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/swe-bench.txt +0 -0
  129. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/swe_bench.py +0 -0
  130. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/test_benchmark.py +0 -0
  131. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/variations.1.sh +0 -0
  132. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/variations.2.sh +0 -0
  133. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/variations.3.sh +0 -0
  134. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/benchmark/variations.4.sh +0 -0
  135. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/__main__.py +0 -0
  136. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/args_formatter.py +0 -0
  137. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/change_tracker.py +0 -0
  138. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/architect_coder.py +0 -0
  139. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/ask_coder.py +0 -0
  140. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/chat_chunks.py +0 -0
  141. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/context_coder.py +0 -0
  142. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/copypaste_coder.py +0 -0
  143. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/editblock_coder.py +0 -0
  144. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/editblock_fenced_coder.py +0 -0
  145. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/editblock_func_coder.py +0 -0
  146. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  147. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/editor_editblock_coder.py +0 -0
  148. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/editor_whole_coder.py +0 -0
  149. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/hashline_coder.py +0 -0
  150. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/help_coder.py +0 -0
  151. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/patch_coder.py +0 -0
  152. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/search_replace.py +0 -0
  153. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/shell.py +0 -0
  154. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/single_wholefile_func_coder.py +0 -0
  155. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/udiff_coder.py +0 -0
  156. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/udiff_simple.py +0 -0
  157. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/wholefile_coder.py +0 -0
  158. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/coders/wholefile_func_coder.py +0 -0
  159. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/add.py +0 -0
  160. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/agent.py +0 -0
  161. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/agent_model.py +0 -0
  162. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/architect.py +0 -0
  163. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/ask.py +0 -0
  164. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/chat_mode.py +0 -0
  165. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/code.py +0 -0
  166. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/command_prefix.py +0 -0
  167. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/commit.py +0 -0
  168. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/compact.py +0 -0
  169. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/context.py +0 -0
  170. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/context_blocks.py +0 -0
  171. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/context_management.py +0 -0
  172. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/copy.py +0 -0
  173. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/copy_context.py +0 -0
  174. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/diff.py +0 -0
  175. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/drop.py +0 -0
  176. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/editor.py +0 -0
  177. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/editor_model.py +0 -0
  178. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/exclude_skill.py +0 -0
  179. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/exit.py +0 -0
  180. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/git.py +0 -0
  181. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/hashline.py +0 -0
  182. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/help.py +0 -0
  183. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/history_search.py +0 -0
  184. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/hooks.py +0 -0
  185. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/include_skill.py +0 -0
  186. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/lint.py +0 -0
  187. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/list_sessions.py +0 -0
  188. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/list_skills.py +0 -0
  189. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/load.py +0 -0
  190. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/load_hook.py +0 -0
  191. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/load_mcp.py +0 -0
  192. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/load_session.py +0 -0
  193. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/load_skill.py +0 -0
  194. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/map.py +0 -0
  195. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/map_refresh.py +0 -0
  196. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/model.py +0 -0
  197. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/models.py +0 -0
  198. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/multiline_mode.py +0 -0
  199. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/paste.py +0 -0
  200. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/quit.py +0 -0
  201. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/read_only.py +0 -0
  202. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/read_only_stub.py +0 -0
  203. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/reasoning_effort.py +0 -0
  204. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/remove_hook.py +0 -0
  205. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/remove_mcp.py +0 -0
  206. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/remove_skill.py +0 -0
  207. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/report.py +0 -0
  208. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/rules.py +0 -0
  209. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/run.py +0 -0
  210. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/save.py +0 -0
  211. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/save_session.py +0 -0
  212. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/settings.py +0 -0
  213. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/terminal_data/linux.keytab +0 -0
  214. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/terminal_setup.py +0 -0
  215. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/test.py +0 -0
  216. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/think_tokens.py +0 -0
  217. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/tokens.py +0 -0
  218. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/undo.py +0 -0
  219. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/utils/__init__.py +0 -0
  220. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/utils/base_command.py +0 -0
  221. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/utils/helpers.py +0 -0
  222. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/utils/registry.py +0 -0
  223. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/utils/save_load_manager.py +0 -0
  224. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/voice.py +0 -0
  225. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/weak_model.py +0 -0
  226. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/web.py +0 -0
  227. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/commands/workspace.py +0 -0
  228. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/deprecated_args.py +0 -0
  229. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/diffs.py +0 -0
  230. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/dump.py +0 -0
  231. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/editor.py +0 -0
  232. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/exceptions.py +0 -0
  233. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/format_settings.py +0 -0
  234. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/help.py +0 -0
  235. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/help_pats.py +0 -0
  236. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/__init__.py +0 -0
  237. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/background_commands.py +0 -0
  238. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/command_parser.py +0 -0
  239. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/conversation/__init__.py +0 -0
  240. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/conversation/base_message.py +0 -0
  241. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/conversation/tags.py +0 -0
  242. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/conversation/utils.py +0 -0
  243. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/copypaste.py +0 -0
  244. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/coroutines.py +0 -0
  245. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/file_searcher.py +0 -0
  246. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/grep_ast/__init__.py +0 -0
  247. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/grep_ast/dump.py +0 -0
  248. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/grep_ast/grep_ast.py +0 -0
  249. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/grep_ast/main.py +0 -0
  250. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/grep_ast/parsers.py +0 -0
  251. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/grep_ast/tsl.py +0 -0
  252. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/hashline.py +0 -0
  253. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/hashpos/__init__.py +0 -0
  254. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/hashpos/hashpos.py +0 -0
  255. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/model_providers.py +0 -0
  256. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/monorepo/__init__.py +0 -0
  257. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/monorepo/config.py +0 -0
  258. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/monorepo/project.py +0 -0
  259. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/monorepo/workspace.py +0 -0
  260. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/monorepo/worktree.py +0 -0
  261. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/nested.py +0 -0
  262. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/observations/__init__.py +0 -0
  263. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/plugin_manager.py +0 -0
  264. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/profiler.py +0 -0
  265. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/requests.py +0 -0
  266. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/responses.py +0 -0
  267. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/similarity.py +0 -0
  268. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/helpers/skills.py +0 -0
  269. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/history.py +0 -0
  270. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/hooks/__init__.py +0 -0
  271. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/hooks/base.py +0 -0
  272. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/hooks/integration.py +0 -0
  273. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/hooks/manager.py +0 -0
  274. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/hooks/registry.py +0 -0
  275. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/hooks/types.py +0 -0
  276. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/interruptible_input.py +0 -0
  277. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/linter.py +0 -0
  278. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/llm.py +0 -0
  279. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/mcp/__init__.py +0 -0
  280. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/mcp/manager.py +0 -0
  281. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/mcp/oauth.py +0 -0
  282. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/mcp/server.py +0 -0
  283. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/mcp/utils.py +0 -0
  284. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/mdstream.py +0 -0
  285. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/onboarding.py +0 -0
  286. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/__init__.py +0 -0
  287. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/agent.yml +0 -0
  288. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/architect.yml +0 -0
  289. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/ask.yml +0 -0
  290. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/base.yml +0 -0
  291. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/context.yml +0 -0
  292. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/copypaste.yml +0 -0
  293. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/editblock.yml +0 -0
  294. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/editblock_fenced.yml +0 -0
  295. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/editblock_func.yml +0 -0
  296. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/editor_diff_fenced.yml +0 -0
  297. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/editor_editblock.yml +0 -0
  298. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/editor_whole.yml +0 -0
  299. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/hashline.yml +0 -0
  300. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/help.yml +0 -0
  301. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/patch.yml +0 -0
  302. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/single_wholefile_func.yml +0 -0
  303. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/udiff.yml +0 -0
  304. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/udiff_simple.yml +0 -0
  305. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/utils/__init__.py +0 -0
  306. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/utils/registry.py +0 -0
  307. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/utils/system.py +0 -0
  308. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/wholefile.yml +0 -0
  309. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/prompts/wholefile_func.yml +0 -0
  310. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  311. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  312. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  313. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  314. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  315. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  316. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  317. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  318. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  319. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  320. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  321. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  322. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  323. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  324. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  325. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  326. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  327. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  328. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  329. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  330. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  331. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  332. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  333. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  334. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  335. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  336. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  337. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  338. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  339. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  340. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  341. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/README.md +0 -0
  342. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  343. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  344. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  345. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  346. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  347. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  348. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  349. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  350. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  351. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  352. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  353. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  354. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  355. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  356. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  357. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  358. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  359. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  360. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  361. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  362. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  363. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  364. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  365. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  366. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  367. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  368. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/reasoning_tags.py +0 -0
  369. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/repo.py +0 -0
  370. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/report.py +0 -0
  371. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/resources/__init__.py +0 -0
  372. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/resources/model-metadata.json +0 -0
  373. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/resources/model-settings.yml +0 -0
  374. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/resources/providers.json +0 -0
  375. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/run_cmd.py +0 -0
  376. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/scrape.py +0 -0
  377. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/sendchat.py +0 -0
  378. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/special.py +0 -0
  379. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/command.py +0 -0
  380. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/command_interactive.py +0 -0
  381. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/explore_code.py +0 -0
  382. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/git_branch.py +0 -0
  383. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/git_diff.py +0 -0
  384. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/git_log.py +0 -0
  385. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/git_remote.py +0 -0
  386. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/git_show.py +0 -0
  387. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/git_status.py +0 -0
  388. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/grep.py +0 -0
  389. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/ls.py +0 -0
  390. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/undo_change.py +0 -0
  391. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/update_todo_list.py +0 -0
  392. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/utils/helpers.py +0 -0
  393. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tools/utils/output.py +0 -0
  394. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tui/__init__.py +0 -0
  395. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tui/widgets/completion_bar.py +0 -0
  396. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tui/widgets/input_area.py +0 -0
  397. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tui/widgets/key_hints.py +0 -0
  398. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tui/widgets/output.py +0 -0
  399. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/tui/widgets/status_bar.py +0 -0
  400. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/urls.py +0 -0
  401. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/utils.py +0 -0
  402. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/versioncheck.py +0 -0
  403. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/voice.py +0 -0
  404. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/waiting.py +0 -0
  405. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/watch.py +0 -0
  406. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/watch_prompts.py +0 -0
  407. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/Gemfile +0 -0
  408. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/_includes/blame.md +0 -0
  409. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/_includes/get-started.md +0 -0
  410. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/_includes/help-tip.md +0 -0
  411. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/_includes/help.md +0 -0
  412. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/_includes/install.md +0 -0
  413. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/_includes/keys.md +0 -0
  414. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/_includes/model-warnings.md +0 -0
  415. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/_includes/multi-line.md +0 -0
  416. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/_includes/python-m-aider.md +0 -0
  417. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/_includes/recording.css +0 -0
  418. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/_includes/recording.md +0 -0
  419. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/_includes/works-best.md +0 -0
  420. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/_sass/_features.scss +0 -0
  421. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/_sass/_footer.scss +0 -0
  422. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/_sass/_hero.scss +0 -0
  423. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/_sass/_info.scss +0 -0
  424. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/_sass/_layout.scss +0 -0
  425. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/_sass/_reset.scss +0 -0
  426. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/_sass/_testimonials.scss +0 -0
  427. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/_sass/_typography.scss +0 -0
  428. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/_sass/_variables.scss +0 -0
  429. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/_sass/custom/custom.scss +0 -0
  430. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/_sass/global-overrides.scss +0 -0
  431. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/config/adv-model-settings.md +0 -0
  432. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/config/aider_conf.md +0 -0
  433. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/config/api-keys.md +0 -0
  434. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/config/custom-commands.md +0 -0
  435. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  436. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/config/dotenv.md +0 -0
  437. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/config/editor.md +0 -0
  438. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/config/hooks.md +0 -0
  439. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/config/mcp.md +0 -0
  440. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/config/model-aliases.md +0 -0
  441. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/config/options.md +0 -0
  442. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/config/reasoning.md +0 -0
  443. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/config/security.md +0 -0
  444. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/config/skills.md +0 -0
  445. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/config/tui.md +0 -0
  446. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/config/workspaces.md +0 -0
  447. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/config.md +0 -0
  448. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/faq.md +0 -0
  449. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/git.md +0 -0
  450. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/index.md +0 -0
  451. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/install/docker.md +0 -0
  452. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/install/optional.md +0 -0
  453. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/install.md +0 -0
  454. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/languages.md +0 -0
  455. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  456. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/legal/privacy.md +0 -0
  457. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/llms/anthropic.md +0 -0
  458. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/llms/azure.md +0 -0
  459. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/llms/bedrock.md +0 -0
  460. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/llms/cohere.md +0 -0
  461. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/llms/deepseek.md +0 -0
  462. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/llms/gemini.md +0 -0
  463. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/llms/github.md +0 -0
  464. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/llms/groq.md +0 -0
  465. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/llms/lm-studio.md +0 -0
  466. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/llms/ollama.md +0 -0
  467. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/llms/openai-compat.md +0 -0
  468. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/llms/openai.md +0 -0
  469. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/llms/openrouter.md +0 -0
  470. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/llms/other.md +0 -0
  471. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/llms/vertex.md +0 -0
  472. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/llms/warnings.md +0 -0
  473. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/llms/xai.md +0 -0
  474. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/llms.md +0 -0
  475. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/more/analytics.md +0 -0
  476. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/more/edit-formats.md +0 -0
  477. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/more/infinite-output.md +0 -0
  478. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/more-info.md +0 -0
  479. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/repomap.md +0 -0
  480. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/scripting.md +0 -0
  481. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
  482. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  483. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/troubleshooting/imports.md +0 -0
  484. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  485. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/troubleshooting/support.md +0 -0
  486. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  487. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  488. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/troubleshooting.md +0 -0
  489. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/usage/commands.md +0 -0
  490. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/usage/conventions.md +0 -0
  491. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/usage/copypaste.md +0 -0
  492. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/usage/images-urls.md +0 -0
  493. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/usage/lint-test.md +0 -0
  494. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/usage/modes.md +0 -0
  495. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/usage/not-code.md +0 -0
  496. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/usage/notifications.md +0 -0
  497. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/usage/sessions.md +0 -0
  498. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/usage/tips.md +0 -0
  499. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/usage/voice.md +0 -0
  500. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/usage/watch.md +0 -0
  501. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/docs/usage.md +0 -0
  502. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli/website/share/index.md +0 -0
  503. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli_dev.egg-info/dependency_links.txt +0 -0
  504. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli_dev.egg-info/entry_points.txt +0 -0
  505. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/cecli_dev.egg-info/top_level.txt +0 -0
  506. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/docker/Dockerfile +0 -0
  507. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  508. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/pyproject.toml +0 -0
  509. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/requirements/requirements-help.in +0 -0
  510. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/requirements/requirements-help.txt +0 -0
  511. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/requirements/requirements-playwright.in +0 -0
  512. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/requirements/requirements-playwright.txt +0 -0
  513. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/requirements/requirements.in +0 -0
  514. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/requirements/tree-sitter.in +0 -0
  515. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/requirements.txt +0 -0
  516. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/30k-image.py +0 -0
  517. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/Dockerfile.jekyll +0 -0
  518. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/__init__.py +0 -0
  519. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/blame.py +0 -0
  520. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/clean_metadata.py +0 -0
  521. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/cost_analyzer.py +0 -0
  522. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/cost_calculator.py +0 -0
  523. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/dl_icons.py +0 -0
  524. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/filter-chat-mode.js +0 -0
  525. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/generate_providers.py +0 -0
  526. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/get_contributor_list.js +0 -0
  527. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/get_hashline.py +0 -0
  528. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/history_prompts.py +0 -0
  529. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/homepage.py +0 -0
  530. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/issues.py +0 -0
  531. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/jekyll_build.sh +0 -0
  532. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/jekyll_run.sh +0 -0
  533. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/logo_svg.py +0 -0
  534. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/pip-compile.sh +0 -0
  535. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/recording_audio.py +0 -0
  536. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/redact-cast.py +0 -0
  537. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/rename_to_cecli.py +0 -0
  538. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/tmux_record.sh +0 -0
  539. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/tsl_pack_langs.py +0 -0
  540. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/update-blame.sh +0 -0
  541. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/update-docs.sh +0 -0
  542. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/update-history.py +0 -0
  543. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/versionbump.py +0 -0
  544. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/scripts/yank-old-versions.py +0 -0
  545. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/setup.cfg +0 -0
  546. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/shim.pyproject.toml +0 -0
  547. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/__init__.py +0 -0
  548. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/__init__.py +0 -0
  549. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_aws_credentials.py +0 -0
  550. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_background_commands.py +0 -0
  551. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_commands.py +0 -0
  552. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_custom_commands.py +0 -0
  553. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_deprecated.py +0 -0
  554. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_editblock.py +0 -0
  555. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_editor.py +0 -0
  556. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_exceptions.py +0 -0
  557. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_find_or_blocks.py +0 -0
  558. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_hashline.py +0 -0
  559. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_history.py +0 -0
  560. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_io.py +0 -0
  561. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_linter.py +0 -0
  562. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_main.py +0 -0
  563. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_model_info_manager.py +0 -0
  564. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_model_provider_manager.py +0 -0
  565. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_onboarding.py +0 -0
  566. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_plugin_manager.py +0 -0
  567. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_prompts.py +0 -0
  568. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_repo.py +0 -0
  569. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_run_cmd.py +0 -0
  570. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_sanity_check_repo.py +0 -0
  571. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_scripting.py +0 -0
  572. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_sendchat.py +0 -0
  573. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_sessions.py +0 -0
  574. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_skills.py +0 -0
  575. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_special.py +0 -0
  576. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_ssl_verification.py +0 -0
  577. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_udiff.py +0 -0
  578. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_urls.py +0 -0
  579. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_voice.py +0 -0
  580. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_watch.py +0 -0
  581. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/basic/test_wholefile.py +0 -0
  582. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/coders/test_copypaste_coder.py +0 -0
  583. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/conftest.py +0 -0
  584. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  585. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/chat-history.md +0 -0
  586. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/arduino/test.ino +0 -0
  587. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/c/test.c +0 -0
  588. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/chatito/test.chatito +0 -0
  589. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/clojure/test.clj +0 -0
  590. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  591. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/cpp/test.cpp +0 -0
  592. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/csharp/test.cs +0 -0
  593. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/d/test.d +0 -0
  594. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/dart/test.dart +0 -0
  595. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/elisp/test.el +0 -0
  596. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/elixir/test.ex +0 -0
  597. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/elm/test.elm +0 -0
  598. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/gleam/test.gleam +0 -0
  599. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/go/test.go +0 -0
  600. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/haskell/test.hs +0 -0
  601. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/hcl/test.tf +0 -0
  602. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/java/test.java +0 -0
  603. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/javascript/test.js +0 -0
  604. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/kotlin/test.kt +0 -0
  605. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/lua/test.lua +0 -0
  606. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/matlab/test.m +0 -0
  607. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/ocaml/test.ml +0 -0
  608. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  609. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/php/test.php +0 -0
  610. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/pony/test.pony +0 -0
  611. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/properties/test.properties +0 -0
  612. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/python/test.py +0 -0
  613. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/ql/test.ql +0 -0
  614. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/r/test.r +0 -0
  615. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/racket/test.rkt +0 -0
  616. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/ruby/test.rb +0 -0
  617. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/rust/test.rs +0 -0
  618. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/scala/test.scala +0 -0
  619. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/solidity/test.sol +0 -0
  620. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/swift/test.swift +0 -0
  621. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/tsx/test.tsx +0 -0
  622. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/typescript/test.ts +0 -0
  623. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/udev/test.rules +0 -0
  624. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/languages/zig/test.zig +0 -0
  625. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/sample-code-base/sample.js +0 -0
  626. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/sample-code-base/sample.py +0 -0
  627. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  628. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/watch.js +0 -0
  629. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/watch.lisp +0 -0
  630. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/watch.py +0 -0
  631. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/fixtures/watch_question.js +0 -0
  632. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/help/test_help.py +0 -0
  633. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/helpers/monorepo/test_config.py +0 -0
  634. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/helpers/monorepo/test_config_active.py +0 -0
  635. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
  636. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
  637. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/helpers/monorepo/test_workspace.py +0 -0
  638. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/hooks/__init__.py +0 -0
  639. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/hooks/test_base.py +0 -0
  640. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/hooks/test_manager.py +0 -0
  641. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/hooks/test_registry.py +0 -0
  642. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/mcp/__init__.py +0 -0
  643. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/mcp/test_manager.py +0 -0
  644. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/tools/test_get_lines.py +0 -0
  645. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/tools/test_git_branch.py +0 -0
  646. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/tools/test_git_diff.py +0 -0
  647. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/tools/test_grep.py +0 -0
  648. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/tools/test_insert_block.py +0 -0
  649. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/tests/tools/test_registry.py +0 -0
  650. {cecli_dev-0.99.11 → cecli_dev-0.100.0rc1}/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.99.11
3
+ Version: 0.100.0rc1
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
@@ -80,6 +80,7 @@ Requires-Dist: memray; extra == "dev"
80
80
  Requires-Dist: objgraph; extra == "dev"
81
81
  Requires-Dist: pympler; extra == "dev"
82
82
  Requires-Dist: guppy3; extra == "dev"
83
+ Requires-Dist: psutil; extra == "dev"
83
84
  Provides-Extra: help
84
85
  Requires-Dist: llama-index-embeddings-huggingface; extra == "help"
85
86
  Requires-Dist: numpy>=1.26.4; extra == "help"
@@ -110,6 +111,7 @@ LLMs are a part of our lives from here on out so join us in learning about and c
110
111
  * [MCP Configuration](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/mcp.md)
111
112
  * [TUI Configuration](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/tui.md)
112
113
  * [Skills](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/skills.md)
114
+ * [Subagents](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/subagents.md)
113
115
  * [Session Management](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/sessions.md)
114
116
  * [Hooks](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/hooks.md)
115
117
  * [Workspaces](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/workspaces.md)
@@ -232,7 +234,7 @@ The current priorities are to improve core capabilities and user experience of t
232
234
  * [ ] Build an explicit workflow and local tooling for internal discovery mechanisms
233
235
 
234
236
  4. **Context Delivery** - [Discussion](https://github.com/dwash96/cecli/issues/47)
235
- * [ ] Use workflow for internal discovery to better target file snippets needed for specific tasks
237
+ * [x] Use workflow for internal discovery to better target file snippets needed for specific tasks (ExploreCode and ReadRange)
236
238
  * [x] Add support for partial files and code snippets in model completion messages
237
239
  * [x] Update message request structure for optimal caching
238
240
 
@@ -251,12 +253,12 @@ The current priorities are to improve core capabilities and user experience of t
251
253
  * [x] Add a dynamic tool discovery tool to allow the system to have only the tools it needs in context
252
254
 
253
255
  7. **Sub Agents**
254
- * [ ] Add `/fork` and `/rejoin` commands to manually manage parts of the conversation history
256
+ * [x] Add `/invoke-agent` command to manually branch a sub agent and return a summary to the main context
255
257
  * [x] Add an instance-able view of the conversation system so sub agents get their own context and workspaces
256
258
  * [x] Modify coder classes to have discrete identifiers for themselves/management utilities for them to have their own slices of the world
257
259
  * [x] Refactor global files like todo lists to live inside instance folders to avoid state conflicts
258
- * [ ] Add a `spawn` tool that launches a sub agent as a background command that the parent model waits for to finish
259
- * [ ] Add visibility into active sub agent calls in TUI
260
+ * [x] Add a `Delegate` tool that launches a sub agent as a background command that the parent model waits for to finish
261
+ * [x] Add visibility into active sub agent calls in TUI
260
262
 
261
263
  8. **Hooks**
262
264
  * [x] Add hooks base class for user defined python hooks with an execute method with type and priority settings
@@ -270,7 +272,7 @@ The current priorities are to improve core capabilities and user experience of t
270
272
  * [x] Update internal file diff representation to support hashline propagation
271
273
 
272
274
  10. **Dynamic Context Management**
273
- * [ ] Update compaction to use observational memory sub agent calls to generate decision records that are used as the compaction basis
275
+ * [x] Update compaction to use observational memory sub agent calls to generate decision records that are used as the compaction basis
274
276
  * [ ] Persist decision records to disk for sessions with some settings for managing lifetimes of such persistence
275
277
  * [ ] Integrate RLM to extract information from decision records on disk and other definable notes
276
278
  * [ ] Add a "describe" tool that launches a sub agent workflow that populates an RLM call's context with:
@@ -20,6 +20,7 @@ LLMs are a part of our lives from here on out so join us in learning about and c
20
20
  * [MCP Configuration](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/mcp.md)
21
21
  * [TUI Configuration](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/tui.md)
22
22
  * [Skills](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/skills.md)
23
+ * [Subagents](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/subagents.md)
23
24
  * [Session Management](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/sessions.md)
24
25
  * [Hooks](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/hooks.md)
25
26
  * [Workspaces](https://github.com/dwash96/cecli/blob/main/cecli/website/docs/config/workspaces.md)
@@ -142,7 +143,7 @@ The current priorities are to improve core capabilities and user experience of t
142
143
  * [ ] Build an explicit workflow and local tooling for internal discovery mechanisms
143
144
 
144
145
  4. **Context Delivery** - [Discussion](https://github.com/dwash96/cecli/issues/47)
145
- * [ ] Use workflow for internal discovery to better target file snippets needed for specific tasks
146
+ * [x] Use workflow for internal discovery to better target file snippets needed for specific tasks (ExploreCode and ReadRange)
146
147
  * [x] Add support for partial files and code snippets in model completion messages
147
148
  * [x] Update message request structure for optimal caching
148
149
 
@@ -161,12 +162,12 @@ The current priorities are to improve core capabilities and user experience of t
161
162
  * [x] Add a dynamic tool discovery tool to allow the system to have only the tools it needs in context
162
163
 
163
164
  7. **Sub Agents**
164
- * [ ] Add `/fork` and `/rejoin` commands to manually manage parts of the conversation history
165
+ * [x] Add `/invoke-agent` command to manually branch a sub agent and return a summary to the main context
165
166
  * [x] Add an instance-able view of the conversation system so sub agents get their own context and workspaces
166
167
  * [x] Modify coder classes to have discrete identifiers for themselves/management utilities for them to have their own slices of the world
167
168
  * [x] Refactor global files like todo lists to live inside instance folders to avoid state conflicts
168
- * [ ] Add a `spawn` tool that launches a sub agent as a background command that the parent model waits for to finish
169
- * [ ] Add visibility into active sub agent calls in TUI
169
+ * [x] Add a `Delegate` tool that launches a sub agent as a background command that the parent model waits for to finish
170
+ * [x] Add visibility into active sub agent calls in TUI
170
171
 
171
172
  8. **Hooks**
172
173
  * [x] Add hooks base class for user defined python hooks with an execute method with type and priority settings
@@ -180,7 +181,7 @@ The current priorities are to improve core capabilities and user experience of t
180
181
  * [x] Update internal file diff representation to support hashline propagation
181
182
 
182
183
  10. **Dynamic Context Management**
183
- * [ ] Update compaction to use observational memory sub agent calls to generate decision records that are used as the compaction basis
184
+ * [x] Update compaction to use observational memory sub agent calls to generate decision records that are used as the compaction basis
184
185
  * [ ] Persist decision records to disk for sessions with some settings for managing lifetimes of such persistence
185
186
  * [ ] Integrate RLM to extract information from decision records on disk and other definable notes
186
187
  * [ ] Add a "describe" tool that launches a sub agent workflow that populates an RLM call's context with:
@@ -1,6 +1,6 @@
1
1
  from packaging import version
2
2
 
3
- __version__ = "0.99.10.dev"
3
+ __version__ = "0.99.12.dev"
4
4
  safe_version = __version__
5
5
 
6
6
  try:
@@ -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.99.11'
22
- __version_tuple__ = version_tuple = (0, 99, 11)
21
+ __version__ = version = '0.100.0rc1'
22
+ __version_tuple__ = version_tuple = (0, 100, 0, 'rc1')
23
23
 
24
- __commit_id__ = commit_id = 'g2e5e3b75c'
24
+ __commit_id__ = commit_id = 'gd703941b6'
@@ -403,7 +403,7 @@ def get_parser(default_config_files, git_root):
403
403
  "--use-enhanced-map",
404
404
  action="store_true",
405
405
  help="Use enhanced Repo Map that takes into account imports (default: False)",
406
- default=False,
406
+ default=True,
407
407
  )
408
408
 
409
409
  ##########
@@ -12,6 +12,7 @@ from .editor_whole_coder import EditorWholeFileCoder
12
12
  from .hashline_coder import HashLineCoder
13
13
  from .help_coder import HelpCoder
14
14
  from .patch_coder import PatchCoder
15
+ from .sub_agent_coder import SubAgentCoder
15
16
  from .udiff_coder import UnifiedDiffCoder
16
17
  from .udiff_simple import UnifiedDiffSimpleCoder
17
18
  from .wholefile_coder import WholeFileCoder
@@ -37,4 +38,5 @@ __all__ = [
37
38
  AgentCoder,
38
39
  CopyPasteCoder,
39
40
  HashLineCoder,
41
+ SubAgentCoder,
40
42
  ]
@@ -2,6 +2,7 @@ import asyncio
2
2
  import base64
3
3
  import json
4
4
  import locale
5
+ import logging
5
6
  import os
6
7
  import platform
7
8
  import random
@@ -14,6 +15,7 @@ from pathlib import Path
14
15
  from cecli import utils
15
16
  from cecli.change_tracker import ChangeTracker
16
17
  from cecli.helpers import nested, responses
18
+ from cecli.helpers.agents.service import AgentService
17
19
  from cecli.helpers.background_commands import BackgroundCommandManager
18
20
  from cecli.helpers.conversation import ConversationService, MessageTag
19
21
  from cecli.helpers.similarity import (
@@ -33,6 +35,8 @@ from .base_coder import Coder
33
35
 
34
36
  from cecli.helpers.coroutines import interruptible # isort:skip
35
37
 
38
+ logger = logging.getLogger(__name__)
39
+
36
40
 
37
41
  class AgentCoder(Coder):
38
42
  """Mode where the LLM autonomously manages which files are in context."""
@@ -40,6 +44,7 @@ class AgentCoder(Coder):
40
44
  edit_format = "agent"
41
45
  prompt_format = "agent"
42
46
  context_management_enabled = True
47
+
43
48
  hashlines = True
44
49
  stop_on_empty = False
45
50
 
@@ -92,11 +97,32 @@ class AgentCoder(Coder):
92
97
  self.skip_cli_confirmations = False
93
98
  self.agent_finished = False
94
99
  self.agent_config = self._get_agent_config()
100
+ self.max_sub_agents = self.agent_config.get("max_sub_agents", 3)
101
+ self.sub_agent_paths = self.agent_config.get("subagent_paths", [])
95
102
  self._setup_agent()
103
+
104
+ AgentService.build_registry(self.sub_agent_paths)
96
105
  ToolRegistry.build_registry(agent_config=self.agent_config)
106
+
97
107
  self.loaded_custom_tools = ToolRegistry.loaded_custom_tools
98
108
  super().__init__(*args, **kwargs)
99
109
 
110
+ def post_init(self):
111
+ super().post_init()
112
+ # Populate per-instance tool and server filters from config
113
+ self.registered_tools["included"] = set(
114
+ map(str.lower, self.agent_config.get("tools_includelist", []))
115
+ )
116
+ self.registered_tools["excluded"] = set(
117
+ map(str.lower, self.agent_config.get("tools_excludelist", []))
118
+ )
119
+ self.registered_servers["included"] = set(
120
+ map(str.lower, self.agent_config.get("servers_includelist", []))
121
+ )
122
+ self.registered_servers["excluded"] = set(
123
+ map(str.lower, self.agent_config.get("servers_excludelist", []))
124
+ )
125
+
100
126
  def _setup_agent(self):
101
127
  os.makedirs(".cecli/temp", exist_ok=True)
102
128
 
@@ -137,6 +163,12 @@ class AgentCoder(Coder):
137
163
  config, ["tools_excludelist", "tools_blacklist"], []
138
164
  )
139
165
 
166
+ config["servers_includelist"] = nested.getter(
167
+ config, ["servers_includelist", "servers_whitelist"], []
168
+ )
169
+ config["servers_excludelist"] = nested.getter(
170
+ config, ["servers_excludelist", "servers_blacklist"], []
171
+ )
140
172
  config["include_context_blocks"] = set(
141
173
  nested.getter(
142
174
  config,
@@ -148,6 +180,7 @@ class AgentCoder(Coder):
148
180
  # "git_status",
149
181
  # "symbol_outline",
150
182
  "todo_list",
183
+ "sub_agents",
151
184
  "skills",
152
185
  },
153
186
  )
@@ -282,9 +315,7 @@ class AgentCoder(Coder):
282
315
  content_parts.append(item.text)
283
316
  return "".join(content_parts)
284
317
  except Exception as e:
285
- self.io.tool_warning(
286
- (f"Executing {tool_name} on {server.name} failed:\nError: {e}")
287
- )
318
+ self.io.tool_warning(f"Executing {tool_name} on {server.name} failed:\nError: {e}")
288
319
  return f"Error executing tool call {tool_name}: {e}"
289
320
 
290
321
  result, interrupted = await interruptible(_exec_async(), self.interrupt_event)
@@ -354,6 +385,8 @@ class AgentCoder(Coder):
354
385
  content = self.get_skills_context()
355
386
  elif block_name == "loaded_skills":
356
387
  content = self.get_skills_content()
388
+ elif block_name == "sub_agents":
389
+ content = self.get_sub_agents_context()
357
390
  if content is not None:
358
391
  self.context_blocks_cache[block_name] = content
359
392
  return content
@@ -381,7 +414,10 @@ class AgentCoder(Coder):
381
414
  try:
382
415
  result = '<context name="symbol_outline" from="agent">\n'
383
416
  result += "## Symbol Outline (Current Context)\n\n"
384
- result += "Code definitions (classes, functions, methods, etc.) found in files currently in chat context."
417
+ result += (
418
+ "Code definitions (classes, functions, methods, etc.) found in files currently in"
419
+ " chat context."
420
+ )
385
421
  result += "\n\n"
386
422
  files_to_outline = list(self.abs_fnames) + list(self.abs_read_only_fnames)
387
423
  if not files_to_outline:
@@ -459,7 +495,22 @@ class AgentCoder(Coder):
459
495
  ConversationService.get_chunks(self).add_file_list_reminder()
460
496
 
461
497
  # Add system messages (including examples and reminder)
462
- ConversationService.get_chunks(self).add_system_messages()
498
+ # For sub-agents, use their specific system prompt via AgentService lookup
499
+ # For primary agents, use the default system messages flow
500
+ needs_system_prompts = True
501
+ if hasattr(self, "parent_uuid") and self.parent_uuid:
502
+ from cecli.helpers.agents.service import AgentService
503
+
504
+ service = AgentService.get_instance(self)
505
+ info = service.sub_agents.get(self.uuid)
506
+ if info:
507
+ config = AgentService.get_registry().get(info.name)
508
+ if config and config.prompt and config.prompt.strip():
509
+ ConversationService.get_chunks(self).add_system_message(config.prompt)
510
+ needs_system_prompts = False
511
+
512
+ if needs_system_prompts:
513
+ ConversationService.get_chunks(self).add_system_messages()
463
514
 
464
515
  # Add static context blocks (priority 50 - between SYSTEM and EXAMPLES)
465
516
  ConversationService.get_chunks(self).add_static_context_blocks()
@@ -522,7 +573,10 @@ class AgentCoder(Coder):
522
573
  )
523
574
  if editable_files:
524
575
  result += "\n".join(editable_files) + "\n\n"
525
- result += f"**Total editable: {len(editable_files)} files, {editable_tokens:,} tokens**\n\n"
576
+ result += (
577
+ f"**Total editable: {len(editable_files)} files,"
578
+ f" {editable_tokens:,} tokens**\n\n"
579
+ )
526
580
  else:
527
581
  result += "No editable files in context\n\n"
528
582
  if self.abs_read_only_fnames:
@@ -542,7 +596,10 @@ class AgentCoder(Coder):
542
596
  )
543
597
  if readonly_files:
544
598
  result += "\n".join(readonly_files) + "\n\n"
545
- result += f"**Total read-only: {len(readonly_files)} files, {readonly_tokens:,} tokens**\n\n"
599
+ result += (
600
+ f"**Total read-only: {len(readonly_files)} files,"
601
+ f" {readonly_tokens:,} tokens**\n\n"
602
+ )
546
603
  else:
547
604
  result += "No read-only files in context\n\n"
548
605
  extra_tokens = sum(self.context_block_tokens.values())
@@ -730,7 +787,7 @@ class AgentCoder(Coder):
730
787
  self.model_kwargs = {}
731
788
  result_message = f"Error executing {tool_name}: {e}"
732
789
  self.io.tool_error(
733
- (f"Error during {tool_name} execution: {e}\n{traceback.format_exc()}")
790
+ f"Error during {tool_name} execution: {e}\n{traceback.format_exc()}"
734
791
  )
735
792
  tool_responses.append(
736
793
  {"role": "tool", "tool_call_id": tool_call.id, "content": result_message}
@@ -801,6 +858,7 @@ class AgentCoder(Coder):
801
858
  # 1. Handle Tool Execution Follow-up (Reflection)
802
859
  if self.agent_finished:
803
860
  self.tool_usage_history = []
861
+ self.tool_call_vectors = []
804
862
  self.reflected_message = None
805
863
  if self.files_edited_by_tools:
806
864
  _ = await self.auto_commit(self.files_edited_by_tools)
@@ -853,11 +911,15 @@ class AgentCoder(Coder):
853
911
  self.tool_usage_history = []
854
912
  return True
855
913
 
856
- if content and not tool_calls_found and self.num_reflections < self.max_reflections:
857
- self.reflected_message = (
858
- "Continue with your task. If you have completed it, call the `Finished` tool."
859
- )
860
- return True
914
+ # 4. If we have called no tools (e.g. the first message)
915
+ # Allow early exiting
916
+ # If a model forgets a tool call, replay the request instead of stopping early
917
+ if self.tool_call_vectors:
918
+ if content and not tool_calls_found and self.num_reflections < self.max_reflections:
919
+ self.reflected_message = (
920
+ "Continue with your task. If you have completed it, call the `Finished` tool."
921
+ )
922
+ return True
861
923
 
862
924
  if tool_calls_found and self.num_reflections < self.max_reflections:
863
925
  self.tool_call_count = 0
@@ -1020,8 +1082,8 @@ class AgentCoder(Coder):
1020
1082
  context_parts.append("## File Editing Tools Disabled")
1021
1083
  context_parts.append(
1022
1084
  "File editing tools are currently disabled. Use `ReadRange` to determine the"
1023
- " current content hash prefixes needed to perform an edit and activate them when you"
1024
- " are ready to edit a file."
1085
+ " current content hash prefixes needed to perform an edit and activate them when"
1086
+ " you are ready to edit a file."
1025
1087
  )
1026
1088
 
1027
1089
  context_parts.append("\n\n")
@@ -1377,6 +1439,44 @@ Todo list does not exist. Please update it with the `UpdateTodoList` tool.</cont
1377
1439
  self.io.tool_error(f"Error generating skills content context: {str(e)}")
1378
1440
  return None
1379
1441
 
1442
+ def get_sub_agents_context(self):
1443
+ """
1444
+ Generate a context block for registered sub-agents.
1445
+ Only shown for primary coders (no parent_uuid).
1446
+
1447
+ Returns:
1448
+ Formatted context block string with sub-agent names and descriptions,
1449
+ or None if no sub-agents are registered or if called from a sub-agent.
1450
+ """
1451
+ if not self.use_enhanced_context:
1452
+ return None
1453
+ if hasattr(self, "parent_uuid") and self.parent_uuid:
1454
+ return None
1455
+ try:
1456
+ from cecli.helpers.agents.service import AgentService
1457
+
1458
+ registry = AgentService.get_registry()
1459
+ if not registry:
1460
+ return None
1461
+
1462
+ result = '<context name="sub_agents" from="agent">\n'
1463
+ result += "## Available Sub-Agents\n\n"
1464
+ result += f"Found {len(registry)} registered sub-agent(s):\n\n"
1465
+
1466
+ for name, config in sorted(registry.items()):
1467
+ result += f"**{name}**:\n"
1468
+ desc = config.metadata.get("description", "")
1469
+ if desc:
1470
+ result += f"{desc}\n"
1471
+ result += "\n"
1472
+
1473
+ result += "Use the `Delegate` tool with the sub-agent name to delegate tasks.\n"
1474
+ result += "</context>"
1475
+ return result
1476
+ except Exception as e:
1477
+ self.io.tool_error(f"Error generating sub-agents context: {str(e)}")
1478
+ return None
1479
+
1380
1480
  def get_background_command_output(self):
1381
1481
  """
1382
1482
  Get background command output to append after the main message.