cecli-dev 0.98.1__tar.gz → 0.98.2__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.98.1 → cecli_dev-0.98.2}/PKG-INFO +1 -1
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/__init__.py +1 -1
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/_version.py +3 -3
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/agent_coder.py +5 -15
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/base_coder.py +7 -6
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/plugin_manager.py +4 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/requests.py +18 -4
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/models.py +2 -2
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/finished.py +1 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/show_context.py +4 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/update_todo_list.py +14 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/utils/base_tool.py +5 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/utils/registry.py +43 -19
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/agent-mode.md +6 -6
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli_dev.egg-info/PKG-INFO +1 -1
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_repomap.py +1 -1
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/tools/test_registry.py +6 -6
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.dockerignore +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.flake8 +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.gitattributes +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.github/workflows/check_pypi_version.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.github/workflows/docker-build-test.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.github/workflows/docker-release.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.github/workflows/issues.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.github/workflows/pages.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.github/workflows/pre-commit.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.github/workflows/release.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.github/workflows/ubuntu-tests.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.github/workflows/windows-tests.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.github/workflows/windows_check_pypi_version.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.gitignore +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/.pre-commit-config.yaml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/CHANGELOG.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/CNAME +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/CONTRIBUTING.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/HISTORY.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/LICENSE.txt +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/MANIFEST.in +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/README.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/Dockerfile +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/README.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/__init__.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/benchmark.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/benchmark_classic.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/clone-exercism.sh +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/cpp-test.sh +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/docker.sh +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/docker_build.sh +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/install-docker-ubuntu.sh +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/npm-test.sh +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/over_time.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/plot.sh +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/plots.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/problem_stats.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/prompts.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/refactor_tools.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/rsync.sh +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/rungrid.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/swe-bench-lite.txt +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/swe-bench.txt +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/swe_bench.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/test_benchmark.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/variations.1.sh +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/variations.2.sh +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/variations.3.sh +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/benchmark/variations.4.sh +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/__main__.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/args.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/args_formatter.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/change_tracker.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/__init__.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/architect_coder.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/ask_coder.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/chat_chunks.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/context_coder.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/copypaste_coder.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/editblock_coder.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/editblock_fenced_coder.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/editblock_func_coder.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/editor_diff_fenced_coder.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/editor_editblock_coder.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/editor_whole_coder.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/hashline_coder.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/help_coder.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/patch_coder.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/search_replace.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/shell.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/single_wholefile_func_coder.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/udiff_coder.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/udiff_simple.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/wholefile_coder.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/coders/wholefile_func_coder.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/__init__.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/add.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/agent.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/agent_model.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/architect.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/ask.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/chat_mode.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/clear.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/code.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/command_prefix.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/commit.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/compact.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/context.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/context_blocks.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/context_management.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/copy.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/copy_context.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/core.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/diff.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/drop.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/editor.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/editor_model.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/exit.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/git.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/hashline.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/help.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/history_search.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/hooks.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/lint.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/list_sessions.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/load.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/load_hook.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/load_mcp.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/load_session.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/load_skill.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/ls.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/map.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/map_refresh.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/model.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/models.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/multiline_mode.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/paste.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/quit.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/read_only.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/read_only_stub.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/reasoning_effort.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/remove_hook.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/remove_mcp.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/remove_skill.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/report.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/reset.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/rules.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/run.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/save.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/save_session.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/settings.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/terminal_data/linux.keytab +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/terminal_setup.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/test.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/think_tokens.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/tokens.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/undo.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/utils/__init__.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/utils/base_command.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/utils/helpers.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/utils/registry.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/utils/save_load_manager.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/voice.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/weak_model.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/commands/web.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/deprecated_args.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/diffs.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/dump.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/editor.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/exceptions.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/format_settings.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/help.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/help_pats.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/__init__.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/background_commands.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/command_parser.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/conversation/__init__.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/conversation/base_message.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/conversation/files.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/conversation/integration.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/conversation/manager.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/conversation/service.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/conversation/tags.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/conversation/utils.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/copypaste.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/coroutines.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/file_searcher.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/hashline.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/hashpos/__init__.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/hashpos/hashpos.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/model_providers.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/nested.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/profiler.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/responses.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/similarity.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/helpers/skills.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/history.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/hooks/__init__.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/hooks/base.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/hooks/integration.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/hooks/manager.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/hooks/registry.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/hooks/types.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/interruptible_input.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/io.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/linter.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/llm.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/main.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/mcp/__init__.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/mcp/manager.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/mcp/oauth.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/mcp/server.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/mcp/utils.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/mdstream.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/onboarding.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/__init__.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/agent.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/architect.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/ask.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/base.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/context.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/copypaste.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/editblock.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/editblock_fenced.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/editblock_func.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/editor_diff_fenced.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/editor_editblock.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/editor_whole.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/hashline.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/help.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/patch.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/single_wholefile_func.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/udiff.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/udiff_simple.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/utils/__init__.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/utils/registry.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/utils/system.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/wholefile.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/prompts/wholefile_func.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/README.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/reasoning_tags.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/repo.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/repomap.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/report.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/resources/__init__.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/resources/model-metadata.json +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/resources/model-settings.yml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/resources/providers.json +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/run_cmd.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/scrape.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/sendchat.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/sessions.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/special.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/__init__.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/command.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/command_interactive.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/context_manager.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/delete_text.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/git_branch.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/git_diff.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/git_log.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/git_remote.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/git_show.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/git_status.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/grep.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/insert_text.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/list_changes.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/load_skill.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/ls.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/remove_skill.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/replace_text.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/thinking.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/undo_change.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/utils/helpers.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/utils/output.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/view_files_matching.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tools/view_files_with_symbol.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/__init__.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/app.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/io.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/styles.tcss +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/widgets/__init__.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/widgets/completion_bar.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/widgets/file_list.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/widgets/footer.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/widgets/input_area.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/widgets/input_container.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/widgets/key_hints.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/widgets/output.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/widgets/status_bar.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/tui/worker.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/urls.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/utils.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/versioncheck.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/voice.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/waiting.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/watch.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/watch_prompts.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/Gemfile +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/blame.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/get-started.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/help-tip.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/help.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/install.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/keys.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/model-warnings.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/multi-line.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/python-m-aider.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/recording.css +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/recording.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_includes/works-best.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_sass/_features.scss +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_sass/_footer.scss +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_sass/_hero.scss +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_sass/_info.scss +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_sass/_layout.scss +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_sass/_reset.scss +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_sass/_testimonials.scss +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_sass/_typography.scss +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_sass/_variables.scss +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_sass/custom/custom.scss +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/_sass/global-overrides.scss +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/adv-model-settings.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/aider_conf.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/api-keys.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/custom-commands.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/custom-system-prompts.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/dotenv.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/editor.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/hooks.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/mcp.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/model-aliases.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/options.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/reasoning.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/security.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/skills.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config/tui.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/config.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/faq.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/git.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/index.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/install/docker.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/install/optional.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/install.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/languages.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/legal/contributor-agreement.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/legal/privacy.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/anthropic.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/azure.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/bedrock.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/cohere.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/deepseek.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/gemini.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/github.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/groq.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/lm-studio.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/ollama.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/openai-compat.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/openai.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/openrouter.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/other.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/vertex.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/warnings.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms/xai.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/llms.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/more/analytics.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/more/edit-formats.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/more/infinite-output.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/more-info.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/repomap.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/scripting.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/troubleshooting/imports.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/troubleshooting/support.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/troubleshooting/warnings.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/troubleshooting.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/commands.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/conventions.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/copypaste.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/images-urls.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/lint-test.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/modes.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/not-code.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/notifications.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/sessions.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/tips.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/voice.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage/watch.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/docs/usage.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli/website/share/index.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli_dev.egg-info/SOURCES.txt +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli_dev.egg-info/dependency_links.txt +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli_dev.egg-info/entry_points.txt +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli_dev.egg-info/requires.txt +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/cecli_dev.egg-info/top_level.txt +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/docker/Dockerfile +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/pyproject.toml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/pytest.ini +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/requirements/common-constraints.txt +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/requirements/requirements-dev.in +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/requirements/requirements-dev.txt +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/requirements/requirements-help.in +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/requirements/requirements-help.txt +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/requirements/requirements-playwright.in +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/requirements/requirements-playwright.txt +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/requirements/requirements.in +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/requirements/tree-sitter.in +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/requirements.txt +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/30k-image.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/Dockerfile.jekyll +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/__init__.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/blame.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/clean_metadata.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/cost_analyzer.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/dl_icons.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/filter-chat-mode.js +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/generate_providers.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/get_contributor_list.js +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/get_hashline.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/history_prompts.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/homepage.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/issues.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/jekyll_build.sh +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/jekyll_run.sh +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/logo_svg.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/pip-compile.sh +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/recording_audio.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/redact-cast.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/rename_to_cecli.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/tmux_record.sh +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/tsl_pack_langs.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/update-blame.sh +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/update-docs.sh +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/update-history.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/versionbump.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/scripts/yank-old-versions.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/setup.cfg +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/shim.pyproject.toml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/__init__.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/__init__.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_aws_credentials.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_background_commands.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_coder.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_commands.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_custom_commands.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_deprecated.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_editblock.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_editor.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_exceptions.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_find_or_blocks.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_hashline.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_history.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_io.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_linter.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_main.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_model_info_manager.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_model_provider_manager.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_models.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_onboarding.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_plugin_manager.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_prompts.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_reasoning.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_repo.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_run_cmd.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_sanity_check_repo.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_scripting.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_sendchat.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_sessions.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_skills.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_special.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_ssl_verification.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_udiff.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_urls.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_voice.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_watch.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/basic/test_wholefile.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/coders/test_copypaste_coder.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/conftest.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/chat-history.md +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/arduino/test.ino +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/c/test.c +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/chatito/test.chatito +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/clojure/test.clj +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/cpp/test.cpp +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/csharp/test.cs +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/d/test.d +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/dart/test.dart +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/elisp/test.el +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/elixir/test.ex +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/elm/test.elm +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/gleam/test.gleam +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/go/test.go +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/haskell/test.hs +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/hcl/test.tf +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/java/test.java +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/javascript/test.js +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/kotlin/test.kt +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/lua/test.lua +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/matlab/test.m +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/ocaml/test.ml +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/php/test.php +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/pony/test.pony +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/properties/test.properties +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/python/test.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/ql/test.ql +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/r/test.r +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/racket/test.rkt +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/ruby/test.rb +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/rust/test.rs +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/scala/test.scala +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/solidity/test.sol +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/swift/test.swift +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/tsx/test.tsx +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/typescript/test.ts +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/udev/test.rules +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/languages/zig/test.zig +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/sample-code-base/sample.js +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/sample-code-base/sample.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/watch.js +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/watch.lisp +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/watch.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/fixtures/watch_question.js +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/help/test_help.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/hooks/__init__.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/hooks/test_base.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/hooks/test_manager.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/hooks/test_registry.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/mcp/__init__.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/mcp/test_manager.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/scrape/test_playwright_disable.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/scrape/test_scrape.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/test_conversation_integration.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/test_conversation_system.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/tools/test_git_branch.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/tools/test_git_diff.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/tools/test_grep.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/tools/test_insert_block.py +0 -0
- {cecli_dev-0.98.1 → cecli_dev-0.98.2}/tests/tools/test_show_context.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.98.
|
|
22
|
-
__version_tuple__ = version_tuple = (0, 98,
|
|
21
|
+
__version__ = version = '0.98.2'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 98, 2)
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'g1fefb15aa'
|
|
@@ -43,6 +43,7 @@ class AgentCoder(Coder):
|
|
|
43
43
|
def __init__(self, *args, **kwargs):
|
|
44
44
|
self.recently_removed = {}
|
|
45
45
|
self.tool_usage_history = []
|
|
46
|
+
self.loaded_custom_tools = []
|
|
46
47
|
self.tool_usage_retries = 20
|
|
47
48
|
self.last_round_tools = []
|
|
48
49
|
self.tool_call_vectors = []
|
|
@@ -90,6 +91,7 @@ class AgentCoder(Coder):
|
|
|
90
91
|
self.agent_config = self._get_agent_config()
|
|
91
92
|
self._setup_agent()
|
|
92
93
|
ToolRegistry.build_registry(agent_config=self.agent_config)
|
|
94
|
+
self.loaded_custom_tools = ToolRegistry.loaded_custom_tools
|
|
93
95
|
super().__init__(*args, **kwargs)
|
|
94
96
|
|
|
95
97
|
def _setup_agent(self):
|
|
@@ -196,6 +198,9 @@ class AgentCoder(Coder):
|
|
|
196
198
|
|
|
197
199
|
def show_announcements(self):
|
|
198
200
|
super().show_announcements()
|
|
201
|
+
if self.loaded_custom_tools:
|
|
202
|
+
self.io.tool_output(f"Loaded custom tools: {', '.join(self.loaded_custom_tools)}")
|
|
203
|
+
|
|
199
204
|
skills = self.skills_manager.find_skills()
|
|
200
205
|
if skills:
|
|
201
206
|
skills_list = []
|
|
@@ -295,21 +300,6 @@ class AgentCoder(Coder):
|
|
|
295
300
|
tasks.append(result)
|
|
296
301
|
else:
|
|
297
302
|
tasks.append(asyncio.to_thread(lambda: result))
|
|
298
|
-
elif self.mcp_tools:
|
|
299
|
-
for server_name, server_tools in self.mcp_tools:
|
|
300
|
-
if any(
|
|
301
|
-
t.get("function", {}).get("name") == norm_tool_name
|
|
302
|
-
for t in server_tools
|
|
303
|
-
):
|
|
304
|
-
server = self.mcp_manager.get_server(server_name)
|
|
305
|
-
if server:
|
|
306
|
-
for params in parsed_args_list:
|
|
307
|
-
tasks.append(
|
|
308
|
-
self._execute_mcp_tool(server, norm_tool_name, params)
|
|
309
|
-
)
|
|
310
|
-
break
|
|
311
|
-
else:
|
|
312
|
-
all_results_content.append(f"Error: Unknown tool name '{tool_name}'")
|
|
313
303
|
else:
|
|
314
304
|
all_results_content.append(f"Error: Unknown tool name '{tool_name}'")
|
|
315
305
|
if tasks:
|
|
@@ -544,7 +544,7 @@ class Coder:
|
|
|
544
544
|
max_code_line_length=map_max_line_length,
|
|
545
545
|
repo_root=self.root,
|
|
546
546
|
use_memory_cache=repomap_in_memory,
|
|
547
|
-
use_enhanced_map=
|
|
547
|
+
use_enhanced_map=getattr(self.args, "use_enhanced_map", False),
|
|
548
548
|
)
|
|
549
549
|
|
|
550
550
|
self.summarizer = summarizer or ChatSummary(
|
|
@@ -3221,12 +3221,13 @@ class Coder:
|
|
|
3221
3221
|
try:
|
|
3222
3222
|
func = chunk.choices[0].delta.function_call
|
|
3223
3223
|
# dump(func)
|
|
3224
|
-
|
|
3225
|
-
|
|
3226
|
-
|
|
3224
|
+
if func:
|
|
3225
|
+
for k, v in func.items():
|
|
3226
|
+
self.tool_reflection = True
|
|
3227
|
+
self.io.update_spinner_suffix(v)
|
|
3227
3228
|
|
|
3228
|
-
|
|
3229
|
-
|
|
3229
|
+
received_content = True
|
|
3230
|
+
self.token_profiler.on_token()
|
|
3230
3231
|
except AttributeError:
|
|
3231
3232
|
pass
|
|
3232
3233
|
|
|
@@ -37,6 +37,8 @@ def normalize_filename(filename: str) -> str:
|
|
|
37
37
|
:param filename: Original filename
|
|
38
38
|
:return: Normalized module name
|
|
39
39
|
"""
|
|
40
|
+
if not filename:
|
|
41
|
+
return ""
|
|
40
42
|
# Remove extension
|
|
41
43
|
name = Path(filename).stem
|
|
42
44
|
|
|
@@ -58,6 +60,8 @@ def load_module(source, module_name=None, reload=False):
|
|
|
58
60
|
:param module_name: name of module to register in sys.modules
|
|
59
61
|
:return: loaded module
|
|
60
62
|
"""
|
|
63
|
+
if not source:
|
|
64
|
+
return None
|
|
61
65
|
# Convert to absolute path for cache key
|
|
62
66
|
source_path = Path(source).resolve()
|
|
63
67
|
|
|
@@ -125,7 +125,7 @@ def concatenate_user_messages(messages):
|
|
|
125
125
|
return result
|
|
126
126
|
|
|
127
127
|
|
|
128
|
-
def add_continue_for_no_prefill(model, messages):
|
|
128
|
+
def add_continue_for_no_prefill(model, messages, tools):
|
|
129
129
|
"""Add a 'Continue' user message for models that don't support assistant prefill.
|
|
130
130
|
|
|
131
131
|
Args:
|
|
@@ -139,20 +139,34 @@ def add_continue_for_no_prefill(model, messages):
|
|
|
139
139
|
# Check if model doesn't support assistant prefill
|
|
140
140
|
# If not, inject a dummy user message with content "Continue"
|
|
141
141
|
# but only if the last message is not already a user message
|
|
142
|
+
append_message = False
|
|
143
|
+
|
|
142
144
|
if not model.info.get("supports_assistant_prefill", False):
|
|
143
145
|
# Only add "Continue" if the last message is not a user message
|
|
144
146
|
if not messages or messages[-1].get("role") != "user":
|
|
145
147
|
# Add a user message with content "Continue" to the messages list
|
|
146
|
-
|
|
148
|
+
append_message = True
|
|
149
|
+
|
|
150
|
+
if (
|
|
151
|
+
tools
|
|
152
|
+
and messages
|
|
153
|
+
and messages[-1].get("role") == "assistant"
|
|
154
|
+
and messages[-1].get("prefix", False)
|
|
155
|
+
):
|
|
156
|
+
messages[-1].pop("prefix", None)
|
|
157
|
+
append_message = True
|
|
158
|
+
|
|
159
|
+
if append_message:
|
|
160
|
+
messages.append({"role": "user", "content": "Continue"})
|
|
147
161
|
|
|
148
162
|
return messages
|
|
149
163
|
|
|
150
164
|
|
|
151
|
-
def model_request_parser(model, messages):
|
|
165
|
+
def model_request_parser(model, messages, tools):
|
|
152
166
|
messages = thought_signature(model, messages)
|
|
153
167
|
messages = remove_empty_tool_calls(messages)
|
|
154
168
|
messages = concatenate_user_messages(messages)
|
|
155
169
|
messages = ensure_alternating_roles(messages)
|
|
156
170
|
messages = add_reasoning_content(messages)
|
|
157
|
-
messages = add_continue_for_no_prefill(model, messages)
|
|
171
|
+
messages = add_continue_for_no_prefill(model, messages, tools)
|
|
158
172
|
return messages
|
|
@@ -977,7 +977,7 @@ class Model(ModelSettings):
|
|
|
977
977
|
):
|
|
978
978
|
if os.environ.get("CECLI_SANITY_CHECK_TURNS"):
|
|
979
979
|
sanity_check_messages(messages)
|
|
980
|
-
messages = model_request_parser(self, messages)
|
|
980
|
+
messages = model_request_parser(self, messages, tools)
|
|
981
981
|
if self.verbose:
|
|
982
982
|
for message in messages:
|
|
983
983
|
msg_role = message.get("role")
|
|
@@ -1120,7 +1120,7 @@ class Model(ModelSettings):
|
|
|
1120
1120
|
from cecli.exceptions import LiteLLMExceptions
|
|
1121
1121
|
|
|
1122
1122
|
litellm_ex = LiteLLMExceptions()
|
|
1123
|
-
messages = model_request_parser(self, messages)
|
|
1123
|
+
messages = model_request_parser(self, messages, None)
|
|
1124
1124
|
retry_delay = 0.125
|
|
1125
1125
|
if self.verbose:
|
|
1126
1126
|
dump(messages)
|
|
@@ -76,6 +76,13 @@ class Tool(BaseTool):
|
|
|
76
76
|
remaining_tasks = []
|
|
77
77
|
|
|
78
78
|
for task_item in tasks:
|
|
79
|
+
if not isinstance(task_item, dict):
|
|
80
|
+
task_item = {
|
|
81
|
+
"task": str(task_item),
|
|
82
|
+
"done": False,
|
|
83
|
+
"current": False,
|
|
84
|
+
}
|
|
85
|
+
|
|
79
86
|
if task_item.get("done", False):
|
|
80
87
|
done_tasks.append(f"✓ {task_item['task']}")
|
|
81
88
|
else:
|
|
@@ -197,6 +204,13 @@ class Tool(BaseTool):
|
|
|
197
204
|
remaining_tasks = []
|
|
198
205
|
|
|
199
206
|
for task_item in tasks:
|
|
207
|
+
if not isinstance(task_item, dict):
|
|
208
|
+
task_item = {
|
|
209
|
+
"task": str(task_item),
|
|
210
|
+
"done": False,
|
|
211
|
+
"current": False,
|
|
212
|
+
}
|
|
213
|
+
|
|
200
214
|
if task_item.get("done", False):
|
|
201
215
|
done_tasks.append(f"✓ {task_item['task']}")
|
|
202
216
|
else:
|
|
@@ -81,6 +81,7 @@ class BaseTool(ABC):
|
|
|
81
81
|
f"Tool '{tool_name}' has been called with identical parameters recently. "
|
|
82
82
|
"This request is denied to prevent repeated operations."
|
|
83
83
|
)
|
|
84
|
+
cls.on_duplicate_request(coder, **params)
|
|
84
85
|
return handle_tool_error(coder, tool_name, ValueError(error_msg))
|
|
85
86
|
|
|
86
87
|
# Add current invocation to history (keeping only last 3)
|
|
@@ -99,3 +100,7 @@ class BaseTool(ABC):
|
|
|
99
100
|
@classmethod
|
|
100
101
|
def format_output(cls, coder, mcp_server, tool_response):
|
|
101
102
|
print_tool_response(coder=coder, mcp_server=mcp_server, tool_response=tool_response)
|
|
103
|
+
|
|
104
|
+
@classmethod
|
|
105
|
+
def on_duplicate_request(cls, coder, **kwargs):
|
|
106
|
+
pass
|
|
@@ -6,6 +6,7 @@ this provides centralized tool registration, discovery, and filtering
|
|
|
6
6
|
based on agent configuration.
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
|
+
import traceback
|
|
9
10
|
from pathlib import Path
|
|
10
11
|
from typing import Dict, List, Optional, Set, Type
|
|
11
12
|
|
|
@@ -19,11 +20,25 @@ class ToolRegistry:
|
|
|
19
20
|
_tools: Dict[str, Type] = {} # normalized name -> Tool class
|
|
20
21
|
_essential_tools: Set[str] = {"contextmanager", "replacetext", "finished"}
|
|
21
22
|
_registry: Dict[str, Type] = {} # cached filtered registry
|
|
23
|
+
loaded_custom_tools: List[str] = []
|
|
22
24
|
|
|
23
25
|
@classmethod
|
|
24
26
|
def register(cls, tool_class):
|
|
25
|
-
"""Register a tool class."""
|
|
26
|
-
name =
|
|
27
|
+
"""Register a tool class using the name from its SCHEMA."""
|
|
28
|
+
name = None
|
|
29
|
+
if hasattr(tool_class, "SCHEMA"):
|
|
30
|
+
try:
|
|
31
|
+
name = tool_class.SCHEMA.get("function", {}).get("name", "").lower()
|
|
32
|
+
except Exception:
|
|
33
|
+
pass
|
|
34
|
+
|
|
35
|
+
if not name and hasattr(tool_class, "NORM_NAME"):
|
|
36
|
+
name = tool_class.NORM_NAME
|
|
37
|
+
|
|
38
|
+
if not name:
|
|
39
|
+
# Unable to determine a name, can't register
|
|
40
|
+
return
|
|
41
|
+
|
|
27
42
|
cls._tools[name] = tool_class
|
|
28
43
|
|
|
29
44
|
@classmethod
|
|
@@ -46,13 +61,15 @@ class ToolRegistry:
|
|
|
46
61
|
tools_includelist/tools_excludelist keys
|
|
47
62
|
|
|
48
63
|
Returns:
|
|
49
|
-
|
|
64
|
+
A dictionary mapping normalized tool names to tool classes.
|
|
65
|
+
Custom loaded tools are stored in `ToolRegistry.loaded_custom_tools`.
|
|
50
66
|
"""
|
|
51
67
|
if agent_config is None:
|
|
52
68
|
agent_config = {}
|
|
53
69
|
|
|
54
70
|
# Load tools from tool_paths if specified
|
|
55
71
|
tools_paths = agent_config.get("tools_paths", agent_config.get("tool_paths", []))
|
|
72
|
+
loaded_custom_tools = []
|
|
56
73
|
|
|
57
74
|
for tool_path in tools_paths:
|
|
58
75
|
path = Path(tool_path)
|
|
@@ -65,9 +82,12 @@ class ToolRegistry:
|
|
|
65
82
|
# Check if module has a Tool class
|
|
66
83
|
if hasattr(module, "Tool"):
|
|
67
84
|
cls.register(module.Tool)
|
|
85
|
+
if module.Tool.NORM_NAME:
|
|
86
|
+
loaded_custom_tools.append(module.Tool.NORM_NAME)
|
|
68
87
|
except Exception as e:
|
|
69
88
|
# Log error but continue with other files
|
|
70
89
|
print(f"Error loading tool from {py_file}: {e}")
|
|
90
|
+
print(traceback.format_exc())
|
|
71
91
|
else:
|
|
72
92
|
# If it's a file, try to load it directly
|
|
73
93
|
if path.exists() and path.suffix == ".py":
|
|
@@ -75,8 +95,11 @@ class ToolRegistry:
|
|
|
75
95
|
module = plugin_manager.load_module(str(path))
|
|
76
96
|
if hasattr(module, "Tool"):
|
|
77
97
|
cls.register(module.Tool)
|
|
98
|
+
if module.Tool.NORM_NAME:
|
|
99
|
+
loaded_custom_tools.append(module.Tool.NORM_NAME)
|
|
78
100
|
except Exception as e:
|
|
79
101
|
print(f"Error loading tool from {path}: {e}")
|
|
102
|
+
print(traceback.format_exc())
|
|
80
103
|
|
|
81
104
|
# Get include/exclude lists from config
|
|
82
105
|
tools_includelist = agent_config.get(
|
|
@@ -86,28 +109,29 @@ class ToolRegistry:
|
|
|
86
109
|
"tools_excludelist", agent_config.get("tools_blacklist", [])
|
|
87
110
|
)
|
|
88
111
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
#
|
|
95
|
-
|
|
96
|
-
should_include = tool_name in tools_includelist
|
|
112
|
+
# Start with a base set of tools
|
|
113
|
+
if tools_includelist:
|
|
114
|
+
# If includelist is provided, start with only those tools
|
|
115
|
+
working_set = set(tools_includelist)
|
|
116
|
+
else:
|
|
117
|
+
# Otherwise, start with all registered tools
|
|
118
|
+
working_set = set(cls._tools.keys())
|
|
97
119
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
should_include = True
|
|
120
|
+
# Add essential tools, they can't be removed by the excludelist
|
|
121
|
+
working_set.update(cls._essential_tools)
|
|
101
122
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
123
|
+
# Remove tools from the excludelist, but keep essential ones
|
|
124
|
+
if tools_excludelist:
|
|
125
|
+
for tool_name in tools_excludelist:
|
|
126
|
+
if tool_name in working_set and tool_name not in cls._essential_tools:
|
|
127
|
+
working_set.remove(tool_name)
|
|
105
128
|
|
|
106
|
-
|
|
107
|
-
|
|
129
|
+
# Build the final registry from the working set
|
|
130
|
+
registry = {name: cls._tools[name] for name in working_set if name in cls._tools}
|
|
108
131
|
|
|
109
132
|
# Store the built registry in the class attribute
|
|
110
133
|
cls._registry = registry
|
|
134
|
+
cls.loaded_custom_tools = loaded_custom_tools
|
|
111
135
|
return registry
|
|
112
136
|
|
|
113
137
|
@classmethod
|
|
@@ -160,7 +160,7 @@ agent-config:
|
|
|
160
160
|
# Tool configuration
|
|
161
161
|
tools_includelist: [contextmanager", "replacetext", "finished"] # Optional: Whitelist of tools
|
|
162
162
|
tools_excludelist: ["command", "commandinteractive"] # Optional: Blacklist of tools
|
|
163
|
-
|
|
163
|
+
tools_paths: ["./custom-tools", "~/my-tools"] # Optional: Directories or files containing custom tools
|
|
164
164
|
|
|
165
165
|
# Context blocks configuration
|
|
166
166
|
include_context_blocks: ["todo_list", "git_status"] # Optional: Context blocks to include
|
|
@@ -184,7 +184,7 @@ agent-config:
|
|
|
184
184
|
- **`skip_cli_confirmations`**: YOLO mode, be brave and let the LLM cook, can also use the option `yolo` (default: False)
|
|
185
185
|
- **`tools_includelist`**: Array of tool names to allow (only these tools will be available)
|
|
186
186
|
- **`tools_excludelist`**: Array of tool names to exclude (these tools will be disabled)
|
|
187
|
-
- **`
|
|
187
|
+
- **`tools_paths`**: Array of directories or Python files containing custom tools to load
|
|
188
188
|
- **`include_context_blocks`**: Array of context block names to include (overrides default set)
|
|
189
189
|
- **`exclude_context_blocks`**: Array of context block names to exclude from default set
|
|
190
190
|
|
|
@@ -241,14 +241,14 @@ class Tool(BaseTool):
|
|
|
241
241
|
return f"Tool executed with parameter: {parameter_name}"
|
|
242
242
|
```
|
|
243
243
|
|
|
244
|
-
To load custom tools, specify the `
|
|
244
|
+
To load custom tools, specify the `tools_paths` configuration option in your agent config:
|
|
245
245
|
|
|
246
246
|
```yaml
|
|
247
247
|
agent-config:
|
|
248
|
-
|
|
248
|
+
tools_paths: ["./custom-tools", "~/my-tools"]
|
|
249
249
|
```
|
|
250
250
|
|
|
251
|
-
The `
|
|
251
|
+
The `tools_paths` can include:
|
|
252
252
|
- **Directories**: All `.py` files in the directory will be scanned for `Tool` classes
|
|
253
253
|
- **Individual Python files**: Specific tool files can be loaded directly
|
|
254
254
|
|
|
@@ -288,7 +288,7 @@ agent-config:
|
|
|
288
288
|
# Tool configuration
|
|
289
289
|
tools_includelist: ["contextmanager", "replacetext", "finished"] # Optional: Whitelist of tools
|
|
290
290
|
tools_excludelist: ["command", "commandinteractive"] # Optional: Blacklist of tools
|
|
291
|
-
|
|
291
|
+
tools_paths: ["./custom-tools", "~/my-tools"] # Optional: Directories or files containing custom tools
|
|
292
292
|
|
|
293
293
|
# Context blocks configuration
|
|
294
294
|
include_context_blocks: ["todo_list", "git_status"] # Optional: Context blocks to include
|
|
@@ -577,7 +577,7 @@ class TestRepoMapAllLanguages:
|
|
|
577
577
|
f.write(content)
|
|
578
578
|
|
|
579
579
|
io = InputOutput()
|
|
580
|
-
repo_map = RepoMap(main_model=self.GPT35, io=io)
|
|
580
|
+
repo_map = RepoMap(main_model=self.GPT35, io=io, use_enhanced_map=True)
|
|
581
581
|
other_files = [test_file]
|
|
582
582
|
result = repo_map.get_repo_map([], other_files)
|
|
583
583
|
dump(lang)
|
|
@@ -58,14 +58,14 @@ class TestToolRegistry:
|
|
|
58
58
|
|
|
59
59
|
def test_build_registry_with_includelist(self):
|
|
60
60
|
"""Test filtering with tools_includelist"""
|
|
61
|
-
config = {"tools_includelist": ["contextmanager", "replacetext"
|
|
61
|
+
config = {"tools_includelist": ["contextmanager", "replacetext"]}
|
|
62
62
|
registry = ToolRegistry.build_registry(config)
|
|
63
63
|
|
|
64
|
-
# Should only include tools
|
|
65
|
-
assert len(registry) == 3, "Should
|
|
64
|
+
# Should only include tools from includelist, plus essential tools
|
|
65
|
+
assert len(registry) == 3, "Should include 2 from list + 1 essential"
|
|
66
66
|
assert "contextmanager" in registry
|
|
67
67
|
assert "replacetext" in registry
|
|
68
|
-
assert "finished" in registry
|
|
68
|
+
assert "finished" in registry # Essential
|
|
69
69
|
assert "command" not in registry, "Should not include tools not in includelist"
|
|
70
70
|
|
|
71
71
|
def test_build_registry_with_excludelist(self):
|
|
@@ -92,13 +92,13 @@ class TestToolRegistry:
|
|
|
92
92
|
def test_build_registry_combined_filters(self):
|
|
93
93
|
"""Test combined filtering with includelist and excludelist"""
|
|
94
94
|
config = {
|
|
95
|
-
"tools_includelist": ["contextmanager", "replacetext", "
|
|
95
|
+
"tools_includelist": ["contextmanager", "replacetext", "command"],
|
|
96
96
|
"tools_excludelist": ["commandinteractive"],
|
|
97
97
|
}
|
|
98
98
|
registry = ToolRegistry.build_registry(config)
|
|
99
99
|
|
|
100
100
|
# Should respect all filters
|
|
101
|
-
assert len(registry) == 4, "Should include exactly 4 tools"
|
|
101
|
+
assert len(registry) == 4, "Should include exactly 4 tools (3 from list + finished)"
|
|
102
102
|
assert "contextmanager" in registry
|
|
103
103
|
assert "replacetext" in registry
|
|
104
104
|
assert "finished" in registry
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|