cecli-dev 1.6.0rc4__tar.gz → 1.6.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 (866) hide show
  1. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/PKG-INFO +1 -1
  2. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/_version.py +3 -3
  3. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/agent_coder.py +9 -2
  4. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/base_coder.py +9 -2
  5. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/list_sessions.py +1 -1
  6. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/load_session.py +6 -3
  7. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/save_session.py +6 -2
  8. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/coroutines.py +85 -36
  9. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/hashpos/transformations.py +1 -1
  10. cecli_dev-1.6.1/cecli/helpers/lock_detect.py +137 -0
  11. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/model_config/pipeline.py +4 -2
  12. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/model_providers.py +4 -0
  13. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/orchestration/agent_proxy.py +17 -0
  14. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/orchestration/environment.py +4 -2
  15. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/orchestration/safe_methods.py +11 -10
  16. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/orchestration/tool_proxy.py +83 -4
  17. cecli_dev-1.6.1/cecli/helpers/sessions/__init__.py +20 -0
  18. cecli_dev-1.6.1/cecli/helpers/sessions/layout.py +112 -0
  19. cecli_dev-1.6.1/cecli/helpers/sessions/manager.py +325 -0
  20. cecli_dev-1.6.1/cecli/helpers/sessions/payload.py +287 -0
  21. cecli_dev-1.6.1/cecli/helpers/sessions/storage.py +245 -0
  22. cecli_dev-1.6.1/cecli/helpers/sessions/subagents.py +152 -0
  23. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/main.py +1 -1
  24. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/mcp/manager.py +34 -6
  25. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/mcp/server.py +17 -1
  26. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/models.py +2 -2
  27. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/repo.py +48 -13
  28. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/resources/model-metadata.ext.json +32 -0
  29. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/resources/model-metadata.json +16442 -10023
  30. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/resources/providers.json +2 -1
  31. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/broadcast.py +4 -5
  32. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/command.py +41 -1
  33. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/grep.py +11 -4
  34. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/read_file.py +4 -4
  35. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tui/styles.tcss +1 -1
  36. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tui/widgets/output.py +5 -0
  37. cecli_dev-1.6.1/cecli/tui/widgets/thin_scrollbar.py +58 -0
  38. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tui/worker.py +177 -21
  39. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli_dev.egg-info/PKG-INFO +1 -1
  40. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli_dev.egg-info/SOURCES.txt +8 -1
  41. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli_dev.egg-info/scm_file_list.json +8 -1
  42. cecli_dev-1.6.1/cecli_dev.egg-info/scm_version.json +8 -0
  43. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_sessions.py +1 -1
  44. cecli_dev-1.6.1/tests/basic/test_sessions_manager.py +473 -0
  45. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/test_orchestration.py +103 -7
  46. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/mcp/test_server_sdk_compat.py +19 -0
  47. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/tools/test_grep.py +23 -0
  48. cecli_dev-1.6.1/tests/tui/test_output.py +24 -0
  49. cecli_dev-1.6.0rc4/cecli/helpers/lock_detect.py +0 -61
  50. cecli_dev-1.6.0rc4/cecli/sessions.py +0 -505
  51. cecli_dev-1.6.0rc4/cecli_dev.egg-info/scm_version.json +0 -8
  52. cecli_dev-1.6.0rc4/tests/basic/test_sessions_manager.py +0 -219
  53. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/.dockerignore +0 -0
  54. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/.flake8 +0 -0
  55. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/.gitattributes +0 -0
  56. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  57. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/.github/workflows/check_pypi_version.yml +0 -0
  58. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/.github/workflows/docker-build-test.yml +0 -0
  59. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/.github/workflows/docker-release.yml +0 -0
  60. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/.github/workflows/issues.yml +0 -0
  61. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/.github/workflows/pages.yml +0 -0
  62. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/.github/workflows/pre-commit.yml +0 -0
  63. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/.github/workflows/release.yml +0 -0
  64. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/.github/workflows/ubuntu-tests.yml +0 -0
  65. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/.github/workflows/windows-tests.yml +0 -0
  66. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/.github/workflows/windows_check_pypi_version.yml +0 -0
  67. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/.gitignore +0 -0
  68. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/.pre-commit-config.yaml +0 -0
  69. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/CHANGELOG.md +0 -0
  70. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/CNAME +0 -0
  71. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/CONTRIBUTING.md +0 -0
  72. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/HISTORY.md +0 -0
  73. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/LICENSE.txt +0 -0
  74. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/MANIFEST.in +0 -0
  75. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/README.md +0 -0
  76. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/Dockerfile +0 -0
  77. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/README.md +0 -0
  78. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/__init__.py +0 -0
  79. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/benchmark.py +0 -0
  80. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/benchmark_classic.py +0 -0
  81. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/clone-exercism.sh +0 -0
  82. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/cpp-test.sh +0 -0
  83. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/docker.sh +0 -0
  84. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/docker_build.sh +0 -0
  85. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/install-docker-ubuntu.sh +0 -0
  86. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/npm-test.sh +0 -0
  87. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/over_time.py +0 -0
  88. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/plot.sh +0 -0
  89. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/plots.py +0 -0
  90. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/problem_stats.py +0 -0
  91. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/prompts.py +0 -0
  92. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/refactor_tools.py +0 -0
  93. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/rsync.sh +0 -0
  94. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/rungrid.py +0 -0
  95. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/swe-bench-lite.txt +0 -0
  96. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/swe-bench.txt +0 -0
  97. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/swe_bench.py +0 -0
  98. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/test_benchmark.py +0 -0
  99. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/variations.1.sh +0 -0
  100. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/variations.2.sh +0 -0
  101. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/variations.3.sh +0 -0
  102. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/benchmark/variations.4.sh +0 -0
  103. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/__init__.py +0 -0
  104. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/__main__.py +0 -0
  105. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/args.py +0 -0
  106. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/args_formatter.py +0 -0
  107. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/change_tracker.py +0 -0
  108. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/__init__.py +0 -0
  109. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/architect_coder.py +0 -0
  110. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/ask_coder.py +0 -0
  111. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/chat_chunks.py +0 -0
  112. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/context_coder.py +0 -0
  113. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/copypaste_coder.py +0 -0
  114. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/editblock_coder.py +0 -0
  115. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/editblock_fenced_coder.py +0 -0
  116. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/editblock_func_coder.py +0 -0
  117. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  118. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/editor_editblock_coder.py +0 -0
  119. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/editor_whole_coder.py +0 -0
  120. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/hashline_coder.py +0 -0
  121. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/help_coder.py +0 -0
  122. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/patch_coder.py +0 -0
  123. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/search_replace.py +0 -0
  124. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/shell.py +0 -0
  125. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/single_wholefile_func_coder.py +0 -0
  126. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/sub_agent_coder.py +0 -0
  127. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/udiff_coder.py +0 -0
  128. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/udiff_simple.py +0 -0
  129. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/wholefile_coder.py +0 -0
  130. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/coders/wholefile_func_coder.py +0 -0
  131. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/__init__.py +0 -0
  132. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/add.py +0 -0
  133. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/agent.py +0 -0
  134. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/agent_model.py +0 -0
  135. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/agent_tree.py +0 -0
  136. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/architect.py +0 -0
  137. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/ask.py +0 -0
  138. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/auto_memory.py +0 -0
  139. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/chat_mode.py +0 -0
  140. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/clear.py +0 -0
  141. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/code.py +0 -0
  142. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/command_prefix.py +0 -0
  143. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/commit.py +0 -0
  144. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/compact.py +0 -0
  145. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/context.py +0 -0
  146. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/context_blocks.py +0 -0
  147. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/context_management.py +0 -0
  148. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/copy.py +0 -0
  149. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/copy_context.py +0 -0
  150. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/core.py +0 -0
  151. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/diff.py +0 -0
  152. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/drop.py +0 -0
  153. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/editor.py +0 -0
  154. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/editor_model.py +0 -0
  155. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/exclude_skill.py +0 -0
  156. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/exit.py +0 -0
  157. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/git.py +0 -0
  158. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/hashline.py +0 -0
  159. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/help.py +0 -0
  160. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/history_search.py +0 -0
  161. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/hooks.py +0 -0
  162. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/hot_reload.py +0 -0
  163. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/import_skill.py +0 -0
  164. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/include_skill.py +0 -0
  165. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/insert_queue.py +0 -0
  166. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/lint.py +0 -0
  167. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/list_mcp.py +0 -0
  168. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/list_queue.py +0 -0
  169. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/list_skills.py +0 -0
  170. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/load.py +0 -0
  171. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/load_hook.py +0 -0
  172. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/load_mcp.py +0 -0
  173. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/load_skill.py +0 -0
  174. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/ls.py +0 -0
  175. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/map.py +0 -0
  176. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/map_refresh.py +0 -0
  177. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/merge.py +0 -0
  178. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/model.py +0 -0
  179. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/models.py +0 -0
  180. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/multiline_mode.py +0 -0
  181. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/paste.py +0 -0
  182. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/queue.py +0 -0
  183. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/quit.py +0 -0
  184. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/read_only.py +0 -0
  185. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/read_only_stub.py +0 -0
  186. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/reap_agent.py +0 -0
  187. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/reasoning_effort.py +0 -0
  188. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/remove_hook.py +0 -0
  189. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/remove_mcp.py +0 -0
  190. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/remove_memory.py +0 -0
  191. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/remove_queue.py +0 -0
  192. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/remove_skill.py +0 -0
  193. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/report.py +0 -0
  194. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/reset.py +0 -0
  195. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/rules.py +0 -0
  196. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/run.py +0 -0
  197. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/save.py +0 -0
  198. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/search_memory.py +0 -0
  199. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/settings.py +0 -0
  200. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/spawn_agent.py +0 -0
  201. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/switch_agent.py +0 -0
  202. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/terminal_data/linux.keytab +0 -0
  203. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/terminal_setup.py +0 -0
  204. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/test.py +0 -0
  205. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/think_tokens.py +0 -0
  206. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/tokens.py +0 -0
  207. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/undo.py +0 -0
  208. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/utils/__init__.py +0 -0
  209. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/utils/base_command.py +0 -0
  210. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/utils/helpers.py +0 -0
  211. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/utils/registry.py +0 -0
  212. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/utils/save_load_manager.py +0 -0
  213. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/voice.py +0 -0
  214. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/weak_model.py +0 -0
  215. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/web.py +0 -0
  216. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/commands/workspace.py +0 -0
  217. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/decoding.py +0 -0
  218. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/deprecated_args.py +0 -0
  219. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/diffs.py +0 -0
  220. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/dump.py +0 -0
  221. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/editor.py +0 -0
  222. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/exceptions.py +0 -0
  223. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/format_settings.py +0 -0
  224. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/help.py +0 -0
  225. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/help_pats.py +0 -0
  226. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/__init__.py +0 -0
  227. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/agents/__init__.py +0 -0
  228. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/agents/config.py +0 -0
  229. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/agents/defaults/__init__.py +0 -0
  230. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/agents/defaults/memorizer.md +0 -0
  231. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/agents/defaults/worker.md +0 -0
  232. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/agents/service.py +0 -0
  233. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/background_commands.py +0 -0
  234. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/command_parser.py +0 -0
  235. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/command_queue.py +0 -0
  236. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/config_utils.py +0 -0
  237. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/conversation/__init__.py +0 -0
  238. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/conversation/base_message.py +0 -0
  239. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/conversation/files.py +0 -0
  240. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/conversation/integration.py +0 -0
  241. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/conversation/manager.py +0 -0
  242. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/conversation/service.py +0 -0
  243. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/conversation/tags.py +0 -0
  244. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/conversation/utils.py +0 -0
  245. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/copypaste.py +0 -0
  246. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/crypto.py +0 -0
  247. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/extensions/__init__.py +0 -0
  248. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/extensions/skills_importer.py +0 -0
  249. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/file_searcher.py +0 -0
  250. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/file_system/__init__.py +0 -0
  251. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/file_system/builders.py +0 -0
  252. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/file_system/ignore.py +0 -0
  253. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/file_system/ngram_index.py +0 -0
  254. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/file_system/service.py +0 -0
  255. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/file_system/trie_index.py +0 -0
  256. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/grep_ast/__init__.py +0 -0
  257. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/grep_ast/dump.py +0 -0
  258. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/grep_ast/grep_ast.py +0 -0
  259. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/grep_ast/main.py +0 -0
  260. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/grep_ast/parsers.py +0 -0
  261. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/grep_ast/tsl.py +0 -0
  262. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/hashline.py +0 -0
  263. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/hashpos/__init__.py +0 -0
  264. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/hashpos/hashpos.py +0 -0
  265. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/hashpos/hashpos.v1.bak +0 -0
  266. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/io_proxy.py +0 -0
  267. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/leak_detect.py +0 -0
  268. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/__init__.py +0 -0
  269. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/aws_sigv4.py +0 -0
  270. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/config.py +0 -0
  271. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/domains/__init__.py +0 -0
  272. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/domains/bedrock.py +0 -0
  273. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/domains/chat.py +0 -0
  274. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/domains/gemini.py +0 -0
  275. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/domains/messages.py +0 -0
  276. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/domains/responses.py +0 -0
  277. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/formatters/__init__.py +0 -0
  278. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/formatters/reasoning.py +0 -0
  279. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/formatters/thinking.py +0 -0
  280. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/identifiers.py +0 -0
  281. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/litellm_compat.py +0 -0
  282. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/pipeline.py +0 -0
  283. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/providers/__init__.py +0 -0
  284. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/providers/anthropic.py +0 -0
  285. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/providers/azure.py +0 -0
  286. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/providers/base.py +0 -0
  287. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/providers/bedrock.py +0 -0
  288. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/providers/bedrock_mantle.py +0 -0
  289. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/providers/deepseek.py +0 -0
  290. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/providers/gemini.py +0 -0
  291. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/providers/github_copilot.py +0 -0
  292. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/providers/meta.py +0 -0
  293. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/providers/mistral.py +0 -0
  294. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/providers/openai.py +0 -0
  295. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/providers/openrouter.py +0 -0
  296. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/runtime.py +0 -0
  297. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/types.py +0 -0
  298. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/llms/utils.py +0 -0
  299. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/loop_detect.py +0 -0
  300. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/memory/__init__.py +0 -0
  301. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/memory/db.py +0 -0
  302. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/memory/utils.py +0 -0
  303. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/memory_control.py +0 -0
  304. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/model_config/__init__.py +0 -0
  305. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/model_config/agent.py +0 -0
  306. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/model_config/api.py +0 -0
  307. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/model_config/formatters/__init__.py +0 -0
  308. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/model_config/formatters/reasoning.py +0 -0
  309. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/model_config/formatters/thinking.py +0 -0
  310. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/model_config/identifiers.py +0 -0
  311. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/model_config/llm.py +0 -0
  312. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/model_config/registry.py +0 -0
  313. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/model_config/utils.py +0 -0
  314. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/nested.py +0 -0
  315. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/observations/__init__.py +0 -0
  316. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/observations/service.py +0 -0
  317. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/onboarding/__init__.py +0 -0
  318. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/onboarding/app.py +0 -0
  319. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/onboarding/providers.py +0 -0
  320. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/orchestration/__init__.py +0 -0
  321. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/orchestration/region_resolver.py +0 -0
  322. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/orchestration/security.py +0 -0
  323. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/orchestration/service.py +0 -0
  324. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/plugin_manager.py +0 -0
  325. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/profiler.py +0 -0
  326. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/queues.py +0 -0
  327. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/requests.py +0 -0
  328. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/responses.py +0 -0
  329. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/server/__init__.py +0 -0
  330. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/server/acp/__init__.py +0 -0
  331. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/server/acp/bridge.py +0 -0
  332. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/server/acp/models.py +0 -0
  333. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/server/acp/protocol.py +0 -0
  334. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/server/signals.py +0 -0
  335. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/server/ws_server.py +0 -0
  336. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/similarity.py +0 -0
  337. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/skills.py +0 -0
  338. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/threading.py +0 -0
  339. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/workspaces/__init__.py +0 -0
  340. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/workspaces/config.py +0 -0
  341. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/workspaces/paths.py +0 -0
  342. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/workspaces/subagents.py +0 -0
  343. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/helpers/workspaces/workspace.py +0 -0
  344. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/history.py +0 -0
  345. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/hooks/__init__.py +0 -0
  346. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/hooks/base.py +0 -0
  347. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/hooks/helpers.py +0 -0
  348. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/hooks/integration.py +0 -0
  349. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/hooks/manager.py +0 -0
  350. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/hooks/registry.py +0 -0
  351. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/hooks/service.py +0 -0
  352. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/hooks/types.py +0 -0
  353. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/http.py +0 -0
  354. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/interruptible_input.py +0 -0
  355. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/io.py +0 -0
  356. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/linter.py +0 -0
  357. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/llm.py +0 -0
  358. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/mcp/__init__.py +0 -0
  359. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/mcp/oauth.py +0 -0
  360. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/mcp/utils.py +0 -0
  361. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/mdstream.py +0 -0
  362. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/onboarding.py +0 -0
  363. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/__init__.py +0 -0
  364. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/agent.yml +0 -0
  365. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/architect.yml +0 -0
  366. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/ask.yml +0 -0
  367. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/base.yml +0 -0
  368. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/context.yml +0 -0
  369. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/copypaste.yml +0 -0
  370. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/editblock.yml +0 -0
  371. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/editblock_fenced.yml +0 -0
  372. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/editblock_func.yml +0 -0
  373. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/editor_diff_fenced.yml +0 -0
  374. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/editor_editblock.yml +0 -0
  375. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/editor_whole.yml +0 -0
  376. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/hashline.yml +0 -0
  377. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/help.yml +0 -0
  378. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/patch.yml +0 -0
  379. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/single_wholefile_func.yml +0 -0
  380. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/subagent.yml +0 -0
  381. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/udiff.yml +0 -0
  382. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/udiff_simple.yml +0 -0
  383. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/utils/__init__.py +0 -0
  384. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/utils/registry.py +0 -0
  385. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/utils/system.py +0 -0
  386. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/wholefile.yml +0 -0
  387. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/prompts/wholefile_func.yml +0 -0
  388. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  389. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  390. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
  391. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  392. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  393. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  394. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  395. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  396. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  397. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  398. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  399. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  400. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  401. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  402. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  403. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  404. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  405. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  406. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  407. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  408. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  409. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  410. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  411. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  412. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  413. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  414. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  415. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  416. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  417. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  418. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  419. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  420. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/README.md +0 -0
  421. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
  422. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  423. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  424. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  425. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  426. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  427. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  428. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  429. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  430. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  431. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  432. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  433. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  434. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  435. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  436. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  437. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  438. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  439. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  440. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  441. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  442. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  443. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  444. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  445. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  446. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  447. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  448. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/reasoning_tags.py +0 -0
  449. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/repomap.py +0 -0
  450. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/report.py +0 -0
  451. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/resources/__init__.py +0 -0
  452. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/resources/model-settings-condensed.yml +0 -0
  453. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/resources/model-settings.yml +0 -0
  454. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/run_cmd.py +0 -0
  455. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/scrape.py +0 -0
  456. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/sendchat.py +0 -0
  457. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/signals.py +0 -0
  458. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/special.py +0 -0
  459. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tests/test_queue_commands.py +0 -0
  460. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/__init__.py +0 -0
  461. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/_yield.py +0 -0
  462. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/delegate.py +0 -0
  463. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/edit_file.py +0 -0
  464. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/explore_code.py +0 -0
  465. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/git_branch.py +0 -0
  466. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/git_diff.py +0 -0
  467. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/git_log.py +0 -0
  468. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/git_remote.py +0 -0
  469. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/git_show.py +0 -0
  470. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/git_status.py +0 -0
  471. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/ls.py +0 -0
  472. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/orchestrate.py +0 -0
  473. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/replace_facts.py +0 -0
  474. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/resource_manager.py +0 -0
  475. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/search_facts.py +0 -0
  476. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/thinking.py +0 -0
  477. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/undo_change.py +0 -0
  478. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/update_todo_list.py +0 -0
  479. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/utils/__init__.py +0 -0
  480. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/utils/base_tool.py +0 -0
  481. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/utils/helpers.py +0 -0
  482. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/utils/output.py +0 -0
  483. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/utils/registry.py +0 -0
  484. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/utils/responses.py +0 -0
  485. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/validations/__init__.py +0 -0
  486. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tools/validations/validations.py +0 -0
  487. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tui/__init__.py +0 -0
  488. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tui/app.py +0 -0
  489. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tui/io.py +0 -0
  490. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tui/widgets/__init__.py +0 -0
  491. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tui/widgets/completion_bar.py +0 -0
  492. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tui/widgets/file_list.py +0 -0
  493. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tui/widgets/footer.py +0 -0
  494. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tui/widgets/input_area.py +0 -0
  495. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tui/widgets/input_container.py +0 -0
  496. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tui/widgets/key_hints.py +0 -0
  497. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tui/widgets/output_alt.bak +0 -0
  498. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tui/widgets/selectable_log.py +0 -0
  499. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tui/widgets/status_bar.py +0 -0
  500. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/tui/widgets/subagent_pills.py +0 -0
  501. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/urls.py +0 -0
  502. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/utils.py +0 -0
  503. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/versioncheck.py +0 -0
  504. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/voice.py +0 -0
  505. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/waiting.py +0 -0
  506. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/watch.py +0 -0
  507. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/watch_prompts.py +0 -0
  508. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/_includes/blame.md +0 -0
  509. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/_includes/get-started.md +0 -0
  510. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/_includes/help-tip.md +0 -0
  511. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/_includes/help.md +0 -0
  512. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/_includes/install.md +0 -0
  513. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/_includes/keys.md +0 -0
  514. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/_includes/model-warnings.md +0 -0
  515. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/_includes/multi-line.md +0 -0
  516. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/_includes/python-m-aider.md +0 -0
  517. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/_includes/recording.css +0 -0
  518. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/_includes/recording.md +0 -0
  519. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/_includes/works-best.md +0 -0
  520. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/_sass/_features.scss +0 -0
  521. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/_sass/_footer.scss +0 -0
  522. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/_sass/_hero.scss +0 -0
  523. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/_sass/_info.scss +0 -0
  524. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/_sass/_layout.scss +0 -0
  525. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/_sass/_reset.scss +0 -0
  526. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/_sass/_testimonials.scss +0 -0
  527. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/_sass/_typography.scss +0 -0
  528. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/_sass/_variables.scss +0 -0
  529. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/_sass/custom/custom.scss +0 -0
  530. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/_sass/global-overrides.scss +0 -0
  531. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docmd.config.json +0 -0
  532. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/cecli-temp-logo-favicon.svg +0 -0
  533. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config/adv-model-settings.md +0 -0
  534. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config/agent-mode.md +0 -0
  535. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config/api-keys.md +0 -0
  536. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config/api.md +0 -0
  537. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config/conf.md +0 -0
  538. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config/custom-commands.md +0 -0
  539. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  540. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config/dotenv.md +0 -0
  541. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config/editor.md +0 -0
  542. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config/hooks.md +0 -0
  543. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config/mcp.md +0 -0
  544. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config/model-aliases.md +0 -0
  545. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config/model-configuration.md +0 -0
  546. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config/model-providers.md +0 -0
  547. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config/options.md +0 -0
  548. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config/persistent-memory.md +0 -0
  549. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config/reasoning.md +0 -0
  550. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config/retries.md +0 -0
  551. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config/security.md +0 -0
  552. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config/skills.md +0 -0
  553. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config/subagents.md +0 -0
  554. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config/tui.md +0 -0
  555. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config/workspaces.md +0 -0
  556. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/config.md +0 -0
  557. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/git.md +0 -0
  558. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/index.md +0 -0
  559. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/install/docker.md +0 -0
  560. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/install.md +0 -0
  561. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/languages.md +0 -0
  562. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  563. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/legal/privacy.md +0 -0
  564. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/llms/anthropic.md +0 -0
  565. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/llms/azure.md +0 -0
  566. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/llms/bedrock.md +0 -0
  567. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/llms/cohere.md +0 -0
  568. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/llms/deepseek.md +0 -0
  569. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/llms/gemini.md +0 -0
  570. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/llms/github.md +0 -0
  571. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/llms/groq.md +0 -0
  572. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/llms/lm-studio.md +0 -0
  573. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/llms/ollama.md +0 -0
  574. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/llms/openai-compat.md +0 -0
  575. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/llms/openai.md +0 -0
  576. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/llms/opencode-go.md +0 -0
  577. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/llms/openrouter.md +0 -0
  578. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/llms/other.md +0 -0
  579. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/llms/vertex.md +0 -0
  580. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/llms/warnings.md +0 -0
  581. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/llms/xai.md +0 -0
  582. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/llms.md +0 -0
  583. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/more/analytics.md +0 -0
  584. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/more/edit-formats.md +0 -0
  585. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/more/infinite-output.md +0 -0
  586. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/more-info.md +0 -0
  587. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/repomap.md +0 -0
  588. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/scripting.md +0 -0
  589. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
  590. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  591. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/troubleshooting/imports.md +0 -0
  592. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  593. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/troubleshooting/support.md +0 -0
  594. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  595. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  596. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/troubleshooting.md +0 -0
  597. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/usage/commands.md +0 -0
  598. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/usage/conventions.md +0 -0
  599. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/usage/copypaste.md +0 -0
  600. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/usage/images-urls.md +0 -0
  601. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/usage/lint-test.md +0 -0
  602. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/usage/modes.md +0 -0
  603. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/usage/not-code.md +0 -0
  604. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/usage/notifications.md +0 -0
  605. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/usage/optional.md +0 -0
  606. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/usage/sessions.md +0 -0
  607. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/usage/tips.md +0 -0
  608. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/usage/voice.md +0 -0
  609. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/usage/watch.md +0 -0
  610. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/docs/usage.md +0 -0
  611. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/package-lock.json +0 -0
  612. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/package.json +0 -0
  613. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli/website/share/index.md +0 -0
  614. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli_dev.egg-info/dependency_links.txt +0 -0
  615. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli_dev.egg-info/entry_points.txt +0 -0
  616. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli_dev.egg-info/requires.txt +0 -0
  617. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/cecli_dev.egg-info/top_level.txt +0 -0
  618. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/docker/Dockerfile +0 -0
  619. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  620. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/pyproject.toml +0 -0
  621. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/pytest.ini +0 -0
  622. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/requirements/common-constraints.txt +0 -0
  623. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/requirements/requirements-dev.in +0 -0
  624. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/requirements/requirements-dev.txt +0 -0
  625. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/requirements/requirements-help.in +0 -0
  626. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/requirements/requirements-help.txt +0 -0
  627. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/requirements/requirements-playwright.in +0 -0
  628. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/requirements/requirements-playwright.txt +0 -0
  629. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/requirements/requirements.in +0 -0
  630. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/requirements/tree-sitter.in +0 -0
  631. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/requirements.txt +0 -0
  632. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/30k-image.py +0 -0
  633. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/__init__.py +0 -0
  634. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/blame.py +0 -0
  635. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/clean_metadata.py +0 -0
  636. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/compare-message-history.py +0 -0
  637. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/condense_model_settings.py +0 -0
  638. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/cost_analyzer.py +0 -0
  639. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/cost_calculator.py +0 -0
  640. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/dl_icons.py +0 -0
  641. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/docmd_build.sh +0 -0
  642. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/filter-chat-mode.js +0 -0
  643. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/generate_providers.py +0 -0
  644. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/get_contributor_list.js +0 -0
  645. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/get_hashline.py +0 -0
  646. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/history_prompts.py +0 -0
  647. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/homepage.py +0 -0
  648. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/issues.py +0 -0
  649. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/logo_svg.py +0 -0
  650. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/optimize_tokens.sh +0 -0
  651. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/pip-compile.sh +0 -0
  652. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/recording_audio.py +0 -0
  653. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/redact-cast.py +0 -0
  654. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/rename_to_cecli.py +0 -0
  655. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/tmux_record.sh +0 -0
  656. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/tsl_pack_langs.py +0 -0
  657. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/update-blame.sh +0 -0
  658. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/update-docs.sh +0 -0
  659. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/update-history.py +0 -0
  660. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/versionbump.py +0 -0
  661. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/scripts/yank-old-versions.py +0 -0
  662. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/setup.cfg +0 -0
  663. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/shim.pyproject.toml +0 -0
  664. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/__init__.py +0 -0
  665. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/__init__.py +0 -0
  666. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/conftest.py +0 -0
  667. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_agent_config_merge.py +0 -0
  668. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_aws_credentials.py +0 -0
  669. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_background_commands.py +0 -0
  670. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_coder.py +0 -0
  671. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_commands.py +0 -0
  672. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_custom_commands.py +0 -0
  673. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_deprecated.py +0 -0
  674. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_editblock.py +0 -0
  675. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_editor.py +0 -0
  676. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_exceptions.py +0 -0
  677. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_file_system_service.py +0 -0
  678. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_find_or_blocks.py +0 -0
  679. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_hashline.py +0 -0
  680. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_hashline_closure.py +0 -0
  681. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_history.py +0 -0
  682. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_io.py +0 -0
  683. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_linter.py +0 -0
  684. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_main.py +0 -0
  685. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_model_info_manager.py +0 -0
  686. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_model_provider_manager.py +0 -0
  687. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_models.py +0 -0
  688. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_onboarding.py +0 -0
  689. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_plugin_manager.py +0 -0
  690. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_prompts.py +0 -0
  691. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_reasoning.py +0 -0
  692. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_repo.py +0 -0
  693. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_repomap.py +0 -0
  694. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_run_cmd.py +0 -0
  695. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_sanity_check_repo.py +0 -0
  696. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_scripting.py +0 -0
  697. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_select_selector.py +0 -0
  698. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_sendchat.py +0 -0
  699. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_session_args.py +0 -0
  700. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_session_crypto.py +0 -0
  701. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_skills.py +0 -0
  702. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_special.py +0 -0
  703. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_spinner.py +0 -0
  704. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_ssl_verification.py +0 -0
  705. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_udiff.py +0 -0
  706. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_urls.py +0 -0
  707. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_voice.py +0 -0
  708. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_watch.py +0 -0
  709. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/basic/test_wholefile.py +0 -0
  710. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/coders/test_coder_switching.py +0 -0
  711. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/coders/test_copypaste_coder.py +0 -0
  712. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/coders/test_rate_limit.py +0 -0
  713. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/coders/test_tool_call_consolidation.py +0 -0
  714. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/commands/test_auto_memory.py +0 -0
  715. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/commands/test_compaction.py +0 -0
  716. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/commands/test_remove_memory.py +0 -0
  717. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/commands/test_search_memory.py +0 -0
  718. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/commands/test_switch_agent.py +0 -0
  719. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/commands/test_voice.py +0 -0
  720. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/commands/test_workspace.py +0 -0
  721. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/conftest.py +0 -0
  722. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/conversations/test_background_command_injection.py +0 -0
  723. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/conversations/test_conversation_integration.py +0 -0
  724. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/conversations/test_conversation_system.py +0 -0
  725. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  726. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/chat-history.md +0 -0
  727. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/arduino/test.ino +0 -0
  728. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/bash/test.sh +0 -0
  729. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/c/test.c +0 -0
  730. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/chatito/test.chatito +0 -0
  731. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/clojure/test.clj +0 -0
  732. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  733. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/cpp/test.cpp +0 -0
  734. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/csharp/test.cs +0 -0
  735. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/d/test.d +0 -0
  736. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/dart/test.dart +0 -0
  737. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/elisp/test.el +0 -0
  738. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/elixir/test.ex +0 -0
  739. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/elm/test.elm +0 -0
  740. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/gleam/test.gleam +0 -0
  741. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/go/test.go +0 -0
  742. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/haskell/test.hs +0 -0
  743. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/hcl/test.tf +0 -0
  744. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/java/test.java +0 -0
  745. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/javascript/test.js +0 -0
  746. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/kotlin/test.kt +0 -0
  747. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/lua/test.lua +0 -0
  748. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/matlab/test.m +0 -0
  749. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/ocaml/test.ml +0 -0
  750. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  751. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/php/test.php +0 -0
  752. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/pony/test.pony +0 -0
  753. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/properties/test.properties +0 -0
  754. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/python/test.py +0 -0
  755. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/ql/test.ql +0 -0
  756. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/r/test.r +0 -0
  757. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/racket/test.rkt +0 -0
  758. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/ruby/test.rb +0 -0
  759. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/rust/test.rs +0 -0
  760. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/scala/test.scala +0 -0
  761. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/solidity/test.sol +0 -0
  762. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/swift/test.swift +0 -0
  763. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/tsx/test.tsx +0 -0
  764. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/typescript/test.ts +0 -0
  765. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/udev/test.rules +0 -0
  766. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/languages/zig/test.zig +0 -0
  767. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/sample-code-base/sample.js +0 -0
  768. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/sample-code-base/sample.py +0 -0
  769. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  770. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/watch.js +0 -0
  771. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/watch.lisp +0 -0
  772. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/watch.py +0 -0
  773. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/fixtures/watch_question.js +0 -0
  774. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/help/test_help.py +0 -0
  775. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/observations/test_observation_service.py +0 -0
  776. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/server/acp/__init__.py +0 -0
  777. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/server/acp/test_bridge.py +0 -0
  778. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/server/acp/test_dispatch.py +0 -0
  779. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/server/acp/test_models.py +0 -0
  780. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/server/acp/test_protocol.py +0 -0
  781. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/test_llms_api_base.py +0 -0
  782. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/test_llms_aws_sigv4.py +0 -0
  783. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/test_llms_cache_control.py +0 -0
  784. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/test_llms_gemini_auth.py +0 -0
  785. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/test_llms_github_copilot_auth.py +0 -0
  786. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/test_llms_hyperscalers.py +0 -0
  787. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/test_llms_messages_stream.py +0 -0
  788. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/test_llms_messages_wire.py +0 -0
  789. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/test_llms_mistral_adapter.py +0 -0
  790. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/test_llms_mistral_provider.py +0 -0
  791. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/test_llms_providers_json.py +0 -0
  792. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/test_llms_reasoning_config.py +0 -0
  793. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/test_llms_reasoning_extract.py +0 -0
  794. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/test_llms_reasoning_summaries.py +0 -0
  795. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/test_llms_vision.py +0 -0
  796. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/test_loop_detect.py +0 -0
  797. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/test_memory_control.py +0 -0
  798. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/test_model_config.py +0 -0
  799. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/test_onboarding.py +0 -0
  800. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/test_skills_importer.py +0 -0
  801. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/workspaces/conftest.py +0 -0
  802. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/workspaces/test_config.py +0 -0
  803. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/workspaces/test_paths.py +0 -0
  804. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/workspaces/test_subagents.py +0 -0
  805. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/helpers/workspaces/test_workspace_manager.py +0 -0
  806. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/hooks/__init__.py +0 -0
  807. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/hooks/test_base.py +0 -0
  808. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/hooks/test_manager.py +0 -0
  809. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/hooks/test_registry.py +0 -0
  810. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/integration/test_agent_mcp_management.py +0 -0
  811. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/integration/test_config_loading.py +0 -0
  812. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/integration/test_mcp_management.py +0 -0
  813. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/mcp/__init__.py +0 -0
  814. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/mcp/conftest.py +0 -0
  815. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/mcp/mock_server.py +0 -0
  816. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/mcp/test_keepalive_concurrency.py +0 -0
  817. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/mcp/test_keepalive_config.py +0 -0
  818. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/mcp/test_keepalive_integration.py +0 -0
  819. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/mcp/test_keepalive_logging.py +0 -0
  820. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/mcp/test_keepalive_resilience.py +0 -0
  821. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/mcp/test_keepalive_unit.py +0 -0
  822. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/mcp/test_manager.py +0 -0
  823. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/mcp/test_manager_retry.py +0 -0
  824. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/mcp/test_server_name_normalization.py +0 -0
  825. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/scrape/test_playwright_disable.py +0 -0
  826. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/scrape/test_scrape.py +0 -0
  827. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/subagents/__init__.py +0 -0
  828. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/subagents/conftest.py +0 -0
  829. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/subagents/test_commands.py +0 -0
  830. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/subagents/test_config.py +0 -0
  831. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/subagents/test_delegate.py +0 -0
  832. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/subagents/test_finished.py +0 -0
  833. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/subagents/test_io_proxy.py +0 -0
  834. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/subagents/test_service.py +0 -0
  835. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/subagents/test_sub_agent_coder.py +0 -0
  836. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/test_requests.py +0 -0
  837. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/tools/test_command_format_output.py +0 -0
  838. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/tools/test_command_timeout_paging.py +0 -0
  839. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/tools/test_edit_file_format_output.py +0 -0
  840. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/tools/test_extractions.py +0 -0
  841. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/tools/test_get_lines.py +0 -0
  842. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/tools/test_git_branch.py +0 -0
  843. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/tools/test_git_diff.py +0 -0
  844. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/tools/test_insert_block.py +0 -0
  845. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/tools/test_read_range_execute.py +0 -0
  846. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/tools/test_registry.py +0 -0
  847. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/tools/test_remove_mcp_tool.py +0 -0
  848. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/tools/test_resource_manager_paging.py +0 -0
  849. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/tools/test_tool_arguments.py +0 -0
  850. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/tools/test_tools_load_mcp_tool.py +0 -0
  851. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/tools/validations.py +0 -0
  852. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/tui/test_app.py +0 -0
  853. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/tui/test_completion_bar.py +0 -0
  854. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/unit/conftest.py +0 -0
  855. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/unit/test_deep_merge.py +0 -0
  856. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/unit/test_edge_cases.py +0 -0
  857. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/unit/test_load_mcp.py +0 -0
  858. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/unit/test_performance.py +0 -0
  859. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/unit/test_queues.py +0 -0
  860. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/unit/test_remove_mcp.py +0 -0
  861. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/unit/test_retry_backoff.py +0 -0
  862. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/unit/test_shallow_merge.py +0 -0
  863. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/unit/test_signals.py +0 -0
  864. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/unit/test_unit_load_mcp_tool.py +0 -0
  865. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/unit/test_unit_remove_mcp_tool.py +0 -0
  866. {cecli_dev-1.6.0rc4 → cecli_dev-1.6.1}/tests/unit/test_ws_server.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cecli-dev
