cecli-dev 0.100.10rc1__tar.gz → 0.100.10rc2__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 (688) hide show
  1. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/PKG-INFO +1 -1
  2. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/_version.py +3 -3
  3. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/agent_coder.py +5 -0
  4. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/background_commands.py +144 -27
  5. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/command.py +142 -73
  6. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli_dev.egg-info/PKG-INFO +1 -1
  7. cecli_dev-0.100.10rc2/cecli_dev.egg-info/scm_version.json +8 -0
  8. cecli_dev-0.100.10rc1/cecli_dev.egg-info/scm_version.json +0 -8
  9. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/.dockerignore +0 -0
  10. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/.flake8 +0 -0
  11. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/.gitattributes +0 -0
  12. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
  13. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/.github/workflows/check_pypi_version.yml +0 -0
  14. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/.github/workflows/docker-build-test.yml +0 -0
  15. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/.github/workflows/docker-release.yml +0 -0
  16. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/.github/workflows/issues.yml +0 -0
  17. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/.github/workflows/pages.yml +0 -0
  18. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/.github/workflows/pre-commit.yml +0 -0
  19. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/.github/workflows/release.yml +0 -0
  20. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/.github/workflows/ubuntu-tests.yml +0 -0
  21. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/.github/workflows/windows-tests.yml +0 -0
  22. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/.github/workflows/windows_check_pypi_version.yml +0 -0
  23. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/.gitignore +0 -0
  24. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/.pre-commit-config.yaml +0 -0
  25. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/CHANGELOG.md +0 -0
  26. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/CNAME +0 -0
  27. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/CONTRIBUTING.md +0 -0
  28. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/HISTORY.md +0 -0
  29. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/LICENSE.txt +0 -0
  30. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/MANIFEST.in +0 -0
  31. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/README.md +0 -0
  32. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/Dockerfile +0 -0
  33. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/README.md +0 -0
  34. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/__init__.py +0 -0
  35. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/benchmark.py +0 -0
  36. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/benchmark_classic.py +0 -0
  37. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/clone-exercism.sh +0 -0
  38. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/cpp-test.sh +0 -0
  39. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/docker.sh +0 -0
  40. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/docker_build.sh +0 -0
  41. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/install-docker-ubuntu.sh +0 -0
  42. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/npm-test.sh +0 -0
  43. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/over_time.py +0 -0
  44. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/plot.sh +0 -0
  45. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/plots.py +0 -0
  46. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/problem_stats.py +0 -0
  47. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/prompts.py +0 -0
  48. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/refactor_tools.py +0 -0
  49. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/rsync.sh +0 -0
  50. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/rungrid.py +0 -0
  51. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/swe-bench-lite.txt +0 -0
  52. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/swe-bench.txt +0 -0
  53. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/swe_bench.py +0 -0
  54. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/test_benchmark.py +0 -0
  55. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/variations.1.sh +0 -0
  56. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/variations.2.sh +0 -0
  57. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/variations.3.sh +0 -0
  58. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/benchmark/variations.4.sh +0 -0
  59. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/__init__.py +0 -0
  60. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/__main__.py +0 -0
  61. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/args.py +0 -0
  62. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/args_formatter.py +0 -0
  63. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/change_tracker.py +0 -0
  64. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/__init__.py +0 -0
  65. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/architect_coder.py +0 -0
  66. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/ask_coder.py +0 -0
  67. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/base_coder.py +0 -0
  68. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/chat_chunks.py +0 -0
  69. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/context_coder.py +0 -0
  70. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/copypaste_coder.py +0 -0
  71. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/editblock_coder.py +0 -0
  72. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/editblock_fenced_coder.py +0 -0
  73. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/editblock_func_coder.py +0 -0
  74. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/editor_diff_fenced_coder.py +0 -0
  75. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/editor_editblock_coder.py +0 -0
  76. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/editor_whole_coder.py +0 -0
  77. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/hashline_coder.py +0 -0
  78. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/help_coder.py +0 -0
  79. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/patch_coder.py +0 -0
  80. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/search_replace.py +0 -0
  81. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/shell.py +0 -0
  82. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/single_wholefile_func_coder.py +0 -0
  83. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/sub_agent_coder.py +0 -0
  84. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/udiff_coder.py +0 -0
  85. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/udiff_simple.py +0 -0
  86. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/wholefile_coder.py +0 -0
  87. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/coders/wholefile_func_coder.py +0 -0
  88. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/__init__.py +0 -0
  89. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/add.py +0 -0
  90. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/agent.py +0 -0
  91. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/agent_model.py +0 -0
  92. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/architect.py +0 -0
  93. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/ask.py +0 -0
  94. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/chat_mode.py +0 -0
  95. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/clear.py +0 -0
  96. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/code.py +0 -0
  97. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/command_prefix.py +0 -0
  98. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/commit.py +0 -0
  99. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/compact.py +0 -0
  100. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/context.py +0 -0
  101. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/context_blocks.py +0 -0
  102. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/context_management.py +0 -0
  103. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/copy.py +0 -0
  104. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/copy_context.py +0 -0
  105. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/core.py +0 -0
  106. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/diff.py +0 -0
  107. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/drop.py +0 -0
  108. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/editor.py +0 -0
  109. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/editor_model.py +0 -0
  110. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/exclude_skill.py +0 -0
  111. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/exit.py +0 -0
  112. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/git.py +0 -0
  113. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/hashline.py +0 -0
  114. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/help.py +0 -0
  115. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/history_search.py +0 -0
  116. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/hooks.py +0 -0
  117. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/hot_reload.py +0 -0
  118. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/include_skill.py +0 -0
  119. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/lint.py +0 -0
  120. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/list_mcp.py +0 -0
  121. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/list_sessions.py +0 -0
  122. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/list_skills.py +0 -0
  123. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/load.py +0 -0
  124. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/load_hook.py +0 -0
  125. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/load_mcp.py +0 -0
  126. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/load_session.py +0 -0
  127. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/load_skill.py +0 -0
  128. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/ls.py +0 -0
  129. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/map.py +0 -0
  130. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/map_refresh.py +0 -0
  131. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/merge.py +0 -0
  132. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/model.py +0 -0
  133. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/models.py +0 -0
  134. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/multiline_mode.py +0 -0
  135. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/paste.py +0 -0
  136. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/quit.py +0 -0
  137. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/read_only.py +0 -0
  138. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/read_only_stub.py +0 -0
  139. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/reap_agent.py +0 -0
  140. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/reasoning_effort.py +0 -0
  141. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/remove_hook.py +0 -0
  142. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/remove_mcp.py +0 -0
  143. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/remove_skill.py +0 -0
  144. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/report.py +0 -0
  145. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/reset.py +0 -0
  146. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/rules.py +0 -0
  147. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/run.py +0 -0
  148. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/save.py +0 -0
  149. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/save_session.py +0 -0
  150. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/settings.py +0 -0
  151. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/spawn_agent.py +0 -0
  152. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/switch_agent.py +0 -0
  153. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/terminal_data/linux.keytab +0 -0
  154. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/terminal_setup.py +0 -0
  155. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/test.py +0 -0
  156. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/think_tokens.py +0 -0
  157. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/tokens.py +0 -0
  158. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/undo.py +0 -0
  159. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/utils/__init__.py +0 -0
  160. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/utils/base_command.py +0 -0
  161. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/utils/helpers.py +0 -0
  162. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/utils/registry.py +0 -0
  163. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/utils/save_load_manager.py +0 -0
  164. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/voice.py +0 -0
  165. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/weak_model.py +0 -0
  166. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/web.py +0 -0
  167. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/commands/workspace.py +0 -0
  168. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/deprecated_args.py +0 -0
  169. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/diffs.py +0 -0
  170. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/dump.py +0 -0
  171. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/editor.py +0 -0
  172. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/exceptions.py +0 -0
  173. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/format_settings.py +0 -0
  174. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/help.py +0 -0
  175. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/help_pats.py +0 -0
  176. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/__init__.py +0 -0
  177. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/agents/__init__.py +0 -0
  178. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/agents/config.py +0 -0
  179. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/agents/service.py +0 -0
  180. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/command_parser.py +0 -0
  181. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/conversation/__init__.py +0 -0
  182. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/conversation/base_message.py +0 -0
  183. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/conversation/files.py +0 -0
  184. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/conversation/integration.py +0 -0
  185. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/conversation/manager.py +0 -0
  186. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/conversation/service.py +0 -0
  187. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/conversation/tags.py +0 -0
  188. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/conversation/utils.py +0 -0
  189. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/copypaste.py +0 -0
  190. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/coroutines.py +0 -0
  191. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/crypto.py +0 -0
  192. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/file_searcher.py +0 -0
  193. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/file_system/__init__.py +0 -0
  194. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/file_system/builders.py +0 -0
  195. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/file_system/ignore.py +0 -0
  196. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/file_system/ngram_index.py +0 -0
  197. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/file_system/service.py +0 -0
  198. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/file_system/trie_index.py +0 -0
  199. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/grep_ast/__init__.py +0 -0
  200. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/grep_ast/dump.py +0 -0
  201. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/grep_ast/grep_ast.py +0 -0
  202. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/grep_ast/main.py +0 -0
  203. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/grep_ast/parsers.py +0 -0
  204. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/grep_ast/tsl.py +0 -0
  205. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/hashline.py +0 -0
  206. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/hashpos/__init__.py +0 -0
  207. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/hashpos/hashpos.py +0 -0
  208. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/hashpos/hashpos.v1.bak +0 -0
  209. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/io_proxy.py +0 -0
  210. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/leak_detect.py +0 -0
  211. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/model_providers.py +0 -0
  212. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/monorepo/__init__.py +0 -0
  213. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/monorepo/config.py +0 -0
  214. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/monorepo/local_workspace.py +0 -0
  215. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/monorepo/project.py +0 -0
  216. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/monorepo/workspace.py +0 -0
  217. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/monorepo/worktree.py +0 -0
  218. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/nested.py +0 -0
  219. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/observations/__init__.py +0 -0
  220. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/observations/service.py +0 -0
  221. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/plugin_manager.py +0 -0
  222. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/profiler.py +0 -0
  223. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/requests.py +0 -0
  224. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/responses.py +0 -0
  225. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/similarity.py +0 -0
  226. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/skills.py +0 -0
  227. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/helpers/threading.py +0 -0
  228. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/history.py +0 -0
  229. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/hooks/__init__.py +0 -0
  230. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/hooks/base.py +0 -0
  231. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/hooks/integration.py +0 -0
  232. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/hooks/manager.py +0 -0
  233. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/hooks/registry.py +0 -0
  234. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/hooks/service.py +0 -0
  235. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/hooks/types.py +0 -0
  236. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/interruptible_input.py +0 -0
  237. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/io.py +0 -0
  238. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/linter.py +0 -0
  239. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/llm.py +0 -0
  240. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/main.py +0 -0
  241. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/mcp/__init__.py +0 -0
  242. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/mcp/manager.py +0 -0
  243. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/mcp/oauth.py +0 -0
  244. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/mcp/server.py +0 -0
  245. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/mcp/utils.py +0 -0
  246. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/mdstream.py +0 -0
  247. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/models.py +0 -0
  248. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/onboarding.py +0 -0
  249. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/__init__.py +0 -0
  250. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/agent.yml +0 -0
  251. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/architect.yml +0 -0
  252. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/ask.yml +0 -0
  253. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/base.yml +0 -0
  254. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/context.yml +0 -0
  255. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/copypaste.yml +0 -0
  256. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/editblock.yml +0 -0
  257. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/editblock_fenced.yml +0 -0
  258. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/editblock_func.yml +0 -0
  259. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/editor_diff_fenced.yml +0 -0
  260. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/editor_editblock.yml +0 -0
  261. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/editor_whole.yml +0 -0
  262. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/hashline.yml +0 -0
  263. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/help.yml +0 -0
  264. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/patch.yml +0 -0
  265. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/single_wholefile_func.yml +0 -0
  266. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/subagent.yml +0 -0
  267. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/udiff.yml +0 -0
  268. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/udiff_simple.yml +0 -0
  269. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/utils/__init__.py +0 -0
  270. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/utils/registry.py +0 -0
  271. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/utils/system.py +0 -0
  272. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/wholefile.yml +0 -0
  273. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/prompts/wholefile_func.yml +0 -0
  274. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
  275. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
  276. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
  277. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
  278. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
  279. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
  280. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
  281. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
  282. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
  283. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
  284. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
  285. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
  286. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
  287. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
  288. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
  289. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
  290. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
  291. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
  292. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
  293. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
  294. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
  295. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
  296. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
  297. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
  298. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
  299. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
  300. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
  301. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
  302. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
  303. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
  304. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
  305. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
  306. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/README.md +0 -0
  307. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
  308. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
  309. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
  310. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
  311. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
  312. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
  313. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
  314. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
  315. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
  316. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
  317. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
  318. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
  319. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
  320. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
  321. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
  322. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
  323. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
  324. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
  325. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
  326. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
  327. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
  328. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
  329. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
  330. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
  331. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
  332. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
  333. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
  334. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/reasoning_tags.py +0 -0
  335. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/repo.py +0 -0
  336. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/repomap.py +0 -0
  337. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/report.py +0 -0
  338. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/resources/__init__.py +0 -0
  339. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/resources/model-metadata.json +0 -0
  340. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/resources/model-settings.yml +0 -0
  341. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/resources/providers.json +0 -0
  342. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/run_cmd.py +0 -0
  343. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/scrape.py +0 -0
  344. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/sendchat.py +0 -0
  345. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/sessions.py +0 -0
  346. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/special.py +0 -0
  347. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/__init__.py +0 -0
  348. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/_yield.py +0 -0
  349. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/command_interactive.py +0 -0
  350. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/delegate.py +0 -0
  351. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/edit_text.py +0 -0
  352. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/explore_code.py +0 -0
  353. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/git_branch.py +0 -0
  354. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/git_diff.py +0 -0
  355. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/git_log.py +0 -0
  356. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/git_remote.py +0 -0
  357. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/git_show.py +0 -0
  358. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/git_status.py +0 -0
  359. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/grep.py +0 -0
  360. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/ls.py +0 -0
  361. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/read_range.py +0 -0
  362. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/resource_manager.py +0 -0
  363. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/thinking.py +0 -0
  364. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/undo_change.py +0 -0
  365. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/update_todo_list.py +0 -0
  366. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/utils/__init__.py +0 -0
  367. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/utils/base_tool.py +0 -0
  368. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/utils/helpers.py +0 -0
  369. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/utils/output.py +0 -0
  370. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/utils/registry.py +0 -0
  371. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/validations/__init__.py +0 -0
  372. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tools/validations/validations.py +0 -0
  373. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tui/__init__.py +0 -0
  374. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tui/app.py +0 -0
  375. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tui/io.py +0 -0
  376. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tui/styles.tcss +0 -0
  377. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tui/widgets/__init__.py +0 -0
  378. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tui/widgets/completion_bar.py +0 -0
  379. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tui/widgets/file_list.py +0 -0
  380. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tui/widgets/footer.py +0 -0
  381. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tui/widgets/input_area.py +0 -0
  382. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tui/widgets/input_container.py +0 -0
  383. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tui/widgets/key_hints.py +0 -0
  384. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tui/widgets/output.py +0 -0
  385. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tui/widgets/status_bar.py +0 -0
  386. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tui/widgets/subagent_pills.py +0 -0
  387. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/tui/worker.py +0 -0
  388. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/urls.py +0 -0
  389. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/utils.py +0 -0
  390. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/versioncheck.py +0 -0
  391. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/voice.py +0 -0
  392. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/waiting.py +0 -0
  393. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/watch.py +0 -0
  394. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/watch_prompts.py +0 -0
  395. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/Gemfile +0 -0
  396. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/_includes/blame.md +0 -0
  397. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/_includes/get-started.md +0 -0
  398. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/_includes/help-tip.md +0 -0
  399. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/_includes/help.md +0 -0
  400. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/_includes/install.md +0 -0
  401. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/_includes/keys.md +0 -0
  402. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/_includes/model-warnings.md +0 -0
  403. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/_includes/multi-line.md +0 -0
  404. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/_includes/python-m-aider.md +0 -0
  405. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/_includes/recording.css +0 -0
  406. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/_includes/recording.md +0 -0
  407. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/_includes/works-best.md +0 -0
  408. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/_sass/_features.scss +0 -0
  409. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/_sass/_footer.scss +0 -0
  410. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/_sass/_hero.scss +0 -0
  411. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/_sass/_info.scss +0 -0
  412. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/_sass/_layout.scss +0 -0
  413. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/_sass/_reset.scss +0 -0
  414. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/_sass/_testimonials.scss +0 -0
  415. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/_sass/_typography.scss +0 -0
  416. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/_sass/_variables.scss +0 -0
  417. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/_sass/custom/custom.scss +0 -0
  418. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/_sass/global-overrides.scss +0 -0
  419. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/config/adv-model-settings.md +0 -0
  420. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/config/agent-mode.md +0 -0
  421. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/config/api-keys.md +0 -0
  422. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/config/conf.md +0 -0
  423. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/config/custom-commands.md +0 -0
  424. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/config/custom-system-prompts.md +0 -0
  425. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/config/dotenv.md +0 -0
  426. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/config/editor.md +0 -0
  427. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/config/hooks.md +0 -0
  428. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/config/mcp.md +0 -0
  429. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/config/model-aliases.md +0 -0
  430. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/config/model-configuration.md +0 -0
  431. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/config/options.md +0 -0
  432. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/config/reasoning.md +0 -0
  433. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/config/security.md +0 -0
  434. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/config/skills.md +0 -0
  435. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/config/subagents.md +0 -0
  436. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/config/tui.md +0 -0
  437. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/config/workspaces.md +0 -0
  438. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/config.md +0 -0
  439. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/git.md +0 -0
  440. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/index.md +0 -0
  441. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/install/docker.md +0 -0
  442. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/install.md +0 -0
  443. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/languages.md +0 -0
  444. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/legal/contributor-agreement.md +0 -0
  445. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/legal/privacy.md +0 -0
  446. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/llms/anthropic.md +0 -0
  447. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/llms/azure.md +0 -0
  448. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/llms/bedrock.md +0 -0
  449. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/llms/cohere.md +0 -0
  450. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/llms/deepseek.md +0 -0
  451. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/llms/gemini.md +0 -0
  452. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/llms/github.md +0 -0
  453. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/llms/groq.md +0 -0
  454. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/llms/lm-studio.md +0 -0
  455. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/llms/ollama.md +0 -0
  456. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/llms/openai-compat.md +0 -0
  457. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/llms/openai.md +0 -0
  458. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/llms/openrouter.md +0 -0
  459. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/llms/other.md +0 -0
  460. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/llms/vertex.md +0 -0
  461. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/llms/warnings.md +0 -0
  462. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/llms/xai.md +0 -0
  463. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/llms.md +0 -0
  464. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/more/analytics.md +0 -0
  465. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/more/edit-formats.md +0 -0
  466. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/more/infinite-output.md +0 -0
  467. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/more-info.md +0 -0
  468. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/repomap.md +0 -0
  469. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/scripting.md +0 -0
  470. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
  471. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
  472. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/troubleshooting/imports.md +0 -0
  473. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
  474. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/troubleshooting/support.md +0 -0
  475. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
  476. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/troubleshooting/warnings.md +0 -0
  477. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/troubleshooting.md +0 -0
  478. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/usage/commands.md +0 -0
  479. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/usage/conventions.md +0 -0
  480. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/usage/copypaste.md +0 -0
  481. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/usage/images-urls.md +0 -0
  482. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/usage/lint-test.md +0 -0
  483. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/usage/modes.md +0 -0
  484. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/usage/not-code.md +0 -0
  485. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/usage/notifications.md +0 -0
  486. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/usage/optional.md +0 -0
  487. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/usage/sessions.md +0 -0
  488. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/usage/tips.md +0 -0
  489. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/usage/voice.md +0 -0
  490. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/usage/watch.md +0 -0
  491. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/docs/usage.md +0 -0
  492. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli/website/share/index.md +0 -0
  493. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli_dev.egg-info/SOURCES.txt +0 -0
  494. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli_dev.egg-info/dependency_links.txt +0 -0
  495. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli_dev.egg-info/entry_points.txt +0 -0
  496. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli_dev.egg-info/requires.txt +0 -0
  497. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli_dev.egg-info/scm_file_list.json +0 -0
  498. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/cecli_dev.egg-info/top_level.txt +0 -0
  499. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/docker/Dockerfile +0 -0
  500. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
  501. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/pyproject.toml +0 -0
  502. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/pytest.ini +0 -0
  503. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/requirements/common-constraints.txt +0 -0
  504. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/requirements/requirements-dev.in +0 -0
  505. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/requirements/requirements-dev.txt +0 -0
  506. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/requirements/requirements-help.in +0 -0
  507. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/requirements/requirements-help.txt +0 -0
  508. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/requirements/requirements-playwright.in +0 -0
  509. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/requirements/requirements-playwright.txt +0 -0
  510. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/requirements/requirements.in +0 -0
  511. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/requirements/tree-sitter.in +0 -0
  512. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/requirements.txt +0 -0
  513. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/30k-image.py +0 -0
  514. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/Dockerfile.jekyll +0 -0
  515. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/__init__.py +0 -0
  516. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/blame.py +0 -0
  517. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/clean_metadata.py +0 -0
  518. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/cost_analyzer.py +0 -0
  519. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/cost_calculator.py +0 -0
  520. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/dl_icons.py +0 -0
  521. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/filter-chat-mode.js +0 -0
  522. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/generate_providers.py +0 -0
  523. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/get_contributor_list.js +0 -0
  524. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/get_hashline.py +0 -0
  525. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/history_prompts.py +0 -0
  526. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/homepage.py +0 -0
  527. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/issues.py +0 -0
  528. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/jekyll_build.sh +0 -0
  529. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/jekyll_run.sh +0 -0
  530. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/logo_svg.py +0 -0
  531. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/pip-compile.sh +0 -0
  532. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/recording_audio.py +0 -0
  533. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/redact-cast.py +0 -0
  534. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/rename_to_cecli.py +0 -0
  535. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/tmux_record.sh +0 -0
  536. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/tsl_pack_langs.py +0 -0
  537. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/update-blame.sh +0 -0
  538. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/update-docs.sh +0 -0
  539. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/update-history.py +0 -0
  540. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/versionbump.py +0 -0
  541. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/scripts/yank-old-versions.py +0 -0
  542. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/setup.cfg +0 -0
  543. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/shim.pyproject.toml +0 -0
  544. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/__init__.py +0 -0
  545. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/__init__.py +0 -0
  546. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/conftest.py +0 -0
  547. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_aws_credentials.py +0 -0
  548. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_background_commands.py +0 -0
  549. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_coder.py +0 -0
  550. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_commands.py +0 -0
  551. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_custom_commands.py +0 -0
  552. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_deprecated.py +0 -0
  553. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_editblock.py +0 -0
  554. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_editor.py +0 -0
  555. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_exceptions.py +0 -0
  556. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_find_or_blocks.py +0 -0
  557. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_hashline.py +0 -0
  558. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_hashline_closure.py +0 -0
  559. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_history.py +0 -0
  560. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_io.py +0 -0
  561. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_linter.py +0 -0
  562. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_main.py +0 -0
  563. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_model_info_manager.py +0 -0
  564. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_model_provider_manager.py +0 -0
  565. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_models.py +0 -0
  566. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_onboarding.py +0 -0
  567. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_plugin_manager.py +0 -0
  568. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_prompts.py +0 -0
  569. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_reasoning.py +0 -0
  570. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_repo.py +0 -0
  571. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_repomap.py +0 -0
  572. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_run_cmd.py +0 -0
  573. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_sanity_check_repo.py +0 -0
  574. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_scripting.py +0 -0
  575. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_sendchat.py +0 -0
  576. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_session_args.py +0 -0
  577. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_session_crypto.py +0 -0
  578. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_sessions.py +0 -0
  579. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_sessions_manager.py +0 -0
  580. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_skills.py +0 -0
  581. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_special.py +0 -0
  582. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_ssl_verification.py +0 -0
  583. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_udiff.py +0 -0
  584. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_urls.py +0 -0
  585. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_voice.py +0 -0
  586. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_watch.py +0 -0
  587. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/basic/test_wholefile.py +0 -0
  588. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/coders/test_coder_switching.py +0 -0
  589. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/coders/test_copypaste_coder.py +0 -0
  590. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/commands/test_compaction.py +0 -0
  591. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/commands/test_switch_agent.py +0 -0
  592. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/conftest.py +0 -0
  593. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/conversations/test_conversation_integration.py +0 -0
  594. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/conversations/test_conversation_system.py +0 -0
  595. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
  596. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/chat-history.md +0 -0
  597. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/arduino/test.ino +0 -0
  598. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/bash/test.sh +0 -0
  599. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/c/test.c +0 -0
  600. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/chatito/test.chatito +0 -0
  601. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/clojure/test.clj +0 -0
  602. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
  603. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/cpp/test.cpp +0 -0
  604. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/csharp/test.cs +0 -0
  605. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/d/test.d +0 -0
  606. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/dart/test.dart +0 -0
  607. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/elisp/test.el +0 -0
  608. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/elixir/test.ex +0 -0
  609. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/elm/test.elm +0 -0
  610. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/gleam/test.gleam +0 -0
  611. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/go/test.go +0 -0
  612. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/haskell/test.hs +0 -0
  613. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/hcl/test.tf +0 -0
  614. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/java/test.java +0 -0
  615. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/javascript/test.js +0 -0
  616. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/kotlin/test.kt +0 -0
  617. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/lua/test.lua +0 -0
  618. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/matlab/test.m +0 -0
  619. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/ocaml/test.ml +0 -0
  620. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
  621. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/php/test.php +0 -0
  622. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/pony/test.pony +0 -0
  623. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/properties/test.properties +0 -0
  624. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/python/test.py +0 -0
  625. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/ql/test.ql +0 -0
  626. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/r/test.r +0 -0
  627. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/racket/test.rkt +0 -0
  628. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/ruby/test.rb +0 -0
  629. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/rust/test.rs +0 -0
  630. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/scala/test.scala +0 -0
  631. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/solidity/test.sol +0 -0
  632. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/swift/test.swift +0 -0
  633. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/tsx/test.tsx +0 -0
  634. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/typescript/test.ts +0 -0
  635. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/udev/test.rules +0 -0
  636. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/languages/zig/test.zig +0 -0
  637. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/sample-code-base/sample.js +0 -0
  638. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/sample-code-base/sample.py +0 -0
  639. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
  640. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/watch.js +0 -0
  641. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/watch.lisp +0 -0
  642. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/watch.py +0 -0
  643. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/fixtures/watch_question.js +0 -0
  644. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/help/test_help.py +0 -0
  645. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/helpers/monorepo/LOCAL_WORKSPACE.md +0 -0
  646. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/helpers/monorepo/test_config.py +0 -0
  647. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/helpers/monorepo/test_config_active.py +0 -0
  648. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
  649. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/helpers/monorepo/test_local_workspace.py +0 -0
  650. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
  651. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/helpers/monorepo/test_workspace.py +0 -0
  652. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/helpers/observations/test_observation_service.py +0 -0
  653. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/hooks/__init__.py +0 -0
  654. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/hooks/test_base.py +0 -0
  655. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/hooks/test_manager.py +0 -0
  656. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/hooks/test_registry.py +0 -0
  657. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/integration/test_agent_mcp_management.py +0 -0
  658. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/integration/test_mcp_management.py +0 -0
  659. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/mcp/__init__.py +0 -0
  660. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/mcp/test_manager.py +0 -0
  661. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/scrape/test_playwright_disable.py +0 -0
  662. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/scrape/test_scrape.py +0 -0
  663. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/subagents/__init__.py +0 -0
  664. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/subagents/conftest.py +0 -0
  665. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/subagents/test_commands.py +0 -0
  666. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/subagents/test_config.py +0 -0
  667. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/subagents/test_delegate.py +0 -0
  668. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/subagents/test_finished.py +0 -0
  669. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/subagents/test_io_proxy.py +0 -0
  670. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/subagents/test_service.py +0 -0
  671. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/subagents/test_sub_agent_coder.py +0 -0
  672. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/tools/test_extractions.py +0 -0
  673. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/tools/test_get_lines.py +0 -0
  674. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/tools/test_git_branch.py +0 -0
  675. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/tools/test_git_diff.py +0 -0
  676. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/tools/test_grep.py +0 -0
  677. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/tools/test_insert_block.py +0 -0
  678. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/tools/test_read_range_execute.py +0 -0
  679. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/tools/test_registry.py +0 -0
  680. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/tools/test_remove_mcp_tool.py +0 -0
  681. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/tools/test_tool_arguments.py +0 -0
  682. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/tools/test_tools_load_mcp_tool.py +0 -0
  683. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/tools/validations.py +0 -0
  684. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/tui/test_app.py +0 -0
  685. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/unit/test_load_mcp.py +0 -0
  686. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/unit/test_remove_mcp.py +0 -0
  687. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/unit/test_unit_load_mcp_tool.py +0 -0
  688. {cecli_dev-0.100.10rc1 → cecli_dev-0.100.10rc2}/tests/unit/test_unit_remove_mcp_tool.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cecli-dev
