cecli-dev 0.100.0rc8__tar.gz → 0.100.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (654) hide show
  1. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/PKG-INFO +2 -2
  2. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/_version.py +3 -3
  3. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/agent_coder.py +9 -5
  4. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/base_coder.py +24 -5
  5. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/__init__.py +6 -0
  6. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/add.py +80 -6
  7. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/agent_model.py +1 -0
  8. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/clear.py +1 -0
  9. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/context_blocks.py +1 -0
  10. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/context_management.py +1 -0
  11. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/copy.py +1 -0
  12. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/copy_context.py +1 -0
  13. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/core.py +15 -4
  14. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/diff.py +1 -0
  15. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/drop.py +1 -0
  16. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/editor.py +1 -0
  17. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/editor_model.py +1 -0
  18. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/exclude_skill.py +1 -0
  19. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/exit.py +1 -0
  20. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/hooks.py +3 -2
  21. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/include_skill.py +1 -0
  22. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/invoke_agent.py +3 -0
  23. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/list_sessions.py +1 -0
  24. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/list_skills.py +1 -0
  25. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/load.py +1 -0
  26. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/load_hook.py +4 -3
  27. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/load_mcp.py +1 -0
  28. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/load_session.py +1 -0
  29. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/load_skill.py +1 -0
  30. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/ls.py +1 -0
  31. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/map.py +1 -0
  32. cecli_dev-0.100.1/cecli/commands/merge.py +194 -0
  33. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/model.py +1 -0
  34. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/models.py +1 -0
  35. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/paste.py +1 -0
  36. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/read_only.py +1 -0
  37. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/read_only_stub.py +1 -0
  38. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/reap_agent.py +1 -0
  39. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/remove_hook.py +4 -3
  40. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/remove_mcp.py +1 -0
  41. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/remove_skill.py +1 -0
  42. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/reset.py +1 -0
  43. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/run.py +39 -1
  44. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/save.py +1 -0
  45. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/save_session.py +1 -0
  46. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/settings.py +1 -0
  47. cecli_dev-0.100.1/cecli/commands/switch_agent.py +122 -0
  48. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/think_tokens.py +1 -0
  49. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/tokens.py +1 -0
  50. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/undo.py +1 -0
  51. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/utils/base_command.py +1 -0
  52. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/voice.py +1 -0
  53. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/weak_model.py +1 -0
  54. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/agents/config.py +6 -1
  55. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/agents/service.py +48 -3
  56. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/skills.py +26 -3
  57. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/hooks/__init__.py +2 -0
  58. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/hooks/integration.py +28 -14
  59. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/hooks/manager.py +56 -88
  60. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/hooks/registry.py +62 -5
  61. cecli_dev-0.100.1/cecli/hooks/service.py +65 -0
  62. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/io.py +2 -1
  63. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/main.py +14 -11
  64. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/models.py +6 -3
  65. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/run_cmd.py +65 -5
  66. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/command.py +5 -3
  67. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/delegate.py +1 -1
  68. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/read_range.py +2 -2
  69. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tui/app.py +73 -0
  70. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tui/io.py +2 -1
  71. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tui/widgets/input_container.py +18 -6
  72. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tui/worker.py +14 -1
  73. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/config/agent-mode.md +8 -0
  74. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/config/hooks.md +11 -1
  75. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/config/subagents.md +31 -0
  76. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/usage/commands.md +1 -0
  77. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli_dev.egg-info/PKG-INFO +2 -2
  78. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli_dev.egg-info/SOURCES.txt +5 -0
  79. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli_dev.egg-info/requires.txt +3 -1
  80. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/pyproject.toml +3 -0
  81. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/requirements/requirements-dev.in +1 -1
  82. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/requirements/requirements-dev.txt +21 -9
  83. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/requirements/requirements-help.txt +20 -18
  84. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/requirements/requirements-playwright.txt +1 -1
  85. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/pip-compile.sh +1 -0
  86. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_models.py +2 -0
  87. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_run_cmd.py +2 -2
  88. cecli_dev-0.100.1/tests/commands/test_compaction.py +105 -0
  89. cecli_dev-0.100.1/tests/commands/test_switch_agent.py +104 -0
  90. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/helpers/monorepo/test_repomap_workspace.py +4 -0
  91. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/hooks/test_manager.py +116 -83
  92. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/hooks/test_registry.py +25 -13
  93. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/subagents/test_service.py +2 -2
  94. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/.dockerignore +0 -0
  95. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/.flake8 +0 -0
  96. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/.gitattributes +0 -0
  97. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  98. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/.github/workflows/check_pypi_version.yml +0 -0
  99. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/.github/workflows/docker-build-test.yml +0 -0
  100. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/.github/workflows/docker-release.yml +0 -0
  101. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/.github/workflows/issues.yml +0 -0
  102. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/.github/workflows/pages.yml +0 -0
  103. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/.github/workflows/pre-commit.yml +0 -0
  104. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/.github/workflows/release.yml +0 -0
  105. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/.github/workflows/ubuntu-tests.yml +0 -0
  106. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/.github/workflows/windows-tests.yml +0 -0
  107. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/.github/workflows/windows_check_pypi_version.yml +0 -0
  108. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/.gitignore +0 -0
  109. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/.pre-commit-config.yaml +0 -0
  110. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/CHANGELOG.md +0 -0
  111. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/CNAME +0 -0
  112. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/CONTRIBUTING.md +0 -0
  113. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/HISTORY.md +0 -0
  114. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/LICENSE.txt +0 -0
  115. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/MANIFEST.in +0 -0
  116. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/README.md +0 -0
  117. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/Dockerfile +0 -0
  118. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/README.md +0 -0
  119. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/__init__.py +0 -0
  120. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/benchmark.py +0 -0
  121. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/benchmark_classic.py +0 -0
  122. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/clone-exercism.sh +0 -0
  123. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/cpp-test.sh +0 -0
  124. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/docker.sh +0 -0
  125. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/docker_build.sh +0 -0
  126. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/install-docker-ubuntu.sh +0 -0
  127. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/npm-test.sh +0 -0
  128. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/over_time.py +0 -0
  129. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/plot.sh +0 -0
  130. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/plots.py +0 -0
  131. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/problem_stats.py +0 -0
  132. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/prompts.py +0 -0
  133. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/refactor_tools.py +0 -0
  134. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/rsync.sh +0 -0
  135. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/rungrid.py +0 -0
  136. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/swe-bench-lite.txt +0 -0
  137. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/swe-bench.txt +0 -0
  138. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/swe_bench.py +0 -0
  139. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/test_benchmark.py +0 -0
  140. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/variations.1.sh +0 -0
  141. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/variations.2.sh +0 -0
  142. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/variations.3.sh +0 -0
  143. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/benchmark/variations.4.sh +0 -0
  144. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/__init__.py +0 -0
  145. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/__main__.py +0 -0
  146. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/args.py +0 -0
  147. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/args_formatter.py +0 -0
  148. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/change_tracker.py +0 -0
  149. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/__init__.py +0 -0
  150. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/architect_coder.py +0 -0
  151. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/ask_coder.py +0 -0
  152. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/chat_chunks.py +0 -0
  153. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/context_coder.py +0 -0
  154. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/copypaste_coder.py +0 -0
  155. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/editblock_coder.py +0 -0
  156. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/editblock_fenced_coder.py +0 -0
  157. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/editblock_func_coder.py +0 -0
  158. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  159. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/editor_editblock_coder.py +0 -0
  160. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/editor_whole_coder.py +0 -0
  161. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/hashline_coder.py +0 -0
  162. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/help_coder.py +0 -0
  163. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/patch_coder.py +0 -0
  164. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/search_replace.py +0 -0
  165. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/shell.py +0 -0
  166. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/single_wholefile_func_coder.py +0 -0
  167. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/sub_agent_coder.py +0 -0
  168. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/udiff_coder.py +0 -0
  169. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/udiff_simple.py +0 -0
  170. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/wholefile_coder.py +0 -0
  171. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/coders/wholefile_func_coder.py +0 -0
  172. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/agent.py +0 -0
  173. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/architect.py +0 -0
  174. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/ask.py +0 -0
  175. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/chat_mode.py +0 -0
  176. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/code.py +0 -0
  177. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/command_prefix.py +0 -0
  178. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/commit.py +0 -0
  179. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/compact.py +0 -0
  180. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/context.py +0 -0
  181. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/git.py +0 -0
  182. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/hashline.py +0 -0
  183. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/help.py +0 -0
  184. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/history_search.py +0 -0
  185. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/lint.py +0 -0
  186. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/map_refresh.py +0 -0
  187. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/multiline_mode.py +0 -0
  188. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/quit.py +0 -0
  189. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/reasoning_effort.py +0 -0
  190. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/report.py +0 -0
  191. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/rules.py +0 -0
  192. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/spawn_agent.py +0 -0
  193. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/terminal_data/linux.keytab +0 -0
  194. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/terminal_setup.py +0 -0
  195. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/test.py +0 -0
  196. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/utils/__init__.py +0 -0
  197. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/utils/helpers.py +0 -0
  198. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/utils/registry.py +0 -0
  199. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/utils/save_load_manager.py +0 -0
  200. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/web.py +0 -0
  201. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/commands/workspace.py +0 -0
  202. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/deprecated_args.py +0 -0
  203. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/diffs.py +0 -0
  204. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/dump.py +0 -0
  205. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/editor.py +0 -0
  206. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/exceptions.py +0 -0
  207. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/format_settings.py +0 -0
  208. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/help.py +0 -0
  209. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/help_pats.py +0 -0
  210. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/__init__.py +0 -0
  211. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/agents/__init__.py +0 -0
  212. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/background_commands.py +0 -0
  213. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/command_parser.py +0 -0
  214. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/conversation/__init__.py +0 -0
  215. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/conversation/base_message.py +0 -0
  216. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/conversation/files.py +0 -0
  217. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/conversation/integration.py +0 -0
  218. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/conversation/manager.py +0 -0
  219. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/conversation/service.py +0 -0
  220. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/conversation/tags.py +0 -0
  221. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/conversation/utils.py +0 -0
  222. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/copypaste.py +0 -0
  223. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/coroutines.py +0 -0
  224. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/file_searcher.py +0 -0
  225. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/grep_ast/__init__.py +0 -0
  226. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/grep_ast/dump.py +0 -0
  227. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/grep_ast/grep_ast.py +0 -0
  228. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/grep_ast/main.py +0 -0
  229. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/grep_ast/parsers.py +0 -0
  230. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/grep_ast/tsl.py +0 -0
  231. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/hashline.py +0 -0
  232. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/hashpos/__init__.py +0 -0
  233. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/hashpos/hashpos.py +0 -0
  234. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/io_proxy.py +0 -0
  235. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/leak_detect.py +0 -0
  236. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/model_providers.py +0 -0
  237. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/monorepo/__init__.py +0 -0
  238. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/monorepo/config.py +0 -0
  239. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/monorepo/project.py +0 -0
  240. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/monorepo/workspace.py +0 -0
  241. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/monorepo/worktree.py +0 -0
  242. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/nested.py +0 -0
  243. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/observations/__init__.py +0 -0
  244. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/observations/service.py +0 -0
  245. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/plugin_manager.py +0 -0
  246. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/profiler.py +0 -0
  247. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/requests.py +0 -0
  248. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/responses.py +0 -0
  249. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/helpers/similarity.py +0 -0
  250. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/history.py +0 -0
  251. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/hooks/base.py +0 -0
  252. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/hooks/types.py +0 -0
  253. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/interruptible_input.py +0 -0
  254. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/linter.py +0 -0
  255. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/llm.py +0 -0
  256. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/mcp/__init__.py +0 -0
  257. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/mcp/manager.py +0 -0
  258. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/mcp/oauth.py +0 -0
  259. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/mcp/server.py +0 -0
  260. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/mcp/utils.py +0 -0
  261. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/mdstream.py +0 -0
  262. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/onboarding.py +0 -0
  263. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/__init__.py +0 -0
  264. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/agent.yml +0 -0
  265. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/architect.yml +0 -0
  266. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/ask.yml +0 -0
  267. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/base.yml +0 -0
  268. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/context.yml +0 -0
  269. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/copypaste.yml +0 -0
  270. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/editblock.yml +0 -0
  271. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/editblock_fenced.yml +0 -0
  272. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/editblock_func.yml +0 -0
  273. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/editor_diff_fenced.yml +0 -0
  274. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/editor_editblock.yml +0 -0
  275. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/editor_whole.yml +0 -0
  276. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/hashline.yml +0 -0
  277. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/help.yml +0 -0
  278. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/patch.yml +0 -0
  279. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/single_wholefile_func.yml +0 -0
  280. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/subagent.yml +0 -0
  281. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/udiff.yml +0 -0
  282. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/udiff_simple.yml +0 -0
  283. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/utils/__init__.py +0 -0
  284. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/utils/registry.py +0 -0
  285. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/utils/system.py +0 -0
  286. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/wholefile.yml +0 -0
  287. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/prompts/wholefile_func.yml +0 -0
  288. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  289. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  290. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
  291. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  292. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  293. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  294. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  295. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  296. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  297. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  298. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  299. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  300. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  301. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  302. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  303. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  304. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  305. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  306. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  307. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  308. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  309. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  310. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  311. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  312. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  313. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  314. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  315. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  316. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  317. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  318. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  319. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  320. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/README.md +0 -0
  321. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
  322. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  323. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  324. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  325. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  326. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  327. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  328. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  329. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  330. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  331. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  332. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  333. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  334. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  335. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  336. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  337. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  338. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  339. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  340. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  341. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  342. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  343. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  344. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  345. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  346. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  347. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  348. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/reasoning_tags.py +0 -0
  349. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/repo.py +0 -0
  350. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/repomap.py +0 -0
  351. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/report.py +0 -0
  352. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/resources/__init__.py +0 -0
  353. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/resources/model-metadata.json +0 -0
  354. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/resources/model-settings.yml +0 -0
  355. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/resources/providers.json +0 -0
  356. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/scrape.py +0 -0
  357. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/sendchat.py +0 -0
  358. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/sessions.py +0 -0
  359. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/special.py +0 -0
  360. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/__init__.py +0 -0
  361. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/command_interactive.py +0 -0
  362. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/context_manager.py +0 -0
  363. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/edit_text.py +0 -0
  364. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/explore_code.py +0 -0
  365. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/finished.py +0 -0
  366. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/git_branch.py +0 -0
  367. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/git_diff.py +0 -0
  368. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/git_log.py +0 -0
  369. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/git_remote.py +0 -0
  370. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/git_show.py +0 -0
  371. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/git_status.py +0 -0
  372. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/grep.py +0 -0
  373. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/load_skill.py +0 -0
  374. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/ls.py +0 -0
  375. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/remove_skill.py +0 -0
  376. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/thinking.py +0 -0
  377. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/undo_change.py +0 -0
  378. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/update_todo_list.py +0 -0
  379. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/utils/base_tool.py +0 -0
  380. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/utils/helpers.py +0 -0
  381. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/utils/output.py +0 -0
  382. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tools/utils/registry.py +0 -0
  383. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tui/__init__.py +0 -0
  384. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tui/styles.tcss +0 -0
  385. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tui/widgets/__init__.py +0 -0
  386. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tui/widgets/completion_bar.py +0 -0
  387. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tui/widgets/file_list.py +0 -0
  388. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tui/widgets/footer.py +0 -0
  389. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tui/widgets/input_area.py +0 -0
  390. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tui/widgets/key_hints.py +0 -0
  391. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tui/widgets/output.py +0 -0
  392. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tui/widgets/status_bar.py +0 -0
  393. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/tui/widgets/subagent_pills.py +0 -0
  394. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/urls.py +0 -0
  395. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/utils.py +0 -0
  396. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/versioncheck.py +0 -0
  397. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/voice.py +0 -0
  398. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/waiting.py +0 -0
  399. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/watch.py +0 -0
  400. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/watch_prompts.py +0 -0
  401. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/Gemfile +0 -0
  402. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/_includes/blame.md +0 -0
  403. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/_includes/get-started.md +0 -0
  404. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/_includes/help-tip.md +0 -0
  405. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/_includes/help.md +0 -0
  406. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/_includes/install.md +0 -0
  407. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/_includes/keys.md +0 -0
  408. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/_includes/model-warnings.md +0 -0
  409. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/_includes/multi-line.md +0 -0
  410. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/_includes/python-m-aider.md +0 -0
  411. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/_includes/recording.css +0 -0
  412. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/_includes/recording.md +0 -0
  413. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/_includes/works-best.md +0 -0
  414. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/_sass/_features.scss +0 -0
  415. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/_sass/_footer.scss +0 -0
  416. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/_sass/_hero.scss +0 -0
  417. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/_sass/_info.scss +0 -0
  418. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/_sass/_layout.scss +0 -0
  419. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/_sass/_reset.scss +0 -0
  420. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/_sass/_testimonials.scss +0 -0
  421. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/_sass/_typography.scss +0 -0
  422. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/_sass/_variables.scss +0 -0
  423. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/_sass/custom/custom.scss +0 -0
  424. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/_sass/global-overrides.scss +0 -0
  425. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/config/adv-model-settings.md +0 -0
  426. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/config/aider_conf.md +0 -0
  427. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/config/api-keys.md +0 -0
  428. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/config/custom-commands.md +0 -0
  429. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  430. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/config/dotenv.md +0 -0
  431. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/config/editor.md +0 -0
  432. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/config/mcp.md +0 -0
  433. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/config/model-aliases.md +0 -0
  434. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/config/options.md +0 -0
  435. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/config/reasoning.md +0 -0
  436. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/config/security.md +0 -0
  437. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/config/skills.md +0 -0
  438. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/config/tui.md +0 -0
  439. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/config/workspaces.md +0 -0
  440. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/config.md +0 -0
  441. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/faq.md +0 -0
  442. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/git.md +0 -0
  443. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/index.md +0 -0
  444. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/install/docker.md +0 -0
  445. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/install/optional.md +0 -0
  446. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/install.md +0 -0
  447. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/languages.md +0 -0
  448. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  449. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/legal/privacy.md +0 -0
  450. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/llms/anthropic.md +0 -0
  451. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/llms/azure.md +0 -0
  452. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/llms/bedrock.md +0 -0
  453. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/llms/cohere.md +0 -0
  454. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/llms/deepseek.md +0 -0
  455. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/llms/gemini.md +0 -0
  456. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/llms/github.md +0 -0
  457. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/llms/groq.md +0 -0
  458. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/llms/lm-studio.md +0 -0
  459. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/llms/ollama.md +0 -0
  460. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/llms/openai-compat.md +0 -0
  461. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/llms/openai.md +0 -0
  462. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/llms/openrouter.md +0 -0
  463. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/llms/other.md +0 -0
  464. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/llms/vertex.md +0 -0
  465. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/llms/warnings.md +0 -0
  466. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/llms/xai.md +0 -0
  467. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/llms.md +0 -0
  468. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/more/analytics.md +0 -0
  469. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/more/edit-formats.md +0 -0
  470. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/more/infinite-output.md +0 -0
  471. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/more-info.md +0 -0
  472. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/repomap.md +0 -0
  473. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/scripting.md +0 -0
  474. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
  475. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  476. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/troubleshooting/imports.md +0 -0
  477. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  478. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/troubleshooting/support.md +0 -0
  479. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  480. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  481. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/troubleshooting.md +0 -0
  482. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/usage/conventions.md +0 -0
  483. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/usage/copypaste.md +0 -0
  484. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/usage/images-urls.md +0 -0
  485. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/usage/lint-test.md +0 -0
  486. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/usage/modes.md +0 -0
  487. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/usage/not-code.md +0 -0
  488. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/usage/notifications.md +0 -0
  489. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/usage/sessions.md +0 -0
  490. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/usage/tips.md +0 -0
  491. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/usage/voice.md +0 -0
  492. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/usage/watch.md +0 -0
  493. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/docs/usage.md +0 -0
  494. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli/website/share/index.md +0 -0
  495. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli_dev.egg-info/dependency_links.txt +0 -0
  496. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli_dev.egg-info/entry_points.txt +0 -0
  497. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/cecli_dev.egg-info/top_level.txt +0 -0
  498. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/docker/Dockerfile +0 -0
  499. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  500. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/pytest.ini +0 -0
  501. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/requirements/common-constraints.txt +0 -0
  502. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/requirements/requirements-help.in +0 -0
  503. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/requirements/requirements-playwright.in +0 -0
  504. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/requirements/requirements.in +0 -0
  505. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/requirements/tree-sitter.in +0 -0
  506. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/requirements.txt +0 -0
  507. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/30k-image.py +0 -0
  508. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/Dockerfile.jekyll +0 -0
  509. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/__init__.py +0 -0
  510. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/blame.py +0 -0
  511. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/clean_metadata.py +0 -0
  512. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/cost_analyzer.py +0 -0
  513. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/cost_calculator.py +0 -0
  514. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/dl_icons.py +0 -0
  515. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/filter-chat-mode.js +0 -0
  516. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/generate_providers.py +0 -0
  517. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/get_contributor_list.js +0 -0
  518. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/get_hashline.py +0 -0
  519. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/history_prompts.py +0 -0
  520. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/homepage.py +0 -0
  521. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/issues.py +0 -0
  522. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/jekyll_build.sh +0 -0
  523. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/jekyll_run.sh +0 -0
  524. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/logo_svg.py +0 -0
  525. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/recording_audio.py +0 -0
  526. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/redact-cast.py +0 -0
  527. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/rename_to_cecli.py +0 -0
  528. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/tmux_record.sh +0 -0
  529. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/tsl_pack_langs.py +0 -0
  530. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/update-blame.sh +0 -0
  531. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/update-docs.sh +0 -0
  532. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/update-history.py +0 -0
  533. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/versionbump.py +0 -0
  534. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/scripts/yank-old-versions.py +0 -0
  535. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/setup.cfg +0 -0
  536. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/shim.pyproject.toml +0 -0
  537. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/__init__.py +0 -0
  538. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/__init__.py +0 -0
  539. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_aws_credentials.py +0 -0
  540. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_background_commands.py +0 -0
  541. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_coder.py +0 -0
  542. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_commands.py +0 -0
  543. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_custom_commands.py +0 -0
  544. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_deprecated.py +0 -0
  545. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_editblock.py +0 -0
  546. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_editor.py +0 -0
  547. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_exceptions.py +0 -0
  548. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_find_or_blocks.py +0 -0
  549. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_hashline.py +0 -0
  550. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_history.py +0 -0
  551. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_io.py +0 -0
  552. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_linter.py +0 -0
  553. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_main.py +0 -0
  554. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_model_info_manager.py +0 -0
  555. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_model_provider_manager.py +0 -0
  556. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_onboarding.py +0 -0
  557. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_plugin_manager.py +0 -0
  558. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_prompts.py +0 -0
  559. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_reasoning.py +0 -0
  560. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_repo.py +0 -0
  561. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_repomap.py +0 -0
  562. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_sanity_check_repo.py +0 -0
  563. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_scripting.py +0 -0
  564. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_sendchat.py +0 -0
  565. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_sessions.py +0 -0
  566. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_skills.py +0 -0
  567. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_special.py +0 -0
  568. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_ssl_verification.py +0 -0
  569. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_udiff.py +0 -0
  570. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_urls.py +0 -0
  571. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_voice.py +0 -0
  572. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_watch.py +0 -0
  573. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/basic/test_wholefile.py +0 -0
  574. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/coders/test_coder_switching.py +0 -0
  575. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/coders/test_copypaste_coder.py +0 -0
  576. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/conftest.py +0 -0
  577. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/conversations/test_conversation_integration.py +0 -0
  578. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/conversations/test_conversation_system.py +0 -0
  579. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  580. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/chat-history.md +0 -0
  581. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/arduino/test.ino +0 -0
  582. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/bash/test.sh +0 -0
  583. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/c/test.c +0 -0
  584. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/chatito/test.chatito +0 -0
  585. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/clojure/test.clj +0 -0
  586. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  587. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/cpp/test.cpp +0 -0
  588. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/csharp/test.cs +0 -0
  589. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/d/test.d +0 -0
  590. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/dart/test.dart +0 -0
  591. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/elisp/test.el +0 -0
  592. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/elixir/test.ex +0 -0
  593. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/elm/test.elm +0 -0
  594. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/gleam/test.gleam +0 -0
  595. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/go/test.go +0 -0
  596. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/haskell/test.hs +0 -0
  597. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/hcl/test.tf +0 -0
  598. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/java/test.java +0 -0
  599. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/javascript/test.js +0 -0
  600. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/kotlin/test.kt +0 -0
  601. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/lua/test.lua +0 -0
  602. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/matlab/test.m +0 -0
  603. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/ocaml/test.ml +0 -0
  604. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  605. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/php/test.php +0 -0
  606. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/pony/test.pony +0 -0
  607. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/properties/test.properties +0 -0
  608. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/python/test.py +0 -0
  609. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/ql/test.ql +0 -0
  610. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/r/test.r +0 -0
  611. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/racket/test.rkt +0 -0
  612. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/ruby/test.rb +0 -0
  613. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/rust/test.rs +0 -0
  614. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/scala/test.scala +0 -0
  615. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/solidity/test.sol +0 -0
  616. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/swift/test.swift +0 -0
  617. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/tsx/test.tsx +0 -0
  618. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/typescript/test.ts +0 -0
  619. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/udev/test.rules +0 -0
  620. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/languages/zig/test.zig +0 -0
  621. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/sample-code-base/sample.js +0 -0
  622. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/sample-code-base/sample.py +0 -0
  623. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  624. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/watch.js +0 -0
  625. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/watch.lisp +0 -0
  626. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/watch.py +0 -0
  627. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/fixtures/watch_question.js +0 -0
  628. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/help/test_help.py +0 -0
  629. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/helpers/monorepo/test_config.py +0 -0
  630. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/helpers/monorepo/test_config_active.py +0 -0
  631. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
  632. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/helpers/monorepo/test_workspace.py +0 -0
  633. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/helpers/observations/test_observation_service.py +0 -0
  634. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/hooks/__init__.py +0 -0
  635. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/hooks/test_base.py +0 -0
  636. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/mcp/__init__.py +0 -0
  637. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/mcp/test_manager.py +0 -0
  638. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/scrape/test_playwright_disable.py +0 -0
  639. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/scrape/test_scrape.py +0 -0
  640. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/subagents/__init__.py +0 -0
  641. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/subagents/conftest.py +0 -0
  642. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/subagents/test_commands.py +0 -0
  643. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/subagents/test_config.py +0 -0
  644. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/subagents/test_delegate.py +0 -0
  645. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/subagents/test_finished.py +0 -0
  646. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/subagents/test_io_proxy.py +0 -0
  647. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/subagents/test_sub_agent_coder.py +0 -0
  648. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/tools/test_get_lines.py +0 -0
  649. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/tools/test_git_branch.py +0 -0
  650. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/tools/test_git_diff.py +0 -0
  651. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/tools/test_grep.py +0 -0
  652. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/tools/test_insert_block.py +0 -0
  653. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/tests/tools/test_registry.py +0 -0
  654. {cecli_dev-0.100.0rc8 → cecli_dev-0.100.1}/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.0rc8