3
- Version: 1.6.0rc4
3
+ Version: 1.6.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
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '1.6.0rc4'
22
- __version_tuple__ = version_tuple = (1, 6, 0, 'rc4')
21
+ __version__ = version = '1.6.1'
22
+ __version_tuple__ = version_tuple = (1, 6, 1)
23
23
 
24
- __commit_id__ = commit_id = 'gf40f954f0'
24
+ __commit_id__ = commit_id = 'ge49b18e26'
@@ -939,7 +939,11 @@ class AgentCoder(Coder):
939
939
  lint_coro = self.lint_edited(edited, show_output=False)
940
940
  lint_errors, interrupted = await interruptible(lint_coro, self.interrupt_event)
941
941
  if interrupted:
942
- raise KeyboardInterrupt("Interrupted during linting")
942
+ # Abort the turn with CancelledError, which the linear run loop
943
+ # handles by re-prompting for input. KeyboardInterrupt is a
944
+ # BaseException that would escape the worker's event loop and
945
+ # leave it unable to accept further prompts.
946
+ raise asyncio.CancelledError("Interrupted during linting")
943
947
 
944
948
  has_errors = False
945
949
 
@@ -1078,7 +1082,10 @@ class AgentCoder(Coder):
1078
1082
  sleep_coro = asyncio.sleep(command_timeout / 2)