3
- Version: 0.100.10rc1
3
+ Version: 0.100.10rc2
4
4
  Summary: we also can't pronounce cecli
5
5
  Project-URL: Homepage, https://github.com/dwash96/cecli
6
6
  Project-URL: Documentation, https://github.com/dwash96/cecli
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '0.100.10rc1'
22
- __version_tuple__ = version_tuple = (0, 100, 10, 'rc1')
21
+ __version__ = version = '0.100.10rc2'
22
+ __version_tuple__ = version_tuple = (0, 100, 10, 'rc2')
23
23
 
24
- __commit_id__ = commit_id = 'g857cf690f'
24
+ __commit_id__ = commit_id = 'g0bbb611c7'
@@ -1666,6 +1666,11 @@ Todo list does not exist. Please update it with the `UpdateTodoList` tool.</cont
1666
1666
  command_str = command_info.get(command_key, {}).get("command", command_key)
1667
1667
  output += f"\n[bg: {command_str}]\n{cmd_output}\n"
1668
1668
 
1669
+ # Clean up stale (finished) background commands after reading their output
1670
+ for command_key, info in command_info.items():
1671
+ if not info.get("running", False):
1672
+ BackgroundCommandManager.stop_background_command(command_key)
1673
+
1669
1674
  return output
1670
1675
 
