cecli-dev 0.100.0rc9__tar.gz → 0.100.1rc1__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.0rc9 → cecli_dev-0.100.1rc1}/PKG-INFO +1 -1
  2. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/_version.py +3 -3
  3. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/agent_coder.py +2 -0
  4. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/base_coder.py +16 -2
  5. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/__init__.py +3 -0
  6. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/add.py +1 -0
  7. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/agent_model.py +1 -0
  8. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/clear.py +1 -0
  9. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/context_blocks.py +1 -0
  10. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/context_management.py +1 -0
  11. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/copy.py +1 -0
  12. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/copy_context.py +1 -0
  13. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/core.py +15 -4
  14. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/diff.py +1 -0
  15. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/drop.py +1 -0
  16. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/editor.py +1 -0
  17. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/editor_model.py +1 -0
  18. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/exclude_skill.py +1 -0
  19. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/exit.py +1 -0
  20. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/hooks.py +3 -2
  21. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/include_skill.py +1 -0
  22. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/invoke_agent.py +1 -0
  23. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/list_sessions.py +1 -0
  24. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/list_skills.py +1 -0
  25. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/load.py +1 -0
  26. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/load_hook.py +4 -3
  27. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/load_mcp.py +1 -0
  28. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/load_session.py +1 -0
  29. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/load_skill.py +1 -0
  30. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/ls.py +1 -0
  31. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/map.py +1 -0
  32. cecli_dev-0.100.1rc1/cecli/commands/merge.py +194 -0
  33. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/model.py +1 -0
  34. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/models.py +1 -0
  35. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/paste.py +1 -0
  36. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/read_only.py +1 -0
  37. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/read_only_stub.py +1 -0
  38. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/reap_agent.py +1 -0
  39. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/remove_hook.py +4 -3
  40. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/remove_mcp.py +1 -0
  41. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/remove_skill.py +1 -0
  42. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/reset.py +1 -0
  43. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/run.py +39 -1
  44. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/save.py +1 -0
  45. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/save_session.py +1 -0
  46. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/settings.py +1 -0
  47. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/think_tokens.py +1 -0
  48. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/tokens.py +1 -0
  49. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/undo.py +1 -0
  50. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/utils/base_command.py +1 -0
  51. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/voice.py +1 -0
  52. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/weak_model.py +1 -0
  53. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/agents/config.py +6 -1
  54. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/agents/service.py +48 -3
  55. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/skills.py +26 -3
  56. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/hooks/__init__.py +2 -0
  57. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/hooks/integration.py +28 -14
  58. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/hooks/manager.py +56 -88
  59. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/hooks/registry.py +62 -5
  60. cecli_dev-0.100.1rc1/cecli/hooks/service.py +65 -0
  61. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/io.py +2 -1
  62. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/main.py +14 -11
  63. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/run_cmd.py +16 -0
  64. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/delegate.py +1 -1
  65. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tui/io.py +2 -1
  66. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tui/worker.py +7 -1
  67. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/config/agent-mode.md +8 -0
  68. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/config/hooks.md +11 -1
  69. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/config/subagents.md +31 -0
  70. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli_dev.egg-info/PKG-INFO +1 -1
  71. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli_dev.egg-info/SOURCES.txt +2 -0
  72. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_run_cmd.py +2 -2
  73. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/hooks/test_manager.py +116 -83
  74. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/hooks/test_registry.py +25 -13
  75. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/subagents/test_service.py +2 -2
  76. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/.dockerignore +0 -0
  77. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/.flake8 +0 -0
  78. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/.gitattributes +0 -0
  79. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  80. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/.github/workflows/check_pypi_version.yml +0 -0
  81. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/.github/workflows/docker-build-test.yml +0 -0
  82. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/.github/workflows/docker-release.yml +0 -0
  83. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/.github/workflows/issues.yml +0 -0
  84. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/.github/workflows/pages.yml +0 -0
  85. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/.github/workflows/pre-commit.yml +0 -0
  86. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/.github/workflows/release.yml +0 -0
  87. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/.github/workflows/ubuntu-tests.yml +0 -0
  88. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/.github/workflows/windows-tests.yml +0 -0
  89. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/.github/workflows/windows_check_pypi_version.yml +0 -0
  90. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/.gitignore +0 -0
  91. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/.pre-commit-config.yaml +0 -0
  92. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/CHANGELOG.md +0 -0
  93. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/CNAME +0 -0
  94. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/CONTRIBUTING.md +0 -0
  95. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/HISTORY.md +0 -0
  96. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/LICENSE.txt +0 -0
  97. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/MANIFEST.in +0 -0
  98. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/README.md +0 -0
  99. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/Dockerfile +0 -0
  100. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/README.md +0 -0
  101. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/__init__.py +0 -0
  102. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/benchmark.py +0 -0
  103. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/benchmark_classic.py +0 -0
  104. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/clone-exercism.sh +0 -0
  105. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/cpp-test.sh +0 -0
  106. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/docker.sh +0 -0
  107. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/docker_build.sh +0 -0
  108. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/install-docker-ubuntu.sh +0 -0
  109. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/npm-test.sh +0 -0
  110. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/over_time.py +0 -0
  111. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/plot.sh +0 -0
  112. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/plots.py +0 -0
  113. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/problem_stats.py +0 -0
  114. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/prompts.py +0 -0
  115. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/refactor_tools.py +0 -0
  116. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/rsync.sh +0 -0
  117. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/rungrid.py +0 -0
  118. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/swe-bench-lite.txt +0 -0
  119. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/swe-bench.txt +0 -0
  120. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/swe_bench.py +0 -0
  121. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/test_benchmark.py +0 -0
  122. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/variations.1.sh +0 -0
  123. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/variations.2.sh +0 -0
  124. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/variations.3.sh +0 -0
  125. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/benchmark/variations.4.sh +0 -0
  126. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/__init__.py +0 -0
  127. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/__main__.py +0 -0
  128. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/args.py +0 -0
  129. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/args_formatter.py +0 -0
  130. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/change_tracker.py +0 -0
  131. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/__init__.py +0 -0
  132. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/architect_coder.py +0 -0
  133. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/ask_coder.py +0 -0
  134. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/chat_chunks.py +0 -0
  135. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/context_coder.py +0 -0
  136. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/copypaste_coder.py +0 -0
  137. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/editblock_coder.py +0 -0
  138. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/editblock_fenced_coder.py +0 -0
  139. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/editblock_func_coder.py +0 -0
  140. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  141. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/editor_editblock_coder.py +0 -0
  142. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/editor_whole_coder.py +0 -0
  143. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/hashline_coder.py +0 -0
  144. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/help_coder.py +0 -0
  145. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/patch_coder.py +0 -0
  146. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/search_replace.py +0 -0
  147. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/shell.py +0 -0
  148. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/single_wholefile_func_coder.py +0 -0
  149. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/sub_agent_coder.py +0 -0
  150. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/udiff_coder.py +0 -0
  151. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/udiff_simple.py +0 -0
  152. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/wholefile_coder.py +0 -0
  153. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/coders/wholefile_func_coder.py +0 -0
  154. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/agent.py +0 -0
  155. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/architect.py +0 -0
  156. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/ask.py +0 -0
  157. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/chat_mode.py +0 -0
  158. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/code.py +0 -0
  159. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/command_prefix.py +0 -0
  160. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/commit.py +0 -0
  161. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/compact.py +0 -0
  162. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/context.py +0 -0
  163. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/git.py +0 -0
  164. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/hashline.py +0 -0
  165. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/help.py +0 -0
  166. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/history_search.py +0 -0
  167. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/lint.py +0 -0
  168. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/map_refresh.py +0 -0
  169. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/multiline_mode.py +0 -0
  170. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/quit.py +0 -0
  171. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/reasoning_effort.py +0 -0
  172. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/report.py +0 -0
  173. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/rules.py +0 -0
  174. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/spawn_agent.py +0 -0
  175. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/switch_agent.py +0 -0
  176. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/terminal_data/linux.keytab +0 -0
  177. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/terminal_setup.py +0 -0
  178. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/test.py +0 -0
  179. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/utils/__init__.py +0 -0
  180. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/utils/helpers.py +0 -0
  181. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/utils/registry.py +0 -0
  182. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/utils/save_load_manager.py +0 -0
  183. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/web.py +0 -0
  184. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/commands/workspace.py +0 -0
  185. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/deprecated_args.py +0 -0
  186. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/diffs.py +0 -0
  187. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/dump.py +0 -0
  188. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/editor.py +0 -0
  189. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/exceptions.py +0 -0
  190. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/format_settings.py +0 -0
  191. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/help.py +0 -0
  192. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/help_pats.py +0 -0
  193. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/__init__.py +0 -0
  194. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/agents/__init__.py +0 -0
  195. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/background_commands.py +0 -0
  196. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/command_parser.py +0 -0
  197. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/conversation/__init__.py +0 -0
  198. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/conversation/base_message.py +0 -0
  199. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/conversation/files.py +0 -0
  200. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/conversation/integration.py +0 -0
  201. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/conversation/manager.py +0 -0
  202. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/conversation/service.py +0 -0
  203. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/conversation/tags.py +0 -0
  204. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/conversation/utils.py +0 -0
  205. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/copypaste.py +0 -0
  206. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/coroutines.py +0 -0
  207. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/file_searcher.py +0 -0
  208. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/grep_ast/__init__.py +0 -0
  209. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/grep_ast/dump.py +0 -0
  210. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/grep_ast/grep_ast.py +0 -0
  211. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/grep_ast/main.py +0 -0
  212. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/grep_ast/parsers.py +0 -0
  213. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/grep_ast/tsl.py +0 -0
  214. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/hashline.py +0 -0
  215. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/hashpos/__init__.py +0 -0
  216. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/hashpos/hashpos.py +0 -0
  217. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/io_proxy.py +0 -0
  218. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/leak_detect.py +0 -0
  219. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/model_providers.py +0 -0
  220. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/monorepo/__init__.py +0 -0
  221. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/monorepo/config.py +0 -0
  222. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/monorepo/project.py +0 -0
  223. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/monorepo/workspace.py +0 -0
  224. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/monorepo/worktree.py +0 -0
  225. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/nested.py +0 -0
  226. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/observations/__init__.py +0 -0
  227. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/observations/service.py +0 -0
  228. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/plugin_manager.py +0 -0
  229. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/profiler.py +0 -0
  230. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/requests.py +0 -0
  231. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/responses.py +0 -0
  232. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/helpers/similarity.py +0 -0
  233. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/history.py +0 -0
  234. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/hooks/base.py +0 -0
  235. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/hooks/types.py +0 -0
  236. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/interruptible_input.py +0 -0
  237. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/linter.py +0 -0
  238. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/llm.py +0 -0
  239. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/mcp/__init__.py +0 -0
  240. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/mcp/manager.py +0 -0
  241. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/mcp/oauth.py +0 -0
  242. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/mcp/server.py +0 -0
  243. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/mcp/utils.py +0 -0
  244. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/mdstream.py +0 -0
  245. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/models.py +0 -0
  246. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/onboarding.py +0 -0
  247. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/__init__.py +0 -0
  248. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/agent.yml +0 -0
  249. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/architect.yml +0 -0
  250. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/ask.yml +0 -0
  251. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/base.yml +0 -0
  252. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/context.yml +0 -0
  253. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/copypaste.yml +0 -0
  254. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/editblock.yml +0 -0
  255. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/editblock_fenced.yml +0 -0
  256. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/editblock_func.yml +0 -0
  257. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/editor_diff_fenced.yml +0 -0
  258. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/editor_editblock.yml +0 -0
  259. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/editor_whole.yml +0 -0
  260. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/hashline.yml +0 -0
  261. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/help.yml +0 -0
  262. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/patch.yml +0 -0
  263. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/single_wholefile_func.yml +0 -0
  264. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/subagent.yml +0 -0
  265. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/udiff.yml +0 -0
  266. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/udiff_simple.yml +0 -0
  267. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/utils/__init__.py +0 -0
  268. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/utils/registry.py +0 -0
  269. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/utils/system.py +0 -0
  270. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/wholefile.yml +0 -0
  271. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/prompts/wholefile_func.yml +0 -0
  272. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  273. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  274. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
  275. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  276. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  277. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  278. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  279. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  280. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  281. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  282. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  283. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  284. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  285. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  286. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  287. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  288. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  289. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  290. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  291. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  292. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  293. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  294. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  295. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  296. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  297. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  298. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  299. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  300. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  301. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  302. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  303. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  304. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/README.md +0 -0
  305. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
  306. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  307. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  308. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  309. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  310. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  311. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  312. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  313. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  314. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  315. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  316. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  317. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  318. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  319. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  320. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  321. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  322. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  323. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  324. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  325. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  326. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  327. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  328. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  329. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  330. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  331. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  332. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/reasoning_tags.py +0 -0
  333. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/repo.py +0 -0
  334. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/repomap.py +0 -0
  335. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/report.py +0 -0
  336. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/resources/__init__.py +0 -0
  337. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/resources/model-metadata.json +0 -0
  338. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/resources/model-settings.yml +0 -0
  339. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/resources/providers.json +0 -0
  340. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/scrape.py +0 -0
  341. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/sendchat.py +0 -0
  342. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/sessions.py +0 -0
  343. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/special.py +0 -0
  344. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/__init__.py +0 -0
  345. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/command.py +0 -0
  346. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/command_interactive.py +0 -0
  347. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/context_manager.py +0 -0
  348. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/edit_text.py +0 -0
  349. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/explore_code.py +0 -0
  350. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/finished.py +0 -0
  351. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/git_branch.py +0 -0
  352. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/git_diff.py +0 -0
  353. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/git_log.py +0 -0
  354. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/git_remote.py +0 -0
  355. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/git_show.py +0 -0
  356. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/git_status.py +0 -0
  357. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/grep.py +0 -0
  358. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/load_skill.py +0 -0
  359. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/ls.py +0 -0
  360. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/read_range.py +0 -0
  361. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/remove_skill.py +0 -0
  362. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/thinking.py +0 -0
  363. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/undo_change.py +0 -0
  364. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/update_todo_list.py +0 -0
  365. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/utils/base_tool.py +0 -0
  366. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/utils/helpers.py +0 -0
  367. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/utils/output.py +0 -0
  368. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tools/utils/registry.py +0 -0
  369. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tui/__init__.py +0 -0
  370. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tui/app.py +0 -0
  371. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tui/styles.tcss +0 -0
  372. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tui/widgets/__init__.py +0 -0
  373. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tui/widgets/completion_bar.py +0 -0
  374. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tui/widgets/file_list.py +0 -0
  375. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tui/widgets/footer.py +0 -0
  376. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tui/widgets/input_area.py +0 -0
  377. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tui/widgets/input_container.py +0 -0
  378. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tui/widgets/key_hints.py +0 -0
  379. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tui/widgets/output.py +0 -0
  380. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tui/widgets/status_bar.py +0 -0
  381. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/tui/widgets/subagent_pills.py +0 -0
  382. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/urls.py +0 -0
  383. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/utils.py +0 -0
  384. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/versioncheck.py +0 -0
  385. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/voice.py +0 -0
  386. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/waiting.py +0 -0
  387. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/watch.py +0 -0
  388. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/watch_prompts.py +0 -0
  389. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/Gemfile +0 -0
  390. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/_includes/blame.md +0 -0
  391. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/_includes/get-started.md +0 -0
  392. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/_includes/help-tip.md +0 -0
  393. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/_includes/help.md +0 -0
  394. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/_includes/install.md +0 -0
  395. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/_includes/keys.md +0 -0
  396. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/_includes/model-warnings.md +0 -0
  397. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/_includes/multi-line.md +0 -0
  398. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/_includes/python-m-aider.md +0 -0
  399. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/_includes/recording.css +0 -0
  400. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/_includes/recording.md +0 -0
  401. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/_includes/works-best.md +0 -0
  402. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/_sass/_features.scss +0 -0
  403. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/_sass/_footer.scss +0 -0
  404. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/_sass/_hero.scss +0 -0
  405. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/_sass/_info.scss +0 -0
  406. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/_sass/_layout.scss +0 -0
  407. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/_sass/_reset.scss +0 -0
  408. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/_sass/_testimonials.scss +0 -0
  409. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/_sass/_typography.scss +0 -0
  410. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/_sass/_variables.scss +0 -0
  411. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/_sass/custom/custom.scss +0 -0
  412. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/_sass/global-overrides.scss +0 -0
  413. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/config/adv-model-settings.md +0 -0
  414. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/config/aider_conf.md +0 -0
  415. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/config/api-keys.md +0 -0
  416. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/config/custom-commands.md +0 -0
  417. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  418. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/config/dotenv.md +0 -0
  419. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/config/editor.md +0 -0
  420. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/config/mcp.md +0 -0
  421. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/config/model-aliases.md +0 -0
  422. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/config/options.md +0 -0
  423. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/config/reasoning.md +0 -0
  424. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/config/security.md +0 -0
  425. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/config/skills.md +0 -0
  426. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/config/tui.md +0 -0
  427. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/config/workspaces.md +0 -0
  428. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/config.md +0 -0
  429. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/faq.md +0 -0
  430. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/git.md +0 -0
  431. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/index.md +0 -0
  432. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/install/docker.md +0 -0
  433. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/install/optional.md +0 -0
  434. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/install.md +0 -0
  435. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/languages.md +0 -0
  436. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  437. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/legal/privacy.md +0 -0
  438. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/llms/anthropic.md +0 -0
  439. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/llms/azure.md +0 -0
  440. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/llms/bedrock.md +0 -0
  441. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/llms/cohere.md +0 -0
  442. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/llms/deepseek.md +0 -0
  443. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/llms/gemini.md +0 -0
  444. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/llms/github.md +0 -0
  445. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/llms/groq.md +0 -0
  446. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/llms/lm-studio.md +0 -0
  447. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/llms/ollama.md +0 -0
  448. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/llms/openai-compat.md +0 -0
  449. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/llms/openai.md +0 -0
  450. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/llms/openrouter.md +0 -0
  451. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/llms/other.md +0 -0
  452. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/llms/vertex.md +0 -0
  453. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/llms/warnings.md +0 -0
  454. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/llms/xai.md +0 -0
  455. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/llms.md +0 -0
  456. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/more/analytics.md +0 -0
  457. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/more/edit-formats.md +0 -0
  458. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/more/infinite-output.md +0 -0
  459. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/more-info.md +0 -0
  460. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/repomap.md +0 -0
  461. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/scripting.md +0 -0
  462. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
  463. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  464. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/troubleshooting/imports.md +0 -0
  465. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  466. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/troubleshooting/support.md +0 -0
  467. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  468. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  469. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/troubleshooting.md +0 -0
  470. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/usage/commands.md +0 -0
  471. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/usage/conventions.md +0 -0
  472. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/usage/copypaste.md +0 -0
  473. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/usage/images-urls.md +0 -0
  474. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/usage/lint-test.md +0 -0
  475. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/usage/modes.md +0 -0
  476. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/usage/not-code.md +0 -0
  477. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/usage/notifications.md +0 -0
  478. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/usage/sessions.md +0 -0
  479. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/usage/tips.md +0 -0
  480. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/usage/voice.md +0 -0
  481. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/usage/watch.md +0 -0
  482. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/docs/usage.md +0 -0
  483. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli/website/share/index.md +0 -0
  484. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli_dev.egg-info/dependency_links.txt +0 -0
  485. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli_dev.egg-info/entry_points.txt +0 -0
  486. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli_dev.egg-info/requires.txt +0 -0
  487. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/cecli_dev.egg-info/top_level.txt +0 -0
  488. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/docker/Dockerfile +0 -0
  489. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  490. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/pyproject.toml +0 -0
  491. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/pytest.ini +0 -0
  492. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/requirements/common-constraints.txt +0 -0
  493. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/requirements/requirements-dev.in +0 -0
  494. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/requirements/requirements-dev.txt +0 -0
  495. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/requirements/requirements-help.in +0 -0
  496. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/requirements/requirements-help.txt +0 -0
  497. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/requirements/requirements-playwright.in +0 -0
  498. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/requirements/requirements-playwright.txt +0 -0
  499. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/requirements/requirements.in +0 -0
  500. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/requirements/tree-sitter.in +0 -0
  501. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/requirements.txt +0 -0
  502. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/30k-image.py +0 -0
  503. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/Dockerfile.jekyll +0 -0
  504. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/__init__.py +0 -0
  505. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/blame.py +0 -0
  506. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/clean_metadata.py +0 -0
  507. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/cost_analyzer.py +0 -0
  508. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/cost_calculator.py +0 -0
  509. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/dl_icons.py +0 -0
  510. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/filter-chat-mode.js +0 -0
  511. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/generate_providers.py +0 -0
  512. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/get_contributor_list.js +0 -0
  513. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/get_hashline.py +0 -0
  514. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/history_prompts.py +0 -0
  515. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/homepage.py +0 -0
  516. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/issues.py +0 -0
  517. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/jekyll_build.sh +0 -0
  518. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/jekyll_run.sh +0 -0
  519. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/logo_svg.py +0 -0
  520. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/pip-compile.sh +0 -0
  521. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/recording_audio.py +0 -0
  522. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/redact-cast.py +0 -0
  523. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/rename_to_cecli.py +0 -0
  524. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/tmux_record.sh +0 -0
  525. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/tsl_pack_langs.py +0 -0
  526. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/update-blame.sh +0 -0
  527. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/update-docs.sh +0 -0
  528. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/update-history.py +0 -0
  529. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/versionbump.py +0 -0
  530. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/scripts/yank-old-versions.py +0 -0
  531. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/setup.cfg +0 -0
  532. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/shim.pyproject.toml +0 -0
  533. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/__init__.py +0 -0
  534. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/__init__.py +0 -0
  535. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_aws_credentials.py +0 -0
  536. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_background_commands.py +0 -0
  537. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_coder.py +0 -0
  538. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_commands.py +0 -0
  539. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_custom_commands.py +0 -0
  540. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_deprecated.py +0 -0
  541. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_editblock.py +0 -0
  542. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_editor.py +0 -0
  543. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_exceptions.py +0 -0
  544. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_find_or_blocks.py +0 -0
  545. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_hashline.py +0 -0
  546. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_history.py +0 -0
  547. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_io.py +0 -0
  548. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_linter.py +0 -0
  549. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_main.py +0 -0
  550. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_model_info_manager.py +0 -0
  551. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_model_provider_manager.py +0 -0
  552. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_models.py +0 -0
  553. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_onboarding.py +0 -0
  554. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_plugin_manager.py +0 -0
  555. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_prompts.py +0 -0
  556. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_reasoning.py +0 -0
  557. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_repo.py +0 -0
  558. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_repomap.py +0 -0
  559. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_sanity_check_repo.py +0 -0
  560. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_scripting.py +0 -0
  561. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_sendchat.py +0 -0
  562. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_sessions.py +0 -0
  563. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_skills.py +0 -0
  564. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_special.py +0 -0
  565. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_ssl_verification.py +0 -0
  566. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_udiff.py +0 -0
  567. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_urls.py +0 -0
  568. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_voice.py +0 -0
  569. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_watch.py +0 -0
  570. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/basic/test_wholefile.py +0 -0
  571. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/coders/test_coder_switching.py +0 -0
  572. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/coders/test_copypaste_coder.py +0 -0
  573. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/commands/test_compaction.py +0 -0
  574. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/commands/test_switch_agent.py +0 -0
  575. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/conftest.py +0 -0
  576. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/conversations/test_conversation_integration.py +0 -0
  577. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/conversations/test_conversation_system.py +0 -0
  578. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  579. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/chat-history.md +0 -0
  580. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/arduino/test.ino +0 -0
  581. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/bash/test.sh +0 -0
  582. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/c/test.c +0 -0
  583. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/chatito/test.chatito +0 -0
  584. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/clojure/test.clj +0 -0
  585. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  586. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/cpp/test.cpp +0 -0
  587. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/csharp/test.cs +0 -0
  588. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/d/test.d +0 -0
  589. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/dart/test.dart +0 -0
  590. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/elisp/test.el +0 -0
  591. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/elixir/test.ex +0 -0
  592. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/elm/test.elm +0 -0
  593. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/gleam/test.gleam +0 -0
  594. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/go/test.go +0 -0
  595. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/haskell/test.hs +0 -0
  596. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/hcl/test.tf +0 -0
  597. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/java/test.java +0 -0
  598. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/javascript/test.js +0 -0
  599. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/kotlin/test.kt +0 -0
  600. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/lua/test.lua +0 -0
  601. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/matlab/test.m +0 -0
  602. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/ocaml/test.ml +0 -0
  603. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  604. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/php/test.php +0 -0
  605. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/pony/test.pony +0 -0
  606. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/properties/test.properties +0 -0
  607. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/python/test.py +0 -0
  608. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/ql/test.ql +0 -0
  609. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/r/test.r +0 -0
  610. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/racket/test.rkt +0 -0
  611. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/ruby/test.rb +0 -0
  612. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/rust/test.rs +0 -0
  613. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/scala/test.scala +0 -0
  614. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/solidity/test.sol +0 -0
  615. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/swift/test.swift +0 -0
  616. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/tsx/test.tsx +0 -0
  617. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/typescript/test.ts +0 -0
  618. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/udev/test.rules +0 -0
  619. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/languages/zig/test.zig +0 -0
  620. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/sample-code-base/sample.js +0 -0
  621. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/sample-code-base/sample.py +0 -0
  622. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  623. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/watch.js +0 -0
  624. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/watch.lisp +0 -0
  625. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/watch.py +0 -0
  626. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/fixtures/watch_question.js +0 -0
  627. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/help/test_help.py +0 -0
  628. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/helpers/monorepo/test_config.py +0 -0
  629. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/helpers/monorepo/test_config_active.py +0 -0
  630. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
  631. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
  632. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/helpers/monorepo/test_workspace.py +0 -0
  633. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/helpers/observations/test_observation_service.py +0 -0
  634. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/hooks/__init__.py +0 -0
  635. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/hooks/test_base.py +0 -0
  636. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/mcp/__init__.py +0 -0
  637. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/mcp/test_manager.py +0 -0
  638. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/scrape/test_playwright_disable.py +0 -0
  639. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/scrape/test_scrape.py +0 -0
  640. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/subagents/__init__.py +0 -0
  641. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/subagents/conftest.py +0 -0
  642. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/subagents/test_commands.py +0 -0
  643. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/subagents/test_config.py +0 -0
  644. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/subagents/test_delegate.py +0 -0
  645. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/subagents/test_finished.py +0 -0
  646. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/subagents/test_io_proxy.py +0 -0
  647. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/subagents/test_sub_agent_coder.py +0 -0
  648. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/tools/test_get_lines.py +0 -0
  649. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/tools/test_git_branch.py +0 -0
  650. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/tools/test_git_diff.py +0 -0
  651. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/tools/test_grep.py +0 -0
  652. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/tools/test_insert_block.py +0 -0
  653. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/tests/tools/test_registry.py +0 -0
  654. {cecli_dev-0.100.0rc9 → cecli_dev-0.100.1rc1}/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.0rc9