1079
1083
  _res, interrupted = await interruptible(sleep_coro, self.interrupt_event)
1080
1084
  if interrupted:
1081
- raise KeyboardInterrupt("Interrupted while waiting for background commands")
1085
+ # Use CancelledError (not KeyboardInterrupt) so the interrupt
1086
+ # stays inside the worker loop and re-prompts, matching the
1087
+ # lint interrupt path above.
1088
+ raise asyncio.CancelledError("Interrupted while waiting for background commands")
1082
1089
  return True
1083
1090
 
1084
1091
  # Check for recently finished commands that need reflection
@@ -46,6 +46,7 @@ from cecli.helpers.loop_detect import LoopDetectedError, LoopDetector
46
46
  from cecli.helpers.memory_control import trim_memory
47
47
  from cecli.helpers.observations.service import ObservationService
48
48
  from cecli.helpers.profiler import TokenProfiler
49
+ from cecli.helpers.sessions import SessionManager
49
50
  from cecli.helpers.threading import ThreadSafeEvent
50
51
  from cecli.history import ChatSummary
51
52
  from cecli.hooks import HookIntegration
@@ -64,7 +65,6 @@ from cecli.repo import ANY_GIT_ERROR, GitRepoProxy
64
65
  from cecli.repomap import RepoMap