1671
1676
  def get_git_status(self):
@@ -5,7 +5,6 @@ Provides a static BackgroundCommandManager class for running shell commands
5
5
  in the background and capturing their output for injection into chat streams.
6
6
  """
7
7
 
8
- import codecs
9
8
  import os
10
9
  import platform
11
10
  import subprocess
@@ -171,31 +170,86 @@ class BackgroundProcess:
171
170
  """Start thread to read process output."""
172
171
 
173
172
  def reader():
174
- try:
175
- # Simple approach: read lines when available
176
- # This will block on readline(), but that's OK because
177
- # we're in a separate thread and the buffer will capture
178
- # output as soon as it's available
173
+ import re
174
+
175
+ # Regex to strip ANSI terminal escape sequences
176
+ _ansi_escape = re.compile(
177
+ r"\x1b\[[0-9;]*[a-zA-Z]|\x1b[\]^_]|[\x1b\x9b][][()#;?]*"
178
+ r"(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><~]"
179
+ )
179
180
 
181
+ def _strip_ansi(text: str) -> str:
182
+ return _ansi_escape.sub("", text)
183
+
184
+ try:
180
185
  if self.master_fd is not None:
181
186
  while not self._stop_event.is_set():
182
187
  try:
183
188
  data = os.read(self.master_fd, 4096).decode(errors="replace")
184
189
  if not data:
185
190
  break
186
- self.buffer.append(data)
191
+ # Strip ANSI escape sequences from PTY output
192
+ self.buffer.append(_strip_ansi(data))
187
193
  except (OSError, EOFError):
188
194
  break
189
195
  else:
190
- # Read stdout
191
- for line in iter(self.process.stdout.readline, ""):
192
- if line:
193
- self.buffer.append(line)
196
+ has_stdout_fileno = hasattr(self.process.stdout, "fileno")
197
+ if has_stdout_fileno:
198
+ os.set_blocking(self.process.stdout.fileno(), False)
199
+ while not self._stop_event.is_set():
200
+ try:
201
+ if has_stdout_fileno:
202
+ # Use os.read() instead of readline() to capture
203
+ # partial line output (e.g. REPL prompts without newlines)
204
+ data = os.read(self.process.stdout.fileno(), 4096).decode(
205
+ errors="replace"
206
+ )
207
+ else:
208
+ # Fallback to readline when fileno() is unavailable
209
+ # (e.g. mock objects in tests)
210
+ data = self.process.stdout.readline()
211
+ if data:
212
+ self.buffer.append(data)
213
+ else:
214
+ # Check if process died
215
+ if not self.is_alive():
216
+ if has_stdout_fileno:
217
+ # Read any remaining data
218
+ try:
219
+ remaining = os.read(
220
+ self.process.stdout.fileno(), 4096
221
+ ).decode(errors="replace")
222
+ if remaining:
223
+ self.buffer.append(remaining)
224
+ except (OSError, EOFError):
225
+ pass
226
+ break
227
+ import time
228
+
229
+ time.sleep(0.05)
230
+ except (OSError, EOFError, ValueError):
231
+ if not self.is_alive():
232
+ break
233
+ import time
234
+
235
+ time.sleep(0.05)
194
236
 
195
- # Read stderr
196
- for line in iter(self.process.stderr.readline, ""):
197
- if line:
198
- self.buffer.append(line)
237
+ # Also capture stderr (best-effort, non-blocking)
238
+ if hasattr(self.process.stderr, "fileno"):
239
+ try:
240
+ os.set_blocking(self.process.stderr.fileno(), False)
241
+ while True:
242
+ try:
243
+ err_data = os.read(self.process.stderr.fileno(), 4096).decode(
244
+ errors="replace"
245
+ )
246
+ if not err_data:
247
+ break
248
+ self.buffer.append(err_data)
249
+ except (OSError, EOFError):
250
+ break
251
+ except Exception:
252
+ pass
199
253
 
200
254
  except Exception as e:
201
255
  self.buffer.append(f"\n[Error reading process output: {str(e)}]\n")
@@ -369,6 +423,7 @@ class BackgroundCommandManager:
369
423
  persist: bool = False,
370
424
  existing_input_buffer: Optional[InputBuffer] = None,
371
425
  use_pty: bool = False,
426
+ master_fd: Optional[int] = None,
372
427
  ) -> str:
373
428
  """