3
+ Version: 0.100.1
4
4
  Summary: we also can't pronounce cecli
5
5
  Project-URL: Homepage, https://github.com/dwash96/cecli
6
6
  Project-URL: Documentation, https://github.com/dwash96/cecli
@@ -76,7 +76,7 @@ Requires-Dist: cogapp; extra == "dev"
76
76
  Requires-Dist: semver; extra == "dev"
77
77
  Requires-Dist: codespell; extra == "dev"
78
78
  Requires-Dist: uv; extra == "dev"
79
- Requires-Dist: memray; extra == "dev"
79
+ Requires-Dist: memray; sys_platform != "win32" and extra == "dev"
80
80
  Requires-Dist: objgraph; extra == "dev"
81
81
  Requires-Dist: pympler; extra == "dev"
82
82
  Requires-Dist: guppy3; extra == "dev"
@@ -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.0rc8'
22
- __version_tuple__ = version_tuple = (0, 100, 0, 'rc8')
21
+ __version__ = version = '0.100.1'
22
+ __version_tuple__ = version_tuple = (0, 100, 1)
23
23
 
24
- __commit_id__ = commit_id = 'g4af9ad954'
24
+ __commit_id__ = commit_id = 'g855931cff'
@@ -76,7 +76,7 @@ class AgentCoder(Coder):
76
76
  "edittext",
