cecli-dev 0.100.6rc6__tar.gz → 0.100.6rc8__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.
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/PKG-INFO +1 -1
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/_version.py +3 -3
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/agent_coder.py +26 -12
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/base_coder.py +2 -2
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/utils/helpers.py +1 -1
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/conversation/files.py +7 -4
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/conversation/integration.py +29 -2
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/hashline.py +13 -13
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/requests.py +25 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/io.py +1 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/agent.yml +19 -19
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/subagent.yml +20 -20
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/reasoning_tags.py +2 -2
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/command.py +9 -6
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/command_interactive.py +15 -7
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/context_manager.py +22 -11
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/delegate.py +2 -2
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/edit_text.py +5 -5
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/explore_code.py +11 -4
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/grep.py +13 -11
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/ls.py +5 -3
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/read_range.py +52 -24
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/thinking.py +1 -1
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/undo_change.py +3 -1
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/update_todo_list.py +22 -10
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/utils/helpers.py +4 -1
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tui/io.py +3 -1
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli_dev.egg-info/PKG-INFO +1 -1
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/tools/test_grep.py +1 -1
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/tools/test_read_range_execute.py +2 -2
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/.dockerignore +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/.flake8 +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/.gitattributes +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/.github/workflows/check_pypi_version.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/.github/workflows/docker-build-test.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/.github/workflows/docker-release.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/.github/workflows/issues.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/.github/workflows/pages.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/.github/workflows/pre-commit.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/.github/workflows/release.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/.github/workflows/ubuntu-tests.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/.github/workflows/windows-tests.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/.github/workflows/windows_check_pypi_version.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/.gitignore +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/.pre-commit-config.yaml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/CHANGELOG.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/CNAME +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/CONTRIBUTING.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/HISTORY.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/LICENSE.txt +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/MANIFEST.in +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/README.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/Dockerfile +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/README.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/benchmark.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/benchmark_classic.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/clone-exercism.sh +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/cpp-test.sh +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/docker.sh +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/docker_build.sh +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/install-docker-ubuntu.sh +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/npm-test.sh +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/over_time.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/plot.sh +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/plots.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/problem_stats.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/prompts.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/refactor_tools.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/rsync.sh +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/rungrid.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/swe-bench-lite.txt +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/swe-bench.txt +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/swe_bench.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/test_benchmark.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/variations.1.sh +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/variations.2.sh +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/variations.3.sh +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/benchmark/variations.4.sh +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/__main__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/args.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/args_formatter.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/change_tracker.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/architect_coder.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/ask_coder.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/chat_chunks.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/context_coder.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/copypaste_coder.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/editblock_coder.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/editblock_fenced_coder.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/editblock_func_coder.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/editor_diff_fenced_coder.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/editor_editblock_coder.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/editor_whole_coder.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/hashline_coder.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/help_coder.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/patch_coder.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/search_replace.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/shell.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/single_wholefile_func_coder.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/sub_agent_coder.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/udiff_coder.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/udiff_simple.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/wholefile_coder.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/coders/wholefile_func_coder.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/add.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/agent.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/agent_model.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/architect.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/ask.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/chat_mode.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/clear.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/code.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/command_prefix.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/commit.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/compact.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/context.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/context_blocks.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/context_management.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/copy.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/copy_context.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/core.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/diff.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/drop.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/editor.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/editor_model.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/exclude_skill.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/exit.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/git.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/hashline.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/help.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/history_search.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/hooks.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/include_skill.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/lint.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/list_sessions.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/list_skills.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/load.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/load_hook.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/load_mcp.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/load_session.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/load_skill.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/ls.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/map.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/map_refresh.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/merge.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/model.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/models.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/multiline_mode.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/paste.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/quit.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/read_only.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/read_only_stub.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/reap_agent.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/reasoning_effort.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/remove_hook.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/remove_mcp.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/remove_skill.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/report.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/reset.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/rules.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/run.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/save.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/save_session.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/settings.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/spawn_agent.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/switch_agent.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/terminal_data/linux.keytab +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/terminal_setup.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/test.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/think_tokens.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/tokens.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/undo.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/utils/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/utils/base_command.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/utils/registry.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/utils/save_load_manager.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/voice.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/weak_model.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/web.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/commands/workspace.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/deprecated_args.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/diffs.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/dump.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/editor.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/exceptions.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/format_settings.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/help.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/help_pats.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/agents/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/agents/config.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/agents/service.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/background_commands.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/command_parser.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/conversation/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/conversation/base_message.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/conversation/manager.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/conversation/service.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/conversation/tags.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/conversation/utils.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/copypaste.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/coroutines.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/crypto.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/file_searcher.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/file_system/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/file_system/builders.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/file_system/ignore.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/file_system/ngram_index.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/file_system/service.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/file_system/trie_index.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/grep_ast/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/grep_ast/dump.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/grep_ast/grep_ast.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/grep_ast/main.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/grep_ast/parsers.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/grep_ast/tsl.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/hashpos/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/hashpos/hashpos.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/hashpos/hashpos.v1.bak +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/io_proxy.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/leak_detect.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/model_providers.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/monorepo/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/monorepo/config.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/monorepo/local_workspace.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/monorepo/project.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/monorepo/workspace.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/monorepo/worktree.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/nested.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/observations/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/observations/service.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/plugin_manager.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/profiler.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/responses.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/similarity.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/skills.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/helpers/threading.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/history.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/hooks/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/hooks/base.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/hooks/integration.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/hooks/manager.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/hooks/registry.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/hooks/service.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/hooks/types.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/interruptible_input.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/linter.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/llm.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/main.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/mcp/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/mcp/manager.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/mcp/oauth.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/mcp/server.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/mcp/utils.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/mdstream.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/models.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/onboarding.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/architect.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/ask.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/base.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/context.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/copypaste.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/editblock.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/editblock_fenced.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/editblock_func.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/editor_diff_fenced.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/editor_editblock.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/editor_whole.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/hashline.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/help.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/patch.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/single_wholefile_func.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/udiff.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/udiff_simple.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/utils/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/utils/registry.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/utils/system.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/wholefile.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/prompts/wholefile_func.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/README.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/repo.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/repomap.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/report.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/resources/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/resources/model-metadata.json +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/resources/model-settings.yml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/resources/providers.json +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/run_cmd.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/scrape.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/sendchat.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/sessions.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/special.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/_yield.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/git_branch.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/git_diff.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/git_log.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/git_remote.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/git_show.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/git_status.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/load_skill.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/remove_skill.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/utils/base_tool.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/utils/output.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/utils/registry.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/validations/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tools/validations/validations.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tui/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tui/app.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tui/styles.tcss +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tui/widgets/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tui/widgets/completion_bar.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tui/widgets/file_list.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tui/widgets/footer.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tui/widgets/input_area.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tui/widgets/input_container.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tui/widgets/key_hints.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tui/widgets/output.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tui/widgets/status_bar.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tui/widgets/subagent_pills.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/tui/worker.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/urls.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/utils.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/versioncheck.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/voice.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/waiting.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/watch.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/watch_prompts.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/Gemfile +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/_includes/blame.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/_includes/get-started.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/_includes/help-tip.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/_includes/help.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/_includes/install.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/_includes/keys.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/_includes/model-warnings.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/_includes/multi-line.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/_includes/python-m-aider.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/_includes/recording.css +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/_includes/recording.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/_includes/works-best.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/_sass/_features.scss +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/_sass/_footer.scss +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/_sass/_hero.scss +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/_sass/_info.scss +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/_sass/_layout.scss +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/_sass/_reset.scss +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/_sass/_testimonials.scss +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/_sass/_typography.scss +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/_sass/_variables.scss +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/_sass/custom/custom.scss +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/_sass/global-overrides.scss +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/config/adv-model-settings.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/config/agent-mode.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/config/aider_conf.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/config/api-keys.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/config/custom-commands.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/config/custom-system-prompts.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/config/dotenv.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/config/editor.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/config/hooks.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/config/mcp.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/config/model-aliases.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/config/model-configuration.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/config/options.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/config/reasoning.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/config/security.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/config/skills.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/config/subagents.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/config/tui.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/config/workspaces.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/config.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/faq.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/git.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/index.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/install/docker.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/install/optional.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/install.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/languages.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/legal/contributor-agreement.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/legal/privacy.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/llms/anthropic.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/llms/azure.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/llms/bedrock.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/llms/cohere.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/llms/deepseek.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/llms/gemini.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/llms/github.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/llms/groq.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/llms/lm-studio.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/llms/ollama.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/llms/openai-compat.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/llms/openai.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/llms/openrouter.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/llms/other.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/llms/vertex.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/llms/warnings.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/llms/xai.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/llms.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/more/analytics.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/more/edit-formats.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/more/infinite-output.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/more-info.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/repomap.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/scripting.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/troubleshooting/imports.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/troubleshooting/support.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/troubleshooting/warnings.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/troubleshooting.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/usage/commands.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/usage/conventions.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/usage/copypaste.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/usage/images-urls.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/usage/lint-test.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/usage/modes.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/usage/not-code.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/usage/notifications.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/usage/sessions.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/usage/tips.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/usage/voice.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/usage/watch.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/docs/usage.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli/website/share/index.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli_dev.egg-info/SOURCES.txt +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli_dev.egg-info/dependency_links.txt +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli_dev.egg-info/entry_points.txt +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli_dev.egg-info/requires.txt +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/cecli_dev.egg-info/top_level.txt +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/docker/Dockerfile +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/pyproject.toml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/pytest.ini +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/requirements/common-constraints.txt +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/requirements/requirements-dev.in +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/requirements/requirements-dev.txt +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/requirements/requirements-help.in +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/requirements/requirements-help.txt +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/requirements/requirements-playwright.in +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/requirements/requirements-playwright.txt +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/requirements/requirements.in +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/requirements/tree-sitter.in +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/requirements.txt +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/30k-image.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/Dockerfile.jekyll +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/blame.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/clean_metadata.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/cost_analyzer.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/cost_calculator.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/dl_icons.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/filter-chat-mode.js +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/generate_providers.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/get_contributor_list.js +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/get_hashline.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/history_prompts.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/homepage.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/issues.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/jekyll_build.sh +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/jekyll_run.sh +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/logo_svg.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/pip-compile.sh +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/recording_audio.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/redact-cast.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/rename_to_cecli.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/tmux_record.sh +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/tsl_pack_langs.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/update-blame.sh +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/update-docs.sh +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/update-history.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/versionbump.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/scripts/yank-old-versions.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/setup.cfg +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/shim.pyproject.toml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/conftest.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_aws_credentials.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_background_commands.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_coder.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_commands.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_custom_commands.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_deprecated.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_editblock.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_editor.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_exceptions.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_find_or_blocks.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_hashline.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_history.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_io.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_linter.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_main.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_model_info_manager.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_model_provider_manager.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_models.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_onboarding.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_plugin_manager.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_prompts.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_reasoning.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_repo.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_repomap.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_run_cmd.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_sanity_check_repo.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_scripting.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_sendchat.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_session_args.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_session_crypto.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_sessions.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_sessions_manager.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_skills.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_special.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_ssl_verification.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_udiff.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_urls.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_voice.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_watch.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/basic/test_wholefile.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/coders/test_coder_switching.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/coders/test_copypaste_coder.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/commands/test_compaction.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/commands/test_switch_agent.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/conftest.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/conversations/test_conversation_integration.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/conversations/test_conversation_system.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/chat-history.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/arduino/test.ino +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/bash/test.sh +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/c/test.c +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/chatito/test.chatito +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/clojure/test.clj +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/cpp/test.cpp +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/csharp/test.cs +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/d/test.d +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/dart/test.dart +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/elisp/test.el +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/elixir/test.ex +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/elm/test.elm +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/gleam/test.gleam +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/go/test.go +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/haskell/test.hs +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/hcl/test.tf +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/java/test.java +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/javascript/test.js +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/kotlin/test.kt +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/lua/test.lua +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/matlab/test.m +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/ocaml/test.ml +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/php/test.php +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/pony/test.pony +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/properties/test.properties +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/python/test.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/ql/test.ql +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/r/test.r +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/racket/test.rkt +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/ruby/test.rb +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/rust/test.rs +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/scala/test.scala +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/solidity/test.sol +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/swift/test.swift +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/tsx/test.tsx +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/typescript/test.ts +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/udev/test.rules +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/languages/zig/test.zig +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/sample-code-base/sample.js +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/sample-code-base/sample.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/watch.js +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/watch.lisp +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/watch.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/fixtures/watch_question.js +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/help/test_help.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/helpers/monorepo/LOCAL_WORKSPACE.md +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/helpers/monorepo/test_config.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/helpers/monorepo/test_config_active.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/helpers/monorepo/test_local_workspace.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/helpers/monorepo/test_workspace.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/helpers/observations/test_observation_service.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/hooks/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/hooks/test_base.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/hooks/test_manager.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/hooks/test_registry.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/mcp/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/mcp/test_manager.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/scrape/test_playwright_disable.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/scrape/test_scrape.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/subagents/__init__.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/subagents/conftest.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/subagents/test_commands.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/subagents/test_config.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/subagents/test_delegate.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/subagents/test_finished.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/subagents/test_io_proxy.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/subagents/test_service.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/subagents/test_sub_agent_coder.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/tools/test_extractions.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/tools/test_get_lines.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/tools/test_git_branch.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/tools/test_git_diff.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/tools/test_insert_block.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/tools/test_registry.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/tools/test_tool_arguments.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/tools/validations.py +0 -0
- {cecli_dev-0.100.6rc6 → cecli_dev-0.100.6rc8}/tests/tui/test_app.py +0 -0
|
@@ -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.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 100, 6, '
|
|
21
|
+
__version__ = version = '0.100.6rc8'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 100, 6, 'rc8')
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'g2da275a7a'
|
|
@@ -91,6 +91,7 @@ class AgentCoder(Coder):
|
|
|
91
91
|
self.allowed_context_blocks = set()
|
|
92
92
|
self.context_block_tokens = {}
|
|
93
93
|
self.context_blocks_cache = {}
|
|
94
|
+
self.current_tasks = []
|
|
94
95
|
self.hot_reload_enabled = False
|
|
95
96
|
self.tokens_calculated = False
|
|
96
97
|
self.skip_cli_confirmations = False
|
|
@@ -160,7 +161,9 @@ class AgentCoder(Coder):
|
|
|
160
161
|
config, ["tools_includelist", "tools_whitelist"], []
|
|
161
162
|
)
|
|
162
163
|
config["tools_excludelist"] = nested.getter(
|
|
163
|
-
config,
|
|
164
|
+
config,
|
|
165
|
+
["tools_excludelist", "tools_blacklist"],
|
|
166
|
+
["gitbranch", "gitdiff", "gitlog", "gitremote", "gitshow", "gitstatus"],
|
|
164
167
|
)
|
|
165
168
|
|
|
166
169
|
config["servers_includelist"] = nested.getter(
|
|
@@ -174,7 +177,7 @@ class AgentCoder(Coder):
|
|
|
174
177
|
config,
|
|
175
178
|
"include_context_blocks",
|
|
176
179
|
{
|
|
177
|
-
"context_summary",
|
|
180
|
+
# "context_summary",
|
|
178
181
|
# "directory_structure",
|
|
179
182
|
"environment_info",
|
|
180
183
|
# "git_status",
|
|
@@ -611,7 +614,7 @@ class AgentCoder(Coder):
|
|
|
611
614
|
percentage = total_tokens / max_input_tokens * 100
|
|
612
615
|
result += f" ({percentage:.1f}% of limit)"
|
|
613
616
|
if percentage > 80:
|
|
614
|
-
result += "\n\n
|
|
617
|
+
result += "\n\n⚠ **Context is getting full!**\n"
|
|
615
618
|
result += "- Remove non-essential files via the `ContextManager` tool.\n"
|
|
616
619
|
result += "- Keep only essential files in context for best performance"
|
|
617
620
|
result += "\n</context>"
|
|
@@ -808,6 +811,9 @@ class AgentCoder(Coder):
|
|
|
808
811
|
"# Fix any linting errors below, if possible and then continue with your task.",
|
|
809
812
|
1,
|
|
810
813
|
)
|
|
814
|
+
ConversationService.get_manager(self).remove_message_by_hash_key(
|
|
815
|
+
("lint_errors", "agent")
|
|
816
|
+
)
|
|
811
817
|
ConversationService.get_manager(self).add_message(
|
|
812
818
|
message_dict=dict(role="user", content=lint_errors),
|
|
813
819
|
tag=MessageTag.CUR,
|
|
@@ -1265,16 +1271,20 @@ class AgentCoder(Coder):
|
|
|
1265
1271
|
abs_path = self.abs_root_path(file_path)
|
|
1266
1272
|
rel_path = self.get_rel_fname(abs_path)
|
|
1267
1273
|
if not os.path.isfile(abs_path):
|
|
1268
|
-
self.io.tool_output(f"
|
|
1274
|
+
self.io.tool_output(f"⚠ File '{file_path}' not found", type="tool-result")
|
|
1269
1275
|
return "File not found"
|
|
1270
1276
|
if abs_path in self.abs_fnames:
|
|
1271
1277
|
if explicit:
|
|
1272
|
-
self.io.tool_output(
|
|
1278
|
+
self.io.tool_output(
|
|
1279
|
+
f"🗀 File '{file_path}' already in context as editable", type="tool-result"
|
|
1280
|
+
)
|
|
1273
1281
|
return "File already in context as editable"
|
|
1274
1282
|
return "File already in context as editable"
|
|
1275
1283
|
if abs_path in self.abs_read_only_fnames:
|
|
1276
1284
|
if explicit:
|
|
1277
|
-
self.io.tool_output(
|
|
1285
|
+
self.io.tool_output(
|
|
1286
|
+
f"🗀 File '{file_path}' already in context as read-only", type="tool-result"
|
|
1287
|
+
)
|
|
1278
1288
|
return "File already in context as read-only"
|
|
1279
1289
|
return "File already in context as read-only"
|
|
1280
1290
|
try:
|
|
@@ -1285,13 +1295,18 @@ class AgentCoder(Coder):
|
|
|
1285
1295
|
file_tokens = self.get_active_model().token_count(content)
|
|
1286
1296
|
if file_tokens > self.large_file_token_threshold:
|
|
1287
1297
|
self.io.tool_output(
|
|
1288
|
-
|
|
1289
|
-
|
|
1298
|
+
(
|
|
1299
|
+
f"⚠ '{file_path}' is very large ({file_tokens} tokens). Use"
|
|
1300
|
+
" /context-management to toggle truncation off if needed."
|
|
1301
|
+
),
|
|
1302
|
+
type="tool-result",
|
|
1290
1303
|
)
|
|
1291
1304
|
self.abs_read_only_fnames.add(abs_path)
|
|
1292
1305
|
self.files_added_in_exploration.add(rel_path)
|
|
1293
1306
|
if explicit:
|
|
1294
|
-
self.io.tool_output(
|
|
1307
|
+
self.io.tool_output(
|
|
1308
|
+
f"🗀 Viewed '{file_path}' (added to context as read-only)", type="tool-result"
|
|
1309
|
+
)
|
|
1295
1310
|
return "Viewed file (added to context as read-only)"
|
|
1296
1311
|
else:
|
|
1297
1312
|
return "Added file to context as read-only"
|
|
@@ -1419,9 +1434,8 @@ Todo list does not exist. Please update it with the `UpdateTodoList` tool.</cont
|
|
|
1419
1434
|
if content is None or not content.strip():
|
|
1420
1435
|
return None
|
|
1421
1436
|
result = '<context name="todo_list" from="agent">\n'
|
|
1422
|
-
result += "## Current
|
|
1423
|
-
result += "
|
|
1424
|
-
result += f"```\n{content}\n```\n"
|
|
1437
|
+
result += "## Current Active Tasks\n\n"
|
|
1438
|
+
result += f"```{"\n".join(self.current_tasks)}```\n"
|
|
1425
1439
|
result += "</context>"
|
|
1426
1440
|
return result
|
|
1427
1441
|
except Exception as e:
|
|
@@ -1107,7 +1107,7 @@ class Coder(metaclass=UsageMeta):
|
|
|
1107
1107
|
|
|
1108
1108
|
# Add message about showing definitions instead of full content
|
|
1109
1109
|
# self.io.tool_output(
|
|
1110
|
-
# f"
|
|
1110
|
+
# f"⚠ '{relative_fname}' is very large ({file_tokens} tokens). "
|
|
1111
1111
|
# "Use /context-management to toggle truncation off if needed."
|
|
1112
1112
|
# )
|
|
1113
1113
|
|
|
@@ -1175,7 +1175,7 @@ class Coder(metaclass=UsageMeta):
|
|
|
1175
1175
|
|
|
1176
1176
|
# Add message about showing definitions instead of full content
|
|
1177
1177
|
# self.io.tool_output(
|
|
1178
|
-
# f"
|
|
1178
|
+
# f"⚠ '{relative_fname}' is very large ({file_tokens} tokens). "
|
|
1179
1179
|
# "Use /context-management to toggle truncation off if needed."
|
|
1180
1180
|
# )
|
|
1181
1181
|
|
|
@@ -273,7 +273,7 @@ def format_command_result(
|
|
|
273
273
|
io.tool_error(f"Error in {command_name}: {str(error)}")
|
|
274
274
|
return f"Error: {str(error)}"
|
|
275
275
|
else:
|
|
276
|
-
io.tool_output(f"
|
|
276
|
+
io.tool_output(f"✓ {success_message}")
|
|
277
277
|
return f"Successfully executed {command_name}."
|
|
278
278
|
|
|
279
279
|
|
|
@@ -272,25 +272,28 @@ class ConversationFiles:
|
|
|
272
272
|
self._file_diffs[abs_fname] = diff
|
|
273
273
|
|
|
274
274
|
rel_fname = fname
|
|
275
|
+
prefix_str = ""
|
|
275
276
|
|
|
276
277
|
if coder:
|
|
277
278
|
rel_fname = coder.get_rel_fname(fname)
|
|
279
|
+
prefix_str = "content ID prefixed " if getattr(coder, "hashlines") else ""
|
|
278
280
|
|
|
279
281
|
# Add diff message to conversation
|
|
280
282
|
content_hash = xxhash.xxh3_128_hexdigest(diff.encode("utf-8"))
|
|
283
|
+
|
|
281
284
|
diff_message = {
|
|
282
285
|
"role": "user",
|
|
283
286
|
"content": (
|
|
284
|
-
f"{rel_fname} has been updated. Review this
|
|
285
|
-
f" ensure
|
|
287
|
+
f"{rel_fname} has been updated. Review this {prefix_str}diff of the changes to"
|
|
288
|
+
f" ensure all modifications are appropriate:\n\n{diff}"
|
|
286
289
|
),
|
|
287
290
|
}
|
|
288
291
|
|
|
289
292
|
assistant_msg = {
|
|
290
293
|
"role": "assistant",
|
|
291
294
|
"content": (
|
|
292
|
-
f"Thank you for sharing this diff of the updates to {rel_fname}."
|
|
293
|
-
" I will review their contents
|
|
295
|
+
f"Thank you for sharing this {prefix_str}diff of the updates to {rel_fname}."
|
|
296
|
+
" I will review their contents."
|
|
294
297
|
),
|
|
295
298
|
}
|
|
296
299
|
|
|
@@ -104,6 +104,9 @@ class ConversationChunks:
|
|
|
104
104
|
priority=75 + i,
|
|
105
105
|
)
|
|
106
106
|
|
|
107
|
+
if self._cancel_post_message_injections():
|
|
108
|
+
return
|
|
109
|
+
|
|
107
110
|
# Add system reminder as a pre-prompt context block
|
|
108
111
|
use_reminders = getattr(coder.args, "use_reminders", True)
|
|
109
112
|
if (
|
|
@@ -165,6 +168,9 @@ class ConversationChunks:
|
|
|
165
168
|
if not coder:
|
|
166
169
|
return
|
|
167
170
|
|
|
171
|
+
# if self._cancel_post_message_injections():
|
|
172
|
+
# return
|
|
173
|
+
|
|
168
174
|
message = random.choice(
|
|
169
175
|
[
|
|
170
176
|
"Given the above, please call any tools necessary to make progress on your task",
|
|
@@ -179,7 +185,7 @@ class ConversationChunks:
|
|
|
179
185
|
),
|
|
180
186
|
(
|
|
181
187
|
"Continue making progress. If you have reached the goal, summarize the results."
|
|
182
|
-
" Otherwise, call the next necessary
|
|
188
|
+
" Otherwise, call the next necessary tools."
|
|
183
189
|
),
|
|
184
190
|
(
|
|
185
191
|
"Please use the proper tools to fulfill the next steps of this task based on"
|
|
@@ -278,7 +284,11 @@ class ConversationChunks:
|
|
|
278
284
|
|
|
279
285
|
self._last_clear_count += 1
|
|
280
286
|
|
|
281
|
-
if
|
|
287
|
+
if (
|
|
288
|
+
should_clear
|
|
289
|
+
and self._last_clear_count >= 20
|
|
290
|
+
and diff_tokens + other_tokens > coder.context_compaction_max_tokens * 0.5
|
|
291
|
+
):
|
|
282
292
|
self._last_clear_count = 0
|
|
283
293
|
|
|
284
294
|
# Clear all diff messages
|
|
@@ -344,6 +354,9 @@ class ConversationChunks:
|
|
|
344
354
|
if not coder:
|
|
345
355
|
return
|
|
346
356
|
|
|
357
|
+
if self._cancel_post_message_injections():
|
|
358
|
+
return
|
|
359
|
+
|
|
347
360
|
# Get relative paths for display
|
|
348
361
|
readonly_rel_files = []
|
|
349
362
|
if hasattr(coder, "abs_read_only_fnames"):
|
|
@@ -976,6 +989,9 @@ class ConversationChunks:
|
|
|
976
989
|
if not hasattr(coder, "use_enhanced_context") or not coder.use_enhanced_context:
|
|
977
990
|
return
|
|
978
991
|
|
|
992
|
+
if self._cancel_post_message_injections():
|
|
993
|
+
return
|
|
994
|
+
|
|
979
995
|
# Add post-message blocks as dict with block type as key
|
|
980
996
|
message_blocks = {}
|
|
981
997
|
|
|
@@ -1059,6 +1075,17 @@ class ConversationChunks:
|
|
|
1059
1075
|
def flush_removals(self):
|
|
1060
1076
|
self._deferred_removals.clear()
|
|
1061
1077
|
|
|
1078
|
+
def _cancel_post_message_injections(self):
|
|
1079
|
+
coder = self.get_coder()
|
|
1080
|
+
if not coder:
|
|
1081
|
+
return False
|
|
1082
|
+
|
|
1083
|
+
# Add system reminder as a pre-prompt context block
|
|
1084
|
+
if coder.edit_format in ("agent", "subagent") and coder.turn_count % 5 != 0:
|
|
1085
|
+
return True
|
|
1086
|
+
|
|
1087
|
+
return False
|
|
1088
|
+
|
|
1062
1089
|
def _shuffle_reminders(self, content: str) -> str:
|
|
1063
1090
|
"""
|
|
1064
1091
|
If the string is a critical_reminders block, shuffle all bulleted points
|
|
@@ -1453,23 +1453,23 @@ def apply_hashline_operations(
|
|
|
1453
1453
|
# Check for overlapping lines to prevent duplication
|
|
1454
1454
|
# This handles cases where the model underspecifies the range and
|
|
1455
1455
|
# the replacement text includes lines that already exist after the range
|
|
1456
|
-
max_overlap_check = 2 # Check up to 2 lines for overlap
|
|
1456
|
+
# max_overlap_check = 2 # Check up to 2 lines for overlap
|
|
1457
1457
|
|
|
1458
1458
|
# Check for overlapping lines BEFORE the range (bidirectional stitching)
|
|
1459
|
-
start_idx, replacement_lines = _apply_start_stitching(
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
)
|
|
1459
|
+
# start_idx, replacement_lines = _apply_start_stitching(
|
|
1460
|
+
# hashed_lines,
|
|
1461
|
+
# start_idx,
|
|
1462
|
+
# end_idx,
|
|
1463
|
+
# replacement_lines,
|
|
1464
|
+
# resolved_ops,
|
|
1465
|
+
# resolved,
|
|
1466
|
+
# max_overlap_check,
|
|
1467
|
+
# )
|
|
1468
1468
|
|
|
1469
1469
|
# Now check for overlapping lines AFTER the range
|
|
1470
|
-
end_idx, replacement_lines = _apply_end_stitching(
|
|
1471
|
-
|
|
1472
|
-
)
|
|
1470
|
+
# end_idx, replacement_lines = _apply_end_stitching(
|
|
1471
|
+
# hashed_lines, start_idx, end_idx, replacement_lines, max_overlap_check
|
|
1472
|
+
# )
|
|
1473
1473
|
|
|
1474
1474
|
hashed_lines[start_idx : end_idx + 1] = replacement_lines
|
|
1475
1475
|
else:
|
|
@@ -13,6 +13,8 @@ def add_reasoning_content(messages):
|
|
|
13
13
|
for msg in messages:
|
|
14
14
|
if msg.get("role") == "assistant" and "reasoning_content" not in msg:
|
|
15
15
|
msg["reasoning_content"] = ""
|
|
16
|
+
if msg.get("provider_specific_fields", None):
|
|
17
|
+
msg["provider_specific_fields"].pop("reasoning_content", None)
|
|
16
18
|
return messages
|
|
17
19
|
|
|
18
20
|
|
|
@@ -162,6 +164,28 @@ def add_continue_for_no_prefill(model, messages, tools):
|
|
|
162
164
|
return messages
|
|
163
165
|
|
|
164
166
|
|
|
167
|
+
def prevent_consecutive_assistant_messages(messages):
|
|
168
|
+
"""Insert '(empty request)' user messages between consecutive assistant messages.
|
|
169
|
+
|
|
170
|
+
Args:
|
|
171
|
+
messages: List of message dictionaries
|
|
172
|
+
|
|
173
|
+
Returns:
|
|
174
|
+
List of messages with '(empty request)' inserted between consecutive
|
|
175
|
+
assistant messages
|
|
176
|
+
"""
|
|
177
|
+
result = []
|
|
178
|
+
for i, msg in enumerate(messages):
|
|
179
|
+
result.append(msg)
|
|
180
|
+
if (
|
|
181
|
+
i < len(messages) - 1
|
|
182
|
+
and msg.get("role") == "assistant"
|
|
183
|
+
and messages[i + 1].get("role") == "assistant"
|
|
184
|
+
):
|
|
185
|
+
result.append({"role": "user", "content": "(empty request)"})
|
|
186
|
+
return result
|
|
187
|
+
|
|
188
|
+
|
|
165
189
|
def model_request_parser(model, messages, tools):
|
|
166
190
|
messages = thought_signature(model, messages)
|
|
167
191
|
messages = remove_empty_tool_calls(messages)
|
|
@@ -169,4 +193,5 @@ def model_request_parser(model, messages, tools):
|
|
|
169
193
|
messages = ensure_alternating_roles(messages)
|
|
170
194
|
messages = add_reasoning_content(messages)
|
|
171
195
|
messages = add_continue_for_no_prefill(model, messages, tools)
|
|
196
|
+
messages = prevent_consecutive_assistant_messages(messages)
|
|
172
197
|
return messages
|
|
@@ -19,58 +19,58 @@ repo_content_prefix: |
|
|
|
19
19
|
These files should be helpful for navigating the codebase.
|
|
20
20
|
|
|
21
21
|
main_system: |
|
|
22
|
-
<context name="role_and_directives">
|
|
23
22
|
## Core Directives
|
|
24
23
|
**Act Proactively**: Autonomously use tools to fulfill the request.
|
|
25
24
|
**Be Decisive**: Do not repeat searches or ask redundant questions. Trust your findings and be confident in your edits.
|
|
26
25
|
**Be Efficient**: Use multiple tools each response when exploring. Batch tool calls when the schema allows you to. Respect usage limits while maximizing the utility of each response.
|
|
27
26
|
**Be Persistent**: Do not take short cuts. Work through your task until completion. No task takes too long as long as you are making progress towards the goal.
|
|
28
|
-
</context>
|
|
29
27
|
|
|
30
|
-
|
|
31
|
-
### 1. FILE FORMAT
|
|
28
|
+
## FILE FORMAT
|
|
32
29
|
File contents will be prefixed with identifiers. Each line starts with a case-sensitive content ID followed by `::`. These are used to target where editing tools will perform edits.
|
|
33
30
|
They are algorithmically generated, maintained, and subject to change. Do not search for these content IDs. Focus on the lines they identify.
|
|
34
31
|
|
|
35
|
-
**Example File
|
|
32
|
+
**Example File**
|
|
33
|
+
```
|
|
36
34
|
il9n::#!/usr/bin/env python3
|
|
37
35
|
faoZ::
|
|
38
36
|
uXdn::def example_method():
|
|
39
37
|
WAR5:: return "example"
|
|
40
38
|
vwkS::
|
|
41
|
-
|
|
39
|
+
```
|
|
42
40
|
|
|
43
|
-
<context name="workflow_and_tool_usage">
|
|
44
41
|
## Core Workflow
|
|
45
42
|
1. **Plan**: Start by using `UpdateTodoList` to outline the task.
|
|
46
43
|
2. **Explore**: Use discovery tools (`ExploreCode`, `Grep`, `Ls`) to research and gather understanding for you task. Modify search terms when errors are encountered.
|
|
47
44
|
3. **Execute**: Mark files as editable with `ContextManager` before attempting edits. Proactively use skills if they are available. Review diff outputs after edit to ensure the proper changes were made.
|
|
48
|
-
4. **Verify & Recover**: If an edit fails or introduces linting errors,
|
|
45
|
+
4. **Verify & Recover**: If an edit fails or introduces linting errors, fix the error immediately. Use `UndoChange` if the errors are too complex to incrementally modify.
|
|
49
46
|
5. **Yield**: Use the `Yield` tool after accomplishing the goal and verifying any changes made. Provide helpful summaries of any changes.
|
|
50
47
|
|
|
51
48
|
## Todo List Management
|
|
52
49
|
- Break complex goals into meaningful sub-tasks so the problem remains tractable
|
|
53
50
|
- Use `UpdateTodoList` to keep the state synchronized as you complete subtasks.
|
|
54
51
|
|
|
55
|
-
**Atomic Scope:** Include the **entire function or logical block** in edits. Never return partial syntax or broken closures. Do not attempt to replace just the beginning or end of a closure.
|
|
56
|
-
**Indentation**: Preserve all necessary whitespace (spaces, tabs, and newlines) as well as stylistic indentation and line spacings.
|
|
57
|
-
</context>
|
|
58
|
-
|
|
59
|
-
Use the `.cecli/temp` directory for all temporary, test, or scratch files.
|
|
60
|
-
Always reply in {language}.
|
|
61
|
-
|
|
62
|
-
system_reminder: |
|
|
63
|
-
<context name="critical_reminders">
|
|
64
52
|
## Operational Rules
|
|
65
53
|
- **Scope**: No unrequested refactors. Avoid full-file rewrites. Only modify what you are asked to.
|
|
66
54
|
- **Hygiene**: Use `ContextManager`/`RemoveSkill` to evict unneeded files/skills immediately after use.
|
|
67
55
|
- **Outputs**: Tool calls trigger turns. Never include tool syntax in final user summaries.
|
|
68
56
|
- **Sandbox**: Perform all verification and temp logic in `.cecli/temp`.
|
|
69
|
-
- **Responses**: Reason out loud through the problem but be brief.
|
|
57
|
+
- **Responses**: Reason out loud through the problem but be brief.
|
|
58
|
+
- **Edits:** Include the **entire function or logical block** in edits. Never return partial syntax or broken closures. Do not attempt to replace just the beginning or end of a closure.
|
|
59
|
+
- **Indentation**: Preserve all necessary whitespace (spaces, tabs, and newlines) as well as stylistic indentation and line spacings.
|
|
60
|
+
- **Finishing Up**: Be detailed in your `Yield` tool summary in describing your task, findings, efforts and results.
|
|
61
|
+
|
|
62
|
+
Always reply in {language}.
|
|
63
|
+
|
|
64
|
+
system_reminder: |
|
|
65
|
+
<context name="critical_reminders">
|
|
66
|
+
- Prefer the `ReadRange` tool to cli commands for file reading
|
|
67
|
+
- Pay close attention to indentation and styling when editing files
|
|
68
|
+
- Batch tool calls as often as possible
|
|
69
|
+
- Reason out loud through problems but be brief.
|
|
70
70
|
|
|
71
71
|
{lazy_prompt}
|
|
72
72
|
{shell_cmd_reminder}
|
|
73
|
-
</context>
|
|
73
|
+
</context>""
|
|
74
74
|
|
|
75
75
|
try_again: |
|
|
76
76
|
My previous exploration was insufficient. I will now adjust my strategy, use more specific search patterns, and manage my context more aggressively to find the correct solution.
|
|
@@ -4,54 +4,54 @@
|
|
|
4
4
|
_inherits: [agent, base]
|
|
5
5
|
|
|
6
6
|
main_system: |
|
|
7
|
-
<context name="role_and_directives">
|
|
8
7
|
## Core Directives
|
|
9
8
|
**Act Proactively**: Autonomously use tools to fulfill the request.
|
|
10
9
|
**Be Decisive**: Do not repeat searches or ask redundant questions. Trust your findings and be confident in your edits.
|
|
11
10
|
**Be Efficient**: Use multiple tools each response when exploring. Batch tool calls when the schema allows you to. Respect usage limits while maximizing the utility of each response.
|
|
12
11
|
**Be Persistent**: Do not take short cuts. Work through your task until completion. No task takes too long as long as you are making progress towards the goal.
|
|
13
|
-
</context>
|
|
14
12
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
They are algorithmically generated, maintained, and subject to change. Do not search for these content hashes. Focus on the lines they identify.
|
|
13
|
+
## FILE FORMAT
|
|
14
|
+
File contents will be prefixed with identifiers. Each line starts with a case-sensitive content ID followed by `::`. These are used to target where editing tools will perform edits.
|
|
15
|
+
They are algorithmically generated, maintained, and subject to change. Do not search for these content IDs. Focus on the lines they identify.
|
|
19
16
|
|
|
20
|
-
**Example File
|
|
17
|
+
**Example File**
|
|
18
|
+
```
|
|
21
19
|
il9n::#!/usr/bin/env python3
|
|
22
20
|
faoZ::
|
|
23
21
|
uXdn::def example_method():
|
|
24
22
|
WAR5:: return "example"
|
|
25
23
|
vwkS::
|
|
26
|
-
|
|
24
|
+
```
|
|
27
25
|
|
|
28
|
-
<context name="workflow_and_tool_usage">
|
|
29
26
|
## Core Workflow
|
|
30
27
|
1. **Plan**: Start by using `UpdateTodoList` to outline the task.
|
|
31
28
|
2. **Explore**: Use discovery tools (`ExploreCode`, `Grep`, `Ls`) to research and gather understanding for you task. Modify search terms when errors are encountered.
|
|
32
29
|
3. **Execute**: Mark files as editable with `ContextManager` before attempting edits. Proactively use skills if they are available. Review diff outputs after edit to ensure the proper changes were made.
|
|
33
|
-
4. **Verify & Recover**: If an edit fails or introduces linting errors,
|
|
30
|
+
4. **Verify & Recover**: If an edit fails or introduces linting errors, fix the error immediately. Use `UndoChange` if the errors are too complex to incrementally modify.
|
|
34
31
|
5. **Yield**: Use the `Yield` tool after accomplishing the goal and verifying any changes made. Provide helpful summaries of any changes.
|
|
35
32
|
|
|
36
33
|
## Todo List Management
|
|
37
34
|
- Break complex goals into meaningful sub-tasks so the problem remains tractable
|
|
38
35
|
- Use `UpdateTodoList` to keep the state synchronized as you complete subtasks.
|
|
39
36
|
|
|
40
|
-
**Atomic Scope:** Include the **entire function or logical block** in edits. Never return partial syntax or broken closures. Do not attempt to replace just the beginning or end of a closure.
|
|
41
|
-
**Indentation**: Preserve all necessary whitespace (spaces, tabs, and newlines) as well as stylistic indentation and line spacings.
|
|
42
|
-
</context>
|
|
43
|
-
|
|
44
|
-
Use the `.cecli/temp` directory for all temporary, test, or scratch files.
|
|
45
|
-
Always reply in {language}.
|
|
46
|
-
|
|
47
|
-
system_reminder: |
|
|
48
|
-
<context name="critical_reminders">
|
|
49
37
|
## Operational Rules
|
|
50
38
|
- **Scope**: No unrequested refactors. Avoid full-file rewrites. Only modify what you are asked to.
|
|
51
39
|
- **Hygiene**: Use `ContextManager`/`RemoveSkill` to evict unneeded files/skills immediately after use.
|
|
52
40
|
- **Outputs**: Tool calls trigger turns. Never include tool syntax in final user summaries.
|
|
53
41
|
- **Sandbox**: Perform all verification and temp logic in `.cecli/temp`.
|
|
54
|
-
- **Responses**: Reason out loud through the problem but be brief.
|
|
42
|
+
- **Responses**: Reason out loud through the problem but be brief.
|
|
43
|
+
- **Edits:** Include the **entire function or logical block** in edits. Never return partial syntax or broken closures. Do not attempt to replace just the beginning or end of a closure.
|
|
44
|
+
- **Indentation**: Preserve all necessary whitespace (spaces, tabs, and newlines) as well as stylistic indentation and line spacings.
|
|
45
|
+
- **Finishing Up**: Be detailed in your `Yield` tool summary in describing your task, findings, efforts and results.
|
|
46
|
+
|
|
47
|
+
Always reply in {language}.
|
|
48
|
+
|
|
49
|
+
system_reminder: |
|
|
50
|
+
<context name="critical_reminders">
|
|
51
|
+
- Prefer the `ReadRange` tool to cli commands for file reading
|
|
52
|
+
- Pay close attention to indentation and styling when editing files
|
|
53
|
+
- Batch tool calls as often as possible
|
|
54
|
+
- Reason out loud through problems but be brief.
|
|
55
55
|
|
|
56
56
|
**Finishing Up**:
|
|
57
57
|
Be very detailed in your `Yield` tool summary in describing your task, findings, efforts and results.
|
|
@@ -7,8 +7,8 @@ from cecli.dump import dump # noqa
|
|
|
7
7
|
# Standard tag identifier
|
|
8
8
|
REASONING_TAG = "thinking-content-" + "7bbeb8e1441453ad999a0bbba8a46d4b"
|
|
9
9
|
# Output formatting
|
|
10
|
-
REASONING_START = "--------------\n
|
|
11
|
-
REASONING_END = "
|
|
10
|
+
REASONING_START = "--------------\n"
|
|
11
|
+
REASONING_END = "--------------\n"
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
def remove_reasoning_content(res, reasoning_tag):
|
|
@@ -161,7 +161,7 @@ class Tool(BaseTool):
|
|
|
161
161
|
"""
|
|
162
162
|
Execute command in background.
|
|
163
163
|
"""
|
|
164
|
-
coder.io.tool_output(f"
|
|
164
|
+
coder.io.tool_output(f"⛭ Starting background command: {command_string}", type="tool-result")
|
|
165
165
|
|
|
166
166
|
# Use static manager to start background command
|
|
167
167
|
command_key = BackgroundCommandManager.start_background_command(
|
|
@@ -193,7 +193,9 @@ class Tool(BaseTool):
|
|
|
193
193
|
|
|
194
194
|
from cecli.helpers.background_commands import CircularBuffer
|
|
195
195
|
|
|
196
|
-
coder.io.tool_output(
|
|
196
|
+
coder.io.tool_output(
|
|
197
|
+
f"⛭ Executing shell command with {timeout}s timeout.", type="tool-result"
|
|
198
|
+
)
|
|
197
199
|
|
|
198
200
|
shell = os.environ.get("SHELL", "/bin/sh")
|
|
199
201
|
|
|
@@ -278,7 +280,7 @@ class Tool(BaseTool):
|
|
|
278
280
|
|
|
279
281
|
# Output to TUI console if TUI exists (same logic as _execute_foreground)
|
|
280
282
|
if coder.tui and coder.tui():
|
|
281
|
-
coder.io.tool_output(output_content)
|
|
283
|
+
coder.io.tool_output(output_content, type="tool-result")
|
|
282
284
|
|
|
283
285
|
if exit_code == 0:
|
|
284
286
|
return (
|
|
@@ -296,7 +298,8 @@ class Tool(BaseTool):
|
|
|
296
298
|
if elapsed >= timeout:
|
|
297
299
|
# Timeout elapsed, process continues in background
|
|
298
300
|
coder.io.tool_output(
|
|
299
|
-
f"⏱️ Command exceeded {timeout}s timeout, continuing in background..."
|
|
301
|
+
f"⏱️ Command exceeded {timeout}s timeout, continuing in background...",
|
|
302
|
+
type="tool-result",
|
|
300
303
|
)
|
|
301
304
|
|
|
302
305
|
# Get any output captured so far
|
|
@@ -322,7 +325,7 @@ class Tool(BaseTool):
|
|
|
322
325
|
tui = coder.tui()
|
|
323
326
|
should_print = False
|
|
324
327
|
|
|
325
|
-
coder.io.tool_output("
|
|
328
|
+
coder.io.tool_output("⛭ Executing shell command.", type="tool-result")
|
|
326
329
|
|
|
327
330
|
# Use run_cmd_subprocess for non-interactive execution
|
|
328
331
|
exit_status, combined_output = run_cmd_subprocess(
|
|
@@ -360,7 +363,7 @@ class Tool(BaseTool):
|
|
|
360
363
|
)
|
|
361
364
|
|
|
362
365
|
if tui:
|
|
363
|
-
coder.io.tool_output(output_content)
|
|
366
|
+
coder.io.tool_output(output_content, type="tool-result")
|
|
364
367
|
|
|
365
368
|
if exit_status == 0:
|
|
366
369
|
return f"Shell command executed successfully (exit code 0). Output:\n{output_content}"
|
|
@@ -53,10 +53,14 @@ class Tool(BaseTool):
|
|
|
53
53
|
if not confirmed:
|
|
54
54
|
# This happens if the user explicitly says 'no' this time.
|
|
55
55
|
# If 'Always' was chosen previously, confirm_ask returns True directly.
|
|
56
|
-
coder.io.tool_output(
|
|
56
|
+
coder.io.tool_output(
|
|
57
|
+
f"Skipped execution of shell command: {command_string}", type="tool-result"
|
|
58
|
+
)
|
|
57
59
|
return "Shell command execution skipped by user."
|
|
58
60
|
|
|
59
|
-
coder.io.tool_output(
|
|
61
|
+
coder.io.tool_output(
|
|
62
|
+
f"⛭ Starting interactive shell command: {command_string}", type="tool-result"
|
|
63
|
+
)
|
|
60
64
|
|
|
61
65
|
tui = coder.tui() if coder.tui else None
|
|
62
66
|
|
|
@@ -71,19 +75,23 @@ class Tool(BaseTool):
|
|
|
71
75
|
|
|
72
76
|
if tui:
|
|
73
77
|
# Notify user and suspend TUI for interactive command
|
|
74
|
-
coder.io.tool_output(
|
|
78
|
+
coder.io.tool_output(
|
|
79
|
+
">>> Suspending TUI for interactive command <<<", type="tool-result"
|
|
80
|
+
)
|
|
75
81
|
exit_status, combined_output = tui.run_obstructive(_run_interactive)
|
|
76
82
|
else:
|
|
77
|
-
coder.io.tool_output(
|
|
83
|
+
coder.io.tool_output(
|
|
84
|
+
">>> You may need to interact with the command below <<<", type="tool-result"
|
|
85
|
+
)
|
|
78
86
|
coder.io.tool_output(" \n")
|
|
79
87
|
await coder.io.stop_input_task()
|
|
80
88
|
await asyncio.sleep(1)
|
|
81
89
|
exit_status, combined_output = _run_interactive()
|
|
82
90
|
await asyncio.sleep(1)
|
|
83
|
-
coder.io.tool_output(" \n")
|
|
84
|
-
coder.io.tool_output(" \n")
|
|
91
|
+
coder.io.tool_output(" \n", type="tool-result")
|
|
92
|
+
coder.io.tool_output(" \n", type="tool-result")
|
|
85
93
|
|
|
86
|
-
coder.io.tool_output(">>> Interactive command finished <<<")
|
|
94
|
+
coder.io.tool_output(">>> Interactive command finished <<<", type="tool-result")
|
|
87
95
|
|
|
88
96
|
# Format the output for the result message, include more content
|
|
89
97
|
output_content = combined_output or ""
|