374
429
  Start a command in background.
@@ -390,9 +445,16 @@ class BackgroundCommandManager:
390
445
  buffer = existing_buffer or CircularBuffer(max_size=max_buffer_size)
391
446
 
392
447
  # Use existing process or start new one
393
- master_fd = None
394
- if use_pty and HAS_PTY and platform.system() != "Windows":
395
- master_fd, slave_fd = pty.openpty()
448
+ # Use provided master_fd (e.g., from _execute_with_timeout) or default to None
449
+ final_master_fd = master_fd
450
+
451
+ # Only create a new PTY if no external master_fd was provided
452
+ # (prevents overwriting an externally-created PTY fd)
453
+ can_use_pty = (
454
+ use_pty and master_fd is None and HAS_PTY and platform.system() != "Windows"
455
+ )
456
+ if can_use_pty:
457
+ final_master_fd, slave_fd = pty.openpty()
396
458
 
397
459
  # Disable echo on the slave PTY
398
460
  attr = termios.tcgetattr(slave_fd)
@@ -415,8 +477,13 @@ class BackgroundCommandManager:
415
477
  elif existing_process:
416
478
  process = existing_process
417
479
  else:
480
+ # When PTY was requested but isn't available (e.g. Windows),
481
+ # wrap with stdbuf -oL to force line-buffered output at the libc level
482
+ resolved_command = (
483
+ cls._wrap_line_buffered(command) if use_pty and not HAS_PTY else command
484
+ )
418
485
  process = subprocess.Popen(
419
- command,
486
+ resolved_command,
420
487
  shell=True,
421
488
  stdout=subprocess.PIPE,
422
489
  stderr=subprocess.PIPE,
@@ -434,7 +501,7 @@ class BackgroundCommandManager:
434
501
  buffer,
435
502
  persist=persist,
436
503
  input_buffer=existing_input_buffer,
437
- master_fd=master_fd,
504
+ master_fd=final_master_fd,
438
505
  )