65
66
  from cecli.report import update_error_prefix
66
67
  from cecli.run_cmd import run_cmd_async
67
- from cecli.sessions import SessionManager
68
68
  from cecli.tools.utils.output import print_tool_response
69
69
  from cecli.tools.utils.registry import ToolRegistry
70
70
  from cecli.utils import copy_tool_call, format_tokens, is_image_file
@@ -1999,7 +1999,13 @@ class Coder(metaclass=UsageMeta):
1999
1999
  if self.commands.is_run_command(inp):
2000
2000
  self.commands.cmd_running_event.clear() # Command is running
2001
2001
 
2002
- return await self.commands.run(inp, coder=self, **run_kwargs)
2002
+ try:
2003
+ return await self.commands.run(inp, coder=self, **run_kwargs)
2004
+ finally:
2005
+ # Dispatch can return early (unknown/ambiguous command) or
2006
+ # raise without ever running a command; the gate must still be
2007
+ # reopened or the input/output loops park forever.
2008
+ self.commands.cmd_running_event.set()
2003
2009
 
2004
2010
  await self.check_for_file_mentions(inp)
2005
2011
  inp = await self.check_for_urls(inp)
@@ -5228,6 +5234,7 @@ class Coder(metaclass=UsageMeta):
5228
5234
  session_manager.save_session,