77
77
  "undochange",
78
78
  }
79
- self.edit_allowed = False
79
+ self.edit_allowed = True
80
80
  self.max_tool_calls = 10000
81
81
  self.large_file_token_threshold = 8192
82
82
  self.skills_manager = None
@@ -207,6 +207,7 @@ class AgentCoder(Coder):
207
207
  config["skills_excludelist"] = nested.getter(
208
208
  config, ["skills_excludelist", "skills_blacklist"], []
209
209
  )
210
+ config["skills_init"] = nested.getter(config, ["skills_init", "skills_startup"], [])
210
211
 
211
212
  if "skills" not in self.allowed_context_blocks or not nested.getter(
212
213
  config, "skills_paths", []
@@ -227,6 +228,7 @@ class AgentCoder(Coder):
227
228
  directory_paths=config.get("skills_paths", []),
228
229
  include_list=config.get("skills_includelist", []),
229
230
  exclude_list=config.get("skills_excludelist", []),
231
+ initialize_list=config.get("skills_init", []),
230
232
  git_root=git_root,
231
233
  coder=self,
232
234
  )
@@ -246,6 +248,12 @@ class AgentCoder(Coder):
246
248
  joined_skills = ", ".join(skills_list)
247
249
  self.io.tool_output(f"Available Skills: {joined_skills}")