439
506
 
440
507
  # Generate unique key and store
@@ -519,13 +586,8 @@ class BackgroundCommandManager:
519
586
  bg_process = cls._background_commands.get(command_key)
520
587
  if not bg_process:
521
588
  return False
522
- # Decode escape sequences (like \x1b) if present in the string
523
- try:
524
- text = codecs.decode(text, "unicode_escape")
525
- except Exception:
526
- pass
527
- bg_process.send_input(text)
528
- return True
589
+ bg_process.send_input(text)
590
+ return True
529
591
 
530
592
  @classmethod
531
593
  def get_all_command_outputs(cls, clear: bool = False) -> Dict[str, str]:
@@ -625,6 +687,61 @@ class BackgroundCommandManager:
625
687
  }
626
688
  return result
627
689
 
690
+ _line_buffered_tool = None
691
+
692
+ @staticmethod
693
+ def _detect_line_buffered_tool() -> str:
694
+ """
695
+ Detect the best available tool for forcing line-buffered stdout.
696
+
697
+ Checks for `stdbuf` (GNU coreutils, most Linux distros) and falls
698
+ back to `unbuffer` (expect package, available on many systems).
699
+ If neither is available, returns None.
700
+
701
+ Returns:
702
+ The tool command (e.g., 'stdbuf -oL' or 'unbuffer'), or None
703
+ """
704
+ import shutil
705
+
706
+ if shutil.which("stdbuf"):
707
+ return "stdbuf -oL"
708
+
709
+ if shutil.which("unbuffer"):
710
+ return "unbuffer"
711
+
712
+ return None
713
+
714
+ @staticmethod
715
+ def _wrap_line_buffered(command: str) -> str:
716
+ """
717
+ Wrap a command to force line-buffered stdout when PTY is unavailable.
718
+
719
+ When stdout is connected to a pipe instead of a TTY, most programs
720
+ (Python, C, Ruby, etc.) use full buffering. The stdbuf command uses
721
+ LD_PRELOAD to override buffering at the libc level. The unbuffer
722
+ command (from expect) creates a PTY wrapper.
723
+
724
+ The detected tool is cached after first check to avoid repeated
725
+ subprocess/shell calls.
726
+
727
+ Args:
728
+ command: The shell command string
729
+
730
+ Returns:
731
+ Command wrapped with line-buffering prefix, or the original
732
+ command if no tool is available
733
+ """
734
+ if BackgroundCommandManager._line_buffered_tool is None:
735
+ BackgroundCommandManager._line_buffered_tool = (
736
+ BackgroundCommandManager._detect_line_buffered_tool()
737
+ )
738
+
739
+ tool = BackgroundCommandManager._line_buffered_tool
740
+ if tool:
741
+ return f"{tool} {command}"
742
+
743
+ return command
744
+
628
745
  @staticmethod