5229
5235
  getattr(self.args, "auto_save_session_name", "auto-save"),
5230
5236
  False,
5237
+ True,
5231
5238
  )
5232
5239
  except Exception:
5233
5240
  # Don't show errors for auto-save to avoid interrupting the user experience
@@ -11,7 +11,7 @@ class ListSessionsCommand(BaseCommand):
11
11
  @classmethod
12
12
  async def execute(cls, io, coder, args, **kwargs):
13
13
  """Execute the list-sessions command with given parameters."""
14
- from cecli import sessions
14
+ from cecli.helpers import sessions
15
15
 
16
16
  session_manager = sessions.SessionManager(coder, io)
17
17
  sessions_list = session_manager.list_sessions()
@@ -15,7 +15,7 @@ class LoadSessionCommand(BaseCommand):
15
15
  io.tool_output("Usage: /load-session <session-name>")
16
16
  return format_command_result(io, "load-session", "No session name provided")
17
17
 
18
- from cecli import sessions
18
+ from cecli.helpers import sessions
19
19
 
20
20
  session_manager = sessions.SessionManager(coder, io)
21
21
  await session_manager.load_session(args.strip())
@@ -26,7 +26,7 @@ class LoadSessionCommand(BaseCommand):
26
26
  def get_completions(cls, io, coder, args) -> List[str]:
27
27
  """Get completion options for load-session command."""
28
28
  # Return available session names for completion
29
- from cecli import sessions
29
+ from cecli.helpers import sessions
30
30
 
31
31
  session_manager = sessions.SessionManager(coder, io)
32
32
  sessions_list = session_manager.list_sessions()
@@ -41,7 +41,10 @@ class LoadSessionCommand(BaseCommand):
41
41
  help_text += "\nExamples:\n"
42
42
  help_text += " /load-session my-feature # Load session 'my-feature'\n"
43
43
  help_text += " /load-session bug-fix # Load session 'bug-fix'\n"
44
- help_text += "\nSessions are loaded from the .cecli/sessions/ directory.\n"
44
+ help_text += (
45
+ "\nSessions are loaded from the .cecli/sessions/ directory. Loading a session"
46
+ " also restores any sub-agents saved with it.\n"
47
+ )
45
48
  help_text += (
46
49
  "Use /list-sessions to see saved sessions and /save-session to save a session.\n"
47
50
  )
@@ -15,7 +15,7 @@ class SaveSessionCommand(BaseCommand):
15
15
  io.tool_error("Please provide a session name to save.")
16
16
  return format_command_result(io, "save-session", "No session name provided")
17
17
 
18
- from cecli import sessions
18
+ from cecli.helpers import sessions
19
19
 
20
20
  session_manager = sessions.SessionManager(coder, io)
21
21
  session_manager.save_session(args.strip())
@@ -26,7 +26,7 @@ class SaveSessionCommand(BaseCommand):
26
26
  def get_completions(cls, io, coder, args) -> List[str]:
27
27
  """Get completion options for save-session command."""
28
28
  # Return existing session names for completion to prevent accidental overwrites
29
- from cecli import sessions
29
+ from cecli.helpers import sessions
30
30
 
31
31
  session_manager = sessions.SessionManager(coder, io)
32
32
  sessions_list = session_manager.list_sessions()
@@ -42,6 +42,10 @@ class SaveSessionCommand(BaseCommand):
42
42
  help_text += " /save-session my-feature # Save session as 'my-feature'\n"
43
43
  help_text += " /save-session bug-fix # Save session as 'bug-fix'\n"
44
44
  help_text += "\nSessions are saved in the .cecli/sessions/ directory as JSON files.\n"
45
+ help_text += (
46
+ "When the session has sub-agents it is saved as a folder holding the primary"
47
+ " and each sub-agent payload.\n"
48
+ )
45
49
  help_text += "Use /list-sessions to see saved sessions and /load-session to load them.\n"
