cecli-dev 1.2.3rc3__tar.gz → 1.2.3rc4__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-1.2.3rc3 → cecli_dev-1.2.3rc4}/PKG-INFO +1 -1
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/_version.py +3 -3
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/base_coder.py +1 -1
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/load_mcp.py +2 -2
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/remove_mcp.py +1 -1
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/utils/helpers.py +2 -2
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/agents/service.py +9 -1
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/responses.py +17 -2
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/mcp/manager.py +3 -3
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/mcp/server.py +1 -1
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/command.py +8 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/resource_manager.py +4 -4
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/utils/base_tool.py +21 -17
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/validations/validations.py +18 -6
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli_dev.egg-info/PKG-INFO +1 -1
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli_dev.egg-info/SOURCES.txt +2 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli_dev.egg-info/scm_file_list.json +2 -0
- cecli_dev-1.2.3rc4/cecli_dev.egg-info/scm_version.json +8 -0
- cecli_dev-1.2.3rc4/tests/mcp/test_server_name_normalization.py +240 -0
- cecli_dev-1.2.3rc4/tests/tools/test_command_format_output.py +117 -0
- cecli_dev-1.2.3rc3/cecli_dev.egg-info/scm_version.json +0 -8
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/.dockerignore +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/.flake8 +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/.gitattributes +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/.github/ISSUE_TEMPLATE/issue.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/.github/workflows/check_pypi_version.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/.github/workflows/docker-build-test.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/.github/workflows/docker-release.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/.github/workflows/issues.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/.github/workflows/pages.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/.github/workflows/pre-commit.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/.github/workflows/release.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/.github/workflows/ubuntu-tests.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/.github/workflows/windows-tests.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/.github/workflows/windows_check_pypi_version.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/.gitignore +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/.pre-commit-config.yaml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/CHANGELOG.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/CNAME +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/CONTRIBUTING.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/HISTORY.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/LICENSE.txt +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/MANIFEST.in +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/README.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/Dockerfile +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/README.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/benchmark.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/benchmark_classic.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/clone-exercism.sh +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/cpp-test.sh +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/docker.sh +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/docker_build.sh +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/install-docker-ubuntu.sh +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/npm-test.sh +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/over_time.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/plot.sh +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/plots.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/problem_stats.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/prompts.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/refactor_tools.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/rsync.sh +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/rungrid.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/swe-bench-lite.txt +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/swe-bench.txt +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/swe_bench.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/test_benchmark.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/variations.1.sh +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/variations.2.sh +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/variations.3.sh +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/benchmark/variations.4.sh +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/__main__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/args.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/args_formatter.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/change_tracker.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/agent_coder.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/architect_coder.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/ask_coder.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/chat_chunks.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/context_coder.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/copypaste_coder.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/editblock_coder.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/editblock_fenced_coder.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/editblock_func_coder.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/editor_diff_fenced_coder.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/editor_editblock_coder.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/editor_whole_coder.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/hashline_coder.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/help_coder.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/patch_coder.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/search_replace.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/shell.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/single_wholefile_func_coder.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/sub_agent_coder.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/udiff_coder.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/udiff_simple.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/wholefile_coder.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/coders/wholefile_func_coder.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/add.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/agent.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/agent_model.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/agent_tree.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/architect.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/ask.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/auto_memory.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/chat_mode.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/clear.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/code.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/command_prefix.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/commit.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/compact.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/context.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/context_blocks.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/context_management.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/copy.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/copy_context.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/core.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/diff.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/drop.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/editor.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/editor_model.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/exclude_skill.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/exit.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/git.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/hashline.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/help.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/history_search.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/hooks.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/hot_reload.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/include_skill.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/lint.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/list_mcp.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/list_queue.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/list_sessions.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/list_skills.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/load.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/load_hook.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/load_session.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/load_skill.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/ls.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/map.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/map_refresh.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/merge.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/model.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/models.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/multiline_mode.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/paste.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/queue.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/quit.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/read_only.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/read_only_stub.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/reap_agent.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/reasoning_effort.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/remove_hook.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/remove_memory.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/remove_queue.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/remove_skill.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/report.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/reset.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/rules.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/run.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/save.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/save_session.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/search_memory.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/settings.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/spawn_agent.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/switch_agent.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/terminal_data/linux.keytab +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/terminal_setup.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/test.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/think_tokens.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/tokens.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/undo.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/utils/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/utils/base_command.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/utils/registry.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/utils/save_load_manager.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/voice.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/weak_model.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/web.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/commands/workspace.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/decoding.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/deprecated_args.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/diffs.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/dump.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/editor.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/exceptions.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/format_settings.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/help.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/help_pats.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/agents/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/agents/config.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/agents/defaults/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/agents/defaults/memorizer.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/agents/defaults/worker.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/background_commands.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/command_parser.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/command_queue.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/config_utils.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/conversation/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/conversation/base_message.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/conversation/files.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/conversation/integration.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/conversation/manager.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/conversation/service.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/conversation/tags.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/conversation/utils.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/copypaste.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/coroutines.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/crypto.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/file_searcher.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/file_system/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/file_system/builders.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/file_system/ignore.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/file_system/ngram_index.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/file_system/service.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/file_system/trie_index.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/grep_ast/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/grep_ast/dump.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/grep_ast/grep_ast.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/grep_ast/main.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/grep_ast/parsers.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/grep_ast/tsl.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/hashline.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/hashpos/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/hashpos/hashpos.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/hashpos/hashpos.v1.bak +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/hashpos/transformations.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/io_proxy.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/leak_detect.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/aws_sigv4.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/config.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/domains/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/domains/bedrock.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/domains/chat.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/domains/gemini.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/domains/messages.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/domains/responses.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/formatters/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/formatters/reasoning.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/formatters/thinking.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/identifiers.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/litellm_compat.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/pipeline.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/providers/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/providers/anthropic.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/providers/azure.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/providers/base.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/providers/bedrock.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/providers/bedrock_mantle.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/providers/deepseek.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/providers/gemini.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/providers/github_copilot.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/providers/meta.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/providers/openai.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/providers/openrouter.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/runtime.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/types.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/llms/utils.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/lock_detect.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/memory/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/memory/db.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/memory/utils.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/memory_control.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/model_config/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/model_config/agent.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/model_config/api.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/model_config/formatters/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/model_config/formatters/reasoning.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/model_config/formatters/thinking.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/model_config/identifiers.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/model_config/llm.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/model_config/pipeline.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/model_config/utils.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/model_providers.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/monorepo/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/monorepo/config.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/monorepo/local_workspace.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/monorepo/project.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/monorepo/workspace.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/monorepo/worktree.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/nested.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/observations/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/observations/service.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/orchestration/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/orchestration/agent_proxy.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/orchestration/environment.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/orchestration/region_resolver.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/orchestration/safe_methods.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/orchestration/security.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/orchestration/service.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/orchestration/tool_proxy.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/plugin_manager.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/profiler.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/queues.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/requests.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/server/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/server/acp/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/server/acp/bridge.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/server/acp/models.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/server/acp/protocol.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/server/signals.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/server/ws_server.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/similarity.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/skills.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/helpers/threading.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/history.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/hooks/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/hooks/base.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/hooks/helpers.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/hooks/integration.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/hooks/manager.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/hooks/registry.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/hooks/service.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/hooks/types.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/http.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/interruptible_input.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/io.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/linter.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/llm.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/main.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/mcp/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/mcp/oauth.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/mcp/utils.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/mdstream.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/models.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/onboarding.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/agent.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/architect.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/ask.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/base.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/context.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/copypaste.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/editblock.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/editblock_fenced.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/editblock_func.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/editor_diff_fenced.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/editor_editblock.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/editor_whole.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/hashline.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/help.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/patch.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/single_wholefile_func.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/subagent.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/udiff.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/udiff_simple.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/utils/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/utils/registry.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/utils/system.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/wholefile.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/prompts/wholefile_func.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/README.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/arduino-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/bash-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/c-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/chatito-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/clojure-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/commonlisp-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/cpp-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/csharp-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/d-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/dart-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/elisp-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/elixir-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/elm-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/gleam-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/go-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/java-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/javascript-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/lua-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/matlab-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/ocaml-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/pony-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/properties-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/python-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/r-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/racket-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/ruby-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/rust-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/solidity-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/swift-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-language-pack/udev-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/README.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/bash-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/c-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/c_sharp-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/cpp-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/dart-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/elisp-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/elixir-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/elm-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/fortran-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/go-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/haskell-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/hcl-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/java-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/javascript-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/julia-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/kotlin-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/matlab-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/ocaml-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/ocaml_interface-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/php-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/python-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/ql-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/ruby-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/rust-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/scala-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/typescript-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/queries/tree-sitter-languages/zig-tags.scm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/reasoning_tags.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/repo.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/repomap.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/report.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/resources/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/resources/model-metadata.ext.json +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/resources/model-metadata.json +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/resources/model-settings-condensed.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/resources/model-settings.yml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/resources/providers.json +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/run_cmd.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/scrape.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/sendchat.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/sessions.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/signals.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/special.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tests/test_queue_commands.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/_yield.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/delegate.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/edit_file.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/explore_code.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/git_branch.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/git_diff.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/git_log.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/git_remote.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/git_show.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/git_status.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/grep.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/ls.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/orchestrate.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/read_file.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/replace_facts.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/search_facts.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/thinking.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/undo_change.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/update_todo_list.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/utils/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/utils/helpers.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/utils/output.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/utils/registry.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/utils/responses.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tools/validations/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tui/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tui/app.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tui/io.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tui/styles.tcss +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tui/widgets/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tui/widgets/completion_bar.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tui/widgets/file_list.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tui/widgets/footer.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tui/widgets/input_area.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tui/widgets/input_container.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tui/widgets/key_hints.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tui/widgets/output.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tui/widgets/output_alt.bak +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tui/widgets/selectable_log.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tui/widgets/status_bar.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tui/widgets/subagent_pills.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/tui/worker.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/urls.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/utils.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/versioncheck.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/voice.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/waiting.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/watch.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/watch_prompts.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/_includes/blame.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/_includes/get-started.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/_includes/help-tip.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/_includes/help.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/_includes/install.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/_includes/keys.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/_includes/model-warnings.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/_includes/multi-line.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/_includes/python-m-aider.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/_includes/recording.css +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/_includes/recording.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/_includes/works-best.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/_sass/_features.scss +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/_sass/_footer.scss +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/_sass/_hero.scss +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/_sass/_info.scss +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/_sass/_layout.scss +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/_sass/_reset.scss +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/_sass/_testimonials.scss +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/_sass/_typography.scss +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/_sass/_variables.scss +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/_sass/custom/custom.scss +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/_sass/global-overrides.scss +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docmd.config.json +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/cecli-temp-logo-favicon.svg +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config/adv-model-settings.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config/agent-mode.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config/api-keys.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config/api.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config/conf.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config/custom-commands.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config/custom-system-prompts.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config/dotenv.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config/editor.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config/hooks.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config/mcp.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config/model-aliases.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config/model-configuration.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config/model-providers.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config/options.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config/persistent-memory.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config/reasoning.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config/retries.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config/security.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config/skills.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config/subagents.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config/tui.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config/workspaces.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/config.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/git.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/index.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/install/docker.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/install.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/languages.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/legal/contributor-agreement.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/legal/privacy.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/llms/anthropic.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/llms/azure.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/llms/bedrock.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/llms/cohere.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/llms/deepseek.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/llms/gemini.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/llms/github.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/llms/groq.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/llms/lm-studio.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/llms/ollama.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/llms/openai-compat.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/llms/openai.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/llms/opencode-go.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/llms/openrouter.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/llms/other.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/llms/vertex.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/llms/warnings.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/llms/xai.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/llms.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/more/analytics.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/more/edit-formats.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/more/infinite-output.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/more-info.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/repomap.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/scripting.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/troubleshooting/cecli-not-found.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/troubleshooting/edit-errors.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/troubleshooting/imports.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/troubleshooting/models-and-keys.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/troubleshooting/support.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/troubleshooting/token-limits.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/troubleshooting/warnings.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/troubleshooting.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/usage/commands.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/usage/conventions.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/usage/copypaste.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/usage/images-urls.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/usage/lint-test.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/usage/modes.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/usage/not-code.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/usage/notifications.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/usage/optional.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/usage/sessions.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/usage/tips.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/usage/voice.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/usage/watch.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/docs/usage.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/package-lock.json +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/package.json +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli/website/share/index.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli_dev.egg-info/dependency_links.txt +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli_dev.egg-info/entry_points.txt +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli_dev.egg-info/requires.txt +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/cecli_dev.egg-info/top_level.txt +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/docker/Dockerfile +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/docker/Dockerfile.local.nvidia.cuda.ubuntu +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/pyproject.toml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/pytest.ini +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/requirements/common-constraints.txt +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/requirements/requirements-dev.in +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/requirements/requirements-dev.txt +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/requirements/requirements-help.in +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/requirements/requirements-help.txt +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/requirements/requirements-playwright.in +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/requirements/requirements-playwright.txt +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/requirements/requirements.in +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/requirements/tree-sitter.in +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/requirements.txt +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/30k-image.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/blame.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/clean_metadata.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/compare-message-history.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/condense_model_settings.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/cost_analyzer.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/cost_calculator.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/dl_icons.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/docmd_build.sh +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/filter-chat-mode.js +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/generate_providers.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/get_contributor_list.js +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/get_hashline.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/history_prompts.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/homepage.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/issues.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/logo_svg.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/optimize_tokens.sh +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/pip-compile.sh +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/recording_audio.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/redact-cast.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/rename_to_cecli.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/tmux_record.sh +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/tsl_pack_langs.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/update-blame.sh +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/update-docs.sh +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/update-history.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/versionbump.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/scripts/yank-old-versions.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/setup.cfg +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/shim.pyproject.toml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/conftest.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_agent_config_merge.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_aws_credentials.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_background_commands.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_coder.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_commands.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_custom_commands.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_deprecated.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_editblock.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_editor.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_exceptions.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_find_or_blocks.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_hashline.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_hashline_closure.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_history.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_io.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_linter.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_main.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_model_info_manager.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_model_provider_manager.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_models.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_onboarding.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_plugin_manager.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_prompts.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_reasoning.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_repo.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_repomap.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_run_cmd.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_sanity_check_repo.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_scripting.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_select_selector.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_sendchat.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_session_args.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_session_crypto.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_sessions.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_sessions_manager.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_skills.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_special.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_spinner.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_ssl_verification.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_udiff.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_urls.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_voice.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_watch.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/basic/test_wholefile.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/coders/test_coder_switching.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/coders/test_copypaste_coder.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/coders/test_tool_call_consolidation.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/commands/test_auto_memory.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/commands/test_compaction.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/commands/test_remove_memory.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/commands/test_search_memory.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/commands/test_switch_agent.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/conftest.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/conversations/test_conversation_integration.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/conversations/test_conversation_system.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/chat-history-search-replace-gold.txt +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/chat-history.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/arduino/test.ino +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/bash/test.sh +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/c/test.c +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/chatito/test.chatito +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/clojure/test.clj +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/commonlisp/test.lisp +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/cpp/test.cpp +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/csharp/test.cs +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/d/test.d +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/dart/test.dart +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/elisp/test.el +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/elixir/test.ex +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/elm/test.elm +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/gleam/test.gleam +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/go/test.go +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/haskell/test.hs +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/hcl/test.tf +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/java/test.java +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/javascript/test.js +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/kotlin/test.kt +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/lua/test.lua +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/matlab/test.m +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/ocaml/test.ml +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/ocaml_interface/test.mli +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/php/test.php +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/pony/test.pony +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/properties/test.properties +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/python/test.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/ql/test.ql +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/r/test.r +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/racket/test.rkt +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/ruby/test.rb +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/rust/test.rs +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/scala/test.scala +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/solidity/test.sol +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/swift/test.swift +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/tsx/test.tsx +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/typescript/test.ts +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/udev/test.rules +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/languages/zig/test.zig +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/sample-code-base/sample.js +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/sample-code-base/sample.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/sample-code-base-repo-map.txt +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/watch.js +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/watch.lisp +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/watch.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/fixtures/watch_question.js +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/help/test_help.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/monorepo/LOCAL_WORKSPACE.md +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/monorepo/test_config.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/monorepo/test_config_active.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/monorepo/test_ignore_logic.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/monorepo/test_local_workspace.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/monorepo/test_repomap_workspace.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/monorepo/test_workspace.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/observations/test_observation_service.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/server/acp/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/server/acp/test_bridge.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/server/acp/test_dispatch.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/server/acp/test_models.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/server/acp/test_protocol.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/test_llms_api_base.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/test_llms_aws_sigv4.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/test_llms_cache_control.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/test_llms_github_copilot_auth.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/test_llms_hyperscalers.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/test_llms_messages_stream.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/test_llms_messages_wire.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/test_llms_providers_json.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/test_llms_reasoning_config.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/test_llms_reasoning_extract.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/test_llms_vision.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/test_memory_control.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/test_model_config.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/helpers/test_orchestration.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/hooks/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/hooks/test_base.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/hooks/test_manager.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/hooks/test_registry.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/integration/test_agent_mcp_management.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/integration/test_config_loading.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/integration/test_mcp_management.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/mcp/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/mcp/conftest.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/mcp/mock_server.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/mcp/test_keepalive_concurrency.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/mcp/test_keepalive_config.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/mcp/test_keepalive_integration.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/mcp/test_keepalive_logging.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/mcp/test_keepalive_resilience.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/mcp/test_keepalive_unit.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/mcp/test_manager.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/mcp/test_manager_retry.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/mcp/test_server_sdk_compat.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/scrape/test_playwright_disable.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/scrape/test_scrape.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/subagents/__init__.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/subagents/conftest.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/subagents/test_commands.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/subagents/test_config.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/subagents/test_delegate.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/subagents/test_finished.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/subagents/test_io_proxy.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/subagents/test_service.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/subagents/test_sub_agent_coder.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/test_requests.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/tools/test_edit_file_format_output.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/tools/test_extractions.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/tools/test_get_lines.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/tools/test_git_branch.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/tools/test_git_diff.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/tools/test_grep.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/tools/test_insert_block.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/tools/test_read_range_execute.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/tools/test_registry.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/tools/test_remove_mcp_tool.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/tools/test_tool_arguments.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/tools/test_tools_load_mcp_tool.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/tools/validations.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/tui/test_app.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/unit/conftest.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/unit/test_deep_merge.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/unit/test_edge_cases.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/unit/test_load_mcp.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/unit/test_performance.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/unit/test_queues.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/unit/test_remove_mcp.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/unit/test_shallow_merge.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/unit/test_signals.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/unit/test_unit_load_mcp_tool.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/unit/test_unit_remove_mcp_tool.py +0 -0
- {cecli_dev-1.2.3rc3 → cecli_dev-1.2.3rc4}/tests/unit/test_ws_server.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 = '1.2.
|
|
22
|
-
__version_tuple__ = version_tuple = (1, 2, 3, '
|
|
21
|
+
__version__ = version = '1.2.3rc4'
|
|
22
|
+
__version_tuple__ = version_tuple = (1, 2, 3, 'rc4')
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'g0cce57c1b'
|
|
@@ -3363,7 +3363,7 @@ class Coder(metaclass=UsageMeta):
|
|
|
3363
3363
|
continue
|
|
3364
3364
|
|
|
3365
3365
|
for tool in server_tools:
|
|
3366
|
-
if server_name == "
|
|
3366
|
+
if server_name.lower() == "local":
|
|
3367
3367
|
# Apply per-instance tool name filtering
|
|
3368
3368
|
tool_name = tool.get("function", {}).get("name", "")
|
|
3369
3369
|
if (
|
|
@@ -60,13 +60,13 @@ class LoadMcpCommand(BaseCommand):
|
|
|
60
60
|
# This moves them from "implicitly include all" to explicit state-machine
|
|
61
61
|
# management, preventing the new server from being implicitly available
|
|
62
62
|
# to all coders.
|
|
63
|
-
connected_names = {s.name for s in coder.mcp_manager.connected_servers}
|
|
63
|
+
connected_names = {s.name.lower() for s in coder.mcp_manager.connected_servers}
|
|
64
64
|
if connected_names:
|
|
65
65
|
for c in iter_all_coders(coder):
|
|
66
66
|
if not c.registered_servers["included"]:
|
|
67
67
|
included = set(connected_names) - c.registered_servers["excluded"]
|
|
68
68
|
if c.edit_format in ("agent", "subagent"):
|
|
69
|
-
included.add("
|
|
69
|
+
included.add("local") # "local" is always available
|
|
70
70
|
c.registered_servers["included"] = included
|
|
71
71
|
|
|
72
72
|
# Process connections with interrupt support
|
|
@@ -49,7 +49,7 @@ class RemoveMcpCommand(BaseCommand):
|
|
|
49
49
|
server_name = item.name if hasattr(item, "name") else item
|
|
50
50
|
|
|
51
51
|
# Never remove the "local" server
|
|
52
|
-
if server_name == "
|
|
52
|
+
if server_name.lower() == "local":
|
|
53
53
|
results.append("Cannot remove 'Local' server")
|
|
54
54
|
continue
|
|
55
55
|
|
|
@@ -348,7 +348,7 @@ def update_server_registration(coder, server_name, operation, force=False):
|
|
|
348
348
|
When False, respect the opposing set (excluded wins
|
|
349
349
|
for include, included wins for exclude).
|
|
350
350
|
"""
|
|
351
|
-
name = server_name
|
|
351
|
+
name = server_name.lower()
|
|
352
352
|
included = coder.registered_servers["included"]
|
|
353
353
|
excluded = coder.registered_servers["excluded"]
|
|
354
354
|
|
|
@@ -379,7 +379,7 @@ def is_server_globally_excluded(coder, server_name):
|
|
|
379
379
|
Returns:
|
|
380
380
|
True if the server is excluded from every coder.
|
|
381
381
|
"""
|
|
382
|
-
name = server_name
|
|
382
|
+
name = server_name.lower()
|
|
383
383
|
for other in iter_all_coders(coder):
|
|
384
384
|
incl = other.registered_servers["included"]
|
|
385
385
|
excl = other.registered_servers["excluded"]
|
|
@@ -565,11 +565,19 @@ class AgentService:
|
|
|
565
565
|
)
|
|
566
566
|
|
|
567
567
|
if agent_config:
|
|
568
|
+
# Reset the per-instance tool/server filters so AgentCoder.post_init()
|
|
569
|
+
# rebuilds them from *this* sub-agent's own agent-config (tools_includelist/
|
|
570
|
+
# excludelist, servers_includelist/excludelist) instead of inheriting the
|
|
571
|
+
# parent's filters verbatim. Deliberately do NOT reset mcp_manager here:
|
|
572
|
+
# doing so used to discard the parent's already-connected MCP servers and
|
|
573
|
+
# replace them with a brand new, empty manager, making it impossible for a
|
|
574
|
+
# sub-agent's servers_includelist to ever match anything. Leaving mcp_manager
|
|
575
|
+
# unset lets it inherit from from_coder (see Coder.create()) so the same
|
|
576
|
+
# connected MCP servers remain available and can then be filtered.
|
|
568
577
|
kwargs.update(
|
|
569
578
|
dict(
|
|
570
579
|
registered_tools=None,
|
|
571
580
|
registered_servers=None,
|
|
572
|
-
mcp_manager=None,
|
|
573
581
|
)
|
|
574
582
|
)
|
|
575
583
|
|
|
@@ -366,11 +366,18 @@ def unprefix_tool_call(tool_call):
|
|
|
366
366
|
return server_name, result
|
|
367
367
|
|
|
368
368
|
|
|
369
|
-
def parse_tool_arguments(args_string: str) -> dict:
|
|
369
|
+
def parse_tool_arguments(args_string: str) -> dict | list:
|
|
370
370
|
"""Parse tool-call arguments, merging glued ``{…}{} {…}`` object fragments.
|
|
371
371
|
|
|
372
372
|
Also unwraps a single ``arguments``/``parameters``/``params`` wrapper key
|
|
373
373
|
that some models emit when mirroring the OpenAI wire format.
|
|
374
|
+
|
|
375
|
+
Returns a dict in almost all cases. A bare top-level JSON array (e.g. a
|
|
376
|
+
model emitting ``[...]`` directly as the arguments instead of wrapping it
|
|
377
|
+
under the tool's single required array parameter, as EditFile's `edits`
|
|
378
|
+
or ReadFile's `read`) is returned as-is rather than collapsed to ``{}``,
|
|
379
|
+
so ``BaseTool.process_response`` can still wrap it using the tool's
|
|
380
|
+
schema instead of silently losing the data.
|
|
374
381
|
"""
|
|
375
382
|
text = (args_string or "").strip()
|
|
376
383
|
if not text:
|
|
@@ -379,6 +386,8 @@ def parse_tool_arguments(args_string: str) -> dict:
|
|
|
379
386
|
parsed = json.loads(text)
|
|
380
387
|
if isinstance(parsed, dict):
|
|
381
388
|
return coerce_tool_structure(parsed)
|
|
389
|
+
if isinstance(parsed, list):
|
|
390
|
+
return parsed
|
|
382
391
|
except json.JSONDecodeError:
|
|
383
392
|
pass
|
|
384
393
|
|
|
@@ -393,12 +402,18 @@ def parse_tool_arguments(args_string: str) -> dict:
|
|
|
393
402
|
lone = try_parse_json_value(chunks[0])
|
|
394
403
|
if isinstance(lone, dict):
|
|
395
404
|
return coerce_tool_structure(lone)
|
|
405
|
+
if isinstance(lone, list):
|
|
406
|
+
return lone
|
|
396
407
|
try:
|
|
397
408
|
json_string = json_repair.repair_json(chunks[0], ensure_ascii=False)
|
|
398
409
|
single = json.loads(json_string)
|
|
399
410
|
except json.JSONDecodeError as err:
|
|
400
411
|
return {"@error": f"Malformed JSON arguments: {err}"}
|
|
401
|
-
|
|
412
|
+
if isinstance(single, dict):
|
|
413
|
+
return coerce_tool_structure(single)
|
|
414
|
+
if isinstance(single, list):
|
|
415
|
+
return single
|
|
416
|
+
return {}
|
|
402
417
|
|
|
403
418
|
merged = merge_glued_json_objects(chunks)
|
|
404
419
|
|
|
@@ -99,7 +99,7 @@ class McpServerManager:
|
|
|
99
99
|
The server instance or None if not found
|
|
100
100
|
"""
|
|
101
101
|
try:
|
|
102
|
-
return next(server for server in self._servers if server.name == name)
|
|
102
|
+
return next(server for server in self._servers if server.name.lower() == name.lower())
|
|
103
103
|
except StopIteration:
|
|
104
104
|
return None
|
|
105
105
|
|
|
@@ -254,7 +254,7 @@ class McpServerManager:
|
|
|
254
254
|
"""
|
|
255
255
|
existing_server = self.get_server(server.name)
|
|
256
256
|
if existing_server:
|
|
257
|
-
if server.name not in ["unnamed-server", "
|
|
257
|
+
if server.name.lower() not in ["unnamed-server", "local"]:
|
|
258
258
|
self._log_warning(f"MCP server with name '{server.name}' already exists")
|
|
259
259
|
return False
|
|
260
260
|
|
|
@@ -332,7 +332,7 @@ class McpServerManager:
|
|
|
332
332
|
|
|
333
333
|
results = await asyncio.gather(*tasks)
|
|
334
334
|
for server, did_connect in results:
|
|
335
|
-
if not did_connect and server.name not in ["unnamed-server", "
|
|
335
|
+
if not did_connect and server.name.lower() not in ["unnamed-server", "local"]:
|
|
336
336
|
io.tool_warning(
|
|
337
337
|
f"MCP tool initialization failed after multiple retries: {server.name}"
|
|
338
338
|
)
|
|
@@ -54,7 +54,7 @@ class McpServer:
|
|
|
54
54
|
verbose: Whether to output verbose logging
|
|
55
55
|
"""
|
|
56
56
|
self.config = server_config
|
|
57
|
-
self.name = server_config.get("name", "unnamed-server")
|
|
57
|
+
self.name = str(server_config.get("name", "unnamed-server")).lower()
|
|
58
58
|
self.io = io
|
|
59
59
|
self.verbose = verbose
|
|
60
60
|
self.session = None
|
|
@@ -722,6 +722,14 @@ class Tool(BaseTool):
|
|
|
722
722
|
elif command:
|
|
723
723
|
coder.io.tool_output(f"{color_start}Command:{color_end}")
|
|
724
724
|
coder.io.tool_output(coder.format_command_with_prefix(command))
|
|
725
|
+
else:
|
|
726
|
+
# No command and no background_key/action pair: this call will
|
|
727
|
+
# be rejected by execute() before it ever reaches confirmation.
|
|
728
|
+
# Say so explicitly instead of leaving the panel looking blank,
|
|
729
|
+
# which is otherwise indistinguishable from a display bug.
|
|
730
|
+
coder.io.tool_output(
|
|
731
|
+
f"{color_start}(no command provided — call will be rejected){color_end}"
|
|
732
|
+
)
|
|
725
733
|
|
|
726
734
|
coder.io.tool_output("")
|
|
727
735
|
|
|
@@ -199,15 +199,15 @@ class Tool(BaseTool):
|
|
|
199
199
|
# included sets to explicit include lists.
|
|
200
200
|
if load_mcp_servers and coder.mcp_manager:
|
|
201
201
|
if isinstance(coder.mcp_manager.connected_servers, dict):
|
|
202
|
-
connected_names =
|
|
202
|
+
connected_names = {k.lower() for k in coder.mcp_manager.connected_servers.keys()}
|
|
203
203
|
else:
|
|
204
|
-
connected_names = {s.name for s in coder.mcp_manager.connected_servers}
|
|
204
|
+
connected_names = {s.name.lower() for s in coder.mcp_manager.connected_servers}
|
|
205
205
|
if connected_names:
|
|
206
206
|
for c in iter_all_coders(coder):
|
|
207
207
|
if not c.registered_servers["included"]:
|
|
208
208
|
included = set(connected_names) - c.registered_servers["excluded"]
|
|
209
209
|
if c.edit_format in ("agent", "subagent"):
|
|
210
|
-
included.add("
|
|
210
|
+
included.add("local")
|
|
211
211
|
c.registered_servers["included"] = included
|
|
212
212
|
|
|
213
213
|
for f in create_files:
|
|
@@ -546,7 +546,7 @@ class Tool(BaseTool):
|
|
|
546
546
|
if not coder.mcp_manager or not coder.mcp_manager.servers:
|
|
547
547
|
return "No MCP servers are configured."
|
|
548
548
|
|
|
549
|
-
if server_name == "
|
|
549
|
+
if server_name.lower() == "local":
|
|
550
550
|
return "Cannot remove 'Local' server"
|
|
551
551
|
|
|
552
552
|
server = coder.mcp_manager.get_server(server_name)
|
|
@@ -63,25 +63,29 @@ class BaseTool(ABC):
|
|
|
63
63
|
required_params = function_schema["parameters"]["required"]
|
|
64
64
|
properties = function_schema["parameters"].get("properties", {})
|
|
65
65
|
|
|
66
|
-
# Auto-correction:
|
|
67
|
-
#
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
params = {missing_param: [params]}
|
|
66
|
+
# Auto-correction: fix common shape mistakes (a bare array or
|
|
67
|
+
# a single item of that array sent directly as the whole
|
|
68
|
+
# arguments, instead of wrapped under the expected key) BEFORE
|
|
69
|
+
# checking for missing required parameters. Otherwise a
|
|
70
|
+
# recoverable shape (e.g. a bare `[...]` array) gets rejected
|
|
71
|
+
# before it has a chance to be normalized.
|
|
72
|
+
params = ToolValidations._basic_validations(params, cls.SCHEMA)
|
|
74
73
|
|
|
75
74
|
# Auto-correction: If a required parameter is present but is a dict instead of an array
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
75
|
+
if isinstance(params, dict):
|
|
76
|
+
for param_name in required_params:
|
|
77
|
+
if param_name in params:
|
|
78
|
+
param_schema = properties.get(param_name, {})
|
|
79
|
+
if param_schema.get("type") == "array" and isinstance(
|
|
80
|
+
params[param_name], dict
|
|
81
|
+
):
|
|
82
|
+
params[param_name] = [params[param_name]]
|
|
83
|
+
|
|
84
|
+
missing_params = [
|
|
85
|
+
param
|
|
86
|
+
for param in required_params
|
|
87
|
+
if not isinstance(params, dict) or param not in params
|
|
88
|
+
]
|
|
85
89
|
if missing_params:
|
|
86
90
|
tool_name = function_schema.get("name", "Unknown Tool")
|
|
87
91
|
error_msg = (
|
|
@@ -204,16 +204,28 @@ class ToolValidations:
|
|
|
204
204
|
|
|
205
205
|
parameters = function_schema["parameters"]
|
|
206
206
|
properties = parameters.get("properties", {})
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
207
|
+
required = parameters.get("required", [])
|
|
208
|
+
|
|
209
|
+
# Determine the single array-typed parameter to auto-correct into,
|
|
210
|
+
# if any. Prefer the schema's `required` list (covers tools that also
|
|
211
|
+
# declare optional properties alongside their one required array,
|
|
212
|
+
# e.g. EditFile's optional `change_id`); fall back to "exactly one
|
|
213
|
+
# property total" when the schema doesn't declare `required` at all.
|
|
214
|
+
single_param_name = None
|
|
215
|
+
if len(required) == 1:
|
|
216
|
+
single_param_name = required[0]
|
|
217
|
+
elif not required and len(properties) == 1:
|
|
210
218
|
single_param_name = next(iter(properties.keys()))
|
|
211
|
-
|
|
219
|
+
|
|
220
|
+
if single_param_name is not None:
|
|
221
|
+
param_schema = properties.get(single_param_name, {})
|
|
212
222
|
if param_schema.get("type") == "array":
|
|
213
|
-
# Case 1: LLM emitted the array directly (bare list)
|
|
223
|
+
# Case 1: LLM emitted the array directly (bare list) → wrap
|
|
224
|
+
# it as-is under the expected key, don't nest it again.
|
|
214
225
|
if isinstance(params, list):
|
|
215
226
|
return {single_param_name: params}
|
|
216
|
-
# Case 2: LLM emitted a
|
|
227
|
+
# Case 2: LLM emitted a single item of the array directly
|
|
228
|
+
# as a dict, missing the expected wrapper key → wrap it.
|
|
217
229
|
if isinstance(params, dict) and single_param_name not in params:
|
|
218
230
|
return {single_param_name: [params]}
|
|
219
231
|
|
|
@@ -787,6 +787,7 @@ tests/mcp/test_keepalive_resilience.py
|
|
|
787
787
|
tests/mcp/test_keepalive_unit.py
|
|
788
788
|
tests/mcp/test_manager.py
|
|
789
789
|
tests/mcp/test_manager_retry.py
|
|
790
|
+
tests/mcp/test_server_name_normalization.py
|
|
790
791
|
tests/mcp/test_server_sdk_compat.py
|
|
791
792
|
tests/scrape/test_playwright_disable.py
|
|
792
793
|
tests/scrape/test_scrape.py
|
|
@@ -799,6 +800,7 @@ tests/subagents/test_finished.py
|
|
|
799
800
|
tests/subagents/test_io_proxy.py
|
|
800
801
|
tests/subagents/test_service.py
|
|
801
802
|
tests/subagents/test_sub_agent_coder.py
|
|
803
|
+
tests/tools/test_command_format_output.py
|
|
802
804
|
tests/tools/test_edit_file_format_output.py
|
|
803
805
|
tests/tools/test_extractions.py
|
|
804
806
|
tests/tools/test_get_lines.py
|
|
@@ -1028,6 +1028,7 @@
|
|
|
1028
1028
|
"tests/mcp/test_keepalive_unit.py",
|
|
1029
1029
|
"tests/mcp/test_manager.py",
|
|
1030
1030
|
"tests/mcp/test_manager_retry.py",
|
|
1031
|
+
"tests/mcp/test_server_name_normalization.py",
|
|
1031
1032
|
"tests/mcp/test_server_sdk_compat.py",
|
|
1032
1033
|
"tests/scrape/test_playwright_disable.py",
|
|
1033
1034
|
"tests/scrape/test_scrape.py",
|
|
@@ -1041,6 +1042,7 @@
|
|
|
1041
1042
|
"tests/subagents/test_service.py",
|
|
1042
1043
|
"tests/subagents/test_sub_agent_coder.py",
|
|
1043
1044
|
"tests/test_requests.py",
|
|
1045
|
+
"tests/tools/test_command_format_output.py",
|
|
1044
1046
|
"tests/tools/test_edit_file_format_output.py",
|
|
1045
1047
|
"tests/tools/test_extractions.py",
|
|
1046
1048
|
"tests/tools/test_get_lines.py",
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
"""Tests for lowercase-normalized MCP server names.
|
|
2
|
+
|
|
3
|
+
MCP server names are normalized to lowercase at the registration source
|
|
4
|
+
(``McpServer`` construction, ``update_server_registration``, and the
|
|
5
|
+
load/remove-mcp include-set conversions) so that all per-coder filtering
|
|
6
|
+
comparisons can be plain exact matches.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from types import SimpleNamespace
|
|
10
|
+
from unittest.mock import AsyncMock, MagicMock, patch
|
|
11
|
+
|
|
12
|
+
import pytest
|
|
13
|
+
|
|
14
|
+
from cecli.coders import Coder
|
|
15
|
+
from cecli.coders.agent_coder import AgentCoder
|
|
16
|
+
from cecli.commands import SwitchCoderSignal
|
|
17
|
+
from cecli.commands.load_mcp import LoadMcpCommand
|
|
18
|
+
from cecli.commands.utils.helpers import (
|
|
19
|
+
is_server_globally_excluded,
|
|
20
|
+
update_server_registration,
|
|
21
|
+
)
|
|
22
|
+
from cecli.mcp.manager import McpServerManager
|
|
23
|
+
from cecli.mcp.server import LocalServer, McpServer
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def _tool(name):
|
|
27
|
+
"""Build a minimal OpenAI-style function tool dict."""
|
|
28
|
+
return {
|
|
29
|
+
"type": "function",
|
|
30
|
+
"function": {"name": name, "description": "", "parameters": {}},
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class TestMcpServerNameLowercasedAtSource:
|
|
35
|
+
"""McpServer names are lowercased at construction time."""
|
|
36
|
+
|
|
37
|
+
def test_mcp_server_name_lowercased(self):
|
|
38
|
+
assert McpServer({"name": "GitHub"}).name == "github"
|
|
39
|
+
|
|
40
|
+
def test_local_server_name_lowercased(self):
|
|
41
|
+
assert LocalServer({"name": "Local"}).name == "local"
|
|
42
|
+
|
|
43
|
+
def test_default_name_stays_lowercase(self):
|
|
44
|
+
assert McpServer({}).name == "unnamed-server"
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class TestGetServerCaseInsensitive:
|
|
48
|
+
"""Manager lookups tolerate any case, matching normalized names."""
|
|
49
|
+
|
|
50
|
+
def test_get_server_matches_any_case(self):
|
|
51
|
+
server = McpServer({"name": "GitHub"})
|
|
52
|
+
manager = McpServerManager(servers=[server])
|
|
53
|
+
|
|
54
|
+
assert manager.get_server("GitHub") is server
|
|
55
|
+
assert manager.get_server("github") is server
|
|
56
|
+
assert manager.get_server("GITHUB") is server
|
|
57
|
+
|
|
58
|
+
def test_get_server_missing_returns_none(self):
|
|
59
|
+
manager = McpServerManager(servers=[McpServer({"name": "GitHub"})])
|
|
60
|
+
|
|
61
|
+
assert manager.get_server("missing") is None
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
class TestUpdateServerRegistrationLowercases:
|
|
65
|
+
"""Registration writes lowercase names into the per-coder sets."""
|
|
66
|
+
|
|
67
|
+
def test_include_lowercases(self):
|
|
68
|
+
coder = SimpleNamespace(registered_servers={"included": set(), "excluded": set()})
|
|
69
|
+
|
|
70
|
+
update_server_registration(coder, "GitHub", "include", force=True)
|
|
71
|
+
|
|
72
|
+
assert coder.registered_servers["included"] == {"github"}
|
|
73
|
+
assert coder.registered_servers["excluded"] == set()
|
|
74
|
+
|
|
75
|
+
def test_exclude_lowercases(self):
|
|
76
|
+
coder = SimpleNamespace(registered_servers={"included": set(), "excluded": set()})
|
|
77
|
+
|
|
78
|
+
update_server_registration(coder, "GITHUB", "exclude", force=True)
|
|
79
|
+
|
|
80
|
+
assert coder.registered_servers["excluded"] == {"github"}
|
|
81
|
+
assert coder.registered_servers["included"] == set()
|
|
82
|
+
|
|
83
|
+
def test_force_false_respects_opposing_set(self):
|
|
84
|
+
coder = SimpleNamespace(registered_servers={"included": set(), "excluded": {"github"}})
|
|
85
|
+
|
|
86
|
+
update_server_registration(coder, "GitHub", "include", force=False)
|
|
87
|
+
|
|
88
|
+
assert coder.registered_servers["included"] == set()
|
|
89
|
+
assert coder.registered_servers["excluded"] == {"github"}
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
class TestIsServerGloballyExcludedCaseInsensitive:
|
|
93
|
+
"""Global-exclusion checks match lowercase registered names."""
|
|
94
|
+
|
|
95
|
+
def test_included_server_is_not_globally_excluded(self):
|
|
96
|
+
coder = SimpleNamespace(registered_servers={"included": {"github"}, "excluded": set()})
|
|
97
|
+
|
|
98
|
+
with patch("cecli.commands.utils.helpers.iter_all_coders", return_value=[coder]):
|
|
99
|
+
assert is_server_globally_excluded(coder, "GitHub") is False
|
|
100
|
+
|
|
101
|
+
def test_excluded_server_is_globally_excluded(self):
|
|
102
|
+
coder = SimpleNamespace(registered_servers={"included": set(), "excluded": {"github"}})
|
|
103
|
+
|
|
104
|
+
with patch("cecli.commands.utils.helpers.iter_all_coders", return_value=[coder]):
|
|
105
|
+
assert is_server_globally_excluded(coder, "GITHUB") is True
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
def _manager_with_servers():
|
|
109
|
+
"""Manager with real servers named 'GitHub'/'Local' (normalized to lowercase)."""
|
|
110
|
+
github = McpServer({"name": "GitHub"})
|
|
111
|
+
local = McpServer({"name": "Local"})
|
|
112
|
+
manager = McpServerManager(servers=[github, local])
|
|
113
|
+
manager._server_tools = {
|
|
114
|
+
"github": [_tool("list_issues")],
|
|
115
|
+
"local": [_tool("read_file")],
|
|
116
|
+
}
|
|
117
|
+
manager._connected_servers = {github, local}
|
|
118
|
+
return manager
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
class TestGetToolListExactMatchFiltering:
|
|
122
|
+
"""Per-coder filtering uses exact match on lowercase names."""
|
|
123
|
+
|
|
124
|
+
def _coder(self, included=None, excluded=None):
|
|
125
|
+
manager = _manager_with_servers()
|
|
126
|
+
return SimpleNamespace(
|
|
127
|
+
mcp_tools=list(manager.all_tools.items()),
|
|
128
|
+
registered_servers={
|
|
129
|
+
"included": set(included or []),
|
|
130
|
+
"excluded": set(excluded or []),
|
|
131
|
+
},
|
|
132
|
+
registered_tools={"included": set(), "excluded": set()},
|
|
133
|
+
)
|
|
134
|
+
|
|
135
|
+
def test_include_list_keeps_only_matching_server(self):
|
|
136
|
+
coder = self._coder(included=["github"])
|
|
137
|
+
|
|
138
|
+
names = [t["function"]["name"] for t in Coder.get_tool_list(coder)]
|
|
139
|
+
|
|
140
|
+
assert names == ["github--list_issues"]
|
|
141
|
+
|
|
142
|
+
def test_empty_include_includes_all(self):
|
|
143
|
+
coder = self._coder()
|
|
144
|
+
|
|
145
|
+
names = [t["function"]["name"] for t in Coder.get_tool_list(coder)]
|
|
146
|
+
|
|
147
|
+
assert set(names) == {"github--list_issues", "local--read_file"}
|
|
148
|
+
|
|
149
|
+
def test_exclude_list_filters_by_lowercase(self):
|
|
150
|
+
coder = self._coder(excluded=["github"])
|
|
151
|
+
|
|
152
|
+
names = [t["function"]["name"] for t in Coder.get_tool_list(coder)]
|
|
153
|
+
|
|
154
|
+
assert names == ["local--read_file"]
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
class TestGetServersContextExactMatchFiltering:
|
|
158
|
+
"""Servers context block classifies servers using exact lowercase match."""
|
|
159
|
+
|
|
160
|
+
def _coder(self, included=None, excluded=None):
|
|
161
|
+
return SimpleNamespace(
|
|
162
|
+
use_enhanced_context=True,
|
|
163
|
+
io=MagicMock(),
|
|
164
|
+
mcp_manager=_manager_with_servers(),
|
|
165
|
+
registered_servers={
|
|
166
|
+
"included": set(included or []),
|
|
167
|
+
"excluded": set(excluded or []),
|
|
168
|
+
},
|
|
169
|
+
)
|
|
170
|
+
|
|
171
|
+
def test_include_list_marks_others_inactive(self):
|
|
172
|
+
coder = self._coder(included=["github"])
|
|
173
|
+
|
|
174
|
+
ctx = AgentCoder.get_servers_context(coder)
|
|
175
|
+
|
|
176
|
+
assert "Active (1):" in ctx
|
|
177
|
+
assert "- github" in ctx
|
|
178
|
+
assert "Inactive (Filtered) (1):" in ctx
|
|
179
|
+
assert "- local" in ctx
|
|
180
|
+
|
|
181
|
+
def test_empty_include_lists_all_active(self):
|
|
182
|
+
coder = self._coder()
|
|
183
|
+
|
|
184
|
+
ctx = AgentCoder.get_servers_context(coder)
|
|
185
|
+
|
|
186
|
+
assert "Active (2):" in ctx
|
|
187
|
+
assert "Inactive (Filtered)" not in ctx
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
class TestLoadMcpCommandConversionLowercases:
|
|
191
|
+
"""Empty include sets are converted to lowercase connected names + 'local'."""
|
|
192
|
+
|
|
193
|
+
@pytest.mark.asyncio
|
|
194
|
+
async def test_empty_include_converted_to_lowercase(self):
|
|
195
|
+
coder = MagicMock()
|
|
196
|
+
coder.io = MagicMock()
|
|
197
|
+
coder.edit_format = "agent"
|
|
198
|
+
coder.interrupt_event = MagicMock()
|
|
199
|
+
coder.interrupt_event.clear = MagicMock()
|
|
200
|
+
coder.registered_servers = {"included": set(), "excluded": set()}
|
|
201
|
+
|
|
202
|
+
github = MagicMock()
|
|
203
|
+
github.name = "GitHub"
|
|
204
|
+
github.config = {"enabled": True}
|
|
205
|
+
local = MagicMock()
|
|
206
|
+
local.name = "Local"
|
|
207
|
+
local.config = {}
|
|
208
|
+
|
|
209
|
+
coder.mcp_manager = MagicMock()
|
|
210
|
+
coder.mcp_manager.servers = [github, local]
|
|
211
|
+
coder.mcp_manager.connected_servers = [github, local]
|
|
212
|
+
coder.mcp_manager.get_server = MagicMock(return_value=github)
|
|
213
|
+
coder.mcp_manager.connect_server = AsyncMock(return_value=True)
|
|
214
|
+
|
|
215
|
+
async def _passthrough(coro, event):
|
|
216
|
+
return await coro, False
|
|
217
|
+
|
|
218
|
+
coder.coroutines = MagicMock()
|
|
219
|
+
coder.coroutines.interruptible = _passthrough
|
|
220
|
+
|
|
221
|
+
with patch("cecli.commands.load_mcp.iter_all_coders", return_value=[coder]):
|
|
222
|
+
with pytest.raises(SwitchCoderSignal):
|
|
223
|
+
await LoadMcpCommand.execute(coder.io, coder, "GitHub")
|
|
224
|
+
|
|
225
|
+
assert coder.registered_servers["included"] == {"github", "local"}
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
class TestLocalServerConnectedUnderLowercaseKey:
|
|
229
|
+
"""Connecting the Local server stores tools under the lowercase name."""
|
|
230
|
+
|
|
231
|
+
@pytest.mark.asyncio
|
|
232
|
+
async def test_connect_local_server_key_is_lowercase(self):
|
|
233
|
+
local = LocalServer({"name": "Local"})
|
|
234
|
+
manager = McpServerManager(servers=[local])
|
|
235
|
+
|
|
236
|
+
with patch("cecli.mcp.manager.get_local_tool_schemas", return_value=[_tool("x")]):
|
|
237
|
+
assert await manager.connect_server("Local") is True
|
|
238
|
+
|
|
239
|
+
assert "local" in manager._server_tools
|
|
240
|
+
assert "Local" not in manager._server_tools
|