248
250
 
251
+ registry = AgentService.get_registry()
252
+ if registry:
253
+ names = sorted(registry.keys())
254
+ joined_names = ", ".join(names)
255
+ self.io.tool_output(f"Available Subagents: {joined_names}")
256
+
249
257
  def get_local_tool_schemas(self):
250
258
  """Returns the JSON schemas for all local tools using the tool registry."""
251
259
  schemas = []
@@ -503,8 +511,6 @@ class AgentCoder(Coder):
503
511
  # For primary agents, use the default system messages flow
504
512
  needs_system_prompts = True
505
513
  if hasattr(self, "parent_uuid") and self.parent_uuid:
506
- from cecli.helpers.agents.service import AgentService
507
-
508
514
  service = AgentService.get_instance(self)
509
515
  info = service.sub_agents.get(self.uuid)
510
516
  if info:
@@ -1468,8 +1474,6 @@ Todo list does not exist. Please update it with the `UpdateTodoList` tool.</cont
1468
1474
  if hasattr(self, "parent_uuid") and self.parent_uuid:
1469
1475
  return None
1470
1476
  try:
1471
- from cecli.helpers.agents.service import AgentService
1472
-
1473
1477
  registry = AgentService.get_registry()
1474
1478
  if not registry:
1475
1479
  return None