46
50
  help_text += (
47
51
  "\nNote: Existing session names will be shown for tab completion to help prevent"
@@ -9,16 +9,10 @@ logger = logging.getLogger(__name__)
9
9
  # Strong reference pool to protect fire-and-forget tasks from garbage collection
10
10
  background_tasks: set = set()
11
11
 
12
-
13
- def _handle_result(task: asyncio.Task) -> None:
14
- """Callback to clean up references and capture exceptions safely."""
15
- background_tasks.discard(task)
16
- try:
17
- task.result()
18
- except asyncio.CancelledError:
19
- pass
20
- except Exception as e:
21
- logger.error(f"Background task failed: {e}", exc_info=True)
12
+ # Grace period granted to a cancelled task to unwind. Transports that defer or
13
+ # swallow cancellation (AnyIO cancel scopes, shielded streams) would otherwise
14
+ # block the interrupting coroutine forever.
15
+ INTERRUPT_UNWIND_GRACE_SECONDS = 5.0
22
16
 
23
17
 
24
18
  def fire_and_forget(coro) -> asyncio.Task:
@@ -35,6 +29,7 @@ async def interruptible_async_generator(async_generator, interrupt_event):
35
29
  """
36
30
  gen = async_generator.__aiter__()
37
31
  interrupt_task = asyncio.create_task(interrupt_event.wait())
32
+ next_task = None
38
33
 
39
34
  try:
40
35
  while True:
@@ -44,11 +39,7 @@ async def interruptible_async_generator(async_generator, interrupt_event):
44
39
  )
45
40
 
46
41
  if interrupt_task in done:
47
- next_task.cancel()
48
- try:
49
- await next_task
50
- except asyncio.CancelledError:
51
- pass
42
+ await cancel_and_abandon([next_task])
52
43
  break
53
44
 
54
45
  if next_task in done:
@@ -57,11 +48,9 @@ async def interruptible_async_generator(async_generator, interrupt_event):
57
48
  except StopAsyncIteration:
58
49
  break
59
50
  finally:
60
- interrupt_task.cancel()
61
- try:
62
- await interrupt_task
63
- except asyncio.CancelledError:
64
- pass
51
+ # Cancel whichever task is still pending if the generator is closed early
52
+ # (e.g. GeneratorExit at the wait or yield), not just the interrupt waiter.
53
+ await cancel_and_abandon([task for task in (next_task, interrupt_task) if task is not None])
65
54
 
66
55
 
67
56
  def is_active(task):
@@ -83,6 +72,10 @@ async def interruptible(coroutine, interrupt_event):
83
72
  A tuple of (result, interrupted).
84
73
  - If not interrupted: (coroutine_result, False)
85
74
  - If interrupted: (None, True)
75
+
76
+ A task that ignores cancellation is abandoned once the grace period
77
+ elapses (see cancel_and_abandon) so a wedged transport cannot block the
78
+ caller forever.
86
79
  """
87
80
  if interrupt_event is None:
88
81
  interrupt_event = ThreadSafeEvent()
@@ -90,25 +83,26 @@ async def interruptible(coroutine, interrupt_event):
90
83
  main_task = asyncio.create_task(coroutine)
91
84
  interrupt_task = asyncio.create_task(interrupt_event.wait())
92
85
 
93
- done, pending = await asyncio.wait(
94
- {main_task, interrupt_task},
95
- return_when=asyncio.FIRST_COMPLETED,
96
- )
86
+ try:
87
+ done, pending = await asyncio.wait(
88
+ {main_task, interrupt_task},
89
+ return_when=asyncio.FIRST_COMPLETED,
90
+ )
97
91
 
98
- for task in pending:
99
- task.cancel()
100
- try:
101
- await task
102
- except asyncio.CancelledError:
103
- pass # Expected
92
+ await cancel_and_abandon(pending)
104
93
 
105
- if interrupt_task in done:
106
- return None, True
94
+ if interrupt_task in done:
95
+ return None, True
107
96
 
108
- try:
109
- return main_task.result(), False
110
- except asyncio.CancelledError:
111
- return None, True
97
+ try:
98
+ return main_task.result(), False
99
+ except asyncio.CancelledError:
100
+ return None, True
101
+ finally:
102
+ # When the caller is cancelled while waiting, neither branch above
103
+ # runs, so cancel any remaining tasks here instead of orphaning the
104
+ # inner coroutine (which would keep running detached).
105
+ await cancel_and_abandon([main_task, interrupt_task])
112
106
 
113
107
 
114
108
  def task_is_cancelling() -> bool:
@@ -133,3 +127,58 @@ def task_is_cancelling() -> bool:
133
127
 
134
128
  # Python 3.10 fallback: best-effort only (see docstring).
135
129
  return bool(getattr(task, "_must_cancel", False))
130
+
131
+
132
+ def drain_task_results(tasks):
133
+ """Consume exceptions from finished tasks so they aren't reported as unretrieved."""
134
+ for task in tasks:
135
+ if task.cancelled():
136
+ continue
137
+
138
+ try:
139
+ exc = task.exception()
140
+ except (asyncio.CancelledError, asyncio.InvalidStateError):
141
+ continue
142
+
143
+ if exc is not None:
144
+ logger.warning(f"Task raised while unwinding after interrupt: {exc}")
145
+
146
+
147
+ async def cancel_and_abandon(tasks, grace=INTERRUPT_UNWIND_GRACE_SECONDS):
148
+ """Cancel tasks and wait up to ``grace`` seconds for them to unwind.
149
+
150
+ Cancellation is cooperative, and some transports (AnyIO cancel scopes,
151
+ shielded streams) defer or swallow it. Waiting on them unconditionally
152
+ would block the caller forever, so anything still running after the grace
153
+ period is abandoned: it keeps a strong reference so it can finish on its
154
+ own without tripping the "Task was destroyed but it is pending" warning.
155
+ """
156
+ pending_tasks = [task for task in tasks if not task.done()]
157
+
158
+ if not pending_tasks:
159
+ return
160
+
161
+ for task in pending_tasks:
162
+ task.cancel()
163
+
164
+ done, still_running = await asyncio.wait(set(pending_tasks), timeout=grace)
165
+ drain_task_results(done)
166
+
167
+ for task in still_running:
168
+ logger.warning(
169
+ f"Task ignored cancellation after {grace}s; abandoning it. It may still be"
170
+ " running and could touch shared state later."
171
+ )
172
+ background_tasks.add(task)
173
+ task.add_done_callback(_handle_result)
174
+
175
+
176
+ def _handle_result(task: asyncio.Task) -> None:
177
+ """Callback to clean up references and capture exceptions safely."""
178
+ background_tasks.discard(task)
179
+ try:
180
+ task.result()
181
+ except asyncio.CancelledError:
182
+ pass
183
+ except Exception as e:
184
+ logger.error(f"Background task failed: {e}", exc_info=True)
@@ -297,7 +297,7 @@ def apply_contextual_marker(
297
297
  range_end: str,
298
298
  num_lines: int,
299
299
  ) -> tuple[list[int], list[int]]:
300
- """Expand range using @C{{num}}, @P{{num}}, or @N{{num}} contextual markers.
300
+ """Expand range using @C<num>, @P<num>, or @N<num> contextual markers.
301
301
 
302
302
  Requires exactly one start match. Raises ValueError when the number
303
303
  of start matches is not 1 (the caller is expected to format the error
@@ -0,0 +1,137 @@
1
+ import asyncio
2
+ import logging
3
+ import os
4
+ import sys
5
+ import threading
6
+ import time
7
+ import traceback
8
+
9
+ from cecli.decoding import safe_open
10
+
11
+ # Set up logging to catch asyncio framework logs
12
+ logging.basicConfig(level=logging.INFO)
13
+ logging.getLogger("asyncio").setLevel(logging.DEBUG)
14
+
15
+
16
+ # Registered event loops whose asyncio tasks are included in each dump.
17
+ # Task state is only read from the owning loop (see _dump_async_state), since
18
+ # thread stacks alone cannot show coroutine/task state.
19
+ _async_loops: dict = {}
20
+ _async_state_providers: dict = {}
21
+
22
+
23
+ def dump_stacks_to_file(filename=".cecli/logs/threads.log", interval=5, max_prints=10):
24
+ """Periodically writes stack traces to a file, resetting it after max_prints."""
25
+ print_count = 0
26
+
27
+ log_dir = os.path.dirname(filename)
28
+ if log_dir:
29
+ os.makedirs(log_dir, exist_ok=True)
30
+
31
+ while True:
32
+ time.sleep(interval)
33
+ try:
34
+ # Determine mode: "w" to overwrite/clear on the 11th print, "a" to append
35
+ mode = "w" if print_count >= max_prints else "a"
36
+
37
+ with safe_open(filename, mode) as f:
38
+ if mode == "w":
39
+ f.write(f"--- Log reset automatically after {max_prints} prints ---\n")
40
+ print_count = 0 # Reset the counter
41
+
42
+ timestamp = time.strftime("%Y-%m-%d %H:%M:%S")
43
+ f.write(
44
+ f"\n=================== STACK TRACE DUMP ({timestamp}) ===================\n"
45
+ )
46
+
47
+ for thread_id, frame in sys._current_frames().items():
48
+ thread_obj = threading._active.get(thread_id)
49
+ thread_name = thread_obj.name if thread_obj else "Unknown Thread"
50
+
51
+ f.write(f"\nThread Name: {thread_name} (ID: {thread_id})\n")
52
+ f.write("-" * 40 + "\n")
53
+ traceback.print_stack(frame, file=f)
54
+
55
+ f.write("=" * 70 + "\n")
56
+
57
+ for name in list(_async_loops.keys()):
58
+ _schedule_async_dump(name, filename)
59
+
60
+ print_count += 1 # Increment after a successful write
61
+
62
+ except Exception as e:
63
+ print(f"Error writing stack dump to file: {e}", file=sys.stderr)
64
+
65
+
66
+ def register_async_loop(name, loop) -> None:
67
+ """Register an event loop to include asyncio task dumps for."""
68
+ _async_loops[name] = loop
69
+
70
+
71
+ def register_async_state_provider(name, provider) -> None:
72
+ """Register a callable returning extra state text for a loop's dump."""
73
+ _async_state_providers[name] = provider
74
+
75
+
76
+ def _format_async_tasks(loop, name) -> str:
77
+ """Return a readable dump of every task on ``loop`` (loop thread only)."""
78
+ lines = [f"\n------------------- ASYNCIO TASKS ({name}) -------------------\n"]
79
+
80
+ try:
81
+ tasks = asyncio.all_tasks(loop)
82
+ except Exception as e:
83
+ return f"<unable to read asyncio tasks: {e}>\n"
84
+
85
+ for task in tasks:
86
+ lines.append(f"\n[{task.get_name()}] done={task.done()} cancelled={task.cancelled()}\n")
87
+ lines.append(f" {task.get_coro()!r}\n")
88
+
89
+ for frame in task.get_stack(limit=10):
90
+ lines.append("".join(traceback.format_stack(frame, limit=1)))
91
+
92
+ return "".join(lines)
93
+
94
+
95
+ def _dump_async_state(name, filename) -> None:
96
+ """Append asyncio task/state info for one loop. Runs on the loop thread."""
97
+ loop = _async_loops.get(name)
98
+ if loop is None or loop.is_closed():
99
+ return
100
+
101
+ parts = []
102
+ provider = _async_state_providers.get(name)
103
+
104
+ if provider is not None:
105
+ try:
106
+ parts.append(provider())
107
+ except Exception as e:
108
+ parts.append(f"<state provider error: {e}>\n")
109
+
110
+ parts.append(_format_async_tasks(loop, name))
111
+
112
+ try:
113
+ with safe_open(filename, "a") as f:
114
+ f.write("".join(parts))
115
+ except Exception:
116
+ pass
117
+
118
+
119
+ def _schedule_async_dump(name, filename) -> None:
120
+ """Schedule an async-state dump onto a registered loop, if it is running."""
121
+ loop = _async_loops.get(name)
122
+ if loop is None or loop.is_closed() or not loop.is_running():
123
+ return
124
+
125
+ try:
126
+ loop.call_soon_threadsafe(_dump_async_state, name, filename)
127
+ except RuntimeError:
128
+ pass
129
+
130
+
131
+ # Start the monitor in a background daemon thread
132
+ monitor_thread = threading.Thread(
133
+ target=dump_stacks_to_file,
134
+ args=(".cecli/logs/threads.log", 5, 10), # Clears every 10 prints
135
+ daemon=True,
136
+ )
137
+ monitor_thread.start()
@@ -333,7 +333,9 @@ def _closest_provider_match(sources, provider, route):
333
333
 
334
334
  Raw sources are enumerated via a lightweight top-level key scan (a string
335
335
  pass, never a full parse) and only ``provider/``-prefixed keys are parsed
336
- for scoring, so the fallback stays memory friendly.
336
+ for scoring, so the fallback stays memory friendly. A candidate with no
337
+ shared leading characters is not a match: returning it would let an
338
+ unrelated route inherit an arbitrary sibling record's wire mode.
337
339
  """
338
340
  if not provider:
339
341
  return None
@@ -376,7 +378,7 @@ def _closest_provider_match(sources, provider, route):
376
378
  best_score = score
377
379
  best = record
378
380
 
379
- return best
381
+ return best if best_score > 0 else None
380
382
 
381
383
 
382
384
  def _prefix_score(left, right):
@@ -399,6 +399,10 @@ class ModelProviderManager:
399
399
  )
400
400
  response.raise_for_status()
401
401
  return response.json()
402
+ except requests.exceptions.ConnectionError:
403
+ # Unreachable endpoint (e.g. no local Ollama server at
404
+ # localhost:11434): stay silent and contribute no models.
405
+ return None
402
406
  except Exception as ex:
403
407
  print(f"Failed to fetch {provider} model list: {ex}")
404
408
  return None
@@ -89,10 +89,27 @@ class AgentProxy:
89
89
  self._coder,
90
90
  mcp_server=server,
91
91
  mcp_tool_name=schema_name,
92
+ tool_schema=tool_schema,
92
93
  )
93
94
 
94
95
  raise ValueError(f"Unknown tool: '{tool_name}'")
95
96
 
97
+ def get_tool_schema(self, tool_name: str) -> dict[str, Any] | None:
98
+ """Return a copy of the full function-calling schema for a tool.
99
+
100
+ Returns ``None`` when the tool has no schema. Unknown or disallowed
101
+ tools raise the same errors as ``get_tool``.
102
+ """
103
+ return self.get_tool(tool_name).get_schema()
104
+
105
+ def get_tool_signature(self, tool_name: str) -> str | None:
106
+ """Return a readable Python-style call signature for a tool.
107
+
108
+ Optional parameters without a declared default use ``...`` to show
109
+ that they may be omitted without implying a value such as ``None``.
110
+ """
111
+ return self.get_tool(tool_name).get_signature()
112
+
96
113
  def _find_mcp_server(self, server_name: str, server_prefix: str) -> Any:
97
114
  if not hasattr(self._coder, "mcp_manager") or not self._coder.mcp_manager:
98
115
  return None
@@ -547,7 +547,7 @@ def build_orchestration_context_block(agent_config: dict[str, Any]) -> str | Non
547
547
  context = """<context name="orchestration" from="agent">
548
548
  The `Orchestrate` tool runs Python in a sandbox where you can script other tools programmatically.
549
549
  Use it for batch, loop-heavy, and repeat-able workflows.
550
- Variables and helpers persist across calls; `state` persists across all Orchestrate calls in the session.
550
+ The sandbox is stateless between calls — variables don't persist. To carry values across calls, use `state` (per-agent) or `shared_state` (cross-agent).
551
551
  You may need to explore the below primitives to understand how to use the sandbox effectively.
552
552
 
553
553
  ### Primitives
@@ -556,11 +556,13 @@ You may need to explore the below primitives to understand how to use the sandbo
556
556
  |-----------|--------------|
557
557
  | `Agent.allowed_methods()` / `Agent.allowed_tools()` | List helper methods and available tools |
558
558
  | `Agent.get_tool(name)` | Get a tool proxy (case-insensitive; `Local--` / `{{Server Name}}--` prefixes ok) |
559
+ | `Agent.get_tool_schema(name)` | Return a copy of the full function-calling JSON schema |
560
+ | `Agent.get_tool_signature(name)` | Return a readable Python-style signature; optional params without defaults appear as `= ...` |
559
561
  | `await tool.call(**params)` | Run a tool; returns `{"result": [...], "errors": [...], "details": [...]}`, items with shape `{"content", "_"}` |
560
562
  | `Agent.peek(result)` / `Agent.get_value(result, path, default?)` | Inspect / extract values from tool results. path is dot-separated string |
561
563
  | `Agent.resolve_regions(path, specs)` / `Agent.edit_region(path, edits)` | Resolve text boundaries once, then apply edits |
562
564
  | `gather(**tasks)` | Run tasks concurrently; results expose `.key` and `["key"]` |
563
- | `state` / `shared_state` | Persistent dicts; `state.get(k)` falls back to `shared_state` |
565
+ | `state` / `shared_state` | Persistent dicts that survive between Orchestrate calls; `state.get(k)` falls back to `shared_state`. Use these for anything you need to reuse in a later call |
564
566
  | `print(...)` / `reset(local_vars=True, state=False)` | Emit output / clear namespaces |
565
567
  | `typeof(x)`, `isinstance(x, t)`, `hasattr(x, n)`, `repr(x)`, `vars(obj)` | Type inspection and debugging |
566
568
 
@@ -12,6 +12,7 @@ import json
12
12
  import pathlib
13
13
  import re as _re_mod
14
14
  import traceback as _tb_mod
15
+ from collections.abc import Mapping
15
16
  from typing import Any
16
17
 
17
18
  # ---------------------------------------------------------------------------
@@ -139,12 +140,12 @@ async def _safe_sleep(seconds: float) -> None:
139
140
  await asyncio.sleep(seconds)
140
141
 
141
142
 
142
- class GatherResult:
143
- """Result container for named ``gather()`` calls.
143
+ class GatherResult(Mapping[str, Any]):
144
+ """Read-only mapping of named ``gather()`` task results.
144
145
 
145
- Supports both attribute access (``results.my_task``) and
146
- key access (``results["my_task"]``), plus ``len()`` and
147
- iteration for unpacking.
146
+ Supports standard mapping access (``results["task"]``, iteration over
147
+ keys, and ``keys()``, ``values()``, and ``items()``) plus attribute access
148
+ as a convenience. Use key access when task names may collide with methods.
148
149
  """
149
150
 
150
151
  def __init__(self, results: dict[str, Any]) -> None:
@@ -192,7 +193,7 @@ class GatherResult:
192
193
 
193
194
  def __iter__(self):
194
195
  results = object.__getattribute__(self, "_results")
195
- return iter(results.items())
196
+ return iter(results)
196
197
 
197
198
  def keys(self) -> Any:
198
199
  results = object.__getattribute__(self, "_results")
@@ -225,12 +226,12 @@ async def _safe_gather(*args: Any, **named_awaitables: Any):
225
226
  Safely execute multiple awaitables concurrently.
226
227
 
227
228
  All awaitables must be passed as keyword arguments. Results are returned
228
- as a ``GatherResult`` with attribute and key access:
229
+ as a ``GatherResult`` mapping with attribute access as a convenience:
229
230
 
230
231
  results = await gather(read_a=task_a, grep_b=task_b)
231
- print(results.read_a) # attribute access
232
- print(results["grep_b"]) # key access
233
- len(results) # number of results
232
+ print(results["read_a"]) # canonical mapping access
233
+ print(results.grep_b) # attribute convenience
234
+ list(results) # task names
234
235
 
235
236
  Forces ``return_exceptions=True`` so that failures in one task
236
237
  do not crash the entire batch. Exceptions are converted to