3
+ Version: 0.100.1rc1
4
4
  Summary: we also can't pronounce cecli
5
5
  Project-URL: Homepage, https://github.com/dwash96/cecli
6
6
  Project-URL: Documentation, https://github.com/dwash96/cecli
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.100.0rc9'
22
- __version_tuple__ = version_tuple = (0, 100, 0, 'rc9')
21
+ __version__ = version = '0.100.1rc1'
22
+ __version_tuple__ = version_tuple = (0, 100, 1, 'rc1')
23
23
 
24
- __commit_id__ = commit_id = 'g2aca17696'
24
+ __commit_id__ = commit_id = 'gf29b57571'
@@ -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
  )
@@ -1693,13 +1693,27 @@ class Coder(metaclass=UsageMeta):
1693
1693
  inp = inp.strip()
1694
1694
 
1695
1695
  if self.commands.is_command(inp):
1696
+ run_kwargs = {}
1696
1697
  if inp[0] in "!":
1697
- 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
1698
1712
 
1699
1713
  if self.commands.is_run_command(inp):
1700
1714
  self.commands.cmd_running_event.clear() # Command is running
1701
1715
 
1702
- return await self.commands.run(inp, coder=self)
1716
+ return await self.commands.run(inp, coder=self, **run_kwargs)
1703
1717
 