@@ -1642,9 +1642,14 @@ class Coder(metaclass=UsageMeta):
1642
1642
 
1643
1643
  try:
1644
1644
  if self.enable_context_compaction:
1645
- self.compact_context_completed = False
1646
- await self.compact_context_if_needed()
1647
- self.compact_context_completed = True
1645
+ # Skip compaction if the user wants to clear or exit
1646
+ # Compacting is wasteful since /clear will clear everything
1647
+ # and /exit will exit the application
1648
+ stripped = user_message.strip()
1649
+ if stripped not in ("/clear", "/reset", "/exit", "/quit"):
1650
+ self.compact_context_completed = False
1651
+ await self.compact_context_if_needed()
1652
+ self.compact_context_completed = True
1648
1653
 
1649
1654
  self.run_one_completed = False
1650
1655
  await self.run_one(user_message, preproc)
@@ -1688,13 +1693,27 @@ class Coder(metaclass=UsageMeta):
1688
1693
  inp = inp.strip()
1689
1694
 
1690
1695
  if self.commands.is_command(inp):
1696
+ run_kwargs = {}
1691
1697
  if inp[0] in "!":
1692
- inp = f"/run {inp[1:]}"
1698
+ # Count and strip all leading exclamation marks
1699
+ # "!command" -> normal execution
1700
+ # "!!command" -> suppress adding output to chat
1701
+ # "!!!command" -> background/obstructive mode (TUI suspended)
1702
+ num_marks = 0
1703
+ while num_marks < len(inp) and inp[num_marks] == "!":
1704
+ num_marks += 1
1705
+ command_text = inp[num_marks:]
1706
+ inp = f"/run {command_text}"
1707
+ if num_marks >= 3:
1708
+ run_kwargs["background"] = True
1709
+ run_kwargs["suppress_add"] = True
1710
+ elif num_marks == 2:
1711
+ run_kwargs["suppress_add"] = True
1693
1712
 
1694
1713
  if self.commands.is_run_command(inp):
1695
1714
  self.commands.cmd_running_event.clear() # Command is running
1696
1715
 
1697
- return await self.commands.run(inp, coder=self)
1716
+ return await self.commands.run(inp, coder=self, **run_kwargs)
1698
1717
 
1699
1718
  await self.check_for_file_mentions(inp)
1700
1719
  inp = await self.check_for_urls(inp)
@@ -45,6 +45,7 @@ from .load_skill import LoadSkillCommand
45
45
  from .ls import LsCommand
46
46
  from .map import MapCommand
47
47
  from .map_refresh import MapRefreshCommand
48
+ from .merge import MergeCommand
48
49
  from .model import ModelCommand
49
50
  from .models import ModelsCommand
50
51
  from .multiline_mode import MultilineModeCommand
@@ -65,6 +66,7 @@ from .save import SaveCommand
65
66
  from .save_session import SaveSessionCommand
66
67
  from .settings import SettingsCommand
67
68
  from .spawn_agent import SpawnAgentCommand
69
+ from .switch_agent import SwitchAgentCommand
68
70
  from .terminal_setup import TerminalSetupCommand
69
71
  from .test import TestCommand
70
72
  from .think_tokens import ThinkTokensCommand
@@ -118,6 +120,7 @@ CommandRegistry.register(HooksCommand)
118
120
  CommandRegistry.register(InvokeAgentCommand)
119
121
  CommandRegistry.register(ReapAgentCommand)