629
746
  def save_paginated_output(
630
747
  output: str,
@@ -3,6 +3,15 @@ import fnmatch
3
3
  import os
4
4
  import platform
5
5
 
6
+ # PTY support for interactive commands (avoids pipe buffering issues)
7
+ try:
8
+ import pty
9
+ import termios
10
+
11
+ HAS_PTY = True
12
+ except ImportError:
13
+ HAS_PTY = False
14
+
6
15
  import xxhash
7
16
 
8
17
  from cecli.helpers.background_commands import BackgroundCommandManager
@@ -21,15 +30,15 @@ class Tool(BaseTool):
21
30
  "type": "function",
22
31
  "function": {
23
32
  "name": "Command",
24
- "description": "Execute a shell command.",
33
+ "description": "Execute a shell command or interact with background processes.",
25
34
  "parameters": {
26
35
  "type": "object",
27
36
  "properties": {
28
37
  "command": {
29
38
  "type": "string",
30
39
  "description": (
31
- "The shell command to execute. To send stdin to an existing background"
32
- " command, use the format 'command_key::{key}'."
40
+ "The shell command to execute. "
41
+ "Required unless background_key is provided."
33
42
  ),
34
43
  },
35
44
  "background": {
@@ -37,42 +46,44 @@ class Tool(BaseTool):
37
46
  "description": "Run command in background (non-blocking).",
38
47
  "default": False,
39
48
  },
40
- "stop": {
41
- "type": "boolean",
49
+ "background_key": {
50
+ "type": "string",
42
51
  "description": (
43
- "If true, stop the background command specified in the 'command'"
44
- " parameter (format 'command_key::{key}')."
52
+ "Key of an existing background command to interact with. "
53
+ "Use with 'action' (stdin/stop)."
45
54
  ),
46
- "default": False,
47
55
  },
48
- "pty": {
49
- "type": "boolean",
56
+ "action": {
57
+ "type": "string",
58
+ "enum": ["stdin", "stop"],
50
59
  "description": (
51
- "Run the command in a pseudo-terminal (PTY). Useful for interactive"
52
- " programs like 'vi' or 'top'."
60
+ "Action on a background command. Requires background_key: "
61
+ "'stdin' to send input, 'stop' to terminate."
53
62
  ),
54
- "default": False,
55
63
  },
56
64
  "stdin": {
57
65
  "type": "string",
58
66
  "description": (
59
- "Input to send to the command's stdin. Supports escape sequences like"
60
- " \\n, \\r, \\t, and hex escapes like \\x1b."
67
+ "Input to send. Use with background=True to send at "
68
+ "start time, or with background_key + action='stdin'."
69
+ ),
70
+ },
71
+ "pty": {
72
+ "type": "boolean",
73
+ "description": (
74
+ "Use a pseudo-terminal (PTY). Auto-enabled on Unix for "
75
+ "background commands. Useful for interactive programs "
76
+ "like 'vi' or 'top'."
61
77
  ),
78
+ "default": False,
62
79
  },
63
80
  },
64
- "required": ["command"],
81
+ "required": [],
65
82
  },
66
83
  },
67
84
  }
68
85
 
69
86
  @staticmethod
70
- def _parse_command_key(command):
71
- """Extract command key from command string if it follows the pattern."""
72
- if command and command.startswith("command_key::"):
73
- return command.split("::", 1)[1].strip()
74
- return None
75
-
76
87
  @staticmethod
77
88
  def _hash_command(command):
78
89
  """Compute an xxhash of the full command text for session tracking."""
@@ -83,38 +94,41 @@ class Tool(BaseTool):
83
94
 
84
95
  @classmethod
85
96
  async def execute(
86
- cls, coder, command, background=False, stop=None, stdin=None, pty=False, **kwargs
97
+ cls,
98
+ coder,
99
+ command=None,
100
+ background=False,
101
+ background_key=None,
102
+ action=None,
103
+ stdin=None,
104
+ pty=False,
105
+ **kwargs,
87
106
  ):
88
107
  """
89
- Execute a shell command, optionally in background.
90
- Commands run with timeout based on agent_config['command_timeout'] (default: 30 seconds).
91
- """
92
- command_key = cls._parse_command_key(command)
108
+ Execute a shell command or interact with background processes.
93
109
 
94
- # Handle stopping background commands
95
- if stop:
96
- if not command_key:
97
- return (
98
- "Error: 'command' in format 'command_key::{key}' is required when 'stop' is"
99
- " true."
100
- )
101
- return await cls._stop_background_command(coder, command_key)
110
+ For new commands: provide 'command' (and optionally 'background', 'stdin', 'pty').
111
+ For background interactions: provide 'background_key' + 'action' (stdin/stop).
102
112
 
103
- # Handle sending stdin to an existing background command
104
- if stdin:
105
- if not command_key:
106
- return (
107
- "Error: 'command' in format 'command_key::{key}' is required when using"
108
- " 'stdin'."
109
- )
113
+ Commands run with timeout based on agent_config['command_timeout'] (default: 30 seconds).
114
+ """
115
+ # Handle interactions with an existing background command
116
+ if background_key:
117
+ if action == "stdin":
118
+ if not stdin:
119
+ return "Error: 'stdin' is required when action='stdin'."
120
+ cls.clear_invocation_cache()
121
+ success = BackgroundCommandManager.send_command_input(background_key, stdin)
122
+ if success:
123
+ return f"Sent input to background command {background_key}: {stdin}"
124
+ else:
125
+ return f"Error: Background command {background_key} not found or not running."
110
126
 
111
- cls.clear_invocation_cache()
127
+ elif action == "stop":
128
+ return await cls._stop_background_command(coder, background_key)
112
129
 
113
- success = BackgroundCommandManager.send_command_input(command_key, stdin)
114
- if success:
115
- return f"Sent input to background command {command_key}: {stdin}"
116
130
  else:
117
- return f"Error: Background command {command_key} not found or not running."
131
+ return f"Error: Unknown action '{action}'. " "Use one of: stdin, stop."
118
132
 
119
133
  if not command:
120
134
  return "Error: 'command' must be provided."
@@ -143,7 +157,7 @@ class Tool(BaseTool):
143
157
  timeout = coder.agent_config.get("command_timeout", 30)
144
158
 
145
159
  if background:
146
- return await cls._execute_background(coder, command, use_pty=pty)
160
+ return await cls._execute_background(coder, command, use_pty=pty, stdin=stdin)
147
161
  elif timeout > 0:
148
162
  return await cls._execute_with_timeout(coder, command, timeout, use_pty=pty)
149
163
  else:
@@ -199,12 +213,20 @@ class Tool(BaseTool):
199
213
  return confirmed
200
214
 
201
215
  @classmethod
202
- async def _execute_background(cls, coder, command_string, use_pty=False):
216
+ async def _execute_background(cls, coder, command_string, use_pty=None, stdin=None):
203
217
  """
204
218
  Execute command in background.
219
+
220
+ Args:
221
+ stdin: Optional text to send to the command's stdin after starting
205
222
  """
206
223
  coder.io.tool_output(f"⛭ Starting background command: {command_string}", type="tool-result")
207
224
 
225
+ # Default to PTY on Unix platforms for proper line-buffered output
226
+ # (Python and other programs buffer output aggressively on pipes)
227
+ if use_pty is None:
228
+ use_pty = platform.system() != "Windows"
229
+
208
230
  # Use static manager to start background command
209
231
  command_key = BackgroundCommandManager.start_background_command(
210
232
  command_string,
@@ -214,6 +236,10 @@ class Tool(BaseTool):
214
236
  use_pty=use_pty,
215
237
  )
216
238
 
239
+ # Send stdin to the background command if provided
240
+ if stdin:
241
+ BackgroundCommandManager.send_command_input(command_key, stdin)
242
+
217
243
  return (
218
244
  f"Background command started: {command_string}\n"
219
245
  f"Command key: {command_key}\n"
@@ -221,13 +247,13 @@ class Tool(BaseTool):
221
247
  )
222
248
 
223
249
  @classmethod
224
- async def _execute_with_timeout(cls, coder, command_string, timeout, use_pty=False):
250
+ async def _execute_with_timeout(cls, coder, command_string, timeout, use_pty=None):
225
251
  """
226
252
  Execute command with timeout. If timeout elapses, move to background.
227
253
 
228
- IMPORTANT: We use a different approach to avoid pipe conflicts.
229
- Instead of reading pipes directly, we let BackgroundCommandManager
230
- handle all pipe reading from the start.
254
+ When use_pty is True (or auto-defaulted on Unix), a pseudo-terminal
255
+ is used to avoid the full-buffering issue that occurs when stdout is
256
+ connected to a pipe instead of a TTY.
231
257
  """
232
258
  import asyncio
233
259
  import subprocess
@@ -239,24 +265,59 @@ class Tool(BaseTool):
239
265
  f"⛭ Executing shell command with {timeout}s timeout.", type="tool-result"
240
266
  )
241
267
 
242
- shell = os.environ.get("SHELL", "/bin/sh")
268
+ # Auto-default to PTY on Unix unless explicitly set otherwise
269
+ if use_pty is None:
270
+ use_pty = platform.system() != "Windows"
243
271
 
244
272
  # Create output buffer
245
273
  buffer = CircularBuffer(max_size=4096)
246
274
 
247
- # Start process with pipes for output capture
248
- process = subprocess.Popen(
249
- command_string,
250
- shell=True,
251
- executable=shell if platform.system() != "Windows" else None,
252
- stdout=subprocess.PIPE,
253
- stderr=subprocess.PIPE,
254
- stdin=subprocess.PIPE,
255
- cwd=coder.root,
256
- text=True,
257
- bufsize=1,
258
- universal_newlines=True,
259
- )
275
+ # Decide whether to use PTY
276
+ master_fd = None
277
+
278
+ if use_pty and HAS_PTY and platform.system() != "Windows":
279
+ master_fd, slave_fd = pty.openpty()
280
+
281
+ # Disable echo on the slave PTY
282
+ attr = termios.tcgetattr(slave_fd)
283
+ attr[3] = attr[3] & ~termios.ECHO
284
+ termios.tcsetattr(slave_fd, termios.TCSANOW, attr)
285
+
286
+ process = subprocess.Popen(
287
+ command_string,
288
+ shell=True,
289
+ executable=os.environ.get("SHELL", "/bin/sh"),
290
+ stdout=slave_fd,
291
+ stderr=slave_fd,
292
+ stdin=slave_fd,
293
+ cwd=coder.root,
294
+ close_fds=True,
295
+ text=True,
296
+ bufsize=1,
297
+ universal_newlines=True,
298
+ )
299
+ os.close(slave_fd)
300
+ else:
301
+ # Start process with pipes for output capture
302
+ # When PTY was requested but unavailable, wrap with stdbuf for line-buffered output
303
+ resolved_cmd = (
304
+ BackgroundCommandManager._wrap_line_buffered(command_string)
305
+ if use_pty and not HAS_PTY
306
+ else command_string
307
+ )
308
+ shell = os.environ.get("SHELL", "/bin/sh")
309
+ process = subprocess.Popen(
310
+ resolved_cmd,
311
+ shell=True,
312
+ executable=shell if platform.system() != "Windows" else None,
313
+ stdout=subprocess.PIPE,
314
+ stderr=subprocess.PIPE,
315
+ stdin=subprocess.PIPE,
316
+ cwd=coder.root,
317
+ text=True,
318
+ bufsize=1,
319
+ universal_newlines=True,
320
+ )
260
321
 
261
322
  # Immediately register with background manager to handle pipe reading
262
323
  command_key = BackgroundCommandManager.start_background_command(
@@ -267,6 +328,7 @@ class Tool(BaseTool):
267
328
  existing_process=process,
268
329
  existing_buffer=buffer,
269
330
  persist=True,
331
+ master_fd=master_fd,
270
332
  )
271
333
 
272
334
  # Now monitor the process with timeout
@@ -340,7 +402,7 @@ class Tool(BaseTool):
340
402
  if elapsed >= timeout:
341
403
  # Timeout elapsed, process continues in background
342
404
  coder.io.tool_output(
343
- f"⏱️ Command exceeded {timeout}s timeout, continuing in background...",
405
+ f"\u23f1\ufe0f Command exceeded {timeout}s timeout, continuing in background...",
344
406
  type="tool-result",
345
407
  )
346
408
 
@@ -428,6 +490,7 @@ class Tool(BaseTool):
428
490
  else:
429
491
  return output # Error message from manager
430
492
 
493
+ @classmethod
431
494
  async def _handle_errors(cls, coder, command_string, e):
432
495
  """Handle errors during command execution."""
433
496
  coder.io.tool_error(f"Error executing shell command: {str(e)}")
@@ -451,7 +514,8 @@ class Tool(BaseTool):
451
514
 
452
515
  command = params.get("command", "")
453
516
  background = params.get("background", False)
454
- stop = params.get("stop", False)
517
+ background_key = params.get("background_key")
518
+ action = params.get("action")
455
519
  stdin = params.get("stdin")
456
520
  pty = params.get("pty", False)
457
521
 
@@ -461,8 +525,8 @@ class Tool(BaseTool):
461
525
  extras = []
462
526
  if background:
463
527
  extras.append("background=True")
464
- if stop:
465
- extras.append("stop=True")
528
+ if action:
529
+ extras.append(f"action={action}")
466
530
  if pty:
467
531
  extras.append("pty=True")
468
532
 
@@ -473,8 +537,13 @@ class Tool(BaseTool):
473
537
  coder.io.tool_output(f"{color_start}Stdin:{color_end}")
474
538
  coder.io.tool_output(stdin)
475
539
 
476
- coder.io.tool_output(f"{color_start}Command:{color_end}")
477
- coder.io.tool_output(command)
540
+ if background_key and action:
541
+ coder.io.tool_output(f"{color_start}Background Key:{color_end} {background_key}")
542
+ coder.io.tool_output(f"{color_start}Action:{color_end} {action}")
543
+ elif command:
544
+ coder.io.tool_output(f"{color_start}Command:{color_end}")
545
+ coder.io.tool_output(command)
546
+
478
547
  coder.io.tool_output("")
479
548
 
480
549
  # Output footer
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cecli-dev
3
- Version: 0.100.10rc1
3
+ Version: 0.100.10rc2
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
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "0.100.10rc2",
3
+ "distance": 0,
4
+ "node": "g0bbb611c7e4d46cb8d969f6a418461a5b4c0ec4e",
5
+ "dirty": false,
6
+ "branch": "HEAD",
7
+ "node_date": "2026-06-24"
8
+ }
@@ -1,8 +0,0 @@
1
- {
2
- "tag": "0.100.10rc1",
3
- "distance": 0,
4
- "node": "g857cf690fb58c87bf75b6525d072cbef246dea21",
5
- "dirty": false,
6
- "branch": "HEAD",
7
- "node_date": "2026-06-23"
8
- }
File without changes