1704
1718
  await self.check_for_file_mentions(inp)
1705
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
@@ -132,6 +133,7 @@ CommandRegistry.register(LoadSkillCommand)
132
133
  CommandRegistry.register(LsCommand)
133
134
  CommandRegistry.register(MapCommand)
134
135
  CommandRegistry.register(MapRefreshCommand)
136
+ CommandRegistry.register(MergeCommand)
135
137
  CommandRegistry.register(ModelCommand)
136
138
  CommandRegistry.register(ModelsCommand)
137
139
  CommandRegistry.register(MultilineModeCommand)
@@ -213,6 +215,7 @@ __all__ = [
213
215
  "LsCommand",
214
216
  "MapCommand",
215
217
  "MapRefreshCommand",
218
+ "MergeCommand",
216
219
  "ModelCommand",
217
220
  "ModelsCommand",
218
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):
@@ -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):
@@ -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):
@@ -0,0 +1,194 @@
1
+ """Merge command - merge a sub-agent's summary into a target agent's conversation."""
2
+
3
+ from cecli.commands.utils.base_command import BaseCommand
4
+ from cecli.helpers.agents.service import (
5
+ DEFAULT_SUMMARY_COMPLETED,
6
+ DEFAULT_SUMMARY_INTERRUPTED,
7
+ DEFAULT_SUMMARY_NO_SUMMARY,
8
+ )
9
+
10
+
11
+ class MergeCommand(BaseCommand):
12
+ NORM_NAME = "merge"
13
+ DESCRIPTION = "Merge the current sub-agent's summary into a target agent's conversation"
14
+ show_completion_notification = False
15
+
16
+ @classmethod
17
+ async def execute(cls, io, coder, args, **kwargs):
18
+ """Execute the merge command - merge current sub-agent's summary into target."""
19
+ from cecli.helpers.agents.service import AgentService
20
+ from cecli.helpers.conversation.service import ConversationService
21
+ from cecli.helpers.conversation.tags import MessageTag
22
+
23
+ parts = args.strip().split(maxsplit=1)
24
+
25
+ if not parts:
26
+ target_name = "primary"
27
+ else:
28
+ target_name = parts[0]
29
+
30
+ # Verify we're in a sub-agent context
31
+ if not hasattr(coder, "parent_uuid") or not coder.parent_uuid:
32
+ io.tool_error("Error: This command can only be used from a sub-agent context.")
33
+ return
34
+
35
+ # Get the agent service (returns parent's service for sub-agents)
36
+ try:
37
+ agent_service = AgentService.get_instance(coder)
38
+ except Exception as e:
39
+ io.tool_error(f"Error: Could not get agent service: {e}")
40
+ return
41
+
42
+ # Resolve the current sub-agent info
43
+ current_uuid = str(coder.uuid)
44
+ current_info = agent_service.sub_agents.get(current_uuid)
45
+ if not current_info:
46
+ io.tool_error("Error: Could not find the current sub-agent in the agent service.")
47
+ return
48
+
49
+ # Get the summary from the current sub-agent
50
+ summary = current_info.summary
51
+ if not summary or summary in {
52
+ DEFAULT_SUMMARY_NO_SUMMARY,
53
+ DEFAULT_SUMMARY_COMPLETED,
54
+ DEFAULT_SUMMARY_INTERRUPTED,
55
+ }:
56
+ if not summary:
57
+ reason = "has no summary yet"
58
+ else:
59
+ reason = f"has only a default summary ('{summary}')"
60
+ io.tool_error(
61
+ f"Error: Sub-agent '{current_info.name}' {reason}. "
62
+ "Wait for it to finish or complete its task first and "
63
+ "provide an explicit summary."
64
+ )
65
+ return
66
+
67
+ # Resolve the target
68
+ target_coder = None
69
+ if target_name == "primary":
70
+ target_coder = agent_service.coder
71
+ else:
72
+ # Build name counts to detect duplicates
73
+ name_counts: dict[str, int] = {}
74
+ for uuid, info in agent_service.sub_agents.items():
75
+ name_counts[info.name] = name_counts.get(info.name, 0) + 1
76
+
77
+ # Try unique name match first
78
+ if target_name in name_counts and name_counts[target_name] == 1:
79
+ for uuid, info in agent_service.sub_agents.items():
80
+ if info.name == target_name:
81
+ target_coder = info.coder
82
+ break
83
+
84
+ if target_coder is None:
85
+ # Try parsing "name (uuid)" format from tab-completions
86
+ if target_name.endswith(")") and " (" in target_name:
87
+ try:
88
+ uuid_prefix = target_name.rsplit(" (", 1)[1][:-1]
89
+ for uuid, info in agent_service.sub_agents.items():
90
+ if str(uuid).startswith(uuid_prefix):
91
+ target_coder = info.coder
92
+ break
93
+ except IndexError:
94
+ pass # Not the format we expected
95
+
96
+ if target_coder is None:
97
+ # Try UUID prefix match
98
+ uuid_matches = [
99
+ info.coder
100
+ for uuid, info in agent_service.sub_agents.items()
101
+ if str(uuid).startswith(target_name)
102
+ ]
103
+
104
+ if len(uuid_matches) == 1:
105
+ target_coder = uuid_matches[0]
106
+ elif len(uuid_matches) > 1:
107
+ io.tool_error(
108
+ "Error: Multiple sub-agents match UUID prefix "
109
+ f"'{target_name}'. Use a longer prefix."
110
+ )
111
+ return
112
+
113
+ if target_coder is None:
114
+ io.tool_error(
115
+ "Error: Target agent '"
116
+ f"{target_name}' not found. Specify "
117
+ "'primary', an exact sub-agent name, "
118
+ "or a UUID prefix."
119
+ )
120
+ return
121
+
122
+ # Validate target is different from current
123
+ if str(target_coder.uuid) == current_uuid:
124
+ io.tool_error("Error: Cannot merge into the same agent. " "Specify a different target.")
125
+ return
126
+
127
+ # Add the summary as a conversation message to the target
128
+ try:
129
+ ConversationService.get_manager(target_coder).add_message(
130
+ message_dict=dict(role="user", content=summary),
131
+ tag=MessageTag.CUR,
132
+ )
133
+ except Exception as e:
134
+ io.tool_error(f"Error: Failed to add message to target conversation: {e}")
135
+ return
136
+
137
+ io.tool_output(
138
+ f"Merged summary from '{current_info.name}' ({current_uuid[:8]}) "
139
+ f"into '{target_name}'."
140
+ )
141
+
142
+ @classmethod
143
+ def get_completions(cls, io, coder, args) -> list[str]:
144
+ """Return potential target names for tab-completion."""
145
+ from cecli.helpers.agents.service import AgentService
146
+
147
+ try:
148
+ agent_service = AgentService.get_instance(coder)
149
+
150
+ names = ["primary"]
151
+
152
+ # Show sub-agent names as potential targets
153
+ if hasattr(coder, "parent_uuid") and coder.parent_uuid:
154
+ current_uuid = str(coder.uuid)
155
+ current_info = agent_service.sub_agents.get(current_uuid)
156
+ if not current_info:
157
+ return names
158
+
159
+ # First pass: count name occurrences to detect duplicates
160
+ name_counts: dict[str, int] = {}
161
+ for uuid, info in agent_service.sub_agents.items():
162
+ name_counts[info.name] = name_counts.get(info.name, 0) + 1
163
+
164
+ # Second pass: show UUID prefix when names appear multiple times
165
+ for uuid, info in agent_service.sub_agents.items():
166
+ if uuid == current_uuid:
167
+ continue
168
+ name = info.name
169
+ if name_counts[name] > 1:
170
+ names.append(f"{name} ({uuid[:3]})")
171
+ else:
172
+ names.append(name)
173
+
174
+ current_arg = (args or "").strip().lower()
175
+ if current_arg:
176
+ return [name for name in names if name.lower().startswith(current_arg)]
177
+ return names
178
+ except Exception:
179
+ return ["primary"]
180
+
181
+ @classmethod
182
+ def get_help(cls) -> str:
183
+ """Get help text for the merge command."""
184
+ help_text = super().get_help()
185
+ help_text += "\nUsage:\n"
186
+ help_text += (
187
+ " /merge # Merge current sub-agent's " "summary into primary\n"
188
+ )
189
+ help_text += " /merge <target-agent-name> # Merge into a specific " "target\n"
190
+ help_text += "\nExamples:\n"
191
+ help_text += " /merge primary\n"
192
+ help_text += " /merge reviewer\n"
193
+ help_text += "\nUse tab for auto-completion of target names.\n"
194
+ return help_text
@@ -9,6 +9,7 @@ from cecli.helpers.conversation import ConversationService
9
9
  class ModelCommand(BaseCommand):
10
10
  NORM_NAME = "model"
11
11
  DESCRIPTION = "Switch the Main 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.commands.utils.helpers import format_command_result
8
8
  class ModelsCommand(BaseCommand):
9
9
  NORM_NAME = "models"
10
10
  DESCRIPTION = "Search the list of available models"
11
+ show_completion_notification = False
11
12
 
12
13
  @classmethod
13
14
  async def execute(cls, io, coder, args, **kwargs):
@@ -16,6 +16,7 @@ class PasteCommand(BaseCommand):
16
16
  "Paste image/text from the clipboard into the chat. Optionally provide a name for the"
17
17
  " image."
18
18
  )
19
+ show_completion_notification = False
19
20
 
20
21
  @classmethod
21
22
  async def execute(cls, io, coder, args, **kwargs):
@@ -19,6 +19,7 @@ class ReadOnlyCommand(BaseCommand):
19
19
  DESCRIPTION = (
20
20
  "Add files to the chat that are for reference only, or turn added files to read-only"
21
21
  )
22
+ show_completion_notification = False
22
23
 
23
24
  @classmethod
24
25
  async def execute(cls, io, coder, args, **kwargs):