120
122
  CommandRegistry.register(SpawnAgentCommand)
123
+ CommandRegistry.register(SwitchAgentCommand)
121
124
  CommandRegistry.register(IncludeSkillCommand)
122
125
  CommandRegistry.register(LintCommand)
123
126
  CommandRegistry.register(ListSessionsCommand)
@@ -130,6 +133,7 @@ CommandRegistry.register(LoadSkillCommand)
130
133
  CommandRegistry.register(LsCommand)
131
134
  CommandRegistry.register(MapCommand)
132
135
  CommandRegistry.register(MapRefreshCommand)
136
+ CommandRegistry.register(MergeCommand)
133
137
  CommandRegistry.register(ModelCommand)
134
138
  CommandRegistry.register(ModelsCommand)
135
139
  CommandRegistry.register(MultilineModeCommand)
@@ -199,6 +203,7 @@ __all__ = [
199
203
  "InvokeAgentCommand",
200
204
  "ReapAgentCommand",
201
205
  "SpawnAgentCommand",
206
+ "SwitchAgentCommand",
202
207
  "LintCommand",
203
208
  "ListSessionsCommand",
204
209
  "ListSkillsCommand",
@@ -210,6 +215,7 @@ __all__ = [
210
215
  "LsCommand",
211
216
  "MapCommand",
212
217
  "MapRefreshCommand",
218
+ "MergeCommand",
213
219
  "ModelCommand",
214
220
  "ModelsCommand",
215
221
  "MultilineModeCommand",
@@ -16,6 +16,7 @@ from cecli.utils import is_image_file, run_fzf
16
16
  class AddCommand(BaseCommand):
17
17
  NORM_NAME = "add"
18
18
  DESCRIPTION = "Add files to the chat so cecli can edit them or review them in detail"
19
+ show_completion_notification = False
19
20
 
20
21
  @classmethod
21
22
  async def execute(cls, io, coder, args, **kwargs):
@@ -83,12 +84,9 @@ class AddCommand(BaseCommand):
83
84
  for matched_file in sorted(all_matched_files):
84
85
  abs_file_path = coder.abs_root_path(matched_file)
85
86
 
86
- if (
87
- coder.repo
88
- and coder.repo.git_ignored_file(matched_file)
89
- and not coder.add_gitignore_files
90
- ):
91
- io.tool_error(f"Can't add {matched_file} which is in gitignore")
87
+ blocked = cls._add_blocked_message(coder, matched_file)
88
+ if blocked:
89
+ io.tool_error(blocked)
92
90
  continue
93
91
 
94
92
  if abs_file_path in coder.abs_fnames:
@@ -239,3 +237,79 @@ class AddCommand(BaseCommand):
239
237
  help_text += "Files can be moved from read-only to editable status.\n"
240
238
  help_text += "Image files can be added if the model supports vision.\n"
241
239
  return help_text
240
+
241
+ @staticmethod
242
+ def _display_add_path(matched_file: str) -> str:
243
+ try:
244
+ label = os.path.relpath(matched_file)
245
+ except ValueError:
246
+ label = matched_file
247
+ if len(label) > 64:
248
+ label = f".../{os.path.basename(label)}"
249
+ return label
250
+
251
+ @staticmethod
252
+ def _git_repo_for_add_check(coder, matched_file: str):
253
+ """Resolve the GitRepo used for ignore checks (RepoSet-aware)."""
254
+ repo = coder.repo
255
+ if not repo:
256
+ return None, matched_file
257
+ if hasattr(repo, "repo_for_rel_path"):
258
+ git_repo = repo.repo_for_rel_path(matched_file)
259
+ try:
260
+ rel = repo.path_relative_to_repo(matched_file, git_repo)
261
+ except (ValueError, OSError):
262
+ rel = matched_file
263
+ return git_repo, rel
264
+ return repo, matched_file
265
+
266
+ @classmethod
267
+ def _add_blocked_message(cls, coder, matched_file: str) -> str | None:
268
+ """
269
+ Explain why /add refused a path. Distinguishes .gitignore vs .cecli.ignore when possible.
270
+ """
271
+ if not coder.repo or coder.add_gitignore_files:
272
+ return None
273
+ if not coder.repo.git_ignored_file(matched_file):
274
+ return None
275
+
276
+ display = cls._display_add_path(matched_file)
277
+ git_repo, rel = cls._git_repo_for_add_check(coder, matched_file)
278
+ if not git_repo:
279
+ return (
280
+ f"Can't add {display}: excluded by ignore rules for this session. "
281
+ "Confirm Settings \u2192 project folder is the git root for this file."
282
+ )
283
+
284
+ gitignore_hit = False
285
+ cecli_hit = False
286
+ if hasattr(git_repo, "_is_gitignored_by_pathspec"):
287
+ try:
288
+ gitignore_hit = bool(git_repo._is_gitignored_by_pathspec(rel))
289
+ except (ValueError, OSError):
290
+ gitignore_hit = False
291
+
292
+ ignore_file = getattr(git_repo, "cecli_ignore_file", None) or getattr(
293
+ git_repo, "aider_ignore_file", None
294
+ )
295
+ if ignore_file and Path(ignore_file).is_file() and hasattr(git_repo, "ignored_file_raw"):
296
+ try:
297
+ cecli_hit = bool(git_repo.ignored_file_raw(rel))
298
+ except (ValueError, OSError):
299
+ cecli_hit = False
300
+
301
+ if cecli_hit and not gitignore_hit:
302
+ return (
303
+ f"Can't add {display}: blocked by {Path(ignore_file).name} "
304
+ "(cecli ignore rules), not .gitignore."
305
+ )
306
+ if gitignore_hit:
307
+ return (
308
+ f"Can't add {display}: matched .gitignore under the session workspace. "
309
+ "If this is normal tracked source, check the project folder in Settings."
310
+ )
311
+ return (
312
+ f"Can't add {display}: excluded by ignore rules for this session "
313
+ "(.gitignore and/or cecli ignore). "
314
+ "Confirm the project folder is the git root that contains this file."
315
+ )
@@ -9,6 +9,7 @@ from cecli.helpers.conversation import ConversationService
9
9
  class AgentModelCommand(BaseCommand):
10
10
  NORM_NAME = "agent-model"
11
11
  DESCRIPTION = "Switch the Agent Model to a new LLM"
12
+ show_completion_notification = False
12
13
 
13
14
  @classmethod
14
15
  async def execute(cls, io, coder, args, **kwargs):
@@ -8,6 +8,7 @@ from cecli.helpers.observations.service import ObservationService
8
8
  class ClearCommand(BaseCommand):
9
9
  NORM_NAME = "clear"
10
10
  DESCRIPTION = "Clear the chat history"
11
+ show_completion_notification = False
11
12
 
12
13
  @classmethod
13
14
  async def execute(cls, io, coder, args, **kwargs):
@@ -7,6 +7,7 @@ from cecli.commands.utils.helpers import format_command_result
7
7
  class ContextBlocksCommand(BaseCommand):
8
8
  NORM_NAME = "context-blocks"
9
9
  DESCRIPTION = "Toggle enhanced context blocks or print a specific block"
10
+ show_completion_notification = False
10
11
 
11
12
  @classmethod
12
13
  async def execute(cls, io, coder, args, **kwargs):
@@ -8,6 +8,7 @@ from cecli.helpers.conversation import ConversationService, MessageTag
8
8
  class ContextManagementCommand(BaseCommand):
9
9
  NORM_NAME = "context-management"
10
10
  DESCRIPTION = "Toggle context management for large files"
11
+ show_completion_notification = False
11
12
 
12
13
  @classmethod
13
14
  async def execute(cls, io, coder, args, **kwargs):
@@ -10,6 +10,7 @@ from cecli.helpers.conversation import ConversationService
10
10
  class CopyCommand(BaseCommand):
11
11
  NORM_NAME = "copy"
12
12
  DESCRIPTION = "Copy the last assistant message to the clipboard"
13
+ show_completion_notification = False
13
14
 
14
15
  @classmethod
15
16
  async def execute(cls, io, coder, args, **kwargs):
@@ -10,6 +10,7 @@ from cecli.helpers.conversation import ConversationService, MessageTag
10
10
  class CopyContextCommand(BaseCommand):
11
11
  NORM_NAME = "copy-context"
12
12
  DESCRIPTION = "Copy the current chat context as markdown, suitable to paste into a web UI"
13
+ show_completion_notification = False
13
14
 
14
15
  @classmethod
15
16
  async def execute(cls, io, coder, args, **kwargs):
@@ -37,7 +37,7 @@ class Commands:
37
37
  scraper = None
38
38
 
39
39
  def clone(self):
40
- return Commands(
40
+ cloned = Commands(
41
41
  self.io,
42
42
  None,
43
43
  voice_language=self.voice_language,
@@ -50,6 +50,8 @@ class Commands:
50
50
  editor=self.editor,
51
51
  original_read_only_fnames=self.original_read_only_fnames,
52
52
  )
53
+ cloned.last_command_show_notification = self.last_command_show_notification
54
+ return cloned
53
55
 
54
56
  def __init__(
55
57
  self,
@@ -94,6 +96,7 @@ class Commands:
94
96
 
95
97
  self.cmd_running_event = asyncio.Event()
96
98
  self.cmd_running_event.set()
99
+ self.last_command_show_notification = True
97
100
 
98
101
  def _load_custom_commands(self, custom_commands):
99
102
  """
@@ -185,6 +188,8 @@ class Commands:
185
188
  if not command_class:
186
189
  active_coder.io.tool_output(f"Error: Command {cmd_name} not found.")
187
190
  return
191
+
192
+ self.last_command_show_notification = command_class.show_completion_notification
188
193
  self.cmd_running_event.clear()
189
194
 
190
195
  try:
@@ -227,7 +232,13 @@ class Commands:
227
232
  matching_commands = [cmd for cmd in all_commands if cmd.startswith(first_word)]
228
233
  return matching_commands, first_word, rest_inp
229
234
 
230
- async def run(self, inp, coder=None):
235
+ async def run(self, inp, coder=None, **kwargs):
236
+ if inp.startswith("!!!"):
237
+ return await self.execute(
238
+ "run", inp[3:], coder=coder, background=True, suppress_add=True
239
+ )
240
+ if inp.startswith("!!"):
241
+ return await self.execute("run", inp[2:], coder=coder, suppress_add=True)
231
242
  if inp.startswith("!"):
232
243
  return await self.execute("run", inp[1:], coder=coder)
233
244
  res = self.matching_commands(inp)
@@ -236,10 +247,10 @@ class Commands:
236
247
  matching_commands, first_word, rest_inp = res
237
248
  if len(matching_commands) == 1:
238
249
  command = matching_commands[0][1:]
239
- return await self.execute(command, rest_inp, coder=coder)
250
+ return await self.execute(command, rest_inp, coder=coder, **kwargs)
240
251
  elif first_word in matching_commands:
241
252
  command = first_word[1:]
242
- return await self.execute(command, rest_inp, coder=coder)
253
+ return await self.execute(command, rest_inp, coder=coder, **kwargs)
243
254
  elif len(matching_commands) > 1:
244
255
  self.io.tool_error(f"Ambiguous command: {', '.join(matching_commands)}")
245
256
  else:
@@ -8,6 +8,7 @@ from cecli.run_cmd import run_cmd
8
8
  class DiffCommand(BaseCommand):
9
9
  NORM_NAME = "diff"
10
10
  DESCRIPTION = "Display the diff of changes since the last message"
11
+ show_completion_notification = False
11
12
 
12
13
  @classmethod
13
14
  async def execute(cls, io, coder, args, **kwargs):
@@ -13,6 +13,7 @@ from cecli.commands.utils.helpers import (
13
13
  class DropCommand(BaseCommand):
14
14
  NORM_NAME = "drop"
15
15
  DESCRIPTION = "Remove files from the chat session to free up context space"
16
+ show_completion_notification = False
16
17
 
17
18
  @classmethod
18
19
  async def execute(cls, io, coder, args, **kwargs):
@@ -8,6 +8,7 @@ from cecli.editor import pipe_editor
8
8
  class EditorCommand(BaseCommand):
9
9
  NORM_NAME = "editor"
10
10
  DESCRIPTION = "Open an editor to write a prompt"
11
+ show_completion_notification = False
11
12
 
12
13
  @classmethod
13
14
  async def execute(cls, io, coder, args, **kwargs):
@@ -9,6 +9,7 @@ from cecli.helpers.conversation import ConversationService
9
9
  class EditorModelCommand(BaseCommand):
10
10
  NORM_NAME = "editor-model"
11
11
  DESCRIPTION = "Switch the Editor Model to a new LLM"
12
+ show_completion_notification = False
12
13
 
13
14
  @classmethod
14
15
  async def execute(cls, io, coder, args, **kwargs):
@@ -7,6 +7,7 @@ from cecli.commands.utils.helpers import format_command_result
7
7
  class ExcludeSkillCommand(BaseCommand):
8
8
  NORM_NAME = "exclude-skill"
9
9
  DESCRIPTION = "Exclude a skill by name (agent mode only)"
10
+ show_completion_notification = False
10
11
 
11
12
  @classmethod
12
13
  async def execute(cls, io, coder, args, **kwargs):
@@ -10,6 +10,7 @@ from cecli.commands.utils.helpers import format_command_result
10
10
  class ExitCommand(BaseCommand):
11
11
  NORM_NAME = "exit"
12
12
  DESCRIPTION = "Exit the application"
13
+ show_completion_notification = False
13
14
 
14
15
  @classmethod
15
16
  async def execute(cls, io, coder, args, **kwargs):
@@ -2,13 +2,14 @@ import argparse
2
2
  from typing import List
3
3
 
4
4
  from cecli.commands.utils.base_command import BaseCommand
5
- from cecli.hooks.manager import HookManager
5
+ from cecli.hooks.service import HookService
6
6
  from cecli.hooks.types import HookType
7
7
 
8
8
 
9
9
  class HooksCommand(BaseCommand):
10
10
  NORM_NAME = "hooks"
11
11
  DESCRIPTION = "List all registered hooks by type with their current state"
12
+ show_completion_notification = False
12
13
 
13
14
  @classmethod
14
15
  async def execute(cls, io, coder, args, **kwargs):
@@ -17,7 +18,7 @@ class HooksCommand(BaseCommand):
17
18
  parsed_args = cls._parse_args(args)
18
19
 
19
20
  # Get all hooks grouped by type
20
- hook_manager = HookManager()
21
+ hook_manager = HookService.get_manager(coder)
21
22
  all_hooks = hook_manager.get_all_hooks()
22
23
 
23
24
  # Apply type filter if specified
@@ -7,6 +7,7 @@ from cecli.commands.utils.helpers import format_command_result
7
7
  class IncludeSkillCommand(BaseCommand):
8
8
  NORM_NAME = "include-skill"
9
9
  DESCRIPTION = "Include a skill by name (agent mode only)"
10
+ show_completion_notification = False
10
11
 
11
12
  @classmethod
12
13
  async def execute(cls, io, coder, args, **kwargs):
@@ -6,6 +6,7 @@ from .utils.base_command import BaseCommand
6
6
  class InvokeAgentCommand(BaseCommand):
7
7
  NORM_NAME = "invoke-agent"
8
8
  DESCRIPTION = "Invoke a sub-agent with a prompt (blocking)"
9
+ show_completion_notification = False
9
10
 
10
11
  @classmethod
11
12
  async def execute(cls, io, coder, args, **kwargs):
@@ -25,9 +26,11 @@ class InvokeAgentCommand(BaseCommand):
25
26
  summary = await agent_service.invoke(name, prompt, blocking=True)
26
27
  if summary:
27
28
  from cecli.helpers.conversation.service import ConversationService
29
+ from cecli.helpers.conversation.tags import MessageTag
28
30
 
29
31
  ConversationService.get_manager(coder).add_message(
30
32
  message_dict=dict(role="user", content=summary),
33
+ tag=MessageTag.CUR,
31
34
  )
32
35
  io.tool_output(f"Sub-agent '{name}' completed:\n{summary}")
33
36
  else:
@@ -7,6 +7,7 @@ from cecli.commands.utils.helpers import format_command_result
7
7
  class ListSessionsCommand(BaseCommand):
8
8
  NORM_NAME = "list-sessions"
9
9
  DESCRIPTION = "List all saved sessions in .cecli/sessions/"
10
+ show_completion_notification = False
10
11
 
11
12
  @classmethod
12
13
  async def execute(cls, io, coder, args, **kwargs):
@@ -7,6 +7,7 @@ from cecli.commands.utils.helpers import format_command_result
7
7
  class ListSkillsCommand(BaseCommand):
8
8
  NORM_NAME = "list-skills"
9
9
  DESCRIPTION = "List all available skills with their states and file paths"
10
+ show_completion_notification = False
10
11
 
11
12
  @classmethod
12
13
  async def execute(cls, io, coder, args, **kwargs):
@@ -8,6 +8,7 @@ from cecli.commands.utils.save_load_manager import SaveLoadManager
8
8
  class LoadCommand(BaseCommand):
9
9
  NORM_NAME = "load"
10
10
  DESCRIPTION = "Load and execute commands from a file"
11
+ show_completion_notification = False
11
12
 
12
13
  @classmethod
13
14
  async def execute(cls, io, coder, args, **kwargs):
@@ -1,12 +1,13 @@
1
1
  from typing import List
2
2
 
3
3
  from cecli.commands.utils.base_command import BaseCommand
4
- from cecli.hooks.manager import HookManager
4
+ from cecli.hooks.service import HookService
5
5
 
6
6
 
7
7
  class LoadHookCommand(BaseCommand):
8
8
  NORM_NAME = "load-hook"
9
9
  DESCRIPTION = "Enable a specific hook by name"
10
+ show_completion_notification = False
10
11
 
11
12
  @classmethod
12
13
  async def execute(cls, io, coder, args, **kwargs):
@@ -16,7 +17,7 @@ class LoadHookCommand(BaseCommand):
16
17
  io.tool_error("Usage: /load-hook <hook-name>")
17
18
  return 1
18
19
  hook_names = args.strip().split()
19
- hook_manager = HookManager()
20
+ hook_manager = HookService.get_manager(coder)
20
21
  results = []
21
22
  errors = 0
22
23
 
@@ -41,7 +42,7 @@ class LoadHookCommand(BaseCommand):
41
42
  @classmethod
42
43
  def get_completions(cls, io, coder, args) -> List[str]:
43
44
  """Get completion options for load-hook command."""
44
- hook_manager = HookManager()
45
+ hook_manager = HookService.get_manager(coder)
45
46
  all_hooks = hook_manager.get_all_hooks()
46
47
 
47
48
  # Get all hook names
@@ -7,6 +7,7 @@ from cecli.commands.utils.helpers import format_command_result
7
7
  class LoadMcpCommand(BaseCommand):
8
8
  NORM_NAME = "load-mcp"
9
9
  DESCRIPTION = "Load MCP server(s) by name, or use '*' to load all enabled servers"
10
+ show_completion_notification = False
10
11
 
11
12
  @classmethod
12
13
  async def execute(cls, io, coder, args, **kwargs):
@@ -7,6 +7,7 @@ from cecli.commands.utils.helpers import format_command_result
7
7
  class LoadSessionCommand(BaseCommand):
8
8
  NORM_NAME = "load-session"
9
9
  DESCRIPTION = "Load a saved session by name or file path"
10
+ show_completion_notification = False
10
11
 
11
12
  @classmethod
12
13
  async def execute(cls, io, coder, args, **kwargs):
@@ -7,6 +7,7 @@ from cecli.commands.utils.helpers import format_command_result
7
7
  class LoadSkillCommand(BaseCommand):
8
8
  NORM_NAME = "load-skill"
9
9
  DESCRIPTION = "Load a skill by name (agent mode only)"
10
+ show_completion_notification = False
10
11
 
11
12
  @classmethod
12
13
  async def execute(cls, io, coder, args, **kwargs):
@@ -7,6 +7,7 @@ from cecli.commands.utils.helpers import format_command_result
7
7
  class LsCommand(BaseCommand):
8
8
  NORM_NAME = "ls"
9
9
  DESCRIPTION = "List all known files and indicate which are included in the chat session"
10
+ show_completion_notification = False
10
11
 
11
12
  @classmethod
12
13
  async def execute(cls, io, coder, args, **kwargs):
@@ -8,6 +8,7 @@ from cecli.helpers.conversation import ConversationService
8
8
  class MapCommand(BaseCommand):
9
9
  NORM_NAME = "map"
10
10
  DESCRIPTION = "Print out the current repository map"
11
+ show_completion_notification = False
11
12
 
12
13
  @classmethod
13
14
  async def execute(cls, io, coder, args, **kwargs):