cecli-dev 0.97.5__tar.gz → 0.98.0__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.97.5 → cecli_dev-0.98.0}/CONTRIBUTING.md +1 -1
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/PKG-INFO +7 -5
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/README.md +3 -3
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/benchmark.py +3 -4
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/__init__.py +1 -1
- cecli_dev-0.98.0/cecli/_version.py +24 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/args.py +15 -5
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/agent_coder.py +93 -79
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/architect_coder.py +6 -7
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/base_coder.py +195 -124
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/hashline_coder.py +8 -3
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/search_replace.py +2 -2
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/single_wholefile_func_coder.py +3 -3
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/wholefile_func_coder.py +3 -4
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/__init__.py +3 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/agent_model.py +4 -10
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/clear.py +8 -12
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/context_management.py +5 -9
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/copy.py +2 -2
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/core.py +0 -6
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/drop.py +10 -3
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/editor_model.py +4 -10
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/ls.py +13 -1
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/map.py +2 -2
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/map_refresh.py +2 -2
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/model.py +4 -10
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/reset.py +6 -6
- cecli_dev-0.98.0/cecli/commands/rules.py +148 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/run.py +7 -3
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/tokens.py +19 -10
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/undo.py +4 -8
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/utils/base_command.py +5 -5
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/utils/helpers.py +59 -4
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/weak_model.py +4 -9
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/web.py +7 -3
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/deprecated_args.py +11 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/conversation/__init__.py +4 -9
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/conversation/base_message.py +13 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/conversation/files.py +140 -137
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/conversation/integration.py +228 -198
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/conversation/manager.py +189 -183
- cecli_dev-0.98.0/cecli/helpers/conversation/service.py +40 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/conversation/tags.py +4 -1
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/hashline.py +11 -7
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/hashpos/hashpos.py +27 -21
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/requests.py +28 -44
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/main.py +27 -11
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/mcp/manager.py +1 -1
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/mcp/utils.py +10 -5
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/models.py +53 -36
- cecli_dev-0.98.0/cecli/prompts/agent.yml +79 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/prompts/hashline.yml +6 -6
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/repo.py +12 -4
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/sessions.py +15 -14
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/__init__.py +2 -4
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/command.py +2 -2
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/command_interactive.py +1 -1
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/context_manager.py +1 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/delete_text.py +11 -2
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/insert_text.py +11 -2
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/replace_text.py +38 -53
- cecli_dev-0.98.0/cecli/tools/show_context.py +256 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/undo_change.py +2 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/update_todo_list.py +4 -1
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tui/__init__.py +10 -7
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tui/app.py +28 -10
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tui/io.py +1 -1
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tui/widgets/footer.py +1 -1
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tui/worker.py +6 -4
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/watch.py +2 -1
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/_includes/recording.css +0 -1
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/_sass/_hero.scss +0 -1
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/_sass/_testimonials.scss +1 -4
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/_sass/global-overrides.scss +12 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/config/aider_conf.md +0 -3
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/config/dotenv.md +0 -3
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/config/hooks.md +4 -4
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/config/options.md +0 -10
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/index.md +2 -2
- cecli_dev-0.98.0/cecli/website/docs/usage/conventions.md +42 -0
- {cecli_dev-0.97.5/cecli/website/docs → cecli_dev-0.98.0/cecli/website/docs/usage}/sessions.md +6 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli_dev.egg-info/PKG-INFO +7 -5
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli_dev.egg-info/SOURCES.txt +5 -11
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli_dev.egg-info/requires.txt +3 -1
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/requirements/common-constraints.txt +14 -1
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/requirements/requirements-dev.in +2 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/requirements/requirements-dev.txt +41 -1
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/requirements/requirements-help.txt +2 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/requirements/requirements.in +1 -1
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/requirements.txt +4 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_coder.py +15 -8
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_hashline.py +36 -44
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_main.py +41 -1
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_repomap.py +2 -2
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_wholefile.py +4 -4
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/hooks/test_base.py +14 -14
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/hooks/test_manager.py +21 -21
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/hooks/test_registry.py +4 -4
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/test_conversation_integration.py +27 -20
- cecli_dev-0.98.0/tests/test_conversation_system.py +330 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/tools/test_insert_block.py +25 -26
- cecli_dev-0.97.5/tests/tools/test_show_numbered_context.py → cecli_dev-0.98.0/tests/tools/test_show_context.py +19 -16
- cecli_dev-0.97.5/cecli/_version.py +0 -34
- cecli_dev-0.97.5/cecli/prompts/agent.yml +0 -65
- cecli_dev-0.97.5/cecli/tools/indent_text.py +0 -224
- cecli_dev-0.97.5/cecli/tools/show_numbered_context.py +0 -217
- cecli_dev-0.97.5/cecli/website/docs/recordings/auto-accept-architect.md +0 -31
- cecli_dev-0.97.5/cecli/website/docs/recordings/dont-drop-original-read-files.md +0 -35
- cecli_dev-0.97.5/cecli/website/docs/recordings/index.md +0 -21
- cecli_dev-0.97.5/cecli/website/docs/recordings/model-accepts-settings.md +0 -69
- cecli_dev-0.97.5/cecli/website/docs/recordings/tree-sitter-language-pack.md +0 -80
- cecli_dev-0.97.5/cecli/website/docs/usage/browser.md +0 -57
- cecli_dev-0.97.5/cecli/website/docs/usage/caching.md +0 -49
- cecli_dev-0.97.5/cecli/website/docs/usage/conventions.md +0 -119
- cecli_dev-0.97.5/tests/test_conversation_system.py +0 -710
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/.dockerignore +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/.flake8 +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/.gitattributes +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/.github/workflows/check_pypi_version.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/.github/workflows/docker-build-test.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/.github/workflows/docker-release.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/.github/workflows/issues.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/.github/workflows/pages.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/.github/workflows/pre-commit.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/.github/workflows/release.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/.github/workflows/ubuntu-tests.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/.github/workflows/windows-tests.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/.github/workflows/windows_check_pypi_version.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/.gitignore +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/.pre-commit-config.yaml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/CHANGELOG.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/CNAME +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/HISTORY.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/LICENSE.txt +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/MANIFEST.in +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/Dockerfile +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/README.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/__init__.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/benchmark_classic.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/clone-exercism.sh +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/cpp-test.sh +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/docker.sh +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/docker_build.sh +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/install-docker-ubuntu.sh +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/npm-test.sh +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/over_time.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/plot.sh +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/plots.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/problem_stats.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/prompts.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/refactor_tools.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/rsync.sh +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/rungrid.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/swe-bench-lite.txt +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/swe-bench.txt +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/swe_bench.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/test_benchmark.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/variations.1.sh +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/variations.2.sh +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/variations.3.sh +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/benchmark/variations.4.sh +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/__main__.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/args_formatter.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/change_tracker.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/__init__.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/ask_coder.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/chat_chunks.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/context_coder.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/copypaste_coder.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/editblock_coder.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/editblock_fenced_coder.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/editblock_func_coder.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/editor_diff_fenced_coder.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/editor_editblock_coder.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/editor_whole_coder.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/help_coder.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/patch_coder.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/shell.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/udiff_coder.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/udiff_simple.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/coders/wholefile_coder.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/add.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/agent.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/architect.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/ask.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/chat_mode.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/code.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/command_prefix.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/commit.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/compact.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/context.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/context_blocks.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/copy_context.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/diff.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/editor.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/exit.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/git.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/hashline.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/help.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/history_search.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/hooks.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/lint.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/list_sessions.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/load.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/load_hook.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/load_mcp.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/load_session.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/load_skill.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/models.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/multiline_mode.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/paste.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/quit.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/read_only.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/read_only_stub.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/reasoning_effort.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/remove_hook.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/remove_mcp.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/remove_skill.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/report.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/save.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/save_session.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/settings.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/terminal_data/linux.keytab +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/terminal_setup.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/test.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/think_tokens.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/utils/__init__.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/utils/registry.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/utils/save_load_manager.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/commands/voice.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/diffs.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/dump.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/editor.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/exceptions.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/format_settings.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/help.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/help_pats.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/__init__.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/background_commands.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/command_parser.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/conversation/utils.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/copypaste.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/coroutines.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/file_searcher.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/hashpos/__init__.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/model_providers.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/nested.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/plugin_manager.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/profiler.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/responses.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/similarity.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/helpers/skills.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/history.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/hooks/__init__.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/hooks/base.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/hooks/integration.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/hooks/manager.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/hooks/registry.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/hooks/types.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/interruptible_input.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/io.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/linter.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/llm.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/mcp/__init__.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/mcp/oauth.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/mcp/server.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/mdstream.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/onboarding.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/prompts/__init__.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/prompts/architect.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/prompts/ask.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/prompts/base.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/prompts/context.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/prompts/copypaste.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/prompts/editblock.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/prompts/editblock_fenced.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/prompts/editblock_func.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/prompts/editor_diff_fenced.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/prompts/editor_editblock.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/prompts/editor_whole.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/prompts/help.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/prompts/patch.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/prompts/single_wholefile_func.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/prompts/udiff.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/prompts/udiff_simple.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/prompts/utils/__init__.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/prompts/utils/registry.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/prompts/utils/system.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/prompts/wholefile.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/prompts/wholefile_func.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/README.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/reasoning_tags.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/repomap.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/report.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/resources/__init__.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/resources/model-metadata.json +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/resources/model-settings.yml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/resources/providers.json +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/run_cmd.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/scrape.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/sendchat.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/special.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/finished.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/git_branch.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/git_diff.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/git_log.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/git_remote.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/git_show.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/git_status.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/grep.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/list_changes.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/load_skill.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/ls.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/remove_skill.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/thinking.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/utils/base_tool.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/utils/helpers.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/utils/output.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/utils/registry.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/view_files_matching.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tools/view_files_with_symbol.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tui/styles.tcss +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tui/widgets/__init__.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tui/widgets/completion_bar.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tui/widgets/file_list.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tui/widgets/input_area.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tui/widgets/input_container.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tui/widgets/key_hints.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tui/widgets/output.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/tui/widgets/status_bar.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/urls.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/utils.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/versioncheck.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/voice.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/waiting.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/watch_prompts.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/Gemfile +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/_includes/blame.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/_includes/get-started.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/_includes/help-tip.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/_includes/help.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/_includes/install.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/_includes/keys.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/_includes/model-warnings.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/_includes/multi-line.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/_includes/python-m-aider.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/_includes/recording.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/_includes/works-best.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/_sass/_features.scss +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/_sass/_footer.scss +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/_sass/_info.scss +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/_sass/_layout.scss +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/_sass/_reset.scss +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/_sass/_typography.scss +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/_sass/_variables.scss +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/_sass/custom/custom.scss +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/config/adv-model-settings.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/config/agent-mode.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/config/api-keys.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/config/custom-commands.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/config/custom-system-prompts.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/config/editor.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/config/mcp.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/config/model-aliases.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/config/reasoning.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/config/security.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/config/skills.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/config/tui.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/config.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/faq.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/git.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/install/docker.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/install/optional.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/install.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/languages.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/legal/contributor-agreement.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/legal/privacy.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/llms/anthropic.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/llms/azure.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/llms/bedrock.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/llms/cohere.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/llms/deepseek.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/llms/gemini.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/llms/github.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/llms/groq.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/llms/lm-studio.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/llms/ollama.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/llms/openai-compat.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/llms/openai.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/llms/openrouter.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/llms/other.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/llms/vertex.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/llms/warnings.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/llms/xai.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/llms.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/more/analytics.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/more/edit-formats.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/more/infinite-output.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/more-info.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/repomap.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/scripting.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/troubleshooting/imports.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/troubleshooting/support.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/troubleshooting/warnings.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/troubleshooting.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/usage/commands.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/usage/copypaste.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/usage/images-urls.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/usage/lint-test.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/usage/modes.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/usage/not-code.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/usage/notifications.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/usage/tips.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/usage/voice.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/usage/watch.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/docs/usage.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli/website/share/index.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli_dev.egg-info/dependency_links.txt +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli_dev.egg-info/entry_points.txt +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/cecli_dev.egg-info/top_level.txt +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/docker/Dockerfile +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/pyproject.toml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/pytest.ini +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/requirements/requirements-help.in +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/requirements/requirements-playwright.in +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/requirements/requirements-playwright.txt +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/requirements/tree-sitter.in +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/30k-image.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/Dockerfile.jekyll +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/__init__.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/blame.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/clean_metadata.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/cost_analyzer.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/dl_icons.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/filter-chat-mode.js +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/generate_providers.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/get_contributor_list.js +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/get_hashline.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/history_prompts.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/homepage.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/issues.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/jekyll_build.sh +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/jekyll_run.sh +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/logo_svg.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/pip-compile.sh +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/recording_audio.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/redact-cast.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/rename_to_cecli.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/tmux_record.sh +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/tsl_pack_langs.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/update-blame.sh +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/update-docs.sh +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/update-history.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/versionbump.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/scripts/yank-old-versions.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/setup.cfg +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/shim.pyproject.toml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/__init__.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/__init__.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_aws_credentials.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_background_commands.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_commands.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_custom_commands.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_deprecated.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_editblock.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_editor.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_exceptions.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_find_or_blocks.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_history.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_io.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_linter.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_model_info_manager.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_model_provider_manager.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_models.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_onboarding.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_plugin_manager.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_prompts.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_reasoning.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_repo.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_run_cmd.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_sanity_check_repo.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_scripting.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_sendchat.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_sessions.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_skills.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_special.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_ssl_verification.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_udiff.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_urls.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_voice.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/basic/test_watch.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/coders/test_copypaste_coder.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/conftest.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/chat-history.md +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/arduino/test.ino +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/c/test.c +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/chatito/test.chatito +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/clojure/test.clj +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/cpp/test.cpp +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/csharp/test.cs +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/d/test.d +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/dart/test.dart +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/elisp/test.el +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/elixir/test.ex +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/elm/test.elm +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/gleam/test.gleam +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/go/test.go +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/haskell/test.hs +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/hcl/test.tf +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/java/test.java +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/javascript/test.js +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/kotlin/test.kt +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/lua/test.lua +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/matlab/test.m +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/ocaml/test.ml +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/php/test.php +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/pony/test.pony +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/properties/test.properties +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/python/test.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/ql/test.ql +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/r/test.r +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/racket/test.rkt +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/ruby/test.rb +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/rust/test.rs +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/scala/test.scala +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/solidity/test.sol +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/swift/test.swift +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/tsx/test.tsx +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/typescript/test.ts +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/udev/test.rules +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/languages/zig/test.zig +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/sample-code-base/sample.js +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/sample-code-base/sample.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/watch.js +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/watch.lisp +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/watch.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/fixtures/watch_question.js +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/help/test_help.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/hooks/__init__.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/mcp/__init__.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/mcp/test_manager.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/scrape/test_playwright_disable.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/scrape/test_scrape.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/tools/test_git_branch.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/tools/test_git_diff.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/tools/test_grep.py +0 -0
- {cecli_dev-0.97.5 → cecli_dev-0.98.0}/tests/tools/test_registry.py +0 -0
|
@@ -159,4 +159,4 @@ The project's documentation is built using Jekyll and hosted on GitHub Pages. To
|
|
|
159
159
|
bundle exec jekyll serve
|
|
160
160
|
```
|
|
161
161
|
|
|
162
|
-
The built documentation will be available in the `
|
|
162
|
+
The built documentation will be available in the `cecli/website/_site` directory.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: cecli-dev
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.98.0
|
|
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
|
|
@@ -35,7 +35,7 @@ Requires-Dist: beautifulsoup4>=4.13.4
|
|
|
35
35
|
Requires-Dist: PyYAML>=6.0.2
|
|
36
36
|
Requires-Dist: diff-match-patch>=20241021
|
|
37
37
|
Requires-Dist: pypandoc>=1.15
|
|
38
|
-
Requires-Dist: litellm
|
|
38
|
+
Requires-Dist: litellm!=1.82.7,!=1.82.8,>=1.80.11
|
|
39
39
|
Requires-Dist: flake8>=7.3.0
|
|
40
40
|
Requires-Dist: importlib_resources
|
|
41
41
|
Requires-Dist: pyperclip>=1.9.0
|
|
@@ -74,6 +74,8 @@ Requires-Dist: cogapp; extra == "dev"
|
|
|
74
74
|
Requires-Dist: semver; extra == "dev"
|
|
75
75
|
Requires-Dist: codespell; extra == "dev"
|
|
76
76
|
Requires-Dist: uv; extra == "dev"
|
|
77
|
+
Requires-Dist: memray; extra == "dev"
|
|
78
|
+
Requires-Dist: objgraph; extra == "dev"
|
|
77
79
|
Provides-Extra: help
|
|
78
80
|
Requires-Dist: llama-index-embeddings-huggingface; extra == "help"
|
|
79
81
|
Requires-Dist: numpy>=1.26.4; extra == "help"
|
|
@@ -249,9 +251,9 @@ The current priorities are to improve core capabilities and user experience of t
|
|
|
249
251
|
|
|
250
252
|
7. **Sub Agents**
|
|
251
253
|
* [ ] Add `/fork` and `/rejoin` commands to manually manage parts of the conversation history
|
|
252
|
-
* [
|
|
253
|
-
* [
|
|
254
|
-
* [
|
|
254
|
+
* [x] Add an instance-able view of the conversation system so sub agents get their own context and workspaces
|
|
255
|
+
* [x] Modify coder classes to have discrete identifiers for themselves/management utilities for them to have their own slices of the world
|
|
256
|
+
* [x] Refactor global files like todo lists to live inside instance folders to avoid state conflicts
|
|
255
257
|
* [ ] Add a `spawn` tool that launches a sub agent as a background command that the parent model waits for to finish
|
|
256
258
|
* [ ] Add visibility into active sub agent calls in TUI
|
|
257
259
|
|
|
@@ -165,9 +165,9 @@ The current priorities are to improve core capabilities and user experience of t
|
|
|
165
165
|
|
|
166
166
|
7. **Sub Agents**
|
|
167
167
|
* [ ] Add `/fork` and `/rejoin` commands to manually manage parts of the conversation history
|
|
168
|
-
* [
|
|
169
|
-
* [
|
|
170
|
-
* [
|
|
168
|
+
* [x] Add an instance-able view of the conversation system so sub agents get their own context and workspaces
|
|
169
|
+
* [x] Modify coder classes to have discrete identifiers for themselves/management utilities for them to have their own slices of the world
|
|
170
|
+
* [x] Refactor global files like todo lists to live inside instance folders to avoid state conflicts
|
|
171
171
|
* [ ] Add a `spawn` tool that launches a sub agent as a background command that the parent model waits for to finish
|
|
172
172
|
* [ ] Add visibility into active sub agent calls in TUI
|
|
173
173
|
|
|
@@ -990,7 +990,7 @@ async def run_test_real(
|
|
|
990
990
|
|
|
991
991
|
from cecli import models
|
|
992
992
|
from cecli.coders import Coder
|
|
993
|
-
from cecli.helpers.conversation import
|
|
993
|
+
from cecli.helpers.conversation import ConversationService
|
|
994
994
|
from cecli.io import InputOutput
|
|
995
995
|
from cecli.main import SwitchCoderSignal
|
|
996
996
|
|
|
@@ -1211,13 +1211,12 @@ async def run_test_real(
|
|
|
1211
1211
|
dur = 0
|
|
1212
1212
|
test_outcomes = []
|
|
1213
1213
|
|
|
1214
|
-
|
|
1215
|
-
coder,
|
|
1214
|
+
ConversationService.get_manager(coder).initialize(
|
|
1216
1215
|
reset=True,
|
|
1217
1216
|
reformat=True,
|
|
1218
1217
|
)
|
|
1219
1218
|
|
|
1220
|
-
|
|
1219
|
+
ConversationService.get_files(coder).reset()
|
|
1221
1220
|
|
|
1222
1221
|
for i in range(tries):
|
|
1223
1222
|
start = time.time()
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# file generated by vcs-versioning
|
|
2
|
+
# don't change, don't track in version control
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
__all__ = [
|
|
6
|
+
"__version__",
|
|
7
|
+
"__version_tuple__",
|
|
8
|
+
"version",
|
|
9
|
+
"version_tuple",
|
|
10
|
+
"__commit_id__",
|
|
11
|
+
"commit_id",
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
version: str
|
|
15
|
+
__version__: str
|
|
16
|
+
__version_tuple__: tuple[int | str, ...]
|
|
17
|
+
version_tuple: tuple[int | str, ...]
|
|
18
|
+
commit_id: str | None
|
|
19
|
+
__commit_id__: str | None
|
|
20
|
+
|
|
21
|
+
__version__ = version = '0.98.0'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 98, 0)
|
|
23
|
+
|
|
24
|
+
__commit_id__ = commit_id = 'g57029fa89'
|
|
@@ -14,7 +14,7 @@ from cecli.args_formatter import (
|
|
|
14
14
|
MarkdownHelpFormatter,
|
|
15
15
|
YamlHelpFormatter,
|
|
16
16
|
)
|
|
17
|
-
from cecli.deprecated_args import add_deprecated_model_args
|
|
17
|
+
from cecli.deprecated_args import add_deprecated_mcp_args, add_deprecated_model_args
|
|
18
18
|
|
|
19
19
|
from .dump import dump # noqa: F401
|
|
20
20
|
|
|
@@ -364,10 +364,11 @@ def get_parser(default_config_files, git_root):
|
|
|
364
364
|
default=None,
|
|
365
365
|
)
|
|
366
366
|
group.add_argument(
|
|
367
|
-
"--mcp-servers-
|
|
368
|
-
metavar="
|
|
369
|
-
help="Specify a file path with MCP server configurations",
|
|
370
|
-
|
|
367
|
+
"--mcp-servers-files",
|
|
368
|
+
metavar="MCP_CONFIG_FILES",
|
|
369
|
+
help="Specify a file path with MCP server configurations (can be specified multiple times)",
|
|
370
|
+
action="append",
|
|
371
|
+
default=[],
|
|
371
372
|
)
|
|
372
373
|
group.add_argument(
|
|
373
374
|
"--mcp-transport",
|
|
@@ -961,6 +962,12 @@ def get_parser(default_config_files, git_root):
|
|
|
961
962
|
metavar="FILE",
|
|
962
963
|
help="specify a read-only file (can be used multiple times, glob patterns supported)",
|
|
963
964
|
).complete = shtab.FILE
|
|
965
|
+
group.add_argument(
|
|
966
|
+
"--rules",
|
|
967
|
+
action="append",
|
|
968
|
+
metavar="FILE",
|
|
969
|
+
help="specify a rules file (can be used multiple times, glob patterns supported)",
|
|
970
|
+
).complete = shtab.FILE
|
|
964
971
|
group.add_argument(
|
|
965
972
|
"--vim",
|
|
966
973
|
action="store_true",
|
|
@@ -1089,6 +1096,9 @@ def get_parser(default_config_files, git_root):
|
|
|
1089
1096
|
# Add deprecated model shortcut arguments
|
|
1090
1097
|
add_deprecated_model_args(parser, group)
|
|
1091
1098
|
|
|
1099
|
+
group = parser.add_argument_group("Deprecated agent settings")
|
|
1100
|
+
add_deprecated_mcp_args(parser, group)
|
|
1101
|
+
|
|
1092
1102
|
return parser
|
|
1093
1103
|
|
|
1094
1104
|
|
|
@@ -15,11 +15,7 @@ from cecli import utils
|
|
|
15
15
|
from cecli.change_tracker import ChangeTracker
|
|
16
16
|
from cecli.helpers import nested
|
|
17
17
|
from cecli.helpers.background_commands import BackgroundCommandManager
|
|
18
|
-
from cecli.helpers.conversation import
|
|
19
|
-
|
|
20
|
-
# All conversation functions are now available via ConversationChunks class
|
|
21
|
-
from cecli.helpers.conversation.manager import ConversationManager
|
|
22
|
-
from cecli.helpers.conversation.tags import MessageTag
|
|
18
|
+
from cecli.helpers.conversation import ConversationService, MessageTag
|
|
23
19
|
from cecli.helpers.similarity import (
|
|
24
20
|
cosine_similarity,
|
|
25
21
|
create_bigram_vector,
|
|
@@ -42,6 +38,7 @@ class AgentCoder(Coder):
|
|
|
42
38
|
prompt_format = "agent"
|
|
43
39
|
context_management_enabled = True
|
|
44
40
|
hashlines = True
|
|
41
|
+
stop_on_empty = False
|
|
45
42
|
|
|
46
43
|
def __init__(self, *args, **kwargs):
|
|
47
44
|
self.recently_removed = {}
|
|
@@ -49,7 +46,7 @@ class AgentCoder(Coder):
|
|
|
49
46
|
self.tool_usage_retries = 20
|
|
50
47
|
self.last_round_tools = []
|
|
51
48
|
self.tool_call_vectors = []
|
|
52
|
-
self.tool_similarity_threshold = 0.
|
|
49
|
+
self.tool_similarity_threshold = 0.95
|
|
53
50
|
self.max_tool_vector_history = 20
|
|
54
51
|
self.read_tools = {
|
|
55
52
|
"command",
|
|
@@ -60,17 +57,17 @@ class AgentCoder(Coder):
|
|
|
60
57
|
"viewfileswithsymbol",
|
|
61
58
|
"grep",
|
|
62
59
|
"listchanges",
|
|
63
|
-
"
|
|
60
|
+
"showcontext",
|
|
64
61
|
"thinking",
|
|
65
62
|
"updatetodolist",
|
|
66
63
|
}
|
|
67
64
|
self.write_tools = {
|
|
68
65
|
"deletetext",
|
|
69
|
-
"indenttext",
|
|
70
66
|
"inserttext",
|
|
71
67
|
"replacetext",
|
|
72
68
|
"undochange",
|
|
73
69
|
}
|
|
70
|
+
self.edit_allowed = False
|
|
74
71
|
self.max_tool_calls = 10000
|
|
75
72
|
self.large_file_token_threshold = 8192
|
|
76
73
|
self.skills_manager = None
|
|
@@ -243,10 +240,15 @@ class AgentCoder(Coder):
|
|
|
243
240
|
|
|
244
241
|
async def _execute_local_tool_calls(self, tool_calls_list):
|
|
245
242
|
tool_responses = []
|
|
243
|
+
used_write_tool = False
|
|
244
|
+
|
|
246
245
|
for tool_call in tool_calls_list:
|
|
247
246
|
tool_name = tool_call.function.name
|
|
248
247
|
result_message = ""
|
|
249
248
|
try:
|
|
249
|
+
if tool_name.lower() in self.write_tools:
|
|
250
|
+
used_write_tool = True
|
|
251
|
+
|
|
250
252
|
args_string = tool_call.function.arguments.strip()
|
|
251
253
|
parsed_args_list = []
|
|
252
254
|
|
|
@@ -268,14 +270,14 @@ class AgentCoder(Coder):
|
|
|
268
270
|
except json.JSONDecodeError as e:
|
|
269
271
|
self.model_kwargs = {}
|
|
270
272
|
self.io.tool_warning(
|
|
271
|
-
f"
|
|
273
|
+
f"Malformed JSON arguments in tool {tool_name}: {chunk}"
|
|
272
274
|
)
|
|
273
275
|
tool_responses.append(
|
|
274
276
|
{
|
|
275
277
|
"role": "tool",
|
|
276
278
|
"tool_call_id": tool_call.id,
|
|
277
279
|
"content": (
|
|
278
|
-
f"
|
|
280
|
+
f"Malformed JSON arguments in tool {tool_name}: {str(e)}"
|
|
279
281
|
),
|
|
280
282
|
}
|
|
281
283
|
)
|
|
@@ -335,6 +337,31 @@ class AgentCoder(Coder):
|
|
|
335
337
|
tool_responses.append(
|
|
336
338
|
{"role": "tool", "tool_call_id": tool_call.id, "content": result_message}
|
|
337
339
|
)
|
|
340
|
+
|
|
341
|
+
if self.auto_lint and used_write_tool and not self.edit_allowed:
|
|
342
|
+
edited = list(self.files_edited_by_tools)
|
|
343
|
+
lint_errors = self.lint_edited(edited, show_output=False)
|
|
344
|
+
self.lint_outcome = not lint_errors
|
|
345
|
+
|
|
346
|
+
if lint_errors:
|
|
347
|
+
lint_errors = lint_errors.replace(
|
|
348
|
+
"# Fix any linting errors below, if possible.",
|
|
349
|
+
"# Fix any linting errors below, if possible and then continue with your task.",
|
|
350
|
+
1,
|
|
351
|
+
)
|
|
352
|
+
ConversationService.get_manager(self).add_message(
|
|
353
|
+
message_dict=dict(role="user", content=lint_errors),
|
|
354
|
+
tag=MessageTag.CUR,
|
|
355
|
+
hash_key=("lint_errors", "agent"),
|
|
356
|
+
promotion=ConversationService.get_manager(self).DEFAULT_TAG_PROMOTION_VALUE,
|
|
357
|
+
mark_for_demotion=1,
|
|
358
|
+
force=True,
|
|
359
|
+
)
|
|
360
|
+
else:
|
|
361
|
+
ConversationService.get_manager(self).remove_message_by_hash_key(
|
|
362
|
+
("lint_errors", "agent")
|
|
363
|
+
)
|
|
364
|
+
|
|
338
365
|
return tool_responses
|
|
339
366
|
|
|
340
367
|
async def _execute_mcp_tool(self, server, tool_name, params):
|
|
@@ -412,7 +439,7 @@ class AgentCoder(Coder):
|
|
|
412
439
|
if block_type in self.allowed_context_blocks:
|
|
413
440
|
block_content = self._generate_context_block(block_type)
|
|
414
441
|
if block_content:
|
|
415
|
-
self.context_block_tokens[block_type] = self.
|
|
442
|
+
self.context_block_tokens[block_type] = self.get_active_model().token_count(
|
|
416
443
|
block_content
|
|
417
444
|
)
|
|
418
445
|
self.tokens_calculated = True
|
|
@@ -538,37 +565,37 @@ class AgentCoder(Coder):
|
|
|
538
565
|
# Choose appropriate fence based on file content
|
|
539
566
|
self.choose_fence()
|
|
540
567
|
|
|
541
|
-
|
|
542
|
-
# Decrement mark_for_delete values before adding new messages
|
|
543
|
-
ConversationManager.decrement_mark_for_delete()
|
|
568
|
+
ConversationService.get_chunks(self).initialize_conversation_system()
|
|
544
569
|
|
|
545
570
|
# Clean up ConversationFiles and remove corresponding messages
|
|
546
|
-
|
|
571
|
+
ConversationService.get_chunks(self).cleanup_files()
|
|
547
572
|
|
|
548
573
|
# Add reminder message with list of readonly and editable files
|
|
549
|
-
|
|
574
|
+
ConversationService.get_chunks(self).add_file_list_reminder()
|
|
550
575
|
|
|
551
576
|
# Add system messages (including examples and reminder)
|
|
552
|
-
|
|
577
|
+
ConversationService.get_chunks(self).add_system_messages()
|
|
553
578
|
|
|
554
579
|
# Add static context blocks (priority 50 - between SYSTEM and EXAMPLES)
|
|
555
|
-
|
|
580
|
+
ConversationService.get_chunks(self).add_static_context_blocks()
|
|
581
|
+
|
|
582
|
+
# Add rules messages
|
|
583
|
+
ConversationService.get_chunks(self).add_rules_messages()
|
|
556
584
|
|
|
557
585
|
# Handle file messages using conversation module helper methods
|
|
558
586
|
# These methods will add messages to ConversationManager
|
|
559
|
-
|
|
587
|
+
ConversationService.get_chunks(self).add_repo_map_messages()
|
|
560
588
|
|
|
561
589
|
# Add pre-message context blocks (priority 125 - between REPO and READONLY_FILES)
|
|
562
|
-
|
|
590
|
+
ConversationService.get_chunks(self).add_pre_message_context_blocks()
|
|
563
591
|
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
# ConversationChunks.add_file_context_messages(self)
|
|
592
|
+
ConversationService.get_chunks(self).add_readonly_files_messages()
|
|
593
|
+
ConversationService.get_chunks(self).add_chat_files_messages()
|
|
567
594
|
|
|
568
595
|
# Add post-message context blocks (priority 250 - between CUR and REMINDER)
|
|
569
|
-
|
|
596
|
+
ConversationService.get_chunks(self).add_post_message_context_blocks()
|
|
570
597
|
|
|
571
|
-
return
|
|
598
|
+
return ConversationService.get_manager(self).get_messages_dict()
|
|
572
599
|
|
|
573
600
|
def get_context_summary(self):
|
|
574
601
|
"""
|
|
@@ -584,7 +611,7 @@ class AgentCoder(Coder):
|
|
|
584
611
|
self._calculate_context_block_tokens()
|
|
585
612
|
result = '<context name="context_summary" from="agent">\n'
|
|
586
613
|
result += "## Current Context Overview\n\n"
|
|
587
|
-
max_input_tokens = self.
|
|
614
|
+
max_input_tokens = self.get_active_model().info.get("max_input_tokens") or 0
|
|
588
615
|
if max_input_tokens:
|
|
589
616
|
result += f"Model context limit: {max_input_tokens:,} tokens\n\n"
|
|
590
617
|
total_file_tokens = 0
|
|
@@ -598,7 +625,7 @@ class AgentCoder(Coder):
|
|
|
598
625
|
rel_fname = self.get_rel_fname(fname)
|
|
599
626
|
content = self.io.read_text(fname)
|
|
600
627
|
if content is not None:
|
|
601
|
-
tokens = self.
|
|
628
|
+
tokens = self.get_active_model().token_count(content)
|
|
602
629
|
total_file_tokens += tokens
|
|
603
630
|
editable_tokens += tokens
|
|
604
631
|
size_indicator = (
|
|
@@ -622,7 +649,7 @@ class AgentCoder(Coder):
|
|
|
622
649
|
rel_fname = self.get_rel_fname(fname)
|
|
623
650
|
content = self.io.read_text(fname)
|
|
624
651
|
if content is not None:
|
|
625
|
-
tokens = self.
|
|
652
|
+
tokens = self.get_active_model().token_count(content)
|
|
626
653
|
total_file_tokens += tokens
|
|
627
654
|
readonly_tokens += tokens
|
|
628
655
|
size_indicator = (
|
|
@@ -726,6 +753,12 @@ class AgentCoder(Coder):
|
|
|
726
753
|
# Ensure we call base implementation to trigger execution of all tools (native + extracted)
|
|
727
754
|
return await super().process_tool_calls(tool_call_response)
|
|
728
755
|
|
|
756
|
+
def get_active_model(self):
|
|
757
|
+
if self.main_model.agent_model:
|
|
758
|
+
return self.main_model.agent_model
|
|
759
|
+
|
|
760
|
+
return self.main_model
|
|
761
|
+
|
|
729
762
|
async def reply_completed(self):
|
|
730
763
|
"""Process the completed response from the LLM.
|
|
731
764
|
|
|
@@ -797,7 +830,7 @@ class AgentCoder(Coder):
|
|
|
797
830
|
if tool_calls_found and self.num_reflections < self.max_reflections:
|
|
798
831
|
self.tool_call_count = 0
|
|
799
832
|
self.files_added_in_exploration = set()
|
|
800
|
-
cur_messages =
|
|
833
|
+
cur_messages = ConversationService.get_manager(self).get_messages_dict(MessageTag.CUR)
|
|
801
834
|
original_question = "Please continue your exploration and provide a final answer."
|
|
802
835
|
if cur_messages:
|
|
803
836
|
for msg in reversed(cur_messages):
|
|
@@ -832,38 +865,6 @@ I will proceed based on the tool results and updated context.""")
|
|
|
832
865
|
if self.hot_reload_enabled:
|
|
833
866
|
self.skills_manager.hot_reload()
|
|
834
867
|
|
|
835
|
-
async def _execute_tool_with_registry(self, norm_tool_name, params):
|
|
836
|
-
"""
|
|
837
|
-
Execute a tool using the tool registry.
|
|
838
|
-
|
|
839
|
-
Args:
|
|
840
|
-
norm_tool_name: Normalized tool name (lowercase)
|
|
841
|
-
params: Dictionary of parameters
|
|
842
|
-
|
|
843
|
-
Returns:
|
|
844
|
-
str: Result message
|
|
845
|
-
"""
|
|
846
|
-
if norm_tool_name in ToolRegistry.get_registered_tools():
|
|
847
|
-
tool_module = ToolRegistry.get_tool(norm_tool_name)
|
|
848
|
-
try:
|
|
849
|
-
result = tool_module.process_response(self, params)
|
|
850
|
-
if asyncio.iscoroutine(result):
|
|
851
|
-
result = await result
|
|
852
|
-
return result
|
|
853
|
-
except Exception as e:
|
|
854
|
-
self.io.tool_error(f"""Error during {norm_tool_name} execution: {e}
|
|
855
|
-
{traceback.format_exc()}""")
|
|
856
|
-
return f"Error executing {norm_tool_name}: {str(e)}"
|
|
857
|
-
if self.mcp_tools:
|
|
858
|
-
for server_name, server_tools in self.mcp_tools:
|
|
859
|
-
if any(t.get("function", {}).get("name") == norm_tool_name for t in server_tools):
|
|
860
|
-
server = self.mcp_manager.get_server(server_name)
|
|
861
|
-
if server:
|
|
862
|
-
return await self._execute_mcp_tool(server, norm_tool_name, params)
|
|
863
|
-
else:
|
|
864
|
-
return f"Error: Could not find server instance for {server_name}"
|
|
865
|
-
return f"Error: Unknown tool name '{norm_tool_name}'"
|
|
866
|
-
|
|
867
868
|
def _get_repetitive_tools(self):
|
|
868
869
|
"""
|
|
869
870
|
Identifies repetitive tool usage patterns from rounds of tool calls.
|
|
@@ -979,14 +980,23 @@ I will proceed based on the tool results and updated context.""")
|
|
|
979
980
|
for i, tool in enumerate(recent_history, 1):
|
|
980
981
|
context_parts.append(f"{i}. {tool}")
|
|
981
982
|
|
|
983
|
+
if not self.edit_allowed:
|
|
984
|
+
context_parts.append("\n\n")
|
|
985
|
+
context_parts.append("## File Editing Tools Disabled")
|
|
986
|
+
context_parts.append(
|
|
987
|
+
"File editing tools are currently disabled.Use `ShowContext` to determine the"
|
|
988
|
+
" current hashline prefixes needed to perform an edit and activate them when you"
|
|
989
|
+
" are ready to edit a file."
|
|
990
|
+
)
|
|
991
|
+
|
|
982
992
|
context_parts.append("\n\n")
|
|
983
993
|
if repetitive_tools:
|
|
984
994
|
if not self.model_kwargs:
|
|
985
995
|
self.model_kwargs = {
|
|
986
996
|
"temperature": (
|
|
987
997
|
1
|
|
988
|
-
if isinstance(self.
|
|
989
|
-
else float(self.
|
|
998
|
+
if isinstance(self.get_active_model().use_temperature, bool)
|
|
999
|
+
else float(self.get_active_model().use_temperature)
|
|
990
1000
|
) + 0.1,
|
|
991
1001
|
"frequency_penalty": 0.2,
|
|
992
1002
|
"presence_penalty": 0.1,
|
|
@@ -1002,13 +1012,14 @@ I will proceed based on the tool results and updated context.""")
|
|
|
1002
1012
|
self.model_kwargs["temperature"] = min(
|
|
1003
1013
|
(
|
|
1004
1014
|
1
|
|
1005
|
-
if isinstance(self.
|
|
1006
|
-
else float(self.
|
|
1015
|
+
if isinstance(self.get_active_model().use_temperature, bool)
|
|
1016
|
+
else float(self.get_active_model().use_temperature)
|
|
1007
1017
|
),
|
|
1008
1018
|
max(temperature - 0.15, 1),
|
|
1009
1019
|
)
|
|
1010
1020
|
self.model_kwargs["frequency_penalty"] = min(0, max(freq_penalty - 0.15, 0))
|
|
1011
1021
|
|
|
1022
|
+
self.model_kwargs["temperature"] = min(self.model_kwargs["temperature"], 1)
|
|
1012
1023
|
# One twentieth of the time, just straight reset the randomness
|
|
1013
1024
|
if random.random() < 0.05:
|
|
1014
1025
|
self.model_kwargs = {}
|
|
@@ -1018,9 +1029,9 @@ I will proceed based on the tool results and updated context.""")
|
|
|
1018
1029
|
self._last_repetitive_warning_severity += 1
|
|
1019
1030
|
|
|
1020
1031
|
repetition_warning = f"""
|
|
1021
|
-
## Repetition Detected
|
|
1032
|
+
## Repetition Detected
|
|
1022
1033
|
You have been using the following tools repetitively: {', '.join([f'`{t}`' for t in repetitive_tools])}.
|
|
1023
|
-
|
|
1034
|
+
Do not repeat the same parameters for these tools in your next turns. Prioritize editing.
|
|
1024
1035
|
"""
|
|
1025
1036
|
|
|
1026
1037
|
if self._last_repetitive_warning_severity > 5:
|
|
@@ -1069,13 +1080,11 @@ You have been using the following tools repetitively: {', '.join([f'`{t}`' for t
|
|
|
1069
1080
|
)
|
|
1070
1081
|
|
|
1071
1082
|
repetition_warning += f"""
|
|
1072
|
-
|
|
1073
|
-
You
|
|
1074
|
-
1. **Analyze**:
|
|
1075
|
-
2. **
|
|
1076
|
-
3. **
|
|
1077
|
-
|
|
1078
|
-
Prioritize editing or verification over further exploration.
|
|
1083
|
+
## CRITICAL: Execution Loop Detected
|
|
1084
|
+
You may be stuck in a cycle. To break the exploration loop and continue making progress, please do the following:
|
|
1085
|
+
1. **Analyze**: Summarize your findings. Describe how you can stop repeating yourself and make progress.
|
|
1086
|
+
2. **Reframe**: To help with creativity, include a 2-sentence story about {animal} {verb} {fruit} in your thoughts.
|
|
1087
|
+
3. **Pivot**: Modify your current exploration strategy. Try alternative methods. Prioritize editing.
|
|
1079
1088
|
"""
|
|
1080
1089
|
|
|
1081
1090
|
context_parts.append(repetition_warning)
|
|
@@ -1097,8 +1106,8 @@ Prioritize editing or verification over further exploration.
|
|
|
1097
1106
|
context_parts = [
|
|
1098
1107
|
'<context name="tool_usage_history" from="agent">',
|
|
1099
1108
|
"A file was just edited.",
|
|
1100
|
-
"
|
|
1101
|
-
"Do not just leave placeholder or
|
|
1109
|
+
"Review the diff to make sure that something of value was done.",
|
|
1110
|
+
"Do not just leave placeholder content or partial implementations.",
|
|
1102
1111
|
"</context>",
|
|
1103
1112
|
]
|
|
1104
1113
|
return "\n".join(context_parts)
|
|
@@ -1132,7 +1141,7 @@ Prioritize editing or verification over further exploration.
|
|
|
1132
1141
|
if content is None:
|
|
1133
1142
|
return f"Error reading file: {file_path}"
|
|
1134
1143
|
if self.context_management_enabled:
|
|
1135
|
-
file_tokens = self.
|
|
1144
|
+
file_tokens = self.get_active_model().token_count(content)
|
|
1136
1145
|
if file_tokens > self.large_file_token_threshold:
|
|
1137
1146
|
self.io.tool_output(
|
|
1138
1147
|
f"⚠️ '{file_path}' is very large ({file_tokens} tokens). Use"
|
|
@@ -1165,13 +1174,18 @@ Prioritize editing or verification over further exploration.
|
|
|
1165
1174
|
This clearly delineates user input from other sections in the context window.
|
|
1166
1175
|
"""
|
|
1167
1176
|
inp = await super().preproc_user_input(inp)
|
|
1168
|
-
|
|
1169
|
-
inp = f'<context name="user_input" from="agent">\n{inp}\n</context>'
|
|
1177
|
+
inp = self.wrap_user_input(inp)
|
|
1170
1178
|
|
|
1171
1179
|
self.agent_finished = False
|
|
1172
1180
|
self.turn_count = 0
|
|
1173
1181
|
return inp
|
|
1174
1182
|
|
|
1183
|
+
def wrap_user_input(self, inp):
|
|
1184
|
+
if inp and not inp.startswith('<context name="user_input" from="agent">'):
|
|
1185
|
+
inp = f'<context name="user_input" from="agent">\n{inp}\n</context>'
|
|
1186
|
+
|
|
1187
|
+
return inp
|
|
1188
|
+
|
|
1175
1189
|
def get_directory_structure(self):
|
|
1176
1190
|
"""
|
|
1177
1191
|
Generate a structured directory listing of the project file structure.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import asyncio
|
|
2
2
|
|
|
3
3
|
from ..commands import SwitchCoderSignal
|
|
4
|
-
from ..helpers.conversation import
|
|
4
|
+
from ..helpers.conversation import ConversationService
|
|
5
5
|
from .ask_coder import AskCoder
|
|
6
6
|
from .base_coder import Coder
|
|
7
7
|
|
|
@@ -61,8 +61,9 @@ class ArchitectCoder(AskCoder):
|
|
|
61
61
|
editor_coder = await Coder.create(**new_kwargs)
|
|
62
62
|
|
|
63
63
|
# Re-initialize ConversationManager with editor coder
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
ConversationService.get_manager(editor_coder).initialize(
|
|
65
|
+
reset=True, reformat=True, preserve_tags=True
|
|
66
|
+
)
|
|
66
67
|
if self.verbose:
|
|
67
68
|
editor_coder.show_announcements()
|
|
68
69
|
|
|
@@ -78,8 +79,7 @@ class ArchitectCoder(AskCoder):
|
|
|
78
79
|
await editor_coder.generate(user_message=content, preproc=False)
|
|
79
80
|
|
|
80
81
|
# Clear manager and restore original state
|
|
81
|
-
|
|
82
|
-
original_coder or self,
|
|
82
|
+
ConversationService.get_manager(original_coder or self).initialize(
|
|
83
83
|
reset=True,
|
|
84
84
|
reformat=True,
|
|
85
85
|
preserve_tags=True,
|
|
@@ -90,8 +90,7 @@ class ArchitectCoder(AskCoder):
|
|
|
90
90
|
except Exception as e:
|
|
91
91
|
self.io.tool_error(e)
|
|
92
92
|
# Restore original state on error
|
|
93
|
-
|
|
94
|
-
original_coder or self,
|
|
93
|
+
ConversationService.get_manager(original_coder or self).initialize(
|
|
95
94
|
reset=True,
|
|
96
95
|
reformat=True,
|
|
97
96
|
preserve_tags=True,
|